完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在使用simulink开发AEB的功能,因为信号处理后要传入状态机用于状态跳转,最开始使用的全部以input的形式直接传入stateflow,但是后来发现matlab官方例子里使用的bus总线直接传递,方便了很多,所以改为bus的形式,粗略记录一下省的忘记,如果有能帮上的同学,甚是荣幸。
流程:确认信号类型+数量→创建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。 |
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-6-15 19:47 , Processed in 0.862466 second(s), Total 74, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:粤 B2-20160233 工商网监 粤ICP备 14022951 号