目录
PIL 的目标连接配置
对顶层模型运行 SIL 或 PIL 仿真
对 Model 模块运行 SIL 或 PIL 仿真
SIL 或 PIL 模块仿真
硬件实现设置
使用软件在环 (SIL) 和处理器在环 (PIL) 仿真,测试模型组件与从组件生成的生产代码之间的数字等效性。
使用 SIL 仿真,在您的开发计算机上测试源代码。使用 PIL 仿真,可在实际目标硬件或指令集仿真器上运行将要进行产品部署的编译后目标代码来测试这些目标代码。要确定模型组件与生成的代码是否在数值上等效,请将 SIL 和 PIL 结果与普通模式结果进行比较。
运行 SIL 和 PIL 仿真有三种方法。可以使用顶层模型、Model 模块,或从子系统创建的 SIL 和 PIL 模块。
PIL 的目标连接配置
在运行 PIL 仿真之前,必须配置目标连接。通过目标连接配置,PIL 仿真能够:
-
编译目标应用程序。
-
在目标上下载、启动和停止应用程序。
-
支持 Simulink 与目标之间的通信。
要生成目标连接配置,可以使用提供的目标连接 API。对于支持的硬件,可以使用目标支持包。
对顶层模型运行 SIL 或 PIL 仿真
通过运行顶层模型 SIL 或 PIL 仿真测试生成的模型代码。使用这种方法:
-
测试从顶层模型生成的代码,它使用独立代码接口。
-
配置模型以从 MATLAB 工作区加载测试向量或激励输入。
-
在顶层模型的普通、SIL 和 PIL 仿真模式之间轻松切换。
打开一个简单的计数器顶层模型。
model='SILTopModel';
close_system(model,0)
open_system(model)
如图所示:
要专注于数值等效性测试,请关闭以下报告:
-
模型覆盖率
-
代码覆盖率
-
执行时间探查
set_param(gcs, 'RecordCoverage','off');
coverageSettings = get_param(model, 'CodeCoverageSettings');
coverageSettings.CoverageTool='None';
set_param(model, 'CodeCoverageSettings',coverageSettings);
set_param(model, 'CodeExecutionProfiling','off');
配置输入激励数据。
[ticks_to_count, reset, counter_mode, count_enable] = ...SILTopModelData(T);
配置模型的日志记录选项。
set_param(model, 'LoadExternalInput','on');
set_param(model, 'ExternalInput','ticks_to_count, reset, counter_mode, count_enable');
set_param(model, 'SignalLogging', 'on');
set_param(model, 'SignalLoggingName', 'logsOut');
set_param(model, 'SaveOutput','on')
运行普通模式仿真。
set_param(model,'SimulationMode','normal')
sim_output = sim(model,10);
yout_normal = [sim_output.yout.signals(1).values sim_output.yout.signals(2).values];
运行顶层模型 SIL 仿真。
set_param(model,'SimulationMode','Software-in-the-Loop (SIL)')
sim_output = sim(model,10);
yout_sil = [sim_output.yout.signals(1).values sim_output.yout.signals(2).values];
### Starting build procedure for: SILTopModel
### Successful completion of build procedure for: SILTopModelBuild SummaryTop model targets built:Model Action Rebuild Reason
===============================&#