PID公式
PID的流程是非常简单的,通过误差信号控制被控量,而控制器本身。是比例,积分,微分的三个环节相加的和。
- 输入量:rin(t);(预定值)
- 输出量:rout(t);(实际值)
- 偏差量:err(t)=rin(t)-rout(t);
公式为:
u(x)=kp(err(t)+1/T∫err(t)dt+TDderr(t)/dt)
- 上述公式流程是为直流有刷电机调速的流程(无刷电机于此类似)
- 直流电机采用 PWM 调速 转速用单位 转/min 表示;
通过PID环控制之后U(t)与PWM的关系
本篇文章给出一种每个电压对应一个转速的方法。
前提条件
- 输出电压控制电压范围是 0-10V。
- 给定、反馈、输出电压采样输入电压范围是 0-5V(经过运放)。
- 使用单片机 AD 为 10 位 AD 芯片(采集到的数据范围为0-1024)。
- PWM 为 8 位可调占空比方波,0 对应输出占空比为 0 的方波,255 对应输出占空
比 100%的方波,127 对应输出 50%的方波。
关系分析
通过上述条件经过AD采样有给定 2.5V 对应为 512,反馈 1V 对应为 205,假定经过 PID 计算得到的 UK 为 400,也就意味着输出电压应当为(400*(UPWM 峰值电压))/1024。 我们知道,UK=1024 对应占空比为 100,也就是 PWM 的占空比系数为 255。可知,PWM 系数 = UK/4;那么 400 就应当对应系数 400/4=100。也就是输出电压=400*10/1024=3.9V 由于采样精度以及 PWM 输出占空比精度控制的问题,将导致输出电压和期 望值不是那么线性,所以,我在项目内加入了输出电压采样的控制。 采样 AD 输入为 0-5V,所以,对于输出 0-10V 有一个缩小的比例。 输出 10V 则采样值对应为 255 输出 5V 则采样之对应 127 可知,3.9V 对应 AD 结果为 97 采样输出电压值,可以针对性的调整一下占空比输出,从而得到误差允许范围内 的一个控制输出电压。
|