控制策略模型建模规范(STATEFLOW)
(2016-05-17 21:45:52)
标签:
maabsimulink建模规范jmaabmatlab |
分类: Simulink |
6.1. 基本行为和状态
1. Stateflow模块中至少有两个状态,且要有默认状态,每个状态不能只有一个子状态。
2.Stateflow状态图嵌套不能多于3层。
3.单一状态视图内的子状态个数控制在6个以内,最高不超过9个。
4.Stateflow中的逻辑,不使用MATLAB函数、指令、运算符。
5.逻辑类型的信号禁止执行比较操作。(使用if(logical type
signal))
6.逻辑运算不能用于两个布尔值。([true && false])
7.布尔类型的信号不能与数字0、1或逻辑值true、false进行比较操作。
8.不同类型的数据禁止执行比较操作,如果需要必须首先执行显示类型转换的操作。
9.禁止对两个浮点类型的数值执行严格的==或!=判断操作。
10.禁止对无符号数执行取负操作[-]。
11.如果需要翻转逻辑类型的信号,应使用布尔操作NOT。
12.取反符号:~用于位操作按位取反,!用于逻辑取反操作。
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
6.2. 事件、变量设置
1. 同一个变量在单个Stateflow范围内不应该有多重定义。
2.未使用的事件和变量不允许出现在Stateflow图块中。
3.并行的图块或状态机中不允许出现同名的局部数据。
4.Stateflow中除0用于初始化变量,1用于自增自减操作外外,不允许常量和变量直接使用数值。
5.事件必须定义在chart或者更低的级别,不允许chart之间进行事件交互。
6.除触发调用函数调用子系统外,事件不应该用作状态转移的驱动条件。
7.为了便于可读性,事件en:、du:、ex:每个应单独起一行;每个事件具体内容也应单独起一行。
2.
3.
4.
5.
6.
7.
6.3. 标签
Stateflow的输入输出端口名称应与相应信号名称一致。
6.4. 条件与条件动作
1. 条件表达式只能使用返回值为布尔类型的表达式,不允许使用整形数值。
2.动作类型(entry(en),during(du),exit(ex),en,du:
,du,ex: ,en,ex: ,en,du,ex:)不能多次重复描述,且合并动作(en,du: ,du,ex: ,en,ex:
,en,du,ex:)的描述只能在动作序列的最顶层或最底层放置。
3.如果动作序列能在条件动作(condition action)或转移动作(transition
action)以及转移目标状态的Entry动作中实现, 就不要使用状态的Exit动作去实现。
4.最好不要使用转移动作,优先使用条件动作。
5.用于状态转移判断条件的变量的更新操作不允许放置于during动作中。
2.
3.
4.
5.
6.5. 内部转移和状态转移
1. Stateflow中的转移连接,不允许相互交叉、重叠,禁止穿过任何状态、节点或文本框,可转移到一个内部状态,转移标签连接于相应的转移上。
2.Stateflow的转移应遵循:条件在水平方向上标出,动作在竖直方向上标出。
3.Stateflow默认转移链接应置于状态顶部,默认转移的终止状态在同级状态中应处于最高位置。
4.Stateflow默认转移符号的绘制不应该超出所处状态的边界。
5.Stateflow状态图:不允许在单一状态内使用多个内部转移分支。
6.Stateflow内部转移标签必须从状态内部的左侧边界起始。
2.
3.
4.
5.
6.
6.6. 流程图
SF状态图或流程图应合理避免“回溯”现象。
为便于数据流及代码生成,流程图的返回值只能放置在图表中的某一个位置,不能多次出现。
为便于数据流及代码生成,流程图的返回值只能放置在图表中的某一个位置,不能多次出现。
6.7.
SF状态图应选用C语言方式构建,及使能C-bit operation
禁止将含有SF状态图的Simulink模型作为更高层级的SF状态机的子系统。
禁止将含有SF状态图的Simulink模型作为更高层级的SF状态机的子系统。
后一篇:控制策略模型建模规范(其它)

加载中…