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

    文章

    4332

    浏览量

    62666
  • 代码
    +关注

    关注

    30

    文章

    4790

    浏览量

    68654
收藏 人收藏

    评论

    相关推荐

    零基础教程!TSMaster的图形数据导出CSV功能

    在车辆性能测试中,测试过程产生的数据可能涉及到速度、加速度、油耗、温度、压力、振动等各类传感器数据。这些数据通常以图表或曲线图形式展示,导出为CSV格式后,方便进行详细的数字化分析。例如,在进行碰撞
    的头像 发表于 12-20 20:01 125次阅读
    零基础教程!TSMaster的图形数据<b class='flag-5'>导出</b>CSV功能

    关于4G模组LuatOS开发:通用加解密函数(crypto)|全攻略

    本次我要说的攻略是关于4G模组LuatOS开发的通用加解密函数,我以我常用的Air780E模组为例子供大家参考。
    的头像 发表于 11-30 09:52 309次阅读
    <b class='flag-5'>关于</b>4G模组LuatOS开发:通用加解密<b class='flag-5'>函数</b>(crypto)|全攻略

    机智云历史数据导出与排查指南

    机智云历史数据导出与排查指南在使用机智云平台进行设备管理和数据监控时,历史数据的导出和排查是常见的需求。机智云提供了开放的API接口,方便用户通过编程方式导出设备历史数据,以便进行分析
    的头像 发表于 11-21 01:01 159次阅读
    机智云历史数据<b class='flag-5'>导出</b>与排查指南

    SUMIF函数对比VLOOKUP的优势

    在Excel中,数据管理和分析是日常工作中不可或缺的一部分。SUMIF函数和VLOOKUP函数是两个非常受欢迎的函数,它们可以帮助用户快速地处理和
    的头像 发表于 11-11 09:16 315次阅读

    SUMIF函数在数据分析中的应用

    在商业和科学研究中,数据分析是一项基本且关键的技能。Excel作为最常用的数据分析工具之一,提供了多种函数来帮助用户处理和分析数据。SUMIF函数
    的头像 发表于 11-11 09:14 325次阅读

    SUMIF函数的应用场景分析

    SUMIF函数在Excel中是一个强大的数据分析工具,特别适用于需要对数据进行条件筛选并求和的场景。以下是对SUMIF函数应用场景的分析: 1. 财务数据
    的头像 发表于 10-30 09:55 353次阅读

    合宙LuatOS应用,与时间相关那些事

    ()函数了。 接下来,我会讲一些与这个函数以及其他时间函数相关的知识。 一、时间戳相关 os.time()这个
    的头像 发表于 09-25 07:25 284次阅读
    合宙LuatOS应用,与时间<b class='flag-5'>相关</b>那些事

    函数信号发生器怎么调频率

    函数信号发生器是一种常用的电子测试设备,它能够产生各种波形、频率和幅度的信号,广泛应用于科研、教学、生产和维修等领域。在使用函数信号发生器时,调整频率是其中一个非常重要的步骤。本文将详细介绍
    的头像 发表于 05-20 18:23 1642次阅读

    MATLAB信号处理常用函数详解

    MATLAB是一款功能强大的数学软件,尤其在信号处理领域,它提供了众多的函数和工具箱,使得信号的分析、处理、仿真变得简单而高效。本文将详细介绍MATLAB在信号处理中常用的函数,并通过
    的头像 发表于 05-17 14:31 2270次阅读

    函数信号发生器按键介绍

    函数信号发生器是电子测试领域中不可或缺的重要工具,它能够模拟产生各种波形信号,如正弦波、方波、三角波等,广泛应用于电路测试、信号模拟、科学研究等多个领域。函数信号发生器的按键设计是其功能实现的重要组成部分,本文将对函数信号发生器
    的头像 发表于 05-15 16:14 1945次阅读

    函数信号发生器的常见故障及原因分析

    的应用价值。然而,随着使用时间的增长,函数信号发生器可能会出现各种故障,影响其正常工作。本文将对函数信号发生器进行详细介绍,并分析其常见故障及原因。
    的头像 发表于 05-10 16:13 1486次阅读

    典型环节的传递函数介绍

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

    arcmap怎么导出矢量数据

    ArcMap 是一款功能强大的地理信息系统软件,可用于导出矢量数据。下面是一个详细的步骤指南,以帮助你了解如何使用 ArcMap 导出矢量数据。 第一步:打开 ArcMap 首先,打开 ArcMap
    的头像 发表于 02-25 15:13 3425次阅读

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

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

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

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