主要内容

基于simulink模型的PX4主机目标飞行控制器监控与调整金宝app

这个例子展示了如何使用无人机工具箱支持包的PX4自动驾驶仪验证控制器设计使用PX4主机目标与金宝appSimulink中设计的模拟器。金宝app

用于PX4 autopilot的金宝app无人机工具箱支持包使您可以使用Simulink设计飞行控制器算法,以基于当前车辆姿态、位置和速度稳定车辆,并金宝app使用Simulink跟踪所需姿态。UAV工具箱中的MAVlink块使您能够读取和写入MAVlink HIL_*消息,并设计植物动力学。

本示例展示了如何使用单个Simulink模型验证中型四转子设备上的位置控制器设计,然后采用相同的控制器和设备模型,并使用PX4社区称之为“软件在环”(SITL)仿真的PX4源代码对其进行仿真。金宝app

先决条件

  • 执行最初的设置和配置使用硬件设置屏幕的支持包的金宝app任务。在选择一个PX4自动驾驶仪和构建目标屏幕上,选择PX4主机目标作为PX4自动驾驶仪板从下拉列表。

模型

为了开始,通过在MATLAB命令提示符下输入以下命令来金宝app启动Simulink项目:

Px4DemoHostTargetWith金宝appSimulinkPlantStart

一旦项目启动,它将加载所需的工作空间变量并打开顶部模型。

模型架构和约定

本项目由以下模型组成:

  • 前模型,QuadcopterSimulation,由多个子系统和模型参考组成。

  • 植物和可视化子系统包含模型参考Quad_Plant_dynamics模型参考,其中有四轴飞行器植物和传感器动力学。

  • px4Demo_FlightController_top脊甲模型包含飞行控制器模型参考。通过创建PX4 Host Target可执行文件,将模型设置为使用PX4源代码运行。

  • Quad_Plant_top工具模型包含Quad_Plant_dynamics模型参考。此套具模型被设置为在正常的模拟节奏模式中运行px4Demo_FlightController_top利用模型。

Project快捷方式指导您完成这三个任务。

任务1:模拟无人机

1.打开示例项目Px4DemoHostTargetWithSimulinkPlantStart。金宝app

QuadcopterSimulation模型在项目开始时打开。您还可以通过单击打开模型运行四轴飞行器完全模拟在Projects快捷选项卡中。

2.导航通过不同的子系统,了解模型层次和四轴飞行器动力学。

3.控制器和工厂和可视化子系统交换HIL_ACTUATOR_CONTROLS, HIL_SENSOR, HIL_GPS和HIL_STATE_QUATERNION MAVlink消息,如下面所述在PX4主机目标上运行飞行控制器,集成包含MAVLink模块的模拟器装置模型

4.命令子系统为四旋翼直升机提供所需的X、Y、Z坐标和偏航值。

5.要模拟模型,请到模拟选项卡,然后单击金宝app运行.当Simulink准备在主机上运行模型时,模型窗口的左下角显示状态。金宝app

6.观察四轴飞行器在仪表板滑块控制的高度盘旋。

7.单击圆形的指导拨动开关观察四轴飞行器沿圆周轨迹飞行。

8.你也可以通过点击打开无人机动画窗口显示动画无人机动画块上的按钮。要定位块,请转到Plant and Visualization > Quad_Plant_Dynamics > Visualization Subsystem。

9.注意,控制器增益是为圆形轨迹的密切跟踪而优化的。对于其他类型的输入命令,如step或ramp,响应可能不理想。在这种情况下,必须调整控制器增益以满足规定的要求。有关控制器调优的详细信息,请参见x -构型四轴飞行器的位置跟踪

在本课题中,我们设计了直升机的控制装置和控制器,并保证了其在仿真中的性能。

任务2:使用监视器和调优配置控制器模型和运行模型

在这个任务中,我们使用task 1中设计的控制器,并使用PX4 Host Target特性使用PX4源代码运行它(有关更多信息,请参见在PX4主机目标上运行飞行控制器,集成包含MAVLink模块的模拟器装置模型).

1.单击监视和调优主机目标控制器在项目快捷方式选项卡中打开px4Demo_FlightController_top模型。

模型块引用飞行控制器模型,该模型在QuadcopterSimulation模型。

的uORB Read块用于订阅vehicle_local_position_groundtruthvehicle_attitude_groundtruth的话题。这些主题包含模拟器植物模型使用HIL_STATE_QUATERNION和HIL_GPS消息发送的数据。

FlightController模型参考中的信号调理子系统提取当前位置、当前速度和当前姿态数据,并将其提供给控制器子系统。控制器子系统设计速率控制器和位置和姿态控制器,如中所述基于速率控制器的x型四轴飞行器位置跟踪

飞行控制器模型输出执行器的值,然后馈送到PX4 PWM输出块。

2.在“配置参数>硬件实现”中设置硬件板参数PX4主机目标

3.目标硬件资源>构建选项,设置模拟器金宝app

4.模拟选项卡,设置模拟停止时间inf

5.硬件选项卡,模式部分中,选择机上运行然后点击监视和优化开始信号监控和参数调整。

6.等待Simulin金宝appk完成代码生成。点击好啊在出现的对话框中执行下一个任务。

任务3:用控制器模型同步运行模拟器植物模型

在这个任务中,我们使用task 1中使用的相同的植物动力学,但在一个单独的控制模型中,然后与task 2中描述的控制器模型同步运行该模型。

1.点击在正常模拟中运行四轴飞行器在项目快捷方式选项卡中打开Quad_Plant_top模型

模型块引用Quad_Plant_dynamics模型,用于QuadcopterSimulation

2.确保模拟踱来踱去选项为该模型启用,如在PX4主机目标上运行飞行控制器,集成包含MAVLink模块的模拟器装置模型

3.模拟选项卡,设置模拟停止时间inf

4.点击运行模拟选项卡。

你可以看到Quad_Plant_top模型和px4Demo_FlightController_top模型彼此保持步调一致。的px4Demo_FlightController_top模型以外部模式运行。

5.在中使用仪表板滑块和切换开关px4Demo_FlightController_top指挥四架直升机的模型。相应的飞行路径显示在中Quad_Plant_top模拟。

6.从PX4主机目标读取TCPMATLAB系统块用于读取从px4Demo_FlightController_top模型。

7.Enabled子系统有一个MAVLink反序列化块,用于提取HIL_ACTUATOR_CONTROLS消息。

8.TCP写入PX4主机目标MATLAB系统块发送HIL_SENSOR, HIL_GPS,和HIL_STATE_QUATERNION MAVLink消息给px4Demo_FlightController_top模型。

9.要停止组合模拟,首先停止px4Demo_FlightController_top模型在外部模式下运行,然后停止Quad_Plant_top模型在仿真中运行。

你可以重复使用从PX4主机目标读取TCPTCP写入PX4主机目标MATLAB系统模块从这个模型在模拟器工厂模型,你设计。

其他可以尝试的事情

在运行组合模拟时,暂停并向前步进Quad_Plant_top模型在仿真中运行,以查看px4Demo_FlightController_top模型也会暂停,因为两个模型都是同步的。为不同的配置(例如,六翼飞机或固定翼飞机)设计控制器和装置动力学,并在联合仿真中同步运行。