0

我正在编写一个用于控制速度的 PWM 电机驱动器的模糊 PID 控制器。反馈是来自固定在电机轴上的霍尔效应编码器的方波。

我的代码可以计算来自编码器的方波的两个上升沿之间的时钟上升沿,以计算一转的时间。我的代码中的函数可以将任何给定的 RPM 转换为一转所需的时间,这就是控制器的设定点。

错误显然是设定点和当前值之间的差异(应该是一圈的时间 - 当前是什么)。

这进入了反向差分 PID 控制算法,我得到一个数字作为输出(基本上是 P*error + I*(prev 误差之和)+ D(prev-当前速度))。

这必须映射到特定的 PWM 占空比百分比,以便 PWM 驱动器进程增加或减少 PWM 功率输出。

我对这个映射有概念上的问题。我应该如何将输出数字转换为百分比?我正在考虑计算最大可能误差和零误差的值,然后将它们分别映射到 100 和 1% 占空比。

我正在寻找概念而不是代码。谢谢。

4

1 回答 1

0

PID 的输出可以是过程所需的单位。

从概念上讲,将 P(以及 I 和 D)常数视为测量误差与输出/控制变量之间的转换因子。如果您希望以 0 到 100 的百分比输出,并且输入以毫秒为单位,那么您的 P 项应该具有百分比/毫秒的单位。I 和 D 项的单位取决于您的采样间隔。

如果您的过程变量是“一转时间”,并且您通过增加占空比来增加速度(减少时间),那么您将需要负系数。

于 2014-09-17T07:27:22.103 回答