控制系统的Matlab仿真与设计课后答案_matlab控制系统与仿真

2020-02-27 其他范文 下载本文

控制系统的Matlab仿真与设计课后答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab控制系统与仿真”。

MATLAB课后习题答案 2.1 x=[15 22 33 94 85 77 60] x(6)x([1 3 5])x(4:end)x(find(x>70))2.3 A=zeros(2,5);

A(:)=-4:5

L=abs(A)>3 islogical(L)

X=A(L)2.4 A=[4,15,-45,10,6;56,0,17,-45,0] find(A>=10&A

';cr='余多项式为

';disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')])2.6 A=[11 12 13;14 15 16;17 18 19];PA=poly(A)

PPA=poly2str(PA,'s')3.1 n=(-10:10)';y=abs(n);plot(n,y,'r.','MarkerSize',20)axis equal grid on xlabel('n')3.2 x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y),grid on;3.3 t=0:pi/50:2*pi;x=8*cos(t);y=4*sqrt(2)*sin(t);z=-4*sqrt(2)*sin(t);plot3(x,y,z,'p');

title('Line in 3-D Space');text(0,0,0,'origin');

xlabel('X'),ylable('Y'),zlable('Z');grid;3.4

theta=0:0.01:2*pi;

rho=sin(2*theta).*cos(2*theta);polar(theta,rho,'k');3.5

[x,y,z]=sphere(20);z1=z;

z1(:,1:4)=NaN;c1=ones(size(z1));surf(3*x,3*y,3*z1,c1);hold on z2=z;

c2=2*ones(size(z2));

c2(:,1:4)=3*ones(size(c2(:,1:4)));surf(1.5*x,1.5*y,1.5*z2,c2);colormap([0,1,0;0.5,0,0;1,0,0]);grid on hold off 第四章

function f=factor(n)if n

f=factor(n-1)*n;end

function[s,p]=fcircle(r)s=pi*r*r;p=2*pi*r;

function k=jcsum1(n)k=0;i=0;while i

function k=jcsum(n)k=0;

for i=0:n k=k+2^i;end

4.1for m=100:999

m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);

if

m==m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m)

end end

4.2[s,p]=fcircle(10)4.3y=0;n=100;for i=1:n

y=y+1/i/i;end y

4.4s=0;for i=1:5

s=s+factor(i);end s

4.5sum=0;i=1;while sum

4.6jcsum(63)jcsum1(63)4.1 for m=100:999

m1=fix(m/100);

m2=rem(fix(m/10),10);

m3=rem(m,10);

if m==m1*m1*m1+m2*m2*m2+m3*m3*m3

disp(m)

end end 4.3 y=0;n=100;

for i=1:n

y=y+1/i/i;end y 4.4 s=0;for i=1:5

s=s+factor(i);end s 4.5

sum=0;i=1;

while sum

sum=sum+i;

i=i+1;end;n=i-2 4.6

i=0;k=0;while i

k=k+2^i;

i=i+1;end k i

i=0;k=0;for i=0:63

k=k+2^i;end i k

第五章

function f=fxyz(u)x=u(1);y=u(2);z=u(3);f=x+y.^2./x/4+z.^2./y+2./z;

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

b=[13,-9,6,0]';x=Ab

5.2[U,fmin]=fminsearch('fxyz',[0.5,0.5,0.5])

5.3X=linspace(0,2*pi,50);Y=sin(X);

P=polyfit(X,Y,3)AX=linspace(0,2*pi,50);Y=sin(X);Y1=polyval(P,X)

plot(X,Y,':O',X,Y1,'-*')

5.4x=0:2.5:10;h=[0:30:60]';

T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];xi=[0:0.5:10];hi=[0:10:60]';

temps=interp2(x,h,T,xi,hi,'cubic');

mesh(xi,hi,temps);

5.1 A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';x=Ab 5.3 X=linspace(0,2*pi,50);Y=sin(X);P=polyfit(X,Y,3)AX=linspace(0,2*pi,50);Y=sin(X);Y1=polyval(P,X)plot(X,Y,':O',X,Y1,'-*')6.1syms x

y=finverse(1/tan(x))6.2syms x y

f=1/(1+x^2);g=sin(y);fg=compose(f,g)6.3syms x

g=(exp(x)+x*sin(x))^(1/2);dg=diff(g)

6.4F=int(int('x*exp(-x*y)','x'),'y')

6.5syms x

F=ztrans(x*exp(-x*10))6.6a=[0 1;-2-3];syms s

inv(s*eye(2)-a);

6.7 f=solve('a*x^2+b*x+c')6.8 f=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')

6.9y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')ezplot(y),grid on

6.10a=maple('simplify(sin(x)^2+cos(x)^2);')

6.11f=maple('laplace(exp(-3*t)*sin(t),t,s);')6.12 syms t x

F=sin(x*t+2*t);L=laplace(F)第七章

function

[sys,x0,str,ts]=ww(t,x,u,flag)%¶¨ÒåÁ¬ÐøÏµÍ³µÄSº¯Êý A=[0,1;-0.4,-0.2];B=[0;0.2];C=[1,0];D=0;

switch flag, case 0,[sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D);case 1,sys=mdlDerivatives(t,x,u,A,B,C,D);case 2,sys=mdlUpdate(t,x,u);case 3,sys=mdlOutputs(t,x,u,A,B,C,D);case 4,sys=mdlGetTimeOfNextVarHit(t,x,u);case 9,sys=mdlTerminate(t,x,u);otherwise

error(['Unhandled flag = ',num2str(flag)]);end

%=============================== function

[sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D)sizes = simsizes;sizes.NumContStates = 2;sizes.NumDiscStates = 0;sizes.NumOutputs = 1;sizes.NumInputs = 1;sizes.DirFeedthrough = 1;sizes.NumSampleTimes = 1;sys = simsizes(sizes);x0 = [0;0];str = [];ts = [0 0];

%=============================== function

sys=mdlDerivatives(t,x,u,A,B,C,D)

sys = A*x+B*u;

%===============================

function sys=mdlUpdate(t,x,u)sys = [];

%=============================== function

sys=mdlOutputs(t,x,u,A,B,C,D)sys = C*x+D*u;

%=============================== function

sys=mdlGetTimeOfNextVarHit(t,x,u)

sampleTime = 1;sys = t + sampleTime;

%===============================

function sys=mdlTerminate(t,x,u)sys = [];

7.1

7.2

7.3

7.4

7.5

7.6

7.7

第八章

8.1num=[5];den=[1,2,2];sys=tf(num,den)8.1.2s = tf('s');

H = [5/(s^2+2*s+2)];H.inputdelay =2

8.1.3h=tf([0.5,0],[1,-0.5,0.5],0.1)

8.2num=2*[1,0.5];den=[1,0.2,1.01];

sys=tf(num,den)

[z,p,k]=tf2zp(num,den);zpk(z,p,k)

[A,B,C,D]=tf2(num,den);(A,B,C,D)

8.3 num=[1,5];den=[1,6,5,1];ts=0.1;

sysc=tf(num,den);sysd=c2d(sysc,ts,'tustin')8.4.0

8.4.1 %¶Ôϵͳ·½¿òͼÿ¸ö»·½Ú½øÐбàºÅ,ÓÐ8¸öͨµÀ,ÁÐдÿ¸öͨµÀ´«µÝº¯Êý r1=1;r2=2;c1=3;c2=4;G1=r1;G2=tf(1,[c1,0]);

G3=1;%ÊÇ·ÖÀëµãºÍ»ãºÏµãµÄÁ¬Ïß,²»Äܺϲ¢,´«º¯Îª1 G4=-1;G5=1/r2;

G6=tf(1,[c2,0]);G7=-1;G8=-1;%½¨Á¢ÎÞÁ¬½ÓµÄ״̬¿Õ¼äÄ£ÐÍ G=append(G1,G2,G3,G4,G5,G6,G7,G8)

%д³öϵͳµÄÁ¬½Ó¾ØÕó

Q=[1 4 0 %ͨµÀ1µÄÊäÈëÊÇͨµÀ4 2 1 7 %ͨµÀ2µÄÊäÈëÊÇͨµÀ1,7 3 2 02 0 5 3 8 6 5 0 7 5 06 0];%¸ººÅÔÚ´«º¯ÖÐÌåÏÖ %ÁгöϵͳµÄ×ܵÄÊäÈëºÍÊä³ö¶ËµÄ±àºÅ

inputs=1;outputs=6;

%Éú³É×éºÏºóϵͳµÄ״̬¿Õ¼äÄ£ÐÍ sys=connect(G,Q,inputs,outputs)

8.4.2r1=1;r2=2;c1=3;c2=4;[A,B,C,D]=linmod('x84');[num,den]=2tf(A,B,C,D);sys=tf(num,den)

8.5A=[1,1,0;0,1,0;0,0,2];B=[0,0;1,0;0,-2];n=size(A)

Tc=ctrb(A,B);if n==rank(Tc)

disp('ϵͳÍêÈ«ÄÜ¿Ø');else

disp('ϵͳ²»ÍêÈ«ÄÜ¿Ø');end 第九章

function [rtab,info]=routh(den)info=[];

vec1=den(1:2:length(den));

nrT=length(vec1);

vec2=den(2:2:length(den)-1);rtab=[vec1;vec2,zeros(1,nrT-length(vec2))];for k=1:length(den)-2, alpha(k)=vec1(1)/vec2(1);

for i=1:length(vec2),a3(i)=rtab(k,i+1)-alpha(k)*rtab(k+1,i+1);

end

if sum(abs(a3))==0 a3=polyder(vec2);

info=[info,'All elements in row ',...int2str(k+2)' are zeros;'];

elseif abs(a3(1))

info=[info,'Replaced first element;'];

end

rtab=[rtab;a3, zeros(1,nrT-length(a3))];vec1=vec2;vec2=a3;end

9.1num=[2,5,1];den=[1,2,3];bode(num,den);grid on;figure;

nyquist(num,den);

9.2num=5*[1,5,6];den=[1,6,10,8];step(num,den);grid on;figure;

impulse(num,den);grid on;9.3kosi=0.7;wn=6;

num=wn^2;den=[1,2*kosi*wn,wn^2];step(num,den);grid on;figure;

impulse(num,den);grid on;9.4den=[1,2,8,12,20,16,16];[rtab,info]=routh(den)a=rtab(:,1)

if all(a>0)

disp('ϵͳÊÇÎȶ¨µÄ');

else

disp('ϵͳÊDz»Îȶ¨µÄ');

end

9.5num=7*[1,5];den=conv([1,0,0],conv([1,10],[1,1]));

[gm,pm,wg,wc]=margin(num,den)

9.1 >> sys=tf([2,5,1],[1,2,3])Transfer function: 2 s^2 + 5 s + 1---------------s^2 + 2 s + 3

>> rlocus(sys)>> nyquist(sys)>> bode(sys)9.2

>> G=tf(conv([5],[1,5,6]),[1,6,10,8]);>> step(G)>> impulse(G)

sys=tf([5,25,30],[1,6,10,8]);>> step(sys)>> impulse(sys)9.4>>

GH=tf(conv([7],[1,5]),conv([1,0,0],conv([1,10],[1,1])));

>> [Gm,Pm,Wcg,Wcp]=margin(GH)Gm =

0 Pm =

-47.2870 Wcg =

0 Wcp = 1.4354 >>

GH=tf(conv([7],[1,5]),conv([1,0,0],conv([1,10],[1,1])));

>> [Gm,Pm,Wcg,Wcp]=margin(GH)GH_close=feedback(GH,1)step(GH_close),grid on Gm =

0 Pm =

-47.2870 Wcg =

0 Wcp =

1.4354 第十章

function s=bpts2s(bp,ts,delta)kosi=sqrt(1-1./(1+((1./pi).*log(1./bp)).^2));

wn=-log(delta.*sqrt(1-kosi.^2))/(kosi.*ts);

s=-kosi.*wn+j.*wn.*sqrt(1-kosi.^2);

function

[ngc,dgc]=fa_lead(ng0,dg0,Pm,wc,w)

ngv=polyval(ng0,j*wc);dgv=polyval(dg0,j*wc);g=ngv/dgv;

thetag=angle(g);mg=abs(g);thetar=Pm*pi/180;

tz=(1+mg*cos(thetar-thetag))/(-wc*mg*sin(thetar-thetag));tp=(cos(thetar-thetag)+mg)/(wc*sin(thetar-thetag));ngc=[tz,1];dgc=[tp,1];

function

[ngc,dgc]=fg_lag_pm(ng0,dg0,w,Pm)

[mu,pu]=bode(ng0,dg0,w);wgc=spline(pu,w,Pm+5-180);%²åÖµÇóÈ¡Âú×ãÏà½ÇÔ£¶ÈµÄ½ÇƵÂÊ×÷ΪÆÚÍûµÄ¼ôÇÐÆµÂÊ

ngv=polyval(ng0,j*wgc);dgv=polyval(dg0,j*wgc);g=ngv/dgv;

alph=abs(1/g);T=10/alph*wgc, ngc=[alph*T,1];dgc=[T,1];

function

[ngc,dgc]=fg_lag_wc(ng0,dg0,w,wc)

ngv=polyval(ng0,j*wc);dgv=polyval(dg0,j*wc);g=ngv/dgv;

alph=abs(1/g);T=10/(alph*wc);ngc=[alph*T,1];dgc=[T,1];

function

[ngc,dgc]=fg_lead_pd(ng0,dg0,wc)ngv=polyval(ng0,j*wc);dgv=polyval(dg0,j*wc);g=ngv/dgv;mg0=abs(g);

t=sqrt(((1/mg0)^2-1)/(wc^2));%·ùÖµÏà¼ÓΪÁã

ngc=[t,1];dgc=[1];%Gc(s)=1+Ts

function

[ngc,dgc]=fg_lead_pm(ng0,dg0,Pm,w)

[mu,pu]=bode(ng0,dg0,w);%¼ÆËãÔ-ϵͳµÄ¶ÔÊýƵÂÊÏìÓ¦Êý¾Ý

[gm,pm,wcg,wcp]=margin(mu,pu,w);%ÇóÈ¡Ô-ϵͳµÄÏà½ÇÔ£¶ÈºÍ¼ôÇÐÆµÂÊ

alf=ceil(Pm-pm+5);%¼ÆËã¿ØÖÆÆ÷ÌṩµÄ×î´ó³¬Ç°½Ç¶È£¬

phi=(alf)*pi/180;%½«×î´ó³¬Ç°½Çת»»Îª»¡¶Èµ¥Î» a=(1+sin(phi))/(1-sin(phi));%¼ÆËãaÖµ

dbmu=20*log10(mu);%ϵͳµÄ¶ÔÊý·ùÖµ

mm=-10*log10(a);%wm´¦µÄ¿ØÖÆÆ÷¶ÔÊý·ùÖµ wgc=spline(dbmu,w,mm);%²îÖµÇóÈ¡wm£¬ÈÏΪwm£½wc T=1/(wgc*sqrt(a));%¼ÆËãT

ngc=[a*T,1];dgc=[T,1];

function

[ngc,dgc]=fg_lead_pm_wc(ng0,dg0,Pm,wc,w)

[mu,pu]=bode(ng0,dg0,w);ngv=polyval(ng0,j*wc);dgv=polyval(dg0,j*wc);

g=ngv/dgv;%ÇóÔ-ϵͳÔÚÆÚÍûµÄ¼ôÇÐÆµÂÊ´¦µÄƵÂÊÏìÓ¦Êý¾ÝG0(jwc)

theta=180*angle(g)/pi;%Ô-ϵͳÔÚÆÚÍûµÄ¼ôÇÐÆµÂÊ´¦µÄÏà½ÇÔ£¶È£¬µ¥Î»Îª¶È

alf=ceil(Pm-(theta+180)+5);%

×î´ó³¬Ç°½Ç phi=(alf)*pi/180;

a=(1+sin(phi))/(1-sin(phi));dbmu=20*log10(mu);mm=-10*log10(a);wgc=spline(dbmu,w,mm);T=1/(wgc*sqrt(a));

KK=128;s1=-2+i*2*sqrt(3);a=2 ng0=[10];dg0=conv([1,0],conv([1,2],[1,8]));g0=tf(ng0,dg0);

[ngc,dgc,k]=rg_lag(ng0,dg0,KK,s1,a);

gc=tf(ngc,dgc)function s=kw2s(kosi,wn)s=-kosi.*wn+j*wn.*sqrt(1-kosi.^2);

10.1ng0=[1];dg0=10000*[1 0-1.1772];

g0=tf(ng0,dg0);%Âú×㿪»·ÔöÒæµÄΪУÕýϵͳµÄ´«µÝº¯Êý

s=kw2s(0.7,0.5)%ÆÚÍûµÄ±Õ»·Ö÷µ¼¼«µã

ngc=rg_lead(ng0,dg0,s);gc=tf(ngc,1)g0c=tf(g0*gc);rlocus(g0,g0c);

b1=feedback(g0,1);%δУÕýϵͳµÄ±Õ»·´«µÝº¯Êý

b2=feedback(g0c,1);%УÕýºóϵͳµÄ±Õ»·´«µÝº¯Êý

figure,step(b1,'r--',b2,'b');grid on %»æÖÆÐ£ÕýǰºóϵͳµÄµ¥Î»½×Ô¾

KK=20;s1=-2+i*sqrt(6);a=1 ng0=[10];dg0=conv([1,0],[1,4]);g0=tf(ng0,dg0);

[ngc,dgc,k]=rg_lag(ng0,dg0,KK,s1,a);gc=tf(ngc,dgc)g0c=tf(KK*g0*gc);

b1=feedback(k*g0,1);b2=feedback(g0c,1);step(b1,'r--',b2,'b');grid on

g0c=tf(KK*g0*gc);rlocus(g0,g0c);

b1=feedback(k*g0,1);

b2=feedback(g0c,1);figure,step(b1,'r--',b2,'b');grid on

ng0=[1];dg0=conv([1,0,0],[1,5]);g0=tf(ng0,dg0);w=logspace(-3,3);KK=1;Pm=50;

[ngc,dgc]=lead4(ng0,dg0,KK,Pm,w);

gc=tf(ngc,dgc);g0c=tf(KK*g0*gc);bode(KK*g0,w);hold

on,bode(g0c,w);grid on,hold off [gm,pm,wcg,wcp]=margin(g0c)Kg=20*log10(gm)g1=feedback(g0c,1);bode(g1),grid on, [mag,phase,w]=bode(g1);a=find(mag

b=find(mag==max(mag))wr=w(b)

KK=40;Pm=50;ng0= KK *[1];

dg0=conv([1,0],conv([1,1],[1,4]));

g0=tf(ng0,dg0);

w=logspace(-2,4);

[ngc,dgc]=fg_lead_pm(ng0,dg0,Pm, w)gc=tf(ngc,dgc),g0c=tf(g0*gc);

b1=feedback(g0,1);b2=feedback(g0c,1);

step(b1,'r--', b2,'b');grid on figure, bode(g0,'r--',g0c,'b',w), grid on,[gm,pm,wcg,wcp]=margin(g0c), Km=20*log10(gm)

KK=200;bp=0.3;ts=0.7;delta=0.05;

ng0=[1];dg0=conv([1,0],conv([0.1,1],conv([0.02 1],conv([0.01,1],[0.005 1]))));g0=tf(ng0,dg0);

w=logspace(-4,3);t=[0:0.1:3];[mag,phase]=bode(KK*g0,w);[gm0,pm0,wg0,wc0]=margin(mag,phase,w),gm0=20*log10(gm0)%gm0 =-15.6769

%2¡¢È·¶¨ÆÚÍûµÄ¿ª»·´«µÝº¯Êý mr=0.6+2.5*bp;

wc=ceil((2+1.5*(mr-1)+2.5*(mr-1)^2)*pi/ts), h=(mr+1)/(mr-1)w1=2*wc/(h+1), w2=h*w1 w1=wc/10;w2=25;ng1=[1/w1,1];dg1=conv([1/w2,1],conv([1,0],[1,0]));

g1=tf(ng1,dg1);

g=polyval(ng1,j*wc)/polyval(dg1,j*wc);K=abs(1/g);%¼ôÇÐÆµÂÊ´¦·ùֵΪ1£¬ÇóKÖµ g1=tf(K*g1)

%3¡¢È·¶¨·´À¡»·½Ú´«µÝº¯Êý h=tf(dg1,ng1);Kh=1/K;h=tf(Kh*h)%ÆÚÍûƵÂÊÌØÐԵĵ¹ÌØÐÔ

%4¡¢ÑéËãÐÔÄÜÖ¸±ê

g2=feedback(KK*g0,h);%УÕýºó£¬ÏµÍ³µÄ¿ª»·´«µÝº¯Êý b1=feedback(KK*g0,1);b2=feedback(g2,1);

bode(KK*g0,'r--',g2,'b',h,'g',w);grid on

figure,step(b1, 'r--',b2, 'b',t);grid on,[pos,tr,ts,tp]=stepchar(b2,delta)

function

[ngc,dgc]=lag2(ng0,dg0,w,KK,Pm)[mu,pu]=bode(KK*ng0,dg0,w);wgc=spline(pu,w,Pm+5-180), ngv=polyval(KK*ng0,j*wgc);dgv=polyval(dg0,j*wgc);g=ngv/dgv;

alph=abs(1/g), T=10/alph*wgc, ngc=[alph*T,1];dgc=[T,1];

function

[ngc,dgc]=lead4(ng0,dg0,KK,Pm,w)[mu,pu]=bode(KK*ng0,dg0,w);[gm,pm,wcg,wcp]=margin(mu,pu,w);alf=ceil(Pm-pm+5);phi=(alf)*pi/180;

a=(1+sin(phi))/(1-sin(phi)), dbmu=20*log10(mu);mm=-10*log10(a);

wgc=spline(dbmu,w,mm), T=1/(wgc*sqrt(a)),ngc=[a*T,1];dgc=[T,1];

function

[ngc,dgc]=ra_lead(ng0,dg0,s1)ngv=polyval(ng0,s1);dgv=polyval(dg0,s1);g=ngv/dgv;thetag=angle(g);mg=abs(g);thetas=angle(s1);ms=abs(s1);

tz=(sin(thetas)-mg*sin(thetag-thetas))/(mg*ms*sin(thetag));tp=-(mg*sin(thetas)+sin(thetag+thetas))/(ms*sin(thetag));ngc=[tz,1];dgc=[tp,1];

function

[ngc,dgc,k]=rg_lag(ng0,dg0,KK,s1,a)

ngv=polyval(ng0,s1);dgv=polyval(dg0,s1);g=dgv/ngv;

k=abs(g);%ÆÚÍûÖ÷µ¼¼«µã´¦µÄ¸ù¹ì¼£ÔöÒæ beta=k/KK;

[kosi1,wn1]=s2kw(s1);

zc=-wn1*sin(a*pi/180)/sin(pi-atan(sqrt(1-kosi1^2)/kosi1)-(a*pi/180));%ÀûÓÃÕýÏÒ¶¨Àí pc=beta*zc;

ngc=beta*[1,-zc];dgc=[1,-pc];

function

varargout=rg_lead(ng0,dg0,s1)if nargout==1

ngv=polyval(ng0,s1);dgv=polyval(dg0,s1);g=ngv/dgv;

thetal=pi-angle(g);

zc=real(s1)-imag(s1)/tan(thetal);

t=-1/zc;

varargout{1}=[t,1];elseif nargout==2 ngv=polyval(ng0,s1);dgv=polyval(dg0,s1);

g=ngv/dgv;theta=angle(g);phi=angle(s1);

if theta>0 phi_c=pi-theta;

end

if theta

end

theta_z=(phi+phi_c)/2;theta_p=(phi-phi_c)/2;

z_c=real(s1)-imag(s1)/tan(theta_z);

p_c=real(s1)-imag(s1)/tan(theta_p);

nk=[1-z_c];varargout{2}=[1-p_c];kc=abs(p_c/z_c);

if theta

end

varargout{1}=kc*nk;else

error('Êä³ö±äÁ¿ÊýÄ¿²»ÕýÈ·£¡');end

function [bp,ts]=s2bpts(s,delta)[kosi,wn]=s2kw(s);

bp=exp(-kosi.*pi./sqrt(1-kosi.^2));

ts=-1./(kosi.*wn)*log(delta.*sqrt(1-kosi.^2));

function [kosi,wn]=s2kw(s)kosi=1./sqrt(1+(imag(s)/real(s)).^2);

wn=-real(s)./kosi;

%Èç¹ûwnΪ¸ºÖµ£¬ÔòwnÈ¡Õý£¬²¢ÇÒkosiÈ¡·´ iwn=(wn

function

[pos,tr,ts,tp]=stepchar(g0,delta)

[y,t]=step(g0);[mp,ind]=max(y);dimt=length(t);y=y(dimt);

pos=100*(mp-y)/y;tp=t(ind);for i=1:dimt

if y(i)>=1 tr=t(i);

break;

end end;

for i=1:length(y)

if

y(i)=(1+delta)*y ts=t(i);

end end

第十一章

11.1a=[0 1 0;0 0 1;-1-5-6];b=[0 0 1]';

p=[-2+4j;-2-4j;-10];K=acker(a,b,p)eig(a-b*K)

11.2a=[0 1 0;0 0 1;-6-11-6];b=[1,0,0]';

p=[-2+2*sqrt(3)*j;-2-2*sqrt(3)*j;-10];

K=acker(a,b,p)eig(a-b*K)

11.6A=[-1 0 0;0-2-3;0 0-3];B=[1 0;2 3;-3-3];C=[1 0 0;1 1 1 ];

[G,K,L]=decoupling(A,B,C)

11.8A=[0 20.6;1 0];b=[0 1]';c=[0 1];d=0;

G=(A,b,c,d);

Q=diag([1,0,0,0,0]);R=1;

p=[-1.8+2.4j;-1.8-2.4j];[k,P]=lqr(A,b,Q,R);l=(acker(A',c',p))' Gc=-reg(G,k,l);zpk(Gc), eig(Gc.a), t=0:0.05:2;

G_1=feedback(G*Gc,1);a1=eig(G_1.a), y_1=step(G_1,t);

第十二章

function

[t,xx]=diffstate(G,H,x0,u0,N,T)xk=x0;u=u0;t=0 for k=1:N xk=G*xk+H*u;x(:,k)=xk;t=[t,k*T];end;xx=[x0,x];

12.1

function sys=M601(t,x)u=1;

sys=[x(2);x(3);-800*x(1)-80*x(2)-24*x(3)+u];

function

[t,y]=ode4(A,B,C,D,x0,h,r,v,t0,tf)

Ab=A-B*v*C;B=B;C=C;x=x0';y=0;t=t0;

N=round((tf-t0)/h);for i=1:N k1=Ab*x+B*r;

k2=Ab*(x+h*k1/2)+B*r;k3=Ab*(x+h*k2/2)+B*r;k4=Ab*(x+h*k3)+B*r;x=x+h*(k1+2*k2+2*k3+k4)/6;y=[y,C*x];t=[t,t(i)+h];end

12.1

tspan=[0,10];x0=[0,0,0]';

[t,y]=ode45('M601',tspan,x0);y1=800*y(:,1);plot(t,y1);

12.2 num=10;den=conv([1,0],conv([1,2],[1,3]));

[A,B,C,D]=tf2(num,den);x0=[0,0,0];v=1;t0=0;tf=10;h=0.01;r=1;

[t,y]=ode4(A,B,C,D,x0,h,r,v,t0,tf);

plot(t,y),grid

12.3 12.4 g=[-2.8-1.4 0 0;1.4 0 0 0;-1.8-0.3-1.4-0.6;0 0 0.6 0];h=[1 0 1 0]';c=[0 0 0 1];d=0;

x0=[0 0 0 0]';u=1;N=30;T=0.1;

[t,xx]=diffstate(g,h,x0,u,N,T);plot(t,xx);y=c*xx;figure stairs(t,y)grid on

12.6 第十四章

14.1

clear all;load optcar.mat;

t=signals(1,:);p=signals(2,:);v=signals(3,:);a=signals(4,:);theta=signals(5,:);

subplot(4,1,1);plot(t,p);grid on;ylabel('λÖÃ(m)');subplot(4,1,2);plot(t,v);grid on;ylabel('ËÙ¶È(m/s)');subplot(4,1,3);plot(t,a);grid on;ylabel('¼ÓËÙ¶È(m/s2)');subplot(4,1,4);plot(t,theta);grid on;ylabel('½Ç¶È(¶È)');

14.1

clear all load

car.mat %½«µ¼Èëµ½car.matÖеķÂÕæÊµÑéÊý¾Ý¶Á³ö t=signals(1,:);x=signals(2,:);theta=signals(3,:);x1=signals(4,:);theta1=signals(5,:);

plot(t,x,t,x1);ylabel('С³µÎ»ÖÃ(m)'),grid on;%

»æÖÆ¿ØÖÆÁ¦×÷ÓÃϽüËÆÄ£Ðͺ;«È·Ä£ÐÍxµÄµ¥Î»½×Ô¾ÏìÓ¦ÇúÏß figure % »æÖÆ¿ØÖÆÁ¦×÷ÓÃϽüËÆÄ£Ðͺ;«È·Ä£

ÐÍthetaµÄµ¥Î»½×Ô¾ÏìÓ¦ÇúÏß plot(t,theta,t,theta1);ylabel('°Ú½ÇÖµ(rad)'),grid on;

《控制系统的Matlab仿真与设计课后答案.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
控制系统的Matlab仿真与设计课后答案
点击下载文档
相关专题 matlab控制系统与仿真 设计 控制系统 课后 matlab控制系统与仿真 设计 控制系统 课后
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文