现代控制工程MATLAB实验指导书V01.docx
《现代控制工程MATLAB实验指导书V01.docx》由会员分享,可在线阅读,更多相关《现代控制工程MATLAB实验指导书V01.docx(24页珍藏版)》请在冰豆网上搜索。
现代控制工程MATLAB实验指导书V01
昆明理工大学机电学院机械工程专业研究生实验
《现代控制工程》
MATLAB实验指导书
昆明理工大学机电工程学院
《现代控制工程》MATLAB实验指导书
一、MATLAB简介
1MATLAB概述
MATLAB是MATrixLABoratory的缩写,早期主要用于现代控制中复杂的矩阵、向量的各种运算。
由于MATLAB提供了强大的矩阵处理和绘图功能,很多专家因此在自己擅长的领域用它编写了许多专门的MATLAB工具包(toolbox),如控制系统工具包(controlsystemstoolbox);系统辨识工具包(systemidentificationtoolbox);信号处理工具包(signalprocessingtoolbox);鲁棒控制工具包(robustcontroltoolbox);最优化工具包(optimizationtoolbox)等等。
由于MATLAB功能的不断扩展,所以现在的MATLAB已不仅仅局限与现代控制系统分析和综合应用,它已是一种包罗众多学科的功能强大的“技术计算语言(TheLanguageofTechnicalComputing)”。
MathWorks公司于1992年推出了具有划时代意义的MATLAB4.0版本,并推出了交互式模型输入与仿真系统SIMULINK,它使得控制系统的仿真与CAD应用更加方便、快捷,用户可以方便地在计算机上建模和仿真实验。
1997年MathWorks推出的MATLAB5.0版允许了更多的数据结构,1999年初推出的MATLAB5.3版在很多方面又进一步改进了MATLAB语言的功能。
2000年底推出的MATLAB6.0。
最新版本是MATLAB7.0。
MATLAB以矩阵作为基本编程单元,它提供了各种矩阵的运算与操作,并有较强的绘图功能。
MATLAB集科学计算、图像处理、声音处理于一身,是一个高度的集成系统,有良好的用户界面,并有良好的帮助功能。
MATLAB不仅流行于控制界,在机械工程、生物工程、语音处理、图像处理、信号分析、计算机技术等各行各业中都有极广泛的应用。
2如何获得MATLAB帮助
在MATLAB主窗口中键入help,即可获得第一层帮助:
help%加重型内容为用户键入的内容,其它为执行后显示的内容。
HELPtopics:
matlab\general------------Generalpurposecommands.
matlab\ops------------------Operatorsandspecialcharacters.
matlab\lang-----------------Programminglanguageconstructs.
matlab\elmat---------------Elementarymatricesandmatrixmanipulation.
matlab\elfun----------------Elementarymathfunctions.
matlab\specfun-----------Specializedmathfunctions.
matlab\matfun-------------Matrixfunctions-numericallinearalgebra.
simulink\simulink-------Simulink
simulink\blocks----------Simulinkblocklibrary.
simulink\simdemos---Simulink3demonstrationsandsamples.
simulink\dee--------------DifferentialEquationEditor
MATLABR11\work------(Notableofcontentsfile)
toolbox\local--------------Preferences.
如果用户对MATLAB的语言结构lang感兴趣,想进一步了解,则键入:
helplang
Programminglanguageconstructs.
Controlflow.
if-----------Conditionallyexecutestatements.
else------IFstatementcondition.
elseif----IFstatementcondition.
end------TerminatescopeofFOR,WHILE,SWITCH,TRYandIFstatements.
for--------Repeatstatementsaspecificnumberoftimes.
while---Repeatstatementsanindefinitenumberoftimes.
如果想进一步了解for语句,则键入:
helpfor
FORRepeatstatementsaspecificnumberoftimes.
ThegeneralformofaFORstatementis:
FORvariable=expr,statement,...,statementEND
Thecolumnsoftheexpressionarestoredoneatatimeinthevariableandthenthefollowingstatements,uptotheEND,areexecuted.……Someexamples(assumeNhasalreadybeenassignedavalue).
FORI=1:
N,
FORJ=1:
N,
A(I,J)=1/(I+J-1);
END
END
同样,如果想了解MATLAB中有关矩阵的操作运算函数,可以键入:
helpmatfun
Matrixfunctions-numericallinearalgebra.
Matrixanalysis.
norm---------Matrixorvectornorm.
normest----Estimatethematrix2-norm.
rank----------Matrixrank.
det------------Determinant.
trace---------Sumofdiagonalelements.
null------------Nullspace.
orth-----------Orthogonalization.
rref------------Reducedrowechelonform.
subspace--Anglebetweentwosubspaces.
Eigenvaluesandsingularvalues.
eig------------Eigenvaluesandeigenvectors.
svd-----------Singularvaluedecomposition.
gsvd---------Generalizedingularvaluedecomposition.
eigs----------Afeweigenvalues.
svds---------Afewsingularvalues.
poly----------Characteristicpolynomial.
polyeig-----Polynomialeigenvalueproblem.
condeig----Conditionnumberwithrespecttoeigenvalues.
hess---------Hessenbergform.
qz------------QZfactorizationforgeneralizedeigenvalues.
schur-------Schurdecomposition.
Matrixfunctions.
expm-------Matrixexponential.
logm--------Matrixlogarithm.
sqrtm-------Matrixsquareroot.
funm--------Evaluategeneralmatrixfunction.
上面所列的都是有关矩阵的操作函数。
如eig(A)可求出A的特征根及其特征向量,具体执行方法为:
A=[01;-6-5]%输入A矩阵
A=
0
1
-6
-5
E=eig(A)%求出方阵A的特征根E
E=
-2
-3
[V,D]=eig(A)%求出方阵A的特征向量V及其A的对角型D
V=
0.4472
-0.3162
-0.8944
0.9487
D=
-2
0
0
-3
3MATLAB基本功能
下面给出一些MATLAB的常用的功能,不过这只是MATLAB及其众多TOOLBOX中的极少极少部分。
用户可以参阅有关MATLAB的手册,或直接在MATLAB系统中用HELP命令查阅其它功能。
3.1MATLAB的主要线性代数运算
如表A-1所示为常用的矩阵和线性代数运算函数,用户可以用helpmatfun获得更多内容。
表A-1常用线性代数函数
B=A’
矩阵转置
C=A+B
矩阵相加
C=A*B
矩阵相乘
C=A^k
矩阵幂
C=A.*B
矩阵点乘,即两维数相同的矩阵各对应元素相乘
expm(A)
指数矩阵,也就是
inv(A)
矩阵的逆矩阵
det(A)
矩阵的行列式的值
rank(A)
计算矩阵的秩
eig(A)
矩阵的特征值
[X,D]=eig(A)
矩阵的特征向量X和以特征值为元素的对角阵D
p=poly(A)
矩阵的特征多项式
r=roots(p)
特征多项式方程的根
conv(p1,p2)
两多项式相乘
3.2常用的控制系统处理函数
(1)TF2SS将传递函数转换到状态空间表达式
[A,B,C,D]=TF2SS(NUM,DEN)
将系统:
转换成:
其中:
NUM=[bm,bm-1,…,b1,b0],DEN=[1,an-1,an-2,…,a1,a0]
(2)ZP2SS将零极点型传递函数转换到状态空间表达式
[A,B,C,D]=ZP2SS(Z,P,K)
除了
以外,其它与TF2SS相同。
(3)SS2TF将状态空间表达式转换到传递函数
[NUM,DEN]=SS2TF(A,B,C,D,iu)
即求第iu个输入信号对输出y(t)的传递函数,即:
SS2TF的调用返回值为G(s)的分子多项式的系数矩阵NUM和分母多项式的系数向量DEN。
(4)SS2ZP将状态空间表达式到零极点形式的传递函数的转换
[Z,P,K]=SS2ZP(A,B,C,D,iu)
(5)TF2ZP一般传递函数转换到零极点型传递函数
[Z,P,K]=TF2ZP(NUM,DEN)
(6)ZP2TF零极点型传递函数转换到一般传递函数
[NUM,DEN]=ZP2TF(Z,P,K)
(7)SS2SS状态空间表达式的线性变换
[A1,B1,C1,D1]=ss2ss(A,B,C,D,T)
其中T为变换矩阵。
注意变换方程为:
X1=TX,而不是常见的X=TX1。
所以要与用户习惯的变换方程一致,我们必须用T的逆代入上式,即:
[A1,B1,C1,D1]=ss2ss(A,B,C,D,inv(T))
(8)CANON求状态空间表达式的对角标准型
[As,Bs,Cs,Ds,Ts]=canon(A,B,C,D,'mod')
其中Ts为变换矩阵,注意变换方程为:
Xs=TsX。
(9)CTRB计算系统的可控判别矩阵M
M=ctrb(A,B)
(10)OBSV计算系统的可观判别矩阵N
N=obsv(A,C)
(11)IMPULSE求系统的单位脉冲响应
[y,x]=impulse(A,B,C,D,in,t)
[y,x]=impulse(num,den,t)
(12)STEP求系统的单位阶跃响应
[y,x]=step(A,B,C,D,in,t)
[y,x]=step(num,den,t)
(13)LSIM求系统对任意输入函数u(t)的响应
[y,x]=lsim(A,B,C,D,u,t)
[y,x]=lsim(num,den,u,t)
(14)C2D连续系统状态方程转换为离散状态方程,T为采样周期
[G,H]=c2d(A,B,T)
相关的函数还有D2C,D2D。
(15)LYAP求解如下形式的李雅普诺夫方程:
所以求解用户习惯的
李雅普诺夫方程,我们必须用A的转置A’代入,即:
P=Lyap(A’,Q)。
(16)PLACE极点配置
F=PLACE(A,B,P)
二、《现代控制工程》MATLAB实验
实验3能控能观判据及稳定性判据
[实验设备]
同实验1.
[实验目的]
1、利用MATLAB分析线性定常及离散系统的可控性与可观性。
2、利用MATLAB进行线性定常及离散系统的李雅普诺夫稳定性判据。
[实验内容]
1、已知系统状态空间方程如下所示,对系统进行可控性、可观性分析。
(1)
,
(2)
(3)
程序:
(以第一题为例)
(1)a=[-1-22;0-11;10-1]
a=-1-22
0-11
10-1
>>b=[201]'
b=2
0
1
>>c=[120]
c=
120
>>Qc=ctrb(a,b)
Qc=200
010
11-1
rank(Qc)
ans=3,系统满秩,故系统能控。
rank(obsv(a,c))
ans=3,系统满秩,故系统能观。
(2)、(3)两题计算方法相同。
2、已知系统状态空间方程描述如下:
,
,
试判定其稳定性,并绘制出时间响应曲线来验证上述判断。
程序:
A=[-10-35-50-24;1000;0100;0010];
B=[1;0;0;0];C=[172424];D=[0];
[z,p,k]=ss2zp(A,B,C,D,1);
Flagz=0;
n=length(A);
fori=1:
n
ifreal(p(i))>0
Flagz=1;
end
end
disp('系统的零极点模型为');z,p,k
系统的零极点模型为
z=
-2.7306+2.8531i
-2.7306-2.8531i
-1.5388
p=
-4.0000
-3.0000
-2.0000
-1.0000
k=
1.0000
ifFlagz==1
disp('系统不稳定');
elsedisp('系统是稳定的');
end
☆运行结果为:
系统是稳定的
step(A,B,C,D);
图2.1系统的阶跃响应
[实验要求]
1、判断系统的可控性,求解系统的变换矩阵Qc。
2、判断系统可观测性,求解系统的变换矩阵Qo。
3、判断系统稳定性,绘制时间响应曲线。