您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 现代控制理论MATLAB上机实验指导1
1《现代控制理论》MATLAB实践指导书刘红军编写2《现代控制理论》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-------Simulinksimulink\blocks----------Simulinkblocklibrary.simulink\simdemos---Simulink3demonstrationsandsamples.simulink\dee--------------DifferentialEquationEditorMATLABR11\work------(Notableofcontentsfile)toolbox\local--------------Preferences.如果用户对MATLAB的语言结构lang感兴趣,想进一步了解,则键入:3helplangProgramminglanguageconstructs.Controlflow.if-----------Conditionallyexecutestatements.else------IFstatementcondition.elseif----IFstatementcondition.end------TerminatescopeofFOR,WHILE,SWITCH,TRYandIFstatements.for--------Repeatstatementsaspecificnumberoftimes.while---Repeatstatementsanindefinitenumberoftimes.如果想进一步了解for语句,则键入:helpforFORRepeatstatementsaspecificnumberoftimes.ThegeneralformofaFORstatementis:FORvariable=expr,statement,...,statementENDThecolumnsoftheexpressionarestoredoneatatimeinthevariableandthenthefollowingstatements,uptotheEND,areexecuted.……Someexamples(assumeNhasalreadybeenassignedavalue).FORI=1:N,FORJ=1:N,A(I,J)=1/(I+J-1);ENDEND同样,如果想了解MATLAB中有关矩阵的操作运算函数,可以键入:helpmatfunMatrixfunctions-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.4poly----------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=01-6-5E=eig(A)%求出方阵A的特征根EE=-2-3[V,D]=eig(A)%求出方阵A的特征向量V及其A的对角型DV=0.4472-0.3162-0.89440.9487D=-200-33MATLAB基本功能我们下面给出一些MATLAB的常用的功能,不过这只是MATLAB及其众多TOOLBOX中的极少极少部分。用户可以参阅有关MATLAB的手册,或直接在MATLAB系统中用HELP命令查阅其它功能。3.1MATLAB的主要线性代数运算如表A-1所示为常用的矩阵和线性代数运算函数,用户可以用helpmatfun获得更多内容。表A-1常用线性代数函数5B=A’矩阵转置C=A+B矩阵相加C=A*B矩阵相乘C=A^k矩阵幂C=A.*B矩阵点乘,即两维数相同的矩阵各对应元素相乘expm(A)指数矩阵,也就是Aeinv(A)矩阵的逆矩阵det(A)矩阵的行列式的值rank(A)计算矩阵的秩eig(A)矩阵的特征值[X,D]=eig(A)矩阵的特征向量X和以特征值为元素的对角阵Dp=poly(A)矩阵的特征多项式r=roots(p)特征多项式方程的根conv(p1,p2)两多项式相乘3.2常用的控制系统处理函数(1)TF2SS将传递函数转换到状态空间表达式[A,B,C,D]=TF2SS(NUM,DEN)将系统:01110111)()()(asasasbsbsbsbsDENsNUMsGnnnmmmm转换成:DUCXYBUAXX其中:NUM=[bm,bm-1,…,b1,b0],DEN=[1,an-1,an-2,…,a1,a0]60100000100010121aaaaAnn0001B021bbbCnnnbD(2)ZP2SS将零极点型传递函数转换到状态空间表达式[A,B,C,D]=ZP2SS(Z,P,K)除了)())(()())(()(2121nmpspspszszszsKsG以外,其它与TF2SS相同。(3)SS2TF将状态空间表达式转换到传递函数[NUM,DEN]=SS2TF(A,B,C,D,iu)即求第iu个输入信号对输出y(t)的传递函数,即:01111)()()()()()()(asasassNUMDBAsICsDENsNUMsUsYsGnnniuSS2TF的调用返回值为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计算系统的可控判别矩阵MM=ctrb(A,B)(10)OBSV计算系统的可观判别矩阵NN7=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,d
本文标题:现代控制理论MATLAB上机实验指导1
链接地址:https://www.777doc.com/doc-6003844 .html