主要内容

使用处理器在环(PIL)仿真进行代码验证和验证

这个示例向您展示了如何使用无人机工具箱支持包的PX4自动驾驶仪的代码验证和在环处理器(PIL金宝app)的验证。

在本例中,您将学习如何配置Simulink模型来运行处理器在环(PIL)模拟。金宝app在PIL模拟中,生成的代码在PX4飞行控制器上运行。将PIL仿真结果传输到Simulink,验证仿真结果与代码生成结果的数值等价性。金宝appPIL验证过程是开发周期的关键部分,以确保部署代码的行为与设计相匹配。

关于PIL的更多细节,请参阅这个链接

这个例子介绍了Simulink代码生成和验证工作流,展示金宝app了如何配置Simulink模型在PX4飞行控制器上运行PIL仿真。这个示例被预先配置为在Pixhawk 1板上运行。您可以通过在“配置参数”对话框的“硬件实现”窗格中选择“硬件板”,为其他受支持金宝app的PX4飞行控制器配置此型号。

所需的硬件

要运行此示例,您需要以下硬件:

  • 金宝app支持PX4飞行控制器板

  • USB类型A到Mini-B电缆

PIL仿真通信接口的选择

PX4飞行控制器支持的接口不需要任何额外的电缆或硬件金宝app,除了用于将飞行控制器连接到运行PX4自动驾驶仪无人机工具箱支持包的主机的USB类型a至Mini-B电缆。

1.打开PIL模型。

开放式系统(“px4demo_top_model_pil.slx”);

2.打开建模选项卡并单击模型设置打开“配置参数”对话框。

3.硬件实现>目标硬件资源>公益诉讼.选择硬件板串行端口并输入主机串行端口的值。

默认值使用为外部模式选择的相同硬件端口和为固件上载选择的串行端口(COM端口)。要使用这些默认值以外的其他端口,请清除复选框并指定端口。

提示:您可以使用设备管理器识别PX4飞行控制器连接到的主机的COM端口。

用PIL验证Top模型代码

这个例子展示了如何通过运行PIL模拟来验证为模型生成的代码。用这种方法:

  • 您可以验证为顶级模型生成的代码

  • 必须将模型配置为从MATLAB工作区加载测试向量或刺激输入

  • 您可以轻松地在正常和PIL模拟模式之间切换整个模型

1.打开Top Model PIL Model。

开放式系统(“px4demo_top_model_pil.slx”);

该模型配置为PX4 Pixhawk 1目标。通过在配置参数>硬件实现窗格中将硬件板更改为支持的PX4飞行控制器,您可以为其他PX4自动驾驶仪目标运行该模型。金宝app

2.按照上面任务1中的步骤选择PIL通信接口。

3.在Simulink模型窗口中,转至应用程序标签和搜索SIL/PIL经理

4.挑选Processor-in-the-Loop(公益诉讼)SIL/PIL模式下拉菜单,然后单击运行验证

5.当PIL模拟完成后,alogsOut变量在基本工作区中创建。的logsOut数据包含PIL模拟结果。您可以访问信号的记录数据a伯爵伯爵通过使用以下命令:

一个。count_a=get(logsOut,'count_a');

计数a.Values.Data

Bcount_b =得到(logsOut count_b);

计数b.Values.Data

使用PIL验证参考模型代码

这个例子展示了如何通过运行PIL模拟来验证参考模型的生成代码。用这种方法:

  • 您可以验证为引用模型生成的代码

  • 必须提供测试线束模型以提供测试向量或刺激输入

  • 您可以轻松地切换模型块之间的正常和PIL模拟模式

1.打开模型块PIL模型。

open_system(“px4demo_model_pil_block.slx”);

此模型配置为PX4 Pixhawk 1目标。您可以为其他PX4目标运行该模型,通过在配置参数>硬件实现窗格中将硬件板更改为支持的PX4飞行控制器。金宝app

该模型包含两个模型块(计数器A和计数器B),它们都指向同一参考模型。请注意,还必须在参考模型中更改硬件板(右键单击计数器A或计数器B块,然后选择作为顶级模特开放),请按上述步骤操作。您将配置一个模型块在PIL模拟模式下运行,另一个在normal模式下运行。

2.按照上面任务1中的步骤选择PIL通信接口。

3.配置和运行反击PIL模拟模式下的模型块,步骤如下:

一个。右键单击块反击选择块参数(ModelReference)

B反击块参数,选择模拟模式作为Processor-in-the-Loop(公益诉讼),然后单击好吧

C模拟选项卡并单击

4.当模型开始运行时,Scope1显示PX4自动驾驶仪上运行的PIL模拟输出,同时Scope2显示正常模式模拟输出。

使用PIL Block验证子系统生成的代码

此示例显示如何使用PIL块进行子系统代码验证。使用此方法:

  • 您可以验证为子系统生成的代码

  • 您必须提供一个测试利用模型来提供测试向量或刺激输入

  • 您必须交换您的原始子系统与生成的PIL块;您应该小心避免将模型保存在这种状态,因为您将丢失原始的子系统。

1.打开PIL Block模型。

open_system(“px4demo_pil_block.slx”);

该模型配置为PX4 Pixhawk 1目标。您可以为其他PX4目标运行该模型,通过在配置参数>硬件实现窗格中将硬件板更改为支持的PX4飞行控制器。金宝app

这里的目标是创建一个PIL区块控制器您将在PX4飞行控制器上运行的子系统。

2.按照上面任务1中的步骤选择PIL通信接口。

3.通过以下步骤启用PIL:

一个。建模选项卡并单击模型设置打开“配置参数”对话框。

B代码生成>验证>先进的参数选择公益诉讼

4.为该对象创建一个PIL块控制器子系统遵循以下步骤:

一个。右键单击控制器子系统并选择将此子系统部署到硬件

B子系统控制器的构建代码对话框中,单击构建

5.运行PIL模拟如下步骤:

一个。将PIL子系统块复制到模型中。

B模拟选项卡,并单击

6.生成的可执行文件被复制到电路板上。

7.您可以在原始和PIL块子系统之间切换,通过双击手动开关块。双击数值差异块以查看模拟的控制器子系统和运行在Pixhawk系列控制器硬件板上的PIL块。

使用PIL执行代码分析

您可以在使用PIL验证代码的同时执行代码分析。代码分析可以帮助您检查生成的代码是否满足实时性能需求。您可以确定需要最多时间的任务,然后研究是否可能在功能和速度之间进行折衷。

您可以通过使用SIL/PIL Manager应用程序(启用基本代码评测)或通过使用配置参数对话框(提供代码评测的高级选项),启用代码评测和PIL模拟。

:执行时间配置依赖于为所选硬件板配置的时钟频率。2 .在“配置参数”对话框中,执行硬件实现>目标硬件资源>孵蛋的查看时钟频率。

从SIL/PIL管理器应用程序启用代码评测

1.打开Simulink模型后,转到金宝app应用程序选项卡,然后选择SIL/PIL经理

2.在SIL/PIL选项卡,选择Processor-in-the-Loop(公益诉讼)从SIL/PIL模式下拉列表。

3.设置选择任务分析。选择此选项可启用模型的执行时间分析。

从配置参数对话框中启用代码分析

1.打开Simulink模型后,转到金宝app建模选项卡并单击模型设置打开“配置参数”对话框。

2.代码生成>验证>先进的参数选择公益诉讼

3.要分析模型中每个速率的执行时间,请选择测量任务执行时间

下一个参数度量函数执行时间被设置为默认情况下,。可以设置为粗略(仅参考模型和子系统)详细(所有函数调用站点)。此外,设置保存选项所有的数据。请验证工作区变量的名称是否为执行档案.点击申请然后好吧

按照要求的步骤(如前几节所述)完成PIL模拟。

在PIL模拟完成后执行档案变量出现在MATLAB工作区中。获得分析报告并分析不同的周转时间和执行时间:

报告(executionProfile)