原标题:Simulink小技巧:(四)使用GUI实时改变仿真环境
我们在使用Simulink进行控制系统的仿真设计的时候,自然需要对控制模型进行参数的调试,比较常见的做法是手动修改完模型测试向量输入配置以及更新参数以后,按下小绿按钮 运行仿真,然后检查输出信号的波形是否符合设计的理想值。除此之外,是否还有更简便的方法呢?答案当然是有,下面我便来介绍一种使用Matlab GUI来实现仿真参数实时配置的方法。
备选模型准备
这一次我挑选了Simulink示例模型WaterTank:
然后我对这个例子模型稍微改造了一下(仅为了说明GUI示例用,非必要):
△ 将PID模块修改成用分立模块搭建的PI模型
△两个测试用例(阶跃和正弦)用一个手动开关进行切换
△仿真时间设置为无限长
GUI界面准备
△ 一个按钮:对应Simulink中仿真的Start和Stop功能
△ 一个单选框:对应模型中的手动选择开关
△ 一个Slider和一个Editbox,两个控件都与Gain模块的Gain值相互映射
GUI 代码准备
GUI代码里面其实主要就是用到了Get_param和Set_Param的功能,两个函数的描述可参考Matlab帮助:
Start/Stop Simulation 按钮实现的功能:判断当前按钮显示的文本是Start Simulation还是Stop Simulation?
根据按钮所显示文本及当前模型的实际仿真状态(模型有可能被用户通过Simulink菜单手动开始/停止仿真)运行或停止仿真,并将显示文本进行切换。
单选框实现的功能:通过set_Para设置Switch的状态,与手动切换没有区别。
Slider
实现的功能:将Slider的位置范围映射为【0 20】,并将该值写入GainBlock的Gain值,并在文本编辑框中更新。
文本编辑框的功能:将文本编辑框内用户所输入的数字设置为Gain Block的Gain值,并将Slider移动到文本编辑框内数字所对应的位置。
经过以上几个步骤,就可以在在这个简单的GUI中:
△ 开始/停止仿真
△实时在GUI界面中改变Switch开关的路径
△ 实时改变Gain Block的值
并观察相应配置改变以后的模型运行结果,比手动做起来相对还是要方便不少,尤其是针对参数需要反复不断调试的应用场合。小伙伴们有兴趣可以使用上文的示例模型及代码自己试试看。返回搜狐,查看更多
责任编辑: