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

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

3天内不再提示

关于导出函数的相关分析和介绍

MATLAB 来源:djl 作者:Guy Rouleau 2019-09-16 16:46 次阅读

生成代码

我们拿下面这个模型作为一个例子。它有一个 Bias 和一个 Unit Delay 模块,每 0.001s 运行一次,另外有一个 Math Function 模块,每 0.01s 运行一次。

关于导出函数的相关分析和介绍

就像你们知道的那样,Embedded Coder 可以把 Simulink 模型生成 C 代码。这里使用 Embedded 默认的系统目标文件配置(tlc文件),所生成的代码像下面这样:

关于导出函数的相关分析和介绍

如你所见,代码里有一个 Initialize 函数以及一个 Step 函数。Step 函数将以模型的基础采样率调用,在这里是 0.001s。最好是把这个代码放在单任务环境里运行。

如果你需要的话,也可以让 Simulink 把每个离散采样率归到一个单独的任务。

关于导出函数的相关分析和介绍

在这所生成的代码里,每一个采样时间的部分都单独生成一个函数。这样,你就可以用你实现的调度器,来任意调用各个采样率的部分。

关于导出函数的相关分析和介绍

导出函数

各个采样率的部分都能生成一个单独的函数还挺有用的,但是,如果你想更随心所欲的控制代码的执行,该怎么做呢?比如说,把某个采样率的部分拆成若干个任务,然后指定每个任务不同的优先级。

为此,Embedded Coder 提供了导出函数(export functions)的功能。这个功能可以直接控制某个部分单独生成函数,另外还可以仿真它们的调度和优先级。

为了匹配导出函数这个目的,你的模型必须以特定的方式来搭建。需要导出的函数顶层必须只包含 Function Call 子系统,输入以及输出端口。这样的话,每一个子系统会生成一个函数。

比如,我们刚才那个模型,重新按照下面这个方式来实现:

关于导出函数的相关分析和介绍

对于仿真来说,不同任务的调度必须显示指定出来,比如像上图那样,使用 Stateflow 来实现。要生成代码的时候,你可以在这个子系统上右键,然后导出这个函数。

关于导出函数的相关分析和介绍

得到的代码就像下面这样:

关于导出函数的相关分析和介绍

你就可以把这些代码集成到你手写的调度器里去了。就像我之前提到的,通过这种方式,你可以将一个速率的部分拆分成多个函数或者任务。

导出函数模型

对于更大型的项目,你也可以将导出函数构造为单独的模型(Export Function Models)。

在这里,顶层的模型只是用于仿真,被引用子模型要生成代码。 Simulink 会自动识别这个模型是用于导出函数的,它所生成的代码也会跟上面的那个子系统类似。

关于导出函数的相关分析和介绍

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

    关注

    3

    文章

    3866

    浏览量

    61308
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66746
收藏 人收藏

    评论

    相关推荐

    典型环节的传递函数介绍

    电子发烧友网站提供《典型环节的传递函数介绍.pdf》资料免费下载
    发表于 03-01 10:28 0次下载

    系统函数怎么判断低通高通

    判断一个系统函数是低通还是高通,可以通过多种方法和指标来进行分析。下面将介绍常用的几种判断方法,并详细解释每种方法的原理和应用。 频率响应分析法 通过
    的头像 发表于 01-12 11:06 658次阅读

    通过新的ONNX导出器简化模型导出流程

    大家好。我叫Manav Dalal,今天我将讲解如何通过新的ONNX导出器简化模型导出流程。如果你还没有听说过ONNX,它是一种用于表示机器学习模型的开放格式。它定义了一套通用的运算符,机器学习
    的头像 发表于 01-10 09:45 275次阅读
    通过新的ONNX<b class='flag-5'>导出</b>器简化模型<b class='flag-5'>导出</b>流程

    wps的vlookup函数的使用方法及实例

    WPS Office是一款功能全面的办公软件,其中的VLOOKUP函数在数据分析和处理中非常常用。在本文中,我们将详细介绍WPS Office中VLOOKUP函数的使用方法,并提供一些
    的头像 发表于 12-01 10:58 1417次阅读

    sigmastudio的导出文件,图形化编程导出文件的地址是如何定义的?

    关于sigmastdio的导出文件(用来控制单片机)中,对于修改寄存器的地址是数据手册可查的,但是发现关于图形化编程的导出文件的地址不是固定的,请问后者的地址是如何定义的?有没有办法提
    发表于 11-29 06:10

    博图的导入/导出设置介绍

    TIA Portal 设置可导出为一个文件。在导入这些设置时,将同时应用这些设置。通过该功能,可将设置发送给其他用户。与此类似,可统一设定系统设置,为多个工程组态 PC 设置统一的操作环境。
    的头像 发表于 11-27 11:45 2780次阅读
    博图的导入/<b class='flag-5'>导出</b>设置<b class='flag-5'>介绍</b>

    c语言中函数函数体用什么符号括起来

    函数 是指将一组能完成一个功能或多个功能的语句放在一起的 代码结构 。 在 C语言程序 中,至少会包含一个函数,及主函数main()。本文将详细讲解关于
    的头像 发表于 11-24 15:52 309次阅读
    c语言中<b class='flag-5'>函数</b>的<b class='flag-5'>函数</b>体用什么符号括起来

    navicat怎么导出数据库文件

    导出数据库文件是数据库管理中的一个重要操作,而Navicat是一款流行的数据库管理工具,具有强大的导出功能。在本文中,我将详细介绍如何使用Navicat导出数据库文件,并在步骤中提供所
    的头像 发表于 11-21 10:53 3873次阅读

    函数式接口的应用知识点

    (5)对java.util.function包进行解读 (原理篇)介绍函数式接口的实现原理 应用篇将阶段相关的JDK源码以及给出典型的示例代码 原理篇则从编译、JVM维度来分析
    的头像 发表于 10-13 11:32 313次阅读
    <b class='flag-5'>函数</b>式接口的应用知识点

    Python的函数式编程介绍

    函数 回顾一下函数函数就是把固定的逻辑放在一起,方便我们下次使用,不用写重复的代码,提升代码的复用性以及可读性;一个好的函数,可以只通过函数
    的头像 发表于 09-27 16:54 908次阅读

    结构函数的由来及推导过程

    在前面的《T3Ster结构函数应用-双界面分离法测试RθJC(θJC)》文章中,我们介绍了结构函数的一些应用双界面分离法测试RJc,结构函数应用于产品内部缺陷
    的头像 发表于 09-19 10:50 1202次阅读
    结构<b class='flag-5'>函数</b>的由来及推导过程

    免费音频传输函数分析

    免费音频传输函数分析
    发表于 07-31 17:10 0次下载

    Altium Designer如何导出Gerber文件

    关于AD 导出Gerber 文件,下文结合我的实际工作,分享下我的做法。
    的头像 发表于 07-23 14:23 2w次阅读
    Altium Designer如何<b class='flag-5'>导出</b>Gerber文件

    Vitis调试技巧-从Vitis中导出数据到本地

    在Zynq开发中有一个很常用的功能是将ARM端的数据导出到本地,然后通过Matlab,Python等工具对数据进行分析
    的头像 发表于 05-29 09:35 3929次阅读
    Vitis调试技巧-从Vitis中<b class='flag-5'>导出</b>数据到本地

    Workbench中使用APDL函数方程加载的操作方法和一些注意事项

    Workbench中使用APDL函数方程加载,与在ANSYS经典APDL函数方程加载是非常相似的,只不过要把导出函数方程命令流粘贴到workbench求解器的Commands里。
    的头像 发表于 05-19 10:34 3134次阅读
    Workbench中使用APDL<b class='flag-5'>函数</b>方程加载的操作方法和一些注意事项