主要内容

x -构型四轴飞行器的位置跟踪

这个例子展示了如何使用无人机工具箱支持包的PX4自动驾驶仪设计一个位置控制器的x配置四轴飞行金宝app器。在本例中,您还可以使用PX4 Host Target和jMAVSim模拟器验证控制器设计。

介绍

PX4 autopilo金宝appt UAV Toolbox Support Package for PX4 autopilot使您可以使用S金宝appimulink设计飞行控制器算法,基于当前车辆姿态、位置和速度稳定车辆,并使用Simulink跟踪所需姿态。

在本例中,您将学习如何使用PX4主机目标和jMAVSim模拟器来设计和验证x配置四转子车辆的位置控制器,并使用各种滑块控制车辆位置,可在Simulink®模型。金宝appjMAVSim模拟器,它是软件在循环(SITL)模拟的一部分,定义在PX4网站,作为支持包安装的一部分安装。金宝app

先决条件

  • 执行最初的设置和配置任务使用Hardw金宝appare Setup屏幕来获取支持包。在硬件设置界面选择一个PX4 Autopilot并构建配置中,选择PX4主机目标为下拉列表中的“硬件板”。

模型

打开示例模型:

open_system (“px4demo_PositionController_quadrotor”

该模型采用比例-积分-微分(PID)控制器控制x型四旋翼飞行器的位置和姿态。在每个时间步长,算法根据位置误差调整不同转子的转速来跟踪目标姿态。

任务1 -阅读期望职位和当前职位

在这个例子中,我们考虑风速对四轴飞行器飞行的影响。四轴飞行器必须设法保持所需的位置和高度。根据位置误差,生成俯仰和横摇命令,并修改执行器电机的输出。

输入滑块在实例模型中可以用来提供所需的四轴飞行器的飞行坐标。

  • 变量des_alt表示飞行器悬浮的高度。高度值可以使用各自的滑块或直接改变常量des_alt的值。

  • X和Y的期望位置可以通过将期望值赋给常数des_x和des_y或使用各自的滑块来设置。

期望的位置,高度和偏航区域,您还可以提供动态输入(而不仅仅是静态输入)来测试位置控制器的跟踪功能。在这个例子中,正弦波被用作动态输入,并且可以使用各自的手动开关进行选择。

车辆在NED参考帧中的位置及其速率可以使用uORB Read块访问,该块被配置为读取消息'vehicle_local_position'。

任务2 -设计位置控制器

位置和高度控制子系统,三个独立的PID块利用期望值与当前值(使用uORB读块读取)之间的差来生成对旋转角度、俯仰和滚动的要求。每个PID块的输出被限制在预定义的最大值和最小值之间,以限制滚转和俯仰角度。在本例中,限制设置为50度。俯仰和横倾角的最大极限通常是由车辆特性推断出来的,对于更加灵活的车辆,它可以更高。

每个PID块利用滤波的导数来消除由于信号微分而产生的任何不希望的噪声信号的放大。

NED参照系是惯性参照系,各自轴的方向相对于地面上的起始位置保持固定。相反,旋转角度、横摇和俯仰是相对于附着在车身上的移动参考系测量的。这是因为驱动器是刚性安装在车身上的。任何非零偏航角都会改变车辆在NED参考系中的航向和方向。这导致了一种现象,根据飞行器的偏航角,相同的俯仰角或滚转角在一个平面上引起不同的平移运动。因此,我们必须考虑非零偏航角,而产生俯仰和滚转命令从位置误差。这是通过计算一个二维旋转矩阵并将位置误差与旋转矩阵相乘来实现的。

任务3 -设计姿态控制器和混合角速率要求

姿态控制器作用于位置控制器的输出,并修改执行器的输出以实现所需的俯仰和横摇。姿态控制器和混合算法的设计与算例相似基于外部输入的x型四轴飞行器姿态控制

任何非零偏航角都会改变飞行器的航向。因此,我们必须考虑非零偏航角,而产生俯仰和滚转命令从位置误差。

任务4 -使用监视器和调优PID

有关构建模型和使用数据监视执行Monitor和Tune操作的说明,请参阅示例基于外部输入的x型四轴飞行器姿态控制

当您启动Monitor和Tune时,jMaVSim模拟器也会启动。

在本例中,您可以使用Monitor和Tune功能更改PID值。每个PID增益可以连接到单独的滑块,在外部模式下模拟时,可以使用滑块改变增益值。的调整滑块模型中的区域可以帮助您实现这一点。任何增益变化的影响都可以通过使用各种Scope块实时观察到。

下图显示了一个这样的优化子系统。这里,将偏航角的期望值连接到滑块上,滑块可以用来在外部模式下模拟模型时修改期望的偏航角。可以将偏航角的期望值和实际值连接到示波器上,从而可以观察到飞行器对期望值任何变化的响应。根据车辆响应,可以从各自的滑块调整增益,并可以重复给出激励和观察响应的过程。

在调整各种PID控制器以获得所需的响应时,您可能会在任意自由度中遇到频繁的崩溃或发散的振荡。使用jMAVSim模拟器可以将车辆状态恢复到初始状态。但是,即使车辆状态已经恢复到初始状态,各个PID控制器累积的积分部分也会再次使车辆失稳。这可以通过对PID块使用外部复位来避免。

在这个例子中,所有的PID块被配置为外部复位,并且复位变量连接到一个拨动开关。如果需要对车辆状态进行复位,则拨动开关可以设置为高电平。这将重置所有累积的整体部分,并向执行机构发送最小的输出。一旦使用jMAVSim恢复状态,可以将拨动开关设置为低,这将导致正常的控制器操作。

为了微调系统响应和评估控制器设计,可以利用各种性能指标,如积分平方误差(ISE)、积分绝对误差(IAE)、积分时间平方误差(ITSE)和最大峰值超调(Mp)。

每个性能度量的相当大的值揭示了控制器中的一个特定缺陷,因此允许您采取进一步的步骤来纠正缺陷并实现预期的响应。例如:

  • 一个在设定值周围有小的持续振荡的系统具有较大的IAE。

  • 对应用输入响应较慢的系统具有较大的ISE。

  • 稳态误差小的系统具有较大的ITSE。

应用的激励和系统响应可以被记录一段时间,以计算这样的性能指标。的ToWorkspace块的Simulin金宝appk可以用来记录各种变量到MATLAB工作空间。外部模式模拟时的日志参数配置请参见将日志记录的外部模式属性设置为工作区

一旦记录了变量,就可以计算错误并使用应用的输入进行规范化。归一化的误差历史随时间的变化,可进一步用于计算ISE、IAE、ITSE和Mp。

下图展示了控制系统设计过程的一个示例。

在这个例子中,从一个原点开始,在15秒时在x方向上施加一个20米的阶跃输入,并记录整个40s的车辆响应。

1.图A表明控制器无法纠正超调,因此响应存在较大的稳态误差。

2.图B表示由于比例增益的增加而改善的响应。除了超调,所有的性能指标都得到了改进。

3..图C显示了由于导数增益的增加而改善的瞬态响应。从图C可以看出,除了峰值超调外,所有的性能指标都与前面的情况相同。这一观察结果表明了超调量和导数增益之间的直接关系。

4.任何过度的衍生收益都可能导致反应迟缓。这一现象可以从图C和图D中看出,进一步增大导数增益会导致系统响应缓慢,ISE和IAE相对较高。

位置控制器设计的局限性

  • 图E和图F分别显示了车辆对高度为20m和50m的阶跃输入的响应。

对于20m阶跃输入,车辆响应无超调。然而,对于50米的阶跃输入,存在相当大的超调。因此,即使这个控制器可以被调优,为输入信号的某一类型和大小提供所需的响应,但同样的响应不能在大范围的操作中实现。

  • 如果初始期望的XY位置非零,那么取决于期望的位置,控制器可能无法同时处理位置和高度误差,车辆可能会坠毁。

  • 详细介绍了该控制器的局限性及改进方法,可参考实例基于速率控制器的x型四轴飞行器位置跟踪