目录

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 处初始化,而不是在首次发生输入事件时。

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

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

  1. Matlab模型开发之——从建模规范开启旅程1 Simulink

    目录 前言 1.命名 1.1 字符 1.3 系统.子系统.模块.信号线命名 1.4 变量名称的一致性 2.simulink模型外观 2.1 信号线外观 2.2 基础模块外观 3.Simulink基础模 ...

  2. Autosar与Matlab模型开发之——概念基础

    目录 一.AUTOSAR架构介绍 1.AUTOSAR架构: 2.BSW架构: 3. BSW架构粗略介绍:​编辑 二.与应用层相关 1.跟应用层SWC交互的接口: 2.Autosar接口类型 一.AUT ...

  3. MATLAB/Simulink模型开发乐高EV3 双足平衡机器人

    MATLAB/Simulink 2018a 模型开发乐高EV3 双足平衡机器人(含视频) 之前只是用Matlab做一些算法的仿真,数据的计算分析处理,知道MATLAB中包含有Simulink,只知道S ...

  4. matlab火箭模型,基于Matlab/Simulink的新型火箭建模与仿真平台搭建

    2018 年 11 月第 14 卷 第 4 期 系 统 仿 真 技 术 System Simulation Technology Nov. ,2018 Vol. 14,No. 4 中图分类号: TP3 ...

  5. MAB建模规范-Matlab建模规范

    规则ID:db.jm.hd.ar被用于Ver 1.0的规范.na和jc用于从版本2.0到现在创建的规范 NA-MAAB代表北美和欧洲.J-MAAB代表日本 Matlab建模规范主要和matlab fu ...

  6. matlab cuda的.cu文件应该放在那里_无人机基于Matlab/Simulink的模型开发(连载一)

    "一切可以被控制的对象,都需要被数学量化" 这是笔者从事多年研发工作得出的道理,无论是车辆控制,机器人控制,飞机控制,还是无人机控制,所有和机械运动相关的控制,如果不能被很好的数学 ...

  7. matlab做信号实验需要安装那些模块_无人机基于Matlab/Simulink的模型开发(连载一)...

    "一切可以被控制的对象,都需要被数学量化" 这是笔者从事多年研发工作得出的道理,无论是车辆控制,机器人控制,飞机控制,还是无人机控制,所有和机械运动相关的控制,如果不能被很好的数学 ...

  8. 汽车动力经济性开发工具,发动机最优燃油消耗曲线计算程序 发动机最优燃油消耗曲线matlb计算模型,MATLAB模型,发动机OOL

    汽车动力经济性开发工具,发动机最优燃油消耗曲线计算程序 发动机最优燃油消耗曲线matlb计算模型,MATLAB模型,发动机OOL 1.计算发动机最优燃油消耗曲线是车辆能耗优化,特别是混动汽车策略设计时 ...

  9. 基于Matlab Simulink开发的嵌入式模型,模型可自动生成ccs工程代码,生成的代码可直接运行在主控芯片中

    主控芯片dsp tms320f28335,基于Matlab Simulink开发的嵌入式模型,模型可自动生成ccs工程代码,生成的代码可直接运行在主控芯片中. 该模型利用id=0的矢量控制,实现了永磁 ...

最新文章

  1. java键盘输入运算符_Java基础学习-三元运算符和键盘录入的基本步骤和使用
  2. 【Python】用Python实现十大经典排序算法
  3. [linux]在Linux里设置环境变量的方法(export PATH)
  4. brew 更换国内源(镜像)
  5. 嵊州职教中心计算机多少分数,嵊州中考考试分数线
  6. 20155320 第十一周课堂总结
  7. 子网/子网掩码原理简介
  8. 【云周刊】第120期:麒麟来了!PUE逼近1.0,阿里展示液冷黑科技
  9. Sql Server 2005资源瓶颈监控(二)
  10. 编译DXperience 7.1源码和升级原有的应用程序
  11. 盘点两个神器,快速告别垃圾短信邮件
  12. 和差测角天线方向图仿真matlab 含代码
  13. 中科院生物信息学题目整理
  14. 獨立屋裝修/村屋裝修
  15. 单元测试中Assert详解-xUnit
  16. 一个sql注入直接把我们服务搞挂了
  17. 老生常谈:让软件留下临终遗言并优雅地关闭
  18. Android Gson 操作
  19. PAT乙级(简单模拟)1001、1011、1016、1026、1046、1012、1018
  20. 学校运动会管理系统--C语言实现

热门文章

  1. 《亚瑟王》:铁骑踏山河 历史和传说
  2. 目录访问协议——LDAP
  3. [2019CVPR论文笔记]Doodle to Search Practical Zero-Shot Sketch-based Image Retrieval
  4. ImportError: cannot import name '***' from 'pyecharts'
  5. 计算机SCI论文,如何写吸引人的摘要? - 易智编译EaseEditing
  6. 搞笑段子与幽默笑话,进来开心下吧!
  7. CD147单克隆抗体通过酰胺反应偶联到Dox-CMCh-BAPE聚合物胶束/CBZ-AAN-Dox的制备
  8. 音乐风格分类 - 使用CNN或CRNN模型在GTZAN数据集上进行音乐风格分类任务。
  9. 解决django跨域问题
  10. gRPC的通信方式概述