主要内容

基于速率控制器的X型四旋翼机位置跟踪

此示例演示如何使用PX4自动驾驶仪的UAV工具箱支持包为X配置四旋翼机设计使用速率控制的位置金宝app控制器。在本例中,还将使用PX4主机目标和jMAVSim模拟器验证控制器设计。

介绍

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

在本例中,您将学习如何使用PX4主机目标和jMAVSim模拟器设计和验证X配置四旋翼车辆的位置和速度控制器,并使用Simulink®型号中提供的各种滑块控制车辆位置。jMAVSim模拟器,是中定义的软件在环(SITL)仿真的一部分金宝appPX4网站,作为支持包安装的一部分安装。金宝app

先决条件

  • 进行初始测试设置和配置任务使用硬件设置屏金宝app幕查看支持包的详细信息。在硬件设置屏幕中选择PX4自动驾驶仪并构建配置选择PX4主机目标作为下拉列表中的硬件板。

模型

打开示例模型:

open_system (“px4demo\u位置控制器,带速率控制\u 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方向设置为20 m/s,高度设置为10 m/s。速度的最大极限通常由车辆特性推断。

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

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

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

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

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

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

有关建立模型以及使用数据监控执行监控和调谐操作的说明,请参阅示例“px4demo_AttitudeControllerWithMogability_quadrotor”。

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

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

与仅位置控制相比,本控制器的优点

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

  • 这种行为是因为对于四旋翼飞行器,我们无法直接控制位置。四转子中的操纵或控制变量是四个转子的转速。转速的差异导致推力的差异,这种不对称推力围绕不同的轴产生力矩。力矩产生角速率,从而改变车辆姿态(即侧倾、俯仰和偏航角)。非零俯仰角和滚转角产生平移速度,最终导致四转子位置改变。

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

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

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

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

因此,车辆以较大的垂直速度接近所需高度,位置误差迅速减小。在这种情况下,导数作用开始起作用,并导致执行器输出突然变化至其最小值。这种行为与“砰-砰”或“开-关”控制器非常相似,并导致显著的超调。

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

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

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