ModelCoder中的代数环问题

本文介绍了国产软件ModelCoder,作为替代Matlab/Simulink的建模和仿真工具,特别适合于安全关键领域的嵌入式软件开发。ModelCoder能生成经形式化验证的C代码,并详细讨论了代数环问题,指出其在数字计算中的死锁现象,并通过添加延时模块来消除代数环。
部署运行你感兴趣的模型镜像

​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 消除代数环模型示例

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值