MATLAB课程设计.ppt
自动控制理论的MATLAB计算机辅助设计,MATLAB学习的必要性 MATLAB入门控制系统的数学模型控制系统的时域分析控制系统的根轨迹分析 控制系统的频域分析控制系统的校正控制系统工具箱中的系统分析工具LTIView基于根轨迹的系统设计工具RLTool具体要求,MATLAB计算机辅助设计,MATLAB学习的必要性,MATLAB课程设计是为配合自动控制理论课程的学习而设置的。为了使学生能够对自动控制理论课程所学的内容进行深层次的分析和研究,我们加设了应用MATLAB软件进行计算机辅助设计这一教学环节。MATLAB软件有着对应用学科的极强适应力,并已经成为应用学科计算机辅助分析、设计、仿真、教学乃至科技文字处理不可缺少的基础软件。在高等院校里,MATLAB已经成为本科生、硕士生、博士生必须掌握的基本技能;在设计研究单位和工业部门,MATLAB已经成为研究和解决各种具体工程问题的一种标准软件。,MATLAB软件是一个庞大的体系,仅Mathworks公司本身就推出了30多个应用软件,它有强大的数学计算和图形绘制功能,作为自动控制理论的计算机辅助设计,尤其面对学习时间有限的本科生,本章只能针对本专业的范围加以讲解,力求通过一些简单的例子,一步一步带领读者进入MATLAB的世界,有效地利用它解决所面临的问题,起到一个敲门砖的作用。,MATLAB入门,二、MATLAB程序设计基础,一、启动MATLAB,三、SIMULINK动态仿真集成环境,MATLAB入门,当装好MATLAB后,双击MATLAB图标进入,或单击Windows的开始菜单,依次指向“程序”、“MATLAB”即可进入MATLAB的命令窗口,它是用户使用MATLAB进行工作的窗口,同时也是实现MATLAB各种功能的窗口。MATLAB命令窗口除了能够直接输入命令和文本,还包括菜单命令和工具栏。MATLAB的菜单命令构成相对简单而全面。,示例,启动MATLAB,1、基本数据结构-矩阵 A=1 2 3;4 5 6;7 8 9;代表行之间用;隔开,每行之间元素用空格或逗号隔开。2、常用运算符号+、-、*、/、即加、减、乘、除、成方。3、编程基本上为命令行执行,也可以用文件编写程序。A、for 循环例 for i=1:1:10 t=t+1;end,MATLAB程序设计基础,MATLAB程序设计基础,B、while 循环例 while key=1 p=sin(t);if p=0 key=0;End end,MATLAB程序设计基础,C、switch 循环例:SWITCH switch_expr CASE case_expr1 statement,.,statement CASE case_expr2 statement,.,statement.OTHERWISE,statement,.,statement END,3、函数Function o1,o2,=filesname(in1,in2,)例:function Z=jia(x,y)Z=x+y;注:MATLAB函数程序文件名应与等号后的名字相同。利用编辑器的所有文件的后缀为.m特别提醒:文件名不能以数字开头,MATLAB程序设计基础,MATLAB软件中的SIMULINK主要用于动态系统的仿真。SIMULINK软件是一个应用性非常强的软件,它有以下几个突出的优点:(1)用户可以自定义自己的系统模块;(2)系统具有分层功能,这一功能可以使用户轻松组织系统,层次分明又自成系统;(3)仿真与结果分析。根据这些特点,我们通过例题,说明如何在SIMULINK环境下,完成对实际系统的仿真分析。,SIMULINK动态仿真,启动SIMULINK在MATLAB命令窗口输入“SIMULINK”或点击图标,或在MATLAB的菜单上选择FileNewModel即可启动SIMULINK。SIMULINK软件的模块的操作、连接以及系统如何仿真等,比较简单和直观,下面以所见即所得的方式说明。,SIMULINK动态仿真,1、微分方程和传递函数2、零极点增益模型3、模型转换4、模型的建立和连接5、迟延系统模型,研究一个自动控制系统,单是分析系统的作用原理及其大致的运动过程是不够的,必须同时进行数量上的分析,才能作到深入地研究并将其有效地应用到实际工程上去。这就需要把输出输入之间的数学表达式找到,然后把一系列归类,这样就可以定量地研究控制系统了。,求解微分方程:解:dsolve(D2x+3*Dx+2*x=2,x(0)=-1,Dx(0)=0)ans=1-4*exp(-t)+2*exp(-2*t)说明:x是因变量,t是缺省的自变量。函数dsolve用来求解微分方程,字母D代表微分运算,D2 D3DN分别对应于第二、第三第N阶导数。例如D2y代表d2y/dt2。符号变量和符号方程可以用定义。,微分方程和传递函数,求函数的 拉氏变换。解:syms a b tT=(exp(-a*t)-exp(-b*t)/(b-a);F=laplace(T);F=simplify(F)F=1/(s+a)/(s+b)说明:syms用来说明符号变量,laplace函数用来求拉氏变换。,微分方程和传递函数,求解微分方程组,解:x,y=dsolve(4*Dx+y=10,-1*x+3*Dy+2*y=0,x(0)=0,y(0)=5)x=-105/4*exp(-1/6*t)+25/4*exp(-1/2*t)+20y=25/2*exp(-1/2*t)-35/2*exp(-1/6*t)+10,微分方程和传递函数,某系统在零初始条件下的单位阶跃响应h(t)=(1-e-2t+e-t)1(t)。试求系统传递函数及零初始条件下的单位脉冲响应。解:syms th=1-exp(-2*t)+exp(-t);L1=laplace(h)L1=1/s-1/(s+2)+1/(s+1)syms sL2=1/s;G=L1/L2%传递函数G=(1/s-1/(s+2)+1/(s+1)*s simplify(G)ans=(s2+4*s+2)/(s+2)/(s+1)H1=G*1;H2=ilaplace(H1)%零初始条件下的单位脉冲响应H2=Dirac(t)+2*exp(-2*t)-exp(-t)说明:simplify命令用来化简。,生成传递函数模型Num=bn b4 b3 b2 b1 bo;Den=an a4 a3 a2 a1 a0;G=tf(num,den);G=tf(num,den,Ts);传递函数模型数据的获得num,den=tfdata(G);num,den=tfdata(G,v);%用于SISO系统。num,den,Ts,Td=tfdata(G);%Ts是采样周期,Td是输入的延迟时间,微分方程和传递函数,生成零极点增益模型z=z1 z2 z3;p=p1 p2 p3;K=k1;G=zpk(z,p,k);G=zpk(z,p,k,Ts);零极点增益模型数据的获得z,p,k=zpkdata(G);z,p,k=zpkdata(G,v);%用于SISO系统。z,p,k,Ts,Td=zpkdata(G);%Ts是采样周期,Td是输入的延迟时间,零极点增益模型,C2d,c2dt将连续时间系统转换成离散时间系统;C2dm按指定的方式将连续时间系统转换成离散时间系统;D2c将离散时间系统转换成连续时间系统;D2cm按指定的方式将离散时间系统转换成连续时间系统;Tf2zp变系统的传递函数形式为零极点形式zp2tf变系统的零极点形式为传递函数形式,模型转换,ord2产生2阶系统;rmodel产生n阶随机的稳定连续系统;dmodel产生n阶随机的稳定离散系统;Series系统的串联连接;Parallel系统的并联连接;feedback系统的反馈连接;cloop系统的单位反馈连接;,模型的建立和连接,Set(G,iodelay,10);%设置模型对象G的输入延迟时间为10秒Set(G,ouputdelay,10);%设置模型对象G的输出延迟时间为10秒get(G)%得到带有延迟的模型对象Gnum,den=pade(10,n);%得到10秒延迟对象的n阶pade近似,迟延系统的模型,时域分析法是一种直接准确的分析方法,易为人们所接受,它可以接受系统时域内的全部信息。时域分析法包括稳定性分析、稳态性能分析(稳态误差)、动态性能分析三大方面。在MATLAB软件中稳定性能的分析可以直接求出特征根或用古尔维茨判据判定稳定性,而稳态误差的求取可根据静态误差系数,利用求极限的方法求取(与手算类似不再考虑),也可从输出中直接看出。第三方面动态性能主要是根据系统的各种响应来分析的,所以要学习一下在MATLAB软件中如何获取各种响应的命令函数。,时域分析法,1、稳定性分析2、稳态性能分析3、动态性能分析,时域分析法,系统闭环特征方程分别如下,试确定特征方程根在s平面的位置,并判断系统闭环稳定性。(1)S4+2S3+3S2+4S+5=0(2)S3+20S2+9S+100=0试用古尔维茨判据判别系统的稳定性。(1)解:,稳定性分析,MATLAB还有另外一种更直接的方法,直接求根法。(2)d=1 20 9 100;r=roots(d)r=-19.8005-0.0997+2.2451i-0.0997-2.2451i系统稳定,三个根都在s平面的左半部,且其中一个位于负实轴。,稳定性分析,稳态误差可以在得到各种动态响应后直接求取。,稳态性能分析,1、step求连续系统和离散系统的单位阶跃响应;step(G)y,x,t=step(G);2、impulse求连续系统和离散系统的单位脉冲响应;impulse(G)y,x,t=impulse(G);3、lsim对任意输入的系统进行仿真;lsim(G,u)y,x,t=lsim(G,u);4、u,t=gensig(type,tau);产生输入信号tau为信号周期,type可以为sin正弦波,square方波,pulse脉冲序列。5、initial求连续系统和离散系统的零输入响应曲线;initial(G)y,x,t=initial(G);6、性能指标的求取;Mp=max(y);tp=spline(y,t,Mp)(插值运算),系统的动态性能分析,已知二阶系统的传递函数为:n=5,求=0.1、0.2、0.3、0.4、2,时的阶跃响应和脉冲响应曲线。解:,根轨迹法是古典控制理论的另一种重要的分析方法,它是分析和设计线性控制系统的一种图解方法。当系统中某一参数变化时,其闭环特征根在复平面上相应点的集合称为根轨迹。它便于工程上使用,特别是适用于多回路系统的研究,应用根轨迹法比其他方法更为简便、直观。根轨迹分析包括一般根轨迹、零度根轨迹、参量根轨迹和带迟延系统的根轨迹的绘制以及用根轨迹法分析系统。,控制系统的根轨迹分析,但是要绘制出系统精确的根轨迹是很烦琐很难的事,因此在教科书中经常以简单系统的图示解法得到。但是在现代计算机技术和软件平台的支持下,绘制系统的根轨迹变得轻松自如了。在MATLAB中,专门提供了绘制根轨迹的有关的函数:如rlocus、rlocfind、pzmap、sgrid等等。,控制系统的根轨迹分析,Pzmap(num,den),绘制系统的零极点图Rlocus(num,den);%系统的根轨迹r,k=Rlocus(num,den);%得到系统的根轨迹上的极点和增益值k,poles=Rlocfind(num,den)%计算给定的一组根的根轨迹增益。Sgrid(z,wn)在连续系统的根轨迹图或零极点图上绘制出阻尼系数和无阻尼自振荡角频率栅格。Zgrid(z,wn)在离散系统的根轨迹图或零极点图上绘制出阻尼系数和无阻尼自振荡角频率栅格。,控制系统的根轨迹分析,举例单位负反馈系统开环传递函数为:试绘制k由0+变化时其闭环系统的根轨迹。解:,频域分析法是应用频率特性研究控制系统的一种经典方法。采用这种方法可直观地表达出系统的频率特性,分析方法比较简单,物理概念比较明确,对于诸如防止结构谐振、抑制噪声、改善系统稳定性和暂态性能等问题,都可以从系统的频率特性上明确地看出其物理实质和解决途径。,控制系统的频域分析,在MATLAB中,专门提供了频域分析的有关的函数:如bode、nyquist、margin、等等。Bode:bode图的绘制;Bode(num,den);mag,phase,w=Bode(num,den);mag,phase,w=Bode(num,den,w);,控制系统的频域分析,Nyquist:nyquist图的绘制;Nyquist(num,den)re,im=Nyquist(num,den);re,im,w=Nyquist(num,den,w);Margin:计算系统的增益和稳定裕度。Margin(num,den)gm,pm,wcp,wcg=Margin(num,den);其中gm是幅值裕度;pm是相角裕度;wcp幅值穿越频率;wcg是相角穿越频率。,控制系统的频域分析,已知一振荡环节的传递函数为:求当,=0.1、0.2、0.3、1.2时的幅相频率特性曲线和对数幅频相频特性曲线。解:,控制系统的频域分析,一个完整的自动控制系统的设计包括静态设计和动态设计两个部分,亦称系统的综合。静态设计包括选择执行元件、测量元件、比较元件和放大元件等,即把系统不可变部分确定下来。而由不可变部分组成的控制系统往往不能满足性能指标的要求,甚至不能正常工作。动态设计则是根据性能指标的要求选择校正装置的形式和参数,使校正后系统的性能指标完全满足给定的性能指标的要求,即控制系统的校正。,控制系统的校正,P169例63已知单位负反馈系统的开环传递函数为,试设计串联超前校正装置,使系统指标满足单位斜坡输入信号时稳态误差ess0.1%,相位裕度45,穿越频率。解:根据稳态误差的要求做静态校正,则系统传递函数为绘制bode图,求性能指标num=1000;den=conv(0.1 1 0,0.001 1);margin(num,den),控制系统的校正,=45-0+7=52;a=(1+sin(*pi/180)/(1-sin(*pi/180)=8.43;令m=160;T=1/(sqrt(a)*m)T=0.0022nc=a*T 1;dc=T 1;n=conv(num,nc);d=conv(den,dc);Margin(n,d),控制系统的校正,n1,d1=feedback(num,den,1,1);n2,d2=feedback(n,d,1,1);G1=tf(n1,d1);G2=tf(n2,d2);figure(1)step(G1,k)figure(2)step(G2,r),校正前的阶跃响应曲线,校正后的阶跃响应曲线,报告中要求校正前后的阶跃响应曲线打印在一张图上,P174例66已知单位负反馈系统的开环传递函数为,试设计串联校正装置,使系统指标满足单位阶跃输入信号时稳态无差。,相位裕度50。,根据静态指标系统本身已满足要求绘制原系统的BODE图num=100;den=conv(1 0,0.1 1);figure(1)margin(num,den)grid on,取wc=5由20lga=25;和 则可以求出参数a=10.(25/20);wc=5;T=1/(0.1*wc);nc=T 1;dc=a*T 1;n=conv(num,nc);d=conv(den,dc);figure(2)margin(n,d)grid on,n1,d1=feedback(num,den,1,1);n2,d2=feedback(n,d,1,1);G1=tf(n1,d1);G2=tf(n2,d2);figure(1)step(G1,k)hold onstep(G2,r),曲线1校正前;曲线2校正后。可以看出牺牲了快速性,提高了平稳性。,在控制系统工具箱中,有一个控制系统的可视分析工具ltiview,它提供了系统分析的界面,对MATLAB工作空间中的LTI对象模型进行分析。在MATLAB提示符下键入ltiview字样,则可以自动启动该程序,用户可以利用这个工具来分析系统的性能。由于该工具只能用来对MATLAB工作空间中的LTI对象进行分析,所以其功能十分简单,下面请看说明。,工具箱LTIVIEW,演示,控制系统工具箱中提供了一个系统根轨迹分析的图形界面,其调用格式为rltool或 rltool(G)或 rltool(G,Gc)此函数可以用来绘制二自由度系统的根轨迹图形。此工具有一个显著的优点,就是可以可视地在整个前向通路中添加零极点(亦即设计控制器),从而使得系统性能得到改善。,工具箱RLTOOL,已知系统 用根轨迹法确定一串联校正装置,使得超调量不大于30%,调节时间不大于8秒。解:den=conv(2 1 0,0.5 1);num=1;G=tf(num,den);rltool(G);,原系统的阶跃响应曲线为曲线1。选择工具栏加入零点,此时系统的阶跃响应曲线为曲线2。再所以加入极点,此时系统的阶跃响应曲线为图所示曲线3。满足超调量不大于30%,调节时间不大于8秒的要求。,由于根轨迹分析的图形界面所见即所得,按照校正原理,可以随意加入零极点,并观察其时域响应,如果不满意可以用工具栏上的橡皮擦掉,分析十分方便。,例 被控对象的传递函数为:,采用单位负反馈,系统的动态性能已经满足要求,现要求系统的速度误差系数不小于5。,解:设计思想:根轨迹校正中的滞后网络用于改善系统的稳态性能,但不改变系统的动态性能,在设计滞后网络时,为使校正后系统的根轨迹主要分支通过闭环主导极点,同时能大幅度提高系统的开环增益,通常把滞后网络的零极点配置在离虚轴较近的地方,并互相靠近。利用系统根轨迹分析的图形界面加入滞后校正网络:静态校正比较简单,可以直接写出其校正装置,验证一下结果即可。动态性能不影响,影响静态性能。,校正前后系统的阶跃响应曲线如图所示,动态过程基本不影响,曲线1为校正前,曲线2为校正后,但校正后速度误差系数为原来的10倍,满足静态要求。,原来系统的速度误差系数为2.66/4。斜坡输入下的误差为4/2.66=1.5038静态校正后系统的速度误差系数为26.6/4。斜坡输入下的误差为4/26.6=0.15038,1、封面格式2、任务书3、报告可以有非线性和离散系统的内容,可提高本人的成绩4、指导教师5、给你答辩的老师给成绩,具体安排6、不能出现雷同题目,具体要求,