主要内容

导出功能模型概述

导出功能模型是仿真软件金宝app®模型生成代码独立函数,可以集成与外部环境和调度器。定义函数使用函数调用子系统,函数调用模型,金宝app仿真软件的功能,消息触发子系统,功能块。

下面的定义导出功能模型包含两个功能函数调用子系统块。创建模型的循序渐进的过程,看到的创建一个导出功能模型

从这个模型生成的代码有两个独立的函数,一个用于延迟一平方函数和其他函数。

/ * *文件:export_function_model。c *代码生成的仿真软件模型“export_f金宝appunction_model”。* /空白function_call_100ms (void) / *样品时间:[0.1,0.0 s] * / {export_function_model_Y。output_100ms = export_function_model_DW.UnitDelay_DSTATE;export_function_model_DW。UnitDelay_DSTATE = export_function_model_Y。output_100ms + 1.0;}无效function_call_10ms (void) / *样品时间:[0.01,0.0 s] * / {export_function_model_Y。output_10ms = export_function_model_U。input_10ms * export_function_model_U.input_10ms;}

导出功能模型的工作流

四种常见流程创建导出功能模型的差异表现在你之前模拟和测试您的模型生成代码的功能。

当函数调用序列简单被指定作为模型输入,模拟使用一个输入矩阵的首选方法是测试一个导出功能模型。看到测试导出功能模型模拟使用输入矩阵

当函数调用顺序是太复杂的指定一个输入矩阵,创建一个测试模型(利用)来模拟目标环境的行为。用这个测试模型提供函数调用导出功能模型的输入。看到使用函数调用测试导出功能模型模拟发电机,测试导出功能模型模拟使用时间表编辑器测试导出功能模型模拟使用Stateflow图表

允许块

在顶层,导出功能模型仅限于虚拟块,块与常数(样品时间,以下模块:

  • 轮廓尺寸

  • 外港

  • 总线的创造者

  • 总线选择器

  • 在公共汽车元素

  • 公共汽车元素

  • 函数调用子系统

  • 模型与函数调用的输入端口

  • 金宝app仿真软件的功能

  • 函数元素

  • 函数元素调用

  • 消息触发子系统

  • 初始化函数

  • 重新启动功能

  • 重置功能

  • 终止函数

  • 数据存储内存

  • 合并

  • 功能与函数调用的输入端口

  • 函数调用分裂

  • 显示

  • 范围

看到Nonvirtual和虚拟块

要求导出功能模型

一个导出功能模型成功地生成函数代码,必须满足以下要求。

模型配置参数:

  • 解算器类型设置为固定步

  • 解算器设置为汽车离散

  • 代码生成系统目标文件设置为ert.tlc。选择ert.tlc需要嵌入式编码器®许可证。

  • 函数调用模型块,定期取样时间约束设置为引用的模型确保样品时间独立

根级函数调用轮廓尺寸块:

  • 输出函数调用复选框选中。

  • 不能得到一个信号从一个异步任务规范块。

根级外港阻塞必须连接到一个孤立的或接地:

  • 函数调用块由根级函数调用轮廓尺寸块。这个物体可能是一个函数调用子系统块,一个函数调用模型块,或一个功能块与函数调用的输入。

  • 金宝app仿真软件的功能块。

  • 初始化函数,重新启动功能,重置功能,或终止函数块。

  • 合并Mux块完全由这样的街区。

根级数据轮廓尺寸外港不能连接到虚拟总线数据块的信号。

根级函数调用子系统块和函数调用模型块:

  • 块内的所有内部块必须支持代码生成。金宝app

  • 如果触发样品时间类型设置为:

    • 触发必须有,内部块样品时间设置为1

    • 周期,root函数调用轮廓尺寸块必须有它样品时间设置为一个离散时间和所有内部块必须指定样品时间设置为1或指定的离散时间。

指定一个导出功能模型

当您创建一个导出功能模型,告诉仿真软件将您的模型视为一个导出功能模型通过指定它作为导出功能模型金宝app。

指定模型的导出功能模型,打开属性检查器。与模型的根级别显示和没有块突出,去执行选项卡并选择设置执行域复选框。然后,从列表中,选择导出功能

属性检查器对话框中,在“执行域”选中复选框和下拉菜单“域”与“出口函数”选中

你也可以指定一个模型作为导出功能模型通过设置IsExportFunctionModel模型的参数。

set_param (ModelName“IsExportFunctionModel”,“上”)

金宝app模型显示一个徽章显示“f ()”徽章在画布的左下角显示一个模型被指定为一个导出功能模型。

在您指定一个模型作为导出功能模型,仿真软件执行编译时检查警告你如果模型不满足导出功能模型的要求。金宝app

如果您加载模型创建和保存在一个释放R2022a之前,模型指定模型的导出功能模型模型是否满足需求是一个导出功能模型。金宝app在某些情况下,您可能需要手动指定一个导出功能模型等模型。

样品时间函数调用子系统

在导出功能模型,您可以指定样本根级函数调用的时间轮廓尺寸块和触发块内根级函数调用子系统块或函数调用模型块。下面的表显示了如何指定这些示例。

触发样品时间类型 触发样品时间 轮廓尺寸样品时间 函数调用率在模拟

触发

未指定,参数是不活跃的。

1(继承)

对于模拟,函数调用启动程序连接到轮廓尺寸块设置仿真的速度。

指定的离散时间

函数调用启动程序,在测试模式,连接轮廓尺寸块必须有一个样本的时间等于指定的离散时间轮廓尺寸块。

为模拟组件执行指定的离散速度。如果一个函数调用使用不同的样本来源,模型显示一条错误消息。金宝app

周期

周期函数调用运行时检查应用如果导出功能模型从一个引用模型块。

1(遗传)或指定的离散时间的轮廓尺寸块。

1(继承)

这种配置是不允许的。金宝app模型显示一条错误消息。

指定的离散时间。

模拟,组件执行指定的离散采样时间。如果一个函数调用源使用不同的采样时间,模型显示一条错误消息。金宝app

根级函数调用执行订单尺寸块

通过指定样本时间和优先级函数调用轮廓尺寸你可以控制块的执行顺序函数调用在仿真子系统和函数调用模型。或者,您可以使用时间表编辑器或Stateflow®测试调度图。看到测试导出功能模型模拟使用时间表编辑器测试导出功能模型模拟使用Stateflow图表

  1. 为模拟执行指定样品的时间。右键单击一个函数调用轮廓尺寸块,然后选择块的参数

  2. 选择信号属性选项卡。在样品时间框,输入一个离散时间。

  3. 为模拟指定块的优先级。右键单击一个函数调用轮廓尺寸块,然后选择属性

  4. 优先级框,输入一个优先级值。

  5. 显示模拟块执行顺序。在调试选项卡上,选择信息覆盖,然后从下拉框中,选择执行顺序。这显示对生成的代码没有影响。

在接下来的导出功能模型,函数调用子系统2样品时间轮廓尺寸块2组0.01(10)女士之前运行函数调用子系统1样品时间轮廓尺寸块1组0.1(100毫秒)。

确定相关的执行顺序

金宝app模型比较函数调用轮廓尺寸块的属性来确定它们的相对执行顺序使用以下规则:

  1. 优先级,高优先级(少)执行

  2. 样品时间-小样本先执行

  3. 首先执行端口号——较小的端口号

  4. 如果OrderFunctionsByDependency为模型参数设置“上”块,有相同的样品时间进一步排序基于相对数据依赖的功能块连接。

看到的效果OrderFunctionsByDependency参数,考虑下面的模型。

三个函数调用子系统,编号为1、2和3。1号样品时间100毫秒。2号和3号样品时间10 ms。3号的输出是connnected 2号的输入。轮廓尺寸块驾驶1号、2号和3号与F2注释,分别F0和F1。

轮廓尺寸块1执行去年因为它有一个长时间比示例轮廓尺寸块2和3,相同的样本。如果OrderFunctionsByDependency被设置为“关闭”,轮廓尺寸块2执行之前轮廓尺寸块3基于它们的端口号。执行顺序是2、3、1。

OrderFunctionsByDependency参数设置为“关闭”默认情况下。要打开它,请使用这个命令。

set_param (ModelName“OrderFunctionsByDependency”,“上”)
OrderFunctionsByDependency设置为“上”,轮廓尺寸块3执行之前轮廓尺寸块2因为函数调用子系统之间的数据依赖关系2和3。执行顺序是3、2、1。

三个函数调用子系统,编号为1、2和3。1号样品时间100毫秒。2号和3号样品时间10 ms。3号的输出是connnected 2号的输入。轮廓尺寸块驾驶1号、2号和3号与F2注释,F1和F0,分别。

请注意,OrderFunctionsByDependency参数只影响它的模型设置参数不传播到引用的模型。

当两个街区有不同的值优先级参数,首先执行优先级越高的块。如果优先级参数相同的情况下,速度的块(小样本时间)执行。如果优先级和样品是相同的两个街区,首先执行块与较低的端口号。唯一的例外是当一个块和之间的数据依赖关系OrderFunctionsByDependency被设置为“上”,在这种情况下,块后执行块所依赖的依赖。

请注意

当顶层模型的模拟模式加速器或快速加速器,模拟仿真软件不执行运行时检查根级函数调用的执行顺序金宝app轮廓尺寸块内部引用导出功能模型。

假设一个导出功能模型有五根级函数调用轮廓尺寸块,E,块属性如表所示。块没有数据依赖,或OrderFunctionsByDependency被设置为“关闭”。以确定它们的相对执行顺序,模型比较了他们金宝app优先级参数,样品时间(如果不同和non-inherited)和端口号。

根级函数调用轮廓尺寸 一个 B C D E
优先级 10 30. 40 40 30.
样品时间 1 0.2 0.1 0.1 1
端口号 5 4 3 2 1
  • 块五块的优先级最高。一个执行。

  • B和E执行后但在C和d B和E具有相同的优先级,模型比较他们的样品时间来确定执行顺序。金宝appE的样品时间1(继承),小于0.2B, B . E的样品时间执行之前。

  • C和D具有相同的优先级和相同的不同,non-inherited样品时间。端口号为D(2)小于C(3),所以D C之前执行。

相对这些函数调用的执行顺序轮廓尺寸块是A, E、B、D、C。

嵌套模型导出功能

嵌套的导出功能模型提供了一个额外的一层组织。下面的模型有两个引用导出功能模型从一个引用模型块。

请注意

一个导出功能模型不能包含一个引用模型和异步函数调用的输入,但可以包含函数调用子系统和函数调用模型。与异步函数调用的输入模型可以包含一个导出功能模型,函数调用子系统或函数调用模型。

导出功能模型和多实例函数调用模型

您可以使用函数调用子系统块或函数调用模型块在一个导出功能模型。如果你使用一个函数调用模型块,您还可以创建模型的多个实例。

  1. 定义你的算法模型,该模型包含了一个触发块。集触发类型函数调用

  2. 从一个参考模型模型块。结果是一个函数调用模型。

  3. 连接一个函数调用轮廓尺寸块并选择输出函数调用复选框。添加信号轮廓尺寸外港块。更新模型(ctrl - d)。结果是一个函数调用模型导出功能模型。

  4. 复制引用模型和端口块创建第二个模型的实例。不同的两个实例被称为根级函数调用轮廓尺寸在不同的任务。

导出功能模型和模型与异步函数调用的输入

导出功能模型功能是用于模型与异步函数调用的输入端口,也称为JMAAB-B模型。你使用这些模型主要是在仿真软件的仿真软件环境调度程序调用函数。金宝app

比较的特点 导出功能模型 模型与异步函数调用的输入
定义 这些模型有根级函数调用轮廓尺寸没有连接到一个块异步任务规范块。这些轮廓尺寸块触发函数调用子系统或函数调用模型(模型块与触发块)。 这些模型有根级函数调用轮廓尺寸块连接到异步任务规范块。这些轮廓尺寸块触发函数调用子系统或函数调用模型。
根级块 只允许块中执行函数调用上下文根级别的。 块在non-function-call上下文中执行也是允许的。
数据传输 使用数据传输指标解释仿真结果。导出功能模型中的数据传输不受保护的默认生成的代码。更多细节,请参阅的函数调用子系统的输入数据 使用率转换保护数据块之间传输函数调用子系统运行在不同的利率。有关更多信息,请参见率转换
模拟的支持金宝app 这些模型支持独立的模拟和测金宝app试模型仿真模拟模式。 这些模型支持测试模型仿真模金宝app拟模式和独立的模拟在正常,加速器,和快速加速模式。
代码生成的支持金宝app 顶级模特,支持独立的代码生成。金宝app 顶级模特,支持独立的代码生成。金宝app

另请参阅

相关的话题