第五章最小实现与互质分式传递函数矩阵ˆ()gs可实现的含义实现形式的不唯一性最小实现的定义:传递函数的一个具有可能的最小维数的实现。最小实现应满足的条件ˆ()()/()gsNsDs的互质性考虑32123443331234()ˆ()()sssNsgsDsssss其状态方程实现可写为123412341100000100000100xxcxxuy其中,(3)1234()()()()()::()()()()xxtvtxtvttxtvtxtvt,1ˆ()()()LvtDsus以下考察上述状态方程的能控能观性,可容易得到其能控性矩阵为:2311211232112112010010001C该能控性矩阵是满秩矩阵,因此,状态方程总是能控的。接下来进一步考察其能观性:能观性与多项式和的互质性有关。互质性概念:若两个多项式没有阶次大于等于1的公因子,则称这两个多项式是互质的。若有()()()DsDsRs和()()()NsNsRs,其中,()Ds和()Ns为多项式,则称()Rs为()Ds和()Ns的公共因子或者共同除数(gcd)。若()Rs是一个非零常数(即阶次为0的多项式),那么()Ds和()Ns是互质的,若()Rs是一个阶次大于等于1的多项式,那么()Ds和()Ns就不是互质的。定理上述能控标准型是能观的当且仅当()Ds和()Ns是互质的。证明:首先证明必要性。假设()Ds和()Ns不是互质的,那么就存在一个1使得3211121314()0N432111121314()0D定义向量32111:1vT,则由上述两式可得1()0N,431234113211121111000010000101Avv进一步可得211()2AvAAvAvv和331Avv于是利用0cv可以算得1213102233cvccvcvcAcAvvvcvcAcAvcvcAcAvO由以上式子可知能观性矩阵O不是列满秩的,这与状态方程是能观的这一假设相矛盾。因此,若状态方程是能观的,那么()Ds和()Ns是互质的。下一步来证明充分性,即如果()Ds和()Ns是互质的,那么状态方程是能观的。用反证法。假设状态方程是不能观的,那么存在系统矩阵A的一个特征值和一个非零向量v使得10A-Ivc或者1Av=v和0cv由此可知,v是A的对应于特征值1的一个特征向量,将其代入0cv可得3211121314()0N这意味着()Ds和()Ns具有公因子1s,与()Ds和()Ns是互质的假设矛盾对ˆ()gs求转置可得11ˆˆ()()()()cI-AbbI-AcTTTTTgsgsss因此,得到相应的状态方程如下:112233441000100010001000x=Ax+cxbxxTTTuuy该状态方程总是能观的,称为能观标准型。设0001001001001000P,则根据等价变换x=Px,123412341100000100000100xxcxxuy432143210100000100000101xxxuy类似,112233441000100010001000xxxuy443322110001000100010001x=xxuy设()Rs是()Ns和()Ds的一个最大公因子,也就是说,若能将()Ns和()Ds分别写成()()()NsNsRs和()()()DsDsRs,那么()Ns和()Ds就是互质的。任何一个有理函数ˆ()gs都可以简化成ˆ()()/()gsNsDs(互质分式)。()Ds为ˆ()gs的一个特征多项式有理函数ˆ()gs的阶次定义为特征多项式()Ds的阶次。例:23211ˆ()4(1)4(1)ssgssss定理状态方程(,)A,b,cd是真有理函数ˆ()gs的一个最小实现当且仅当()A,b能控()A,c能观或者ˆdimdeg()Ags。证明:首先考虑必要性。若()A,b不能控或者()A,c不能观,那么(,)A,b,cd将可以进一步简化为具有更小维数的状态方程,从而(,)A,b,cd就不是一个最小实现。以下考虑充分性。考虑如下的n维能控能观的状态方程x=Ax+bcxuydu其nn能控性矩阵和能观性矩阵分别为n-1bAbAbC和n-1ccAcAO通过反证法证明状态方程是一个最小实现。假设以下n维(nn)状态方程也是ˆ()gs的一个实现。x=Ax+bcxuydu那么可知:dd并且cAb=cAbmm,0,1,2,m考虑以下的乘积n-1n-1ccAbAbAbcAOC21232341112(1)nnnnnnncbcAbcAbcAbcAbcAbcAbcAbcAbcAbcAbcAbcAbcAbcAbcAb因此可以得到nnOCOC,其中,n-1ccAcAnO,n-1bAbAbnC由于()On和()Cn,因此,有()()nnOCOCn。注意到nO和nC分别是nn维和nn维的,因此矩阵nnOC秩的最大值是n(min(),()()nnnnOCOC,相矛盾。因此(,)A,b,cd是ˆ()gs的一个最小实现。另一方面,状态方程实现是能控能观的当且仅当ˆ()()/()gsNsDs是互质分式,在这种情况下有ˆdimdeg()Ags,同时,由于最小实现都是等价的(后面将会给出这一结论),因此,对于任意一个实现如果它是最小的当且仅当ˆdimdeg()Ags。定理所有的最小实现都是等价的。证明:设(,)A,b,cd和(,)A,b,cd是ˆ()gs的任意两个最小实现,那么有dd,OCOC将矩阵OAC乘开并利用关系(7.20)可知AAOCOC由于能控能观性矩阵都是非奇异的方阵,因此可定义1:POO从而有,11:POOCC和111:POOCC由式(7.23)可得1Pb=PbCOOCC11-1c=cPOOCCOP11-1AAAAPAPOCOCOOCC判断状态方程能控能观性的方法:ˆdimdeg()Ags获得能控能观型状态方程实现的方法:首先确定该函数的公因子,然后据此将其化简为互质分式,基于该互质分式得到状态方程。如果ˆ()()/()gsNsDs是互质的,则ˆ()gs的极点是()Ds的根。若()Ns和()Ds是互质的,那么ˆdeg()deg()dimADsgs。因此对一非零常数k有()det()I-ADsks若(,)A,b,cd是能控能观的,那么渐近稳定性BIBO稳定性互质分式的计算方法:利用MATLAB的roots命令计算多项式()Ns和()Ds的根利用MATLAB中的minreal命令直接求ˆ()gs的互质分式通过求解一组代数方程来计算互质分式的方法(可直接推广到传递函数矩阵)假设deg()deg()4NsDsn。将()/()NsDs写成互质分式的形式:()()()()NsNsDsDs由上式可得()(())()()0DsNsNsDs若存在多项式()Ns和()Ds使得()deg()4NsDsn并且满足上式,那么()Ns和()Ds就不是互质的。求法:将求最小互质分式的问题转化为求多项式方程的问题。首先写出以下式子:23401234()DsDDsDsDsDs23401234()NsNNsNsNsNs230123()DsDDsDsDs,230123()NsNNsNsNs然后将其代入()(())()()0DsNsNsDs,可得:000110002211001332211001443322112443322244333443000000000000:000000000000SDNNDNDNDDNDNDNNDNDNDNDNDSmDNDNDNDNNDNDNDNDDNDNNDND0其中,88矩阵S是一个赛尔维斯特(Sylvester)矩阵。()Ns和()Ds是互质的当且仅当Sylvester矩阵S是非奇异的符号表示和概念:用1DT,3DT,5DT,7DT分别表示S中的第1,3,5,7列,用2NT,4NT,6NT,8NT分别表示S中的第2,4,6,8列。若是从iD所在的列开始的,就将得到的线性无关列向量组称为D列,若是从iN所在的列开始的,就将得到的线性无关列向量组称为N列。用表示所有Sylvester矩阵S中线性无关的N列的个数,那么第1个N列将是首次出现与其左边列向量线性相关的N列,我们将其称为初始相关N列,Sylvester矩阵S的子矩阵1S:由初始相关N列和其左边的线性无关列向量构成的矩阵1S的零度(列向量的个数-1S的秩)和零因子n(即使得10Sn的左零向量n)。如果Sylvester矩阵S是奇异的,如何利用它得到互质分式?例:32432()6320()27151610NssssDsssss[10161572]d;[203160]n;000;000;000;000;000;000;000;000sdndndndnS中只有2个线性无关N列,即2。用1S表示由S的前6个列向量构成的矩阵,它是86,其秩是5并具有零度1。由于矩阵1S的最后一行都为零,因此将这个零行忽略'1[00;00;00;00;00;00]sdndndn和(1)znulls得到零因子z如下:'[423201]anszb这个首一的零因子即等于'001122NDNDND。定理考虑ˆ()()/()gsNsDs。利用()Ns和()Ds的系数构成对应的Sylvester矩阵S,并依次从左至右在S中选取线性无关列向量组。于是有ˆdeg()gs线性无关N列的个数:互质分式ˆ()()/()gsNsDs的系数,即'0011NDNDND就等于Sylvester矩阵S的子矩阵的首一零因子。QR分解:提供了一种有效的选取Sylvester矩阵中的线性无关列向量组的方法。考虑一个nn的矩阵M。那么存在一个nn的直交矩阵Q(1:TQQQ)使得QMR其中R是一个与M具有相同维数的上三角矩阵。Q不改变M中列向量的线性无关性R的第m列与其左边的所有列线性无关当且仅当第m列所在的对角线上的那个元素是非零的。在MATLAB中通过命令[,]()qrqrm获得矩阵m的QR分解。举例:上例[10161572]d;[203160]n;000;000;000;000;000;000;000;000sdndndndn[,]()qrqrs给出