simulink-stateflow中的bus总线使用

    最近在使用simulink开发AEB的功能,因为信号处理后要传入状态机用于状态跳转,最开始使用的全部以input的形式直接传入stateflow,但是后来发现matlab官方例子里使用的bus总线直接传递,方便了很多,所以改为bus的形式,粗略记录一下省的忘记,如果有能帮上的同学,甚是荣幸。stateflow上手可参考:https://blog.csdn.net/zhanshen112/article/details/79697979  很是感谢啊。

    流程:确认信号类型+数量→创建bus类型→匹配bus类型→设置stateflow输入信号类型,匹配→ok

    先上官方例子,可在stateflow的help-example-Aerospace Applications查看,stateflow输入u以总线形式进入,然后正常结构体形式使用即可:

    实操:

    1.simulink里创建Bus Creator,将需要的信号连接

    2.打开bus的属性,可以看到output data type,下拉里并没有具体的bus类型,需要创建一个名为AEB_BUS的bus模板,就像先定义一个struct模板。

    3.在Base Workspace下添加bus,名为AEB_BUS,然后再添加bus的元素,我使用了7个量,如右所示,类型的话我的全是逻辑值,所以选择了布尔型。

    4.这时,回到第3步,将bus的输出类型匹配上刚设置好的这个bus类型即可。现在进入状态机,打开Model explorer(快捷键:ctrl+h),新增输入信号,然后类型选为Bus:AEB_BUS,匹配到我们的bus总线:

    可以看到bus信号结构体可以被识别到,告成:

    从外围看,simulink和STM之间要清爽了不少。

----------------------------------------update-------------------------------------------------

发现重新打开模型后,bus类型没有了,查到是没有保存base workspace,创建的bus模板会随着base workspace的清除而消失。记得保存base workspace。

 

  • 4
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值