Matlab的Simulink非连续模型代码自动生成C语言(简明教程)
Posted 王张飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab的Simulink非连续模型代码自动生成C语言(简明教程)相关的知识,希望对你有一定的参考价值。
本报告为Matlab的Simulink【非连续模型】代码自动生成C语言的实现说明文档。
实现步骤
1.搭建框图
采用Matlab 2018a
搭建仿真框图如下,命名为ADD_Test.c
2.初始设置
选择菜单栏Simulink
->ModelConfiguration Parameters
,按照下方所示设置参数,设置为固定步长,采用四阶龙格库塔方法解算微分方程,具体步长还可以在后期进行二次设置。
系统的目标文件选择为ert.tlc
,即采用嵌入形式的C/C++
代码生成,其结构更为简洁。生成的语言可选择C
或者C++
。
接口模块 进行如下设置,需要选中continuoustime
选项。至此,参数设置工作完毕,其余设置采用默认设置方式。
3.代码生成
直接点击代码生成功能键,生成代码成功后会收到如图5所示的提示。此时,在示例文件test.mdl
的目录下会出现名为slprj
和test_ert_rtw
的文件夹,如图6所示,包含了生成的C
代码的相关文件。
4.代码应用
代码可在Visual Studio2013
上运行,通过文件
->打开
->项目/解决方案
,找到test_ert_rtw\\msvc
目录下的test.sln
文件并添加,添加成功如下所示。
如下所示,主文件经过初始化后,在while
循环中调用test_step()
函数按单步执行,最后通过test_terminate
终止。在带有积分环节的模型中,还可以通过找到test_M->Timing.stepSize0
重新设置仿真步长。图7显示,每次给输入设置常值,经第五次调用后的输出结果。
结论
采用Matlab和C混合编程,设计简单,结构清晰,修改方便,同时大大降低了编程失误带来的风险,为保证项目有效进行提供了保障。
(2)如图所示,在matlab的工作界面输入“mbuild -setup”,选择C++选项;再输入“mex -setup”,选择C++选项;接着输入deploytool命令;
(3)接着会得到如下图的提示,选择Library Complier选项,进入如图所示的Complier界面,选择.NETAssembly,添加相关脚本文件,把类的名字定义为airplane(自定义),确认后选择Package按钮进行打包,即可生成相应dll文件。
(4)最后会跳出如下界面,生成的几个文件夹包含了调用到的dll文件。
以上是关于Matlab的Simulink非连续模型代码自动生成C语言(简明教程)的主要内容,如果未能解决你的问题,请参考以下文章
matlab simulink 模糊控制蔬菜气雾栽培营养液供给自动监控
MATLAB从入门到精通-Simulink模块连续模块之积分(Continuous-Integrator)