MATLAB语言与控制系统仿真-参考答案-第8章
控制系统的MATLAB仿真与设计课后答案

控制系统的MATLAB仿真与设计课后答案>>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:999m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);if m==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend2M文件: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:ny=y+1/i/i;end>>yfunction f=factor(n)if n<=1f=1;elsef=factor(n-1)*n;end主程序:>>s=0;for i=1:5s=s+factor(i);end>>s5>>sum=0;i=1;while sum<2000sum=sum+i;i=i+1;end;>>n=i-26for循环M文件:function k=jcsum(n)k=0;for i=0:nk=k+2^i;end主程序:>>jcsum(63)While循环M文件:function k=jcsum1(n)k=0;i=0;while i<=nk=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\bfunction 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 on10>>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)第七章1234 56 7第八章1-1>>h=tf([5,0],[1,2,2])1-2>>s = tf('s');>>H = [5/(s^2+2*s+2) ];>>H.inputdelay =21-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('系统完全能控');elsedisp('系统不完全能控');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);endif sum(abs(a3))==0a3=polyder(vec2);info=[info,'All elements in row ',...int2str(k+2) ' are zeros;'];elseif abs(a3(1))<epsa3(1)=1e-6;info=[info,'Replaced first element;'];endrtab=[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('系统是稳定的');elsedisp('系统是不稳定的');end5>>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==1ngv=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==2ngv=polyval(ng0,s1); dgv=polyval(dg0,s1);g=ngv/dgv; theta=angle(g); phi=angle(s1);if theta>0phi_c=pi-theta;endif theta<0;phi_c=-thetaendtheta_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<0kc=-kcendvarargout{1}=kc*nk;elseerror('输出变量数目不正确!');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%绘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-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 on3M文件: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 on4M文件: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)5M文件: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)); %计算Tngc=[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)。
数字信号处理及MATLAB实现第八章习题答案

1. 数字信号处理器有哪些结构特点?答:1. DSP内部采用的是程序空间和数据空间分开的哈佛结构;2. 多总线结构;3. 流水线结构:在DSP中,执行一条指令,需要通过取指、译码、取操作数和执行四个阶段。
在程序运行过程中,这四个阶段不是依次进行的,而是重叠的进行的;4. 多处理单元:DSP内部通常包括有算术逻辑运算单元(ALU)、辅助寄存器运算单元(ARAU)、累加器(ACC)以及硬件乘法器(MUL)等多个处理单元。
它们可以在一个指令周期内同时进行运算;5. 硬件配置强:新一代DSP的接口功能愈来愈强,如:TMS320C5000系列芯片片内具有串行口、主机接口(HPl)、DMA控制器、软件控制的等待状态产生器、锁相环时钟产生器以及实现在片仿真符合IEEEll49.1.标准的测试访问口,更易于完成系统设计。
许多DSP芯片都可以工作在省电方式,使系统功耗降低。
2. TMS320C54x系列DSP片内有多少条总线,具体说明有哪些?答:TMS320C54x系列DSP是TI公司于1996年推出的新一代定点数字信号处理器。
其采用先进的修正哈佛结构,片内有8条总线,分别为1条程序存储器总线,3条数据存储器总线和4条地址总线。
3. TMS320VC5402的在片外围电路有哪些?答:1. 软件可编程等待状态发生器;2. 可编程分区转换逻辑电路;3.带有内部振荡器或用外部时钟源的片内锁相环(PLL)时钟发生器;4. 时分多路(TDM)串行口;5. 缓冲串行口(BSP);6. 2个16位定时器;7. 8位并行主机接口(HPl);8. 外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。
4. TMS320VC5402有哪些片内资源?答:TMS320VC5402的片内资源按功能包括运算单元、寄存器、片内RAM 和ROM、片外存储器接口、DMA控制器、主机接口、串口、定时器、时钟产生器和中断控制器。
5. CCS有几种工作模式?具体说明。
Matlab第八章部分课后答案

第八章
8.1
某随机系统的微分方程为ψϕϕϕϕ
k k dt d dt
d dt
d
=+++2
2
3
3
75.0075.0
已知===)0()0()0( ϕϕϕ0,)(1)(t t =ϕ试分别就k=2.5,5.0,12.5三种情况对系统进行仿真,
8.2已知系统模型pu
x x x pu x x
=--=+=212212 ,x1(0)=x2(0)=0,当p=1、2、10时,对以下进行仿
真
(1) u(t)=1
(2) u(t)=t
u(t)=sin(t)
(4) u(t)=1+sin(t)
(5) u(t)=1+t+sin(t)
8.3对如图所示的系统进行仿真(1)输入信号为人r(t)=1(t);
(2)输入的信号为如下分段函数
(2)
8.4液压调速系统如图所示,在稳定情况下在V环节前,加上f=-1的阶跃扰动,试求系
统在该扰动作用下IV环节和V环节的动态过程。
8.5某控制系统如图所示,选择增益k的值,使系统阶跃响应的超调量小于20%,且调节时间小于5s。
8.7潜艇潜水深度控制系统的简化结构简图如图所示,球系统在阶跃作用下地动态响应,并观察当舵机的k增大时系统性能有何改变。
8.8非线性控制系统如图所示,求系统在有饱和非线性和无饱和非线性两种情况下的动态响应,分析饱和非线性对系统动态性能的影响。
控制系统的MATLAB仿真与设计课后答案

控制系统的MATLAB 仿真与设计课后答案第二章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:999m1=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)endend2M文件: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:ny=y+1/i/i;end>>y4 M文件:function f=factor(n)if n<=1f=1;elsef=factor(n-1)*n; end主程序:>>s=0;for i=1:5s=s+factor(i);end>>s5>>sum=0;i=1;while sum<sum=sum+i;i=i+1;end;>>n=i-26for循环M文件:function k=jcsum(n) k=0;for i=0:nk=k+2^i;end主程序:>>jcsum(63)While循环M文件:function k=jcsum1(n)k=0;i=0;while i<=nk=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\b2M文件: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);。
Matlab与控制系统仿真部分习题答案

【4.2】程序:num=[5,0];den=conv([1,1],conv([1,2],[1,3])); [numc,denc]=cloop(num,den);[z,p,k]=tf2zp(numc,denc);[A,B,C,D]=tf2ss(numc,denc);g_zp=zpk(z,p,k)g_tf=tf(numc,denc)g_ss=ss(A,B,C,D)运行结果:Zero/pole/gain:5 s----------------------------------(s+0.4432) (s^2 + 5.557s + 13.54)Transfer function:5 s----------------------s^3 + 6 s^2 + 16 s + 6a =x1 x2 x3x1 -6 -16 -6x2 1 0 0x3 0 1 0b =u1x1 1x2 0x3 0c =x1 x2 x3y1 0 5 0d =u1y1 0【4.3】程序:A=[0 0 0 -1;1 0 0 -2;0 1 0 -3;0 0 1 -4]; B=[0;0;0;1];C=[1 0 0 0];g_ss=ss(A,B,C,D)[num,den]=ss2tf(A,B,C,D);g_tf=tf(num,den)[z,p,k]=ss2zp(A,B,C,D);g_zpk=zpk(z,p,k)运行结果:a =x1 x2 x3 x4x1 0 0 0 -1x2 1 0 0 -2x3 0 1 0 -3x4 0 0 1 -4b =u1x1 0x2 0x3 0x4 1c =x1 x2 x3 x4y1 1 0 0 0d =u1y1 0Continuous-time model.Transfer function:-3.109e-015 s^3 - s^2 - 3.331e-015 s - 4.441e-016 -------------------------------------------------s^4 + 4 s^3 + 3 s^2 + 2 s + 1Zero/pole/gain:- s^2----------------------------------------------(s+0.6724) (s+3.234) (s^2 + 0.0936s + 0.4599)【5.1】(1)程序num=[0,10];den=conv([1,0],[1,7,17]); [numc,denc]=cloop(num,den,-1); G=tf(numc,denc)[y,t]=step(G);plot(t,y,'b-')C=dcgain(G);n=1;while y(n)<0.1*Cn=n+1;endm=1;while y(m)<0.9*Cm=m+1;endrisetime=t(m)-t(n)[Y,k]=max(y); percentovershoot=100*(Y-C)/Ci=length(t);while(y(i)>0.98*C)&(y(i)<1.02*C) i=i-1;endsettlingtime=t(i)运行结果:Transfer function:10-----------------------s^3 + 7 s^2 + 17 s + 10risetime =2.7312percentovershoot =-0.4399settlingtime =5.1372图:0123456700.10.20.30.40.50.60.70.80.91(2)程序k=[10,100,1000];t=linspace(1,20,200);num=1;den=conv([1,0],[1,7,17]);for j=1:3;s1=tf(num*k(j),den);sys=feedback(s1,1)y(:,j)=step(sys,t);endplot(t,y(:,1),'r',t,y(:,2),'b',t,y(:,3),'g')gtext('k=10');gtext('k=100');gtext('k=1000') 运行结果:Transfer function:10-----------------------s^3 + 7 s^2 + 17 s + 10Transfer function:100------------------------s^3 + 7 s^2 + 17 s + 100Transfer function:1000-------------------------s^3 + 7 s^2 + 17 s + 1000图:024681012141618200.20.40.60.811.21.41.61.8图:02468101214161820-3-2-1123422【6.1】程序:(1)num1=[1,1];den1=conv([1,0,0],conv([1,2],[1,4]));sys1=tf(num1,den1)rlocus(sys1)运行结果:-12-10-8-6-4-2024-8-6-4-202468Root LocusReal Axis I m a g i n a r y A x i s(2)num2=[1,1];den2=conv([1,0],conv([1,-1],[1,4,16]));sys2=tf(num2,den2)rlocus(sys2)运行结果:-10-8-6-4-2024-8-6-4-202468Root LocusReal Axis I m a g i n a r y A x i s(3)num3=[1,8];den3=conv([1,0,0],conv([1,3],conv([1,5],conv([1,7],[1,15])))); sys3=tf(num3,den3)rlocus(sys3)运行结果:-30-25-20-15-10-5051015-20-15-10-505101520Root LocusReal Axis I m a g i n a r y A x i s【6.3】程序:num=[1,2];den=conv([1,0],conv([1,4],conv([1,8],[1,2,5])));sys=tf(num,den)rlocus(sys)[k,poles]=rlocfind(sys)运行结果:Transfer function:s + 2---------------------------------------s^5 + 14 s^4 + 61 s^3 + 124 s^2 + 160 sSelect a point in the graphics windowselected_point =0.0296 + 2.2826i k =135.8815poles =-7.3248-5.41040.0145 + 2.3021i0.0145 - 2.3021i -1.2939图:-20-15-10-5051015-15-10-551015Root LocusReal Axis I m a g i n a r y A x i s【7.3】程序(1)画波特图num=[50];den=conv([1,0],conv([1,10],[3,1]));sys=tf(num,den)sys1=feedback(sys,1)bode(sys)grid图(1)-150-100-50050100M a g n i t u d e (d B)10-210-1100101102103-270-225-180-135-90P h a s e (d e g )Bode DiagramFrequency (rad/sec)程序(2)画奈奎斯特图num=[50];den=conv([1,0],conv([1,10],[3,1]));sys=tf(num,den)sys1=feedback(sys,1)nyquist(sys)grid图(2)-16-14-12-10-8-6-4-20-300-200-100100200300Nyquist DiagramReal Axis I m a g i n a r y A x i s程序(3)画零极点图num=[50];den=conv([1,0],conv([1,10],[3,1]));sys=tf(num,den)sys1=feedback(sys,1)pzmap(sys1)gird图(3)P ole-Zero MapReal Axis I m a g i n a r y A x i s -12-10-8-6-4-20-1.5-1-0.50.511.5程序(4)计算相角裕量和幅值裕量num=[50];den=conv([1,0],conv([1,10],[3,1]));sys=tf(num,den)sys1=feedback(sys,1)[gm,pm,wcg,wcp]=margin(sys)运行结果Transfer function:50---------------------3 s^3 + 31 s^2 + 10 sTransfer function:50--------------------------3 s^3 + 31 s^2 + 10 s + 50gm =2.0667pm =7.5615wcg =1.8257wcp =1.2645程序(5)绘制阶跃响应曲线num=[50];den=conv([1,0],conv([1,10],[3,1])); sys=tf(num,den)sys1=feedback(sys,1)step(sys1)图(5)00.20.40.60.811.21.41.61.82Step ResponseTime (sec)A m p l i t u d e【7.4】程序如下:num=[300];den=conv([1,0,0],conv([0.2,1],[0.02,1]));sys=tf(num,den)margin(sys)grid波特图如下:-150-100-50050100M a g n i t u d e (d B )10-1100101102103-360-315-270-225-180P h a s e (d e g )Bode DiagramGm = Inf , P m = -78 deg (at 11 rad/sec)Frequency (rad/sec)【9.3】程序:A=[-2 2 -1;0 -2 0;1 -4 0];B=[0;0;1];C=[1,0,0];D=0;M=ctrb(A,B)m=rank(M)if m==3;disp('系统可控')elsedisp('系统不可控')endN=obsv(A,C)n=rank(N)if n==3;disp('系统可观')elsedisp('系统不可观') endsys=ss(A,B,C,D) [num,den]=ss2tf(A,B,C,D) sys1=tf(num,den)[z,p,k]=ss2zp(A,B,C,D)运行结果:M =0 -1 20 0 01 0 -1m =2系统不可控N =1 0 0-2 2 -13 -4 2n =2系统不可观a =x1 x2 x3x1 -2 2 -1x2 0 -2 0x3 1 -4 0b =u1x1 0x2 0x3 1c =x1 x2 x3y1 1 0 0d =u1y1 0 Continuous-time model.0 0 -1 -2den =1 4 5 2Transfer function:-s - 2---------------------s^3 + 4 s^2 + 5 s + 2z =-2p =-1-1-2k = -1【10.1】(1)程序:A=[0,1,0,0;0,5,0,0;0,0,-7,0;0,0,0,-8]; B=[0;1;0;1];C=[1,2,3,4];D=zeros(1,1);G_ss=ss(A,B,C,D)运行结果:a =x1 x2 x3 x4x1 0 1 0 0x2 0 5 0 0x3 0 0 -7 0x4 0 0 0 -8u1x1 0x2 1x3 0x4 1c =x1 x2 x3 x4y1 1 2 3 4d =u1y1 0(2):程序:[num1,den1]=ss2tf(A,B,C,D); p=roots(den1)i=0;for k=1:1:length(p)if real(p(k))>0i=i+1;endendif i>0disp('系统不稳定');elsedisp('系统稳定');end运行结果:p =5.0000-8.0000-7.0000系统不稳定(3)(4)程序:AA=[0,1,0;0,5,0;0,0,-8];BB=[0;1;1];P=[-1,-2,-8];K=acker(AA,BB,P);i=4;K(4)=0;Kpp=eig(A-B*K)sys1=tf(num1,den1);[y1,t]=step(sys1);plot(t,y1)hold onA_feedback=A-B*K;[num2,den2]=ss2tf(A_feedback,B,C,D); sys2=tf(num2,den2);[y2,t]=step(sys2);plot(t,y2,'r')gridgtext('反馈前')gtext('反馈后')运行结果:K =2 8 0 0pp =-8-2-1-7图形:01234560123456【13.1】程序:A=[0,1;0,0];B=[0;1];C=[1,0];D=zeros(1,1);G_ss=ss(A,B,C,D)M=ctrb(A,B);if rank(M)==2disp('系统完全能控'); elsedisp('系统不完全能控'); endS=[1,0];N=obsv(A,S);if rank(N)==2disp('(A,S)可观测'); elsedisp('(A,S)不可观测'); endR=1;Q=[1,0;0,0];[K,P,E]=Lqr(A,B,Q,R)A_new=A-B*K;G_new=ss(A_new,B,C,D);t=linspace(0,5,100)';y1=step(G_ss,t);y2=step(G_new,t);plot(t,y1,'r:',t,y2,'b-')gridgtext('反馈前')gtext('反馈后')运行结果:a =x1 x2x1 0 1x2 0 0b =u1x1 0x2 1c =x1 x2y1 1 0d =u1y1 0Continuous-time model. 系统完全能控(A,S)可观测K =1.0000 1.4142P =1.4142 1.00001.0000 1.4142E =-0.7071 + 0.7071i-0.7071 - 0.7071i图形:00.51 1.52 2.53 3.54 4.5502468101214。
MATLAB语言与控制系统仿真-参考答案-第8章

8.6 控制系统的Simulink仿真实训8.6.1实训目的:1.学会运用Simulink进行系统仿真;2.了解子系统的创建方法及简单应用;3.运用Simulink实现混沌控制系统的仿真;4.运用Simulink实现伺服跟踪系统等系统的仿真;8.6.2实训内容:1.按照图8-39所示建立系统的结构图文件。
图8-39(1)K=50,纪录图示三处的波形,分析系统的稳态性并给出稳态误差。
仿真文件:sx8620101.mdl系统稳定,稳态误差为0;(2)K=200,纪录图示三处的波形,根据曲线分析系统的稳定性。
仿真文件:sx8620102.mdl由输出曲线可以看出闭环系统不稳定;(3)编写程序求取K=200时的闭环传递函数,求出系统的闭环极点(特征根),说明系统的稳定性,分析与(2)得出的结论是否一致。
%实训8620103.mn1=3;d1=[1,2];[n2,d2]=cloop(n1,d1);sysa=tf(n2,d2);sysb=tf([200],[1,0])*tf([1],[1,5]);sysc=sysa*sysb/(1+sysa*sysb);[nc,dc]=tfdata(sysc,'v');roots(dc)>> ans =-12.0549 1.0275 + 6.9797i 1.0275 - 6.9797i -5.0000 + 0.0000i -5.0000 - 0.0000i有两个特征根在右半平面,闭环系统不稳定;与(2)得出的稳定性结论一致。
2. 子系统创建实验 (1)建立如下系统。
(2)选定范围,创建子系统并定义变量a 。
图8-40(3)利用创建的子系统,分别记录10,8,6,4,2 a 时所示系统的输出波形。
a=2a=4a=6a=8a=103.已知四维混沌系统的运动方程如下,试用Simulink 进行仿真。
⎪⎪⎩⎪⎪⎨⎧+-=+-=-+=+-=321444213343121243212110)(10)(35x x x x xx x x x x x x x x x xx x x x x x (1)四个积分器的初始值自定,建议在(0.01,3.0)范围内随机给出。
MATLAB与控制系统仿真

第31页/共52页
传递函数描述
连续系统的传递函数模型
连续系统的传递函数如下:
G(s)
C(s) R(s)
b1s m a1s n
b2 s m1 a2 s n1
... bns ... ans
bm1 an1
(2)“%” 后面所有文字为注释. (3) “...”表示续行.
+ 加法运算,适用于两个数或两个同阶矩阵相加. — 减法运算 * 乘法运算 .* 点乘运算 / 除法运算 ./ 点除运算 ^ 乘幂运算 .^ 点乘幂运算 \ 反斜杠表示左除.
第3页/共52页
3、数学函数
函数 sin(x) cos(x) tan(x) abs(x) min(x) sqrt(x) log(x) sign(x)
end 步长的缺省值是1。步长可以在正实数或负实数范围内任意指定,对 于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的 值小于终止值时,循环结束。
第8页/共52页
程序控制语句
while循环的基本格式为: while 表达式 循环体 end
若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若 为假则跳出循环体,向下继续执行,否则继续执行循环体。 • break:从循环体中跳出,并使循环结束
• Gzpk=zpk(Gtf) • [zz,pp,kk]=zp kdata(Gzpk ,’v’) • %获得G(s)的零点、极点和增益
• ZPK形式变换为TF形式
• Svv=tf(Sxx) • [nn,dd]=tfdata(Svv,’v’) • %获得分子分母多项式系数
第17页/共52页
MATLAB语言与控制系统仿真_参考题答案_第3章

3.5 MATLAB 绘图实训3.5.1 实训目的1.学会MATLAB 绘图的基本知识;2.掌握MATLAB 子图绘制、图形注释、图形编辑等基本方法;3.学会通过MATLAB 绘图解决一些实际问题;4.练习二维、三维绘图的多种绘图方式,了解图形的修饰方法;5.学会制作简单的MATLAB 动画。
图3-46 炮弹发射示意图3.5.2 实训内容1. 炮弹发射问题〔1炮弹发射的基础知识炮弹以角度α射出的行程是时间的函数,可以分解为水平距离)(t x 和垂直距离)(t y 。
)cos()(0αtv t x = %水平方向的行程; 205.0)sin()(gt tv t y -=α %垂直方向的行程;其中,0v 是初速度;g 是重力加速度,为9.82m/s ;t 是时间。
〔2炮弹发射程序举例:分析以下程序以及图3-47各个图形的实际意义。
a=pi/4; v0=300; g=9.8;t=0:0.01:50; x=t*v0*cos<a>;y=t*v0*sin<a>-0.5*g*t.^2;subplot<221>;plot<t,x>;grid;title<‘时间-水平位移曲线'>; subplot<222>;plot<t,y>;grid;title<‘时间-垂直位移曲线'>; subplot<223>;plot<x,y>;grid;title<‘水平位移-垂直位移曲线'>; subplot<224>;plot<y,x>;grid;title<‘垂直位移-水平位移曲线'>; 图3-4745角发射曲线 〔3编程解决炮弹发射问题①假设在水平地面上以垂直于水平面的角度向上发射炮弹,即发射角90=α,假设初速度分别为[310,290,270]m/s,试绘制时间-垂直位移曲线,编程求取最高射程;绘图要求:◆ 标题设为"炮弹垂直发射问题";◆ 在图上通过添加文本的方式表明初速度; ◆ 在x 轴标注"时间";◆ 在y 轴上标注"垂直距离"; ◆ 添加网格线;◆ 将310m/s 的曲线改为线粗为2的红色实线; ◆ 将290m/s 的曲线改为线粗为3的绿色点划线;◆ 将270m/s 的曲线改为线粗为2的蓝色长点划线;a=pi/2; v1=310; g=9.8;t=0:0.01:50; x1=t*v1*cos<a>;y1=t*v1*sin<a>-0.5*g*t.^2;plot<t,y1>;grid; title<'炮弹垂直发射问题'>; xlabel<'时间'>; ylabel<'垂直距离'>; hold on; v2=290;x2=t*v2*cos<a>;y2=t*v2*sin<a>-0.5*g*t.^2; plot<t,y2>; v3=270;x3=t*v3*cos<a>;y3=t*v3*sin<a>-0.5*g*t.^2; plot<t,y3>;zgsc=[max<y1>; max<y2>; max<y3>] %三次发射的最高射程 运行结果如下: zgsc =1.0e+003 * 4.9031 4.29083.7194最高射程分别为:4903.1米,4290.8米,3719.4米。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.6 控制系统的Simulink仿真实训8.6.1实训目的:1.学会运用Simulink进行系统仿真;2.了解子系统的创建方法及简单应用;3.运用Simulink实现混沌控制系统的仿真;4.运用Simulink实现伺服跟踪系统等系统的仿真;8.6.2实训内容:1.按照图8-39所示建立系统的结构图文件。
图8-39(1)K=50,纪录图示三处的波形,分析系统的稳态性并给出稳态误差。
仿真文件:sx8620101.mdl系统稳定,稳态误差为0;(2)K=200,纪录图示三处的波形,根据曲线分析系统的稳定性。
仿真文件:sx8620102.mdl由输出曲线可以看出闭环系统不稳定;(3)编写程序求取K=200时的闭环传递函数,求出系统的闭环极点(特征根),说明系统的稳定性,分析与(2)得出的结论是否一致。
%实训8620103.mn1=3;d1=[1,2];[n2,d2]=cloop(n1,d1);sysa=tf(n2,d2);sysb=tf([200],[1,0])*tf([1],[1,5]);sysc=sysa*sysb/(1+sysa*sysb);[nc,dc]=tfdata(sysc,'v');roots(dc)>> ans =-12.0549 1.0275 + 6.9797i 1.0275 - 6.9797i -5.0000 + 0.0000i -5.0000 - 0.0000i有两个特征根在右半平面,闭环系统不稳定;与(2)得出的稳定性结论一致。
2. 子系统创建实验 (1)建立如下系统。
(2)选定范围,创建子系统并定义变量a 。
图8-40(3)利用创建的子系统,分别记录10,8,6,4,2 a 时所示系统的输出波形。
a=2a=4a=6a=8a=103.已知四维混沌系统的运动方程如下,试用Simulink 进行仿真。
⎪⎪⎩⎪⎪⎨⎧+-=+-=-+=+-=321444213343121243212110)(10)(35x x x x xx x x x x x x x x x xx x x x x x (1)四个积分器的初始值自定,建议在(0.01,3.0)范围内随机给出。
(2)给出记录以下命令的相关图形。
① plot(x1,x2);②plot(x1,x3);③plot(x1,x4);④plot(x2,x3);⑤plot(x2,x4);⑥plot(x3,x4);⑦plot3(x1,x2,x3);⑧plot3(x1,x2,x4);⑨plot3(x2,x3,x4);解:仿真文件sx86203.mdl 如下图所示;仿真参数中仿真时间设为0-100s;4个积分器的初始值本仿真设置的数值依次为0.1,0.2,0.3,0.4;仿真文件建立完成后设置好相关参数,运行;然后在命令窗口运行以下命令 >> subplot(3,3,1),plot(x1,x2); subplot(3,3,2),plot(x1,x3); subplot(3,3,3),plot(x1,x4); subplot(3,3,4),plot(x2,x3); subplot(3,3,5),plot(x2,x4); subplot(3,3,6),plot(x3,x4); subplot(3,3,7),plot3(x1,x2,x3); subplot(3,3,8),plot3(x1,x2,x4); subplot(3,3,9),plot3(x2,x3,x4);4.已知某单位负反馈系统的开环传递函数为ss s s G 238)(23++=,求取系统的单位阶跃响应,分析系统的稳定性。
加入PID 控制器,进行仿真实验,选取合适的PID 参数。
分析控制效果。
(1)利用Simulink 仿真绘制系统的单位阶跃响应曲线(0-50秒),依据曲线判断系统的稳定性。
(2)在偏差信号后串联PID 控制器,设置PID 控制器的比例系数、积分系数、微分系数,分别绘制系统的单位阶跃响应曲线并进行简要分析。
解:(1)建立sx8620401.mdl 如下仿真结果如下:(2)建立sx8620402.mdl如下对PID模块进行封装后得到运行结果:结论:选取适当的PID 参数可以使系统稳定性变好;PID 参数的选取对于系统的稳定性产生重要的影响。
5. PID 控制器参数对伺服跟踪控制系统控制性能的影响电机转速伺服跟踪控制系统如图8-41所示,用Simulink 对给出的伺服跟踪控制系统进行建模。
其中:001.0321===c c c T T T ,27=c K ,56=A ,0275.01=K ,9=A R ,004061.0=A L , 61071.1-⨯=m J ,2500=N ,2.28=L F ,5.0=L J ,0.4440=s K ,049.0=V K , 02862.0=G T ,04.0=B K(1) 绘制系统的单位阶跃响应曲线。
(2) 观察记录图8-41中6个求和器(比较点)输出端的波形,输入信号取单位阶跃信号。
解:按照上图建立仿真文件,输入端加上单位阶跃信号;用示波器scope 观察波形即可;6. 大部分现代列车和调度机车都采用电力牵引电机,已知某电力牵引电机控制系统(单位负反馈系统)的开环传递函数为ss s 25.12700)(G 2+=(1) 利用Simulink 求取系统的单位阶跃响应曲线。
hdT)1()6.12(1++s T s s K c c)1()198(2++s T s s A c 13+s T T K c G V sL R KA A +1sJ m 1s1 L FNK sN1sJ L 1 s1B KNh T图8-41 伺服跟踪控制系统控制器(2) 绘制开环系统的伯德图,要求在图上显示幅值裕度和相角裕度。
n=2700; d=[1,1.25,0]; margin(n,d)(3) 在命令窗口编程绘制系统的单位脉冲响应,时间范围]5,0[ t ; >> n=2700; >> d=[1,1.25,0];>> [nc,dc]=cloop(n,d); >> sys=tf(nc,dc)Transfer function: 2700-------------------------- s^2 + 1.25 s + 2700>> impulse(sys)>> impulse(sys,0:0.01:5)7.哈勃太空望远镜指向控制仿真。
哈勃太空望远镜于1990年4月14日发射至离地球611km 的太空轨道,它的发射与应用将空间技术发展推向了一个新的高度。
望远镜的2.4m 镜头拥有所有镜头中最光滑的表面,其指向系统能在644km 以外将视野聚集在一枚硬币上,望远镜的偏差在1993年12月的一次太空任务中得到了大范围的校正。
哈勃太空望远镜简化后的结构图如图8-42所示。
试通过Simulink 仿真绘制系统在1001=K ,122=K 时:(1) 系统在单位阶跃输入下的响应曲线,)(1)(t t r =,0)(=t n 。
图8-42 哈勃太空望远镜指向系统简化结构图(2) 系统对单位阶跃扰动的响应曲线,0)(=t r ,)(1)(t t n =。
(3) 系统对单位阶跃输入和单位阶跃扰动的响应曲线,)(1)(t t r =,)(1)(t t n =。
8.火星漫游车转向控制1997年7月4日,以太阳能作为动力的“逗留者号”漫游车在火星上着陆。
漫游车全重10.4kg ,可由地球上发出的路径控制信号)(t r 实施遥控,漫游车的两组车轮以不同的速度运行,以便实现整个装置的转向。
为了进一步探测火星上是否有水,2004年美国国家宇航局又发射了“勇气号”火星探测器。
“逗留者号”漫游车的转向控制结构图如图8-43所示。
待选参数范围为:=1K 15~100;=a 0.42~2.8。
图8-43 火星漫游车转向控制系统结构图(1)设=1K 60,=a 0.4,通过Simulink 仿真绘制系统的单位阶跃响应和单位斜坡响应曲线以及系统的误差曲线。
(2)设5.0=a ,绘制系统的根轨迹图,分析使系统稳定的1K 的取值范围。
(3)设=1K 70,=a 0.6,绘制开环系统的伯德图,要求在图上显示相角裕度和幅值裕度。
解:(1).建立SIMULINK 仿真文件sx8620801.mdl(2)设5.0=a ,绘制系统的根轨迹图,分析使系统稳定的1K 的取值范围。
根轨迹方程为:1)5)(2)(1(5.0-=++++s s s s s Kz=[-0.5];p=[0;-1;-2;-5]; k=1;sys=zpk(z,p,k); rlocus(sys)系统稳定的1K 的范围]6.96,0[1∈K ;(3)设=1K 70,=a 0.6,绘制开环系统的伯德图,要求在图上显示相角裕度和幅值裕度。
系统的开环传递函数为)5)(2)(1()6.0(70)()(++++=s s s s s s H s G>> z=[-0.6]; p=[0;-1;-2;-5]; k=70;sys=zpk(z,p,k); margin(sys)相角裕度为7.7度,幅值裕度为2.32dB 。