发表于:2003-03-20 11:21:00
楼主
计算机控制系统中对象模型的辩识主要有相关分析法和模拟化工程方法两大类,前者是基于随机系统理论的一类方法,由于要进行理论上较复杂的运算,且对噪声性质有种种限制,因此理论上的探讨较多而工程上的推广应用较少。模拟化工程方法主要是基于阶跃响应等曲线的一类方法,由这些含有对象模型特性信息的曲线数据求出对象S传函,再由S传函求出Z传函。由于人们对模拟系统比较熟悉,因此在工程上模拟化工程方法得到了较多的运用。
模拟化工程方法一般只得到一阶模型,比如阶跃响应法得到的就是一阶惯性环节加纯滞后模型[1]。对于高阶对象,这样的模型只是一种低阶近似。这种低阶近似模型用于计算机控制系统控制器模拟化设计的PID参数初始设定具有实用意义,但用于计算机控制系统控制器的直接设计方法设计以及对模型精度要求比较高的场合却感到欠缺。要得到高阶模型,则需进行较复杂的运算。并且,这种源于模拟系统的方法要经过模拟系统的S传函这一中间形式再转换到数字系统的Z传函,这无疑增加了方法的复杂性。
我们能否找到基于计算机控制系统的类似于模拟化工程方法的一种方法,由阶跃响应曲线直接计算出Z传函而不经过S传函这一中间步骤?这正是本文讨论的问题。本文不但找到了这样的方法,而且得到的方法还克服了只能得到低阶模型的限制,因此,更适合于计算机控制系统。
1 单位幅度矩形脉冲法
我们知道,在模拟系统中对象的S传函是对象单位脉冲响应函数g(t)的拉氏变换,我们容易联想到在计算机控制系统中对象的Z传函应该与矩形脉冲的时域响应有着某种联系。我
们定义如图1所示的其宽度为计算机控制系统采样周期T,高度为1的矩形脉冲D(t)为单位幅度矩形脉冲,则单位幅度矩形脉冲D(t)可以看成单位阶跃函数1(t)和1(t-T)的差,即:
D(t)=1(t)-1(t-T)(1)
因此,D(t)的拉氏变换为:
D(s)=(1-e-TS)/s(2)
图1
若对象的S传函为G(s),则对象在单位幅度矩形脉冲作用下输出的拉氏变换为:
y(s)=G(s)(1-e-TS)/s(3)
这个结果是非常巧的,我们知道计算机控制系统由于有输出保持器存在,所以计算机控制系统中控制器面对的是广义对象[2]:
G~(s)=G(s)*(1-e-TS)/s(4)
而不是G(s)。非常幸运的是,G~(s)正好是y(s)!这比一般模拟系统的相应结果方便多了,因为一般模拟系统要在单位脉冲函数δ(t)的作用下才得到y(s)=G(s)的结果,理想δ(t)函数是无法实现的,我们只能用矩形脉冲近似代替,得到的只是近似解。而在计算机控制系统中,我们却用单位幅度矩形脉冲得到了G~(s)的精确解。在模型处理上计算机控制系统也比模拟系统方便,因为在实际系统中我们只能得到对应于G~(s)或G(s)的对象时域响应函数g~(t)或g(t)。在模拟系统中我们常用的传函形式是G(s),在计算机控制系统中我们常用的传函形式是G(z):
G(z)=£[G(s)*(1-e-TS)/s] (5)由g(t)曲线计算G(s)是比较繁琐的。而由g~(t)曲线计算G(z)则非常简捷,因为G(z)的幂级数展开式正好对应于脉冲响应函数g~(t)的离散形式g~(iT),i=1,2,…。因此,只需对g~(t)按采样周期T采样,得到的数据g~(iT)构成级数:
G(z)=g~(T)z-1+g~(2T)z-2+g~(3T)z-3+… (6)
就得到G(z)的幂级数展开形式。
于是,我们可以用宽度为采样周期T高为1的单位幅度矩形脉冲作用于被控对象,然后按采样周期T对对象输出进行采样,所得的数据按照(6)式构成级数就得到对象在计算机控制模式下的Z传函G(z)的幂级数展开形式。我们称这个方法为单位幅度矩形脉冲法。
2 单位阶跃响应直接法
前面讨论的单位幅度矩形脉冲法在采样周期T比较小的时候实际应用效果不太好。这是因为对对象的激励程度与矩形脉冲的面积即冲量有关。当T较小时由于输入对象的冲量较小,其输出幅度也较小,干扰信号对辩识结果的影响就比较明显。并且实际对象总带有一定的非线性,激励程度过小将使辩识的工作点低于实际运行的工作点过多,因而得到的模型与实际运行时的模型相差过大。当然,我们可以适当增加输入矩形脉冲的幅度来加大激励,而在结果中除以相应的系数。但幅度的增加受到模出量程的限制。
由(4)式有:
G~(s)=G(s)/s-G(s)e-TS/s=G(s)*(1/s)-G(s)*(1/s)*e-TS(7)
根据拉氏反变换的分配律有:
g~(t)=£-1(G(s)*(1/s))-£-1(G(s)*(1/s)*e-TS) (8)
由于(1/s)是单位阶跃函数的拉氏变换,因此£-1(G(s)*(1/s))是单位阶跃响应时域函数,我们记为:
h(t)=£-1(G(s)*(1/s)) (9)
则:
h(t-T)=£-1(G(s)*(1/s)*e-TS) (10)
因此:
g~(t)=h(t)-h(t-T)(11)
将g~(t)离散化得:
g~(iT)=h(iT)-h((i-1)T),i=1,2,…(12)
由(12)式代入(6)式我们可以得到:
G(z)=(h(T)-h(0))z-1+(h(2T)-h(T))z-2+(h(3T)-h(2T)) z-3+(h(4T)-h(3T))z-4+,…,+(h(iT) -h((i-1)T))z-i+…(13)
这样,我们就得到了一种非常简洁的称为单位阶跃响应直接法的辩识方法,该方法为:对对象施加单位阶跃输入,按照采样周期T对对象输出进行采样,得到的序列{h(iT)}与该序列滞后1拍的结果{h((t-1)T)}相减,即得到G(z)幂级数展开式的各项系数。
单位阶跃响应直接法由于施加给对象的信号是单位阶跃信号,所以不存在激励不足的问题。与模拟系统中其他单位阶跃响应辩识方法相同,若要减小辩识对系统的冲击,也可以用适当宽度的矩形脉冲作为对象输入信号,然后将对象输出信号通过计算转化为单位阶跃响应信号,再采用本文的办法进行辩识。
3 算 例
设对象的S传函为G(s)=1/(s+1),采样周期为T=1,则:
G(z)=Z[((1-e-TS)/s)*(1/(s+1))]=(1-e-1)z-1/(1-e-1z-1)=0632z-1/(1-0.3679z-1)= 0.632z-1+0.2326z-2+00855z-3+…
对对象G(s)施加单位阶跃输入后,对象输出为:
h(t)=y(t)=£-1(1/(s+1)*(1/s))=1-e-t
对h(t)按照采样周期T=1进行离散化,得:
{h(iT)}={0.632,0.865,0.950,0.982,…,}
h(iT)滞后1拍为
{h(i-1)T}={0,0.632,0.865,0.950,0.982,…,}
因此
{g~(iT)}={h(iT)}-{h(i-1)T)}
={0.632,0.8647,0.9502,0.9812,…,}-{0,0.632,0.8647,0.9502,0.9812,…,} ={0.632,0.2327,0.0855,0.031,…,}
可见,{g~(iT)}向量正是G(z)幂级数的系数向量。
i趋向于无穷大时g~(iT)趋向于零,表明该对象为一个自衡对象,由{g~(iT)}可以算出其公比为0368,按照等比级数求和的方法得到G(z)=0632z-1/(1-0368z-1),这正是对象的真分式Z传函。
4 结束语
本文介绍的方法简明实用,不但可以用于一般场合的计算机控制系统对象辩识,而且可用于自整定控制器的参数整定。该方法不像模拟化工程方法那样只能得到低阶近似模型,而能得到高阶模型,因而得到的模型在控制器直接设计,最优设计以及系统性能分析等方面都比用模拟化工程方法得到的模型更适合。若作适当修改,本方法还可用于模拟系统。与