




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘要1Abstract11 绪论21.1 本文研究背景21.2 本文的选题意义21.3 本文的任务和要求31.3.1 本文任务31.3.2 本文要求32 自动控制原理虚拟实验平台总体概述及其实现工具介绍32.1 MATLAB工具介绍32.2 Simulink工具简单介绍42.3 GUI简单介绍与可视化接口环境42.3.1 GUI概念介绍42.3.2 GUI图形用户界面的打开52.4 自动控制原理简单介绍73 虚拟实验平台总体概述73.1 虚拟实验平台设计原则73.2 虚拟实验平台设计界面模块结构及功能73.2.1 平台模块结构73.2.2 平台功能84 自动控制原理实验在虚拟实验平台的实现
2、94.1 平台界面的总体要求94.2 主界面的设计94.3 线型系统时域分析界面134.3.1 时域分析法的介绍134.3.2 时域分析界面的设计144.4 线型系统根轨迹分析界面174.4.1 根轨迹法的介绍184.4.2 根轨迹界面的设计184.5 线性系统频域分析界面194.5.1 频域法的介绍194.5.2 频域分析界面的设计204.6 控制系统校正实验界面224.6.1 控制系统校正介绍224.6.2 控制系统校正实验界面的设计225 结论25参考文献26附录127致谢551 / 64 1 绪论1.1 本文研究背景对于大学生而言自动控制原理是大学阶段的自动控制工程、机器自动控制操作、
3、物流设备工程等专业的重要的专业基础课程,涉及到自动控制系统的模型建立、系统分析、系统设计的相关基本理论和相关技术设计。它的典型特点是概念比较抽象,数字含量巨大,计算相当复杂,从而导致学生比较难于理解和消化,实验是理解和消化相关课程内容的非常重要的途径。目前相当多的大学高校的实验教学仍处于传统模拟实验阶段,通过利用集成封闭的传统实验箱,将相应的有源网络模块整个连接成了典型环节和系统,然后施加典型信号,通过示波器仔细观察实验结果。然而对于这种实验方法仍存在明显不足,比如说(1)实验室的实验箱集成度很高,从而让学生对实验目的和实验计划出现盲目性,所以很容易导致损坏仪器设备。(2)学生的理论性知识和实
4、验动手操作是互相分开的,导致了学生缺乏主动性学习和创造性性学习。(3)因为元件的非线性等一些元素,导致了实验结果与理论知识差异较大,相距甚远。为了改变这种现象,我们通过利用MATLAB中的具有可视化编程能力的图形用户界面(简称GUI)和控制系统工具箱中的有关的丰富的库函数等,开发出了基于MATLAB的自动控制原理虚拟实验平台。1.2 本文的选题意义自动控制原理虚拟实验平台就是把真实的相关的自动控制环节、系统和数学建模有机地结合的一个实验操作平台。学生不仅可以在平台上修改相关的实验参数、改变相关的输入信号、观察相应的响应情况,同时还可以观察数学模型的具体的变化情况。MATLAB是面对科学计算的高
5、性能可视化编程仿真软件,GUI是一种的图形用户界面。通过MATLAB/GUI设计和开发自动控制原理虚拟实验平台,不但能很好地解决传统实验存在的问题,加深对自动控制原理理论课程内容的理解,更能使学生摆脱复杂的数学公式,对新知识产生浓厚的探索兴趣。在设计过程中,我通过查阅相关的资料,增强了自己的自我学习能力和思考能力,同时通过向老师和同学的虚心求教,增强了自己的沟通能力。1.3 本文的任务和要求1.3.1 本文任务本次毕业设计研究的任务是基于MATLAB的自动控制原理虚拟实验平台的实现,简单的要求是用MATLAB中的GUI建成一个可视化的图形开发平台,在这个平台上去实现自动控制原理各个实验要求和实
6、验功能,验证实验原理。1.3.2 本文要求通过自动控制原理虚拟实验平台实现线型系统的时域分析、线性系统的根轨迹分析、线型系统的频域分析、控制系统的串联校正实验,然后重点介绍线性系统的时域分析的具体的原理、方法、实现的功能、实验操作过程以及仿真图形。2 自动控制原理虚拟实验平台总体概述及其实现工具介绍2.1 MATLAB工具介绍 我们在设计自动控制原理虚拟实验平台的时候需要用到MATLAB设计工具,以此搭建我们所想要的虚拟实验平台,为了对后面更好地的设计与实验,我们需要了解MATLAB的发展历史以及它的功能,掌握软件的实际操作原理。在20世纪80年代以来,为了研究某种问题,各种计算机语言接连出现
7、,当然,在数学研究当中,为了更好地更方便地数值计算、科学研究、工程计算等其他方面,MATLAB软件应运而生。MATLAB是由美国人MathWorks公司推出,是MATrix LABoratory的缩写,中文名称是矩阵实验室。自推广以来,得到了社会上的普遍认同以及广泛的应用,发展至今推出了各种版本,里面的功能越来越丰富和强大,同时它的语言易于掌握,所以深受各大高等学校的喜爱以及科学研究人员的使用,尤其在欧美高校,MATLAB软件的使用成为了学生的必备的学习技能。毋庸置疑,MATLAB的功能相当强大,可以用于数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真以及图形处理,同时具有内容强
8、大的工具箱进行设计开发。MATLAB是一个具有很强的开放性软件,除了可以利用的内部函数外,我们可以自己对里面的源文件进行修改或者可以加入自己编写好的文件进行设计使用。2.2 Simulink工具简单介绍Simulink是Math Works软件公司在1990年推出来的,它是实现控制系统进行构造模型、仿真设计和分析的软件包,简单来说就是MATLAB软件功能的一种拓展,它提供了不同功能的基本系统模块,我们只要知道这些模块的输入、输出以及它的功能,而不必知道各种模块的里面具体的功能与实现,只要通过各种模块的调用与连接就能构造出我们所需要的系统模型,文件存储形式以.mdl形式存取,最后我们可以基于此进
9、行方针与分析。对于简单的控制系统来说,我们可以利用相关的函数和相关的线性方程进行求解,但对更为复杂的系统来说,我们之前的方法就不可以实现了,所以则必须使用Simulink进行仿真与分析。2.3 GUI简单介绍与可视化接口环境2.3.1 GUI概念介绍由菜单、窗口、对话框等各种图形元素构成的用户界面被叫做图形用户界面,英文名称是Graphical User Interface,简称GUI。它是计算机与用户进行信息交流的窗口和平台,在自动控制原理虚拟实验平台设计当中它赋予着主要设计工作。对于GUI操作应该是易于理解的便于操作的,当我们点击某项操作的时候,用户图形界面就已经开始了它的功能操作。MAT
10、LAB作为一款强大的科学计算软件,同时也提供了图形用户界面设计的功能,它包括了三类图形用户界面对象,包括用户界面控件对象、下拉式菜单对象和快捷菜单对象。根据我们所想要的图形用户界面对象,我们可以设计出界面非常友好、操作相当方便的图形用户界面。在MATLAB软件中,为GUI开发提供了一个非常方便且高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,所有GUI设计都被MATLAB支持在这个集成的环境中。GUIDE将所有设计好的GUI设计模型保存在一个.fig文件当中,并且同时生成了.m文件,对于.fig文件设计,它包括了GUI图形窗口以及图形窗口对象,对于.m文件而言,它包括了GUI
11、设计、控制函数及其定义为子函数的用户控件回调函数。GUIDE在GUI设计过程中直接自动生成了.m文件框架,它所具有的优点如下: (a).m文件在.fig文件生成的同时就已经生成了一些必要的代码。 (b)管理图形对象句柄并执行回调函数的子程序。 (c)支持自动插入回调函数原型。 (d)提供了管理全局变量的便利途径。2.3.2 GUI图形用户界面的打开在MATLAB中打开GUI可以以下的操作方法(1) 选择菜单栏上的“File”选项,再选择“New”选项,最后得到“GUI”命令。(2) 在命令窗口(commend Windows)当中输入“Guide”命令或者输入“Guide Filename”,
12、同样可以打开可视化接口。(3) 选择菜单栏上的“GUIDE”快速启动按钮,可以直接打开界面。MATLAB软件为GUI图形用户界面设计总共准备了4种模板,包括Blank GUI(默认)、GUI with Uicontrols(带控件对象的GUI模板)、GUI with Axes and Menu(带坐标轴与菜单的GUI模板)与Modal Question Dialog(带模式问话对话框的GUI模板)。如下图图2-1 GUI的初始化界面如果没有设计好的可视化图形文件,我们要选择空白的可视化文件,即Blank GUI(空白),然后点击OK按钮,就会显示出GUI设计窗口,如下图2-2。图2-2 GUI
13、设计窗口从GUI设计窗口可以看出,共有五个设计工具,它们分别是:(a) 对象属性查看器(Property):可以查看每个对象的属性值,同时可以修改设置对象的属性值。(b) 菜单编辑器(Menu Editor):对下拉式菜单进行创建、设计和修改。(c) 位置调整工具(Alignment Tool):多个对象通过该工具左右、上下进行位置进行调整。(d) 对象浏览器(Object Browser):可以观察当前设计阶段的各个句柄图形对象。(e) Tab顺序编辑器(Tab Order Editor):通过该工具,设置当按下键盘上的Tab键时,对象被选中的先后顺序。通过控件的布局,相应的生成了m函数文件
14、,对于空间的性能,我们可以通过在回调函数里面进行相应的修改,以达到自己的要求,通过这样的方法可以很方便的设计出友好的,简洁的,功能强大的图形界面。2.4 自动控制原理简单介绍随着计算机技术的飞快的发展和广泛的应用,自动控制原理理论和技术在宇宙航空、机器人控制、导弹制导卫星发射和核能等高科技领域方面的应用越来越广泛。同时自动控制原理技术的应用范围现在已扩展到生物、医学、环境等生活中的其他领域,成为人们生活当中不可或缺的一部分。随着人类社会的进步和人们生活水平的提高,自动控制原理技术必将在人类的未来当中对于人类去认识自然改造自然发挥着难以想象的作用。所以对于一个工程技术人员,学习自动控制原理有关的
15、知识有必要的。同时大学阶段的学习已经把自动控制原理当作一门专业基础课程,尤其是电气自动化、电力系统、船舶与海洋工程等相关的专业都已经开设了这门课程。自动控制原理的主要内容包括控制系统数学模型、时域分析法、根轨迹分析法、频域分析发以及控制系统校正与综合等方面知识。它们大都将在这个虚拟实验平台得以实现与研究分析。3虚拟实验平台总体概述3.1 虚拟实验平台设计原则本次所设计的虚拟实验平台是基于MATLAB7.0以上的版本所开发出来的,在整个设计当中,为了更好地让大家看清整个的设计流程,我们是采用的自上而下、由上一级转到下一级而设计。在设计过程中,我们首先要确定一个总体框架,然后我们再确定好我们要研究
16、的几个实验原理项目作为这个框架的子系统,之后在各个实验原理上设计两三个对应这个实验原理的功能实现、认证以及分析,在编程设计方面,我们要由下而上去设计,设计好每个部分的编程代码,最后实现一个整体虚拟实验平台的开发3.2 虚拟实验平台设计界面模块结构及功能3.2.1 平台模块结构该虚拟实验平台设虚拟实验平台有四大部分构成,包括线型系统时域分析、线性系统频域分析、线型系统根轨迹分析以及控制系统串联校正,如下结构图:图3-1 虚拟实验平台结构图3.2.2平台功能该虚拟实验平台的功能是以根据生活中关于科学研究、教学活动、学生实验探究为目的所完成的,所以该平台的功能要设计成集成的、多样化的一个实验平台,具
17、体的功能如下:(a)虚拟实验平台输入参数形式多样化:如传递函数输入的形式,可以任意改变分子分母的参数。(b)虚拟实验平台绘图功能:通过参数的设定,我们可以得到我们所想要的响应曲线或是波形图等其他仿真图形。(c)虚拟实验平台分析功能:比如在时域分析中我们可以得到阶跃响应性能指标(峰值时间、超调量、调节时间),在频域分析中我们可以得到谐振频率、谐振峰值、频带、零频。(d)控制系统校正功能:对所需要的校正的控制系统进行超前校正和滞后校正,可以得到校正前后的bode图和阶跃响应曲线以及各种性能指标。4 自动控制原理实验在虚拟实验平台的实现4.1 平台界面的总体要求我们在设计我们所需要的界面基本上都会选
18、择GUI作为优选工具,以达到事半功倍的效果。该设计的虚拟实验平台包括三级界面,第一级界面就是我们的主界面,由主界面可以进入到第二级界面,包括线性系统时域分析界面、线性系统频域分析界面、线性系统根轨迹分析界面控制系统校正实验界面。每个第二级界面都可以进入到实现它的某种功能的第三级界面,对于线型系统时域分析界面来说,它的所实现的波形图就在该界面,所以不需要再进入下一级界面面,对于线性系统频域界面来说,下一级界面包括了奈奎斯特曲线以及伯德图,对于线性系统根轨迹分析界面来说,下一级界面有开环零极点对根轨迹的影响等,对于控制系统的串联校正实验界面来说,包括了基于频域法的超前校正及基于频域法的滞后校正界面
19、。所以对于界面设计来说,我们是由上而下来设计的。4.2 主界面的设计我们设计的主界面能够让用户很快地了解该虚拟实验平台的大概的功能,并且可以通过简单的操作在图形用户界面上进行程序的编写。该界面有四个窗口空间组成组成,在各自的窗口中我们可以通过图形用户界面可以很方便的了解自动控制原理的几个典型的实验模型,下面我们来介绍主界面的设计,具体步骤如下:首先我们点击MATLAB界面工具栏上的快速启动图标,可以直接启动一个GUIDE的集成开发环境的对话框,或者在file菜单中点击new,在点击GUI也是可以,当然了直接在命令窗口(Command Window)上输入GUIDE命令也是可以的,最好的启动方式
20、还是第一种方法。选择空白操作界面,保存文件名dianxinghuanjie.fig,则打开了一个设计界面,同时也自动生成了dianxinghuanjie.m文件。我们在GUIDE的设计编辑区内(Layout Area)内从工具栏上拖入一个静态文本框(Static Text),静态文本是在对话框中显示我们所需要的说明性文字,双击该控件,我们可以打开一个对象属性框,或者可以通过单击该控件点击对象属性查看器(Property Inspector)也可以打开,选择String属性,该属性的取值是字符串,它定义了控件对象的说明性文字,写入“自动控制原理虚拟实验平台”用来给用户提供必要的提示,但用户不能在
21、程序的执行过程种中来修改文字说明, 如果要改变字体的大小粗细,可以点击FontWeight属性,它定义了字体的粗细,点击FontSize属性,它定义了字体的大小,属性的取值是数值,点击ForegroundColor属性,定了控件对象的说明性文字的颜色,其默认颜色是黑色,利用上述的方法,再点击一个静态文本框,写入“欢迎使用”。然后选择坐标轴(Axes)控件,它是用来显示图形和图像,在这里我们要添加一张图片,我们用imshow函数来实现,在之后生成的M文件里添加imshow(IncoIncol.png)这个语句,选择面板控件(Panel),再双击属性查看器,修改属性Title为“实验选择”,再调整
22、标题文字方向位于正上中央,在拖入四个按钮控件(Push Button),按钮控件是最常用的控件对象,它的主要特征是在矩形框上加上文字说明,一个按钮只代表一种操作。之后在String的属性下分别改成线型系统时域分析、线型系统频域分析、线性系统根轨迹分析、控制系统校正实验。对于上面四个控件按钮我们也可以再进行菜单的建立,我们可以通过GUI设计窗口的工具栏上的Menu Editor 命令按钮打开,还可以在菜单栏中点击“Tool”,再点击“Menu Edior”(菜单编辑器)。如下图4-1,该图是已经编辑好的菜单编辑器。图4-1 设置菜单后的菜单编辑器通过该图形我们可以看到,菜单编辑器的左上角的第一个
23、按钮的作用是用来创建一级菜单项,第二个按钮是用来使用来创建一级菜单的子菜单,要想创建这个子菜单,我们必须要先点击一级菜单项后,选中左上角的第二个按钮来创建。我们可以发现,创建某个菜单项后,图框的右边就会显示该菜单的相关的属性,我们可以在这里设置好我们的属性,我们先创建四个一级菜单,分别在右边Label属性中修改为实验一、实验二、实验三和实验四,再在各自的子菜单中的属性项里修改为线性系统时域分析、线型系统根轨迹分析、线性系统频域分析和控制系统的串联校正实验。同时也分别在各自的Tag属性中修改,分别为One、Time、Two、Rlocus、Three、Frequency、Four、Modify。T
24、ag属性是用来定义控件的标识值,取值为字符串,在任何程序中都可以通过该标识值来控制该控件。同时我们必须在各自对应的Callback属性中进行修改。(1)菜单实验一的Callback属性:dianxinghuanjie('One_Callback',hObject,eventdata,guidata(hObject) 子菜单线性系统时域分析的Callback属性:dianxinghuanjie('Time_Callback',hObject,eventdata,guidata(hObject)(2)菜单实验二的Callback属性:dianxinghuanjie(
25、'Two_Callback',hObject,eventdata,guidata(hObject)子菜单线性系统根轨迹分析属性:dianxinghuanjie('Rlocus_Callback',hObject,eventdata,guidata(hObject)(3)菜单实验三的Callback属性:dianxinghuanjie('Three_Callback',hObject,eventdata,guidata(hObject) 子菜单线性系统频域分析属性:dianxinghuanjie('Frequency_Callback
26、9;,hObject,eventdata,guidata(hObject)(4)菜单实验四的Callback属性:dianxinghuanjie('Four_Callback',hObject,eventdata,guidata(hObject)子菜单控制系统校正实验的Callback属性:dianxinghuanjie('Modify_Callback',hObject,eventdata,guidata(hObject)最后我们再一次保存设计好的dianxinghuanjie.fig文件,选择工具栏上的运行按钮,同时也自动生成了dianxinghuanjie
27、.m文件。得到主界面图形,如图4-2: 图4-2 主界面图4.3 线性系统时域分析界面4.3.1 时域分析法的介绍时域分析法是以拉普拉斯变换为工具,利用传递函数直接在时间域上研究自动控制系统的一种方法。它通过响应曲线来分析控制系统的一些性能,具有直接而全面的优点,但仍有一些不足,比如在分析的过程当中计算量较大,尤其是对于高阶系统。时域响应指的是系统在外部的输入(设定值输入或是扰动输入)作用下的输出过程,典型的时域响应有单位阶跃响应、单位脉冲响应、单位斜坡响应、单位加速度响应、单位正弦响应。本时域分析法的设计以典型输入的单位脉冲输入、单位阶跃输入以及单位斜坡输入为主的输入,来观察各个的响应曲线进
28、行分析,通过阶跃响应性能指标(包括峰值时间、调节时间、上升时间、超调量)来研究问题和分析问题,主要针对一阶或二阶系统。对于分子与分母参数的设定是任意的随机的,这更加使问题研究的深入与透彻。4.3.2 时域分析界面的设计根据设计需要,我们需要在布局编辑区里添加八个静态文本框(Static Text),两个按钮(Push Button),也要修改自己String属性,同时还要添加两个文本编辑框(Edit Text)、五个单选按钮(Radio Button)、六个面板控件(Panel)和一个坐标轴(Axes),整体的模块布局就可以了,完成各部件的属性的设置,保存为Time_reponse.fig文件
29、中。为了实现控件的功能,我们需要编写相应的程序代码。右键单击任一图形对象,在弹出的快捷菜单中点击View Callbacks,在点击Callback命令,这时将自动打开一个M文件,这个时候就可以在各控件相应的回调函数区内修改对应的程序代码。下面是部分程序代码:function radiobutton4_Callback(hObject, eventdata, handles)set(hObject,'Value',1);set(handles.radiobutton5,'Value',0);set(handles.radiobutton3,'Value&
30、#39;,0);num=str2num(get(handles.edit1,'String');%获取控件Tag属性为edit1的控件里面的数值作为分子den=str2num(get(handles.edit2,'String');%获取控件Tag属性为edit2的控件里面的数值作为分母load('dataDdata.mat');if (fla=0) G=tf(num,den); y,t=step(G); %开环阶段响应 axes(handles.axes2) plot(t,y,'Linewidth',2) elseif(fla=
31、1) G=tf(num,den); y,t=step(feedback(G,1); %闭环阶段响应 axes(handles.axes2) plot(t,y,'Linewidth',2) hold on Y,k=max(y); tp=fix(t(k)*100)/100; %求峰值时间 plot(tp tp,0 Y,'-r','Linewidth',1.5); plot(0 tp,Y Y,'-r','Linewidth',1.5); plot(tp,0,'o', 'MarkerEdgeColo
32、r','k', 'MarkerFaceColor','k','MarkerSize',6); %画出峰值时间点 str0=num2str(tp); str=str0,'s' set(handles.text7,'String',str) C=dcgain(feedback(G,1); %求系统稳态值 M=fix(1000*(Y-C)/C)/10; str0=num2str(M); str=str0,'%' set(handles.text8,'String',
33、str) %求超调量 n=1; while y(n)<0.1*C %通过循环,求取输出第一次到达终值的10%的时间 n=n+1; end m=k; while y(n)>0.9*C %通过循环,求取输出第一次到达终值的90%的时间 m=m-1; end risetime=fix(100*(t(m)-t(n)/100; %求上升时间 str0=num2str(risetime); str=str0,'s' set(handles.text6,'String',str) %显示上升时间 i=length(t); while (y(i)>0.98*C
34、)&(y(i)<1.02*C) i=i-1; end Settingtime=fix(100*t(i)/100; %求调节时间 str0=num2str(Settingtime); str=str0,'s' set(handles.text12,'String',str) %显示调节时间plot(Settingtime,0,'o', 'MarkerEdgeColor','k', 'MarkerFaceColor','m','MarkerSize',6);
35、 %显示调节时间%的时间点 hold off F,h=findpeaks(y); che=length(F); if(che>=2) rate=fix(100*(F(1)-C)/(F(2)-C)/100;%求衰减比 str0=num2str(rate); str=str0,'%' set(handles.text14,'String',str) %显示衰减比 else set(handles.text14,'String','ÎÞË¥¼õ±È')
36、 %求衰减比 end endgrid onxlabel('Time(s)')ylabel('Y(t)')完成回调函数后,我们点击运行一下,得到线性系统时域分析图,从图中我们可以看到阶跃响应曲线,以及系统的性能指标,如图4-3:图4-3 线型系统时域分析图4.4 线型系统根轨迹分析界面4.4.1根轨迹法的介绍根轨迹分析法是一种求系统闭环极点的图解方法,它由开环传递函数来求取闭环特征根的轨迹的规律,不用求解高阶系统的特征根。当改变增益值或增加开环零极点时,可以利用根轨迹法预测其对闭环零点位置的影响。根据开环系统的零点和极点,通过一个或几个参数的变化,来研究系统极点变
37、化情况。在MATLAB中采用函数pzmap()绘制系统零点,输入“rlocus(GH)”可得到我们需要的根轨迹图。4.4.2根轨迹界面的设计与分析界面设计包括三个部分的参数的输入,一个是开环增益的参数的参数的输入,一个是零点参数的输入,另一个是极点参数的输入,通过这些参数的输入,我们可以得到根轨迹一些性能的分析。最后再对其余的控件进行布局,最后点击保存在Rlocus.fig文件中,同时生成了Rlocus.m文件,再在Rlocus.m文件中相应的回调函数程序区内修改和添加相应的程序,最后点击运行,得到线型系统根轨迹分析图,如图4-4,我们可以看到闭环系统单位阶跃响应曲线。 图4-4 线型系统根轨
38、迹分析图然后我们点击一下开环根轨迹按钮,得到开环根轨迹曲线,如图4-5:然后我们可以改变一些参数,来继续观察开环根轨迹曲线。图4-5 开环根轨迹曲线当我们改变参数,我们会得出一些根轨迹的性能结论分析。我们会发现,当加入开环零点,则会改变渐近线的条数和渐近线的倾角;当增加开环零点的个数,相当于增加微分作用,使得根轨迹向左移动或是弯曲,这样的好处是大大的提高了控制系统的相对稳定性,同时我们可以发现,当增加的开环零点越来越接近坐标轴的原点的时候,它的微分作用就会越来越强,表明了控制系统的相对稳定性非常的好;当加入开环极点的时候,则会改变渐近线的条数的渐近线的倾角,增加开环极点的个数,等于是增强了积分
39、的作用,从而导致了根轨迹向右移动或者是弯曲,从而降低了控制系统的稳定性。4.5 线型系统频域分析界面4.5.1 频域法的介绍对于频域分析法来说,它是一种利用频域特性来研究控制系统的一种图解方法,以传递函数为基础,反映了控制系统对正弦输入的响应性能。在频域法中其基本思想是将控制系统中的各个变量看做成信号来处理,而且这些信号都是由正弦信号合成的,同时它们的频率是不同的。要研究频域法的特性可以通过频域特性曲线进行研究,包括曲线的形状及其特征量。而频域特性是指稳态输出与输入之比在正弦信号的作用下相对频域的有关特性。4.5.2 频域分析界面的设计我们可以作出伯德图和奈奎斯特曲线以及单位阶跃响应曲线来分析
40、频域特性,进行模块布局,保存在Frequency.fig文件中,在同时生成的m文件中对各个控件的回调函数进行相应的修改,并点击运行,得到线型系统频域分析界面,如图4-6,点击伯德图控件,得到伯德图,如图4-7,点击奈奎斯特控件图标,如图4-8,改变传递函数输入的参数进行频域特性分析。图4-6 线型系统频域分析图 图4-7 伯德图图4-8 奈奎斯特曲线4.6 控制系统校正实验界面4.6.1 控制系统校正介绍在实际的社会生活中,我们往往对一个系统设计的过程中,为了达到某些性能指标和设计要求,需要进行参数的选择或是对原有的控制系统进行元件的添加,这就是我们所要研究的控制系统的校正问题。控制系统校正根
41、据校正装置的特性可以分为超前校正、滞后校正、滞后-超前校正、串联校正以及反馈校正。4.6.2控制系统校正实验界面的设计在我们的控制系统校正实验中,我们主要研究基于频率法的串联超前校正以及串联滞后校正,通过单位阶跃响应曲线、伯德图来具体研究。先进性模块布局,保存在Modify.fig文件中,自动生成了Modify.m文件,并在相应的回调函数内修改程序,最终点击运行,得到控制系统校正实验界面图,如图4-9,可以看到系统校正前后的伯德图,点击超前校正控件按钮,得到校正前后系统阶跃响应曲线,如图4-10,点击之后滞后校正控件按钮,得到校正前后系统阶跃响应曲线,如图4-11。同时我们改变参数的输入,并加
42、以分析。图4-9 控制系统校正实验图图4-10 超前校正前后系统阶跃响应曲线图4-11 滞后校正前后系统阶跃响应曲线5 结论经过几个月的努力,我最终完成了基于MATLAB的自动控制原理虚拟实验平台的开发,对自动控制原理的几个实验都较好的进行了仿真,通过仿真图形的分析,加深了对自动控制原理的深入的了解,被MATLAB的强大功能所吸引,已经较为熟练地掌握了MATLAB的一些功能操作,对MATLAB的程序语言更为的熟悉与了解。在设计开发的过程中遇到了很多的困难,但这份曲折的过程锻炼了我的独立思考的能力与分析能力, 让我明白了解决一个问题必须要首先要了解它的基本原理,只有这样处理问题才能事半功倍,达到
43、预期的效果,同时也提高了我与他人的沟通能力,谦虚地向别人求教,也很感谢我的指导老师。设计虽然完成了但同时也发现了自己能力的不足,在今后人生道路上会更加的努力。参考文献1冯程,初俊博,汪微槟.基于Matlab的虚拟实验平台在大学生科技创新活动中的应用J.科技风,2015(02)2刘金颂,张庆阳,苏晓峰,杨蕾.Matlab软件在自动控制原理实验中的应用J.实验技术与管理,2014(06)3李东,冯乔,李敏.高职院校电类课程虚拟实验系统的项目实施J电子世界,2014(03)4张佳.基于小型光电跟踪系统的PID控制实验J.实验室研究与探索,2013(11)5刘中,袁少强,张军香.自动控制原理实验课的改
44、革与实践J.实验室研究与探索,2013(11)6王焕然,徐颖秦.自动控制原理虚拟实验平台的设计与开发J.电力系统及其自动化学报.2010(04)7彭道刚,杨平,金光远.基于VB和MATLAB的自动控制原理CAI软件设计J.上海电力学院学报,2006(02)8蒋珉,马天河,刘彬,程成.自动控制原理的MATLAB软件实验平台J.电气电子教学学报,2004(01)9张巍,蔡启仲,罗文广.MATLAB在自动控制原理实验方面的应用J.广西工学院学报.1999(04)10李农庄,候国莲,张建华.MATLAB环境下的自动控制原理教学软件开发J.现代电力.1999(03)附录1:虚拟实验平台总源程序%主界面的
45、源程序function varargout = dianxinghuanjie(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', dianxinghuanjie_OpeningFcn, . 'gui_OutputFcn', dianxinghuanjie_OutputFcn, . 'gui_LayoutFcn', , .
46、'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction dianxinghuanjie_OpeningFcn(hObject, eventdata, handles, varargin)hand
47、les.output = hObject;movegui(gcf,'center')axes(handles.axes1)imshow('IncoInco1.png')guidata(hObject, handles);function varargout = dianxinghuanjie_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;function Time_Callback(hObject, eventdata, handles)close(gcf)Time_Repo
48、nse;function One_Callback(hObject, eventdata, handles)function Two_Callback(hObject, eventdata, handles)function Three_Callback(hObject, eventdata, handles)function Four_Callback(hObject, eventdata, handles)function Rlocus_Callback(hObject, eventdata, handles)close(gcf)Rlocus;function Frequency_Call
49、back(hObject, eventdata, handles)close(gcf)Frequency;function Modify_Callback(hObject, eventdata, handles)close(gcf)Modify function OK_Callback(hObject, eventdata, handles)close(gcf)Time_Reponse;function pushbutton3_Callback(hObject, eventdata, handles)close(gcf)Rlocus;function pushbutton4_Callback(
50、hObject, eventdata, handles)close(gcf)Frequency;function pushbutton5_Callback(hObject, eventdata, handles)close(gcf)Modify;%线型系统时域分析界面的源程序function varargout = Time_Reponse(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gu
51、i_OpeningFcn', Time_Reponse_OpeningFcn, . 'gui_OutputFcn', Time_Reponse_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varar
52、gin:);else gui_mainfcn(gui_State, varargin:);end function Time_Reponse_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject; num=str2num(get(handles.edit1,'String');den=str2num(get(handles.edit2,'String');movegui(gcf,'center');set(handles.radiobutton1,
53、9;Value',0);set(handles.radiobutton2,'Value',1);fla=1; %标志,用来确定系统是开环还是闭环,fla=1是闭环,fla=0是开环save('dataDdata','fla');G=tf(num,den);C=dcgain(feedback(G,1); %求阶跃响应的终值Step=1; %单位阶跃输入essp=Step-C; %位置误差str=num2str(essp); %将数字转换为字符set(handles.text18,'String',str); %显示稳态误差
54、set(handles.radiobutton4,'Value',1);set(handles.radiobutton5,'Value',0);set(handles.radiobutton3,'Value',0); y,t=step(feedback(G,1); %闭环阶跃响应axes(handles.axes2)plot(t,y,'Linewidth',2)hold onY,k=max(y); tp=fix(t(k)*100)/100; %求峰值时间plot(tp tp,0 Y,'-r','Linewi
55、dth',1.5);plot(0 tp,Y Y,'-r','Linewidth',1.5);plot(tp,0,'o', 'MarkerEdgeColor','k', 'MarkerFaceColor','k','MarkerSize',6); %画出峰值时间的时间点str0=num2str(tp);str=str0,'s'set(handles.text7,'String',str);C=dcgain(feedback(G,1
56、); %求系统稳态值 M=fix(1000*(Y-C)/C)/10;str0=num2str(M);str=str0,'%'set(handles.text8,'String',str) %求超调量n=1;while y(n)<0.1*C %通过循环,求取输出第一次到达终值的10%的时间 n=n+1; endm=k;while y(n)>0.9*C %通过循环,求取输出第一次到达终值的90%时间 m=m-1; endrisetime=fix(100*(t(m)-t(n)/100; %求上升时间str0=num2str(risetime);str=str0,'s'set(handles.text6,'String',str) %显示上升时间i=length(t);while (y(i)>0.98*C)&(y(i)<1.02*C) i=i-1;endSettingtime=fix(100*t(i)/100; %求调节时间str0=num2str(Settingtime); str=str0,'s'set(ha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 了解纺织材料特性试题及答案
- 电路基础期末试题及答案
- 等待救援面试题及答案
- 管理基础考试题及答案
- 互动营销与传统广告的区别试题及答案
- 七和弦乐理试题及答案
- 广告受众的多样性与考虑因素分析试题及答案
- 国际商业美术设计师考试例题解析及答案
- 林木种子法试题及答案
- 2024年国际商业美术设计师考试创意项目合作模式讨论试题及答案
- 产后抑郁症的原因及护理文献汇报
- 湖北省武汉市华中师大一附中2025届高考数学全真模拟密押卷含解析
- 【MOOC】行政法与行政诉讼法学-西南政法大学 中国大学慕课MOOC答案
- ARVR在电商设计中的应用与前景
- 宣传工作实务-形考任务三-国开(FJ)-参考资料
- 贵州省遵义市(2024年-2025年小学五年级语文)人教版小升初真题((上下)学期)试卷及答案
- 物流行业综合工时优化方案
- 宫颈癌护理查房-5
- 2023年上海铁路局集团有限公司招聘考试真题
- 中国高血压防治指南(2024年修订版)要点解读
- 轴类零件加工工艺设计-毕业设计论文
评论
0/150
提交评论