使用函数调用生成器测试导出函数模型仿真
使用多个函数调用生成器块具有不同的采样时间,让Simulink金宝app®为模拟计划函数调用组件。当Simulink中的速率单调调度行为与目标操作系统行为相似时,该策略是有用的。金宝app
创建一个新的Simulin金宝appk模型。
添加一个模型块引用导出函数模型。
使用指定函数调用事件函数调用生成器块。
指定数据输入。
模拟运行。
要创建此示例的模型,请参见创建一个导出函数模型.
要打开一个完整的测试模型,请参见ex_export_function_test_model_with_function_call_generators
.
创建引用出口函数模型
从model块引用导出函数模型允许添加函数调用事件和记录数据信号以进行测试,而无需更改模型本身。
添加一个模型块到一个新的Simulink模金宝app型。在模型名称框中,输入
export_function_model
.添加外港通往output_100ms而且output_10ms端口上的模型块。
添加一个正弦波块提供数据输入。集振幅来
2
而且样品时间来0.01
.将块连接到input_10ms接口的输入端口模型块。
创建用于仿真的测试模型(线束)
您只使用Simuli金宝appnk测试模型进行模拟。在模拟测试之后,从导出函数模型生成代码,然后将导出的函数代码与外部编码的调度器集成。
添加一个函数调用生成器块。集样品时间来
0.1
.将块连接到function_call_100ms输入端口。再加一秒函数调用生成器块。集样品时间来
0.01
.将块连接到function_call_10ms输入端口。
引用出口函数模型的调度限制
如果一个测试模型引用一个导出函数模型,有一些限制以确保与仿真结果一致。
对于测试模型:
你不能用两个函数调用生成器块具有相同的采样时间。
控件上的输入端口的函数调用模型块必须遵循根级函数调用的执行顺序轮廓尺寸引用的导出函数模型中的块。函数调用生成器采样时间较短的块首先执行。
如果测试模型在任何时间步中无序地调用引用的模型函数,Simulink将显示一个错误。金宝app有关已排序执行顺序的信息,请参见控制和显示执行顺序.若要禁用此限制,请清除配置参数的复选框为引用模型启用严格的调度检查.
你可以使用Mux的连接信号函数调用生成器块具有不同的采样时间,然后将它们连接到引用的导出函数模型。在“配置参数”对话框中,取消该参数前的复选框将每个离散的速率视为一个单独的任务.
对于export-function模型:
根级函数调用的样本时间轮廓尺寸块必须设置为inherited (
-1
)或匹配的采样时间函数调用生成器驱动它们的方块。
模拟导出函数模型
在生成代码之前,模拟导出函数模型以测试和观察其行为。
请注意
金宝appSimulink不模拟抢占函数调用。
为测试模型设置配置参数。在建模选项卡和设置部分中,选择模型设置
.选择模型引用面板。取消配置参数的复选框为引用的模型启用严格的调度检查.
验证“求解器类型”的配置参数设置为
固定步
,求解器设置为离散(无连续状态)
,固定步长(基本采样时间)设置为汽车
.设置信号记录。右键单击输出端口信号并选择日志选定信号.
模拟运行。
通过单击工具条图标打开模拟数据检查器
.
在测试模型之后,可以为函数生成代码。看到生成导出函数模型的代码.