主要内容

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

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

简介

无人机工具箱支持包PX4自动驾驶仪,您可以使用Simulink设计飞行控制器算法,以稳定飞行器基于当前飞行器的姿态,位置和速度,并使用Simulink跟踪所需的姿态。

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

先决条件

  • 执行初始化设置和配置任务使用“硬件设置”屏幕安装支持包。在硬件设置界面选择一个PX4自动驾驶仪和构建配置中,选择PX4主机目标为“硬件板”。

模型

打开示例模型:

open_system (“px4demo_PositionAndRateController”);

该模型采用比例-积分-微分(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_态度econtrollerwithjoystick_quadrotor”中手动给出最大俯仰角/滚转杆输入并观察x和y速度来设置。

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

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

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

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

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

有关如何构建模型并使用数据监控执行Monitor和Tune操作的说明,请参阅示例“px4demo_attitudes econtrollerwithjoystick_quadrotor”。

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

有关使用PID调优控制器的更多详细信息,请参阅示例“X-Configuration Quadcopter的位置跟踪”。

当前控制器相对于纯位置控制的优点

  • 从“x型四轴飞行器的位置跟踪”实例中可以看出,对于输入信号范围很大的情况,仅通过位置控制无法实现系统的均匀响应。对于分别为20m和50m的步长输入,系统有不同的响应。

  • 这种行为源于这样一个事实,即对于四旋翼飞行器,我们不能直接控制位置。四旋翼的操纵或控制变量是四个旋翼的转速。转速的不同导致推力的不同,这种不对称的推力在不同的轴上产生力矩。力矩诱导角速度,从而改变车辆的姿态(即滚转、俯仰和偏航角)。非零俯仰角和滚转角产生平移速度,最终导致四旋翼位置发生变化。

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

通过在位置控制器和姿态控制器之间增加速度控制器,减少了这种延迟,提高了控制器的性能。图C和图D分别为控制车速时车辆对20m和50m步进输入的响应。在这里,车辆对两个输入有相同的响应,没有相当大的超调。

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

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

因此,飞行器以较大的垂直速度接近目标高度,位置误差迅速减小。在这种情况下,导数作用开始,它导致执行器输出突然变化到其最小值。这种行为非常类似于砰砰或开关控制器,并导致显着的超调。

  • 在带有中间速率控制的位置控制情况下,执行器输出直接由速度误差控制,而不是位置误差。一个大的位置误差产生了一个显著的速度需求,这是通过饱和执行器输出实现的。一旦达到所需的速度,执行器输出减少以保持速度。

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

下图显示了执行器输出的位置和速率控制。

Baidu
map