概述
子图(Subchart)
如同simulink中有”子系统“,stateflow中也有”子图“。
先看看几种不同的子图及其外观。以下分别是:状态,子图,原子子图,链接原子子图。
其中,链接子图一定是原子子图。它指向库文件中的chart.
示例
示例简介
模型文件:
sf_atomic_sensor_pair.slx
chart内部:
文件:sf_atomic_sensor_lib.slx
chart内部:
功能说明
此例为一个冗余传感器的设计。RedundantSensors里面包含2个Sensor子图和一个Alarm状态。
在单个Sensor中,如果读取成功,则停留在OK状态,输出y等待输入u。读取失败后重新读取,0.5秒后进入Fail状态。
第一个sensor读取失败后,进入第二个sensor中读取。如果都失败,则进入Alarm状态。
关键点:
1,SliderGain模块
可以图形化的形式调节增益。是标准模块库中的一个元件,在Math Operations库里面。
2,链接子图:
创建链接子图的方法:复制库模型中的图表并将其粘贴到另一个模型中的图表中。
注:与链接子系统的操作方法不同。创建链接子系统的方法是,把模块从库模型文件中拖到目标模型文件中。
本例中,先创建库模型文件sf_atomic_sensor_lib.slx。添加chart,状态以及图形函数,并设置输入输出参数。
然后,先拷贝sf_atomic_sensor_lib/SingleSensor这个chart,再在sf_atomic_sensor_pair/RedundantSensors这个chart中粘贴,就会出现Link SingleSensor:
链接子图的右键菜单中,可以设置与库链接(Library Link)相关的功能:
3,数据映射
在库模型中的原子子图中设置的数据、参数都需要重新映射。右键点击原子子图,会多一个Subchart mappings...的菜单。
在这里,将Sensor1的输入u映射到u1,输出y映射到y。
将参数HIGH和LOW分别配置为75和-75.
同样的方法,将Sensor2的u映射到u2,y映射到y,参数配置为100和-100。
4,调用链接原子子图中的函数。
在库文件中,有图形函数inFailed
在模型文件中,需要判断该sensor是否处于Fail状态,如果是,则转到下一个状态。
5,测试验证
(1)输入1为50,输入2为80时,读取Sensor1成功。
输出y=50, Alarm = 0。
(2)输入u1为90,u2为80时,读取sensor2成功。输出y=80, Alarm = 0.
(3)输入u1为90,u2为110时,读取sensor都失败。输出y=0, Alarm = 1.
附录
使用原子子图的好处
原子子图结合了状态,普通子图和原子系统的功能。原子子图:
-
表现为独立图表。
-
支持用作库链接。
-
支持生成可重用的代码。
-
允许映射输入,输出,参数,数据存储内存和输入事件。
参考资料
使用原子子图创建可重用的子组件
https://ww2.mathworks.cn/help/stateflow/ug/what-is-an-atomic-subchart.html
使用原子子图减少编译时间
Reduce the Compilation Time of a Chart
https://ww2.mathworks.cn/help/stateflow/ug/tutorial-reducing-the-compilation-time-of-a-chart.html
使用链接子图,重用状态
Reuse a State Multiple Times in a Chart
https://ww2.mathworks.cn/help/stateflow/ug/tutorial-reusing-a-state-multiple-times-in-a-chart.html
Modeling a Redundant Sensor Pair Using Atomic Subcharts
https://ww2.mathworks.cn/help/stateflow/examples/modeling-a-redundant-sensor-pair-using-atomic-subcharts.html
Modeling an Elevator System Using Atomic Subcharts
https://ww2.mathworks.cn/help/stateflow/examples/modeling-an-elevator-system-using-atomic-subcharts.html
最后
以上就是搞怪唇膏为你收集整理的Simulink建模与仿真学习笔记之Stateflow子图(Subchart)子图(Subchart)示例附录参考资料的全部内容,希望文章能够帮你解决Simulink建模与仿真学习笔记之Stateflow子图(Subchart)子图(Subchart)示例附录参考资料所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复