Multicopter PID调整指南

本教程说明了如何为所有多直升机设置(Quad,Hexa,Octo等)调整PX4上的PID回路。

通常,如果您使用受支持的特定配置(例如,在QGroundControl> Airframe中使用机身),则默认调整应足以安全飞行。为了获得最佳性能,通常最好对新车进行调试。例如,不同的ESC或电机需要不同的调整增益才能实现最佳飞行。

本指南适用于高级用户。未调谐或部分调谐的车辆很可能不稳定,容易撞车。确保分配了Kill-switch。

介绍

PX4用途Proportional,ntegral,derivative(PID)控制器(这些是最普遍的控制技术)。

控制器是分层的,这意味着较高级别的控制器将其结果传递给较低级别​​的控制器。最低级别的控制器是速率控制器,然后是姿态控制器,然后是速度和位置控制器。PID调整需要以相同的顺序进行,从速率控制器开始,因为它将影响所有其他控制器。

前提条件

  • 您已 为车辆 选择了最匹配的 默认机身配置 。 这应该给您已经飞行的车辆。
  • 您应该已经完成 ESC校准
  • PWM_MIN设置正确。需要将其设置为较低,但要确保在武装车辆时电动机永远不会停止

    可以在Acro模式手动/稳定模式下进行测试:

    • 卸下螺旋桨
    • 武装车辆并将油门降至最低
    • 将车辆向各个方向倾斜约60度
    • 检查没有电机关闭
  • (可选)使用 SDLOG_PROFILE 参数 启用高速率日志记录配置文件, 以便您可以使用日志评估速率和姿态跟踪性能(此后可以禁用该选项)。

调整车辆时,请始终禁用MC_AIRMODE

调整步骤

出于安全原因,默认增益设置为较低的值。您必须增加增益,然后才能获得良好的控制响应。

以下是调优时要遵循的一些一般要点:

  • 所有增益都应非常缓慢地增加,因为较大的增益可能会导致危险的振荡! 通常,每次迭代将增益提高20-30%,对于最终的微调,增益降低到5-10%。
  • 更改参数之前先着陆。 缓慢增加油门并检查是否有振动。
  • 围绕悬停的推力点调整车辆,并使用 推力曲线参数 说明推力非线性或高推力振荡。

费率控制器

速率控制器是最内部的回路,带有三个独立的PID控制器,用于控制车身速率(偏航,俯仰,横滚)。

调整好的速率控制器非常重要,因为它会影响所有飞行模式。在位置模式下,调谐不良的速率控制器将可见,例如,“抽搐”(车辆将无法在空中完美静止)。

费率控制器架构/表格

PX4在单个“混合”实现中支持两种(数学上等效)PID速率控制器形式:并行标准

用户可以通过将另一种形式的比例增益设置为“ 1”来选择使用的形式(即,在下图中,将并行形式的K设置为1,将标准形式的P设置为1-这将替换K或P块用一行)。

  • G(s) 代表车辆的角速度动态
  • r 是速率设定点
  • y 是身体角速度(由陀螺仪测量)
  • e 是速率设定值和测得速率之间的误差
  • u 是PID控制器的输出

两种形式如下所述。

导数项()在反馈路径上,以避免产生称为导数踢的效应。

有关更多信息,请参见:

平行形式

并行形式是最简单的形式,并且(因此)在教科书常用。在这种情况下,控制器的输出仅是比例,积分和微分作用之和。

标准格式

这种形式在数学上等同于并行形式,但是主要优点是(即使看起来很直观)也使比例增益调谐与积分增益和微分增益脱钩。这意味着可以通过采用具有类似尺寸/惯性的无人机的增益轻松调整新平台,并只需调整K增益即可使其正常飞行。

速率PID调整

PID速率控制器的调整相关参数为:

速率控制器可以在Acro模式手动/稳定模式下进行调整:

  • 首选 Acro模式 ,但难以飞行。 如果选择此模式,请禁用所有stick expo:
    • MC_ACRO_EXPO = 0, MC_ACRO_EXPO_Y = 0, MC_ACRO_SUPEXPO = 0, MC_ACRO_SUPEXPOY = 0
    • MC_ACRO_P_MAX = 200, MC_ACRO_R_MAX = 200
    • MC_ACRO_Y_MAX = 100
  • 手动/稳定模式 飞行起来更简单,但是也很难查看姿态或速率控制器是否需要更多的调整。

如果车辆根本不飞:

  • 如果初次尝试起飞时有强烈的振动( 直到它 不飞行),请减小所有 PD 增益,直到起飞为止。
  • 如果对RC运动的反应很小,则增加 P 增益。

在“手动”模式或“Acro”模式下,实际的调整大致相同:您可以迭代地调整PD增益以获得横摇和俯仰,然后调整I增益。最初,您可以对侧倾和俯仰使用相同的值,一旦有了良好的值,就可以通过分别查看侧倾和俯仰响应来微调它们(如果您的车辆是对称的,则不需要这样做)。对于偏航,它非常相似,只是D可以保留为0。

比例增益(P / K)

比例增益用于最小化跟踪误差(下面我们使用P来指代PK)。它负责快速响应,因此应将其设置得尽可能高,但不要引起振荡。

  • 如果 P 增益太高:您会看到高频振荡。
  • 如果 P 增益太低:
    • 车辆将缓慢响应输入更改。
    • Acro模式下 ,车辆会漂移,您将不断需要校正以使其保持水平。
微分增益(D)

d(衍生物)的增益被用于速率阻尼。这是必需的,但应仅将其设置为高,以避免过冲。

  • 如果 D 增益太高:由于 D 项会放大噪声 ,因此电动机会发抖(可能很热) 。
  • 如果 D 增益太低:步进输入后会出现过冲。

典型值为:

  • 标准格式( P = 1):对于任何 K 值,介于0.01(4英寸赛车)和0.04(500尺寸)之间
  • 平行形式( K = 1):在0.0004和0.005之间,取决于 P 的值
积分增益(I)

(积分)增益保持错误的记忆。在任期增加时所需的速度没有达到过一段时间。这一点很重要(尤其是在Acro模式下),但不要设置得太高。

  • 如果I增益太高:您会看到缓慢的振荡。
  • 如果I增益太低:最好在 Acro模式下 进行测试 ,方法是将车辆倾斜到大约45度的一侧,并保持这种状态。 它应该保持相同的角度。 如果它向后漂移,请增加 I 增益。 当期望和实际速率在较长时间内存在偏差时,在日志中也可以看到 低 I 增益。

典型值为:

  • 标准格式( P = 1):对于任何 K 值,介于0.5(VTOL平面),1(500尺寸)和8(4“赛车)之间
  • 平行形式( K = 1):如果 P 约为0.15, 则介于0.3和0.5之间 。音调增益通常需要比滚动增益高一点。

测试程序

为了测试电流增益,在悬停时提供快速的步进输入,并观察车辆的反应。它应立即遵循命令,并且既不振荡也不超调(感觉“被锁定”)。

您可以通过快速将摇杆推到一侧,然后使其快速退回来创建例如滚动的步进输入(请注意,如果只是松开,则摇杆也会摆动),因为它是弹簧负载-调整良好的车辆将遵循这些振动)。

处于Acro模式的经过良好调校的车辆不会随机向一侧倾斜,即使没有任何校正也可以保持数十秒的姿态。

日志

查看日志还有助于评估跟踪性能。这是良好的横摇和横摆率跟踪的示例:

这是通过几次翻转进行滚动率跟踪的一个很好的示例,这会产生极端的步进输入。您会看到车辆超调量很小:

姿态控制器

这将控制方向并通过以下调整参数输出所需的身体速率:

姿态控制器更容易调整。实际上,大多数时候根本不需要更改默认值。

要调整姿态控制器,请在“手动/稳定”模式下飞行并逐渐增加P增益。如果您开始看到振荡或过冲,则增益太高。

也可以调整以下参数。这些决定了所有三个轴的最大旋转速度:

推力曲线

上面的调整优化了悬停油门周围的性能。但是,可能会在油门全开时开始出现振荡。

为了抵消这一点,可以使用THR_MDL_FAC参数调整推力曲线

如果更改此参数,可能需要重新调整速率控制器。

默认情况下,从电动机控制信号(例如PWM)到预期推力的映射是线性的-设置THR_MDL_FAC为1使其为二次方。两者之间的值使用两者的线性插值。典型值在0.3到0.5之间。

如果有推力架(或可以测量推力),则可以确定PWM控制信号与电机实际推力之间的关系,并根据数据拟合函数。本笔记本显示了如何THR_MDL_FAC根据先前测得的推力数据计算推力模型系数。

PWM和静态推力之间的映射在很大程度上取决于电池电压。

如果您没有推力架,也可以根据经验调整建模系数。从0.3开始,然后每次增加0.1。如果它太高,您将开始注意到在较低的油门值下会发生振荡。如果它太低,您会发现在较高的油门值下会出现振荡。

空调和混合器饱和

速率控制器输出所有三个轴(滚动,俯仰和偏航)的转矩命令和标量推力值,需要将其转换为单独的电动机推力命令。此步骤称为混合。

例如,对于低推力和大侧倾命令,电动机命令之一可能会变为负值(同样,它可能会超过100%)。这是混频器饱和。车辆实际上不可能执行这些命令(可逆电机除外)。PX4有两种模式可以解决此问题:

  • 可以通过减小侧倾指令转矩来使电动机指令均不低于零(禁用空气模式)。 在命令推力为零的极端情况下,这意味着不再可以进行姿态校正,这就是为什么此模式始终需要最小推力的原因。
  • 或通过增加(提升)命令推力,使所有电动机命令都不为负(启用Airmode)。这具有很大的优势,即使在低油门或零油门的情况下,也可以正确跟踪姿态/速率。通常可以提高飞行性能。

    但是,它会增加总推力,即使油门减至零,也可能导致车辆继续上升。对于调谐良好,功能正常的车辆并非如此,但是例如,当车辆由于过高的P调谐增益而强烈振动时,可能会发生这种情况。

两种模式都在下面显示,其中有两个电机的2D图示以及辊r的转矩命令。在左边的电动机上r被添加到命令推力上,而在右边的电动机上r被减去。马达推力为绿色。启用空气模式后,命令推力会增加b。禁用时,r减小。

如果混合达到上限,则指令推力会减小,以确保没有命令马达提供超过100%的推力。此行为类似于Airmode逻辑,并且无论是否启用Airmode都将应用此行为。

车辆飞行正常后,您可以通过MC_AIRMODE参数启用Airmode。

results matching ""

    No results matching ""