MATLAB仿真课后习题.docx
- 文档编号:5795085
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:27
- 大小:362.61KB
MATLAB仿真课后习题.docx
《MATLAB仿真课后习题.docx》由会员分享,可在线阅读,更多相关《MATLAB仿真课后习题.docx(27页珍藏版)》请在冰豆网上搜索。
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。 解: 仿真结果略
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 仿真 课后 习题