(参考)基于某MATLAB地自动控制系统原理虚拟实验平台开发

上传人:沈*** 文档编号:86796194 上传时间:2022-05-08 格式:DOC 页数:57 大小:1.06MB
收藏 版权申诉 举报 下载
(参考)基于某MATLAB地自动控制系统原理虚拟实验平台开发_第1页
第1页 / 共57页
(参考)基于某MATLAB地自动控制系统原理虚拟实验平台开发_第2页
第2页 / 共57页
(参考)基于某MATLAB地自动控制系统原理虚拟实验平台开发_第3页
第3页 / 共57页
资源描述:

《(参考)基于某MATLAB地自动控制系统原理虚拟实验平台开发》由会员分享,可在线阅读,更多相关《(参考)基于某MATLAB地自动控制系统原理虚拟实验平台开发(57页珍藏版)》请在装配图网上搜索。

1、word目录摘要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 虚拟实验平台设计界面模块结构及功能773.2.2 平台功能84 自动控制原理实验在虚拟实验平台的实现94.1 平台界

2、面的总体要求94.2 主界面的设计9134.3.1 时域分析法的介绍134.3.2 时域分析界面的设计144.4 线型系统根轨迹分析界面17184.4.2 根轨迹界面的设计184.5 线性系统频域分析界面194.5.1 频域法的介绍194.5.2 频域分析界面的设计204.6 控制系统校正实验界面224.6.1 控制系统校正介绍22225结论25参考文献26附录127致5556 / 571 绪论1.1 本文研究背景对于大学生而言自动控制原理是大学阶段的自动控制工程、机器自动控制操作、物流设备工程等专业的重要的专业基础课程,涉及到自动控制系统的模型建立、系统分析、系统设计的相关基本理论和相关技术

3、设计。它的典型特点是概念比较抽象,数字含量巨大,计算相当复杂,从而导致学生比较难于理解和消化,实验是理解和消化相关课程容的非常重要的途径。目前相当多的大学高校的实验教学仍处于传统模拟实验阶段,通过利用集成封闭的传统实验箱,将相应的有源网络模块整个连接成了典型环节和系统,然后施加典型信号,通过示波器仔细观察实验结果。然而对于这种实验方法仍存在明显不足,比如说(1)实验室的实验箱集成度很高,从而让学生对实验目的和实验计划出现盲目性,所以很容易导致损坏仪器设备。(2)学生的理论性知识和实验动手操作是互相分开的,导致了学生缺乏主动性学习和创造性性学习。(3)因为元件的非线性等一些元素,导致了实验结果与

4、理论知识差异较大,相距甚远。为了改变这种现象,我们通过利用MATLAB中的具有可视化编程能力的图形用户界面(简称GUI)和控制系统工具箱中的有关的丰富的库函数等,开发出了基于MATLAB的自动控制原理虚拟实验平台。1.2 本文的选题意义自动控制原理虚拟实验平台就是把真实的相关的自动控制环节、系统和数学建模有机地结合的一个实验操作平台。学生不仅可以在平台上修改相关的实验参数、改变相关的输入信号、观察相应的响应情况,同时还可以观察数学模型的具体的变化情况。MATLAB是面对科学计算的高性能可视化编程仿真软件,GUI是一种的图形用户界面。通过MATLAB/GUI设计和开发自动控制原理虚拟实验平台,不

5、但能很好地解决传统实验存在的问题,加深对自动控制原理理论课程容的理解,更能使学生摆脱复杂的数学公式,对新知识产生浓厚的探索兴趣。在设计过程中,我通过查阅相关的资料,增强了自己的自我学习能力和思考能力,同时通过向老师和同学的虚心求教,增强了自己的沟通能力。1.3 本文的任务和要求1.3.1 本文任务本次毕业设计研究的任务是基于MATLAB的自动控制原理虚拟实验平台的实现,简单的要用MATLAB中的GUI建成一个可视化的图形开发平台,在这个平台上去实现自动控制原理各个实验要求和实验功能,验证实验原理。1.3.2 本文要求通过自动控制原理虚拟实验平台实现线型系统的时域分析、线性系统的根轨迹分析、线型

6、系统的频域分析、控制系统的串联校正实验,然后重点介绍线性系统的时域分析的具体的原理、方法、实现的功能、实验操作过程以及仿真图形。2 自动控制原理虚拟实验平台总体概述及其实现工具介绍MATLAB工具介绍 我们在设计自动控制原理虚拟实验平台的时候需要用到MATLAB设计工具,以此搭建我们所想要的虚拟实验平台,为了对后面更好地的设计与实验,我们需要了解MATLAB的发展历史以及它的功能,掌握软件的实际操作原理。在20世纪80年代以来,为了研究某种问题,各种计算机语言接连出现,当然,在数学研究当中,为了更好地更方便地数值计算、科学研究、工程计算等其他方面,MATLAB软件应运而生。MATLAB是由美国

7、人MathWorks公司推出,是MATrix LABoratory的缩写,中文名称是矩阵实验室。自推广以来,得到了社会上的普遍认同以及广泛的应用,发展至今推出了各种版本,里面的功能越来越丰富和强大,同时它的语言易于掌握,所以深受各大高等学校的喜爱以及科学研究人员的使用,尤其在欧美高校,MATLAB软件的使用成为了学生的必备的学习技能。毋庸置疑,MATLAB的功能相当强大,可以用于数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真以及图形处理,同时具有容强大的工具箱进行设计开发。MATLAB是一个具有很强的开放性软件,除了可以利用的部函数外,我们可以自己对里面的源文件进行修改或者可以

8、加入自己编写好的文件进行设计使用。 Simulink工具简单介绍Simulink是Math Works软件公司在1990年推出来的,它是实现控制系统进行构造模型、仿真设计和分析的软件包,简单来说就是MATLAB软件功能的一种拓展,它提供了不同功能的基本系统模块,我们只要知道这些模块的输入、输出以及它的功能,而不必知道各种模块的里面具体的功能与实现,只要通过各种模块的调用与连接就能构造出我们所需要的系统模型,文件存储形式以.mdl形式存取,最后我们可以基于此进行方针与分析。对于简单的控制系统来说,我们可以利用相关的函数和相关的线性方程进行求解,但对更为复杂的系统来说,我们之前的方法就不可以实现了

9、,所以则必须使用Simulink进行仿真与分析。GUI简单介绍与可视化接口环境2.3.1 GUI概念介绍由菜单、窗口、对话框等各种图形元素构成的用户界面被叫做图形用户界面,英文名称是Graphical User Interface,简称GUI。它是计算机与用户进行信息交流的窗口和平台,在自动控制原理虚拟实验平台设计当中它赋予着主要设计工作。对于GUI操作应该是易于理解的便于操作的,当我们点击某项操作的时候,用户图形界面就已经开始了它的功能操作。MATLAB作为一款强大的科学计算软件,同时也提供了图形用户界面设计的功能,它包括了三类图形用户界面对象,包括用户界面控件对象、下拉式菜单对象和快捷菜单

10、对象。根据我们所想要的图形用户界面对象,我们可以设计出界面非常友好、操作相当方便的图形用户界面。在MATLAB软件中,为GUI开发提供了一个非常方便且高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,所有GUI设计都被MATLAB支持在这个集成的环境中。GUIDE将所有设计好的GUI设计模型保存在一个.fig文件当中,并且同时生成了.m文件,对于.fig文件设计,它包括了GUI图形窗口以及图形窗口对象,对于.m文件而言,它包括了GUI设计、控制函数及其定义为子函数的用户控件回调函数。GUIDE在GUI设计过程中直接自动生成了.m文件框架,它所具有的优点如下: (a).m文件在.

11、fig文件生成的同时就已经生成了一些必要的代码。 (b)管理图形对象句柄并执行回调函数的子程序。 (c)支持自动插入回调函数原型。 (d)提供了管理全局变量的便利途径。2.3.2 GUI图形用户界面的打开在MATLAB中打开GUI可以以下的操作方法(1) 选择菜单栏上的“File”选项,再选择“New”选项,最后得到“GUI”命令。(2) 在命令窗口(mend Windows)当中输入“Guide”命令或者输入“Guide Filename”,同样可以打开可视化接口。(3) 选择菜单栏上的“GUIDE”快速启动按钮,可以直接打开界面。MATLAB软件为GUI图形用户界面设计总共准备了4种模板,

12、包括Blank GUI(默认)、GUI with Uicontrols(带控件对象的GUI模板)、GUI with Axes and Menu(带坐标轴与菜单的GUI模板)与Modal Question Dialog(带模式问话对话框的GUI模板)。如下图图2-1GUI的初始化界面如果没有设计好的可视化图形文件,我们要选择空白的可视化文件,即Blank GUI(空白),然后点击OK按钮,就会显示出GUI设计窗口,如下图2-2。图2-2GUI设计窗口从GUI设计窗口可以看出,共有五个设计工具,它们分别是:(a) 对象属性查看器(Property):可以查看每个对象的属性值,同时可以修改设置对象的

13、属性值。(b) 菜单编辑器(Menu Editor):对下拉式菜单进行创建、设计和修改。(c) 位置调整工具(Alignment Tool):多个对象通过该工具左右、上下进行位置进行调整。(d) 对象浏览器(Object Browser):可以观察当前设计阶段的各个句柄图形对象。(e) Tab顺序编辑器(Tab Order Editor):通过该工具,设置当按下键盘上的Tab键时,对象被选中的先后顺序。通过控件的布局,相应的生成了m函数文件,对于空间的性能,我们可以通过在回调函数里面进行相应的修改,以达到自己的要求,通过这样的方法可以很方便的设计出友好的,简洁的,功能强大的图形界面。2.4 自

14、动控制原理简单介绍随着计算机技术的飞快的发展和广泛的应用,自动控制原理理论和技术在宇宙航空、机器人控制、导弹制导卫星发射和核能等高科技领域方面的应用越来越广泛。同时自动控制原理技术的应用围现在已扩展到生物、医学、环境等生活中的其他领域,成为人们生活当中不可或缺的一部分。随着人类社会的进步和人们生活水平的提高,自动控制原理技术必将在人类的未来当中对于人类去认识自然改造自然发挥着难以想象的作用。所以对于一个工程技术人员,学习自动控制原理有关的知识有必要的。同时大学阶段的学习已经把自动控制原理当作一门专业基础课程,尤其是电气自动化、电力系统、船舶与海洋工程等相关的专业都已经开设了这门课程。自动控制原

15、理的主要容包括控制系统数学模型、时域分析法、根轨迹分析法、频域分析发以及控制系统校正与综合等方面知识。它们大都将在这个虚拟实验平台得以实现与研究分析。3虚拟实验平台总体概述 虚拟实验平台设计原则本次所设计的虚拟实验平台是基于MATLAB7.0以上的版本所开发出来的,在整个设计当中,为了更好地让大家看清整个的设计流程,我们是采用的自上而下、由上一级转到下一级而设计。在设计过程中,我们首先要确定一个总体框架,然后我们再确定好我们要研究的几个实验原理项目作为这个框架的子系统,之后在各个实验原理上设计两三个对应这个实验原理的功能实现、认证以及分析,在编程设计方面,我们要由下而上去设计,设计好每个部分的

16、编程代码,最后实现一个整体虚拟实验平台的开发3.2 虚拟实验平台设计界面模块结构及功能3.2.1 平台模块结构该虚拟实验平台设虚拟实验平台有四大部分构成,包括线型系统时域分析、线性系统频域分析、线型系统根轨迹分析以及控制系统串联校正,如下结构图:图3-1虚拟实验平台结构图该虚拟实验平台的功能是以根据生活中关于科学研究、教学活动、学生实验探究为目的所完成的,所以该平台的功能要设计成集成的、多样化的一个实验平台,具体的功能如下:(a)虚拟实验平台输入参数形式多样化:如传递函数输入的形式,可以任意改变分子分母的参数。(b)虚拟实验平台绘图功能:通过参数的设定,我们可以得到我们所想要的响应曲线或是波形

17、图等其他仿真图形。(c)虚拟实验平台分析功能:比如在时域分析中我们可以得到阶跃响应性能指标(峰值时间、超调量、调节时间),在频域分析中我们可以得到谐振频率、谐振峰值、频带、零频。(d)控制系统校正功能:对所需要的校正的控制系统进行超前校正和滞后校正,可以得到校正前后的bode图和阶跃响应曲线以及各种性能指标。4 自动控制原理实验在虚拟实验平台的实现4.1 平台界面的总体要求我们在设计我们所需要的界面基本上都会选择GUI作为优选工具,以达到事半功倍的效果。该设计的虚拟实验平台包括三级界面,第一级界面就是我们的主界面,由主界面可以进入到第二级界面,包括线性系统时域分析界面、线性系统频域分析界面、线

18、性系统根轨迹分析界面控制系统校正实验界面。每个第二级界面都可以进入到实现它的某种功能的第三级界面,对于线型系统时域分析界面来说,它的所实现的波形图就在该界面,所以不需要再进入下一级界面面,对于线性系统频域界面来说,下一级界面包括了奈奎斯特曲线以及伯德图,对于线性系统根轨迹分析界面来说,下一级界面有开环零极点对根轨迹的影响等,对于控制系统的串联校正实验界面来说,包括了基于频域法的超前校正及基于频域法的滞后校正界面。所以对于界面设计来说,我们是由上而下来设计的。4.2 主界面的设计我们设计的主界面能够让用户很快地了解该虚拟实验平台的大概的功能,并且可以通过简单的操作在图形用户界面上进行程序的编写。

19、该界面有四个窗口空间组成组成,在各自的窗口中我们可以通过图形用户界面可以很方便的了解自动控制原理的几个典型的实验模型,下面我们来介绍主界面的设计,具体步骤如下:首先我们点击MATLAB界面工具栏上的快速启动图标,可以直接启动一个GUIDE的集成开发环境的对话框,或者在file菜单中点击new,在点击GUI也是可以,当然了直接在命令窗口(mand Window)上输入GUIDE命令也是可以的,最好的启动方式还是第一种方法。选择空白操作界面,保存文件名dianxinghuanjie.fig,则打开了一个设计界面,同时也自动生成了dianxinghuanjie.m文件。我们在GUIDE的设计编辑区(

20、Layout Area)从工具栏上拖入一个静态文本框(Static Text),静态文本是在对话框中显示我们所需要的说明性文字,双击该控件,我们可以打开一个对象属性框,或者可以通过单击该控件点击对象属性查看器(Property Inspector)也可以打开,选择String属性,该属性的取值是字符串,它定义了控件对象的说明性文字,写入“自动控制原理虚拟实验平台”用来给用户提供必要的提示,但用户不能在程序的执行过程种中来修改文字说明, 如果要改变字体的大小粗细,可以点击FontWeight属性,它定义了字体的粗细,点击FontSize属性,它定义了字体的大小,属性的取值是数值,点击Foregr

21、oundColor属性,定了控件对象的说明性文字的颜色,其默认颜色是黑色,利用上述的方法,再点击一个静态文本框,写入“欢迎使用”。然后选择坐标轴(Axes)控件,它是用来显示图形和图像,在这里我们要添加一图片,我们用imshow函数来实现,在之后生成的M文件里添加imshow()这个语句,选择面板控件(Panel),再双击属性查看器,修改属性Title为“实验选择”,再调整标题文字方向位于正上中央,在拖入四个按钮控件(Push Button),按钮控件是最常用的控件对象,它的主要特征是在矩形框上加上文字说明,一个按钮只代表一种操作。之后在String的属性下分别改成线型系统时域分析、线型系统频

22、域分析、线性系统根轨迹分析、控制系统校正实验。对于上面四个控件按钮我们也可以再进行菜单的建立,我们可以通过GUI设计窗口的工具栏上的Menu Editor 命令按钮打开,还可以在菜单栏中点击“Tool”,再点击“Menu Edior”(菜单编辑器)。如下图4-1,该图是已经编辑好的菜单编辑器。图4-1设置菜单后的菜单编辑器通过该图形我们可以看到,菜单编辑器的左上角的第一个按钮的作用是用来创建一级菜单项,第二个按钮是用来使用来创建一级菜单的子菜单,要想创建这个子菜单,我们必须要先点击一级菜单项后,选中左上角的第二个按钮来创建。我们可以发现,创建某个菜单项后,图框的右边就会显示该菜单的相关的属性,

23、我们可以在这里设置好我们的属性,我们先创建四个一级菜单,分别在右边Label属性中修改为实验一、实验二、实验三和实验四,再在各自的子菜单中的属性项里修改为线性系统时域分析、线型系统根轨迹分析、线性系统频域分析和控制系统的串联校正实验。同时也分别在各自的Tag属性中修改,分别为One、Time、Two、Rlocus、Three、Frequency、Four、Modify。Tag属性是用来定义控件的标识值,取值为字符串,在任何程序中都可以通过该标识值来控制该控件。同时我们必须在各自对应的Callback属性中进行修改。(1)菜单实验一的Callback属性:dianxinghuanjie(One_

24、Callback,hObject,eventdata,guidata(hObject) 子菜单线性系统时域分析的Callback属性:dianxinghuanjie(Time_Callback,hObject,eventdata,guidata(hObject)(2)菜单实验二的Callback属性:dianxinghuanjie(Two_Callback,hObject,eventdata,guidata(hObject)子菜单线性系统根轨迹分析属性:dianxinghuanjie(Rlocus_Callback,hObject,eventdata,guidata(hObject)(3)菜单

25、实验三的Callback属性:dianxinghuanjie(Three_Callback,hObject,eventdata,guidata(hObject) 子菜单线性系统频域分析属性:dianxinghuanjie(Frequency_Callback,hObject,eventdata,guidata(hObject)(4)菜单实验四的Callback属性:dianxinghuanjie(Four_Callback,hObject,eventdata,guidata(hObject)子菜单控制系统校正实验的Callback属性:dianxinghuanjie(Modify_Callba

26、ck,hObject,eventdata,guidata(hObject)最后我们再一次保存设计好的dianxinghuanjie.fig文件,选择工具栏上的运行按钮,同时也自动生成了dianxinghuanjie.m文件。得到主界面图形,如图4-2: 图4-2 主界面图4.3 线性系统时域分析界面4.3.1 时域分析法的介绍时域分析法是以拉普拉斯变换为工具,利用传递函数直接在时间域上研究自动控制系统的一种方法。它通过响应曲线来分析控制系统的一些性能,具有直接而全面的优点,但仍有一些不足,比如在分析的过程当中计算量较大,尤其是对于高阶系统。时域响应指的是系统在外部的输入(设定值输入或是扰动输入

27、)作用下的输出过程,典型的时域响应有单位阶跃响应、单位脉冲响应、单位斜坡响应、单位加速度响应、单位正弦响应。本时域分析法的设计以典型输入的单位脉冲输入、单位阶跃输入以及单位斜坡输入为主的输入,来观察各个的响应曲线进行分析,通过阶跃响应性能指标(包括峰值时间、调节时间、上升时间、超调量)来研究问题和分析问题,主要针对一阶或二阶系统。对于分子与分母参数的设定是任意的随机的,这更加使问题研究的深入与透彻。4.3.2 时域分析界面的设计根据设计需要,我们需要在布局编辑区里添加八个静态文本框(Static Text),两个按钮(Push Button),也要修改自己String属性,同时还要添加两个文本

28、编辑框(Edit Text)、五个单选按钮(Radio Button)、六个面板控件(Panel)和一个坐标轴(Axes),整体的模块布局就可以了,完成各部件的属性的设置,保存为Time_reponse.fig文件中。为了实现控件的功能,我们需要编写相应的程序代码。右键单击任一图形对象,在弹出的快捷菜单中点击View Callbacks,在点击Callback命令,这时将自动打开一个M文件,这个时候就可以在各控件相应的回调函数区修改对应的程序代码。下面是部分程序代码:function radiobutton4_Callback(hObject, eventdata, handles)set(h

29、Object,Value,1);set(handles.radiobutton5,Value,0);set(handles.radiobutton3,Value,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.axes

30、2) plot(t,y,Linewidth,2) elseif(fla=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, MarkerEdgeColor,k, MarkerFaceColor,k,Marker

31、Size,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,str) %求超调量 n=1; while y(n)0.9*C %通过循环,求取输出第一次到达终值的90%的时间 m=m-1; end risetime=fix(100*(t(m)-t(n)/100; %求上升时间 str0

32、=num2str(risetime); str=str0,s; set(handles.text6,String,str) %显示上升时间 i=length(t); while (y(i)0.98*C)&(y(i)=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,) %求衰减比 endendgrid onxlabel(Time(s)ylabel(Y(t)完

33、成回调函数后,我们点击运行一下,得到线性系统时域分析图,从图中我们可以看到阶跃响应曲线,以及系统的性能指标,如图4-3:图4-3线型系统时域分析图4.4 线型系统根轨迹分析界面根轨迹分析法是一种求系统闭环极点的图解方法,它由开环传递函数来求取闭环特征根的轨迹的规律,不用求解高阶系统的特征根。当改变增益值或增加开环零极点时,可以利用根轨迹法预测其对闭环零点位置的影响。根据开环系统的零点和极点,通过一个或几个参数的变化,来研究系统极点变化情况。在MATLAB中采用函数pzmap()绘制系统零点,输入“rlocus(GH)”可得到我们需要的根轨迹图。界面设计包括三个部分的参数的输入,一个是开环增益的

34、参数的参数的输入,一个是零点参数的输入,另一个是极点参数的输入,通过这些参数的输入,我们可以得到根轨迹一些性能的分析。最后再对其余的控件进行布局,最后点击保存在Rlocus.fig文件中,同时生成了Rlocus.m文件,再在Rlocus.m文件中相应的回调函数程序区修改和添加相应的程序,最后点击运行,得到线型系统根轨迹分析图,如图4-4,我们可以看到闭环系统单位阶跃响应曲线。 图4-4 线型系统根轨迹分析图然后我们点击一下开环根轨迹按钮,得到开环根轨迹曲线,如图4-5:然后我们可以改变一些参数,来继续观察开环根轨迹曲线。图4-5 开环根轨迹曲线当我们改变参数,我们会得出一些根轨迹的性能结论分析

35、。我们会发现,当加入开环零点,则会改变渐近线的条数和渐近线的倾角;当增加开环零点的个数,相当于增加微分作用,使得根轨迹向左移动或是弯曲,这样的好处是大大的提高了控制系统的相对稳定性,同时我们可以发现,当增加的开环零点越来越接近坐标轴的原点的时候,它的微分作用就会越来越强,表明了控制系统的相对稳定性非常的好;当加入开环极点的时候,则会改变渐近线的条数的渐近线的倾角,增加开环极点的个数,等于是增强了积分的作用,从而导致了根轨迹向右移动或者是弯曲,从而降低了控制系统的稳定性。4.5 线型系统频域分析界面4.5.1 频域法的介绍对于频域分析法来说,它是一种利用频域特性来研究控制系统的一种图解方法,以传

36、递函数为基础,反映了控制系统对正弦输入的响应性能。在频域法中其基本思想是将控制系统中的各个变量看做成信号来处理,而且这些信号都是由正弦信号合成的,同时它们的频率是不同的。要研究频域法的特性可以通过频域特性曲线进行研究,包括曲线的形状及其特征量。而频域特性是指稳态输出与输入之比在正弦信号的作用下相对频域的有关特性。4.5.2 频域分析界面的设计我们可以作出伯德图和奈奎斯特曲线以及单位阶跃响应曲线来分析频域特性,进行模块布局,保存在Frequency.fig文件中,在同时生成的m文件中对各个控件的回调函数进行相应的修改,并点击运行,得到线型系统频域分析界面,如图4-6,点击伯德图控件,得到伯德图,

37、如图4-7,点击奈奎斯特控件图标,如图4-8,改变传递函数输入的参数进行频域特性分析。图4-6 线型系统频域分析图 图4-7 伯德图图4-8 奈奎斯特曲线4.6 控制系统校正实验界面4.6.1 控制系统校正介绍在实际的社会生活中,我们往往对一个系统设计的过程中,为了达到某些性能指标和设计要求,需要进行参数的选择或是对原有的控制系统进行元件的添加,这就是我们所要研究的控制系统的校正问题。控制系统校正根据校正装置的特性可以分为超前校正、滞后校正、滞后-超前校正、串联校正以及反馈校正。在我们的控制系统校正实验中,我们主要研究基于频率法的串联超前校正以及串联滞后校正,通过单位阶跃响应曲线、伯德图来具体

38、研究。先进性模块布局,保存在Modify.fig文件中,自动生成了Modify.m文件,并在相应的回调函数修改程序,最终点击运行,得到控制系统校正实验界面图,如图4-9,可以看到系统校正前后的伯德图,点击超前校正控件按钮,得到校正前后系统阶跃响应曲线,如图4-10,点击之后滞后校正控件按钮,得到校正前后系统阶跃响应曲线,如图4-11。同时我们改变参数的输入,并加以分析。图4-9 控制系统校正实验图图4-10 超前校正前后系统阶跃响应曲线图4-11 滞后校正前后系统阶跃响应曲线5 结论经过几个月的努力,我最终完成了基于MATLAB的自动控制原理虚拟实验平台的开发,对自动控制原理的几个实验都较好的

39、进行了仿真,通过仿真图形的分析,加深了对自动控制原理的深入的了解,被MATLAB的强大功能所吸引,已经较为熟练地掌握了MATLAB的一些功能操作,对MATLAB的程序语言更为的熟悉与了解。在设计开发的过程中遇到了很多的困难,但这份曲折的过程锻炼了我的独立思考的能力与分析能力, 让我明白了解决一个问题必须要首先要了解它的基本原理,只有这样处理问题才能事半功倍,达到预期的效果,同时也提高了我与他人的沟通能力,谦虚地向别人求教,也很感我的指导老师。设计虽然完成了但同时也发现了自己能力的不足,在今后人生道路上会更加的努力。参考文献1程,初俊博,汪微槟.基于Matlab的虚拟实验平台在大学生科技创新活动

40、中的应用J.科技风,2015(02)2金颂,庆阳,晓峰,蕾.Matlab软件在自动控制原理实验中的应用J.实验技术与管理,2014(06)3东,乔,敏.高职院校电类课程虚拟实验系统的项目实施J电子世界,2014(03)4佳.基于小型光电跟踪系统的PID控制实验J.实验室研究与探索,2013(11)5中,袁少强,军香.自动控制原理实验课的改革与实践J.实验室研究与探索,2013(11)6王焕然,徐颖.自动控制原理虚拟实验平台的设计与开发J.电力系统及其自动化学报.2010(04)7道刚,平,金光远.基于VB和MATLAB的自动控制原理CAI软件设计J.电力学院学报,2006(02)8珉,马天河,

41、彬,程成.自动控制原理的MATLAB软件实验平台J.电气电子教学学报,2004(01)9巍,蔡启仲,罗文广.MATLAB在自动控制原理实验方面的应用J.某某工学院学报.1999(04)10农庄,候国莲,建华.MATLAB环境下的自动控制原理教学软件开发J.现代电力.1999(03)附录1:虚拟实验平台总源程序%主界面的源程序function varargout = dianxinghuanjie(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, .

42、 gui_OpeningF, dianxinghuanjie_OpeningF, . gui_OutputF, dianxinghuanjie_OutputF, . gui_LayoutF, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainf(gui_State, varargin:);else gui_mainf(gui_State, varargin:);endfu

43、nction dianxinghuanjie_OpeningF(hObject, eventdata, handles, varargin)handles.output = hObject;movegui(gcf,center)axes(handles.axes1)imshow(IncoInco1.png)guidata(hObject, handles);function varargout = dianxinghuanjie_OutputF(hObject, eventdata, handles) varargout1 = handles.output;function Time_Call

44、back(hObject, eventdata, handles)close(gcf)Time_Reponse;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, eventda

45、ta, handles)close(gcf)Rlocus;function Frequency_Callback(hObject, eventdata, handles)close(gcf)Frequency;function Modify_Callback(hObject, eventdata, handles)close(gcf)Modifyfunction OK_Callback(hObject, eventdata, handles)close(gcf)Time_Reponse;function pushbutton3_Callback(hObject, eventdata, hand

46、les)close(gcf)Rlocus;function pushbutton4_Callback(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_Sing

47、leton, gui_Singleton, . gui_OpeningF, Time_Reponse_OpeningF, . gui_OutputF, Time_Reponse_OutputF, . gui_LayoutF, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainf(gui_State, varargin:);else gui_mainf(gui_State,

48、 varargin:);endfunction Time_Reponse_OpeningF(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,Value,0);set(handles.radiobutton2,Value,1);fla=1; %标志,用来确定系统是开环还是闭环,fl

49、a=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); %显示稳态误差set(handles.radiobutton4,Value,1);set(handles.radiobutton5,Value,0);set(handles.radiobutton3,Value,0);y,t=step(feedbac

50、k(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,Linewidth,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)

51、;C=dcgain(feedback(G,1); %求系统稳态值M=fix(1000*(Y-C)/C)/10;str0=num2str(M);str=str0,%;set(handles.text8,String,str) %求超调量n=1;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 (

52、y(i)0.98*C)&(y(i)=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,) %求衰减比endgrid onxlabel(Time(s)ylabel(Y(t)guidata(hObject, handles);function varargout = Time_Reponse_OutputF(hObject, eventdata, handles)

53、 varargout1 = handles.output;function radiobutton1_Callback(hObject, eventdata, handles)set(hObject,Value,1);set(handles.radiobutton2,Value,0);fla=0; %系统为开环save(dataDdata,fla); %保存数据set(handles.radiobutton5,Value,0);set(handles.radiobutton4,Value,0);set(handles.radiobutton3,Value,0);axes(handles.axe

54、s2)cla;function radiobutton2_Callback(hObject, eventdata, handles)set(hObject,Value,1);set(handles.radiobutton1,Value,0);fla=1;save(dataDdata,fla);set(handles.radiobutton5,Value,0);set(handles.radiobutton4,Value,0);set(handles.radiobutton3,Value,0);axes(handles.axes2)cla;function text2_CreateF(hObje

55、ct, eventdata, handles)function radiobutton3_Callback(hObject, eventdata, handles)set(hObject,Value,1);set(handles.radiobutton4,Value,0);set(handles.radiobutton5,Value,0);num=str2num(get(handles.edit1,String);den=str2num(get(handles.edit2,String);load(dataDdata);if (fla=0) %判断系统是不是开环 G=tf(num,den);

56、y,t=impulse(G); %脉冲响应 axes(handles.axes2) plot(t,y,Linewidth,2) %画图elseif(fla=1) G=tf(num,den); y,t=impulse(feedback(G,1); %画闭环为,脉冲响应 axes(handles.axes2) plot(t,y,Linewidth,2) %画图endgrid onxlabel(Time(s)ylabel(Y(t)function radiobutton4_Callback(hObject, eventdata, handles)set(hObject,Value,1);set(handles.radiobutton5,Value,0);set(handles.radiobutton3,Value,0);num=str2num(get(handles.edit1,String);den=str2num(get(handles.edit2,String);load(dataDdata.mat);if (fla=0) G=tf(num,den); y,t=step(G); %开环阶跃响应 axes(handles.axes2) plot(t,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!