MATLAB与控制系统仿真实验报告_第1页
MATLAB与控制系统仿真实验报告_第2页
MATLAB与控制系统仿真实验报告_第3页
MATLAB与控制系统仿真实验报告_第4页
MATLAB与控制系统仿真实验报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB与控制系统仿真实验报告第一篇:MATLAB与控制系统仿真实验报告《MATLAB与控制系统仿真》实验报告2013-2014学年第1学期专业:班级:学号:姓名:实验三MATLAB图形系统一、实验目的:1.掌握绘制二维图形的常用函数。2.掌握绘制三维图形的常用函数。3.熟悉利用图形对象进行绘图操作的方法。4.掌握绘制图形的辅助操作。二、实验原理:1,二维数据曲线图(1)绘制单根二维曲线plot(x,y);(2)绘制多根二维曲线plot(x,y)当x是向量,y是有一维与x同维的矩阵时,则绘制多根不同颜色的曲线。当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。(3)含有多个输入参数的plot函数plot(x1,y1,x2,y2,…,xn,yn)(4)具有两个纵坐标标度的图形plotyy(x1,y1,x2,y2)2,图形标注与坐标控制1)title(图形名称);2)xlabel(x轴说明)3)ylabel(y轴说明)4)text(x,y图形说明)5)legend(图例1,图例2,…)6)axis([xminxmaxyminymaxzminzmax])3,图形窗口的分割subplot(m,n,p)4,三维曲线plot3(x1,y1,z1,选项1,x2,y2,选项2,…,xn,yn,zn,选项n)5,三维曲面mesh(x,y,z,c)与surf(x,y,z,c)。一般情况下,x,y,z是维数相同的矩阵。X,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。6,图像处理1)imread和imwrite函数这两个函数分别用于将图象文件读入matlab工作空间,以及将图象数据和色图数据一起写入一定格式的图象文件。2)image和imagesc函数这两个函数用于图象显示。为了保证图象的显示效果,一般还应使用colormap函数设置图象色图。三、实验仪器和设备:计算机一台(带有MATLAB6.5以上的软件环境)。四、预习要求:1.复习二维与三维图形的绘图函数。2.复习图形辅助操作。五、实验内容及步骤:1,设y[0.53sinx]cosx,在x=0~2π区间取101点,绘制函数曲线。21x2,已知y1=x2,y2=cos(2x),y3=y1*y2,完成下列操作:(1)在同一坐标系下用不同的颜色和线型绘制三条曲线;(2)分别用条形图、阶梯图、杆图和填充图绘制三条曲线。3,已知x,x02ey1In(x1x2),x02在-5<=x<=5区间绘制函数曲线。4,绘制函数的曲面图和等高线zcosxcosyex2y24其中x的21个值均匀分布在[-5,5]范围,y的31个值均匀分布在[0,10],要求使用subplot(2,1,1)和subplot(2,1,2)将产生的曲面图和登高图画在同一个窗口上。5.画出函数zx2y2sin(xy)的曲面及等高线图。x2y21绘制平面曲线,并分析参数a对其形状的影响。6.根据2a25a2四、心得体会:通过这次实验我能熟练掌握二维和三维图以及其他特殊图形的制作,弄清楚了基本的图形操作规则,大大加深了我对matlab的兴趣。实验二MATLAB程序设计一、实验目的1.掌握利用if语句实现选择结构的方法。2.掌握利用switch语句实现多分支选择结构的方法。3.掌握利用for语句实现循环结构的方法。4.掌握利用while语句实现循环结构的方法。二、实验设备及条件计算机一台(带有MATLAB6.5以上的软件环境)。三、实验内容1.编写求解方程ax2bxc0的根的函数(这个方程不一定为一元二次方程,因a、b、c的不同取值而定),这里应根据a、b、c的不同取值分别处理,有输入参数提示,当a0,b0,c~0时应提示“为恒不等式!”。并输入几组典型值加以检验。clear,clca=input('请输入一个数a=');b=input('请输入一个数b=');c=input('请输入一个数c=');m=b^2-4*a*c;ifa==0ifb==0'为恒不等式'endendm=b^2-4*a*c;ifm>0x1=(-b+sqrt(m))/(2*a)x2=(-b-sqrt(m))/(2*a)elseifm==0x=(-b)/(2*a)else'不存在正实根'end2.输入一个百分制成绩,要求输出成绩等级A+、A、B、C、D、E。其中100分为A+,90分~99分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。要求:(1)用switch语句实现。(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。clear,clcfork=1:10a(k)={89+k};b(k)={79+k};c(k)={69+k};d(k)={59+k};endA=cell(3,6);A(1,:)={'a','b','c','d','e','f'};A(2,:)={85,76,95,100,40,65};fork=1:6switchA{2,k}case100r='A+';casear='A';casebr='B';casecr='C';casedr='D';otherwiser='E';endA(3,k)={r};endAA='a''b''c'[85][76][95]'B''C''A''d''e'[100][40]'A+''E''f'[65]'D'3.利用for循环语句编写计算n!的函数程序,取n分别为-89、0、3、5、10验证其正确性(输入n为负数时输出出错信息)。clear,clcn=input('请输入一个正数n=');ifn<0'输入错误'elseifn==0'n!=0'elseifn==1'n!=1'elsey=1;fori=1:1:ny=y*i;i=i+1;endyend请输入一个正数n=-89ans=输入错误请输入一个正数n=0ans=n!=0请输入一个正数n=1ans=n!=1请输入一个正数n=3y=6请输入一个正数n=10y=3628800四、实验心得体会:通过本次实验课,我能熟练运用for循环语句,switch条件语句以及if条件语句的新用法,和在C中的区别。尽管如此,但是在实验中依然容易把for循环跟C语言中的for语句弄混,最后经过不懈努力下,终于弄明白了两者之间的差别,使我能更好的运用这些指令语句。第二篇:基于Matlab的离散控制系统仿真2014/2015学年第1学期计算机控制技术实班级学生指导验报告学号1108030301姓名蔡梦教师张坤鳌实验二基于Matlab的离散控制系统仿真一、实验目的和要求:1、学习使用Matlab的命令对控制系统进行仿真的方法2、学习使用Matlab中的Simulink工具箱进行系统仿真的方法二、实验环境X86系列兼容型计算机,Matlab软件三、实验原理1、控制系统命令行仿真1)建立如图所示一阶系统控制模型并进行系统仿真:一阶系统闭环传递函数为G(S)=s1333s=s3,转换为离散系统脉冲传递函数并仿真。2)建立如图所示二阶系统控制模型并进行系统仿真:52s(s20.45)25251s(s20.45)=s220.45s52,二阶系统闭环传递函数为G(S)=转换为离散系统脉冲传递函数并仿真,改变参数,观察不同的系统的仿真结果。2、控制系统的Simulink仿真按图建立系统的Simulink模型,对不同的输入信号进行仿真,改变参数,观察不同的仿真结果。将上述系统离散化并仿真,观察仿真结果四、实验步骤1、根据实验原理对控制系统进行软件仿真2、观察记录输出的结果,与理论计算值相比较3、自行选择参数,练习仿真方法,观察不同的仿真结果5252s(s20.45)s(s20.45)525211s(s20.45)s(s20.45)进行软二阶系统闭环传递函数为G(S)=件仿真如下图:分别进行离散仿真:五、实验心得针对这次实验设计,我通过各种渠道,上课认真学习,请教老师、上网搜索,图书馆查阅,询问同学等学习到了很多知识,一步步了解最少拍控制系统设计,锻炼了自我学习能力。尽管学习上遇到了很多困难,结果也差强人意。但我们在不断处理困难的过程中磨练了处理事物的能力和耐心,也让同学间学会了互相学习,共享资源第三篇:控制系统的Matlab仿真与设计课后答案MATLAB课后习题答案2.1x=[15223394857760]x(6)x([135])x(4:end)x(find(x>70))2.3A=zeros(2,5);A(:)=-4:5L=abs(A)>3islogical(L)X=A(L)2.4A=[4,15,-45,10,6;56,0,17,-45,0]find(A>=10&A<=20)2.5p1=conv([1,0,2],conv([1,4],[1,1]));p2=[1011];[q,r]=deconv(p1,p2);cq='商多项式为';cr='余多项式为';disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')])2.6A=[111213;141516;171819];PA=poly(A)PPA=poly2str(PA,'s')3.1n=(-10:10)';y=abs(n);plot(n,y,'r.','MarkerSize',20)axisequalgridonxlabel('n')3.2x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y),gridon;3.3t=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;3.4theta=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);holdonz2=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]);gridonholdoff第四章functionf=factor(n)ifn<=1f=1;elsef=factor(n-1)*n;endfunction[s,p]=fcircle(r)s=pi*r*r;p=2*pi*r;functionk=jcsum1(n)k=0;i=0;whilei<=nk=k+2^i;i=i+1;endfunctionk=jcsum(n)k=0;fori=0:nk=k+2^i;end4.1form=100:999m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend4.2[s,p]=fcircle(10)4.3y=0;n=100;fori=1:ny=y+1/i/i;endy4.4s=0;fori=1:5s=s+factor(i);ends4.5sum=0;i=1;whilesum<2000sum=sum+i;i=i+1;end;n=i-24.6jcsum(63)jcsum1(63)4.1form=100:999m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend4.3y=0;n=100;fori=1:ny=y+1/i/i;endy4.4s=0;fori=1:5s=s+factor(i);ends4.5sum=0;i=1;whilesum<2000sum=sum+i;i=i+1;end;n=i-24.6i=0;k=0;whilei<=63k=k+2^i;i=i+1;endkii=0;k=0;fori=0:63k=k+2^i;endik第五章functionf=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=Ab5.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.1A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';x=Ab5.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,'-*')6.1symsxy=finverse(1/tan(x))6.2symsxyf=1/(1+x^2);g=sin(y);fg=compose(f,g)6.3symsxg=(exp(x)+x*sin(x))^(1/2);dg=diff(g)6.4F=int(int('x*exp(-x*y)','x'),'y')6.5symsxF=ztrans(x*exp(-x*10))6.6a=[01;-2-3];symssinv(s*eye(2)-a);6.7f=solve('a*x^2+b*x+c')6.8f=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),gridon6.10a=maple('simplify(sin(x)^2+cos(x)^2);')6.11f=maple('laplace(exp(-3*t)*sin(t),t,s);')6.12symstxF=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;switchflag,case0,[sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D);case1,sys=mdlDerivatives(t,x,u,A,B,C,D);case2,sys=mdlUpdate(t,x,u);case3,sys=mdlOutputs(t,x,u,A,B,C,D);case4,sys=mdlGetTimeOfNextVarHit(t,x,u);case9,sys=mdlTerminate(t,x,u);otherwiseerror(['Unhandledflag=',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=[00];%===============================functionsys=mdlDerivatives(t,x,u,A,B,C,D)sys=A*x+B*u;%===============================functionsys=mdlUpdate(t,x,u)sys=[];%===============================functionsys=mdlOutputs(t,x,u,A,B,C,D)sys=C*x+D*u;%===============================functionsys=mdlGetTimeOfNextVarHit(t,x,u)sampleTime=1;sys=t+sampleTime;%===============================functionsys=mdlTerminate(t,x,u)sys=[];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=28.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]=tf2ss(num,den);ss(A,B,C,D)8.3num=[1,5];den=[1,6,5,1];ts=0.1;sysc=tf(num,den);sysd=c2d(sysc,ts,'tustin')8.4.08.4.1%¶Ôϵͳ·½¿òͼÿ¸ö»·½Ú½øÐбàºÅ,ÓÐ8¸öͨµÀ,ÁÐдÿ¸öͨµÀ´«µÝº¯Êýr1=1;r2=2;c1=3;c2=4;G1=r1;G2=tf(1,[c1,0]);G3=1;%ÊÇ·ÖÀëµãºÍ»ãºÏµãµÄÁ¬Ïß,²»Äܺϲ¢,´«º¯Îª1G4=-1;G5=1/r2;G6=tf(1,[c2,0]);G7=-1;G8=-1;%½¨Á¢ÎÞÁ¬½ÓµÄ״̬¿Õ¼äÄ£ÐÍG=append(G1,G2,G3,G4,G5,G6,G7,G8)%д³öϵͳµÄÁ¬½Ó¾ØÕóQ=[140%ͨµÀ1µÄÊäÈëÊÇͨµÀ4217%ͨµÀ2µÄÊäÈëÊÇͨµÀ1,73202053865075060];%¸ººÅÔÚ´«º¯ÖÐÌåÏÖ%ÁгöϵͳµÄ×ܵÄÊäÈëºÍÊä³ö¶ËµÄ±àºÅ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]=ss2tf(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);ifn==rank(Tc)disp('ϵͳÍêÈ«ÄÜ¿Ø');elsedisp('ϵͳ²»ÍêÈ«ÄÜ¿Ø');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))];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);endifsum(abs(a3))==0a3=polyder(vec2);info=[info,'Allelementsinrow',...int2str(k+2)'arezeros;'];elseifabs(a3(1))info=[info,'Replacedfirstelement;'];endrtab=[rtab;a3,zeros(1,nrT-length(a3))];vec1=vec2;vec2=a3;end9.1num=[2,5,1];den=[1,2,3];bode(num,den);gridon;figure;nyquist(num,den);9.2num=5*[1,5,6];den=[1,6,10,8];step(num,den);gridon;figure;impulse(num,den);gridon;9.3kosi=0.7;wn=6;num=wn^2;den=[1,2*kosi*wn,wn^2];step(num,den);gridon;figure;impulse(num,den);gridon;9.4den=[1,2,8,12,20,16,16];[rtab,info]=routh(den)a=rtab(:,1)ifall(a>0)disp('ϵͳÊÇÎȶ¨µÄ');elsedisp('ϵͳÊDz»Îȶ¨µÄ');end9.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])Transferfunction:2s^2+5s+1---------------s^2+2s+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=0Pm=-47.2870Wcg=0Wcp=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),gridonGm=0Pm=-47.2870Wcg=0Wcp=1.4354第十章functions=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+Tsfunction[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£½wcT=1/(wgc*sqrt(a));%¼ÆËãTngc=[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=2ng0=[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)functions=kw2s(kosi,wn)s=-kosi.*wn+j*wn.*sqrt(1-kosi.^2);10.1ng0=[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%»æÖÆУÕýÇ°ºóϵͳµÄµ¥Î»½×Ô¾KK=20;s1=-2+i*sqrt(6);a=1ng0=[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');gridong0c=tf(KK*g0*gc);rlocus(g0,g0c);b1=feedback(k*g0,1);b2=feedback(g0c,1);figure,step(b1,'r--',b2,'b');gridonng0=[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)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');gridonfigure,bode(g0,'r--',g0c,'b',w),gridon,[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.021],conv([0.01,1],[0.0051]))));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*w1w1=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);gridonfigure,step(b1,'r--',b2,'b',t);gridon,[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];functionvarargout=rg_lead(ng0,dg0,s1)ifnargout==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];elseifnargout==2ngv=polyval(ng0,s1);dgv=polyval(dg0,s1);g=ngv/dgv;theta=angle(g);phi=angle(s1);iftheta>0phi_c=pi-theta;endiftheta<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);iftheta<0kc=-kcendvarargout{1}=kc*nk;elseerror('Êä³ö±äÁ¿ÊýÄ¿²»ÕýÈ·£¡');endfunction[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<0);wn(iwn)=-wn(iwn);kosi(iwn)=-kosi(iwn);function[pos,tr,ts,tp]=stepchar(g0,delta)[y,t]=step(g0);[mp,ind]=max(y);dimt=length(t);yss=y(dimt);pos=100*(mp-yss)/yss;tp=t(ind);fori=1:dimtify(i)>=1tr=t(i);break;endend;fori=1:length(y)ify(i)<=(1-delta)*yss|y(i)>=(1+delta)*yssts=t(i);endend第十一章11.1a=[010;001;-1-5-6];b=[001]';p=[-2+4j;-2-4j;-10];K=acker(a,b,p)eig(a-b*K)11.2a=[010;001;-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=[-100;0-2-3;00-3];B=[10;23;-3-3];C=[100;111];[G,K,L]=decoupling(A,B,C)11.8A=[020.6;10];b=[01]';c=[01];d=0;G=ss(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=0fork=1:Nxk=G*xk+H*u;x(:,k)=xk;t=[t,k*T];end;xx=[x0,x];12.1functionsys=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);fori=1:Nk1=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];end12.1tspan=[0,10];x0=[0,0,0]';[t,y]=ode45('M601',tspan,x0);y1=800*y(:,1);plot(t,y1);12.2num=10;den=conv([1,0],conv([1,2],[1,3]));[A,B,C,D]=tf2ss(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),grid12.312.4g=[-2.8-1.400;1.4000;-1.8-0.3-1.4-0.6;000.60];h=[1010]';c=[0001];d=0;x0=[0000]';u=1;N=30;T=0.1;[t,xx]=diffstate(g,h,x0,u,N,T);plot(t,xx);y=c*xx;figurestairs(t,y)gridon12.6第十四章14.1clearall;loadoptcar.mat;t=signals(1,:);p=signals(2,:);v=signals(3,:);a=signals(4,:);theta=signals(5,:);subplot(4,1,1);plot(t,p);gridon;ylabel('λÖÃ(m)');subplot(4,1,2);plot(t,v);gridon;ylabel('ËÙ¶È(m/s)');subplot(4,1,3);plot(t,a);gridon;ylabel('¼ÓËÙ¶È(m/s2)');subplot(4,1,4);plot(t,theta);gridon;ylabel('½Ç¶È(¶È)');14.1clearallloadcar.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)'),gridon;%»æÖÆ¿ØÖÆÁ¦×÷ÓÃϽüËÆÄ£Ðͺ;«È·Ä£ÐÍxµÄµ¥Î»½×Ô¾ÏìÓ¦ÇúÏßfigure%»æÖÆ¿ØÖÆÁ¦×÷ÓÃϽüËÆÄ£Ðͺ;«È·Ä£ÐÍthetaµÄµ¥Î»½×Ô¾ÏìÓ¦ÇúÏßplot(t,theta,t,theta1);ylabel('°Ú½ÇÖµ(rad)'),gridon;第四篇:控制系统的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.^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=[1011];>>[q,r]=deconv(p1,p2);>>cq='商多项式为';cr='余多项式为';>>disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')])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:999m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endendM文件:function[s,p]=fcircle(r)s=pi*r*r;p=2*pi*r;主程序:[s,p]=fcircle(10)3>>y=0;n=100;fori=1:ny=y+1/i/i;end>>yM文件:functionf=factor(n)ifn<=1f=1;elsef=factor(n-1)*n;end主程序:>>s=0;fori=1:5s=s+factor(i);end>>s5>>sum=0;i=1;whilesum<2000sum=sum+i;i=i+1;end;>>n=i-26for循环M文件:functionk=jcsum(n)k=0;fori=0:nk=k+2^i;end主程序:>>jcsum(63)While循环M文件:functionk=jcsum1(n)k=0;i=0;whilei<=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=AbM文件:functionf=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>>symsx>>y=finverse(1/tan(x))2>>symsxy>>f=1/(1+x^2);g=sin(y);>>fg=compose(f,g)3>>symsx>>g=(exp(x)+x*sin(x))^(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*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),gridon10>>a=maple('simplify(sin(x)^2+cos(x)^2);')11>>f=maple('laplace(exp(-3*t)*sin(t),t,s);')12>>symstx>>F=sin(x*t+2*t);>>L=laplace(F)第七章第八章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')>>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('系统完全能控');elsedisp('系统不完全能控');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,wn^2];>>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);endifsum(abs(a3))==0a3=polyder(vec2);info=[info,'Allelementsinrow',...int2str(k+2)'arezeros;'];elseifabs(a3(1))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('系统是稳定的');elsedisp('系统是不稳定的');end5>>num=7*[1,5];den=conv([1,0,0],conv([1,10],[1,1]));>>[gm,pm,wg,wc]=margin(num,den)第十章M文件:functionvarargout=rg_lead(ng0,dg0,s1)ifnargout==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];elseifnargout==2ngv=polyval(ng0,s1);dgv=polyval(dg0,s1);g=ngv/dgv;theta=angle(g);phi=angle(s1);iftheta>0phi_c=pi-theta;endiftheta<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);iftheta<0kc=-kcendvarargout{1}=kc*nk;elseerror('输出变量数目不正确!');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-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,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论