Stateflow使用笔记

此文记录使用Stateflow中遇到的有价值的问题。长期更新

1.      StateFlow:

a)        一般不要在默认转移上添加事件的限制

b)        变量需要初始化

c)        Test point只有数据对象被设置为Local

d)        一般地,如果数据对象时向量,则直接使用data[index]的语法引用向量中的元素;若数据对象是矩阵,则需要使用data[row][colum]语法来引用矩阵的元素。

e)        集成:该数据对象的类型要和连接到该输入数据端口的Simulink信号的数据类型进行匹配;

2.      StateFlow的更新模式:

Inherited:

(1).有输入事件定义

(2).未定义输入事件但定义了输入数据

(3).既未定义输入事件又未定义输入数据

Discrete:固定周期的离散块,通过Sample Time属性设置具体的更新周期,单位为秒s!

Continuous:相当于一个连续系统模块

3.      状态中如没有使用关键字,则直接跟随在状态名厚脸的符号“/”后的内容默认就是状态Entry

4.      StateFlow中只有状态时记忆元件;

5.      StateFlow内部有一套默认的转移检测优先权原则:当事件发生需要进行转移检测时,StateFlow总是首先检查具有最多限制的转移,如果能够满足则执行这个转移,其他的有效转移就统统忽略;

1.      创建流程图:

a)        流程图中,存在且仅存在一个终止节点,流程图的终止节点上;

b)        所有转移通路都必须最终汇合到终止节点;

c)        为每一个分支节点提供无条件的转移通路,用于控制一些异常或者未预料到的情况

d)        如果流程图位于StateFlow的Chart层次,则在连续两次更新之间,整个StateFlow框图处于非活动的状态;


你可能感兴趣的:(特别的技巧)