PID(一)

1.关于PID算法的基本概念

比例环节

成比例的反映控制系统的偏差信号error(t),偏差一旦产生,控制器立刻产生控制作用,以减少偏差。Kp越大,系统的响应速度越快,调节精度越高,但是容易产生超调,超过一定范围会导致系统的振荡加剧甚至不稳定。

积分环节

主要作用:消除静差,,提高系统的无差度。

缺点:使得系统的稳定性下降动态响应变慢。

积分作用的强弱取决于积分时间常数T(i),T(i)越大,积分作用越弱,系统的静态误差消除越快,但是容易在初期产生积分饱和现象,从而引起响应过程的较大超调。

微分环节

反映偏差信号额变化趋势(变化速率)并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。

作用:在回应过程中抑制偏差向任何方向的变化,对偏差变化进行提前预测。

注意:微分环节会使得响应过程提前制动,从而延长调节时间。

2.关于PID算法的理解

比例控制算法

       单独讨论PID中最简单的比例控制。假设有一个水缸,最终的控制目的是要保证水缸里的水位永远的维持在1米的高度。初始时刻,水缸里的水位是0.2米,那么当前时刻的水位和目标水位之间就存在一个误差的error,且error=0.8,如果旁边有人通过往缸里加水的方式来控制水位。单纯使用比例控制算法,就是指加入的水量u和误差error是成正比的。即 u=kp*error ,若kp0.5 那么t=1时(表示第1次加水,也就是第一次对系统施加控制),那么u=0.5*0.8=0.4,所以这一次加入的水量会使水位在0.2的基础上上升0.4,达到0.6. 接着,t=2时刻(第2次施加控制),当前水位是0.6,所以error0.4u=0.5*0.4=0.2,会使水位再次上升0.2,达到0.8. 如此这么循环下去,就是比例控制算法的运行方法。 可以看到,最终水位会达到我们需要的1米。 但是,单单的比例控制存在着一些不足,其中一点就是 –稳态误差! 

       像上述的例子,根据kp取值不同,系统最后都会达到1米,不会有稳态误差。但是,考虑另外一种情况,假设这个水缸在加水的过程中存在漏水的情况,假设每次加水的过程,都会漏掉0.1米高度的水。若kp仍0.5,那么会存在着某种情况,经过几次加水,水缸中的水位到0.8时,水位将不会再变换!因为,水位为0.8,则误差error=0.2. 所以每次往水缸中加水的量为u=0.5*0.2=0.1.同时,每次加水缸里又会流出去0.1米的水!加入的水和流出的水相抵消,水位将不再变化!! 也就是说,目标是1米,但是最后系统达到0.8米的水位就不在变化了,且系统已经达到稳定。由此产生的误差就是稳态误差。(在实际情况中,这种类似水缸漏水的情况往往更加常见,比如控制汽车运动,摩擦阻力就相当于是“漏水”,控制机械臂、无人机的飞行,各类阻力和消耗都可以理解为本例中的“漏水”) 
        所以,单独的比例控制,在很多时候并不能满足要求。

积分控制算法

       继续上面的例子说明,如果仅仅用比例,可以发现存在暂态误差,最后的水位就卡在了0.8。于是,在控制中,我们再引入一个分量,该分量和误差的积分是正比关系。所以,比例+积分控制算法为: u=kp*error+ kierror 第一次的误差error0.8,第二次的误差是0.4,至此,误差的积分(离散情况下积分其实就是做累加),error=0.8+0.4=1.2. 这个时候的控制量,除了比例的那一部分,还有一部分就是一个系数ki乘以这个积分项。由于这个积分项会将前面若干次的误差进行累计,所以可以很好的消除稳态误差(假设在仅有比例项的情况下,系统卡在稳态误差了,即上例中的0.8,由于加入了积分项的存在,会让输入增大,从而使得水缸的水位可以大于0.8,渐渐到达目标的1.0.)这就是积分项的作用。

微分控制算法

       汽车刹车情况。平稳的驾驶车辆,当发现前方路口为红灯时,为了使得停车平稳,我们需要提前一定距离放松油门并踩刹车。当车辆离停车线非常近的时候,则使劲踩刹车,使车辆停下来。整个过程可以看做一个加入微分的控制策略。 
        微分,在离散情况下其实就是error的差值,就是t时刻和(t-1)时刻error的差,即u=kd*errort-errort-1)),其中的kd是一个系数项。可以看到,在刹车过程中,因为error是越来越小的,所以这个微分控制项一定是负数,在控制中加入一个负数项,它存在的作用就是为了防止汽车由于刹车不及时而过线。从常识角度,越是靠近停车线,越是应该注意踩刹车,不能让车过线,所以这个微分项的作用,就可以理解为刹车,当车离停车线很近并且车速还很快时,这个微分项的绝对值(实际上是一个负数)就会很大,从而表示应该用力踩刹车才能让车停下来。 切换到上面给水缸加水的例子,就是当发现水缸里的水快要接近1的时候,加入微分项,可以防止给水缸里的水加到超过1米的高度,也就是减少控制过程中的震荡。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值