邮箱:你的邮箱地址@example.com

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');

posted @ 2025-03-12 11:51  WestaR  阅读(71)  评论(0)    收藏  举报