Bb= 0.9849 0.0138 0.9849-0.15770.0730-0.0138 0.3871 0.0070 0.0005 0.000 0.6403-1.69381.8373-2.306 0.1591-1.0219-0.0109-0.2640 0.3446-1.53611.7643-2.2930 -0.3092-1.31701.5967-14304 由Gram阵可以看出,变换后的模型中,第3、第4状态变量对系统的作用较小, 因此可以利用 modred函数进行降阶处理,保留第1、第2状态变量。键入下述命令 sys=ss(Ab, Bb, Cb, Db) sys=modred(sys, 3: 4, 'mdc') 得到降阶模型为 l.27804 0.36341 0.36341 -14466 0.14235 yl0.983030.14235 0.00071 在 MATLAB中还给出最小实现函数 minreal,它的基本格式为 67
67 Bb= 0.9849 -0.1577 0.0730 0.0138 Cb= 0.9849 -0.1577 0.0730 -0.0138 G= 0.3871 0.0070 0.0005 0.0001 T= 0.6403 -1.6938 1.8373 -2.3068 -0.1591 -1.0219 -0.0109 -0.2640 -0.3446 -1.5361 1.7643 -2.2930 -0.3092 -1.3170 1.5967 -1.4304 由 Gram 阵可以看出,变换后的模型中,第 3、第 4 状态变量对系统的作用较小, 因此可以利用 modred 函数进行降阶处理,保留第 1、第 2 状态变量。键入下述命令 sys=ss(Ab,Bb,Cb,Db) sysr=modred(sys,3:4,'mdc') 得到降阶模型为 a= xl x2 xl -l.27804 0.36341 x2 0.36341 -1.44664 b= ul xl 0.98303 x2 -0.14235 c= xl x2 y1 0.98303 -0.14235 d= u1 y1 0.00071 在 MATLAB 中还给出最小实现函数 minreal,它的基本格式为
[Am, Bm, Cm, Dm=minreal(A, B, C, D) [umm, denm]=minreal (num, den) 该函数消去了不必要的状态,从而得到系统的最小实现。有关它的具体应用可参见 相关帮助文件,在此不再详述。 3.1.4控制系统模型的建立与典型连接 1.基本系统模型的建立 MATLAB为用户提供了一些基本系统或模型建立的函数,如二阶系统、随机n 阶系统的模型建立等。下面分别介绍 1)二阶系统的生成 在控制系统中,二阶系统占有相当的比例,即或是高阶系统往往也需要对其进 行简化降阶处理,然后再对其进行分析研究。因此,研究与讨论二阶系统具有重要 的意义。 MATLAB提供了二阶系统生成函数ord2,其基本格式为 [A, B, C, D]=ord2(Wn, z) 式中Wn为自然角频率,z为阻尼因子,返回变量A,B,C,D描述了连续二阶系 统。应用该函数就可以生成所期望的以状态方程形式描述的二阶系统,上述自然角 频率与阻尼因子的意义表示为 +25m Wn表示n,z表示5。 同时 MATLAB也提供了生成以传递函数形式描述的二阶系统的ord2函数,其 格式为 [num, den] =ord2(Wn, z) 返回变量为传递函数的分子、分母多项式系数向量。 例3-12分别生成以状态方程形式和传递函数形式描述的二阶系统,要求 5=0.8,an=2.2rad/s 解:直接应用ord2函数进行。 Wn=2.2
68 [Am, Bm, Cm, Dm]= minreal(A,B, C, D) [numm,denm]=minreal(num,den) 该函数消去了不必要的状态,从而得到系统的最小实现。有关它的具体应用可参见 相关帮助文件,在此不再详述。 3.1.4 控制系统模型的建立与典型连接 1.基本系统模型的建立 MATLAB 为用户提供了一些基本系统或模型建立的函数,如二阶系统、随机 n 阶系统的模型建立等。下面分别介绍。 1) 二阶系统的生成 在控制系统中,二阶系统占有相当的比例,即或是高阶系统往往也需要对其进 行简化降阶处理,然后再对其进行分析研究。因此,研究与讨论二阶系统具有重要 的意义。 MATLAB 提供了二阶系统生成函数 ord2,其基本格式为 [A,B,C,D]=ord2(Wn,z) 式中 Wn 为自然角频率,z 为阻尼因子,返回变量 A,B,C,D 描述了连续二阶系 统。应用该函数就可以生成所期望的以状态方程形式描述的二阶系统,上述自然角 频率与阻尼因子的意义表示为 ( ) 2 2 2 1 n n s s G s + + = Wn 表示 n ,z 表示 。 同时 MATLAB 也提供了生成以传递函数形式描述的二阶系统的 ord2 函数,其 格式为 [num,den]=ord2(Wn,z) 返回变量为传递函数的分子、分母多项式系数向量。 例 3-12 分别生成以状态方程形式和传递函数形式描述的二阶系统,要求 =0 .8, n =2.2 rad/s。 解:直接应用 ord2 函数进行。 Wn=2.2;
z=0.8 LA, B, C, D]=ord2(Wn, z) 得 4.8400 3.5200 0 求取传递函数形式如下 z=0.8: G=tf (num, den) 结果为 Transfer function s^2+3.52s+4.84 2)随机n阶系统的模型建立 MATLAB为用户提供了建立随机n阶系统模型的函数,其基本格式为 I num, den]=model (n) [A, B, C, D]=model (n) [A, B, C, D]=model (n, p, m) num, den]=drmodel (n, p) p, m) 其中[num,den]= model(n)可以随机生成n阶稳定传递函数模型。 [num,den]= model(n,p)可以随机生成单入p出的n阶稳定传递函数模
69 z=0.8; [A,B,C,D]=ord2(Wn,z) 得 A= 0 1.0000 -4.8400 -3.5200 B= 0 1 C= 1 0 D= 0 求取传递函数形式如下: Wn=2.2; z=0.8; [num,den]=ord2(Wn, z); G=tf(num,den) 结果为 Transfer function: 1 s ^ 2 + 3.52 s + 4.84 2) 随机 n 阶系统的模型建立 MATLAB 为用户提供了建立随机 n 阶系统模型的函数,其基本格式为 [ num, den]= rmodel(n) [num,den]= rmodel(n,p) [A,B,C,D]=rmodel(n) [A,B,C,D]=rmodel(n,p,m) [num,den]=drmodel(n) [num,den]=drmodel(n,p) [A,B,C,D]=drmodel(n) [A,B,C,D]=drmodel(n,p,m) 其中[num,den]=rmodel(n)可以随机生成 n 阶稳定传递函数模型。 [num,den]=rmodel(n,p)可以随机生成单入 p 出的 n 阶稳定传递函数模 型
A,B,C,D]= rodel(n)可以随机生成n阶稳定SISO状态方程模型。 A,B,C,D=modl(n,p,m)可以随机生成n阶稳定p出m入状态 空间模型。 drmodel(n)函数将生成相应的离散模型 如果欲生成一随机三阶二输入单输出状态空间表达式,则可应用[ D]=model (n, p, m). 运行 [A, B, C, D]=model (3, 1, 2) 得到 A -0.96884.09320.6941 4.0638 0010-0.4993 0.84930.098320227 0 0.71430.8580 1.623612540 1.5937 00.5711 3)系统模型的重构 (1),.子系统选取与删除 MA∏LAB提供了一个从大系统中选择子系统的函数 reselect,其基本格式为 LAe, Be, Ce, De]= ssselect(A, B, C: D, Inputs, outputs) 利用指定的输入、输出向量建立状态方程子系统。向量 Inputs指定系统输入,向量 outputs指定系统输出 [Ae, Be, Ce, Del=ssselect (A, B, C, D, inputs, outputs, states) 利用指定的输入、输出及状态向量构建子系统。 例3-13已知系统Σ(4,B,C,D)的系数阵为 1534 6413 71678 12254 2461 30224 3826 2352 23542 6472
70 [A,B,C,D]= rmodel(n)可以随机生成 n 阶稳定 SISO 状态方程模型。 [A,B,C,D]= rmodel(n, p, m)可以随机生成 n 阶稳定 p 出 m 入状态 空间模型。 drmodel(n)函数将生成相应的离散模型。 如果欲生成一随机三阶二输入单输出状态空间表达式,则可应用[A,B,C, D]=rmodel(n,p,m)。 运行 [A,B,C,D]=rmodel(3,l,2) 得到 A= - 0.9688 -4.0932 0.6941 4.0638 -1.0010 -0.4993 -0.8493 0.0983 -2.0227 B= 0 0 0.7143 0.8580 1.6236 1.2540 C= -1.5937 0 0.5711 D= 0 0.6900 3) 系统模型的重构 (1).子系统选取与删除 MATLAB 提供了一个从大系统中选择子系统的函数 ssselect,其基本格式为 [Ae,Be,Ce,De]= ssselect(A,B,C;D,Inputs,outputs) 利用指定的输入、输出向量建立状态方程子系统。向量 inputs 指定系统输入,向量 outputs 指定系统输出。 [Ae,Be,Ce,De]=ssselect(A,B,C,D,inputs,outputs,states) 利用指定的输入、输出及状态向量构建子系统。 例 3-13 已知系统Σ(A,B,C,D)的系数阵为 A= 42 25 7 9 3 0 22 4 7 16 7 8 1 5 3 4 ,B= 6 47 2 3 8 26 12 25 4 6 41 3 ,C= 2 3 5 2 1 5 9 3 ,D= 23 54 2 22 46 12
显然该系统为四阶三输入、二输出系统,现利用 reselect函数在原系统的基础上构造 新系统,保留1、3输入信号,1、2输出以及1、2、4状态变量 解:根据题意要求可以编写相应的程序为 ]: B=16413;12254:38 C=[1593:2352]: D=[224612;23542] inputs=[1 3J utputs=[1 2: states=[1 2 4 LAL, Bl, Cl, DI]=ssselect(A, B, C, D, inputs, outputs,states 运行上述语句得到新构建的系统模型为 7168 BI 63 124 62 232 DI reselect函数除了可应用于连续函数,也可应用于离散系统 MATLAB还提供了与 reselect函数进行相反操作的一类函数,它们是 LAr, Br, Cr, Dr] =ssdelete(A, B, C, D, inputs, outputs Ar, Br, Cr, Dr]=ssdelete(A, B, C, D, inputs, outputs, states) 利用该函数可从状态空间系统(A,B,C,D)中删除分别由 Inputs、 Outputs 和 states指定的输入、输出与状态 (2).状态的增广 在对系统进行分析研究时,往往需要对状态在系统(输出)中加以增广。如对 系统进行全状态反馈研究时,考虑到U=Kx,因此一般就需要在输出方程中增广状态。 所以状态增广有时具有十分重要的实际用途,在 MATLAB中特别为用户提供了一种
71 显然该系统为四阶三输入、二输出系统,现利用 ssselect 函数在原系统的基础上构造 新系统,保留 1、3 输入信号,1、2 输出以及 1、2、4 状态变量。 解:根据题意要求可以编写相应的程序为 A=[1 5 3 4; 7 16 7 8; 3 0 22 4; 42 25 7 9]; B=[6 41 3;12 25 4;3 8 26;6 47 2]; C=[1 5 9 3;2 3 5 2]; D=[22 46 12;23 54 2];; inputs=[1 3]; outputs=[1 2]; states=[1 2 4]; [A1,B1,C1,D1]=ssselect(A,B,C,D,inputs,outputs,states) 运行上述语句得到新构建的系统模型为 A1= 1 5 4 7 16 8 42 25 9 B1= 6 3 12 4 6 2 C1= 1 5 3 2 3 2 D1= 22 12 23 2 ssselect 函数除了可应用于连续函数,也可应用于离散系统。 MATLAB 还提供了与 ssse1ect 函数进行相反操作的一类函数,它们是 [Ar,Br,Cr,Dr]=ssdelete(A,B,C,D,inputs,outputs) [Ar,Br,Cr,Dr]=ssdelete(A,B,C,D,inputs,outputs,states) 利用该函数可从状态空间系统(A,B,C,D)中删除分别由 inputs、Outputs 和 states 指定的输入、输出与状态。 (2).状态的增广 在对系统进行分析研究时,往往需要对状态在系统(输出)中加以增广。如对 系统进行全状态反馈研究时,考虑到 U=Kx,因此一般就需要在输出方程中增广状态。 所以状态增广有时具有十分重要的实际用途,在 MATLAB 中特别为用户提供了一种