在默认配置下,Simulink 模型自动生成的 C 代码的函数原型都是 void model_step(void) 的形式。但是,集成代码时,函数原型通常都需要满足指定的形式。
如何配置 Simulink 模型
才能使生成代码满足指定的函数原型?
点击末尾的 “阅读原文” 下载本文的案例模型
设置模型自动生成的代码的函数原型
要得到:
double myFun(double u1[10], double u2, double *y1)。
return y2
怎么做:
通过代码生成的接口配置界面 Interface 的 Configure Model Functions 来自定义 Simulink 模型所生成的 C 代码的函数原型。
举个例子
1. 模型
使用上一篇的模型:

默认配置生成代码的函数原型如下,数据传递都使用全局变量:

2. 配置
端口数据类型都设置为指定的 double:

接着配置函数原型为指定形式,如下图:

根据菜单设置,配置所需要的函数原型,最后使用Validate按钮来帮助检查:

如 Validate 后下方的红色文字所示,需要把 Base Workspace 里输入输出信号对象的 Storage Class 设置为 Auto。
另外,只能设置 return 一个变量。如果一定要返回多个值,可以考虑设置成结构体的形式。
因为模型里的 u1 是一个数组,所以在菜单里不能如上图设置为 Value。
3. 结果
最后得到的代码的函数原型:

总结
通过代码生成的接口配置界面 Interface 的 Configure Model Functions 页面来自定义模型代码的函数原型。
-
函数
+关注
关注
3文章
4406浏览量
66841 -
代码
+关注
关注
30文章
4941浏览量
73151 -
结构体
+关注
关注
1文章
131浏览量
11300
发布评论请先 登录
matlab的算法部署在simulink中
在以下嵌入式软件设计模型中,属于数据流模型的是,哪里有设计模型的介绍?
使用Simulink自动生成浮点运算HDL代码(Part 1)
AI的未来,属于那些既能写代码,又能焊电路的“双栖人才”
FA模型卡片和Stage模型卡片切换
将模型部署到S32K3xx EVB时出现“下载失败”错误的原因?如何解决?
如何实现MC33774IC在Simulink环境中使用基于模型的设计?
使用 QWQ:32B 模型搭配 VSCode 的 Cline 插件实现自动化代码编程!

配置Simulink模型,调皮属于你自己的代码
评论