ModelCoder中的代数环问题

2023-05-15 10:20:15 digiproto

01

引言

2020年5月23日,美国商务部宣布,将共计33家中国公司和机构列入实体清单,哈工大、哈工程被禁用“工科神器”Matlab,而Simulink是Matlab软件的扩展,它是一个实现动态系统建模和仿真的软件。Matlab在国内知名院校和关键领域研究院所的禁用,给在国内坐了多年冷板凳,从事基础软件研究和产业化的我们,带来了机遇。


本篇文章将为大家介绍国产软件ModelCoder以及其中的代数环问题。


02

ModelCoder介绍

2.1 简介

ModelCoder是浙江迪捷软件科技有限公司完全自主研发的一款支持可视化建模,仿真并生成高可靠C代码的软件设计和开发工具。ModelCoder支持同步数据流以及状态机等嵌入式模型,其从模型生成代码的过程经过了形式化验证,以保证生成过程的正确无误性,能够用于飞机的飞控,飞机的航电,核电的DCS等多个安全关键领域的嵌入式软件的设计和开发。对标产品有国外ANSYS公司的SCADE或者MathWorks公司的MATLAB/Simulink。

图片关键词


2.2 界面展示

如图2.1所示,上面部分是菜单-工具栏,下面部分是模型绘制区域。

图片关键词

▲图 2.1 ModelCoder主界面


03

代数环

3.1  代数环的概念

在数字计算中,输入信号决定输出信号,同时输出信号也决定输入信号,由于数字 计算的时序性,导致没有输出信号无法计算输入信号,没有输入信号又反过来无法计算 输出信号,形成一个死锁(deadlock)或死循环,这就是代数环。简单来说,代数环就是一个输入信号包含输出信号,同时输出信号也包含输入信号的特殊反馈回路。


3.2 代数环模型示例

如图3.1,模型示例为常数与经过Sum模型计算输出的信号相加,得到输出的结果。 由于没有输入信号无法计算Sum模型输出信号,形成死循环,即代数环。

图片关键词

▲图 3.1 代数环模型示例


3.3 消除代数环

根据代数环的形成条件,可以在回路中添加延时模块加以解决。如图3.2,在回路中 添加单位延时模块,即可消除代数环。

图片关键词

▲图 3.2 消除代数环模型示例



首页
产品
新闻
联系