由浅入深剖析PID控制

  • Post author:
  • Post category:其他



文章目录


前言


一、什么是PID控制


二、实例分析


1.比例控制


2.积分控制


3.积分控制的由来


总结



前言


控制系统的原理就是通过测量、比较和执行实现。测量的关键是被控变量的实际值与期望值相比较而得到的偏差,用这个偏差来纠正系统的响应,执行调节控制。PID控制作为最早实用化的的控制器已经有很长时间的历史。 由于PID控制简单易懂,使用中不需要精确的数学模型等先决条件,因而成为应用最为广泛的控制器。本文从一个控制示例出发,由浅入深分析PID各个环节的作用。



一、什么是PID控制


PID控制就是对偏差信号e(t)进行比例、积分和微分运算变换后得到的一种控制规律。


一般形式为:


u(t)=K_{p}*[e(t)+\frac{1}{T_{i}}\int_{0}^{\tau }e(t)d\tau+ T_{d}\frac{de(t)}{dt}]


也可写成:

u(t)=K_{p}*e(t)+K_{i}*\int_{0}^{\tau }e(t)d\tau +K_{d}*\frac{de(t)}{dt} \, \, \, \, \: \: \: \; \; \; \: (1-1)

e(t)=r(t)-x_{o}(t)

r(t)为控制期望,
x_{o}(t)
为系统输出

控制器设计的核心思想就是通过

输出

来控制

输入

,使得系统的输出与我们的期望相等。

将式(1-1)进行拉式变换得到控制器的传递函数为:

G_{c}(s)=K_{p}+K_{i}\frac{1}{s}+K_{d}s


二、实例分析

例:往一圆柱形水桶中加水,目标让水桶水位上升到期望高度,水桶自带漏水特性:水桶漏水流量与水位高度成正比(假设比例系数为K)。(水位高度可以观测)

假设水位上升速度为v,加水流量为u,桶底面积为M,漏水流量为x,水位高度为h。

v=\frac{u-x}{M}

x=K*h

整理上述两式得到系统的微分方程为:

K*h(t)+M*\dot{h}(t)=u(t)

进行拉式变换得:

K*h(s)+M*s*h(s)=u(s)

变换得到系统的传递函数:

G(s)=\frac{h(s)}{u(s)}=\frac{1}{M*s+K}

具体的控制系统框图为:

相应的,

[r(s)-x_{o}(s)]*G_{c}(s)*G(s)=x_{o}(s)

系统的闭环传递函数为:

\phi (s)=\frac{G_{c}(s)*G(s)}{1+G_{c}(s)*G(s)}

为了方便讨论,

目标水位(期望)r(t)=1,r(s)=1/s,

漏水系数K=0.1,桶底面积M=1


1.比例控制

使用比例控制,控制器的传递函数为:
G_{c}(s)=K_{p}

相应的闭环传递函数为,

\phi (s)=\frac{K_{p}}{M*s+K+K_{p}}

观察闭环传递函数的形式我们可以看出,使用比例控制其实改变了原系统传递函数的极点,极点由-k变为-(K+Kp),极点向左移动

系统输出

x_{o}(s)=r(s)*\phi(s)=\frac{1}{s}*\frac{K_{p}}{M*s+K+K_{p}}

部分分式展开得,

x_{o}(s)=\frac{K_{p}}{K_{p}+K}*\frac{1}{s}-\frac{M*K_{p}}{K_{p}+K}*\frac{1}{M*s+K+K_{p}}

拉氏反变换得,

x_{o}(t)=\frac{K_{p}}{K+K_{p}}*e^{0t}-\frac{M*K_{p}}{K+K_{p}}*e^{-\frac{K+K_{p}}{M}t}

在Simulink中仿真,Kp=1

由曲线得出,稳定值为0.91与理论值相同

理论值:

\frac{K_{p}}{K_{p}+K}=\frac{1}{1+0.1}=0.909


x_{o}(t)
可知,

  1. 为了系统稳定,必须有K+Kp>0,且Kp越大,响应速度越快
  2. 使用比例控制无法消除稳态误差,
    \lim_{t\rightarrow \propto }x_{o}(t)=\frac{K_{p}}{K_{p}+K}
    ,Kp越大,稳态误差越小
  3. 可知稳态误差出现的原因是有漏水K,当K=0,系统无稳态误差。

2.积分控制

使用积分控制,控制器的传递函数为:
G_{c}(s)=K_{i}*\frac{1}{s}

闭环传递函数:

\phi(s)=\frac{K_{i}}{M*s^{2}+K*s+K_{i}}

对比
G(s)=\frac{1}{M*s+K}

\phi(s)
可以发现,加入积分控制实际上提高了控制系统的阶次,将原来的一阶系统变为二阶,相应的就拥有了二阶系统的一些特点。

系统输出,

x_{o}(s)=\phi (s)*r(s)=\frac{1}{s}*\frac{K_{i}}{M*s^{2}+K*s+K_{i}}

至此,针对该实例,使用积分控制的分析其实就是分析二阶系统的各种特性。

为了系统稳定,我们要保证闭环传递函数的极点在虚轴左侧(即极点的实部为负)

利用求根公式求极点:
P_{1}=\frac{-K+\sqrt{K^{2}-4*M*K_{i}}}{2*M}\: \: \, \, \, \, P_{2}=\frac{-K-\sqrt{K^{2}-4*M*K_{i}}}{2*M}

下面分情况讨论Ki的取值范围:

  1. K^{2}-4*M*K_{i}\leqslant 0
    ,可得
    K_{i}\geqslant \frac{K^{2}}{4*M}=0.0025
  2. 0< K^{2}-4*M*K_{i}\leqslant K^{2}
    ,可得,
    0\leqslant K_{i}< 0.0025

3.积分控制的由来

由比例控制得出:针对一阶系统的阶跃响应,使用比例控制会有稳态误差

下面讨论依然以一阶系统的阶跃响应为对象,对应的闭环传递函数为:

\phi(s)=\frac{G_{c}(s)}{M*s+K+G_{c}(s)}

由终值定理可知,(使用前提,设计的Gc(s)使系统稳定)

\lim_{t\rightarrow \propto }x_{o}(t)=\lim_{s\to 0}s*x_{o}(s)=\lim_{s\to 0}s*r(s)*\phi(s)=\lim_{s\to 0}\frac{r*G_{c}(s)}{M*s+K+G_{c}(s)}

整理得,

\lim_{t\rightarrow \propto }x_{o}(t)=\lim_{s\to 0}\frac{r}{\frac{M*s+K}{G_{c}(s)}+1}

所以想要消除稳态误差,只需要满足:

\lim_{s\to 0}\frac{K}{G_{c}(s)}=0

即,
\lim_{s\to 0}G_{c}(s)=\propto

易得,
G_{c}(s)=\frac{1}{s}


有时间再补。。。

总结



版权声明:本文为weixin_53084505原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。