专题目录
3. Stateflow - 状态图的仿真
3.1 状态图基本概念
- 当状态机运行时,
至少有一个
状态处于激活状态 - 状态图从非活动状态到活动状态以及状态之间的切换,都要由
事件触发
,即在事件的驱动之下,状态图才能仿真运行 事件触发
,就是事件驱动的发生- 在 Simulink 中能够产生过零信号的模块有:
正弦振荡信号、方波发生器、阶跃信号、双端输入开关和静态模块
3.2 Event 事件
添加事件方法
- 添加事件 :
state窗口鼠标右键 --> Add Other Elements --> Local Event
- 事件重要属性
Name
:事件名,C语言命名规则Scope
: 事件作用域范围trigger
:触发类型 -->上升沿,下降沿,双向沿
- 在
Symbols
窗口对事件进行添加编辑(右侧快捷窗口)
- 在
Model Explorer
下添加编辑
3.3 数据对象
- 添加数据 :
state窗口鼠标右键 --> Add Other Elements --> Local Data
- 数据重要属性
Scope
: 数据变量作用域
作用域 | 含义 |
---|---|
Local | 本地范围内,对象内部使用 |
Constant | 模型中的常量数据 |
Parameter | Stateflow框图的上层Simulink子系统封装之后的参数获取初值,仿真中不能修改 |
Input | 输入数据,从sumilink模块读取的数据 |
Output | 输出数据,输出给sumilink模块的数据 |
Data Store Memory | 与Simulink数据空间共享,命名和simulink同名 |
Size
: 数据对象尺寸,可为:标量,向量,矩阵,数组
Type
: 数据类型,Data Type Assistant
:数据类型编辑框
Mode | 类型说明 |
---|---|
Inherit | 继承,与Simulink模块相连的信号线数据类型一致 |
Built in | 内建数据类型,可选择duoble,single,int32 等具体类型 |
Fixed point | 定点数据, Slope and bias 模式:利用斜率和偏移量定义定点数; Binary point 模式:直接指定小数点后的位数 |
Enumerated | 指定枚举数据类型的类名称 |
Bus Object | 指定要与 Stateflow总线对象结构体关联的 Simulink.Bus 对象的名称,在 Bus Editor 中点击 Edit 以创建或编辑总线对象;也可以从 Simulink 信号继承总线对象属性。 |
Expression | 表达式 |
- 和事件一样,数据也可在
Symbols
窗口对事件进行添加编辑和在Model Explorer
模型查看器中进行添加和编辑
感谢阅读 若有错误 敬请见谅!!!