当前位置:文档之家› 现代控制理论实验指导书-第1章

现代控制理论实验指导书-第1章

返回
a =
x1 x2 x3
x1 -2 1 0
x2 0 -2 0
x3 0 0 -1
b =
u1
x1 0
x2 1
x3 1
c =
x1 x2 x3
y1 -1 -2 2
d =
u1
y1 2
(2)能控标准型
函数ctrlts( )可将传递函数转换为能控标准型。该函数的调用格式为:
其中num和den分别为传递函数的分子和分母多项式系数的行向量, 为转换得到的能控标准型。
实验步骤:
1、根据所给系统的已知条件,如传递函数、零极点模型或(A、B、C、D),实现状态空间模型、传递函数模型、零极点增益模型之间的转换,采用MATLAB的相关函数编写m-文件。
2、应用系统建模工具,并联、串联、闭环、反馈等函数解决实际问题。
3、在MATLAB界面下调试程序。
实验要求:
1.已知系统的传递函数
A(1:n-1,1)=zeros(n-1,1);
B=[zeros(n-1,1);1];
C(:,1:m+1)=rot90(num,2);
C(:,m+2:n)=zeros(1,n-m-1);
D=0;
end
Gc=ss(A,B,C,D);
例1.7将例1.6中的传递函数转换为能控标准型。
在命令窗中运行下列命令
当考虑输入 时,可设 为零,反之亦然。执行以下的m-文件:
A=[0 1;-25 –4];
B=[1 1;0 1];
C=[1 0;0 1];
D=[0 0;0 0];
[num1,den1]=ss2tf(A,B,C,D,1)
[num2,den2]=ss2tf(A,B,C,D,2)
得到:
num1=
0 1 4
0 0 -25
end
end %构造系统矩阵Aj
B1=0;
l=0;
for j=1:length(m)
l=l+m(j);
B1(l)=1;
end
Bj=B1'; %构造输入矩阵Bj
n=1;l=m(1);
Cj(:,1:m(1))=rot90(R(1:m(1),:),3);
for k=2:length(m)
n=l+1;l=l+m(k);
Cj(:,n:l)=rot90(R(n:l,:),3);
end %构造输出矩阵Cj
if K==[ ]
Dj=0;
else
Dj=K;
end %构造直联矩阵Dj
Gj=ss(Aj,Bj,Cj,Dj);
例1.5已知系统的传递函数为
将其转换为对角标准型。
在命令窗中运行下列命令
>> num=6;den=[1 6 11 6];Gj=jordants(num,den)
for i=1:length(P)
if P(i)==q
m(j)=m(j)+1;
else q=P(i);
j=j+1;
m(j)=1;
end
end %计算各极点的重数
Aj=diag(P);
for i=1:length(P)-1
if Aj(i,i)==Aj(i+1,i+1)
Aj(i,i+1)=1;
else Aj(i,i+1)=0;
得到
A=
-6 -5 -10
100
010
B=
1
0
0
C=
01010
D=
0
因此,所考虑传递函数的一个状态空间实现是
二、离散系统
(1)传递函数模型
(2)零极点增益模型
(3)状态空间模型
三、三种模型间的转换
表示状态空间模型和传递函数的MATLAB函数。
函数ss(state space的首字母)给出了状态空间模型,其一般形式是
[a,b,c,d]=parallel(a1,b1,c1,d1,inp1,inp2,out1,out2)
[a,b,c,d]=parallel(num1,den1,num2,den2)
例1.4两子系统为
将两者作并联连接
输入
num1=3;
den1=[1,4];
num2=[2,4];
den2=[1,2,3];
得到:
num= 0 -0.0000 25.0000 5.0000
den= 1.0000 5.0000 25.0000 5.0000
因此,所求系统的传递函数是
例1.2考虑由以下状态空间模型描述的系统:
求其传递函数矩阵。
解这是一个2输入2输出系统。描述该系统的传递函数是一个 维矩阵,它包括4个传递函数:
A(1:n-1,2:n)=eye(n-1);
A(1:n-1,1)=zeros(n-1,1);
B=[zeros(n-1,1);1];
C=rot90(num1(:,2:n+1),2);
D=K;
else A(n,:)=-1*rot90(den(:,2:n+1),2);
A(1:n-1,2:n)=eye(n-1);
[A,B,C,D]=tf2ss(num,den)
函数ss2tf给出了状态空间模型所描述系统的传递函数,其一般形式是
[num,den]=ss2tf(A,B,C,D,iu)
其中对多输入系统,必须确定iu的值。例如,若系统有三个输入和,则iu必须是1、2或3,其中1表示 ,2表示 ,3表示 。该函数的结果是第iu个输入到所有输出的传递函数。
[A,B,C,D]=zp2ss(z, p, k)
函数zp2tf将状态空间模型转换为零极点模型,其一般形式是
[z, p, k]=ss2zp(A,B,C,D,iu)
四、系统建模与模型联结
(1)并联
将两个系统按并联方式连接,用parallel函数实现
格式:
[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2)
den1=
1 4 25
num2=
0 1.0000 5.0000
0 1.0000 -25.0000
den2=
1 4 25
因此,所求的4个传递函数是
例1.3试给出以下传递函数的状态空间实现
解执行以下的m-文件:
num=[0 0 10 10];
den=[1 6 5 10];
[A,B,C,D]=tf2ss(num,den)
该函数的程序如下:
function Gc=ctrlts(num,den) %将传递函数转换为能控标准型
m=length(num)-1;n=length(den)-1;
if m==n
[R,P,K]=residue(num,den);
num1=num-K*den;
A(n,:)=-1*rot90(den(:,2:n+1),2);
(2)传递函数模型与零极点模型间的转换:
函数tf2zp将传递函数模型转换为零极点模型,其一般形式是
[z, p, k]=tf2zp(num,den)
函数zp2tf将零极点模型转换为传递函数模型,其一般形式是
[num,den]=zp2tf(z, p, k)
(3)零极点模型与状态空间模型间的转换:
函数tf2zp将零极点模型转换为状态空间模型,其一般形式是
(5)利用函数sppend构造增广系统;
(6)函数blkbuild和connect得到多个子系统任意联结构成的系统。
五、模型转换
传递函数可以转换为约旦标准型(包括对角标准型)、能控标准型和能观测标准型。
(1)约旦标准型
函数jordants( )可用部分分式展开将传递函数转换为对角标准型或约当标准型。该函数的调用格式为:
>> Ao=(Gc.a)';Bo=(Gc.c)';Co=(Gc.b)';Do=Gc.d;Go=ss(Ao,Bo,Co,Do)
返回
a =
x1 x2 x3
x1 0 0 -4
x2 1 0 -8
x3 0 1 -5
b =
u1
x1 3
x2 1
x3 0
c =
x1 x2 x3
y1 0 0 1
d =
u1
y1 2
Continuous-time model.
3.已知两个子系统
(1)建立两个子系统的传递函数模型。求它们串联、并联、反馈连接时,整个系统的传递函数模型。然后将所得传递函数模型转换为状态空间模型。
(2)将两个子系统的传递函数模型转换为状态空间模型。求它们串联、并联、反馈连接时,整个系统的状态空间模型。然后将所得状态空间模型转换为传递函数模型。比较(1)和(2)所得的相应的结果。
>> num=[2 10 17 11];den=[1 5 8 4];Gc=ctrlts(num,den)
返回
a =
x1 x2 x3
x1 0 1 0
x2 0 0 1
x3 -4 -8-5
b =
u1
x1 0
x2 0
x3 1
c =
x1 x2 x3
y1 3 1 0
d =
u1
y1 2
进一步,求能控标准型的对偶系统可得能观测标准型。在命令窗中运行下列命令
(2)用函数canon( )将给定状态空间表达式转换为对角标准型。用函数eig( )求出系统特征值。比较这些特征值和(1)中的特征值是否一致,为什么?再用函数tf( )和zpk( )将对角标准型或约当标准型转换为传递函数。比较这些传递函数和(1)中的传递函数是否一致,为什么?
(3)用函数ctrlss( )将给定的状态空间表达式转换为能控标准型和能观测标准型。用函数eig( )求系统的特征值。比较这些特征值和(1)中的特征值是否一致,为什么?再用函数tf( )将它们转换为传递函数。比较这些传递函数和(1)中的传递函数是否一致,为什么?
相关主题