使用 MATLAB 控制算法的建模®,仿真软
件®,Stateflow®
版本 3.0
MathWorks 汽车咨询委员会(MAAB)
使用 MATLAB 控制算法的建模®,仿真软件®,STATEFLOW® ............................................................. 1
1. 历史 ..................................................................................................................................................... 6
2. 介绍 ..................................................................................................................................................... 7
2.1. 动机 ............................................................................................................................................................. 7
2.2. 笔记 3.0 版本 .............................................................................................................................................. 7
2.3. 指南模板 ..................................................................................................................................................... 7
2.3.1. 指导ID: .................................................................................................................................. 8
2.3.2. 指导方针标题: ....................................................................................................................... 8
2.3.3. 优先级: ................................................................................................................................... 8
2.3.4. 范围: ....................................................................................................................................... 9
2.3.5. MATLAB® 版本 ....................................................................................................................... 9
2.3.6. 先决条件: ............................................................................................................................... 9
2.3.7. 描述: ..................................................................................................................................... 10
2.3.8. 理由是: ................................................................................................................................. 10
2.3.9. 最后的改变: ......................................................................................................................... 10
2.4. 文档使用 ................................................................................................................................................... 10
2.4.1. 指导交互语义 ....................................................................................................................... 10
2.4.2. 蒙面子系统和可读性规则。 ................................................................................................ 11
3. 软件环境 ........................................................................................................................................... 12
3.1. 一般的指导方针 ....................................................................................................................................... 12
3.1.1. na_0026:一致的软件环境 .................................................................................................... 12
3.1.2. na_0027:只使用标准库块。 ................................................................................................. 12
4. 命名约定 ........................................................................................................................................... 14
4.1. 一般的指导方针 ....................................................................................................................................... 14
4.1.1. ar_0001:文件名 .................................................................................................................... 14
4.1.2. ar_0002:目录名 .................................................................................................................... 15
4.1.3. na_0035:采用命名约定。 .................................................................................................... 15
4.2. 模型内容的指导方针 .............................................................................................................................. 16
4.2.1. jc_0201:子系统名称的可用字符。 ...................................................................................... 16
4.2.2. jc_0211: Inport 块和Outport 块的可用字符。 ..................................................................... 17
4.2.3. jc_0221:用于信号线名称的可用字符。 ............................................................................... 17
4.2.4. na_0030:用于模拟总线名称的可用字符。 .......................................................................... 18
4.2.5. jc_0231:用于块名称的可用字符。 ...................................................................................... 19
4.2.6. na_0014:在Simulink 和Stateflow中使用本地语言。 .......................................................... 19
5. 模型架构 ........................................................................................................................................... 22
5.1. 动态仿真模块® 和 STATEFLOW® 分区 ................................................................................................... 22
5.1.1. na_0006:混合使用Simulink 和Stateflow的指导原则。 ...................................................... 22
5.1.2. na_0007:使用流程图、真值表和状态机的指南。............................................................... 28
5.2. 子系统的层次结构 .................................................................................................................................. 28
5.2.1. db_0143:模型级别上类似的块类型。 ................................................................................. 28
5.2.2. db_0144:使用的子系统 ........................................................................................................ 30
5.2.3. db_0040:模型层次结构 ........................................................................................................ 31
5.2.4. na_0037:使用单变量条件。 ................................................................................................. 31
5.2.5. na_0020:对不同子系统的输入数量。 ................................................................................. 32
5.2.6. na_0036:默认的变体 ............................................................................................................ 32
5.3. J-MAAB 模型架构分解 .......................................................................................................................... 33
5.3.1. jc_0301:控制器模型 ............................................................................................................. 33
5.3.2. jc_0311:顶层/根级别。 ........................................................................................................ 34
5.3.3. jc_0321:触发层 ..................................................................................................................... 35
5.3.4. jc_0331:结构层 ..................................................................................................................... 35
5.3.5. jc_0341:数据流层 ................................................................................................................. 36
6. 模型配置选项 .................................................................................................................................... 38
6.1.1. jc_0011:布尔数据类型的优化参数。................................................................................... 38
6.1.2. jc_0021:模型诊断设置 ......................................................................................................... 38
7. 动态仿真模块 .................................................................................................................................... 40
7.1. 外观图 ....................................................................................................................................................... 40
7.1.1. na_0004:仿真软件模型的外观 ............................................................................................. 40
7.1.2. db_0043: Simulink 字体和字体大小。 .................................................................................. 41
7.1.3. db_0042: Simulink 模型中的端口块。 .................................................................................. 41
7.1.4. na_0005:在Simulink 模型中,端口块的名称可见性。 ....................................................... 42
7.1.5. jc_0081:端口块的图标显示。 .............................................................................................. 43
7.1.6. jm_0002:块调整.................................................................................................................... 44
7.1.7. db_0142:块名称的位置。 .................................................................................................... 45
7.1.8. jc_0061:显示块名称。 ......................................................................................................... 46
7.1.9. db_0146:触发、启用、条件子系统。 ................................................................................. 46
7.1.10. db_0140:显示基本块参数。 ............................................................................................... 47
7.1.11. db_0032:仿真软件信号 ...................................................................................................... 48
7.1.12. db_0141: Simulink 模型中的信号流。 ................................................................................ 49
7.1.13. jc_0171:在使用Goto 和From 块时保持信号流。 ............................................................. 50
7.1.14. na_0032:使用合并块。 ...................................................................................................... 51
7.1.15. jm_0010: Simulink 模型中的端口块名称。 ........................................................................ 51
7.1.16. jc_0281:触发端口块的命名和启用端口块。 ..................................................................... 52
7.2. 信号 ........................................................................................................................................................... 53
7.2.1. na_0008:在信号上显示标签。 ............................................................................................. 53
7.2.2. na_0009:信号标签的输入与传播。 ..................................................................................... 54
7.2.3. db_0097:信号和总线的标签位置。 ..................................................................................... 55
7.2.4. db_0081:未连接信号、块输入和块输出。 .......................................................................... 55
7.3. 块使用 ....................................................................................................................................................... 56
7.3.1. na_0003: If 条件块中的简单逻辑表达式。 .......................................................................... 56
7.3.2. na_0002:适当地执行基本逻辑和数值运算。 ...................................................................... 57
7.3.3. jm_0001:禁止在控制器内的Simulink标准块。................................................................... 59
7.3.4. hd_0001:禁止仿真软件下沉 ................................................................................................. 60
7.3.5. na_0011: Goto 和From blocks 的范围。 .............................................................................. 61
7.3.6. jc_0141:使用开关块。 ......................................................................................................... 62
7.3.7. jc_0121:使用求和块。 ......................................................................................................... 63
7.3.8. jc_0131:使用关系运算符块。 .............................................................................................. 64
7.3.9. jc_0161:使用数据存储读/写/内存块。 ................................................................................ 65
7.4. 块的参数 ................................................................................................................................................... 66
7.4.1. db_0112:索引 ....................................................................................................................... 66
7.4.2. na_0010:将数据流分组到信号中。 ..................................................................................... 66
7.4.3. db_0110:基本块中的可调参数。 ......................................................................................... 67
7.5. 仿真软件模式 ........................................................................................................................................... 68
7.5.1. na_0012:使用Switch 和if - else 动作子系统。 .................................................................... 68
7.5.2. db_0114: if结构的Simulink 模式。 ..................................................................................... 69
7.5.3. db_0115:用于案例构造的Simulink 模式。 .......................................................................... 70
7.5.4. na_0028:使用if - else 动作子系统来替换多个开关。 ......................................................... 71
7.5.5. db_0116:用逻辑块构建逻辑结构的Simulink模式。 ........................................................... 72
7.5.6. db_0117:矢量信号的Simulink模式。 .................................................................................. 73
7.5.7. jc_0351:初始化的方法 ......................................................................................................... 75
7.5.8. jc_0111:子系统的方向 ......................................................................................................... 77
8. STATEFLOW ................................................................................................................................... 79
8.1. 图表的外观 ............................................................................................................................................... 79
8.1.1. db_0123:Stateflow港口名称 ................................................................................................. 79
8.1.2. db_0129:Stateflow过渡的外观 ............................................................................................. 79
8.1.3. db_0137:状态机中的状态。 ................................................................................................. 81
8.1.4. db_0133:使用流程图的模式。 ............................................................................................. 81
8.1.5. db_0132:转换流程图 ............................................................................................................ 82
8.1.6. jc_0501:状态块中的条目格式。 .......................................................................................... 83
8.1.7. jc_0511:从图形函数中设置返回值。................................................................................... 84
8.1.8. jc_0531:缺省转换的位置。 .................................................................................................. 85
8.1.9. jc_0521:从图形函数中使用返回值。................................................................................... 86
8.2. STATEFLOW 数据和操作 .......................................................................................................................... 87
8.2.1. na_0001:位Stateflow运营商 ................................................................................................ 87
8.2.2. jc_0451:在状态流中使用unary - on 无符号整数。 ............................................................. 89
8.2.3. na_0013:状态流中的比较操作。 ......................................................................................... 89
8.2.4. db_0122: Stateflow和Simulink 接口信号和参数。 .............................................................. 90
8.2.5. db_0125:内部信号和局部辅助变量的范围。 ...................................................................... 91
8.2.6. jc_0481:在状态流中的浮点数使用硬相等比较。 ................................................................ 92
8.2.7. jc_0491:在单个状态流范围内重用变量。 ........................................................................... 93
8.2.8. jc_0541:在Stateflow中使用可调参数。 .............................................................................. 95
8.2.9. db_0127:在状态流中的MATLAB 命令。 ............................................................................. 95
8.2.10. 在Stateflow jm_0011:指针 .................................................................................................. 97
8.3. 事件 ........................................................................................................................................................... 97
8.3.1. db_0126:事件的范围 ............................................................................................................ 97
8.3.2. jm_0012:事件广播 ................................................................................................................ 98
8.4. 状态模式 ................................................................................................................................................... 99
8.4.1. db_0150:状态机模式。 ........................................................................................................ 99
8.4.2. db_0151:转换操作的状态机模式。 ................................................................................... 100
8.5. 流程图的模式 ......................................................................................................................................... 101
8.5.1. db_0148:用于条件的流程图。 ........................................................................................... 101
8.5.2. db_0149:条件动作的流程图模式。 ................................................................................... 103
8.5.3. db_0134:如果构造是流程图模式。 ................................................................................... 104
8.5.4. db_0159:案例结构的流程图模式。 ................................................................................... 106
8.5.5. db_0135:循环结构的流程图模式。 ................................................................................... 108
8.6. 状态表结构 ............................................................................................................................................. 109
8.6.1. na_0038:状态流程图中的级别。 ....................................................................................... 109
8.6.2. na_0039:在状态流程图中使用Simulink。 ......................................................................... 110
8.6.3. na_0040:每个容器的状态数。 ........................................................................................... 111
8.6.4. na_0041:函数类型的选择。 ............................................................................................... 111
8.6.5. na_0042: Simulink 函数的位置。 ....................................................................................... 112
9. 枚举数据 ......................................................................................................................................... 114
9.1.1. na_0033:枚举类型使用 ...................................................................................................... 114
9.1.2. na_0031:默认枚举值的定义。 ........................................................................................... 114
10. MATLAB 函数 .............................................................................................................................. 115
10.1. MATLAB 函数出现............................................................................................................................. 115
10.1.1. na_0018:嵌套if/else 和case语句的数量。 ...................................................................... 115
10.1.2. na_0019:限制变量的名字................................................................................................. 115
10.1.3. na_0025:MATLAB 函数头 ................................................................................................. 116
10.2. MATLAB 函数数据和操作。 ............................................................................................................ 117
10.2.1. na_0034: MATLAB 函数块输入/输出设置。 .................................................................... 117
10.2.2. na_0024:全局变量 ............................................................................................................ 117
10.3. MATLAB 函数模式............................................................................................................................. 118
10.3.1. na_0022:用于开关/ Case 语句的推荐模式。 ................................................................... 118
10.4. MATLAB 函数使用............................................................................................................................. 119
10.4.1. na_0016: MATLAB 函数的源代码行。 ............................................................................. 119
10.4.2. na_0017:被称为函数级的数量。 ..................................................................................... 120
10.4.3. na_0021:字符串 ................................................................................................................ 120
11. 附录 A:自动化工具的建议。 ........................................................................................................ 122
12. 附录 B:指导写作 ........................................................................................................................... 123
13. 附录 C:流程图参考 ....................................................................................................................... 124
14. 过时的规则 .................................................................................................................................... 131
14.1. 在 2.2 版本中删除 ................................................................................................................................ 131
14.2. 在 3.0 版本中删除 ................................................................................................................................ 131
15. 术语表 ........................................................................................................................................... 132
1.历史
日期
改变
02.04.2001 初始文档版本,版本 1.00。
04.27.2007
2.00 版本更新版本
07.30.2011
2.20 版本更新版本
08.31.2012
3.0 版本更新版本
2.介绍
2.1. 动机
MAAB 指导方针是项目成功和团队合作的重要基础——无论是在内部还是在与合作伙伴或分包商
合作时。遵守指导方针是实现这一目标的一个关键先决条件。
系统集成没有问题
经过良好定义的接口。
模型、代码和文档的统一外观。
可重用模型
可读模式
没有交换模型
一个简单的、有效的过程
专业文档
可以理解的演讲
快速软件更改
与分包商合作
将研究或开发项目移交给产品开发。
2.2. 笔记 3.0 版本
本文档的当前版本 3.0,支持 MATLAB 通过 R2011b 发布 R2007b。版本 3.0 参考了 NASA Orion 风
格指南(http://www.mathworks.com/aerospacedefense/standards/nasa.html)。从 NASA 的猎户座指南中
引用的规则被标注为“See also”字段,它提供了原始的规则编号。
2.3. 指南模板
指南描述使用以下模板记录。希望创建额外指导方针的公司被鼓励使用相同的模板。
ID:标题
XX_nnnn:指南的标题(独特,简短)
优先级
强制/强烈推荐/推荐的。
范围
MAAB, NA-MAAB, J-MAAB,特定公司(可选本地公司使用)
MATLAB®
版本
所有
RX,RY,RZ
RX 和更早
RX,后来
RX 在变化中
先决条件 指向指导方针的链接,这是本指南的先决条件(ID+标题)
描述
指南的说明(文字、图片)
基本原理 动机的指导方针
最后一次改
变
最后更改的版本号。
注意:此模板的元素是必需的最小必需项目,以进行适当的理解和交换指导方针。在这个模板中添
加项目或供应商字段是可能的,只要它们的含义与现有的任何字段不重叠。事实上,如果它们有助
于集成其他指导原则模板并导致更广泛地接受核心模板本身,甚至会鼓励这些添加。
2.3.1. 指导 ID:
准则 ID 是用两个小写字母(表示规则的起源)和一个四位数,用下划线隔开的。
一旦新指南有了 ID, ID 就不会被更改。
该 ID 用于引用指导方针。
这两个字母的前缀 na, jp, jc 和 eu 是为将来的 MAAB 委员会规则保留的。
遗留前缀、db、jm、hd 和 ar 都是保留的。
没有新的规则将用这些遗留前缀编写。
2.3.2. 指导方针标题:
标题应该是一个简短而独特的应用指南领域的描述(例如,名字的长度)。
标题用于先决条件字段和定制的检查工具。
标题文本应该出现链接到指南的超链接。
注意:标题不应该是指南内容的冗余简短描述。指南的描述可能会随着时间而改变,但是标题应该
保持稳定。
2.3.3. 优先级:
每条指导方针都必须按照下列优先次序进行评价:
强制性的
强烈推荐
推荐
优先级描述了指导方针的重要性,并确定了违规的后果。
强制性的
所有公司都同意的指
导方针是绝对必要
的。
所有公司都遵循的准
则是 100%。
强烈
推荐
定义
商定的指导方针是一
种良好的实践,但是
遗留模型妨碍了公司
100%地遵守该准则。
模型应尽可能符合这
些准则;但是,不需要
100%的遵从性。
推荐
建议改进模型图的外
观,但对运行模型并
不重要。
符合要求的准则,但
不需要。