# 控制器图
本节包含 PX4 主控制器的示意图。
这些图表使用标准的 PX4 符号 (并且每个都有注释图例)。
# 多旋翼飞行器控制架构
- 这是一种标准的级联控制结构。
- 控制器是 P 和 PID 控制器的混合体。
- 估计数来自 EKF2.
- 根据模式的不同,外环(位置)会被旁路(在外环路后显示为多路复用器)。位置环路仅在位置保持或轴的速度要求为零时使用。
# 多旋翼飞行器角速率控制器
K-PID 控制器。参见 费率控制器 了解更多信息。
不可分割的权力仅限于防止清盘。
输出受到限制(在控制分配模块中),通常为-1 和 1。
导数路径上使用了低通滤波器 (LPF) 以减少噪音(陀螺仪驱动器向控制器提供滤波导数)。
备注
IMU 流程如下:陀螺仪数据;应用校准参数;消除估计偏差;带阻滤波器(.............
imu_gyro_nf0_bw
和imu_gyro_nf0_frq
) > 低通滤波器 (imu_gyro_cutoff
) > vehicle_angular_velocity (P 和 I 控制器使用的滤波角速度) > 导数 -> 低通滤波器 (imu_dgyro_cutoff
) > vehicle_angular_acceleration (D 控制器使用的滤波角加速度)
# 多旋翼飞行姿态控制器
- 姿态控制器利用 四元数 (打开新窗口).
- 控制器是通过以下方式实现的 条 (打开新窗口).
- 调整该控制器时,唯一需要关注的参数是 P 增益。
- 速率命令已饱和。
# 多旋翼飞行器加速度到推力和姿态设定点的转换
- 速度控制器产生的加速度设定点将转换为推力和姿态设定点。
- 转换后的加速度设定点将达到饱和,并在垂直和水平推力中优先使用。
- 推力饱和是在计算出相应推力后进行的:
- 计算所需的垂直推力 (
推力_z
) - 饱和
推力_z
与MPC_THR_MAX
- 饱和
推力
与(MPC_THR_MAX^2 - thrust_z^2)^0.5
- 计算所需的垂直推力 (
实施详情见 PositionControl.cpp
和 ControlMath.cpp
.
# 多旋翼飞行速度控制器
- 用于稳定速度的 PID 控制器。指令加速。
- 积分器包括一个使用箝位方法的防复位卷绕 (ARW)。
- 指令加速度不饱和 - 将对转换后的推力设定点和最大倾斜角应用饱和度。
- 通过参数设置水平增益
mpc_xy_vel_p_acc
,mpc_xy_vel_i_acc
和mpc_xy_vel_d_acc
. - 通过参数设置垂直增益
mpc_z_vel_p_acc
,mpc_z_vel_i_acc
和mpc_z_vel_d_acc
.
# 多旋翼定位控制器
- 简单的 P 控制器,可发出速度指令。
- 指令速度饱和后,速度将保持在一定范围内。参见参数
MPC_XY_VEL_MAX
.该参数设置了可能的最大水平速度。这与最大 所愿 速度MPC_XY_CRUISE
(自主模式)和MPC_VEL_MANUAL
(手动位置控制模式)。 - 通过参数设置水平 P 增益
MPC_XY_P
. - 通过参数设置垂直 P 增益
MPC_Z_P
.
# 位置和速度组合控制器示意图
- 与模式相关的前馈 (ff) - 例如,任务模式轨迹生成器(振动抑制轨迹)计算位置、速度和加速度设定点。
- 加速度设定点(惯性框架)将(与偏航设定点一起)转换为姿态设定点(四元数)和集体推力设定点。
# 固定翼位置控制器
# 全能量控制系统(TECS)
总能量控制系统(TECS)的 PX4 实现可同时控制固定翼飞机的真实空速和高度。代码以库的形式实现,用于固定翼飞机位置控制模块。
如上图所示,TECS 接收空速和高度设定点作为输入,并输出油门和俯仰角设定点。这两个输出被发送到固定翼姿态控制器,由其执行姿态控制方案。但是,如果节流阀设定点是有限的,并且没有检测到发动机故障,节流阀设定点就会通过。因此,重要的是要了解 TECS 的性能直接受到俯仰控制环路性能的影响。对空速和高度的跟踪不佳通常是由于对飞机俯仰角的跟踪不佳造成的。
备注
在尝试调整 TECS 之前,请务必先调整姿态控制仪。
同时控制真实空速和高度并非易事。增大飞机俯仰角会增加高度,但同时也会降低空速。增大油门会增加空速,但由于升力增加,高度也会增加。因此,我们有两个输入(俯仰角和油门),而这两个输入都会影响两个输出(空速和高度),这就给控制问题带来了挑战。
TECS 提供了一种解决方案,即用能量而不是原来的设定值来重新表示问题。飞机的总能量是动能和势能之和。推力(通过油门控制)会增加飞机的总能量状态。一个给定的总能量状态可以通过势能和动能的任意组合来实现。换句话说,从总能量的角度来看,在高空慢速飞行与在低空高速飞行是等效的。我们将此称为比能量平衡,它是根据当前高度和真实空速设定值计算得出的。比能量平衡由飞机俯仰角控制。俯仰角增大会将动能转化为势能,反之亦然。因此,通过将初始设定点转换为可独立控制的能量量,控制问题被解耦。我们使用推力来调节飞行器的特定总能量,而俯仰角则保持势能(高度)和动能(速度)之间的特定平衡。
# 总能量控制回路
# 总能量平衡控制回路
飞机的总能量是动能和势能之和:
对时间进行导数运算,就得出了总能量率:
由此可以得出比能量率为
其中
根据飞机的动态方程,我们可以得出以下关系式:
其中,T 和 D 分别为推力和阻力。在水平飞行时,初始推力与阻力相抵消,推力的变化会产生以下结果:
可以看出
另一方面,电梯控制属于能量保守型,因此用于将电能交换为动能,反之亦然。为此,具体的能量平衡率定义如下
# 固定翼姿态控制仪
姿态控制器采用级联环路方法工作。外环计算姿态设定点和估计姿态之间的误差,再乘以增益(P 控制器),生成速率设定点。然后,内环计算速率误差,并使用 PI(比例+积分)控制器生成所需的角加速度。
然后,通过控制分配(也称为混合),利用所需的角加速度和系统的先验知识计算控制效应器(副翼、升降舵、方向舵......)的角位置。此外,由于控制面在高速时更有效,而在低速时效果较差,因此控制器(针对巡航速度进行调整)会根据空速测量值(如果使用了此类传感器)进行缩放。
备注
如果不使用空速传感器,则 FW 姿态控制器的增益调度将被禁用(开环);TECS 无法使用空速反馈进行修正。
前馈增益用于补偿气动阻尼。基本上,飞机体轴力矩的两个主要部分是由控制面(副翼、升降舵、方向舵--产生运动)和气动阻尼(与机身速率成正比--抵消运动)产生的。为了保持恒定的速率,可以通过速率环中的前馈对这种阻尼进行补偿。
# 转弯协调
滚动和俯仰控制器具有相同的结构,纵向和横向动力学被假定为不耦合,足以独立工作。然而,偏航控制器利用转弯协调约束生成偏航率设定点,以尽量减少飞机滑行时产生的横向加速度。转弯协调算法完全基于协调转弯几何计算。
偏航率控制器还有助于抵消 不良偏航效应 (打开新窗口) 并使 荷兰卷模式 (打开新窗口) 提供额外的定向阻尼。
# VTOL 飞行控制器
本节简要介绍垂直起降(VTOL)飞机的控制结构。VTOL 飞行控制器由多旋翼和固定翼控制器组成,在相应的 VTOL 模式下单独运行,或在转换时一起运行。上图是一个简化的控制图。请注意 VTOL 姿态控制器模块,该模块主要用于不同 VTOL 模式的必要切换和混合逻辑,以及在过渡期间 VTOL 类型的特定控制操作(例如,在向前过渡期间提升标准 VTOL 的推杆电机)。该模块的输入被称为虚拟输入,因为根据当前的 VTOL 模式,控制器会忽略其中一些输入。
对于标准和倾转旋翼 VTOL,在过渡期间,固定翼姿态控制器会产生速率设定点,然后将其输入单独的速率控制器,从而为多旋翼和固定翼致动器发出扭矩指令。对于尾翼飞行器,在过渡期间多旋翼飞行器姿态控制器处于运行状态。
VTOL 姿态模块的输出为多旋翼和固定翼作动器的单独扭矩和力指令(多旋翼作动器和固定翼作动器有两个实例,分别为:"... "和"...")。 载具扭矩设定点
和 载具推力设定点
).这些问题由机身专用的控制分配类处理。
有关调整 VTOL 程序块内部转换逻辑的更多信息,请参阅 VTOL 配置.
# 空速缩放
本节的目的是借助方程式解释为什么以及如何使速率 PI 和前馈 (FF) 控制器的输出随空速变化以改善控制性能。我们将首先介绍滚动轴上的简化线性力矩方程,然后说明空速对直接力矩产生的影响,最后说明匀速滚动时空速的影响。
如上文固定翼姿态控制器所示,速率控制器为控制分配器(此处命名为 "混合器")产生角加速度设定点。为了产生这些所需的角加速度,混合器利用现有的空气动力控制面(例如:标准飞机通常有两个副翼、两个升降舵和一个方向舵)产生扭矩。这些控制面产生的扭矩受相对空速和空气密度的影响很大,或者更准确地说,受动态压力的影响很大。如果不对空速进行缩放,针对特定巡航空速进行严格调整的控制器会使飞机在较高空速下产生振荡,或在低空速下产生不良的跟踪性能。
读者应了解"...... 真实空速(TAS) (打开新窗口) 和 指示空速(IAS) (打开新窗口) 因为不在海平面上飞行时,它们的数值有很大差异。
动态压力的定义是
其中
以本节其余部分的滚动轴为例,滚动力矩的维数可写成
其中
二维滚动力矩导数
其中
假定对称 (
接下来的两个小节将以这一最终方程为基准,确定 PI 和 FF 控制器所需的空速比例表达式。
# 静态扭矩 (PI) 缩放
在零费率条件下 (
提取
其中第一个分数是常数,第二个分数取决于空气密度和真实空速的平方。
此外,指示空速(IAS、
其中
将两边平方、重新排列并加上 1/2 因子,就得到了动态压力
现在我们不难看出,动压与 IAS 平方成正比:
之前包含 TAS 和空气密度的标度器最终只需使用 IAS 即可写出
# 速率 (FF) 缩放
速率控制器前馈的主要用途是补偿自然速率阻尼。再次从基线尺寸方程出发,但这次是在匀速滚转时,副翼产生的扭矩应完全补偿阻尼,例如
重排后得出理想的副翼挠度
第一个分数给出了理想前馈的值,我们可以看到其缩放与 TAS 呈线性关系。请注意,负号会被同样为负的滚动阻尼导数吸收。
# 结论
速率 PI 控制器的输出必须与指示空速 (IAS) 的平方成比例,而速率前馈 (FF) 的输出必须与真实空速 (TAS) 成比例。
其中
最后,由于执行器输出已归一化,且混合器和伺服模块被假定为线性,我们可以将最后一个等式重写如下:
并直接在滚动率、俯仰率和偏航率控制器中实现。
如果机身的控制性能不直接取决于空速,例如旋翼机,如 自动步枪.可以通过以下方法禁用空速缩放功能 fw_arsp_scale_en 参数。
# 调整建议
这种空速缩放算法的优点是不需要任何特定的调整。不过,空速测量的质量会直接影响其性能。
此外,为了获得最大的稳定飞行包络线,应在失速速度和飞行器最大空速之间的中心空速值上调整姿态控制器(例如:可在 15 至 25 米/秒之间飞行的飞机应调整为 20 米/秒)。该调整空速应在 FW_AIRSPD_TRIM 参数。