现代控制工程MATLAB实验指导书V01.docx

上传人:b****2 文档编号:24325695 上传时间:2023-05-26 格式:DOCX 页数:24 大小:274.81KB
下载 相关 举报
现代控制工程MATLAB实验指导书V01.docx_第1页
第1页 / 共24页
现代控制工程MATLAB实验指导书V01.docx_第2页
第2页 / 共24页
现代控制工程MATLAB实验指导书V01.docx_第3页
第3页 / 共24页
现代控制工程MATLAB实验指导书V01.docx_第4页
第4页 / 共24页
现代控制工程MATLAB实验指导书V01.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

现代控制工程MATLAB实验指导书V01.docx

《现代控制工程MATLAB实验指导书V01.docx》由会员分享,可在线阅读,更多相关《现代控制工程MATLAB实验指导书V01.docx(24页珍藏版)》请在冰豆网上搜索。

现代控制工程MATLAB实验指导书V01.docx

现代控制工程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、判断系统稳定性,绘制时间响应曲线。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1