已经说明过,系统状态变量不是唯一的。根据分析与设计系统的不同需要,可选择不同状态变量。在一定条件下,可把系统状态空间模型规范为几种标准形式,叫做状态空间模型的标准型。这些标准型能把系统的某些特性描述得更清晰、准确,并且具有更简洁的形式,会给系统分析与设计带来很多方便。
例如对角线标准型可以去除状态变量之间的联系,有文献将此称为状态解耦,这会给系统的分析与计算带来极大的方便。
请注意这种系统矩阵A为任意形式,但其特征值一定互异,使用MATLAB系统函数命令[V,D]=eig(A),计算矩阵A的V、D,其特征向量矩阵V就可将A化为对角标准型。请看示例。
【例14-13】 试将状态空间表达式对应的系统化为对角标准型。
解:运行以下程序求解。
clear;syms s;A=[01-1;-6-116;-6-115];
[V,D]=eig(A);P=V,D,A1=inv(P)∗A∗P,
程序运行后得到系统变换矩阵、系统的对角标准型为,还可以运行调用自编函数lintra01.m的程序验证系统变换前后特征值的不变性。请注意,程序中的D不是系统输出矩阵,而是A的特征值对角矩阵。
clear;syms s t;A=[01-1;-6-116;-6-115];B=[0;0;0];C=[000];
P=[0.7071-0.2182-0.0921;0.0000-0.4364-0.5523;0.7071-0.8729-0.8285];
[A1,B1,C1]=lintra01(A,B,C,P);
需要提请读者,因各种误差的累积,系统特征值|sE-A|与计算结果中出现了小数。只要将小数中无效的“0”除去,即可得到正确结果。请看本例用以下程序处理。
clear;syms s;A1=[-10.00030.0001;0-20;0-0.0011-3];
n=length(A1);E=eye(n);sEA1=factor(det(s∗E-A1)),
程序运行结果证实|sE-A|==(s+1)(s+2)(s+3)。以下例中出现类似情况,不再赘述,读者可自行验证。
【例14-14】 试将以下状态空间表达式的系统变换为对角标准型。
解:运行以下程序求解。
clear;syms s;A=[010;302;-12-7-6];
[V,D]=eig(A);P=V,D,A1=inv(P)∗A∗P,
程序运行后得到系统变换矩阵、系统的对角标准型为,还可以运行调用自编函数lintra01.m的程序验证系统变换前后特征值的不变性。再次提醒,程序中的D不是系统输出矩阵,而是A的特征值对角矩阵。
clear;syms s t;A=[010;302;-12-7-6];B=[0;0;0];C=[000];
P=[-0.5774-0.43640.2294;0.57740.8729-0.6882;0.5774-0.21820.6882];
[A1,B1,C1]=lintra01(A,B,C,P);
2.利用范德蒙德矩阵将特征值互异、矩阵A为友矩阵或正则形矩阵化为对角线标准型
如果状态矩阵A具有如下的标准形式(有文献将这种形式称为友矩阵或正则形矩阵)
并且A又具有互异的特征值λ1、λ2、…、λn,则以下范德蒙德矩阵P可使A对角化。
为方便计算,作者编制了利用范德蒙德矩阵将状态方程化为对角线标准型的函数vander.m。请看示例。
【例14-15】 已知系统状态空间表达式为1),C=[000];
2)、y=[00]x,试将系统变换为对角标准型。
解:1)给出以下调用自编函数vander.m的程序求解。
①用自编函数cha01.m验证系统1特征值互异。
clear;syms s;A=[010;001;-6-11-6];
[sea,detsea,V,D]=cha01(A);V1AV=inv(V)∗A∗V,
程序运行后得到
d=-1.0000
-2.0000(www.xing528.com)
-3.0000
程序运行后得到特征值d=[-1;-2;-3]是互异的。
②调用自编函数vander.m的程序将系统变换为对角标准型。
clear;syms s;
A=[010;001;-6-11-6];B=[1;1;0];C=[000];
[Vand,A1,B1,C1]=vander(A,B,C);
程序运行后得到系统的对角标准型动态方程
③为验证上述变换是否正确先要用自编函数lintra01.m求P1。
clear;syms s t;
A=[010;001;-6-11-6];B=[1;1;0];C=[000];
P=[111;-1-2-3;149];[A1,B1,C1]=lintra01(A,B,C,P);
程序运行后得到系统的
④再用自编函数lintra02.m验证上述变换是否正确。
clear;syms s t;A1=[-100;0-20;00-3];
B1=[5.5;-7;2.5];C1=[000];
P1=[32.50.5;-3-4-1;11.50.5];
[A,B,C]=lintra02(A1,B1,C1,P1);
程序运行后得到系统状态空间表达式,C=[000]。
2)也给出以下调用自编函数vander.m的程序求解。
①用自编函数cha01.m验证系统2特征值互异。
clear;syms s;A=[01;-5-6];
[sea,detsea,V,D]=cha01(A);V1AV=inv(V)∗A∗V,
程序运行后得到特征值d=[-1;-5]是互异的。
②调用自编函数vander.m的程序将系统变换为对角标准型。
clear;syms s;
A=[01;-5-6];B=[0;1];C=[00];
[Vand,A1,B1,C1]=vander(A,B,C);
程序运行后得到系统的对角标准型动态方程
③为验证上述变换是否正确先要用自编函数lintra01.m求P1。
clear;syms s t;A=[01;-5-6];B=[0;1];C=[00];
P=[11;-1-5];[A1,B1,C1]=lintra01(A,B,C,P);
程序运行后得到系统的。
④再用自编函数lintra02.m验证上述变换是否正确。
clear;syms s t;P1=[1.250.25;-0.25-0.25];A1=[-10;0-5];
B1=[0.25;-0.25];C1=[00];[A,B,C]=lintra02(A1,B1,C1,P1);
程序运行后得到系统状态空间表达式、y=[00]x。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。