Matlab模型开发之——从建模规范开启旅程2 Stateflow

目录

1、外观

1.1状态机语句格式

1.2状态流迁移

 1.3层级

1.4缺省状态迁移

2 常用基本规则

2.1增量/减量的使用指导规则

2.2 局部变量

2.3状态流中逻辑信号的运算

 2.4状态流中的MATLAB命令

 2.5缺省状态迁移路径的执行时间


前言:

        前一篇中已经讲了一些simulink的建模规范,这篇继续讲Stateflow。这里就不再赘述命名之类的规范,基本与simulink中相同。相比simulink,stateflow使用上有更多细节需注意,这不像是规范,可能更像是建模指导,基础但借鉴意义强。

Matlab模型开发之——从建模规范开启旅程1 Simulink_gaoxuexidan0307的博客-CSDN博客_mab建模规范

1、外观

1.1状态机语句格式

1.1.1 状态机标准格式

  1. 状态机中语句缩进应保持一致,且运算符前后一致的空格。
  2. en/du/ex应与执行语句分行。
  3. 动作语句括号之前和之后都开始一新的行,且多个动作不应描述在1行中。

正确:

错误:

1.1.2 状态内的文本描述不应超出该状态的边界。

1.1.3 状态标签中每一个动作的结尾必须是一个分号“;”,否则将影响仿真速度。动作类型(entry(en), during(du) and exit(ex))不受这一规则限制。

1.1.4 相同的动作类型(entry (en), during (du), exit (ex), en, du: , du, ex: , en, ex: , en, du, ex:) 不应描述2次或多次。

错误:

1.1.5 如果有多个条件语句时,可以分行描述。若其中包含多个运算符,应使用括号来描述 它们的优先顺序。且运算符位置统一在每一行后面。

Correct正确

Incorrect错误

没有采用括号显示优先顺序。

Incorrect:错误

4个条件在一行中描述。

1.2状态流迁移

1.2.1 状态图中的迁移线应绘制成水平线和垂直线。

1.2.2 尽量不要互相交叉。

1.2.3 禁止迁移重叠,不禁止状态从外部向中心迁移或是从中心向外部迁移。

错误

 1.2.4 禁止从外部状态向子状态直接迁移,然而可以从子状态向一个外部父状态迁移

        这是为了避免系统复杂化,导致状态间的切换不易理解。

1.2.5 复杂的条件不得采用交汇连接点来分离,预防状态迁移中的回溯。

1.2.6 所有交汇连接点有分支,且条件以水平线绘制,动作以垂直线绘制。

正确:

错误:

 注释:在C1==ON 和C2==OFF的情况下,在[(C1==ON)]之后,在交汇连接点迁移似乎终止了。然而,在C2==OFF情况下,回溯发生,并评估[Condition3]。在这种情况下,即使C1==ON为真,如果[Condition3]为真,则发生向a3的迁移。

1.2.7 状态内的状态动作(以entry,during开始)和流程图语句不应组合使用。

错误:

 1.2.8 除了执行顺序中的最后一个以外,其它的迁移必须要设置条件。

错误:

 1.3层级

单个状态机内子状态机最多三层。

第4层可以被封装在一个子图中。

1.4缺省状态迁移

1.4.1 在同一层级中不能包含多个缺省状态迁移。

错误:同一层级中包含多个默认缺省迁移,即默认状态跳转。

1.4.2 缺省状态迁移的迁移目的地状态或迁移目的地交汇连接点应位于同一层级的左上。

错误:

缺省状态迁移位于侧面。

1.4.3 缺省状态迁移不得超过状态边界。

错误:

缺省状态迁移超过边界

1.4.4 为了防止回溯,所有流程图和图形函数都要提供不满足所有条件的无条件迁移。

错误:没有“无条件迁移”的迁移线。

常用基本规则

2.1增量/减量的使用指导规则

增量/减量操作符应作为一个动作使用。

2.2 局部变量

stateflow模块的所有局部变量必须定义在Chart层面中

在具有父子关系的图/状态中,不应包含具有相同名称的局部数据。

Correct:正确

 在Chart下定义局部变量

 Incorrect:错误

局部变量定义在信号可以在几个图之间共享的机器层面。

2.3状态流中逻辑信号的运算

  1. 返回布尔值的表达式应该用于条件表达式。

 2)布尔类信号不得与数字(0,1)或逻辑值(真,假)进行比较。

当反转逻辑类信号时,使用布尔运算(NOT),采用~或 ! 。

正确

错误

 2.4状态流中的MATLAB命令

在Stateflow图中不允许使用MATLAB函数语句。

如果不可避免的需要使用MATLAB函数,应仅通过MATLAB function模块来使用。

其中,代码生成仅支持有限的一小部分MATLAB函数,完整的支持函数清单可在help中搜索Functions Supported for Code Generation。

Correct:正确:

 Incorrect:错误:

 2.5缺省状态迁移路径的执行时间

在所有Stateflow Charts中,必须取消“在初始化时执行指定的图”,

默认情况下,图在首次唤醒时,它会执行默认转移路径。勾选“在初始化时执行指定的图”后,图的状态配置将在时间 0 处初始化,而不是在首次发生输入事件时。

默认即取消状态,不需要改变。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB Simulink Stateflow建模规范是一个指导开发者在使用MATLAB Simulink和Stateflow工具进行系统建模时遵循的一套规范。MAAB 4.01版是该规范的最新版本,提供了中英互译版,以便方便国际合作和跨国开发。 该规范主要包括了以下几个方面的内容: 1. 建模风格和结构:规定了模型的层次结构和命名规范,确保模型的清晰性和可维护性。 2. 模型元素:定义了模块、信号、状态和数据的命名规则,保证模型的一致性和可读性。 3. 仿真和代码生成设置:规范模型的仿真设置,包括采样时间、求解器和代码生成设置,以确保模型的可靠性和可移植性。 4. 样式和布局:规范了图表的样式和布局,包括注释、颜色和图表尺寸等,以提升模型的可视化效果。 5. 系统架构:规定了模型的整体结构和模块间的接口规范,确保系统的模块化和可扩展性。 MAAB 4.01版通过提供中英互译版,使得该规范可以方便地在不同国家和地区之间进行交流和使用。这有助于促进国际合作和跨国开发项目的顺利进行,并且可以保证各个开发团队之间对模型的理解和使用的一致性。 总之,MATLAB Simulink Stateflow建模规范(MAAB 4.01版)是一个提供了详细规范和指导的工具,可以帮助开发规范建模过程,提高模型的质量和可维护性。同时,中英互译版提供了跨国交流和合作的便利性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值