功勋会员
WJ
- 积分
- 6304
- 威望
- 1456
- 贡献
- 4674
- 兑换币
- 17
- 注册时间
- 2008-4-6
- 在线时间
- 87 小时
|
没有看理论,把代码给你,你都看不懂。或者说更本用不了。
首先,为什么要做PID?
由于外界原因,小车的实际速度有时不稳定,这是其一,要让小车以最快的时间达达到既定的目标速度,这是其二。这个速度的调整过程就必须通过某个算法调整,一般PID就是这个所用的算法。
可能你会想到,如果通过编码器测得现在的速度是2.0m/s,要达到2.3m/s的速度,那么我把pwm增大一点不就行了吗?
是的,增大pwm多少呢?必须要通过算法,因为PWM和速度是个什么关系,对于整个系统来说,谁也不知道。要一点一点的试,加个1%,不够,再加1%还是不够,那么第三次你还会加1%吗?很有可能就加2%了。通过PID三个参数得到一个表达式:△PWM=a *△V1+b *△V2+c *△V3,
a b c是通过PID的那个长长的公式展开,然后约简后的数字,△V1 ,△V2 ,△V3 此前第一次调整后的速度差 ,第二次调整后的速度差,第三次。。。。。
一句话,PID要使当前速度达到目标速度最快,需要建立如何调整pwm和速度之间的关系。
现在你应该明白输入输出是什么。
输入就是前次速度,前前次速度,前前前次速度。
输出就是你的PWM应该增加或减小多少。 |
|