0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

MATLAB 来源:djl 作者:柚籽 2019-09-16 17:55 次阅读

在默认配置下,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. 模型

使用上一篇的模型:

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

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

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

2. 配置

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

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

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

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

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

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

如 Validate 后下方的红色文字所示,需要把 Base Workspace 里输入输出信号对象的 Storage Class 设置为 Auto。

另外,只能设置 return 一个变量。如果一定要返回多个值,可以考虑设置成结构体的形式。

因为模型里的 u1 是一个数组,所以在菜单里不能如上图设置为 Value。

3. 结果

最后得到的代码的函数原型:

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

总结

通过代码生成的接口配置界面 Interface 的 Configure Model Functions 页面来自定义模型代码的函数原型。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61308
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66751
  • 结构体
    +关注

    关注

    1

    文章

    125

    浏览量

    10750
收藏 人收藏

    评论

    相关推荐

    如何快速打造属于自己的工业物联网云平台

    如何快速打造属于自己的工业物联网云平台 工业物联网云平台是工业4.0的核心,是实现智能制造、智能物流、智能工厂的重要手段。在快速发展的信息化时代,如何快速打造属于自己的工业物联网云平台
    的头像 发表于 01-25 16:51 211次阅读
    如何快速打造<b class='flag-5'>属于</b><b class='flag-5'>自己</b>的工业物联网云平台

    simulink自动生成ROS代码

    当我们用simulink完成控制程序的搭建后,我们期望下一次可以直接对ROS进行控制,而不是每次都需要启动matlab和simulink,因此我们可以使用simulink代码生成器,
    的头像 发表于 11-15 17:53 335次阅读
    <b class='flag-5'>simulink</b>自动生成ROS<b class='flag-5'>代码</b>

    Simulink中如何创建一个Publisher

    > Library Browser打开Simulink库浏览器。单击ROS工具箱选项卡(也可以在MATLAB命令窗口中输入roslib)。选择ROS库。 4.将Publish块拖到模型中。双击该块以配置主题和消息类型。 5.为
    的头像 发表于 11-15 17:32 296次阅读
    <b class='flag-5'>Simulink</b>中如何创建一个Publisher

    利用Simulink自动生成STM32串口代码

    功能:利用Simulink自动生成STM32串口代码,在Keil中编译后直接下载到主芯片,实现串口通讯的功能。
    的头像 发表于 10-25 17:04 1037次阅读
    利用<b class='flag-5'>Simulink</b>自动生成STM32串口<b class='flag-5'>代码</b>

    simulink模型的源文件处理

    前一篇文章 雷达信号处理-脉冲压缩(simulink时域建模) 中所建模型为早期所建,刚好遇到有粉丝朋友想要simulink模型的源文件,于是重新找到了源
    的头像 发表于 10-16 11:03 368次阅读
    <b class='flag-5'>simulink</b><b class='flag-5'>模型</b>的源文件处理

    无刷直流电动机SIMULINK仿真模型资料

    无刷直流电动机SIMULINK仿真模型,欢迎大家下载~
    发表于 10-09 09:03

    如何测试带服务接口的Simulink模型

    在Matlab 2022a之后引入了Service Interface的建模元素,这让Simulink模型拥有了向外部其他模型提供函数的能力,也为服务接口建模语义打下基础。
    的头像 发表于 07-22 09:51 744次阅读
    如何测试带服务接口的<b class='flag-5'>Simulink</b><b class='flag-5'>模型</b>?

    simulink命令有哪些 simulink命令集大全

      simulink的命令集  仿真命令  sim 仿真运行一个simulink模块  sldebug 调试一个simulink模块  simset 设置仿真参数  simget 获取仿真参数
    发表于 07-18 15:12 2次下载

    MBD的Simulink使用技巧:详解代码生成中的模型代码(2)

    上一篇文章中提到,生成嵌入式代码,必须选择定步长求解器。实际中,生成嵌入式代码几乎不会使用Simulink模型库中的连续模型,往往需要通过最
    的头像 发表于 07-13 15:13 2966次阅读
    MBD的<b class='flag-5'>Simulink</b>使用技巧:详解<b class='flag-5'>代码</b>生成中的<b class='flag-5'>模型</b>与<b class='flag-5'>代码</b>(2)

    MBD的Simulink使用技巧:Simulink代码生成的基本概念(1)

    MATLAB/Simulink中一共提供三个代码生成的工具
    的头像 发表于 07-13 15:11 1402次阅读
    MBD的<b class='flag-5'>Simulink</b>使用技巧:<b class='flag-5'>Simulink</b><b class='flag-5'>代码</b>生成的基本概念(1)

    介绍一下simulink模型工作区

    simulink模型工作区与 MATLAB 工作区的差异在于每个模型都带有自己的工作区以存储变量值。
    的头像 发表于 06-29 15:17 1858次阅读
    介绍一下<b class='flag-5'>simulink</b>的<b class='flag-5'>模型</b>工作区

    基于Simulink的汽车2自由度模型

    本期采用Simulink建立汽车2自由度动力学模型。为了便于掌握汽车稳定性的基本特性,对汽车简化为线性二自由度的汽车模型,忽略转向系统的影响,直接一前轮转角作为输入;忽略悬架的作用,认为汽车车厢只作用于地面的平面运动。
    发表于 06-28 16:39 1327次阅读
    基于<b class='flag-5'>Simulink</b>的汽车2自由度<b class='flag-5'>模型</b>

    如何在Simulink中搭建电池模型

    随着特斯拉即将在国内建厂,相信新能源汽车在国内越来越火爆,而电池对于新能源汽车而言,是一个极其重要的部件。今天就来聊一聊,如何在Simulink中搭建电池模型
    的头像 发表于 06-28 10:48 1759次阅读
    如何在<b class='flag-5'>Simulink</b>中搭建电池<b class='flag-5'>模型</b>?

    simulink和pspice联合仿真问题

    根据网上的资料操作,已可以再simulink中调用pspice中的模型,但是出现仿真错误如下: 网上查到的解决方案并没有解决我的问题,有没有人可以帮我看看呀,或者您的联合仿真是通过什么连接的 我
    发表于 05-23 15:04

    Simulink自动代码生成电机控制:基于Keil软件集成

    嵌入式软件开发包含应用层和底层,目前基于模型的开发软件架构总结为以下几种: 1.应用层全模型生成,底层手写代码 这种方法比较灵活,底层代码可以找芯片厂的Demo程序,也可以
    发表于 05-05 14:51 8次下载
    <b class='flag-5'>Simulink</b>自动<b class='flag-5'>代码</b>生成电机控制:基于Keil软件集成