MATLAB仿真 課后習(xí)題
word
第一章習(xí)題
3.請指出以下的變量名〔函數(shù)名、M文件名〕中,哪些是合法的?
Abc 2004x lil-1 wu_2004 a&b qst.u _xyz
解:合法的變量名有:Abc wu_2004
4.指令窗操作
〔1〕求[12+2×〔7-4〕]÷32的運(yùn)算結(jié)果
解:>> [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 =
1 2 3
4 5 6
7 8 9〔3〕輸入以下指令,觀察運(yùn)算結(jié)果;
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〕依次鍵入以下字符并運(yùn)行:y1=2*sin(0.3*pi)/(1+sqrt(5))
解:>>y1=2*sin(0.3*pi)/(1+sqrt(5))
y1 =
(2)通過反復(fù)按鍵盤的箭頭鍵,實(shí)現(xiàn)指令回調(diào)和編輯,進(jìn)展新的計(jì)算;y2=2*cos(0.3*pi)/(1+sqrt(5))
解:>>y2=2*cos(0.3*pi)/(1+sqrt(5))
y2 =
11.編寫題4中〔3〕的M腳本文件,并運(yùn)行之。
解:
第二章習(xí)題
1.在指令窗中鍵入x=1:0.2:2和y=2:0.2:1,觀察所生成的數(shù)組。
解:>> x=1:0.2:2
x =
>> y=2:0.2:1
y =
Empty matrix: 1-by-0
2.要求在[0,2π]上產(chǎn)生50個(gè)等距采樣數(shù)據(jù)的一維數(shù)組,試用兩種不同的指令實(shí)現(xiàn)。
解: y1=0:2*pi/49:2*pi
y2=linspace(0,2*pi,50)
3.計(jì)算e-2tsint,其中t為[0,2π]上生成的10個(gè)等距采樣的數(shù)組。
解:>> t=linspace(0,2*pi,10);
x=exp(-2*t).*sin(t)
x =
4.A= , B=,計(jì)算矩陣A、B乘積和點(diǎn)乘.
解:>> A=[1,2;3,4];
B=[5,6;7,8];
x=A*B
x =
19 22
43 50
>> x=A.*B
x =
5 12
21 32
5.A=,B=,計(jì)算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 =
0 0 1 1
1 1 0 0
a2 =
1 1 1 1
1 1 1 1
a3 =
1 0 0 0
0 0 0 1
a4 =
0 0 0 0
1 0 0 0
a5 =
0 1 0 1
0 0 1 0
7.將題5中的A陣用串轉(zhuǎn)換函數(shù)轉(zhuǎn)換為串B,再size指令查看A、B的結(jié)構(gòu),有何不同?
解:>> A=[0,2,3,4;1,3,5,0]
B=num2str(A)
size(A)
size(B)
A =
0 2 3 4
1 3 5 0
B =
0 2 3 4
1 3 5 0
ans =
2 4
ans =
2 10
第三章習(xí)題
1.系統(tǒng)的響應(yīng)函數(shù)為,其中 ,要求用不同線型或顏色,在同一X圖上繪制ε取值分別為、、、時(shí),系統(tǒng)在t∈[0,18] 區(qū)間內(nèi)的響應(yīng)曲線,并要求用和對他們相應(yīng)的兩條曲線進(jìn)展文字標(biāo)志。
解:
clc
close all
clear all
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,yX圍自定)。
解:
clc;close all;clear all;
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');box on;
subplot(1,3,2),surf(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z');box on;
subplot(1,3,3),mesh(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z');box on;
3.對向量t進(jìn)展以下運(yùn)算可以構(gòu)成三個(gè)坐標(biāo)的值向量:x=sin(t),y=cos(t),z=t.利用指令plot3,并選用綠色的實(shí)線繪制相應(yīng)的三維曲線.
解:
1:2)*pi;
x=sin(t);
y=cos(t);
z=t;
plot3(x,y,z,'b-');box on
第四章習(xí)題
1.請分別用for和while循環(huán)語句計(jì)算K=的程序,再寫出一種防止循環(huán)的計(jì)算程序。(提示:可考慮利用MATLAB的sum(X,n)函數(shù),實(shí)現(xiàn)沿?cái)?shù)組X的第n維求和。)
解:
1〕K=0;
for i=0:63;
K=K+2^i;
end
K
K =1.8447e+019
2〕i=0;K=0;
while i<=63;
K=K+2^i;
i=i+1;
end;
K
K =1.8447e+019
3〕i=0;
X=0:63;
for i=0:63;
X(i+1)=2^i;
end
sum(X,2)
ans =1.8447e+019
第五章習(xí)題
1.將如下系統(tǒng)的傳遞函數(shù)模型用MATLAB語言表達(dá)出來。
(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中的系統(tǒng)模型的等效傳遞函數(shù)模型和零極點(diǎn)模型。
解:
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)
Transfer function:
20 s^2 - 83 s + 138
---------------------
s^3 - 2 s^2 - 5 s + 6
Zero/pole/gain:
20 (s^2 - 4.15s + 6.9)
-----------------------
(s-3) (s-1) (s+2)
5.系統(tǒng)的動(dòng)力學(xué)方程如下,試用MATLAB語言寫出它們的傳遞函數(shù)。
(1)
解:
num=[1,2,0];
den=[1,15,50,500];
sys=tf(num,den)
Transfer function:
s^2 + 2 s
-------------------------
s^3 + 15 s^2 + 50 s + 500
(2)
解:
num=[4,0];
den=[1,3,6,4];
sys=tf(num,den)
Transfer function:
4 s
---------------------
s^3 + 3 s^2 + 6 s + 4
6.試用MATLAB語言表示圖5-13所示系統(tǒng)。當(dāng)分別以y=x2和f為系統(tǒng)輸出、輸入時(shí)的傳遞函數(shù)模型和狀態(tài)空間模型(圖中k=7N/m,c1-1, c2-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)
Transfer function:
3.5 s^2 + 0.5 s + 7
--------------------------------------
19.6 s^4 + 5.25 s^3 + 39.3 s^2 + 4.9 s
m1,m2的位移x1,x2對輸入f的傳遞函數(shù)X2(s)/F(s)和X1(s)/F(s),其中m1=12kg, m2=38kg,k=1000N/m, c-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)
Transfer function:
0.1 s + 1000
---------------------------
456 s^4 + 5 s^3 + 50000 s^2
Transfer function:
12 s^2 + 0.1 s + 1000
---------------------------
456 s^4 + 5 s^3 + 50000 s^2
補(bǔ)充題
求圖示傳遞函數(shù)
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)
結(jié)果
s^5 + 10 s^4 + 39 s^3 + 74 s^2 + 66 s + 20
-----------------------------------------------------------------
s^7 + 14 s^6 + 81 s^5 + 262 s^4 + 530 s^3 + 684 s^2 + 538 s + 212
第六章習(xí)題
2.將例6-2中的微分方程改寫為以下形式:
求μ分別為1、2時(shí),在時(shí)間區(qū)間t=[0,20]微分方程的解。
解:
M函數(shù)文件
function dx=wffc(t,x,flag,ps)
dx=zeros(2,1);
dx(1)=x(2);
dx(2)=ps*(1-x(1)^2)*x(2)-x(1);
調(diào)用程序
clc;close all;clear all;
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所示反應(yīng)系統(tǒng)進(jìn)展單位階躍響應(yīng)和方波響應(yīng)(方波周期為30s)仿真。要求:
(1)利用MATLAB模型連接函數(shù)求出系統(tǒng)閉環(huán)傳遞函數(shù)。
(2)利用step函數(shù)求單位階躍響應(yīng)。
(3)利用gensig函數(shù)產(chǎn)生方波信號(hào),利用lsim函數(shù)求方波響應(yīng)。
解:
clc;close all;clear all;
% (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)
;
(1)繪制系統(tǒng)階躍響應(yīng)曲線。
(2)繪出離散化系統(tǒng)階躍響應(yīng)曲線,采樣周期Ts=0.3s。
解:
clc;close all;clear all;
% (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、二階微分方程,其初始條件為,,求在時(shí)間X圍t=[0 5]內(nèi)該微分方程的解。
M函數(shù)為:
function dy=vdp(t,y)
dy=zeros(2,1);
dy(1)= y(2);
dy(2)= 4*y(2)-(y(1)^2)*y(2)+3*y(1);
調(diào)用函數(shù)為:
[T,Y]=ode45('vdp',[0 5],[0,1]);
plot(T,Y(:,1),'r-',T,Y(:,2),'b:')
2、系統(tǒng)模型為,計(jì)算系統(tǒng)在周期10s的方波信號(hào)作用下5個(gè)周期內(nèi)的時(shí)間響應(yīng),并在同一圖形窗口中繪制輸入信號(hào)和時(shí)間響應(yīng)曲線。
sys=tf([1,2],[1,0,2,7]);
[u,t]=gensig('square',10,50); %產(chǎn)生方波信號(hào)數(shù)據(jù)
lsim(sys,'r',u,t) , hold on %產(chǎn)生方波響應(yīng)并繪曲線
plot(t,u,'-.') %在同一坐標(biāo)系繪方波波形
hold off
第七章習(xí)題
1.繪制如下各單位反應(yīng)系統(tǒng)開環(huán)傳遞函數(shù)的Bode圖和Nyquist圖,并根據(jù)其穩(wěn)定裕度判斷系統(tǒng)的穩(wěn)定性。
(1)
解:
clc;clear all;close all;
% (1)
Gk=zpk([],[0,-0.5,-1/3],5/3);
subplot(1,2,1)
margin(Gk)
grid on
subplot(1,2,2)
nyquist(Gk)
由上圖的穩(wěn)定裕度知系統(tǒng)臨界穩(wěn)定。
(2)
解:
clc;clear all;close all;
% (2)
Gk=zpk([],[0,-1,-0.1],1);
subplot(1,2,1)
margin(Gk)
grid on
subplot(1,2,2)
nyquist(Gk)
由上圖的穩(wěn)定裕度知系統(tǒng)不穩(wěn)定。
(3)
解:
clc;clear all;close all;
% (3)
Gk=zpk([],[0,0,-10,-5],500);
subplot(1,2,1)
margin(Gk)
grid on
subplot(1,2,2)
nyquist(Gk)
由上圖的穩(wěn)定裕度知系統(tǒng)不穩(wěn)定。
(4)
解:
clc;clear all;close all;
% (4)
Gk=zpk([],[0,0,-10,-0.1],2);
subplot(1,2,1)
margin(Gk)
grid on
subplot(1,2,2)
nyquist(Gk)
由上圖的穩(wěn)定裕度知系統(tǒng)不穩(wěn)定。
,其中無阻尼固有頻率wn=90rad/s,阻尼比ξ=0.2,試確定使系統(tǒng)穩(wěn)定的K的X圍。
解:
方法1
g=tf(1,[1/90^2 0.4/90 1 0]);%系統(tǒng)開環(huán)模型
w=logspace(0,3,1000); %生成頻率向量
bode(g,w)
[mag,phase,w]=bode(g,w); %產(chǎn)生幅值〔非分貝〕和相位向量
mag1=reshape(mag,1000,1); %重構(gòu)幅值向量〔1000*1〕
phase1=reshape(phase,1000,1);%重構(gòu)相頻向量〔1000*1〕
wc=interp1(phase1,w,-180) %插值求-180度所對應(yīng)的頻率——wc
gk=interp1(w,mag1,wc) %插值求wc所對應(yīng)的增益
gkk=1/gk %該增益的倒數(shù)即為可增加的最大增益
wc =
gk =
gkk =
方法2
wc=0;wg=0.01;k=1;
while wc<wg
sys=tf(k,[1/(90*90),2*0.2/90,1,0]);
[gm,pn,wg,wc]=margin(sys);
k=k+0.1;
end
ans =
方法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.設(shè)系統(tǒng)結(jié)構(gòu)如圖7-22所示,試用LTI Viewer分析系統(tǒng)的穩(wěn)定性,并求出系統(tǒng)的穩(wěn)定裕度與單位階躍響應(yīng)峰值。
clc;close all;clear all;
G11=0.5;
G12=zpk([0],[-0.5],1);
G1=G11-G12;
G2=tf(1,[1 2 0]);
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 =
Pm =
yp =
4. 設(shè)閉環(huán)離散系統(tǒng)結(jié)構(gòu)如圖7-23所示,其中G(s)=10/(s.(s+1)),H(s)=1,繪制T=0.01s、1s時(shí)離散系統(tǒng)開環(huán)傳遞函數(shù)的Bode圖和Nyquist圖,以與系統(tǒng)的單位階躍響應(yīng)曲線。
解:
clc;close all;clear all;
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.01s T=1s
第九章習(xí)題
3.構(gòu)建圖9-63所示的仿真模型。圖中的PID模塊為圖9-39所示的積分可別離式PID子系統(tǒng),取kp=5,kd=0.1,ki=5,分別取delta為0.2、1.0時(shí)比擬系統(tǒng)的單位階躍響應(yīng)性能。
解:
;
kp=5;
kd=0.1;
ki=5;
% delta=
delta=1.0;
kp=5;
kd=0.1;
ki=5;
第九章補(bǔ)充習(xí)題
2、建立如下圖所示系統(tǒng)的動(dòng)力學(xué)方程,并繪制用于模擬單位階躍輸入作用下系統(tǒng)響應(yīng)的simulink模型,系統(tǒng)輸出y接至示波器,并給出仿真結(jié)果,仿真時(shí)間為10s。
解:
對如下列圖的系統(tǒng)進(jìn)展受力分析有:
Simulink仿真模型為:
仿真結(jié)果略
3、建立如下圖所示微分方程所對應(yīng)的simulink模型(u為輸入、y為輸出), u為單位斜坡輸入作用下系統(tǒng)響應(yīng)的輸出y接至示波器,并給出仿真結(jié)果,仿真時(shí)間為10s。
解:
仿真結(jié)果略
23 / 23