c语言代码大全和详细解释_超详细的simulink代码生成(C语言)

中连续模型得离散化、自定义变量名称、代码生成,然后基于VS2010平台对生成的代码进行测试。

第一步 打开模型

bc69e20ffccf2601d2791c51379f13a5.png

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

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

35661052ec187b9ff28e4d5d264db523.png

第三步 离散化模型

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

点击设置

ffd1f56ebda02789a55255f2116b589e.png

设置求解器,采样时间。

afef9d63ac0de6052ab875cb52256601.png
ec21c84d20140125acd4530831ef1ab9.png

最后点击Apply,点击OK。

点击Analysis->Control Designer->Model Discretizer。

f210880574e965f5a61b74b721365adf.png

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

f3c0f7c8b5919e820ebe302c720fb8c8.png

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

ad7b6c1af68cdab49b446568cc5c0377.png
5260759d8b94dd6052eb0bdb9d47ae65.png

第四步 自定义变量名称

点击Model Explorer

5a5e8c12f6296cb05d729f2abe87623f.png

选择Base Workspace,点击Add。

a678acb192dbd378f949c3dc50f787df.png
3c74603b09e1e8ad7156354875397a0f.png

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

85b6e58122456a6c7e1779ed73a7106a.png
9848f4e87992057bd5c77e61095e7d8a.png

关闭该窗口。

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

968c61f680c6ad27a83546253fbb06f8.png

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

ccb27a2ba319a5393d3c6ffb9a839e15.png

其他信号同上。

第五步 生成C代码

b222dcf749edfa1b2ed468a1652bad68.png

剩下的全部默认就好

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

ecf705ced9bc4160cd2f5518f17f761e.png

完成之后生成如下文件

54fd20964b0447abd7b29181994b8074.png

第六步 在VS2010上运行

打开VS2010

839a08944c13225740ab1923a1c24cb8.png

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

a77afacafe2432e9bc4c89f889cec18f.png

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

13411a678c1879003e34a06fd221e7f8.png

定义项目名称

0b6fe79cafbb6f80f29cce98cb91306e.png

选择控制台应用程序

967202f786ab097304e7331f77897510.png

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

a99e0d745f719db9ef58c56078614b14.png

打开ert_main.c这个文件

35ddb912a87c70084b432d980c90ec40.png

可以找到一个while循环

f8609f6ff6fbaaf7a45ea18baf09acc3.png

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

while (i<=2000) {

r=5;

System1xu_step();

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

printf("");

i++;

/* Perform other application tasks here */

}

运行结果

d7da4f829b247270bf8e13eaf57ef5ca.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值