广东湘恒智能科技有限公司
主营产品: 西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
PID控制
发布时间:2024-11-26

PID是 Proportional(比例)、Integral(积分)、Differential(微分)的首字母缩写,它是一种结合比例、积分和微分三个环节于一体的闭环控制算法。本质:根据输入的偏差值,按照比例、积分、微分的函数关系进行运算,运算结果用以控制输出。1P-比例控制算法成比例地反应控制系统的偏差信号,即输出u与输入偏差e成正比,可以用来减小系统的偏差。我有一个水缸,最终的控制目的是要保证水缸里的水位永远的维持在1米的高度。假设初始时刻,水缸里的水位是0.2米,那么当前时刻的水位和目标水位之间是存在一个误差的error,且error为0.8。这个时候,假设旁边站着一个人,这个人通过往缸里加水的方式来控制水位。如果单纯的用比例控制算法,就是指加入的水量u和误差error是成正比的。即  假设  取0.5,那么  时(表示第1次加水,也就是第1次对系统施加控制),那么  ,所以这一次加入的水量会使水位在0.2的基础上上升0.4,达到0.6。接着,  时刻(第2次施加控制),当前水位是0.6,所以error是0.4。u=0.5*0.4=0.2,会使水位再次上升0.2,达到0.8.时间水位误差error控制量  00.20.80.5*0.8=0.410.60.40.5*0.4=0.220.80.20.5*0.2=0.130.90.10.5*0.1=0.0540.950.050.5*0.05= 0.02550.9750.0250.5*0.025=0.012560.98750.01250.5*0.0125=0.0062570.993750.006250.5*0.00625=0.0031258………………如此这么循环下去,就是比例控制算法的运行方法。可以看到,最终水位会达到我们需要的1米。但是,单单的比例控制存在着一些不足,其中一点就是 –稳态误差!。像上述的例子,根据  取值不同,系统最后都会达到1米,只不过  大了到达的快,  小了到达的慢一些,不会有稳态误差。但是,考虑另外一种情况,假设这个水缸在加水的过程中,存在漏水的情况,假设每次加水的过程,都会漏掉0.1米高度的水。仍然假设  取0.5,那么会存在着某种情况,假设经过几次加水,水缸中的水位到0.8时,水位将不会再变换!!!因为,水位为0.8,则误差  . 所以每次往水缸中加水的量为  .同时,每次加水,缸里又会流出去0.1米的水!!!加入的水和流出的水相抵消,水位将不再变化!!也就是说,我的目标是1米,但是最后系统达到0.8米的水位就不再变化了,且系统已经达到稳定,由此产生的误差就是稳态误差了。(在实际情况中,这种类似水缸漏水的情况往往更加常见,比如控制汽车运动,摩擦阻力就相当于是“漏水”,控制机械臂、无人机的飞行,各类阻力和消耗都可以理解为本例中的“漏水”)所以,单独的比例控制,在很多时候并不能满足要求。1、K_p越大,系统响应越快,越快达到目标值。2 、K_p过大会使系统产生较大的超调和振荡,导致系统的稳定性变差。3、仅有比例环节无法消除静态误差。2I-积分控制算法还是用上面的例子,如果仅仅用比例,可以发现存在暂态误差,最后的水位就卡在0.8了。于是,在控制中,我们再引入一个分量,该分量和误差的积分是正比关系。所以,比例+积分控制算法为:  还是用上面的例子来说明,第一次的误差error是0.8,第二次的误差是0.4,至此,误差的积分(离散情况下积分其实就是做累加),∫error=0.8+0.4=1.2.这个时候的控制量,除了比例的那一部分,还有一部分就是一个系数  乘以这个积分项。由于这个积分项会将前面若干次的误差进行累计,所以可以很好的消除稳态误差(假设在仅有比例项的情况下,系统卡在稳态误差了,即上例中的0.8,由于加入了积分项的存在,会让输入增大,从而使得水缸的水位可以大于0.8,渐渐到达目标的1.0)这就是积分项的作用。P+PI控制:时间水位误差error控制量  00.20.80.5*0.8=0.410.60.40.5*0.4=0.2控制量    20.80.20.5*0.2+0.5*0.2=0.230.9(流0.1)0.10.5*0.1+0.5*0.3=0.24100PI控制:时间水位误差error控制量    00.20.80.5*0.8+0.5*0.8=0.810.9(流出0.1)0.10.5*0.1+0.5*(0.8+0.1)=0.521.3(流出0.1)-0.30.5*(-0.3)+0.5*(0.8+0.1-0.3)=031.2(流出0.1)-0.20.5*(-0.2)+0.5*(0.8+0.1-0.3-0.2)=0.141.2(流出0.1)-0.20.5*(-0.2)+0.5(0.8+0.1-0.3-0.2-0.2)=051.1(流出0.1)-0.10.5*(-0.1)+0.5(0.8+0.1-0.3-0.2-0.2-0.1)=0610……1、K_i越大,消除静态误差的时间越短,越快达到目标值。2、K_i过大会使系统产生较大的超调和振荡,导致系统的稳定性变差。3、对于惯性较大的系统,积分环节动态响应较差,容易产生超调、振荡。
展开全文
拨打电话 微信咨询 发送询价