PID算法控制简单理解

1 传统的位式控制算法

  用户期望值Sv(设定值)经控制算法输出一个输出信号OUT,输出信号加载到执行部件上(像MOS管等)对控制对象进行控制(步进电机、加热器等),控制对象的当前值(Pv)如速度通过传感器反馈给控制算法与Sv相比较。

  特点:1 位式算法输出的控制信号只有两种状态‘H’或者‘L’。

        2 算法输出信号OUT的依据:

          如果Pv>=Sv 输出信号高了

          如果Pv<Sv 输出信号低了

  缺点:只能考察控制对象的当前值

2 PID算法

 

  Sv:用户的设定值(目标值)

扫描二维码关注公众号,回复: 4303174 查看本文章

  Pv:反应负载当前的状态值(控制对象当前的状态值)

  E = Sv - Pv :偏差值

2.1 PID算法分析

  1.从开始工作到当前时刻得到一个采样点序列(假如每秒采样一次,Xk表示当前时刻的采样值):

    X1,X2,X3,..........Xk-1,Xk

  2.分析采样点序列得到三个信息:

    1> 偏差值Ek = Sv - Xk 反映了当前时刻,传感器反馈回来的值与目标值偏差的程度;

       如果:Ek>0   表示当前时刻未达标

             Ek=0   表示当前时刻已达标

             Ek<0   表示当前时刻已超标

        设:Pout = Kp * Ek  ——比例控制

        特点:比例控制一般输出为PWM信号,通过调节PWM的占空比,来对输出进行控制。比例控制只考虑当前时刻是否有偏差,当Ek=0时,负载就处于失控状态,PWM此时可不起作用;比例控制没有偏差时是不起作用的,需要始终有一个偏差。

        一般地在算法上加一个常数:

          Pout = Kp * Ek + out0 ;

    2>历史偏差序列(有正数有负数)

    设:E1=Sv-X1,E2=Sv-X2,E3=Sv-X3,.........Ek = Sv - Xk

    得序列:E1,E2,E3,.............Ek.

      Sk=E1+E2+E3+............+Ek

      如果:Sk>0     过去时间段大多数时刻未达标

            Sk=0     过去时间段总体情况较好

            Sk<0     过去时间段大多数时刻超标

      根据历史状态输出信号得:

            Iout = Kp * Sk  ——积分算法

      单纯的积分控制Sk=0时,会严重干扰当前情况,进入失控状态;一般的

            Iout = K* E+ out0

    3>最近两次的偏差相减

      Dk=Ek-Ek-1

      如果:Dk>0 偏差有增大趋势
            Dk=0 偏差趋势没有变化
            Dk<0 偏差有减小趋势
         Dout =Dk * Kp   ——微分控制
       微分控制不可以独立行动,微分算法只关心偏差有没有变化趋势
         Dout =Dk * Kp + out0 

              

猜你喜欢

转载自www.cnblogs.com/dongry/p/9995949.html