机电控制工程基础实验指导书_第1页
机电控制工程基础实验指导书_第2页
机电控制工程基础实验指导书_第3页
机电控制工程基础实验指导书_第4页
机电控制工程基础实验指导书_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

汽车与交通学院《机电控制工程基础S》实验指导书适用专业:************课程代码:***********学时:**学分:***编写单位:********系编写人:*****************审核人:*****审批人:*****************年********月目录TOC\o"1-1"\h\z\u实验一Matlab软件基础操作及M语言基础 3实验二Simulink模块基础操作及建模基础 12实验三一阶系统的时域响应分析 18实验四二阶系统的时域响应分析 22实验五控制系统的稳定性分析 26实验六控制系统的校正分析 30附录一MATLAB6.5控制系统工具箱函数和结构化的控制语句 36主要参考文献 45

实验一Matlab软件基础操作及M语言基础一.实验目的1)掌握MATLAB仿真软件的安装及启动,熟悉MATLAB工作环境平台。2)掌握MATLAB命令窗口,包括工具条以及菜单选项的使用;MATLAB语言的基本规定,包括数值的表示、变量命名规定、基本运算符、预定义变量以及表达式等。3)掌握MATLAB图形绘制功能、M文件程序设计和线性控制系统传递函数模型的建立等。二.实验仪器PC计算机一台,MATLAB软件1套三.实验原理MATLAB作为一种高级语言,它不仅可以以一种人机交互式的命令行的方式工作,还可以像BASIC、FORTRAN、C等其他高级计算机语言一样进行控制流的程序设计(MATLAB语言的流程控制语句主要有for、while、if-else-end及switch-case等4种语句,这4种流程控制语句功能介绍见附录一)。MATLAB控制流,即编制一种以*.m为扩展名的MATLAB程序(简称M文件)。由于商用的MATLAB软件是用C语言编写而成。因此,M文件的语法与C语言十分相似。对广大参加建模竞赛且学过C语言的同学来说,M文件的编写是相当容易的。建立和运行M文件程序的过程如下:打开M文件编辑窗口:在图1中选择File→New→M-file菜单项实现在M文件编辑窗口键入M文件的各行:如在编辑窗口键入下面5行t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,’-r’,t,y0,’--b’,t,-y0,’--b’);grid保存文件:在图2中选择File→Save菜单项,保存文件。例如可键入exp1,上述命令行就保存为exp1.m。调试运行M文件程序:可在图中选择Debug→Run菜单项,全速运行M文件程序。也可用鼠标点击行号后短横线,给程序设置断点,选择Debug→Step,单步运行M文件程序,并根据工作空间管理窗口(Workspace)结果了解每条指令的功能。按上面的过程来建立M文件程序,并用Run和Step两种方式来调试运行M文件程序。图1-1建立和运行M文件程序的过程四.实验内容4.1基本的运算操作(a)任何矩阵(向量),可以直接按行方式输入每个元素:同一行中的元素用半角逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([])内;例1:>>Time=[111212345678910]>>X_Data=[2.323.43;4.375.98](b)数组(矩阵)的点运算运算符:+(加)、-(减)、./(右除)、.\(左除)、.^(乘方),例2:>>g=[1234];h=[4321];>>s1=g+h,s2=g.*h,s3=g.^h,s4=g.^2,s5=2.^h4.2线性系统的传递函数模型若要在MATLAB环境下得到传递函数的形式,可以调用tf()函数。该函数的调用格式为G=tf(num,den);其中num,den分别为系统传递函数的分子和分母多项式系数向量。返回的G为传递函数形式。然而,如果分子或分母多项式给出的不是完全的展开的形式,而是若干个因式的乘积,则事先需要将其变换为完全展开的形式,两个多项式的乘积在MATLAB下借用卷积求取函数conv()得出,其调用格式为p=conv(p1,p2)其中p1和p2为两个多项式,调用这个函数就能返回乘积多项式p。例3设系统传递函数输入下面的命令>>num=[1,5,3,2];>>den=[1,2,4,3,1];%分子多项式和分母多项式>>G=tf(num,den);%这样就获得系统的数学模型G了。这些命令可在命令行输入也可编成一个M文件。在MATLB提示符“>>”下键入G,或省略最后命令中分号,则可显示该数学模型。>>G%下面是MATLB的显示结果Transferfunction:s^3+5s^2+3s+2s^4+2s^3+4s^2+3s+1例4设系统传递函数此分子或分母多项式给出的不是完全展开的形式,而是若干个因式的乘积,采用tf()第一种输入法之前,应先用conv()函数获得分子和分母多项式给出的完全展开的形式num和den,即输入命令>>num=conv([0,5],[1,2.4]);>>den=conv(conv(conv([1,1],[1,1]),[1,3,4]),[1,0,1]);>>G=tf(num,den)%语句没有分号结尾,故将显示系统传递函数Transferfunction:5s+12s^6+5s^5+12s^4+16s^3+15s^2+11s+4用算子方法可以更直观地输入系统模型,输入命令为>>s=tf('s');>>G=5*(s+2.4)/((s+1)^2*(s^2+3*s+4)*(s^2+1));4.3Matlab绘图操作(a)plot函数该命令在线性坐标系下绘制y对应于x的轨迹。若其中之一为矩阵则该命令将对应于矩阵的行或者列绘制一簇曲线。该命令也可以在同一坐标轴下绘制多条曲线。例5用plot绘制y=sinx/x的图形x=-2*pi:pi/10:2*pi;y=sin(x)./x;%准备数据plot(x,y)%用plot作图注意x=0处的图形(b)subplot(r,c,p)函数该命令将屏幕分成r*c个窗口,p表示在第几个窗口.同时绘制多个图形窗口时,绘图语句间应用逗号分开。例6下面的程序产生四个窗口,且分别绘制相应图形.t=[0:0.01:2*pi];y=sin(t);x=cos(t);subplot(221),plot(t,y),grid,subplot(222),plot(t,x),grid,subplot(223),polar(t,y),subplot(224),polar(t,x)从上面的程序可以看出,subplot语句中的r,c,p可以不用逗号分开。上面程序执行后得到如下图形:4.4基本绘图控制参数:设置线型、线色、数据点形1)、曲线点型、线色允许设置值线型符号-:-.--含义实线虚线点划线双划线线色符号bgrcmykw含义蓝绿红青品红黄黑白2)、数据点形常用设置值含义实心黑点空心圆圈叉字符十字符八线符方块符菱形符五角星符3)、坐标轴控制(axis)、分格线(grid)4)、图形标注:坐标轴名(label)、图形标题(title)、图例(legend)、图形说明(text,gtext),格式如下:title(‘s’)书写图形标题xlabel(‘s’)横坐标轴名ylabel(‘s’)纵坐标轴名legend(‘s1’,’s2’,…)绘制曲线所用线型、色彩、或数据点型图例text(x1,y1,’s’)在图面(x1,y1)坐标处书写字符注释gtext(‘s’)用鼠标选择书写字符注释的位置例7在M文件编辑窗口键入M文件的各行:如在编辑窗口键入下面5行,并观察经设置后仿真曲线的结果:t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,’-r’,t,y0,’--b’,t,-y0,’--b’);grid五.实验报告5.1写出如何建立和运行M文件程序的过程。5.2利用M语言在命令窗口或脚本文件中分别完成上面实验内容中的例1例7,要求所有涉及坐标曲线的例题,均需要有title,title命名为学号+姓名,仿真时间设置为10秒+学号的最后一位(例如学号为*****,则仿真时间取10+5=15秒)。5.3完成实验内容:利用脚本.m文件绘制和函数的曲线,结果如下图所示:请写出实现上述结果的完整代码,语言功能要求:1)在同一窗口的两个子窗口中分别绘制出和函数曲线,横坐标t的范围为0~3s,采样间隔为3/学号后三位秒。2)按图所示标注:坐标轴名称、标题。3)曲线和分别为实线和虚线、颜色分别为红色和黑色、数据点标记分别为“o”和“*”。5.4整理在实验过程中遇到的问题及如何解决的。六实验注意事项1.实验中不轻易改动MATLAB/Simulink的参数设置,以免引起系统运行问题。2.遇到各种难以处理的问题,请询问指导老师。3.为保证计算机的安全,上机过程中非经指导老师和实验室管理人员同意,禁止使用软盘与移动硬盘。4.每次上机,个人应按规定要求使用同一计算机,如因故障需更换,应报指导老师或实验室管理人员同意。5.上机时间,禁止使用计算机从事与课程无关的工作。6.将实验过程截图,并配以适当的文字说明。

实验二Simulink模块基础操作及建模基础一.实验目的1.熟悉Matlab中基本simulink仿真环境;2.掌握simulink进行系统仿真设计的基本步骤;3.掌握simulink中常用模块库;4.掌握模块操作、信号线操作、模型注释的基本技巧;5.能够使用SIMULINK进行系统模型的建立并仿真等。二.实验仪器PC计算机一台,MATLAB软件1套三.实验原理1)SIMULINK的启动要启动SIMULINK,先要启动MATLAB。在MATLAB命令窗口,键入“SIMULINK”,或点击窗口上面的SIMULINK图标,如图2-1所示,就打开了SIMULINK窗口,进入SIMULINK库模块浏览界面,如图2-2所示。在SIMULINK窗口下,用鼠标点击newmodel图标或选取菜单File→New→Model后,SIMULINK会打开一个名为untilited(无标题)的模型窗口,如图2-3所示。随后,按用户要求可以在此模型窗口中创建模型及进行仿真运行。打开打开SimulinkLibraryBrowser浏览器图2-1启动SIMULINKnewmodel2-1simulink的图标newmodel图2-2Simulink的主界面—库模块浏览器图2-3空的模块窗口2)SIMULINK模块库SIMULINK提供了9类基本模块库:连续系统模块库(Continous)、离散系统模块库(Discrete)、函数与表模块库(Function&Tables)、数学运算模块库(Math)、非线性系统模块库(Nonlinear)、信号模块库(SignalRouting)、输出模块库(Sinks)、输入源模块库(Sourses)、子系统模块库(Subsystems)等基本模块库。附录二对本实验书中用到的5个模块:连续系统模块库(Continous)、数学运算模块库(Math)、信号模块库(SignalRouting)、输出模块库(Sinks)、和输入源模块库(Sourses)的功能进行了介绍。3)用SIMULINK建立系统模型及仿真以求一个惯性环节的阶跃响应为例,说明一下模型的建立过程。开启SIMULINK窗口及模块库:在MATLAB命令窗口,键入“SIMULINK”,或点击窗口上面的SIMULINK图标,如图2-4所示,就打开了SIMULINK窗口,进入SIMULINK库模块浏览界面,如图2-2所示。②建立新文件:在SIMULINK窗口下,用鼠标点击newmodel图标或选取菜单File→New→Model后,SIMULINK会打开一个名为untilited(无标题)的模型窗口,如图6所示。新文件建立后,可以用菜单File中的Saveas命令保存程序,这时需要给文件取名。保存的文件扩展应名为.mdl。本例中将文件名命名为examp1.mdl。③复制模块双击模块组图标打开模块子库,将鼠标移到所要复制的模块上,然后按下左键并拖动鼠标到目标窗口,再松开键,用右键可在任意窗口内复制模块,此时原模块保留。本例中双击Sources图标将打开模块子库,将Step模块复制到examp1.mdl目标窗口;双击Continuous图标将打开模块子库,将TransferFcn模块复制到examp1.mdl目标窗口;双击Sinks图标将打开模块子库,将Scope模块复制到examp1.mdl目标窗口。④修改模块参数。通常目标窗口中复制的模块的参数和要求不一致,因此需对这些复制过来的模块参数进行修改。双击复制过来的模块,会出现对一个对话框,在对话框中设置相应参数。本例中双击Step模块,设置阶跃信号的起始时间从默认的1修改为0、并可根据实际情况设计设置初值和终值;双击TransferFcn模块,设置传递函数的表达式,在分子(Numerator)多项式系数处键入[5],在分母(Denominator)多项式系数处键入[0.8,2].⑤模块之间的连接模块左侧和右侧尖角>分别表示模块的输入和输出,模块之间的连接按照下述方法进行:鼠标移到一个模块的输入(出)端,按下左键,拖动鼠标到另一个模块的输出(入)端,松开,连线完毕。若要从一条已经存在的连线上引出另一条连线,首先把鼠标指针移到这个连线上,按下右键,拖动鼠标到目标端口,再松开键。按照上述步骤建立的惯性环节模型如图2-4所示。图2-4用SIMULINK建立的惯性环节模型⑥选择对象与删除对象用鼠标左键在所选对象上单击一下,被选对象就会出现相应标记。若要删除模块或连线,首先要选中该模块过连线,然后再按Delete或Clear键。⑦仿真与显示若要开始仿真,单击起动仿真的按钮或选择Simulation→Start就可以了。双击Scope模块就打开示波器,示波器上就显示出变量随时间变化的曲线。四.实验内容4.1建立图2-5所示的simulink模型,并完成仿真。图2-5某系统的Simulink模型4.2新建模型文件,搭建2个Simulink仿真模型,对模型中信号线上的信号进行标注并完成仿真,要求:仿真时间设置为10+学号最后一位,仿真背景颜色改为白色,曲线粗细、颜色、线型等进行调整,title为学号+姓名。模型1:;模型2:,其中m=1,c=2,k=3。五.实验报告1按要求完成实验内容四;2记录模型搭建过程,并将参数设置对话窗口进行截图,说明设置过程;3思考:请写出图2-5中模型对应的系统的微分方程;4整理在实验过程中遇到的问题及如何解决的。

实验三一阶系统的时域响应分析一.实验目的1)通过用MATLAB及SIMULINK对控制系统的时域分析有感性认识;2)通过仿真对比理解参数对比例环节、积分环节和典型一阶系统的时间响应的影响;3)理解典型一阶系统的单位脉冲响应,单位阶跃响应和单位斜坡响应的特点;4)搭建简单的Simulink模型,编写简单的M语言。二.实验仪器PC计算机一台,MATLAB软件1套三.实验原理自动控制系统是由比例、积分、惯性环节等典型环节按一定的关系连接而成。熟悉这些惯性环节对典型输入信号的响应,对分析线性系统十分有益。四.实验内容4.1典型环节的仿真写出各典型环节(比例、惯性、积分环节)的传递函数,在Simulink模型中建立系统,并记录仿真各典型环节的单位阶跃响应,并研究参数变化对输出响应的影响。表3-1实验记录表格(供参考)典型环节传递函数参数取值参数变化对输出影响的结论比例环节①K=1②K=5③K=10惯性环节①τ=0.01②τ=1③τ=100积分环节①K=0.01②K=1③K=10要求:将题目中的示波器横轴终值修改为20s;设置阶跃信号的steptime从0开始;每种典型环节的三种情况绘制在同一model文件中,并将三组曲线放在同一示波器中显示;示波器观测曲线并记录时,黑底必须去掉,并对曲线的粗细,颜色等进行调整。4.2一阶系统的响应(1)一阶系统的单位阶跃响应在SIMULINK环境下搭建图3-1的模型,进行仿真,得出仿真曲线图。要求:记录下仿真曲线图,观察仿真结果与理论情况是否统一?写出具体的分析过程。提示:在仿真曲线中观察并记录响应的调整时间和稳态误差,从响应的快速性和准确性两方面进行分析。图3-1一阶系统的单位阶跃响应模型(2)一阶系统的单位斜坡响应在SIMULINK环境下搭建图3-2的模型,将示波器横轴终值修改为12s进行仿真,得出仿真曲线图。要求:记录下仿真曲线图,观察仿真结果与理论情况是否统一?写出具体的分析过程。提示:在仿真曲线中观察并记录响应的调整时间和稳态误差,从响应的快速性和准确性两方面进行分析。图3-2一阶系统的单位斜坡响应模型(3)一阶系统的单位脉冲响应在medit环境下,编译一个.m文件,利用impulse(G)函数可以得出仿真曲线图。参考程序清单:num=[1];den=[51];%系统模型step(num,den)%绘制阶跃响应曲线提示:Impulse(G)脉冲响应要求:记录下仿真曲线图,观察仿真结果与理论情况是否统一?写出具体的分析过程。提示:在仿真曲线中观察并记录响应的调整时间和稳态误差,从响应的快速性和准确性两方面进行分析。五.实验报告1)记录上述实验内容的曲线图;2)所有需要分析的过程均要完成;3)整理在实验过程中遇到的问题及解决方案。

实验四二阶系统的时域响应分析一.实验目的1)通过用MATLAB及SIMULINK对控制系统的时域分析有感性认识;2)理解典型2阶系统的单位阶跃响应的特点;3)通过仿真对比理解二阶振荡环节中的2个参数对时间响应的影响;4)搭建简单的Simulink模型,编写简单的M语言。二.实验仪器PC计算机一台,MATLAB软件1套三.实验原理对实际系统建模时,高阶系统通过忽略一些次要因素后通常可以由二阶系统来表征。二阶振荡环节作为一种典型环节,因其响应具有良好的振荡特性和快速性,在实际控制系统设计时尤为重要。四.实验内容4.1在SIMULINK环境下搭建系统的单位阶跃响应时的模型,并用示波器观测输出波形。要求:该题目得仿真时间分别设置为10s和30s,示波器中要求同时显示输入信号和输出信号。4.2二阶系统的闭环传递函数标准形式为,其中自然角频率。选取不同阻尼比0,0.2,0.4,0.6,0.8,1.0,1.2,用MATLAB得到二阶系统阶跃响应曲线。本题采用M语言发,参考程序清单:wn=1;cc=[];t=0:0.1:12;zetas=[0:0.2:1.2];L1=length(zetas);fori=1:L1z=zetas(i);ifz==0c=1-cos(wn*t);elseif(z>0&z<1)wd=wn*sqrt(1-z^2);th=atan(sqrt(1-z^2)/z);c=1-exp(-z*wn*t).*sin(wd*t+th)/sqrt(1-z^2);elseifz==1c=1-(1+wn*t).*exp(-wn*t);elseifz>1lam1=-z-sqrt(z^2-1);lam2=-z+sqrt(z^2-1);c=1-0.5*wn*(exp(lam1*t)/lam1-exp(lam2*t)/lam2)/sqrt(z^2-1);endcc=[cc;c]endplot(t,cc);运行以上程序得到实验结果。要求:(a)在图中标注阻尼比的值,即加图例;(b)对代码写出详细的注释,要求手写;(c)详细分析对系统响应的快速性和平稳性的影响。4.3阻尼比选取不同自然角频率0.2,0.4,0.6,0.8,1.0,用MATLAB得到二阶系统阶跃响应曲线,并分析比较不同自然角频率对应的系统输出的情况。在SIMULINK环境下搭建图4-1的模型,进行仿真,二阶系统阶跃响应曲线。图4-1控制系统simulink模型实验要求:(a)在图中标注同自然角频率值,即加图例;(b)对传递函数的参数设置说明,即参数对话窗口的操作(c)详细分析分析对系统响应的平稳性和快速性的影响。五.实验报告1)记录实验内容中的仿真曲线图,并回答相应的问题;2)在曲线中设置“title”为姓名+学号,并在图中显示图例。3)整理在实验过程中遇到的问题及解决方案。

实验五控制系统的稳定性分析一.实验目的1)通过用MATLAB及SIMULINK对控制系统的频域分析有感性认识。2)能够利用MATLAB仿真软件得到任何传递函数所对应的伯徳图和乃奎斯特图。二.实验仪器PC计算机一台,MATLAB软件1套三.实验原理1)绘制伯徳图函数。命令bode可以计算线性连续定常系统频率响应的幅值和相角。当不带左端变量时,MATLAB可以在屏幕上产生伯德图。当包含左端变量时,即[mag,phase,ω]=bode(num,den,ω)命令bode将把系统的频率响应转变成mag,phase和ω矩阵,这时在屏幕上不显示频率响应图。矩阵mag和phase包含系统频率响应的幅值和相角,这些幅值和相角值是在用户指定的频率点上计算得到的。相角以度来表示,表达式magdB=20*log10(mag)可以把幅值转变成分贝。为了指明频率范围,采用命令logspace(d1,d2)或logspace(d1,d2,n)。logspace(d1,d2)在两个十进制数10d1和10d2之间产生一个由50个点组成的矢量,这50个点彼此在对数上有相等的距离。这就是说,在0.1rad/s与100rad/s之间,将产生50个点。为此输入命令:ω=logspace(-1,2)logspace(d1,d2,n)在十进制数10d1和10d2之间,产生n个在对数上相等距离的点。例如为了在1rad/s与1000rad/s之间产生100个点,输入下列命令:ω=logspace(0,3,100)当画伯德图时,为了将这些频率包括进去,采用命令bode(num,den,ω)。为了绘制的Bode图中标有相角裕度和增益裕度,还可使用margin()函数,其调用格式为margin(G)或margin(num,den)其中G为系统的开环传递函数,num,den分别为G系统传递函数的分子和分母多项式系数向量。2)绘制乃奎斯特图函数。命令nyquist可以计算线性连续定常系统的乃奎斯特频率曲线。当不带左端变量时,MATLAB可以在屏幕上产生乃奎斯特图,其调用格式为nyquist(G)或nyquist(num,den)其中G为系统的开环传递函数,num,den分别为G系统传递函数的分子和分母多项式系数向量。当包含左端变量时,即[re,im,ω]=nyquist(num,den,ω)命令nyquist将把系统的频率响应转变成re,im和ω矩阵,这时在屏幕上不显示频率响应图。矩阵re和im分别表示系统频率响应的实频和虚频特性,这些实频值和虚频值是在用户指定的频率点上计算得到的。四.实验内容已知单位反馈系统的开环传递函数分别如下:4.14.24.3利用bode()函数、margin()函数、nyquist()函数绘制上述各控制系统伯德图和乃奎斯特图,并求相角裕度和增益裕度,然后分别从几何稳定性判据和稳定裕量两个角度判断系统是否稳定?。参考程序如下:s=tf('s');G=1/((1+s)*(1+2*s));figure(1);nyquist(G)figure(2);margin(G);grid五.实验报告1)写出上述实验的程序代码、运行得到曲线图,回答相关问题。2)针对实验内容4.3,利用代数判据Routh判据进行稳定性判定,验证稳定性结论与前面的稳定性结论是否一致?3)整理在实验过程中遇到的问题及如何解决的。

实验六控制系统的校正分析一.实验目的1)在MATLAB环境下掌握控制系统串联校正的设计方法。2)分析校正前后控制系统的动态过程。3)分析超前校正对系统性能的影响。二.实验仪器PC计算机一台,MATLAB软件1套三实验原理伯德图超前校正设计步骤如下:(1)根据稳态误差的要求,确定系统的开环增益K。(2)绘制在确定K值下原系统的伯德图,计算得到原系统的相角裕度和截止频率。如果(a)<希望的,(b)<希望的、(c)原系统的是以斜率-2(-40dB/dec)穿过0dB,可以采用超前校正,利用相位超前特性来补偿相角裕度的不足。(3)根据给定的相角裕度,计算最大相位超前角:(4)计算低频衰减率:(5)确定校正后系统的剪切频率:应使校正后系统的剪切频率正好在原系统最大超调角φm所对应的频率ωm处,即取:ωc=ωm。此时,在该频率下,满足此式(6)计算。(7)据此确定超前校正装置:(8)绘制校正前后开环系统伯德图,验证系统性能指标。四.实验内容超前校正仿真设计根据上述超前校正设计方法求解下列问题:已知角位移单位负反馈随动系统的开环传递函数为试设计系统的相位超前校正,使系统满足要求:r(t)=t时,esr≤0.1弧度,②≥4.4rad/s,。(1)根据稳态误差的要求,确定系统的开环增益K。在斜坡r(t)=t信号作用下,可得确定开环增益(2)绘制在确定K=10值下原系统的伯德图与阶跃响应曲线,检查是否满足题目要求程序清单:s=tf('s');G0=10/(s*(s+1));figure(1);margin(G0);figure(2);step(feedback(G0,1),'r');grid运行以上程序得到原系统的伯德图与阶跃响应曲线,确定系统的相角裕度和幅值裕度。(3)求超前校正装置的传递函数,根据,取计算超前校正装置传递函数的程序清单(基于matlab版本不同,给出2个版本代码)(版本一)s=tf('s');G0=10/(s*(s+1));[mag,phase,w]=bode(G0);[Gm,Pm,Wcg,Wcp]=margin(G0);gama=45;gama0=Pm;fai=(gama-gama0+10)*pi/180;%计算最大相位超前角alfa=(1-sin(fai))/(1+sin(fai));%计算低频衰减率adb=20*log10(mag);am=10*log10(alfa);wc=spline(adb,w,am);%确定校正后系统的剪切频率wm=wc;T=1/(wm*sqrt(alfa));alfat=alfa*T;Gc=tf([T1],[alfat1])(版本二)clear;s=tf('s');G0=10/(s*(s+1));[mag,phase,w]=bode(G0);[Gm,Pm,Wcg,Wcp]=margin(G0);gama=45;gama0=Pm;fai=(gama-gama0+10)*pi/180;alfa=(1-sin(fai))/(1+sin(fai));adb=20*log10(mag);am=10*log10(alfa);fora=1:55adb1(a)=adb(:,:,a);endwc=spline(adb1,w,am);wm=wc;T=1/(wm*sqrt(alfa));alfat=alfa*T;Gc=tf([T1],[alfat1])运行得到结果:Transferfunction:0.4536s+10.1126s+1即校正装置的传递函数(4)计算校正后系统的传递函数,绘制校正后系统的开环伯德图和闭环单位阶跃响应曲线,以检验校正后系统及其性能指标参考程序清单:s=tf('s');G=G0*Gcfigure(3);margin(G);figure(4);subplot(221);step(feedback(G0,1),'r');gridsubplot(222);step(feedback(G,1),'b');gridsubplot(223);step(feedback(G0,1),'r',feedback(G,1),'b');grid5.实验报告1)得到上述超前校正仿真设计实验的曲线图。2)通过观察校正前后系统的响应曲线和bode图,通过读取数据详细分析校正前和校正后系统响应的性能指标所发生的变换,进而验证超前校正在快速性、平稳性、准确性和稳定性方面的效果。3)整理在实验过程中遇到的问题及如何解决的。

附录一MATLAB6.5控制系统工具箱函数和结构化的控制语句MATLAB是MATrixLABoratory(“矩阵实验室”)的缩写,是由美国MathWorks公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件之一。20世纪80年代初期,CleveMoler与JohnLittle等利用C语言开发了新一代的MATLAB语言,此时的MATLAB语言已同时具备了数值计算功能和简单的图形处理功能。1984年,CleveMoler与JohnLittle等正式成立了Mathworks公司,把MATLAB语言推向市场,并开始了对MATLAB工具箱等的开发设计。1993年,Mathworks公司推出了基于个人计算机的MATLAB4.0版本,到了1997年又推出了MATLAB5.X版本(Release11),并在2000年又推出了最新的MATLAB6版本(Release12)。现在,MATLAB已经发展成为适合多学科的大型软件,在世界各高校,MATLAB已经成为线性代数、数值分析、数理统计、优化方法、自动控制、数字信号处理、动态系统仿真等高级课程的基本教学工具。概括地讲,整个MATLAB系统由两部分组成,即MATLAB内核及辅助工具箱,两者的调用构成了MATLAB的强大功能。MATLAB语言以数组为基本数据单位,包括控制流语句、函数、数据结构、输入输出及面向对象等特点的高级语言,它具有以下主要特点:1、运算符和库函数极其丰富,语言简洁,编程效率高,MATLAB除了提供和C语言一样的运算符号外,还提供广泛的矩阵和向量运算符。利用其运算符号和库函数可使其程序相当简短,两三行语句就可实现几十行甚至几百行C或FORTRAN的程序功能。2、图形功能强大。它既包括对二维和三维数据可视化、图像处理、动画制作等高层次的绘图命令,也包括可以修改图形及编制完整图形界面的、低层次的绘图命令。4、易于扩充。除内部函数外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可修改源文件和加入自己的文件,它们可以与库函数一样被调用。3、功能强大的工具箱。工具箱可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互的功能。而学科性工具箱是专业性比较强的,如优化工具箱、统计工具箱、小波工具箱、图象处理工具箱、通信工具箱和控制工具箱等。Matlab控制系统工具箱(Version5.0(R12)1-Sep-2000)包含的常用函数如表1所示。表1MATLAB控制系统工具箱函数介绍线性定常(LT1)模型(lineartimeinvariantmodel)函数名说明drss产生随机离散状态空间模型dss创建描述子状态空间模型filt创建具有DSP约定的离散滤波器frd创建频率响应数据(FRD)模型frdata从FRD模型中获取数据get查询LTI模型特性rss产生随机连续状态空间模型set设置LTI模型特性ss创建状态空间模型ssdta,dssdata从状态空间模型中获取数据tf创建传递函数模型tfdata从传递函数模型中获取数据totalaelay提供LTI模型的总时滞zpk创建零极点增益模型zpkdata从零极点增益模型中获取数据模型特性(ModelCharacteristics)函数名说明class显示模型类型(’tf’,‘zpk’,‘ss’,或’frd’)hasdelay测试LTI模型是否具有时滞isa测试LTI模型是否为特殊类型isct测试连续模型是否为真isdt测试离散模型是否为真isempty测试连续模型是否为空isproper测试真有理LTI模型是否为真issiso测试SISO模型是否为真ndims显示模型/数组维数size显示输出/输入/数组维数模型阶次化简(ModelOrderReduction)函数名说明balreal计算I/O平衡化实现mineral计算零极点对消后的最小实现modred删去I/O平衡化实现中的状态sminreal计算结构化模型化简状态空间实现(State-SpaceRealizations)函数名说明canon状态空间的规范形实现ctrb求可控性矩阵ctrbf求可控标准形gram可控性和可观性克来姆矩阵obsv求可观性矩阵obsvf求可观标准形ss2ss状态坐标相似变换ssbal状态困难关键实现的对角平衡模型动态特性(ModelCynamics)函数名说明damp计算自然频率和阻尼dcgain计算低频(DC)增益covar计算白噪声响应的协方差dsort按大小给离散极点排序esort按实部大小给连续极点排序norm计算LTI模型的范数(H2和L∞)pole,eig计算LTI模型的极点pzmap绘制LTI模型的零/极点图rlocus计算和绘制根轨迹roots计算多项式的根sgrid,zgrid给S平面和Z平面的根轨迹或零极点图加网格线zero计算LTI模型的零点模型互联(ModelInterconnections)函数名说明append追加模型于块对角形式augstate追加状态的扩展输出connect根据所选择的模式连接一个块对角子系统feedback计算反馈连续模型lft形成LFT内部互联(starproduct)ord2产生二阶模型parallel创建广义并联模型series创建广义串联模型stack将LTI模型放入模型数组时间响应(TimeResponse)函数名说明gensig产生输入信号impulse计算和绘制脉冲响应initial计算和绘制初值响应lsim仿真任意输入时LTI模型响应ltiview打开LTIViewer用于线性响应分析step计算阶跃响应时间滞后(TimeDelays)函数名说明delay2z转换离散时间模型或FRD模型中的时滞pade计算滞后的派德近似totaldelay提供LTI模型的总时滞频率响应(FrequencyResponse)函数名说明allmargin计算所有穿越频率和相应的增益,相位和滞后裕量bode计算和绘制波德响应bedemag计算和绘制波德幅值图evalfr评估单一复频率点的响应freqresp评估所选复频率点的响应interp频率点FRD模型的插值linspace创建相等间隔频率的向量logspace创建对数间隔频率的向量ltiviewLTIViewer用于线性响应分析margin计算增益和相位裕量ngrid给尼柯尔斯图加网格线nichols计算尼柯尔斯图nyquist计算奈奎斯特图sigma计算奇异值图SISO系统设计(SISOFeedbackDesign)函数名说明almargin计算所有穿越频率和响应的增益,相位和滞后裕量margin计算增益和相位裕量rlocus计算和绘制根轨迹图sisotool打开SISO设计工具极点配置(PolePlacement)函数名说明acker计算SISO系统的极点配置设计place计算MIMO系统的极点配置设计estim形成给定增益的状态估计器reg形成给定状态反馈和估计器增益的输出反馈补偿器LQC设计(LQCDesign)函数名说明lqr计算连续模型的LQ最优增益dlqr计算离散模型的LQ最优增益lqry计算输出加权的LQ最优增益lqrd计算连续模型的LQ离散最优增益kalman计算卡尔曼估计器kalmd计算连续模型的离散卡尔曼估计器lqgreg计算连续模型的离散卡尔曼滤波器的LQG调节器方程求解(EquationSolvers)函数名说明care求解连续时间的代数黎卡迪方程dare求解离散时间的代数黎卡迪方程lyap求解连续时间的李雅普诺夫方程dlyap求解离散时间的李雅普诺夫方程控制系统分析和设计的图形用户界面(GUI)函数名说明ltiview打开LTIViewer用于线性响应分析sisotool打开SISO设计的GUI5、如其他的程序设计语言一样,MATLAB语言也给出了丰富的流程控制语句,以实现具体的程序设计。在命令窗口中的操作虽然可以实现人面交互,但是所能实现的功能却相对简单,虽然也可以在命令窗口中使用流程控制语句,但是由于命令窗口中交互式的执行方式,使用得这样的操作极为不方便;而在M文件中,通过对流程控制语句的组合使用,可以实现多种复杂功能。MATLAB语言的流程控制语句主要有for、while、if-else-end及switch-case等4种语句。(1)for语句for循环语句是流程控制语句中的基础,使用该循环语句可以以指定的次数重复执行循环体内的语句。初始值为循环变量的初始设定值,每执行循环体一次,循环控制变量将增加步长大小,直至循环控制变量的值大于终值时循环结束,这里步长是可以为负的。在for循环语句中,循环体内不能出现对循环控制变量的重新设置,否则将会出错,for循环允许嵌套使用。(2)while语句while循环语句与for循环语句不同的是,前者是以条件的满足与否来判断循环是否结束的,而后者则是以执行次数是否达到指定值为判断的。其中循环判断语句为某种形式的逻辑判断表达式,当该表达式的值为真时,就执行循环体内的语句;当表达式的逻辑值为假时,就退出当前的循环体。如果循环判断语句为矩阵时,当且仅当所有的矩阵元素非零时,逻辑表达式的值为真。在while循环语句中,在语句内必须有可以修改循环控制变量的命令,否则该循环语言将陷入死循环中,除非循环语句中有控制退出循环的命令,如break语句。当程序流程运行至该命令时,则不论循环控制变量是否满足循环判断语句均将退出当前循环,执行循环后的其他语句。与break语句对应,MATLAB还提供了continue命令用于控制循环,当程序流运行至该命令时会忽略其后的循环体操作转而执行下一层次的循环。当循环控制语句为一空矩阵时,将不执行循环体的操作而直接执行其后的其他命令语句,即空矩阵被认为是假。(3)if-elseif-end语句条件判断语句也是程序设计语言中流程控制语句之一。使用该语句,可以选择执行指定的命令,MATLAB语言中的条件判断语句是if-elseif-end语句。当逻辑判断表达式为“真”时,将执行if与else语句间的命令,否则将执行else与end语句间的命令。在MATLAB语言的if-else-end语句中的else子句是可选项,即语句中可以不包括else子句的条件判断。在程序设计中,也经常碰到需要进行多重逻辑选择的问题,这时可以采用if-else-end语句的嵌套形式:在以上的各层次的逻辑判断中,若其中任意一层逻辑判断为真,则将执行对应的执行语句,并

温馨提示

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

评论

0/150

提交评论