主要内容

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

此示例演示如何使用PX4自动驾驶仪的UAV工具箱支持包,使用处理器在环(PIL)进行代码验证万博1manbetx和验证。

在本例中,您将了解如何配置Simulink模型以运行处理器在环(PIL)仿真。在PIL模拟中,生成的代万博1manbetx码在PX4飞行控制器上运行。PIL模拟的结果被传输到Simulink,以验证模拟和代码生成结果的数值等效性。PIL验证过程是开发周期的一个关键部分,用于确保部署代码的行为与设计相匹配。

有关PIL的更多详细信息,请参阅此链接

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

所需硬件

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

  • 万博1manbetx支持的PX4飞行控制器板

  • USB类型A到Mini-B电缆

PIL仿真中通信接口的选择

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

1.打开PIL模型。

open_system(“px4demo_top_model_pil.slx”);

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

3.硬件实现>目标硬件资源>皮尔.选择硬件单板的串口,并输入主机串口的值。

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

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

与PIL核对顶级车型代码

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

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

  • 您必须配置模型以加载测试向量或来自MATLAB工作空间的刺激输入

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

1.打开顶部模型PIL模型。

open_system(“px4demo_top_model_pil.slx”);

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

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

3.在simulink模型窗口中,执行应用程序标签和搜索银/公益诉讼经理

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

5.当PIL模拟完成时罗格苏特变量是在基本工作区中创建的罗格苏特数据包含PIL模拟结果。您可以访问记录的信号数据count_acount_b使用如下命令:

一个。count_a =得到(logsOut count_a);

count_a.Values.Data

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

count_b.Values.Data

与PIL核对参考型号代码

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

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

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

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

1.打开模型块PIL模型。

开放式系统('px4demo_model_pil_block.slx');

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

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

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

3.配置并运行CounterAPIL模拟模式下的模型块,步骤如下:

一个。右击方块CounterA并选择块参数(模型参考)

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

c。模拟选项卡并单击运行

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

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

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

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

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

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

1.打开PIL Block模型。

开放式系统('px4demo_pil_block.slx');

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

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

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

3.启动PIL的步骤如下:

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

b代码生成>验证>高级参数并选择皮尔

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

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

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

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

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

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

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

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

使用PIL执行代码分析

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

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

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

启用代码分析从SIL/PIL经理应用程序

1.打开Simulink模型后,转到万博1manbetx应用程序选项卡并选择银/公益诉讼经理

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

3.设置并选择任务分析.选择此选项可以对模型的执行时间进行分析。

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

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

2代码生成>验证>高级参数并选择皮尔

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

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

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

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

报告(executionProfile)