MATLAB仿真课后习题.docx

上传人:b****5 文档编号:29682794 上传时间:2023-07-26 格式:DOCX 页数:30 大小:345.09KB
下载 相关 举报
MATLAB仿真课后习题.docx_第1页
第1页 / 共30页
MATLAB仿真课后习题.docx_第2页
第2页 / 共30页
MATLAB仿真课后习题.docx_第3页
第3页 / 共30页
MATLAB仿真课后习题.docx_第4页
第4页 / 共30页
MATLAB仿真课后习题.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

MATLAB仿真课后习题.docx

《MATLAB仿真课后习题.docx》由会员分享,可在线阅读,更多相关《MATLAB仿真课后习题.docx(30页珍藏版)》请在冰豆网上搜索。

MATLAB仿真课后习题.docx

MATLAB仿真课后习题

第一章习题

3.请指出以下的变量名(函数名、M文件名)中,哪些是合法的?

Abc2004xlil-1wu_2004a&bqst.u_xyz

解:

合法的变量名有:

Abcwu_2004

4.指令窗操作

(1)求[12+2×(7-4)]÷32的运算结果

解:

>>[12+2*(7-4)]/3^2

ans=

2

(2)输入矩阵A=[1,2,3;4,5,6;7,8,9],观察输出。

解:

>>A=[1,2,3;4,5,6;7,8,9]

A=

123

456

789

(3)输入以下指令,观察运算结果;

clear;x=-8:

0.5:

8;

y=x';

X=ones(size(y))*x;

Y=y*ones(size(x));

R=sqrt(X.^2+Y.^2)+eps;

Z=sin(R)./R;

mesh(X,Y,Z);

colormap(hot)

xlabel('x'),ylabel('y'),zlabel('z')

解:

7.指令行编辑

(1)依次键入以下字符并运行:

y1=2*sin(0.3*pi)/(1+sqrt(5))

解:

>>y1=2*sin(0.3*pi)/(1+sqrt(5))

y1=

0.5000

(2)通过反复按键盘的箭头键,实现指令回调和编辑,进行新的计算;y2=2*cos(0.3*pi)/(1+sqrt(5))

解:

>>y2=2*cos(0.3*pi)/(1+sqrt(5))

y2=

0.3633

11.编写题4中(3)的M脚本文件,并运行之。

解:

第二章习题

1.在指令窗中键入x=1:

0.2:

2和y=2:

0.2:

1,观察所生成的数组。

解:

>>x=1:

0.2:

2

x=

1.00001.20001.40001.60001.80002.0000

>>y=2:

0.2:

1

y=

Emptymatrix:

1-by-0

2.要求在[0,2π]上产生50个等距采样数据的一维数组,试用两种不同的指令实现。

解:

y1=0:

2*pi/49:

2*pi

y2=linspace(0,2*pi,50)

3.计算e-2tsint,其中t为[0,2π]上生成的10个等距采样的数组。

解:

>>t=linspace(0,2*pi,10);

x=exp(-2*t).*sin(t)

x=

00.15910.06030.01310.0013-0.0003-0.0002-0.0001-0.0000-0.0000

4.已知A=

B=

计算矩阵A、B乘积和点乘.

解:

>>A=[1,2;3,4];

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

x=A*B

x=

1922

4350

>>x=A.*B

x=

512

2132

5.已知A=

,B=

,计算A&B,A|B,~A,A==B,A>B.

解:

>>A=[0,2,3,4;1,3,5,0];

B=[1,0,5,3;1,5,0,5];

a1=A&B

a2=A|B

a3=~A

a4=(A==B)

a5=(A>B)

a1=

0011

1100

a2=

1111

1111

a3=

1000

0001

a4=

0000

1000

a5=

0101

0010

7.将题5中的A阵用串转换函数转换为串B,再size指令查看A、B的结构,有何不同?

解:

>>A=[0,2,3,4;1,3,5,0]

B=num2str(A)

size(A)

size(B)

A=

0234

1350

B=

0234

1350

ans=

24

ans=

210

第三章习题

1.已知系统的响应函数为

其中

要求用不同线型或颜色,在同一图上绘制ε取值分别为0.2、0.4、0.6、0.8时,系统在t∈[0,18]区间的响应曲线,并要求用ε=0.2和ε=0.8对他们相应的两条曲线进行文字标志。

解:

clc

closeall

clearall

t=0:

0.02:

18;

xi=[0.2,0.4,0.6,0.8]';

sxi=sqrt(1-xi.^2);

sita=atan(sxi./xi);

y=1-exp(-xi*t).*sin(sxi*t+sita*ones(1,901))./(sxi*ones(1,901))

plot(t,y

(1),'r-',t,y

(2),'b*',t,y(3),'g+',t,y(4),'k.')

text(4.2,1.4,'\xi=0.2')

text(3.8,0.9,'\xi=0.8')

2.用plot3、mesh、surf指令绘制

三维图(x,y围自定)。

解:

clc;closeall;clearall;

x=-5:

0.1:

5;y=-5:

0.1:

5;

[X,Y]=meshgrid(x,y);

a=sqrt((1-X).^2+Y.^2);

b=sqrt((1+X).^2+Y.^2);

Z=1./(a+b);

a1=sqrt((1-x).^2+y.^2);

b1=sqrt((1+x).^2+y.^2);

z=1./(a1+b1);

subplot(1,3,1),plot3(x,y,z),xlabel('x'),ylabel('y'),zlabel('z');boxon;

subplot(1,3,2),surf(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z');boxon;

subplot(1,3,3),mesh(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z');boxon;

3.对向量t进行以下运算可以构成三个坐标的值向量:

x=sin(t),y=cos(t),z=t.利用指令plot3,并选用绿色的实线绘制相应的三维曲线.

解:

t=(0:

0.01:

2)*pi;

x=sin(t);

y=cos(t);

z=t;

plot3(x,y,z,'b-');boxon

第四章习题

1.请分别用for和while循环语句计算K=

的程序,再写出一种避免循环的计算程序。

(提示:

可考虑利用MATLAB的sum(X,n)函数,实现沿数组X的第n维求和。

解:

1)K=0;

fori=0:

63;

K=K+2^i;

end

K

K=1.8447e+019

2)i=0;K=0;

whilei<=63;

K=K+2^i;

i=i+1;

end;

K

K=1.8447e+019

3)i=0;

X=0:

63;

fori=0:

63;

X(i+1)=2^i;

end

sum(X,2)

ans=1.8447e+019

第五章习题

1.将下列系统的传递函数模型用MATLAB语言表达出来。

(1)

解:

num=[1,35,291,1093,1700];

den=[1,289,254,2541,4684,1700];

sys=tf(num,den)

(2)

解:

z=-3;

p=[-1,-5,-15];

k=15;

sys=zpk(z,p,k)

(3)

解:

z=[0,-2,-2];

p=[-1,1];

k=100;

sys1=zpk(z,p,k);

num=[1,3,2];

den=[1,2,5,2];

sys2=tf(num,den);

sys=series(sys1,sys2)

4.求题3中的系统模型的等效传递函数模型和零极点模型。

解:

A=[3,2,1;0,4,6;0,-3,-5];

B=[1,2,3]';

C=[1,2,5];

D=0;

sys=ss(A,B,C,D);

systf=tf(sys)

syszpk=zpk(sys)

Transferfunction:

20s^2-83s+138

---------------------

s^3-2s^2-5s+6

Zero/pole/gain:

20(s^2-4.15s+6.9)

-----------------------

(s-3)(s-1)(s+2)

5.已知系统的动力学方程如下,试用MATLAB语言写出它们的传递函数。

(1)

解:

num=[1,2,0];

den=[1,15,50,500];

sys=tf(num,den)

Transferfunction:

s^2+2s

-------------------------

s^3+15s^2+50s+500

(2)

解:

num=[4,0];

den=[1,3,6,4];

sys=tf(num,den)

Transferfunction:

4s

---------------------

s^3+3s^2+6s+4

6.试用MATLAB语言表示图5-13所示系统。

当分别以y=x2和f为系统输出、输入时的传递函数模型和状态空间模型(图中k=7N/m,c1=0.5N/m.s-1,c2=0.2N/m.s-1,m1=3.5kg,m2=5.6kg)。

解:

k=7;

c1=0.5;

c2=0.2;

m1=3.5;

m2=5.6;

num=[m1,c1,k];

den=[m1*m2,c1*m1+c2*m1+c1*m2,c1*c2+m2*k,c1*k+c2*k,0];

sys=tf(num,den)

Transferfunction:

3.5s^2+0.5s+7

--------------------------------------

19.6s^4+5.25s^3+39.3s^2+4.9s

7.试用MATLAB语言分别表示图5-14所示系统质量m1,m2的位移x1,x2对输入f的传递函数X2(s)/F(s)和X1(s)/F(s),其中m1=12kg,m2=38kg,k=1000N/m,c=0.1N/m.s-1。

解:

m1=12;

m2=38;

k=1000;

c=0.1;

num=[c,k];

den=[m1*m2,m1*c+m2*c,m1*k+m2*k,0,0];

sys1=tf(num,den)

num=[m1,c,k];

den=[m1*m2,m1*c+m2*c,m1*k+m2*k,0,0];

sys2=tf(num,den)

Transferfunction:

0.1s+1000

---------------------------

456s^4+5s^3+50000s^2

Transferfunction:

12s^2+0.1s+1000

---------------------------

456s^4+5s^3+50000s^2

补充题

求图示传递函数

sys1=tf([1,2],[1,3,4]);

sys2=tf([1,4,5],[1,6,7,8]);

sys3=tf([1,0],[1,2]);

sys4=tf([1],[1,3]);

sys5=parallel(sys3,sys4);

sys=feedback(sys1*sys2*sys5,1,-1)

结果

s^5+10s^4+39s^3+74s^2+66s+20

-----------------------------------------------------------------

s^7+14s^6+81s^5+262s^4+530s^3+684s^2+538s+212

第六章习题

2.将例6-2中的微分方程改写为以下形式:

求μ分别为1、2时,在时间区间t=[0,20]微分方程的解。

解:

M函数文件

functiondx=wffc(t,x,flag,ps)

dx=zeros(2,1);

dx

(1)=x

(2);

dx

(2)=ps*(1-x

(1)^2)*x

(2)-x

(1);

调用程序

clc;closeall;clearall;

tspan=[0,20];

x0=[0,1];

ps=1;

[T1,X1]=ode45('wffc',tspan,x0,odeset,ps);

ps=2;

[T2,X2]=ode45('wffc',tspan,x0,odeset,ps);

plot(T1,X1(:

1),'r',T2,X2(:

1),'b-.')

X1(:

1)

X2(:

1)

3.对图6-18所示反馈系统进行单位阶跃响应和方波响应(方波周期为30s)仿真。

要求:

(1)利用MATLAB模型连接函数求出系统闭环传递函数。

(2)利用step函数求单位阶跃响应。

(3)利用gensig函数产生方波信号,利用lsim函数求方波响应。

解:

clc;closeall;clearall;

%

(1)

sys1=tf([1,0.5],[1,0.1]);

sys2=ZPK([],[0,-2,-10],20);

sys3=series(sys1,sys2);

sys4=feedback(sys3,1,-1);

%

(2)

subplot(1,2,1)

step(sys4);

%(3)

[u,t]=gensig('square',30,60);

subplot(1,2,2)

lsim(sys4,'r',u,t)

20(s+0.5)

--------------------------------------------

(s+10.23)(s+0.8195)(s^2+1.052s+1.193)

4.已知系统传递函数

 ;

(1)绘制系统阶跃响应曲线。

(2)绘出离散化系统阶跃响应曲线,采样周期Ts=0.3s。

解:

clc;closeall;clearall;

%

(1)

sys=tf([1],[1,0.2,1.01]);

subplot(1,2,1)

step(sys)

%

(2)

sys=tf([1],[1,0.2,1.01]);

sys1=c2d(sys,0.3,'zoh');

[num,den]=tfdata(sys1,'v');

subplot(1,2,2)

dstep(num,den)

附加题

1、已知二阶微分方程

,其初始条件为

,求在时间围t=[05]该微分方程的解。

M函数为:

functiondy=vdp(t,y)

dy=zeros(2,1);

dy

(1)=y

(2);

dy

(2)=4*y

(2)-(y

(1)^2)*y

(2)+3*y

(1);

调用函数为:

[T,Y]=ode45('vdp',[05],[0,1]);

plot(T,Y(:

1),'r-',T,Y(:

2),'b:

')

2、已知系统模型为

,计算系统在周期10s的方波信号作用下5个周期的时间响应,并在同一图形窗口中绘制输入信号和时间响应曲线。

sys=tf([1,2],[1,0,2,7]);

[u,t]=gensig('square',10,50);%产生方波信号数据

lsim(sys,'r',u,t),holdon%产生方波响应并绘曲线

plot(t,u,'-.')%在同一坐标系绘方波波形

holdoff

 

第七章习题

1.绘制下列各单位反馈系统开环传递函数的Bode图和Nyquist图,并根据其稳定裕度判断系统的稳定性。

(1)

解:

clc;clearall;closeall;

%

(1)

Gk=zpk([],[0,-0.5,-1/3],5/3);

subplot(1,2,1)

margin(Gk)

gridon

subplot(1,2,2)

nyquist(Gk)

由上图的稳定裕度知系统临界稳定。

(2)

解:

clc;clearall;closeall;

%

(2)

Gk=zpk([],[0,-1,-0.1],1);

subplot(1,2,1)

margin(Gk)

gridon

subplot(1,2,2)

nyquist(Gk)

由上图的稳定裕度知系统不稳定。

(3)

解:

clc;clearall;closeall;

%(3)

Gk=zpk([],[0,0,-10,-5],500);

subplot(1,2,1)

margin(Gk)

gridon

subplot(1,2,2)

nyquist(Gk)

由上图的稳定裕度知系统不稳定。

(4)

解:

clc;clearall;closeall;

%(4)

Gk=zpk([],[0,0,-10,-0.1],2);

subplot(1,2,1)

margin(Gk)

gridon

subplot(1,2,2)

nyquist(Gk)

 

由上图的稳定裕度知系统不稳定。

2.设单位反馈系统的开环传递函数为

其中无阻尼固有频率wn=90rad/s,阻尼比ξ=0.2,试确定使系统稳定的K的围。

解:

方法1

g=tf(1,[1/90^20.4/9010]);%系统开环模型

w=logspace(0,3,1000);%生成频率向量

bode(g,w)

[mag,phase,w]=bode(g,w);%产生幅值(非分贝)和相位向量

mag1=reshape(mag,1000,1);%重构幅值向量(1000*1)

phase1=reshape(phase,1000,1);%重构相频向量(1000*1)

wc=interp1(phase1,w,-180)%插值求-180度所对应的频率——wc

gk=interp1(w,mag1,wc)%插值求wc所对应的增益

gkk=1/gk%该增益的倒数即为可增加的最大增益

wc=

90.0004

gk=

0.0278

gkk=

36.0033

方法2

wc=0;wg=0.01;k=1;

whilewc

sys=tf(k,[1/(90*90),2*0.2/90,1,0]);

[gm,pn,wg,wc]=margin(sys);

k=k+0.1;

end

k-0.1

ans=

36.0000

方法3

xi=0.2;omega=90;w=90;

sys1=tf(1,[1,0]);

sys2=tf(1,[1/w^2,2*xi/w,1]);

sys=series(sys1,sys2);

[Gm,Pm,Wcg,Wcp]=margin(sys);

k=Gm

k=

36

3.设系统结构如图7-22所示,试用LTIViewer分析系统的稳定性,并求出系统的稳定裕度及单位阶跃响应峰值。

clc;closeall;clearall;

G11=0.5;

G12=zpk([0],[-0.5],1);

G1=G11-G12;

G2=tf(1,[120]);

Gk=G1*G2;

Gb=feedback(Gk,1,-1);

[Gm,Pm,Wcg,Wcp]=margin(Gb)

step(Gb)

[y,t]=step(Gb);

[yp,k]=max(y)

yp

Gm=

0.6667

Pm=

-21.6345

yp=

1.4994

4.设闭环离散系统结构如图7-23所示,其中G(s)=10/(s.(s+1)),H(s)=1,绘制T=0.01s、1s时离散系统开环传递函数的Bode图和Nyquist图,以及系统的单位阶跃响应曲线。

解:

clc;closeall;clearall;

ts=0.01,ts1=1;

Gk=zpk([],[0,-1],10);

Gz1=c2d(Gk,ts,'zoh');

Gz2=c2d(Gk,ts1,'zoh');

[num1,den1,ts]=tfdata(Gz1,'v');

[num2,den2,ts1]=tfdata(Gz2,'v');

figure

(1)

subplot(1,3,1)

dbode(num1,den1,ts);

grid

subplot(1,3,2)

dnyquist(num1,den1,ts);

subplot(1,3,3)

dstep(num1,den1)

figure

(2)

subplot(1,3,1)

dbode(num2,den2,ts1);

grid

subplot(1,3,2)

dnyquist(num2,den2,ts1);

subplot(1,3,3)

dstep(num2,den2)

T=0.01sT=1s

第九章习题

3.构建图9-63所示的仿真模型。

图中的PID模块为图9-39所示的积分可分离式PID子系统,取kp=5,kd=0.1,ki=5,分别取delta为0.2、1.0时比较系统的单位阶跃响应性能。

解:

%delta=0.2

delta=0.2;

kp=5;

kd=0.1;

ki=5;

%delta=1.0

delta=1.0;

kp=5;

kd=0.1;

ki=5;

第九章补充习题

2、建立下图所示系统的动力学方程,并绘制用于模拟单位阶跃输入作用下系统响应的simulink模型,系统输出y接至示波器,并给出仿真结果,仿真时间为10s。

解:

对如图所示的系统进行受力分析有:

Simulink仿真模型为:

仿真结果略

3、建立下图所示微分方程所对应的simulink模型(u为输入、y为输出),u为单位斜坡输入作用下系统响应的输出y接至示波器,并给出仿真结果,仿真时间为10s。

解:

仿真结果略

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

当前位置:首页 > 人文社科

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

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