资源描述
现控实验指导书
8
2020年4月19日
文档仅供参考
《现代控制理论》实验指导书
王璐
自动化07-1班
山东科技大学机电系
实验一 系统的传递函数阵和状态空间表示式的转换
一、实验目的
1. 学习多变量系统状态空间表示式的建立方法、了解状态空间表示式与传递函数相互转换的方法;
2. 经过编程、上机调试,掌握多变量系统状态空间表示式与传递函数相互转换方法。
二、实验要求
学习和了解系统状态方程的建立与传递函数相互转换的方法;
三、实验设备
1. 计算机1台
2. MATLAB6.X软件1套。
四、实验原理说明
设系统的模型如式(1-1)示。
(1-1)
其中A为n×n维系数矩阵、B为n×r维输入矩阵 C为m×n维输出矩阵,D为传递阵,一般情况下为0。系统的传递函数阵和状态空间表示式之间的关系如式(1-2)示。
(1-2)
式(1.2)中,表示传递函数阵的分子阵,其维数是m×r;表示传递函数阵的按s降幂排列的分母。
五、 实验步骤
1. 据所给系统的传递函数或(A、B、C阵),依据系统的传递函数阵和状态空间表示式之间的关系如式(1-2),采用MATLA的file.m编程。注意:ss2tf和tf2ss是互为逆转换的指令;
2. 在MATLA界面下调试程序,并检查是否运行正确。
3. 已知MIMO系统的系统的传递函数,求系统的空间状态表示式。
系统的传递函数为:
(1-4)
4. 从系统的传递函数(1.4)式求状态空间表示式。
程序:
num =[0 0 1 2;0 1 5 3]; %在给num赋值时,在系数前补0,必须使num和den赋值的个数相同;
den =[1 2 3 4];
[A,B,C,D]=tf2ss(num,den)
程序运行结果:
A =
-2 -3 -4
1 0 0
0 1 0
B =
1
0
0
C =
0 1 2
1 5 3
D =
0
0
在已知系统的状态空间表示式能够求得系统的传递函数,现在已知系统的状态空间表示式来求系统的传递函数,对上述结果进行相应的验证。程序如下:
程序:
%首先给A、B、C、D阵赋值;
A=[-2 -3 -4;1 0 0;0 1 0];
B=[1;0;0];
C=[0 1 2;1 5 3];
D=[0;0];
%状态空间表示式转换成传递函数阵的格式为[num,den]=ss2tf(a,b,c,d,u)
[num,den]=ss2tf(A,B,C,D,1)
程序运行结果:
num =
0 -0.0000 1.0000 2.0000
0 1.0000 5.0000 3.0000
den =
1.0000 2.0000 3.0000 4.0000
从程序运行结果得到:系统的传递函数为:
实验2 多变量系统的能控、能观分析
一、实验目的
1. 学习多变量系统状态能控性分析的定义及判别方法;
2. 学习多变量系统状态能观性分析的定义及判别方法;
3. 经过用MATLAB编程、上机调试,掌握多变量系统能控性判别方法。
二、实验要求
1. 掌握系统的能控性分析方法。
2. 掌握能观性分析方法。
三、实验设备
1. 计算机1台
2. MATLAB6.X软件1套。
四、实验原理说明
1. 设系统的状态空间表示式
(2-1)
系统的能控分析是多变量系统设计的基础,包括能控性的定义和能控性的判别。
系统状态能控性的定义的核心是:对于线性连续定常系统(2-1),若存在一个分段连续的输入函数U(t),在有限的时间(t1-t0)内,能把任意给定的初态x(t0)转移至预期的终端x(t1),则称此状态是能控的。若系统所有的状态都是能控的,则称该系统是状态完全能控的。
2. 能控性判别
状态能控性分为一般判别和直接判别法,直接判别法是针对系统的系数阵A是对角标准形或约当标准形的系统,判别时不用计算,应用公式直接判断,是一种直接简易法;前者状态能控性分为一般判别是应用最广泛的一种判别法。
输出能控性判别式为:
(2-2)
状态能控性判别式为:
(2-3)
系统的能观分析是多变量系统设计的基础,包括能观性的定义和能观性的判别。
系统状态能观性的定义:对于线性连续定常系统(2-1),如果对t0时刻存在ta,t0<ta<,根据[t0,ta]上的y(t)的测量值,能够唯一地确定S系统在t0时刻的任意初始状态x0,则称系统S在t0时刻是状态完全能观测的,或简称系统在[t0,ta]区间上能观测。
状态能观性分为一般判别和直接判别法,后者是针对系统的系数阵A是对角标准形或约当标准形的系统,状态能观性判别时不用计算,应用公式直接判断,是一种直接简易法;前者状态能观性分为一般判别是应用最广泛的一种判别法。
状态能控性判别式为:
(2-4)
3. 只要系统的A的特征根实部为负,系统就是状态稳定的。式(1-2)又可写成:
(2.5)
当状态方程是系统的最小实现时,,系统的状态渐近稳定与系统的BIBO(有界输入有界输出)稳定等价;
当时,若系统状态渐近稳定则系统一定是的BIBO稳定的。
五、实验步骤
1. 先调试[例2.1]、[例2.2]系统能控性、能观性程序,然后根据所给系统的系数阵A和输入阵B,依据2.3能控性、能观性判别式,对所给系统采用MATLA的file.m编程;在MATLA界面下调试程序,并检查是否运行正确。
2. 调试[例2.3]系统稳定性分析程序,验证稳定性判据的正确性。
3. 按实验要求,判断所给的具有两个输入的四阶系统的能控性。
已知系数阵A和输入阵B分别如下,判断系统的状态能控性
程序:
A =
[3 0 2 0
0 1 1 0
1 1 2 1
0 1 0 1]
B =
[ 0 1
0 0
0 1
1 0]
q1=B;
q2=A*B; %将AB的结果放在q2中
q3=A^2*B; %将A2B的结果放在q3中,
q4=A^3*B; %将A3B的结果放在q4中,
Qc=[q1 q2 q3 q4] %将能控矩阵Qc显示在MATLAB的窗口
Q=rank(Qc) %能控矩阵Qc的秩放在Q
程序运行结果:
Qc =
0 1 0 5 2 21 12 87
0 0 0 1 1 4 4 16
0 1 1 3 3 12 10 50
1 0 1 0 1 1 2 5
Q =
4
从程序运行结果可知,能控矩阵Qc的秩为4=n,因此系统是状态能控性的。
已知系数阵A和输入阵C分别如下,判断系统的状态能观性。
,
程序:
A =
[3 0 2 0
0 1 1 0
1 1 2 1
0 1 0 1]
C=[1 0 1 0];
q1=C;
q2=C*A; %将CA的结果放在q2中
q3=C*A^2; %将CA2的结果放在q3中,
q4=C*A^3; %将CA3的结果放在q4中,
Qo=[q1; q2; q3;q4] %将能观矩阵Qo显示在MATLAB的窗口
Q=rank(Qo) %能观矩阵Qo的秩放在Q
程序运行结果:
Qo =
1 0 1 0
4 1 4 1
16 6 17 5
65 28 72 22
Q =
4
从程序运行结果可知,能控矩阵Qo的秩为4=n,由式(2-4)可知,系统是状态完全能观性的。
实验3应用MATLAB计算线性定常系统的矩阵指数
(状态转移矩阵)
实验原理说明
应用MATLAB 符号数学工具箱求矩阵指数闭合解析式
基于矩阵指数的拉普拉斯变换求解法,可调用MATLAB 符号数学工具箱(Symbolic Math Toolbox)中的符号运算函数先算出“预解矩阵” ,再对“预解矩阵”进行拉普拉斯反变换即求得
另外,MATLAB 符号数学工具箱中有专用于计算矩阵指数的指令expm()可调用。
实验内容及结果
已知 A=[4 1 -2;1 0 2;1 -1 3],应用MATLAB求
实验程序
解 MATLAB Program 2_1a给出了基于拉普拉斯变换求 的MATLAB 程序。
%MATLAB Program 2_1a
syms s t %定义基本符号变量s 和t
A=[4 1 -2;1 0 2;1 -1 3];
FS=inv(s*eye(3)-A); %求预解矩阵
eAt=ilaplace(FS,s,t); %求
eAt=simplify(eAt) %化简 的表示式
程序MATLAB Program 2_1a运行结果如下
eAt =
[ (1+t)*exp(3*t), t*exp(3*t), -2*t*exp(3*t)]
[t*exp(3*t), -exp(3*t)+t*exp(3*t)+2*exp(t), -2*t*exp(3*t)-2*exp(t)+2*exp(3*t)]
[t*exp(3*t), t*exp(3*t)+exp(t)-exp(3*t), -exp(t)-2*t*exp(3*t)+2*exp(3*t)]
实验程序
应用数值矩阵的指数运算函数expm()求 对应于 t=t1( 为某一常数)的值
MATLAB Program 2_2给出了调用expm()求题中矩阵A的矩阵指数t=t1=0.1对应于 的值的MATLAB 程序。
程序
%MATLAB Program 2_2
A=[4 1 -2;1 0 2;1 -1 3];
T=0.1;
eAT=expm(A*T)
程序MATLAB Program 2_2运行结果如下:
eAT =
1.4848 0.1350 -0.2700
0.1350 0.9955 0.2194
0.1350 -0.1097 1.3246
数值矩阵运算函数expm()也能够只进行符号计算,
程序如下:
%MATLAB Program 2_2 b
syms t; %定义符号变量t
A=[4 1 -2;1 0 2;1 -1 3];
eAT=expm(A*t)
程序MATLAB Program 2_2b运行结果如下:
eAT =
[exp(3*t)+t*exp(3*t), t*exp(3*t), -2*t*exp(3*t)]
[t*exp(3*t), -exp(3*t)+t*exp(3*t)+2*exp(t), -2*t*exp(3*t)-2*exp(t)+2*exp(3*t)]
[t*exp(3*t), t*exp(3*t)+exp(t)-exp(3*t), -exp(t)-2*t*exp(3*t)+2*exp(3*t)]
和程序MATLAB Program 2_1a运行结果相同
实验4应用MATLAB 求定常系统时间响应
实验内容及结果
设双输入双输出系统状态空间矩阵为
A=[-3 1 0;0 -3 0;0 0 -1],B=[1 -1;0 0;2 0],C=[1 0 1;-1 1 0],D=0;
且设u1(t)=1(t),u2(t)=1(t), 系统初始状态为零。
1)分别求u1(t) 、u2(t)单独作用下系统的输出响应;
2)求u1(t) 、u2(t)共同作用下系统的输出响应。
解 1)我们调用step()函数求u1(t) 、u2(t)单独作用下系统输出响应曲线的程序
A=[-3 1 0;0 -3 0;0 0 -1];B=[1 -1;0 0;2 0];C=[1 0 1;-1 1 0];D=0;
step(A,B,C,D)
grid
图像
u1(t) 、u2(t)单独作用下系统输出响应
2)求u1(t) 、u2(t)共同作用下系统输出响应的MATLAB程序
A=[-3 1 0;0 -3 0;0 0 -1],B=[1 -1;0 0;2 0],C=[1 0 1;-1 1 0],D=0;
t=0:0.01:4; %生成时间向量t
LT=length(t); %求时间向量t的维数(长度)
u1=ones(1,LT);
u2=ones(1,LT); %生成单位阶跃信号对应于 向量t的离散序列, u1和u2均为与向量t同维的向量
u=[u1;u2]'; % u1和u2的转置分别构成u的第1和第2列
lsim(A,B,C,D,u,t)
grid
图像
u1(t) 、u2(t)共同作用下系统输出响应
展开阅读全文