控制系统的MATLAB仿真与设计课后答案.docx
- 文档编号:19278037
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:14
- 大小:18.33KB
控制系统的MATLAB仿真与设计课后答案.docx
《控制系统的MATLAB仿真与设计课后答案.docx》由会员分享,可在线阅读,更多相关《控制系统的MATLAB仿真与设计课后答案.docx(14页珍藏版)》请在冰豆网上搜索。
控制系统的MATLAB仿真与设计课后答案
第二章
1>>x=[15223394857760]
>>x(6)
>>x([135])
>>x(4:
end)
>>x(find(x>70))
2>>T=[1-23-42-3];
>>n=length(T);
>>TT=T';
>>fork=n-1:
-1:
0
>>B(:
n-k)=TT.%
>>end
>>B
>>test=vander(T)
3>>A=zeros(2,5);
>>A(:
)=-4:
5
>>L=abs(A)>3
>>islogical(L)
>>X=A(L)
4>>A=[4,15,-45,10,6;56,0,17,-45,0]
>>find(A>=10&A<=20)
5>>p1=conv([1,0,2],conv([1,4],[1,1]));
>>p2=[1011];
>>[q,r]=deconv(p1,p2);
>>cq='商多项式为';cr='余多项式为';
's')])
>>disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,
6>>A=[111213;141516;171819];
>>PA=poly(A)
>>PPA=poly2str(PA,'s')
第三章
1>>n=(-10:
10)';
>>y=abs(n);
>>plot(n,y,'r.','MarkerSize',20)
>>axisequal
>>gridon
>>xlabel('n')2>>x=0:
pi/100:
2*pi;
>>y=2*exp(-0.5*x).*sin(2*pi*x);>>plot(x,y),gridon;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('Linein3-DSpace');
>>text(0,0,0,'origin');
>>xlabel('X'),ylable('Y'),zlable('Z');grid;
4>>theta=0:
0.01:
2*pi;
>>rho=sin(2*theta).*cos(2*theta);
>>polar(theta,rho,'k');
5>>[x,y,z]=sphere(20);
>>z1=z;
>>z1(:
1:
4)=NaN;
>>c1=ones(size(z1));
>>surf(3*x,3*y,3*z1,c1);
>>holdon
>>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]);
>>gridon
>>holdoff
第四章
1>>form=100:
999
m1=fix(m/100);
m2=rem(fix(m/10),10);
m3=rem(m,10);
ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)end
end
2M文件:
function[s,p]=fcircle(r)
s=pi*r*r;
p=2*pi*r;主程序:
[s,p]=fcircle(10)3>>y=0;n=100;
fori=1:
n
y=y+1/i/i;
end
>>y
4M文件:
functionf=factor(n)
ifn<=1
f=1;
else
f=factor(n-1)*n;
end主程序:
>>s=0;
fori=1:
5
s=s+factor(i);
end
>>s
5>>sum=0;i=1;
whilesum<2000
sum=sum+i;
i=i+1;
end;
>>n=i-2
6for循环M文件:
functionk=jcsum(n)
k=0;
fori=0:
n
k=k+2Ai;
end主程序:
>>jcsum(63)
While循环M文件:
functionk=jcsum1(n)
k=0;i=0;
whilei<=n
k=k+2Ai;
i=i+1;
end主程序:
>>jcsum1(63)第五章1>>A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];>>b=[13,-9,6,0]';
>>x=A\b
2M文件:
functionf=fxyz(u)
x=u
(1);y=u
(2);z=u(3);
f=x+y42./x/4+z42./y+2./z;
主程序:
[U,fmin]=fminsearch('fxyz',[0.5,0.5,0.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,'-*')
4>>x=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);
第六章
1>>symsx
>>y=finverse(1/tan(x))
2>>symsxy
>>f=1/(1+xA2);g=sin(y);
>>fg=compose(f,g)
3>>symsx
>>g=(exp(x)+x*sin(x))A(1/2);
>>dg=diff(g)
4>>F=int(int('x*exp(-x*y)','x'),'y')
5>>symsx
>>F=ztrans(x*exp(-x*10))
6>>a=[01;-2-3];
>>symss
>>inv(s*eye
(2)-a);
7>>f=solve('a*xA2+b*x+c')
8>>f=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')
9>>y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')
>>ezplot(y),gridon10>>a=maple('simplify(sin(x)A2+cos(x)A2);')
11>>f=maple('laplace(exp(-3*t)*sin(t),t,s);')
12>>symstx
>>F=sin(x*t+2*t);>>L=laplace(F)第七章
1
第八章
1-1>>h=tf([5,0],[1,2,2])
1-2>>s=tf('s');
>>H=[5/(sH+2*s+2)];
>>H.inputdelay=2
1-3>>h=tf([0.5,0],[1,-0.5,0.5],0.1)
2>>num=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]=tf2ss(num,den);
>>ss(A,B,C,D)
3>>num=[1,5];den=[1,6,5,1];ts=0.1;>>sysc=tf(num,den);
>>sysd=c2d(sysc,ts,'tustin')
4
>>r1=1;r2=2;c1=3;c2=4;
>>[A,B,C,D]=linmod('x84');
>>[num,den]=ss2tf(A,B,C,D);
>>sys=tf(num,den)
5>>A=[1,1,0;0,1,0;0,0,2];B=[0,0;1,0;0,-2];
>>n=size(A)
>>Tc=ctrb(A,B);
ifn==rank(Tc)
disp('系统完全能控');
else
disp('系统不完全能控');
end
第九章
1>>num=[2,5,1];den=[1,2,3];
>>bode(num,den);gridon;
>>figure;
>>nyquist(num,den);
2>>num=5*[1,5,6];den=[1,6,10,8];
>>step(num,den);gridon;
>>figure;
>>impulse(num,den);gridon;
3>>kosi=0.7;wn=6;
>>num=wn^2;den=[1,2*kosi*wn,wnA2];
>>step(num,den);gridon;
>>figure;
>>impulse(num,den);gridon;
4M文件:
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))];
fork=1:
length(den)-2,
alpha(k)=vec1
(1)/vec2
(1);
fori=1:
length(vec2),
a3(i)=rtab(k,i+1)-alpha(k)*rtab(k+1,i+1);
end
ifsum(abs(a3))==0
a3=polyder(vec2);
info=[info,'Allelementsinrow',...int2str(k+2)'arezeros;'];
elseifabs(a3
(1)) a3 (1)=1e-6; info=[info,'Replacedfirstelement;']; end rtab=[rtab;a3,zeros(1,nrT-length(a3))]; vec1=vec2;vec2=a3; end 主程序: >>den=[1,2,8,12,20,16,16]; >>[rtab,info]=routh(den) >>a=rtab(: 1) ifall(a>0) disp('系统是稳定的'); else disp('系统是不稳定的'); end 5>>num=7*[1,5];den=conv([1,0,0],conv([1,10],[1,1])); >>[gm,pm,wg,wc]=margin(num,den) 第十章 1M文件: functionvarargout=rg_lead(ng0,dg0,s1) ifnargout==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]; elseifnargout==2 ngv=polyval(ng0,s1);dgv=polyval(dg0,s1); g=ngv/dgv;theta=angle(g);phi=angle(s1); iftheta>0 phi_c=pi-theta; end iftheta<0; phi_c=-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); iftheta<0 kc=-kc end varargout{1}=kc*nk; else error('输出变量数目不正确! '); end 主程序: >>ng0=[1];dg0=10000*[10-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');gridon%绘 2M文件: 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-kosi1A2)/kosi1)-(a*pi/180)); %利用正弦定理 pc=beta*zc; ngc=beta*[1,-zc];dgc=[1,-pc]; 主程序: >>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');gridon 3M文件: 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-kosi1A2)/kosi1)-(a*pi/180)); %利用正弦定理 pc=beta*zc;ngc=beta*[1,-zc];dgc=[1,-pc]; 主程序: >>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) >>g0c=tf(KK*g0*gc); >>rlocus(g0,g0c); >>b1=feedback(k*g0,1); >>b2=feedback(g0c,1); >>figure,step(b1,'r--',b2,'b');gridon 4M文件: 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]; 主程序: >>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);holdon,bode(g0c,w);gridon,holdoff >>[gm,pm,wcg,wcp]=margin(g0c)>>Kg=20*log10(gm)>>g1=feedback(g0c,1); >>bode(g1),gridon,>>[mag,phase,w]=bode(g1);>>a=find(mag<=0.707*mag (1));>>wb=w(a (1))>>max(mag)>>b=find(mag==max(mag))>>wr=w(b) 5 [ngc,dgc]=fg_lead_pm(ng0,dg0,Pm,w) %计算原系统的对数频率响应数据 %求取原系统的相角裕度和剪切频 M文件: function[mu,pu]=bode(ng0,dg0,w);[gm,pm,wcg,wcp]=margin(mu,pu,w);率 %计算控制器提供的最大超前角 %将最大超前角转换为弧度单位 灿算a值 %系统的对数幅值 %w处的控制器对数幅值 %差值求取wm认为wm=wc %+算T 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];主程序: >>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); on, >>b1=feedback(g0,1);b2=feedback(g0c,1);>>step(b1,'r--',b2,'b');gridon>>figure,bode(g0,'r--',g0c,'b',w),grid>>[gm,pm,wcg,wcp]=margin(g0c),Km=20*log10(gm)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制系统 MATLAB 仿真 设计 课后 答案