MATLAB练习题和答案_第1页
MATLAB练习题和答案_第2页
MATLAB练习题和答案_第3页
MATLAB练习题和答案_第4页
MATLAB练习题和答案_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

限制系统仿真试验

Matlab部分试验结果

目录

试验一MATLAB基本操作......................................................1

试验二Matlab编程.........................................................5

试验三Matlab底层图形限制.....................................................6

试验四限制系统古典分析.......................................................12

试验五限制系统现代分析........................................................15

试验六PID限制器的设计......................................................19

试验七系统状态空间设计.......................................................23

试验九直流双闭环调速系统仿真.................................................25

试验一MATLAB基本操作

1用MATLAB可以识别的格式输入下面两个矩阵

1233

-1+4/43678

2357

233554+2z

A=1357B=

26+7z5342

3239

189543

1894-

再求出它们的乘积矩阵C,并将C矩阵的右下角2X3子矩阵赋给D矩阵。赋值完成后,调

用相应的叮嘱查看MATLAB工作空间的占用状况。

A=[l,2,3,3;2,3,5,7;l,3,5,7;3,2,3,9;l,8,9,4];

B=[l+4iz4z3z6,7,8;2,3,3,5,5,4+2i;2,6+7i,5,3,4,2;l,8,9,5,4,31;

C=A*B;

D=C(4:5Z4:6);

whos

NameSizeBytesClassAttributes

A5x4160double

B4x6384doublecomplex

C5x6480doublecomplex

D2x396doublecomplex

2选择合适的步距绘制出下面的图形

sin(l〃),其中re(-1,1)

t=[-l:0.1:l];

y=sin(l./t);

plot(t,y)

3对下面给出的各个矩阵求取矩阵的行列式、秩、特征多项式、范数、特征根、特征向量和

逆矩阵。

-7.53.500--5765-

8334.1071087

A=,B=

09103--1.568109

_003.719.3_57910

」23丁-3-3-24-

56785-518

c=,D=

91011121185-7

131415165-1-3-1

A=[7.5,3.5,0,0;8,33,4.1,0;0,9,103,-1.5;0,0,3.7,19.3];

B=[5,7,6,5;7,10,8,7;6,8,10,9;5,7,9,10];

C=[l:4;5:8;9:12;13:lrtf6];

det(A);det(B);det(C);det(D);

rank(A);

rank(B);

rank(C);

rank(D);

a=poly(A);

b=poly(B);

c=poly(C);

d=poly(D);

norm(A);

norm(B);

norm(C);

norm(D);

[v,d]=eig(Aznobalance');

[vzd]=eig(B,nobalance*);

1

[vzd]=eig(C,nobalance);

[v,d]=eig(D,nobalance1);

m=inv(A);

n=inv(B);

p=inv(C);

q=inv(D);

4求解下面的线性代数方程,并验证得出的解真正满足原方程。

721-241321390

9153-27721-264

(a)X=,(b)X=

115-19153-2117

132130-2-2115-2-1

(a)

A=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13];

B=[4;7;-1;0];

X=A\B;

C=A*X;

(b)

A=[l,3,2,13;7,2,1,-2;9,15,3,-2;-2,-2,11,5];

B=[9,0;6,4;ll,7;-2,-l];

X=A\B;

C=A*X;

5.

(1)初始化一10*10矩阵,其元素均为1

ones(10,10);

(2)初始化一10*10矩阵,其元素均为0

zeros(10,10);

(3)初始化-10*10对角矩阵

v=[l:10];

diag(v);

(4)输入A=/7/5;256;315],B=[lI1;222;333],执行下列叮嘱,理解其含义

A(2,3)表示取A矩阵第2行、第3列的元素;

A(:,2)表示取A矩阵的第2列全部元素;

A(3,:)表示取A矩阵第3行的全部元素;

A(:,1:2:3)表示取A矩阵第1、3列的全部元素;

A(:,3).*B(:,2)表示A矩阵第3列的元素点乘B矩阵第2列的元素

A(:,3)*B(2,:)表示A矩阵第3列的元素乘以B矩阵第2行

A*B矩阵AB相乘

A.*B矩阵A点乘矩阵B

AA2矩阵A的平方

A32矩阵表示求矩阵A的每一个元素的平方值

B/A表示方程AX=B的解X

B./A表示矩阵B的每一个元素点除矩阵A的元素

6在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-O.5),te[0,2Jt],

用不同颜色,不同线的类型予以表示,留意坐标轴的比例限制。

t=[0:0.01:2*pi];

yl=cos(t-0.25);

plot(t,yl,1r-1)

holdon

y2=sin(t-0.5);

1r

plot(try2rk)

试验二Matlab编程

1分别用for和while循环结构编写程序,求出

63

==1+2+22+23++262+263

/•=0

并考虑一种避开循环的简洁方法来进行求和。

(a)j=l;n=0;sum=l;

forn=n+l:63

fori=l:n

j=j*2;

end

sum=sum+j;

j=l;

end

sum

(b)j=l;n=l;sum=l;

whilen〜=64

i=l;

whilei<n+l

j=j*2;

i=i+l;

end

n=n+l;

sum=sum+j;

j=l;

end

Sum

(c)i=0:63;k=sum(2.Ai);

2计算l+2+-+n<2000时的最大n值

s=0;m=0;while(s<=2000),m=m+l;s=s+m;end,m

3用MATLAB语言实现下面的分段函数

h,x>D

y=f(x)=<hlDx,|x|<D

—h,x<—D

存放于文件ff.m中,令D=3,h=l求出,如1.5),40.5),45).

D=3;h=l;

x=-2*D:l/2:2*D;

y=-h*(x<-D)+h/D./x.*((x>=-D)&(x<=D))+h*(x>D);

plot(x,y);

gridon

fl=y(find(x==-1.5))

f2=y(find(x==0.5))

f3=y(find(x==5))

试验三Matlab底层图形限制

1在MATLAB叮嘱行中编程得到y=sin(t)和yl=cos⑴函数,plot(t,y);自gure(10);plot(t,yl);

»t=[-pi:O.O5:pi];

»y=sin(t);

»yl=cos(t);

»plot(t,y)

»figure(lO);

»plot(t,yl)

2在MATLAB叮嘱行中键入h=get(O),查看根屏幕的属性,h此时为根屏幕句柄的符号表

示,0为根屏幕对应的标号。

»h=get(O)

BeingDeleted:'off

BusyAction:'queue'

ButtonDownFcn:"

Callbackobject:[]

Children:[2x1double]

Clipping:'on'

CommandWindowSize:[8927]

CreateFcn:"

CurrentFigure:1

DeleteFcn:"

Diary:'off

DiaryFile:'diary*

Echo:'off

FixedWidthFontName:'CourierNew'

Format:'short'

FormatSpacing:loose1

HandleVisibility:'on'

HitTest:'on'

Interruptible:'on'

Language:'zh_cn.gbk'

MonitorPositions:[1114409001

More:'off

Parent:[]

PointerLocation:[1048463]

PointerWindow:0

RecursionLimit:50()

ScreenDepth:32

ScreenPixelsPerlnch:96

ScreenSize:[111440900]

Selected:'off

SelectionHighlight:'on'

ShowHiddenHandles:'off

Tag:"

Type:‘root'

UIContextMenu:[]

Units:'pixels'

UserData:[]

Visible:'on'

3hl=get(l);h2=get(I0),1,10分别为两图形窗口对应标号,其中1为Matlab自动支配,标号

10已在figure。0)中指定。查看hl和h2属性,留意CurrentAxes和CurrenObject属性。

»hl=get(l)

hl=

Alphamap:[1x64double]

BeingDeleted:'off

BusyAction:'queue*

ButtonDownFcn:"

Children:170.0012

Clipping:'on'

CloseRequestFcn:'closereq'

Color:[0.800()0.80000.8000J

Colormap:[64x3double]

CreateFcn:"

CurrentAxes:170.0012

CunentCharacter:"

Currentobject:[]

CunentPoint:[00]

DeleteFcn:"

DockControls:'on,

FileName:"

FixedColors:[10x3double]

Handlevisibility:'on,

HitTest:'on'

IntegerHandle:'on'

Interruptible:*on*

InvertHardcopy:'on'

KeyPressFcn:"

KeyReleaseFcn:"

MenuBar:'figure'

MinColormap:64

Name:"

NextPlot:'add'

NumberTitle:'on'

PaperOrientation:'portrait'

PaperPosition:[0.63456.345220.304615.2284]

PaperPositionMode:'manual1

PaperSize:[20.984029.6774]

PaperType:'A4'

PaperUnits:'centimeters'

Parent:0

Pointer:'arrow*

PointerShapeCData:[16x16double]

PointerShapeHotSpot:[11]

Position:[440378560420]

Renderer:'painters'

RendererMode:'auto'

Resize:'on'

ResizeFcn:"

Selected:'off

SelectionHighlight:'on'

SelectionType:'normal1

Tag:"

ToolBar:'auto,

Type:'figure'

UIContextMenu:[]

Units:'pixels'

UserData:f]

Visible:'on'

WindowButtonDownFcn:"

WindowButtonMotionFcn:"

WindowButtonUpFcn:"

WindowKeyPressFcn:"

WindowKeyReleaseFcn:"

WindowScrollWheelFcn:"

WindowStyle:'normal'

WVisual:*00(RGB32GDI,Bitmap,Window),

WVisualMode:'auto'

»h2=get(10)

h2

Alphamap:[1x64double]

BeingDeleted:*off

BusyAction:'queue1

ButtonDownFcn:"

Children:342,0011

Clipping:'on'

CloseRequestFcn:'closereq'

Color:[0.80000.80000.8000]

Colormap:[64x3double]

CreateFcn:"

CurrentAxes:342.0011

Currentcharacter:"

Currentobject:[1

CurrentPoint:[00]

DeleteFcn:"

DockControls:'on,

FileName:"

FixedColors:[10x3double]

Handlevisibility:'on'

HitTest:'on,

IntegerHandle:'on'

Interruptible:'on'

InvertHardcopy:'on'

KeyPressFcn:"

KeyReleaseFcn:"

MenuBar:'figure'

MinColormap:64

Name:"

NextPlot:'add'

NumberTitle:'on'

PaperOrientation:'portrait'

PaperPosition:[0.63456.345220.304615.2284]

PaperPositionMode:'manual*

PaperSize:[20.984029.6774]

PaperType:'A4'

PaperUnits:'centimeters'

Parent:0

Pointe亡'arrow'

PointerShapeCData:[16x16double]

PointerShapeHotSpot:[11]

Position:[440378560420]

Renderer:'painters*

RendererMode:'auto'

Resize:‘on'

ResizeFcn:

Selected:'off

SelectionHighlight:'on'

SelectionType:'normar

Tag:"

ToolBar:'auto'

Type:'figure'

UIContextMenu:[]

Units:'pixels'

UserData:f]

Visible:'on'

WindowButtonDownFcn:"

WindowButtonMotionFcn:"

WindowButtonUpFcn:"

WindowKeyPressFcn:"

WindowKeyReleaseFcn:"

WindowScrollWheelFcn:"

WindowStyle:'normal'

WVisual:'00(RGB32GDI,Bitmap,Window)1

WVisualMode:'auto'

4输入h.Children,视察结果。

»h.Children

ans=

1

10

5键入gcf,得到当前图像句柄的值,分析其结果与h,hl,h2中哪个一样,为什么?

ans=

I

结果与h的一样

6鼠标点击Figure1窗口,让其位于前端,在叮嘱行中键入gcf,视察此时的值,和上一步

中有何不同,为什么?

ans=

1

7视察hl.Children和h2.Children,gca的值。

»hl.Children

ans=

170.0012

»h2.Children

ans=

342.0011

»gca

ans=

170.0012

8视察以下程序结果h3=hl.Children;set(h3,'Color*/green');h3_1=get(h3,'children,);set(h3_l,

,Color1,Yed*);其中h3_l为Figure1中线对象句柄,不能干脆接受h3_l=h3.Children叼嘱获

得。

9叮嘱行中键入plot(t,sin(t-pi/3)),视察曲线出现在哪个窗口。h4=h2.Children;axes(h4);

plot(t,sin(t-pi/3)),看看此时曲线显示在何窗口。

pk>t(t,sin(t-pi/3))后,曲线出现在figure1窗口;h4=h2.Children;axes(h4);plot(t,sin(t-pi/3))后,

曲线出现在figurelO

试验四限制系统古典分析

10

3.已知二阶系统G(s)=

52+25+10

(1)编写程序求解系统的阶跃响应;

a=sqrt(10);

zeta=(1/a);

num=[10];

den=[12*zeta*a10];

sys=tf(num,den);

t=0:0.01:3;

figure(1)

step(sysft);grid

修改参数,实现J=1和J=2的阶跃响应;

"1时:

a=sqrt(10);

zeta=l;

num=[10];

den=[12*zeta*a10];

sys=tf(num,den);

t=0:0.01:3;

figure(1)

step(sysrt);grid

4=2时:

a=sqrt(10);

zeta=2;

num=[10];

den=[12*zeta*a10];

sys=tf(num,den);

t=0:0.01:3;

figure(1)

step(sys,t);grid

修改参数,实现/〃1=和口〃2=的阶跃响应(G“=JI6)

时:

a=sqrt(10);

zeta=(1/a);

num=[0.25];

den=[12*zeta*0.5*a0.25];

sys=tf(num,den);

t=0:0.01:3;

figure(1)

step(sys,t);grid

%2=2%时:

a=sqrt(10);

zeta=(1/a);

num=[40];

den=[12*zeta*2*a40];

sys=tf(num,den);

t=0:0.01:3;

figure(1)

step(sys,t);grid

(2)试做出以下系统的阶跃响应,并比较与原系统响应曲线的差别与特点,作出相应的试验

分析结果。

2s+10/+0.5s+10s2+0.5s

G(s)=G(5)=;G.3(S)=

+2s+102s2+25+1052+2s+10

G(5)=

252+25+10

要求:分析系统的阻尼比和无阻尼振荡频率对系统阶跃响应的影响;

分析响应曲线的零初值、非零初值与系统模型的关系:

分析响应曲线的稳态值与系统模型的关系;

分析系统零点对阶跃响应的影响;

a=sqrt(10);

zeta=(1/a);

num=[10];

den=[12*zeta*a10];

sys=tf(num,den);

t=0:0.01:3;

step(sys,t);

holdon

numl=[0210];

sysl=tf(numl,den);

step(sysl,t);

num2=[10.510];

sys2=tf(num2zden);

step(sys2zt);

num3=[10.50J;

sys3=tf(num3,den);

step(sys3,t);

num4=[010];

sys4=tf(num4,den);

step(sys4zt);grid

•ZjFigure1□00

FileEditVie»InsertToolsDeskiopWindovHelp

口目金)玲,,门@*房•③口国・国

StepResponse

System:sys1

Time(sec):0.646

Amplitude:1.35

System:sys

Time(sec):0.827

■Afriplifude:T26--

3

.8

pg6

snsSystem:sys2

dTime(sec):0.731

与4AmnOhMle*A80S

sSystem:sys4

2Time(sec):0.676

Amplitude:0.152

o.o

System:sys3

-0.2-------Time(sec):0.904

Amplitude:-0.396

11.5

Time(sec)

5

k(s+1)

已知G(s)=

52(0.15+1)

令k=l作Bode图,应用频域稳定判据确定系统的稳定性,并确定使系统获得最大相位

裕度的增益k值。

G=tf([11],[0.1100]);

figure(1)

margin(G);grid

Figure1

FileEditViewInsertToolsDesktopWindowHelp

q通|巧®要/,|曰|口目Ind

BodeDiagram

Gm=-InfdB(at0rad/sec),Pm-44.5deg(at1.26rad/sec)

m

p

)

p

n

v

u

o

e

w

-150

Frequency(rad/sec)

试验五限制系统现代分析

(2)Bode图法推断系统稳定性:

已知两个单位负反馈系统的开环传递函数分别为:

2727

G(s)=3…“;G,(s)=3一,

53+5s-+4s's+5s--4s

用Bode图法推断系统闭环的稳定性。

Gl=tf([2.7],[1540]);

figure(1)

margin(G);grid

G2=tf([2.7]z[15-40]);

figure(2)

margin(G2);grid

igure1

FileEditViewInsertToolsDesktopWindowHelp

□ddQ+、、争⑨0/□SI■O

BodeDiagram

Gm=-InfdB(at0rad/sec),Pm=44.5deg(at1.26rad/sec)

100

m50

p

)

g

p

n

u0

g

e

w

-100

-120

(

aB

)p

8

s

e

q

d

Frequency(rad/sec)

Figure2[二]叵|区

FileEditVie*InsertToolsDesktopWindowHelp

□t3J4+、,C®编/•学□IDl・国

BodeDiagram

Gm=Inf,Pm=-58.1deg(at0.535rad/sec)

(

B

p

)

0p>

n

w

se

ie

di

Frequency(rad/sec)

2

系统能控性、能观性分析

已知连续系统的传递函数模型:

s+a

G(s)=

?+10J2+275+18

当a分别取一1,0,+1时,判别系统的能控性与能观性。

当Q取-1时:

num=[1-1];

den=[l102718];

G=tf(num,den);

Gl=ss(G)

a=[-10-3.375-2.25;800;010];

b=[0.5;0;0];

A

Uc=[bza*b,a2*b];

rank(Uc)

a=

xlx2x3

X1-10-3.375-2.25

x2800

x3010

b=

ul

xl0.5

x20

x30

c=

xlx2x3

yl00.25-0.25

d=

ul

yl0

Continuous-timemodel.

rankUc=

3

rankUo=

3

由此,可以得到系统能控性矩阵Uc的秩是3,等于系统的维数,故系统是能控的。能观性矩

阵U。的秩是3,等于系统的维数,故系统能观测的。

当a取0时:

a

xlx2x3

xl-10-3.375-2.25

x2800

x3010

ul

xl0.25

x20

x30

x1x2x3

yl00.50

ul

yl0

Continuous-timemodel.

rankUc=

3

rankUo=

3

由此,可以得到系统能控性矩阵Uc的秩是3,等于系统的维数,故系统是能控的。能观性矩

阵U。的秩是3,等于系统的维数,故系统能观测的。

当a取1时:

a=

xlx2x3

xl-10-3.375-2.25

x2800

x3010

b=

ul

xl0.5

x20

x30

c

xlx2x3

yl00.250.25

d=

ul

yl0

rankUc=

3

rankUo=

2

由此,可以得到系统能控性矩阵Uc的秩是3,等于系统的维数,故系统是能控的。能观性矩

阵U。的秩是2,小于系统的维数,故系统不能观测的。

试验六PID限制器的设计

1.已知三阶对象模型G(s)=l/(s+l)3,利用MATLAB编写程序,探讨闭环系统在不同限

制状况下的阶跃响应,并分析结果。

(1)8,%->0时,在不同KP值下,闭环系统的阶跃响应;

S=tf(*S1);

G=l/(s+1)A3;

forK=[0:0.5:2];holdon

step(feedback(G*K,1))

end

I3回区

E.xleEditView工nsertToolsDesktopWindowHelp

□aj\-xo©c口园-回

StepResponse

1.4

1.2

8

o

p

n

M

d

lo.

u

vo.6

比例环节:成比例地反映限制系统的偏差信号e⑴,偏差一旦产生限制器立刻产生限制作用,

以减小偏差。比例系数越大,误差越小。

(2)K〃=l,7;->0时,在不同7;值下,闭环系统的阶跃响应;

s=tf(*s1);

G=l/(s+1)A3;

forTi=[1:0.5:3];holdon

Gl=l+tf(1,[Tiz0]);

step(feedback(G*G1Z1))

end

13间国

FileEditViewInsertToolsDesktoplindowH«lp

□aJ口国■□

StepResponse

1.6

1.4

1.2

o

p

n

s8

d

uso.

/

v

6

51015202530354045

Time(sec)

积分环节.•主要用于消退静塞提高系统的无差度。积分作用的强弱取决于积分时间常数"

力越大,积分作用越弱,反之则越强。

(3)Kp=7;=l时,在不同7;值下,闭环系统的阶跃响应;

s=tf(*s*);

G=l/(s+1)A3;

forTd=[1:0.5:3];holdon

Gl=l+tf(1,[1,0])+tf([Td0],[Td/101]);

step(feedback(G*G1,1))

end

微分环节:反映偏差信号的变更趋势(变更速率),并能在偏差信号变得太大之前,在系统中引

入一个有效的早期修正信号,从而加快系统的动作速度,削减调整时间。

2.被控对象同上,选择合适的参数进行模拟PID限制(PID参数整定)

S=tf(*S1);

G=l/(s+1)A3;

[KIzLIrT1rG1]=getfolpd(1FG);G1

N=10;K=1.014;T=2.101;L=l.l;a=K*L/T;

Kp=l.2/arTi=2*L,Td=0.5*LrG2=Kp*(1+tf(1,[Ti,0])+tf([Td0],[Td/N

1]));

step(sysl=feedback(G*G2,1));grid

holdon

step(feedback(G,1))

Figure1□00

FileEditViewInsertToolsDesktopWindowHelp

QT百Hfe+、4c⑨组/,曼□0:TQ

S8

o

np

dw

/u

vo.6

0.2

1012

Time(sec)

试验七系统状态空间设计

3.已知对象模型

--0.30.1-0.05112]

x(t)-10.10x(Z)+0

—1.5—8.9-0.054

y=[l23]x

⑴假如我们想将闭环系统的极点配置到-1,2-3,利用MATLAB设计限制器,并绘出闭环

系统的阶跃响应曲线。(说明:用两种方法配置极点)

接受Ackermann公式计算:

A=[-0.30.1-0.05;l0.10;-1.5-8.9-0.05];

B=[2;0;4];

C=[l23];

D=0;

P=[-l-2-3];

k=acker(A,B,P)

Ac=A-B*k

eig(Ac)

G=ss(Ac,B,C,D)

Gl=tf(G)

t=0:0.01:3;

step(G1tt);grid

Figure1;□iX

FileEditViewInsertToolsDesktopWindowHelp

□后UJ玲+、入踮黝0/,显□国■Q

Time(sec)

接受鲁棒极点配置算法:

A=[-0.30.1-0.05;l0.10;-l.5-8.9-0.05];

B=[2;0;4];

C=[l23];

D=0;

P=[-l-2-3];

k=place(A,B,P)

Ac=A-B*k

eig(Ac)1

G=ss(Ac,B,C,D)

Gl=tf(G)

t=0:0.01:3;

step(G1ft);grid

•JFigure113回区

FileEditVie»InsertToolsDesktopWindowHelp

StepResponse

2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论