收藏 分销(赏)

控制系统的MATLAB仿真与设计课后答案.doc

上传人:精**** 文档编号:9871614 上传时间:2025-04-11 格式:DOC 页数:22 大小:161KB 下载积分:10 金币
下载 相关 举报
控制系统的MATLAB仿真与设计课后答案.doc_第1页
第1页 / 共22页
控制系统的MATLAB仿真与设计课后答案.doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
控制系统的MATLAB仿真与设计课后答案 22 2020年4月19日 文档仅供参考,不当之处,请联系改正。 第二章 1>>x=[15 22 33 94 85 77 60] >>x(6) >>x([1 3 5]) >>x(4:end) >>x(find(x>70)) 2>>T=[1 -2 3 -4 2 -3] ; >>n=length(T); >>TT=T'; >>for k=n-1:-1:0 >>B(:,n-k)=TT.^k; >>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=[1 0 1 1]; >>[q,r]=deconv(p1,p2); >>cq='商多项式为 '; cr='余多项式为 '; >>disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')]) 6>>A=[11 12 13;14 15 16;17 18 19]; >>PA=poly(A) >>PPA=poly2str(PA,'s') 第三章 1>>n=(-10:10)'; >>y=abs(n); >>plot(n,y,'r.','MarkerSize',20) >>axis equal >>grid on >>xlabel('n') 2>>x=0:pi/100:2*pi; >>y=2*exp(-0.5*x).*sin(2*pi*x); >>plot(x,y),grid on; 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; 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); >>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 第四章 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 2 M文件: function[s,p]=fcircle(r) s=pi*r*r; p=2*pi*r; 主程序: [s,p]=fcircle(10) 3>>y=0;n=100; for i=1:n y=y+1/i/i; end >>y 4 M文件: function f=factor(n) if n<=1 f=1; else f=factor(n-1)*n; end 主程序: >>s=0; for i=1:5 s=s+factor(i); end >>s 5>>sum=0;i=1; while sum< sum=sum+i; i=i+1; end; >>n=i-2 6 for循环M文件: function k=jcsum(n) k=0; for i=0:n k=k+2^i; end 主程序: >>jcsum(63) While循环M文件: function k=jcsum1(n) k=0;i=0; while i<=n k=k+2^i; 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 2 M文件: function f=fxyz(u) x=u(1);y=u(2);z=u(3); f=x+y.^2./x/4+z.^2./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>>syms x >>y=finverse(1/tan(x)) 2>>syms x y >>f=1/(1+x^2); g=sin(y); >>fg=compose(f,g) 3>>syms x >>g=(exp(x)+x*sin(x))^(1/2); >>dg=diff(g) 4>>F=int(int('x*exp(-x*y)','x'),'y') 5>>syms x >>F=ztrans(x*exp(-x*10)) 6>>a=[0 1;-2 -3]; >>syms s >>inv(s*eye(2)-a); 7>>f=solve('a*x^2+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),grid on 10>>a=maple('simplify(sin(x)^2+cos(x)^2);') 11>>f=maple('laplace(exp(-3*t)*sin(t),t,s);') 12>>syms t x >>F=sin(x*t+2*t); >>L=laplace(F) 第七章 1 2 3 4 5 6 7 第八章 1-1>>h=tf([5,0],[1,2,2]) 1-2>>s = tf('s'); >>H = [5/(s^2+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); if n==rank(Tc) disp('系统完全能控'); else disp('系统不完全能控'); end 第九章 1>>num=[2,5,1];den=[1,2,3]; >>bode(num,den);grid on ; >>figure; >>nyquist(num,den); 2>>num=5*[1,5,6];den=[1,6,10,8]; >>step(num,den);grid on ; >>figure; >>impulse(num,den);grid on ; 3>>kosi=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 ; 4 M文件: 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))<eps a3(1)=1e-6; info=[info,'Replaced first element;']; 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) if all(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) 第十章 1 M文件: 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<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); if theta<0 kc=-kc end varargout{1}=kc*nk; else error('输出变量数目不正确!'); end 主程序: >> ng0=[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 %绘 2 M文件: 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]; 主程序: >>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 3 M文件: 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]; 主程序: >>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');grid on 4 M文件: 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);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<=0.707*mag(1)); >>wb=w(a(1)) >>max(mag) >>b=find(mag==max(mag)) >>wr=w(b) 5 M文件: 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]; 主程序: >>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)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服