主要内容

基于速率控制器的x型四轴飞行器位置跟踪

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

介绍

用于PX4 autopi万博1manbetxlot的无人机工具箱支持包可以让您使用Simulink设计飞行控制器算法,以基于当前车辆姿态、位置和速万博1manbetx度稳定车辆,并使用Simulink跟踪所需姿态。

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

先决条件

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

模型

打开示例模型:

open_system (“px4demo_PositionControllerWithRateControl_quadrotor.slx”);

该模型采用比例-积分-微分(PID)控制器控制x型四旋翼飞行器的位置、速度和姿态。在每个时间步长,算法调整不同转子的转速,以跟踪所需的姿态,由速度误差描述。

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

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

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

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

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

期望的位置,高度和偏航在该区域,您还可以提供动态输入(而不仅仅是静态输入)来测试位置控制器的跟踪能力。在此示例中,正弦波用作动态输入,可使用相应的手动开关进行选择。

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

任务2 -设计位置和速度控制器

位置和高度控制子系统,三个独立的PID块利用期望值和当前值之间的差来产生对x和y速度的要求。每个PID块的输出被限制在预定义的最大值和最小值之间,以限制速度。在这个例子中,x和y方向的极限是20m /s,高度是10m /s。速度的最大极限通常是由车辆特性推断出来的。

  • 对于特定车辆,可达到的最大平移速度取决于俯仰角和侧倾角的限制。对于模拟车辆,俯仰角和侧倾角限制在50度以内。可实现的平移速度限制可通过在示例“px4demo_姿态控制器(带操纵杆_四旋翼)”中手动提供最大俯仰/侧倾杆输入并观察x&y速度来设置。

  • 飞行器的最大爬升速率主要取决于推进系统的性能和飞行器的质量。对于模拟车辆,最大爬升速率可以通过手动设置最大油门杆输入的例子' px4demo_attitude econtroller withjoystick_quadrotor '和观察z速度。

  • 由于速度是在NED参考系中测量的,在通过旋转矩阵对非零偏航角进行校正之前,首先计算当前速度误差。

  • 将修正后的速度误差用于分离pid,以生成对旋转角度、俯仰和横摇的要求。每个PID块的输出被限制在预定义的最大值和最小值之间,以限制滚转和俯仰角度。

姿态控制器和混合器的其余设计类似于示例“x配置四轴飞行器的位置跟踪”。

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

关于构建模型和使用数据监控执行Monitor和Tune操作的说明,请参阅示例“px4demo_attitude econtroller withjoystick_quadrotor”。

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

关于使用PID调整控制器的更多细节,请参考示例“x配置四轴飞行器的位置跟踪”。

Present控制器相对于Position-Only控件的优点

  • 正如在“x -配置四轴飞行器的位置跟踪”的例子中观察到的,对于大范围的输入信号,统一的系统响应不能仅仅通过位置控制来实现。当阶跃输入分别为20m和50m时,系统具有不同的响应。

  • 这种行为来自于一个事实,对于一个四旋翼飞行器,我们不能直接控制位置。四旋翼飞行器中被操纵或控制的变量是四个旋翼的转速。转速的不同导致了推力的不同,而这种不对称的推力产生了围绕不同轴的力矩。力矩产生角速率,改变飞行器的姿态(即滚转、俯仰和偏航角度)。非零俯仰和滚转角度产生平移速度,由于最后四旋翼位置改变。

  • 在单位置控制中,我们试图在改变四个转子转速的同时控制飞行器的位置。在转速变化的时刻和在车辆位置观察到的转速变化影响的时刻之间存在巨大的时间延迟。这种车辆动力学传播的延迟通常会导致超调。

通过在位置控制器和姿态控制器之间添加速度控制器,可以减少延迟,提高控制器性能。图C和图D显示了车辆在速度控制下分别对20m和50m阶跃输入的响应。在这里,车辆对两个输入具有相同的响应,没有明显的超调。

  • 在车辆的执行器输出中可以很容易地观察到控制器性能的改善。下图显示了仅具有位置控制的控制器的执行器输出。

这里执行器的输出由位置上的误差控制。一旦施加了步进输入,执行器的输出由于位置误差大而饱和到最大值。车辆开始获得高度与饱和的致动器输出的大部分时间。在爬升阶段,车辆积累垂直速度,但由于不直接控制,由于位置误差较大,致动器输出保持饱和状态。

因此,飞行器以较大的垂直速度接近目标高度,位置误差迅速减小。在这个例子中,微分动作开始,它导致执行器输出突然变化到其最小值。这种行为非常类似于bang-bang或开关控制器,并导致显著超调。

  • 在采用中间速率控制的位置控制中,执行机构的输出直接由速度误差控制,而不是位置误差。较大的位置误差产生显著的速度需求,这是通过饱和执行器输出实现的。一旦达到期望的速度,执行机构的输出减少以保持速度。

  • 最后,飞行器以控制的垂直速度到达期望的高度,进一步,减小的位置误差导致速度需求的降低。控制器调整执行器输出,以实现所需的速度。

下图显示执行机构的输出与位置和速率控制。