《《现代控制理论》MATLAB实践指导书.docx》由会员分享,可在线阅读,更多相关《《现代控制理论》MATLAB实践指导书.docx(15页珍藏版)》请在第壹文秘上搜索。
1、现代控制理卷富“2名实践播导零现代控制理论MATLAB实践指导书1MATLAB概述MATLAB是MATriXLABOratory的缩写,早期主要用于现代控制中复杂的矩阵、向量的各种运算。由于MATLAB提供了强大的矩阵处理和绘图功能,很多专家因此在自己擅长的领域用它编写了许多专门的MATLAB工具包(toolbox),如控制系统工具包(COntrOlsystemstoolbox);系统辨识工具包(SyStemidentifiCationtoOlbox);信号处理工具包(Signalprocessingtoolbox);鲁棒控制工具包(robustcontroltoolbox);最优化工具包(O
2、PtimiZatiOntoolbox)等等由于MATLAB功能的不断扩展,所以现在的MATLAB已不仅仅局限与现代控制系统分析和综合应用,它己是一种包罗众多学科的功能强大的“技术计算语言(TheLanguageOfTechnicalComputing)”。MathWorks公司于1992年推出了具有划时代意义的MATLAB4.0版本,并推出了交互式模型输入与仿真系统Simulink,它使得控制系统的仿真与CAD应用更加方便、快捷,用户可以方便地在计算机上建模和仿真实验。1997年MathWOrkS推出的MATLAB5.0版允许了更多的数据结构,1999年初推出的MATLAB5.3版在很多方面又
3、进一步改进了MATLAB语言的功能。2000年底推出的MATLAB6.0o最新版本是MATLAB7.0。MATLAB以矩阵作为基本编程单元,它提供了各种矩阵的运算与操作,并有较强的绘图功能。MATLAB集科学计算、图像处理、声音处理于一身,是一个高度的集成系统,有良好的用户界面,并有良好的帮助功能。MATLAB不仅流行于控制界,在机械工程、生物工程、语音处理、图像处理、信号分析、计算机技术等各行各业中都有极广泛的应用。2如何获得MATLAB帮助在MATLAB主窗口中键入help,即可获得第一层帮助:help%加重型内容为用户键入的内容,其它为执行后显示的内容。HELPtopics:matlab
4、generalGeneralpurposecommands.matlabopsOperatorsandspecialcharacters.matlablangProgramminglanguageconstructs.matlabelmatElementarymatricesandmatrixmanipulation.matlabelfunElementarymathfunctions.matlabspecfunSpecializedmathfunctions.matlabmatfunMatrixfunctions-numericallinearalgebra.simulinksimulink
5、SimulinksimulinkblocksSimulinkblocklibrary.simulinksimdemos-Simulink3demonstrationsandsamples,simulinkdeeDifferentialEquationEditorMATLABR11work(Notableofcontentsfile)toolboxlocalPreferences.如果用户对MATLAB的语言结构Iang感兴趣,想进一步了解,则键入:helpIangProgramminglanguageconstructs.Controlflow.ifConditionallyexecutest
6、atements.elseIFstatementcondition.elseif-IFstatementcondition.endTerminatescopeofFOR,WHILE,SWITCH,TRYandIFstatements,forRepeatstatementsaspecificnumberoftimes.while-Repeatstatementsanindefinitenumberoftimes.如果想进一步了解for语句,则键入:helpforFORRepeatstatementsaspecificnumberoftimes.ThegeneralformofaFORstatem
7、entis:FORvariable=expr,statement,.,statementENDThecolumnsoftheexpressionarestoredoneatatimeinthevariableandthenthefollowingstatements,uptotheEND,areexecutedSomeexamples(assumeNhasalreadybeenassignedavalue).FORI=1:N,FORJ=1:N,A(U)=1(I+J-1);ENDEND同样,如果想了解MATLAB中有关矩阵的操作运算函数,可以键入:helpmatfunMatrixfunction
8、s-numericallinearalgebra.Matrixanalysis.normMatrixorvectornorm.normestEstimatethematrix2-norm.rankMatrixrank.detDeterminant.traceSumofdiagonalelements.nullNullspace.orthOrthogonalization.rrefReducedrowechelonform.subspaceAnglebetweentwosubspaces.Eigenvaluesandsingularvalues.eigEigenvaluesandeigenvec
9、tors.svdSingularvaluedecomposition.gsvdGeneralizedingularvaluedecomposition.eigsAfeweigenvalues.svdsAfewsingularvalues.polyCharacteristicpolynomial.polyeigPolynomialeigenvalueproblem.condeigConditionnumberwithrespecttoeigenvalues.hessHessenbergform.qzQZfactorizationforgeneralizedeigenvalues.schurSch
10、urdecomposition.Matrixfunctions.expmMatrixexponential.IogmMatrixlogarithm.sqrtmMatrixsquareroot.funmEvaluategeneralmatrixfunction.上面所列的都是有关矩阵的操作函数。如eig(八)可求出A的特征根及其特征向量,具体执行方法为:A=01;-6-5%输入A矩阵A=O1-6-5E=eig(八)%求出方阵A的特征根EE=-2-3V,D=eig(八)%求出方阵A的特征向量V及其A的对角型DV=0.4472-0.3162-0.89440.9487D=-200-33MATLAB基本
11、功能我们下面给出一些MATLAB的常用的功能,不过这只是MATLAB及其众多TOOLBOX中的极少极少部分。用户可以参阅有关MATLAB的手册,或直接在MATLAB系统中用HELP命令查阅其它功能。3. 1MATLAB的主要线性代数运算如表A-I所示为常用的矩阵和线性代数运算函数,用户可以用helpmatfun获得更多内容。表A1常用线性代数函数B=A,矩阵转置C=A+B矩阵相加C=A*B矩阵相乘C=Ak矩阵哥C=A.*B矩阵点乘,即两维数相同的矩阵各对应元素相乘expm(八)指数矩阵,也就是Vinv(八)矩阵的逆矩阵det(八)矩阵的行列式的值rank(八)计算矩阵的秩eig(八)矩阵的特征
12、值X,D=eig(八)矩阵的特征向量X和以特征值为元素的对角阵Dp=poly(八)矩阵的特征多项式r=roots(p)特征多项式方程的根conv(pl,p2)两多项式相乘3.2常用的控制系统处理函数(1) TF2SS将传递函数转换到状态空间表达式A,B,C,D=TF2SS(NUM,DEN)将系统:=NUMG)=U/+b7+4$+%DEN(三)sn+a“_ST+qs+4转换成:X=AX+BUY=CX+DU其中:NUM=bm,bm-1,bl,b,DEN=fl,an-l,an-2,.,a1,aan-1an-20一。.0ao0-10A=:1:B=0.00000100C=KT%D=b(2) ZP2SS将
13、零极点型传递函数转换到状态空间表达式A,B,C,D=ZP2SS(Z)HK)除了G(三)=K(S+Z)(s+z?)(s+z”)以外,其它与tf2SS相同。(s+p)(s+%)(s+P)(3) SS2TF将状态空间表达式转换到传递函数NUM,DEN=SS2TF(ABC,D,iu)即求第iu个输入信号对输出y(t)的传递函数,即:gcv)=2W =m u,S) DENG)= C(Sl-A) B +D =NUM (S)s 1 + + qs + &SS2TF的调用返回值为G(三)的分子多项式的系数矩阵NUM和分母多项式的系数向量DENo(4) SS2ZP将状态空间表达式到零极点形式的传递函数的转换Z,P
14、,K=SS2ZP(A,B,C,D,iu)(5) )TF2ZP一般传递函数转换到零极点型传递函数Z,P,K=TF2ZP(NUM,DEN)(6) ZP2TF零极点型传递函数转换到一般传递函数NUM,DENJ=ZP2TF(Z,RK)(7) SS2SS状态空间表达式的线性变换A1,BLCI,D1=ss2ss(A,B,C,D,T)其中T为变换矩阵。注意变换方程为:Xl=TX,而不是常见的X=TX1。所以要与用户习惯的变换方程一致,我们必须用T的逆代入上式,即:Al,BLCl,Dl=ss2ss(A,B,C,Djnv(T)(8) CANON求状态空间表达式的对角标准型As,Bs,Cs,Ds,Ts=canon(A,B,C,Dmod)其中TS为变换矩阵,注意变换方程为:Xs=TsXo(9) CTRB计算系统的可控判别矩阵MM=ctrb(A,B)(10) OBSV计算系统的可观判别矩阵NN=obsv(A,C)(IDIMPULSE求系统的单位脉冲响应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求系统