微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的数字PID实现直流电机调速(智能车)

基于单片机的数字PID实现直流电机调速(智能车)

时间:11-23 来源:互联网 点击:
现在做很多的智能车,都需要对车速进行控制.或匀速或变速,在调速算法中,PID的经典永垂不朽.

其实,简单的51单片机尚能轻易的实现平滑良好的调速,更不用说性能优良的单片机.然而,要做到最好,是需要很高的专业水平和动手能力.但是,工程上能达到我们的目标即可.

抱着"够用就好"的思想,我们来开始我们的调速旅程:

所谓的PID是肯定基于一个闭环系统而言的,什么是闭环系统呢,我简单的介绍一下:

看上面的这个系统,就不是一个闭环系统,而是一个开环系统.再看下面的这个就是闭环系统:

上图这个系统就是典型的闭环系统.大家也许看出来了,"开环"系统,就是系统没有反馈,是个"打开的环",而闭环系统,是有反馈的,是一个完整的环形.

正是这个反馈,就可以将当前电机的转速传递给系统控制端,如果电机转速快了,控制器就让它慢点(比如可以降低电机两端的电压),同样,如果速度传感器检测到转速低了,就应该让电机两端的电压提高一点.就是在这样的不断矫正中,电机的速度会保持恒定.当然,这个矫正的周期是非常短的,矫正的速度是很快的.

有人说,不就是多了就少点,少了就多点嘛,干嘛使用什么玄乎的PID?

对,你说对了,"多了就少点,少了就多点"这本身就是PID里面的一种:P控制--只使用了P算法.

接下来我们就看看到底什么是PID,为什么要使用PID,怎么样使用PID:

P--比例

I--积分

D--微分

我们来一条一条的讲解P,I,D的含义及其意义:

P--比例部分

这个很好理解.比如说,速度传感器发现,当前速度是1200(每分钟).而我们设定的速度值为1000,那么就差别了200,这时,如果我设定P为0.1,如果输入的电压就应该是Uo-0.1x200.看到了没有,这里的比例的意思就是"倍数",就是你要把这个偏差放大多少倍."放大"本身就是一个比例嘛.知道了这个,你就可以写一个PID控制里面的P控制了.很多时候,不需要I和D控制,单单一个P控制就足够了.到了这里你就可以控制电机的速度了.

I--积分部分.

这个积分其实也很好理解.它是一个积分运算.有的时候偏差不是很大,所以继续运行下去,会使系统存在一个偏差.但是你如果使用I运算将这个偏差累加起来,到了一定大小的时候就进行处理.这样就能防止系统的误差累计.其实,在程序中,这个过程就是对一个小偏差的连续累加罢了.

D--微分部分.

这个部分也比较好理解.所谓的微分就是对变量求导呗,意思就是一个量的变化率呗.所以,微分部分就是能够将变量变化率放入计算中.这个量在编程中其实就是求上次的偏差和这次的偏差的差罢了.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top