主要内容

处理器在环(PIL)仿真的代码验证和验证

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

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

有关PIL的详细信息,请参阅这个链接

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

所需的硬件

要运行这个例子,你需要以下硬件:

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

  • USB type A转Mini-B电缆

PIL仿真通信接口的选择

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

1.打开PIL模型。

open_system(“px4demo_top_model_pil.slx”);

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

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

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

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

与PIL验证顶级模型代码

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

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

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

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

1.打开Top Model PIL模型。

open_system(“px4demo_top_model_pil.slx”);

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

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

3.在“Simulnk”模型窗口中,转到应用程序TAB和搜索银/公益诉讼经理

4.选择Processor-in-the-Loop(公益诉讼)银/公益诉讼模式下拉,单击运行验证

5.PIL模拟完成后,alogsOut变量在基本工作空间中创建。的logsOut数据包含PIL仿真结果。您可以访问记录的信号数据count_a而且count_b使用如下命令:

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

count_a.Values.Data

b。count_b = get(logsOut,'count_b');

count_b.Values.Data

与PIL验证参考模型代码

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

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

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

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

1.打开模型块PIL模型。

open_system(“px4demo_model_ref_pil.slx”);

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

该模型包含两个模型块(CounterA和CounterB),它们都指向相同的引用模型。注意,硬件板更改也必须在参考模型中进行(右键单击CounterA或CounterB块,并选择以超模身份开放),按上述步骤下载。您将配置一个Model块以PIL模拟模式运行,另一个以正常模式运行。

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

3.配置并运行CounterA通过以下步骤在PIL仿真模式中建模块:

一个。右击方块CounterA并选择块参数(ModelReference)

b。CounterA块参数,选择模拟模式作为Processor-in-the-Loop(公益诉讼),并单击好吧

c。模拟选择并单击运行

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

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

这个例子展示了如何使用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。为SubsystemController构建代码对话框,单击构建

5.按以下步骤运行PIL模拟:

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

b。模拟选项卡,单击运行

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

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

使用PIL执行代码分析

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

您可以通过使用SIL/PIL Manager App(它支持基本的代码分析)或使用Configuration Parameters对话框(它为代码分析提供高级选项)启用代码分析和PIL模拟。

请注意:执行时间分析取决于所选硬件板配置的时钟频率。2 .在“配置参数”对话框中,转到硬件实现>目标硬件资源>孵蛋的查询时钟频率。

从SIL/PIL Manager App中启用代码分析

1.打开Simulink模型后,转到金宝app应用程序选项卡,选择银/公益诉讼经理

2.在SIL/PIL选项卡中,选择Processor-in-the-Loop(公益诉讼)“SIL/PIL Mode”下拉列表。

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

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

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

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

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

下一个参数测量函数执行时间设置为,默认为。可以设置为粗略的(仅参考模型和子系统)详细信息(所有函数调用站点).此外,设置保存选项所有的数据.验证Workspace变量的名称为executionProfile.点击应用然后好吧

按照所需的步骤完成PIL模拟(如前面部分所述)。

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

报告(executionProfile)