matlab仿真如何自动跳出示波器_如何在simulink中使用枚举量使工作更容易

23eadc3ea0d7b3fc5c90190750722682.png

在汽车控制器开发中,经常会遇到状态量 status states 。

这些状态量,直接用Uint8表示,在软件生成编译运行时完全没有问题。

但是,不利于维护和测试。比如电机的模式控制来说,off tq spd 等模式。

假如这些状态分别用012数字表示,在仿真时,simulink的示波器会显示012,inca,ape测试时,也会显示012,并不会显示 off tq spd。所以,在你怀疑电机模式发的对不对时,还需要拿出dbc来对照,非常不方便。

现在,上面的问题,都可以通过枚举量来解决。达到下图的效果。

7a7ca37f951ac276b9215dc68a1264b4.png

首先,准备枚举量,class做到文件名称和定义一致,然后这么操作就可以了。下图是我使用classdef MotMd < Simulink.IntEnumType定义的一个电机模式枚举量。

cabab033a5f6f9b72589efce8d7f4bba.png

将这个文件,放在matlab工作路径下,然后,开始随便搞个模型,将模型中变量数据类型设为enum:MotMd,如下图。

bdc99b6c51a1f551f78f807fab42899b.png

赋值可以这么来:

3cc50de95e037a4c4ab3a93022e4f7ad.png

仿真,就可以达到上图示波器的效果了。

7a7ca37f951ac276b9215dc68a1264b4.png

这种定义,在生成的A2L里,也会自动定义好模式名字,在用inca或ape观测的时候,显示效果跟上图示波器类似。

好了,本文就到这里。

汽车行业搞技术挣钱好难,买车买不起啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值