主要内容

使用处理器在环(PIL)模拟的代码验证和验证

这个示例向您展示了如何使用无人机工具箱支持包PX4自动驾驶器进行代码验证和循环中处理器(PIL)验证。

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

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

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

所需的硬件

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

  • 支持PX4飞行控制器板

  • USB类型A到Mini-B电缆

选择PIL仿真的通信接口

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

1.打开PIL模型。

open_system(“px4demo_top_model_pil.slx”);

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

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

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

提示:通过设备管理器可以识别PX4飞行控制器所连接的主机的COM口。

用PIL验证顶级模型代码

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

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

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

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

1.打开Top Model PIL模型。

open_system(“px4demo_top_model_pil.slx”);

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

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目标运行模型。

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

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

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

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

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

c。模拟按TAB键并单击运行

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

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

这个例子展示了如何使用PIL块进行子系统代码验证。用这种方法:

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

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

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

1.打开PIL Block模型。

open_system(“px4demo_pil_block.slx”);

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

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

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

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

一个。建模按TAB键并单击模型设置打开“配置参数”对话框。

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

4.创建一个PIL块控制器通过以下步骤实现子系统:

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

b。为SubsystemController构建代码对话框,单击构建

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

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

b。模拟单击,单击运行

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

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

使用PIL执行代码分析

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

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

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

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

1.打开Simulink模型后,转到应用程序按TAB键选择银/公益诉讼经理

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

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

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

1.打开Simulink模型后,转到建模按TAB键并单击模型设置打开“配置参数”对话框。

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

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

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

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

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

报告(executionProfile)
Baidu
map