Matlab的Simulink连续模型离散化代码自动生成C语言(简明教程)

Posted 王张飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab的Simulink连续模型离散化代码自动生成C语言(简明教程)相关的知识,希望对你有一定的参考价值。

本文详细介绍了simulink连续模型离散化,代码生成以及最终运行到VS2010环境的详细过程,希望对大家有帮助。

第一步 打开模型


首先我们要确保模型仿真是正确的,即能够正常仿真。

第二步 将输入和需要的输出换成input和output模块。

第三步 离散化模型

如果你的模型中有连续模块,比如积分环节,那麽一定要离散化,否则即使生成C代码也会报错。

点击设置

设置求解器,采样时间。


最后点击Apply,点击OK

点击Analysis->Control Designer->Model Discretizer

设置和刚才一样的采样时间,点击转换。

转换完成后的状态空间模型和积分模块。


第四步 自定义变量名称

点击Model Explorer

选择Base Workspace,点击Add


名称改为你想要的变量名称,类型选择mpt.singal(其他想要输出的信号也一样)。


关闭该窗口。

右键想要输出或者输入的信号,点击Properties

输入刚才定义的变量名称,勾选第一项

其他信号同上。

第五步 生成C代码


剩下的全部默认就好

剩下的全部默认就好

只有这里根据你代码运行的设备进行选择,我是在64位的windows系统上测试,运行环系是VS2010.

完成之后生成如下文件
.

第六步 在VS2010上运行

打开VS2010

点击文件->新建->从现有的代码中创建

选择刚才自动生成的文件夹

定义项目名称

选择控制台应用程序

然后就一直下一步,然后完成

打开ert_main.c这个文件

可以找到一个while循环

flush((NULL));
while (1) 

修改为一下代码(注意要定义整型变量i):

while (i<=2000) 

r=5;

System1xu_step();

printf("%f", x[1]);

printf("\\n");

i++;

/* Perform other application tasks here */


运行结果

CSDN 社区图书馆,开张营业! 深读计划,写书评领图书福利~

以上是关于Matlab的Simulink连续模型离散化代码自动生成C语言(简明教程)的主要内容,如果未能解决你的问题,请参考以下文章

simulink连续求导的问题

matlab比较器在哪

Matlab的Simulink非连续模型代码自动生成C语言(简明教程)

MATLAB/Simulink 通信原理及仿真学习

基于离散连续线性和非线性模型进行模型预测(MPC)控制(Matlab代码实现)

MATLAB中的simulink是做啥的?说的通俗简单点