我正在编码为PWM电机驱动器制作模糊PID控制器以控制速度。反馈是霍尔效应编码器固定在电机轴上的方波。
我的代码可以计算来自编码器的方波的两个上升沿之间的时钟上升沿,以计算一次旋转的时间。我的代码中的函数可以将任何给定的RPM转换为一次旋转所需的时间,这就是控制器的设定值。
错误显然是设定值和当前值之间的差异(一次旋转的时间应该是什么) -
这进入了后差PID控制算法,我得到一个数字作为输出(这是基本的P *误差+ I *(前置误差的总和)+ D(前当前速度))。
这必须映射到PWM驱动器过程的特定PWM占空比百分比,以增加或减少PWM功率输出。
我遇到了这种映射的概念问题。我应该如何将输出数转换为百分比?我正在考虑计算这个值的最大可能误差和零误差,然后分别将它们映射到100和1%的占空比。
我正在寻找概念,而不是代码。 感谢。
答案 0 :(得分:0)
PID的输出可以是过程所需的单位。
从概念上讲,将P(和I和D)常数视为测量误差与输出/受控变量之间的转换因子。如果您希望输出百分比从0到100,输入以毫秒为单位,则您的P项应具有百分比/毫秒的单位。 I和D术语的单位取决于您的采样间隔。
如果您的过程变量是"一次旋转的时间",并且您通过增加占空比来提高速度(减少时间),那么您将需要负系数。