matlab实现Arduino的PIL硬件仿真
1. 尝试arduino的PIL程序例程-arduino_pil_bolck
1.1 准备安装包
安装arduino 硬件支持包
安装编辑器MinG-w64
1.2实现步骤
https: //ww2.mathworks.cn/help/simulink/supportpkg/arduino_ref/code-verification-and-validation-with-pil.html
在这个示例中,您将学习如何配置 Simulink 模型以运行处理器在环(PIL)仿真。在 PIL 仿真中,生成的代码在目标硬件上运行。PIL 仿真的结果被传输到 Simulink 中,以验证仿真和代码生成结果的数值一致性。PIL 验证过程是设计周期中的关键部分,以确保部署代码的行为与设计相匹配。
硬件:Arduino Mega 2560(可以通过更改模型配置参数对话框中的“硬件板”参数,在“支持硬件”部分列出的任何板上运行)
依赖:Embedded Coder
任务 1 - 配置支持 Arduino 硬件的模型
在这个任务中,您将为支持的 Arduino 板配置模型。
1. 打开 arduino_pil_block
Simulink 模型。
2. 在 Simulink 编辑器中,转到Configuration Parameters选项卡并单击Model Settings。
3. 选择Hardware Implementation选项卡,并从硬件板参数列表中选择所需的 Arduino 硬件。不要更改任何其他设置。
4. 点击确定
任务 2 - 使用 PIL 块验证子系统生成的代码
本示例展示了如何使用 PIL 块进行子系统代码验证。采用这种方法:
- 您可以对子系统生成的代码进行验证
- 您必须提供一个测试平台模型,以提供测试向量或激励输入
- 您必须将原始子系统与生成的 PIL 块进行交换;您应该小心,避免以这种状态保存您的模型,因为您将丢失原始子系统
1. 打开 arduino_pil_block
Simulink 模型。此模型配置为 Arduino 硬件。这里的目的是从 Controller子统中创建一个 PIL 模块,您将在 Arduino 硬件上运行它。
2. 在arduino_pil_block
中启用 PIL 功能。在硬件选项卡中,点击硬件设置。在搜索栏中输入 CreateSILPILBlock
。在创建块参数中选择 PIL
。点击确定。
3. 为控制器子系统创建一个 PIL 块。右键单击 Controller子系统。选择 C/C++ 代码 > 将此子系统部署到硬件,以在新的模型中创建控制器子系统块的 PIL
版本。
编译输出如下:
编译生成文件:.mexw64
4. 编译后弹出封装后的PIL仿真文件,将 PIL 块复制并放置在 Arduino PIL 块模型中的“放置 PIL 块于此”容器中。
5. 在Simulation选项卡下,点击Run以启动 PIL 仿真。
6. 一旦开始模拟模型,PIL 可执行文件开始在 Arduino 硬件上运行。通过双击手动切换模块,可以在原始和 PIL 块子系统之间切换。双击数值差异模块,以查看模拟控制器子系统和在硬件上运行的 PIL 模块之间的差异。
运行输出
示波器输出
任务 3 - 使用 PIL 验证引用的模型代码
本示例展示了如何通过运行 PIL 模拟来验证引用模型的生成代码。采用这种方法:
-
您可以验证为引用模型生成的代码
-
您必须提供一个测试平台模型,以提供测试向量或激励输入
-
您可以轻松地在模型块之间切换正常和 PIL 仿真模式
1. 打开 arduino_model_pil_block
Simulink 模型。
此模型配置用于 Arduino 硬件。该模型包含两个模型块,它们都指向相同的引用模型。您将配置一个模型块以 PIL 模式运行,而另一个将设置为正常模式。
2. 在“ Apps”选项卡下,选择“代码验证、验证和测试”中的 SIL/PIL 管理器。
3. 在 SIL/PIL 选项卡中,将测试系统设置为 Model blocks in SIL/PIL mode
。
4. 在 PIL 仿真模式下配置并运行 CounterA 模块。要打开 CounterA 模块掩码,右键单击模块并选择模块参数(模型引用)。在功能模块参数:CounterA 对话框中,将仿真模式设置为 Processor-in-the-loop (PIL)
。点击确定。
5. 在 SIL/PIL 选项卡中,点击运行验证以启动 PIL 模拟。
6. 当模型开始运行时,Scope1 显示在目标硬件上运行的 PIL 模拟输出,而 Scope2 显示正常模式下的模拟输出。
输出验证信息如上,工作区变量
任务 4 - 使用 PIL 验证顶层模型代码
本示例展示了如何通过运行 PIL 模拟来验证模型生成的代码。采用这种方法:
-
您可以对为顶级模型生成的代码进行验证
-
您必须配置模型以从 MATLAB®工作区加载测试向量或激励输入
-
您可以轻松地在正常模式和 PIL 模拟模式之间切换整个模型
1. 打开 arduino_top_model_pil
Simulink 模型。
2. 在“应用”选项卡下,选择“代码验证、验证和测试”中的 SIL/PIL 管理器。
3. 在 SIL/PIL 选项卡中,将 SIL/PIL 模式设置为 Processor-in-the-loop (PIL)
。
4. 点击运行验证以启动 PIL 模拟。
5. 当 PIL 模拟结束时,在基础工作区中创建一个 logsOut 变量。logsOut 数据包含 PIL 模拟结果。您可以使用以下命令访问信号 count_a 和 count_b 的记录数据:
count_a = get(logsOut,'count_a');
count_b = get(logsOut,'count_b');