在汽车控制软件开发过程中,使用 Simulink建模时,经常会用到枚举型数据。因为枚举型数据在表示数据时有着更清晰的物理含义,模型及生成的代码的可读性更强。
-
Simulink中枚举型数据的定义
在simulink中,枚举型数据的定义有两种方法:
-
在M文件中用 classdef模块进行定义;
-
使用函数Simulink.defineIntEnumType定义。
-
-
1在M文件中用classdef模块进行定义
1.1.1 首先定义一个Simulnk.IntEnumType的之类,然后定义每个枚举值对应的数值。
例子如下:
例一:定义一个发动机状态的枚举类。
-
classdef Eng_State < Simulink.IntEnumType
enumeration
Stop (0)
Crank (1)
Run (2)
end
end
在simulink环境下使用枚举型数据时,要注意一下:
-
枚举类型数据的名称必须是唯一的,区分大小写,不能再workspace信号名称和数据类型名称有重复。
-
枚举值对应的数值必须是连续单调递增的,但是在定义的时候,对排序不做要求。
1.1.2 Simulink枚举类型的定制化
针对在仿真和代码生成时的特殊需求,可以在类的定义中用静态的方法对Simulink枚举类型数据的属性进行定制化。
静态的方法如下:
静态方法 |
目的 |
默认操作 |
定制返回值 |