首页 理论教育离散化PI控制器的优化方法

离散化PI控制器的优化方法

【摘要】:算法的离散化有两种方式,一种比较直观,根据已有控制器的结构写出各部分的离散化实现,另外一种通过离散化算法对连续算法进行离散化。设e为第n步系统误差,Kp,Ki分别为PI控制器的比例系数和积分系数。在这里我们可以把PI控制器看作一个以误差为输入量,控制信号为输出量的线性传递函数。对公式进行拉普拉斯变换,求得传递函数(请思考问题:PID控制器的传递函数是怎样的?

通过公式(6.28),我们不但清楚了控制信号与误差之间的计算关系,也掌握了控制信号的组成结构。但这似乎还不够,我们不能直接把公式摆在计算机面前,告诉它“我已经写好了,需要你帮我实现它”,我们必须用计算机能够“理解”的方式把算法公式表达出来。

算法的离散化有两种方式,一种比较直观,根据已有控制器的结构写出各部分的离散化实现,另外一种通过离散化算法对连续算法进行离散化。本节会分别介绍这两种方法。

第一种方法根据PI控制器的结构,在计算第n步控制量un)时,只要分别计算第n步比例项控制量upn)和第n步积分项控制量uin)并求和即可得:

un)=upn)+uin), (6.29)

积分项可以直接看作单位时间上的误差积累。公式(6.28)中,输出量是关于误差的连续函数。设en)为第n系统误差KpKi分别为PI控制器的比例系数和积分系数。根据(6.28)很容易得到第n步控制量比例项计算公式:

upn)=Kpen), (6.30)

积分部分有不同计算方法,可以采用矩形法,也可以采用梯形法,不同的方法计算量和逼近效果会有一定区别。为了方便理解,我们不妨采用最简单的形式:

uin)=Ki·ein),

ein)=ein-1)+en)·T, (6.31)

其中ein)为第n步误差的积分值,T为采样时间。将(6.30),(6.31)带入(6.29)即可得到第n步控制量与误差量间的直接关系:

un)=Kpen)+Ki[ein-1)+en)·T]. (6.32)

PI或PID控制器为线性控制器,且结构简单明了,我们可以很方便地写出对应的控制算法。然而在很多情况下需要一种适用性更广的方法,这就是控制领域中常用的连续函数离散化方法(请思考问题:为什么需要连续函数的离散化?)

离散化的方法有很多如欧拉法和塔斯汀法等,不同方法的区别主要体现在从S域到Z域的变换方式上,如果读者对这些控制学的名词感到陌生也不要紧,可以直接理解为用离散来逼近连续的不同近似方法即可。

有兴趣的朋友可以翻开任何一本控制学教材,都会有Z变换或离散化的相关章节。或者打开Matlab,输入:help c2d,学习说明文件,会有“zoh”“foh”“impulse”“tustin”“mached”等不同离散化方法的详细介绍。

在这里我们可以把PI控制器看作一个以误差为输入量,控制信号为输出量的线性传递函数。对公式(6.28)进行拉普拉斯变换,求得传递函数(请思考问题:PID控制器的传递函数是怎样的?有着怎样的特点?):

接下来要将传递函数从S域转换到Z域,在这一步中体现出了不同离散化算法的区别。如欧拉法,S域到Z域的转换公式为:

而塔斯汀法,S域到Z域的转换公式为:

不同离散化方法之间的区别与第一类离散化策略中不同积分逼近算法的区别,在本质上是一样的。我们不妨采用欧拉法,将(6.34)带入到(6.33)中,可以得到如下方程:

Uz)=Uz)·z-1+KpEz)-KpEz)·z-1+Ki·T·Ez)·z-1, (6.36)

最后一步是将(6.36)式从Z域转化为差分方程,令Uz)=Un),Ez)=En),并将下式:

z-kxn)=xn-k) (6.37)

带入(6.36),即可得到PI控制器的差分方程:

un)=un-1)+Kpen)-Kpen-1)+Ki·T·en-1) (6.38)

当我们对un-1)进行迭代运算,就可以得到与(6.32)一样的结果了。