通过使用系统级s -函数或在外部环境中运行代码来验证生成的代码。
了解:
测试生成代码的不同方法
如何在Simulink®中测试生成的代码金宝app
如何在Simulink之外测试生成的代码金宝app
有关本系列中的示例模型和其他示例的信息,请参见从一个嵌入式系统的控制算法生成C代码.
金宝appSimul金宝appink®支持多种系统测试方法,以验证生成代码的行为。
Windows®运行时执行:生成Microsoft®Windows®可执行文件,并从命令提示符运行该可执行文件。
优点:易于创建,并允许使用C调试器来评估代码
缺点:部分仿真目标硬件
Software-in-the-loop (SIL)测试:使用s函数将生成的代码包含在Simulink模型中。金宝app
优点:易于创建,支持Simulink测试环境的重用,并支持使用C调试器来评估代码金宝app
缺点:部分仿真目标硬件
处理器在循环(PIL)测试:运行一个非实时的协同模拟。金宝appSimulink执行模型的一部分(通常是一个工厂模型),而目标处理器运行模型的另一部分(通常是一个控制器)。在您将代码下载到目标处理器之后,在循环中的处理器技术将在联合仿真期间处理Simulink和目标之间的信号通信。金宝app
优点:允许重用Simulink测试环境,允许在模拟中使用C调金宝app试器,并且涉及目标处理器
缺点:需要额外的步骤来设置测试环境,处理器不能实时运行
目标快速原型:在目标处理器上作为整个系统的一部分运行生成的代码。
好处:您可以确定实际的硬件约束,并在整个系统中测试组件。处理器实时运行
缺点:需要硬件并需要额外的步骤来设置测试环境
外部模式:在目标处理器上作为整个系统的一部分运行生成的代码。
好处:您可以确定实际的硬件约束,并在整个系统中测试组件
缺点:需要硬件并需要额外的步骤来设置测试环境
在本系列的其他示例中,您将通过Simulink中的模拟测试系统。金宝app测试输入数据来自测试工具模型中的Signal Builder块。
要在Simulink®之外测试系统,可以重用测试输入数据。金宝app
将Simulink金宝app测试数据保存到一个文件中。
以系统代码可以访问的方式格式化数据。
读取数据文件作为系统代码过程的一部分。
要使用Simu金宝applink进行验证,可以将外部环境的测试输出数据以MATLAB®可读取的格式保存。
在本例中,文件hardwareInputs.c
包含来自测试装置模型中的Signal Builder块的数据。
为SIL创建和配置模型块
金宝appSimulink可以从Model块生成代码,将代码包装到S-Function中,并将S-Function添加回模型中进行软件在环测试。
打开示例模型,rtwdemo_PCG_Eval_P6
.
测试工具使用Model块来访问示例模型。在这个示例中,您在示例模型上运行了一个在循环中的软件测试。
右键单击Model块并选择块参数(ModelReference).
集模型名称更改为要测试的模型的名称。
集模拟模式来Software-in-the-loop(银)
.
模型块现在显示一个(银)
标签。
配置SIL的模型
配置示例模型,rtwdemo_PCG_Eval_P6
,以及测试工具模型,rtwdemo_PCGEvalHarnessHTGTSIL
,通过调整硬件实现参数进行SIL仿真。
对于这两个模型,在配置参数对话框中,选择金宝app支持很久复选框。
保存示例模型的副本,rtwdemo_PCG_Eval_P6
,在当前文件夹中。
运行模型块SIL
在本例中,测试工具模型包含一个为SIL模拟配置的model块。
生成的代码和模拟结果是相同的。
此示例扩展了中的集成示例在Simulink环境之外构建集成代码金宝app.在这种情况下,example_main.c
使用模拟的硬件I/O。
增广example_main.c
文件现在使用这个执行顺序:
1.初始化数据(一次)
而< endTime
2.读取模拟的硬件输入
3.PI_cnrl_1
4.PI_ctrl_2
5.Pos_Command_Arbitration
6.编写模拟硬件输出
结束时
两个函数,植物
和hardwareInputs
,提供输入的测试数据。
Plant.c
:这个函数是由测试线束的植物部分生成的,模拟节气门身体对节气门命令的响应。
无效的植物(空白)
HardwareInputs.c
:该函数提供pos_req
信号和噪声Input_Signal_Scaling
子系统进入工厂反馈信号。
空白hardwareInputs(空白)
中的手写功能WriteDataForEval.c
记录测试的输出数据。测试完成后,函数执行并将数据写入文件PCG_Eval_ExternSimData.m
.您可以在MATLAB中运行此脚本文件来访问数据。然后,您可以将数据与Simulink®的模拟数据进行比较。金宝app
要启用这些附加文件,请使用配置参数>代码生成>自定义代码>额外的构建信息.
在Eclipse™环境中构建可执行文件之前,在不使用S-function接口的情况下重新生成代码。
要了解如何安装和使用Eclipse™和GCC,请参阅安装和使用Cygwin和Eclipse.
要自动安装此示例的文件,请单击超链接。
或者,手动安装文件:
创建构建文件夹(Eclipse_Build_P6
).
解压该文件rtwdemo_PCG_Eval_P6.zip
到构建文件夹中。
删除的文件rtwdemo_PCG_Eval_P6.c
,ert_main.c
,rt_logging.c
,取而代之的是example_main.c。
在Eclipse™中运行控制代码。中的函数writeDataForEval.c
创建文件eclipseData.m
,其中包含输出测试数据。在MATLAB®中,通过运行脚本文件加载Eclipse™数据。然后,将该数据与来自Simulink®测试线束模型的数据进行比较金宝app情节
.
有关本系列的下一个示例,请参见评估生成代码的性能.