反馈分析

重要

这些“Gains”实际上是“Educated Guesses”-不能保证它们是完美的,应该被视为 “Starting Point” 为了进一步优化

警告

反馈增益计算假定传感器测量中没有机械侧隙,传感器噪声或相位滞后。虽然这些假设在很多情况下都是合理的,但在实践中没有一个是严格正确的。特别是,许多”Smart Motor Controllers” (例如“ Talon SRX”,“ Talon FX”和“ SPARK MAX”)有应用实质性的默认设置:裁判<low-pass filtering <docs/software/advanced-controls/filters/introduction:Introduction to Filters>`编码器速度测量,这引入了大量的相位滞后.这可能会导致速度循环的计算增益不稳定。为了解决这个问题,要么减少API控制器的过滤量,要么或者降低PID增益的幅度。人们发现对滤波的设置,大约把增益缩小10倍,效果是最好的

一旦计算前馈系数后,```Feedback Analysis’’窗格上的控件将变为可用。

Picture of the feedback analysis pane

这些可以用来为您的机构的PD,P控制器计算最佳反馈增益(通过`LQR <https://en.wikipedia.org/wiki/Linear%E2%80%93quadratic_regulator>`__)。

输入控制器参数

注解

“Spark Max”预设假设用户已配置控制器,使其在分析单元中使用Spark Max API的位置/速度缩放因子特征进行操作。

计算的前馈增益为 Dimensioned Quantities。很不幸,很少有人注意到PID的增幅单位在FRC | reg |控制,所以在以PID控制器中各种经典的选项,实现在它们的单元约定中有所不同(用户通常不清楚)。

要为PID控制器指定正确的设置,请使用以下选项。

Picture of the controller settings
  • Gain Settings Preset: This drop-down menu will auto-populate the remaining fields with likely settings for one of a number of common FRC controller setups. Note that some settings, such as post-encoder gearing, PPR, and the presence of a follower motor must still be manually specified (as the analyzer has no way of knowing these without user input), and that others may vary from the given defaults depending on user setup.

  • **Controller Perio:**这是控制循环的执行周期,以秒为单位。默认的RIO环路速率为50Hz,对应于0.02s的周期。大多数“智能控制器”上的板载控制器以1Khz或0.001s的周期运行。

  • **Max Controller Output:**这是控制器输出的最大值,相对于PID计算而言。大多数控制器计算的输出最大值为1,但Talon控制器的输出最大值为1023。

  • **Time-Normalized Controller:**这指定PID计算是否标准化为执行周期,从而影响D增益的缩放。

  • **控制器类型:**这指定控制器是板载RIO回路,还是在智能电机控制器上运行例如Talon或SPARK MAX。

  • Post-Encoder Gearing: 这指定了编码器和机构本身之间的传动装置。这对于在其PID计算中不允许用户指定单元缩放的控制回路(如在Talons上运行的回路)是必要的。如果不相关,这将被禁用。

  • **Encoder EPR:**这指定了所用编码器的每转边沿(不是每转周期),在与后期编码器齿轮传动相同的情况下需要使用。

  • **Has Follower:**如果在外围设备上运行控制回路,则在运行控制回路的控制器之后是否有电动机控制器,这将更改有效循环周期。

  • Follower Update Period: 跟随者(如果当前)更新的速率。默认情况下,这是100Hz (每0.01s )的Talon SRX,Talon FX和SPARK MAX,但可以更改。

注解

如果您选择智能电动机控制器作为预设(例如TalonSRX,SPARK MAX等),则会自动选中```Convert Gains’’复选框:这意味着该工具将转换您的增益,以便可以通过智能电机控制器的PID方法使用它们。因此,如果要使用WPILib的PID循环,则必须取消选中该框。

指定最佳标准

最后,用户必须指定将被视为“optimal:最佳”控制器的位置。这采取了系统误差和控制工作所需公差的形式-请注意,不能保证系统始终遵守这些公差。

Entering optimality criteria for the feedback controller

通常,“Max Acceptable Error 的较小值和``Max Acceptable Control Effort`` 的较大值将导致较大的增益-这将导致较大的控制工作,可以提供更好的设定值跟踪,但是可能会导致更猛烈的行为和更大的组件磨损。

Max Acceptable Control Effort 绝不能超过12V,因为这相当于电池的满电压,理想情况下应低于此电压。

选择循环类型

根据应用情况,通常同时使用位置和速度PID来控制机构。可以使用下拉的``Loop Type``菜单选择任何一种。

Specifying characterization loop type

输入已知速度/加速度

注解

有时,如果使用异常轻巧的机械/机器人和/或异常嘈杂的数据,则``kA’’值可能会非常小(甚至略微为负)。在这种情况下,用户应将“ kA”设置为零。在这种情况下,计算得出的反馈增益也可能为零-这是因为在LQR的假设下,这样的机制不应该要求反馈精确跟踪设定值。这些假设可能并不十分准确,并且无论如何用户都可能需要添加反馈-在这种情况下,必须手动调整循环。

如果希望使用 Feedback Analysis 窗格而不对一组数据进行全面分析,或者希望查看修改``kV’’和``kA’’值的效果,可以在此处完成。

Entering known acceleration and velocities

计算收益

最后,按 Calculate Optimal Controller Gains 以确定反馈增益。

Calculating the Optimal Controller Gains