Simulink代码生成自动化操作(三)——GUI制作

本教程第三讲,主要讲解GUI制作和对python的调用。实现的功能为:点击按钮后,弹出对话框,选择相应的simulink文件,然后自动配置Simulink Configuration 并生成代码,最后自动挑选C和H文件。
一.准备工作

①下载并安装python3,将《Simulink代码生成自动化操作(二)》中的python封装成如下函数,并命名为find_CH_File.py(可以随便命名,但是要与后面导入的命令一致)
在这里插入图片描述②找到python.exe文件所在的位置,在matlab中运行pyversion+
python.exe文件所在的位置 ,这样我们就能够正常调用python了。
例如:pyversion C:\Programs\Python\python.exe
二.GUI制作
①本次制作只涉及一个按钮的控件,使用GUIDE,拖动一个PushBottm。
在这里插入图片描述
②增加一个对话框: 用来获取simulink文件的文件名和路径
代码如下:
在这里插入图片描述
③编写配置Configuration命令:用来自动配置Embedded Coder,详见《Simulink代码生成自动化操作(一)》
代码如下:(这里设置不自动生成和打开report,因为后面要删除文件夹)在这里插入图片描述
④编写编译命令:因为GUI的数据空间不在base workspace,直接使用rtwbuild命令会找不到生成的代码,所以这里先使用命令行设置simulink代码生成目录为当前simulink文件所在的目录。又因为这一设置对所有的simulink文件都有效,凡是在simulink界面进行编译,都会生成到这个文件夹。为避免对后续编译造成影响,设置命令行,编译后将设置还原。
代码如下:
在这里插入图片描述
⑤python文件调用
代码如下:在这里插入图片描述
三.总结
将上面③④⑤代码加入②的后面,即可实现本教程的功能。关注本公众号,后台回复‘Simulink代码生成自动化工具’即可获得全部文件。如果觉得有用,请点击看看,或者进行转发,谢谢。后续将分享更多教程。
在这里插入图片描述

通过GUI来控制Simulink进行系统仿真-GUI控制钟摆动画.rar 通过GUI来控制Simulink进行系统仿真,仿真的对象是动态地钟摆系统.别看题目是GUISimulink,其实最重要的中心内容在于S-function.Math大哥说过,S-function的本质就是系统状态的更新,这话总结了一切,系统的更新也就是采样点的刷新,计算当前采样点的全部输出或者包含其微分积分信息,然后到下一个时间点,再刷新.而区分其工作阶段的标志flag的值分别对应各个工作状态:初始化,连续状态微分更新,离散状态更新,输出更新,采样时刻更新,仿真结束这六种状态.其调用格式就不详细介绍了,大家自己调用模版文件出来瞧瞧就很明白了(edit sfintempl.m或者open sfintempl.m或者type sfintempl.m).   大概的原理就讲这么多,下面进入到我的作品,<>.在这个作品中,我使用了两个S-function,一个是来描述钟摆本身的运动学特性,一个是模仿硬件(单片机的外部中断)来控制整个仿真的进行与终止.制作过程比较麻烦,程序大概四五百行,我大致说说核心的东西就应付过去吧.核心:S-function早软件中实现硬件支持的中断功能,通过刷新系统状态和检测全局变量stopf来确定是继续执行仿真还是终止动画进行.它的每次更新都把stopf变为0,但控制器的按钮按下把stopf变成1,在S-function每次计算输出时会对stopf检测,若为1,那么动画会静止.先给大家看看控制版面,带有仿真时间的输入,如果想保持仿真,那么可以输入inf. 1.jpg 2.jpg 打开模型按钮可以打开.mdl的单摆系统结构图,下面的就是检测停止状态stopf的S-function结构图,需要与系统本身放在一个.mdl文件中,否则只程序的编写是不足够的. 摆过去之后还回循环往复: 3.jpg 4.jpg 按照这种语法介绍有没有什么理解上的误会,希望大家留下宝贵意见,帮助我提高,感谢拉! GUI控制钟摆动画.rar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值