常用工业控制(一):PID和模型控制原理详解

控制目标

使被控对象稳定,并尽可能精确且快速地跟踪给定的参考输入信号。

控制方式

  1. 开环控制:预先确定后执行。
  2. 闭环控制:实时根据输出调整输入。

示意图:
常用工业控制(一):PID和模型控制原理详解_第1张图片

(图片摘自网络)

  • 总结:实际应用上是很少用到开环控制,因为被控对象受到扰动是不可避免的,而且本身控制器到被控制对象信号的传递本身就不是精确无误的。比如小车直线匀速行走一段距离,在完美的状态下,是无需调整方向盘和马力。但是由于地面因素,或者从控制器到被控对象中,大到结构的不对称,传动系统的轻微偏差,小到轮胎充气气压不同,车体的重心不同等等,都会导致执行结果产生偏差。正是因为实际应用场景的复杂性,往往可能连输入和状态的模型都很难进行建立,所以使用闭环控制必不可少。

基于简单模型推导pd和pid表达式

  • 讨论线性非时变系统
    1.一阶

    • 运动学模型为
      x ˙ = u x , u ∈ R ; x 为状态, u 为输入 \dot x = u\\ x,u \in R ;x为状态,u为输入 x˙=ux,uR;x为状态,u为输入
    • 想要状态x去跟随期望轨迹 x d e s ( t ) x^{des}(t) xdes(t),如何控制输入u:
      • 可以定义误差 e ( t ) = x d e s ( t ) − x ( t ) e(t)=x^{des}(t)-x(t) e(t)=xdes(t)x(t),且找到能使e(t)随时间t增大收敛到0的关系式
      • 如果 e ( t ) e(t) e(t)以指数收敛到0,只需要符合这个式子: e ˙ + K p e = 0 , K p > 0 \dot{e} + K_{p}e = 0,K_{p}>0 e˙+Kpe=0,Kp>0
      • 将运动学的模型代入该式子,可以得到
        u ( t ) = x ˙ d e s ( t ) + k p e ( t ) u(t) = \dot{x}^{des}(t) + k_{p}e(t) u(t)=x˙des(t)+kpe(t)
        第一项为前馈项,反应的是通过运动学模型计算得到的系统输入;第二项为比例项,是通过误差大小进行比例反馈。

    2.二阶

    • 运动学模型为
      x ¨ = u x , u ∈ R ; x 为状态, u 为输入 \ddot x = u \\ x,u \in R ;x为状态,u为输入 x¨=ux,uR;x为状态,u为输入
    • 想要状态x去跟随期望轨迹 x d e s ( t ) x^{des}(t) xdes(t),如何控制输入u:
      • 可以定义误差 e ( t ) = x d e s ( t ) − x ( t ) e(t)=x^{des}(t)-x(t) e(t)=xdes(t)x(t),且找到能使e(t)随时间t增大收敛到0的关系式
      • 如果 e ( t ) e(t) e(t)以指数收敛到0,只需要符合这个式子: e ¨ + K d e ˙ + K p e = 0 ; K d , K p > 0 \ddot{e} + K_{d}\dot{e} + K_{p}e = 0;K_{d},K_{p}>0 e¨+Kde˙+Kpe=0;Kd,Kp>0
      • 将运动学的模型代入该式子,可以得到
        u ( t ) = x ¨ d e s ( t ) + k p e ( t ) + K d e ˙ ( t ) u(t) = \ddot{x}^{des}(t) + k_{p}e(t) + K_{d}\dot{e}(t) u(t)=x¨des(t)+kpe(t)+Kde˙(t)
        第一项为前馈项,反应的是通过运动学模型计算得到的系统输入;第二项为比例项,是通过误差大小进行比例反馈; 第三项为微分项,通过误差的微分做反馈调整
    • 拓展
    1. PD控制:在控制模型中增加比例项和微分项,在很多实际应用系统中经常使用。比例控制的作用类似于弹簧相应,微分控制的作用类似于粘性阻尼响应。比例项理解很直观,对误差的大小进行补偿。加入微分项,可以减小输入的超调量和校正时间,但过大的微分增益也会导致系统过阻尼,使收敛速度变慢。
    2. PID控制:增加了第四项:积分项。
      • 表达式为
        u ( t ) = x ˙ d e s ( t ) + k p e ( t ) + K d e ˙ ( t ) + K I ∫ 0 t e I ( u ) d u u(t) = \dot{x}^{des}(t) + k_{p}e(t) + K_{d}\dot{e}(t) + K_{I}\int_{0}^{t}eI(u)du u(t)=x˙des(t)+kpe(t)+Kde˙(t)+KI0teI(u)du
      • 积分控制使得稳态误差趋近于零。
      • 【个人理解】 稳态误差,就是调节稳定后实际值和目标值之间的差值。这个差值肯定是存在的,只是需要控制在我们需要的范围内。这个差值主要跟我们最小的调节精度有关,也就是跟比例项最为相关。(当然也与系统间的特性有关,但我们往往是得不到准确的系统模型,但我们可以通过修改系数也逼近实际的系统模型。)如果比例项的最小精度是0.1。而我们的稳态误差需要的是0.05。虽然加入了微分项,有一定的阻尼效果,但对静态误差减少并不显著。这时候应该考虑调节比例项的最小精度,简单处理可以考虑分段pid。如果比例项已经处于比较合适的情况,但稳态误差还是不满足要求。就可以考虑加入积分项。

    3.三阶

    • 按照前面描述可以继续进行拓展。
  • 总结:推导的表达式中,有前馈项;还有与误差相关的比例项、微分项、积分项。前馈项,是基于模型得到的。在建立了准确的模型且执行机构没有偏差的情况下,根据前馈项执行就是达到目标值。但在实际情况下,这是大部分系统难一达到的。往往需要加入误差反馈项。在有些时候,得不到系统模型,也就得不到前馈项,只有误差反馈项同样可以使误差以时间的指数相关的速度收敛到0。可以理解,在没有前馈项时,比例项其实充当了前馈项的作用的,也就是我们将模型建设与误差为线性关系。

拓展:以一个简单二阶系统模型为例。

在上述的二阶系统模型中
x ¨ = u x , u ∈ R ; x 为状态, u 为输入 \ddot x = u \\ x,u \in R ;x为状态,u为输入 x¨=ux,uR;x为状态,u为输入
这样计算得到 u ( t ) = x ¨ d e s ( t ) + k p e ( t ) + K d e ˙ ( t ) u(t) = \ddot{x}^{des}(t) + k_{p}e(t) + K_{d}\dot{e}(t) u(t)=x¨des(t)+kpe(t)+Kde˙(t)中的前馈项,刚好能够反应系统模型:输入和状态的关系。
看下面的二阶系统模型(增加了一阶项和二阶项):
a x ¨ ( t ) + b x ˙ ( t ) + c x ( t ) = u ( t ) a \ddot{x}(t) + b \dot{x}(t) + cx(t) = u(t) ax¨(t)+bx˙(t)+cx(t)=u(t)
同样的,还是定义误差 e ( t ) = x d e s ( t ) − x ( t ) e(t)=x^{des}(t)-x(t) e(t)=xdes(t)x(t),且找到能使e(t)随时间t增大收敛到0的关系式,找到符合该关系的式子: e ¨ + K d e ˙ + K p e = 0 ; K d , K p > 0 \ddot{e} + K_{d}\dot{e} + K_{p}e = 0;K_{d},K_{p}>0 e¨+Kde˙+Kpe=0;Kd,Kp>0,代入将得到
u ( t ) = a ( x ˙ d e s ( t ) + k p e ( t ) + K d e ˙ ( t ) ) + b x ˙ ( t ) + c x ( t ) u(t) = a(\dot{x}^{des}(t) + k_{p}e(t) + K_{d}\dot{e}(t)) + b \dot{x}(t) + cx(t) u(t)=a(x˙des(t)+kpe(t)+Kde˙(t))+bx˙(t)+cx(t)
同样可以分为模型控制和误差控制两部分。

总结:

模型+误差反馈控制在实际中非常常用,模型也可以理解为开环,误差反馈为闭环。实际应用也非常灵活,但基本思想是一致的。当系统模型可以准确描述,且执行没有偏差时,只需要系统模型(开环)控制就可以到达控制效果。但因为系统本身的复杂性和各种扰动的存在,需要加入误差(闭环)控制。基于模型(同时需要比较准确)的部分可以在任何状态下提供一个良好的初值,那么误差反馈项就只需要解决微小的系统偏差和执行偏差,那么误差反馈的任务就可以简化。但在实际应用中,一些系统没法比较准确的描述系统模型,只通过误差反馈控制也是能到控制效果。

最后:

  • 注意:证明时假设系统为线性时不变系统。但实际控制系统中很少能完美满足线性时不变系统,但上述的经典控制方式仍然能适应轻微非线性的系统;或者通过改良(如局部线性化),在非线性时变系统下仍然有良好的表现,这在以后进行讨论。

你可能感兴趣的:(控制算法,算法,机器人)