这个例子展示了如何使用无人机工具箱支持包的PX4自动驾驶仪验证控制器设计使用PX4主机目标与金宝appSimulink中设计的模拟器。金宝app
用于PX4 autopilot的金宝app无人机工具箱支持包使您可以使用Simulink设计飞行控制器算法,以基于当前车辆姿态、位置和速度稳定车辆,并金宝app使用Simulink跟踪所需姿态。UAV工具箱中的MAVlink块使您能够读取和写入MAVlink HIL_*消息,并设计植物动力学。
本示例展示了如何使用单个Simulink模型验证中型四转子设备上的位置控制器设计,然后采用相同的控制器和设备模型,并使用PX4社区称之为“软件在环”(SITL)仿真的PX4源代码对其进行仿真。金宝app
如果你是Simulink的新手,请观金宝app看金宝app仿真软件快速入门视频。
执行最初的设置和配置使用硬件设置屏幕的支持包的金宝app任务。在选择一个PX4自动驾驶仪和构建目标屏幕上,选择PX4主机目标
作为PX4自动驾驶仪板从下拉列表。
有关如何使用jMAVSim模拟器验证控制器设计的更多信息,请参见使用PX4主机目标和jMAVSim进行部署和验证和基于速率控制器的x型四轴飞行器位置跟踪.
有关设计控制器模型和使用在Simulink中设计的模拟器工厂模型验证它的更多信息,请参见金宝app在PX4主机目标上运行飞行控制器,集成包含MAVLink模块的模拟器装置模型.
为了开始,通过在MATLAB命令提示符下输入以下命令来金宝app启动Simulink项目:
Px4DemoHostTargetWith金宝appSimulinkPlantStart
一旦项目启动,它将加载所需的工作空间变量并打开顶部模型。
本项目由以下模型组成:
前模型,QuadcopterSimulation
,由多个子系统和模型参考组成。
Controller子系统包含飞行控制器
模型参考,其中包含位置和姿态控制器。在这个例子中设计的控制器遵循相同的结构,如所述基于速率控制器的x型四轴飞行器位置跟踪.
植物和可视化子系统包含模型参考Quad_Plant_dynamics
模型参考,其中有四轴飞行器植物和传感器动力学。
的px4Demo_FlightController_top
脊甲模型包含飞行控制器
模型参考。通过创建PX4 Host Target可执行文件,将模型设置为使用PX4源代码运行。
的Quad_Plant_top
工具模型包含Quad_Plant_dynamics
模型参考。此套具模型被设置为在正常的模拟节奏模式中运行px4Demo_FlightController_top
利用模型。
Project快捷方式指导您完成这三个任务。
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 -构型四轴飞行器的位置跟踪.
在本课题中,我们设计了直升机的控制装置和控制器,并保证了其在仿真中的性能。
在这个任务中,我们使用task 1中设计的控制器,并使用PX4 Host Target特性使用PX4源代码运行它(有关更多信息,请参见在PX4主机目标上运行飞行控制器,集成包含MAVLink模块的模拟器装置模型).
1.单击监视和调优主机目标控制器在项目快捷方式选项卡中打开px4Demo_FlightController_top
模型。
模型块引用飞行控制器
模型,该模型在QuadcopterSimulation
模型。
的uORB Read块用于订阅vehicle_local_position_groundtruth
和vehicle_attitude_groundtruth
的话题。这些主题包含模拟器植物模型使用HIL_STATE_QUATERNION和HIL_GPS消息发送的数据。
FlightController模型参考中的信号调理子系统提取当前位置、当前速度和当前姿态数据,并将其提供给控制器子系统。控制器子系统设计速率控制器和位置和姿态控制器,如中所述基于速率控制器的x型四轴飞行器位置跟踪.
的飞行控制器
模型输出执行器的值,然后馈送到PX4 PWM输出块。
2.在“配置参数>硬件实现”中设置硬件板参数PX4主机目标
.
3.下目标硬件资源>构建选项,设置模拟器来金宝app
.
4.在模拟选项卡,设置模拟停止时间来inf.
5.在硬件选项卡,模式部分中,选择机上运行然后点击监视和优化开始信号监控和参数调整。
6.等待Simulin金宝appk完成代码生成。点击好啊在出现的对话框中执行下一个任务。
在这个任务中,我们使用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主机目标读取TCP
MATLAB系统块用于读取从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主机目标读取TCP
和TCP写入PX4主机目标
MATLAB系统模块从这个模型在模拟器工厂模型,你设计。
在运行组合模拟时,暂停并向前步进Quad_Plant_top
模型在仿真中运行,以查看px4Demo_FlightController_top
模型也会暂停,因为两个模型都是同步的。为不同的配置(例如,六翼飞机或固定翼飞机)设计控制器和装置动力学,并在联合仿真中同步运行。