本部分对模型和模块的外观特性进行约定
4.1. 背景色约定
模块 |
背景色 |
Simulink设置值 |
Atomic Unit/Subsystem |
绿色 |
Green |
Inport |
绿色 |
Green |
Outport |
红色 |
Red |
标定量 |
灰色 |
Gray |
监控变量 |
灰色 |
Gray |
Constant |
灰色 |
Gray |
引用公共函数 |
黄色 |
Yellow |
4.2. 模型中允许使用的数据类型
Simulink supports all built-in numeric MATLAB® data types except int64 and uint64.
Name |
Description |
Inherit: Inherit from Parent value |
Use data type of Settings/Parent value. |
Inherit: Inherit via back propagation |
Use data type of the driving block. |
double |
Double-precision floating point |
single |
Single-precision floating point |
int8 |
Signed 8-bit integer |
uint8 |
Unsigned 8-bit integer |
int16 |
Signed 16-bit integer |
uint16 |
Unsigned 16-bit integer |
int32 |
Signed 32-bit integer |
uint32 |
Unsigned 32-bit integer |
boolean |
Boolean (1 = true; 0 = false) |
fixdt(1,16) |
fixed point fixdt(1,16). |
fixdt(1,16,0) |
fixed point fixdt(1,16,0). |
fixdt(1,16,2^0,0)) |
fixed point fixdt(1,16,2^0,0). |
Enum: |
enumerated data type |
Bus: |
bus object |
4.3. 模型注释
在模型中的关键算法必须进行注释,注释必须写在注释区域,注释文字不影响仿真和代码生成,注释需遵循以下原则:
• 加框
• 加阴影
• 英文
• 字体字号:Arial,常规,10
本地化的语言应该仅用于具有描述、注释性质的区域,如模块的descriptive fields 。
4.4. 模型组织结构
对模型进行层级结构划分有利于提高模型的可读性、可维护性。一般在进行逻辑系统建模时,进行层级结构划分时,会用到下面的一些模块:
• Subsystem
• Atomic Subsystem
• Stateflow
模型中所有的层级应该和控制系统具备的各个功能及其结构保持一一对应的关系,并保证可读性、良好的工作流,可以被测试验证,可以生成代码。
在建模时推荐按照如下方式进行层级划分:
• 顶层
• 触发层(非必须)
• 结构层
• 数据层
顶层是体现模型总体外貌特征最外层,包括模型整体输入和输入输出变量定义和逻辑控制部分。触发层表明了各个子模块的触发时序,如果有必要还要设置其优先级,并用注释方式表达出来。结构层主要显示模型运算逻辑框架,是进一步的功能划分,在其中的各个子系统模块建议设置为原子子系统。数据层由“基本模块”构成,为模型最底层,用于表示数据传递顺序和数据运算过程。
每个模型以library的方式创建,并使用层级管理,便于后续的版本更新管理。一般由三个层级组成:
• 第一层级:集成的模块,命名:xxxx_yyyy (模块缩写名_项目代号缩写)
• 第二层级:功能子系统,命名:xxxx_zzzz(模块缩写名_子系统功能缩写)
• 第三层级:细分子系统,命名:根据子系统特性和功能命名
• 第四层级:根据需要增加该层级