Simulink中枚举数据类型的使用方法

Simulink中枚举数据类型的使用方法

1. 楔子

笔者刚刚接触simulink和stateflow时,受之前的c语言影响,很多变量都想要使用枚举类型,来方便数据管理,最早用的matlab2012,那个时候枚举变量的定义需要使用编写脚本的方式,很不友好,所以后来放弃了,都采用宏定义。

但是近期发现,matlab已经对枚举数据类型支持的很友好了,现把枚举类型的使用方法整理一下,写成此文,matlab版本是2017a,操作系统为deepin。

  • 以如下模型进行枚举数据类型的替换和使用

2_001

  • 首先针对模型创建数据字典,进行数据的统一管理

2_002

2_003

  • 然后在数据字典中创建枚举数据类型,并填好枚举包含的数值,数据类型等

2_004

2_005

  • 至此枚举数据类型已经创建完毕,但是类似于C语言,我们要把模型中的相关变量定义成枚举类型才能够使用,如下进行输入端口的数据类型设置,和所使用的Constant模块数据类型设置

2_006

需要注意的是,枚举数据类型的调用使用了与类操作ClassName.Operation相同的符号".",这就是示例中,需要把Constant模块的数值由TORQUE_CONTROL_U8改为SystemMode.TORQUE_CONTROL_U8的原因


最新更新,发现Simulink自带了枚举类型专属的Constant模块,能够识别枚举类型的选项,很不错,可以直接使用
2_007

3. Stateflow 模型中使用枚举数据类型

Stateflow中使用枚举也和上一章基本一致,都是在数据字典中定义枚举数据类型,然后定好变量的数据类型,在调用枚举值时采用ClassName.Operation这种方法调用即可,如下为测试模型:

3_001

其Stateflow中,使用枚举变量如下示意:

3_002

  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值