ArduCopter 通用姿态控制器说明

在调整之前,用户应大致了解飞行控制法则。从高层次上讲,ArduCopter 的控制法则设计为模型跟随架构,软件将飞行员或(飞行)控制器的输入转换为要求的姿态(稳定模式)或飞行员要求的轴率(Acro 模式),并控制飞机实现该要求值。

它有两个控制器(姿态和速率),共同确保飞机按照要求的俯仰和滚动速率和姿态飞行。

飞行员的指令受限于加速度,而加速度可以通过 atc_accel_p_max 为俯仰和 atc_accel_r_max 用于滚动。

飞机对飞行员输入的初始响应度(灵敏度/迟缓度)可通过 ATC_INPUT_TC 参数。先导输入和这些参数用于确定实现所要求的响应所需的速率,并输入速率控制器。

姿态控制器用于确保飞机的实际姿态与(飞行)控制器要求的姿态一致。它使用 ATC_ANG_PIT_P 音高和 ATC_ANG_RLL_P 在滚转过程中,确定与要求姿态和当前姿态之间的差值成比例的速率,并将其输入速率控制器,以驱动飞机达到要求的姿态。

速率控制器接收飞行员输入的所需速率和/或姿态控制器的速率,并确定实现该速率所需的斜盘指令。速率控制器使用具有前馈路径的 PID 控制算法来控制飞机并实现所需的速率。

前馈路径使用输入速率并应用 ATC_RAT_PIT_FF 增益 ATC_RAT_RLL_FF 滚动增益来确定其在斜盘指令中所占的比例。PID 算法使用测量速率和输入需求速率之间的误差来确定斜盘指令的一部分。这些误差相加后被发送到混合单元,由混合单元确定伺服位置。

因此,这种调整方法最初使用 FF 增益来确保所要求的速率与实际速率相匹配。然而,由于干扰和误差,速率可能会与要求的不同。P、I 和 D 增益 (ATC_RAT_x_P/I/D),然后用来纠正导致实际速率偏离所要求速率的任何干扰。

需求速率与测量速率之间的误差乘以 P 项。D 项决定了误差变化的速度,并在此基础上增加修正,从而对快速发生的误差做出更快的反应,并提供阻尼以控制过冲,就像载具上的减震器一样。

由于可能存在系统偏移(如 CG 误差或机械微调缺陷),导致在实现所需速率方面存在一些长期误差,因此积分器会将所有误差累积起来,并通过 I 增益提供额外的修正。I 增益与积分器相乘,并与速率控制器的其他输出相加,形成斜盘的输入。

./_images/heli-pid-loop.png

积分器最大 I 路贡献受限于 atc_rat_rll_imax 在卷和 atc_rat_pit_imax 在球场上。