《【精编】电气工程系统建模与仿真项目驱动设计报告》由会员分享,可在线阅读,更多相关《【精编】电气工程系统建模与仿真项目驱动设计报告(35页珍藏版)》请在金锄头文库上搜索。
1、 系统建模与仿真项目驱动设计报告 学 院:电气工程与自动化学院专业班级:自动化143班 学 号:2420142928学生姓名:李荣指导老师:杨国亮时 间:2016年6月10号摘 要仿真技术是一门利用物理模型或数学模型模拟实际环境进行科学实验的技术,具有经济、可靠、实用、安全、灵活和可多次重复使用的优点。本文中将使用Matlab软件实现一个简单的控制系统仿真演示,可实现对一些连续系统的数字仿真、连续系统按环节离散化的数字仿真、采样控制系统的数字仿真以及系统的根轨迹、伯德图、尼克尔斯图和奈氏图绘制。本设计完成基本功能的实现,基于Matlab的虚拟实验仿真的建立和应用,培养了我们的兴趣,提高了我们的
2、实践能力。关键字:Matlab;系统数字仿真;根轨迹;伯德图。34目 录第一章 概述4 1.1 设计目的41.2 设计要求4 1.3 设计内容4第二章 Matlab简介6 2.1 Matlab的功能特点62.2 Matlab的基本操作6第三章 控制系统仿真设计83.1 控制系统的界面设计83.2 控制系统的输入模型设计93.3 欧拉法的Matlab实现123.4 梯形法的Matlab实现143.5 龙格-库塔法的Matlab实现153.6 双线性变换法的Matlab实现163.7 零阶保持器法的Matlab实现173.8 一阶保持器法的Matlab实现183.9 系统PID控制的Matlab实
3、现193.10 系统根轨迹的绘制213.11系统伯德图的绘制223.12系统尼克尔斯图的绘制233.13系统奈氏图的绘制24第四章 附加功能的设计264.1 音乐播放器的设计264.2 实时时钟的设计26致谢28参考文献29江西理工大学2014级自动化专业项目驱动设计报告第一章 概述1.1 设计目的(1) 熟悉MATLAB的常用交互界面与常用指令及其调用格式。(2) 掌握MATLAB的基本语法以及M文件的建立与基本操作。(3) 掌握MATLAB建立自动控制系统数学模型的方法。(4) 掌握实现连续系统数字仿真的方法。(5) 掌握实现连续系统离散化数字仿真的方法。(6) 掌握实现采样系统数字仿真的
4、方法。(7) 掌握由根轨迹,伯德图,奈氏图等分析系统的稳定性的方法。1.2 设计要求控制系统的仿真演示具有以下几点要求:(1) 具有状态空间表达式、零极点形式、传递函数的三种数学模型,通过这三种模型输入系统的参数。(2) 能够用欧拉法、梯形法、龙格-库塔法绘制连续系统的输出响应曲线,同时能用PID控制器改善系统的性能。(3) 能够用双线性变换法、零阶保持器法、一阶保持器法绘制连续系统离散化的输出响应曲线,同时能用PID控制器改善系统的性能。(4) 能够绘制控制系统的根轨迹、伯德图、尼克尔斯图、奈氏图。便于分析系统的稳定性,频域。(5) 完成基本要求可增加附加功能,例如音乐播放器。(6) 整个仿
5、真演示系统各功能互不干扰,正常运行。1.3 设计内容在进行Matlab GUI的设计时,考虑到各版本的兼容问题,本文未采用使用Guide建立GUI的方法,而是直接建立M文件,在文件中使用代码建立仿真系统所需的窗口和各控件。设计思路如下:(1) 在M文件中先建立界面窗口,再建立各控件,在建立这些控件时,首先将窗口和所有控件的可视性都关闭,当界面设计完毕时打开主界面的可视性,这样就不会出现一打开就出现画面卡顿的现象。(2) 调整所用控件的位置,使界面看起来美观。(3) 界面完成好之后,就是编写各控件的回调函数。(4) 在完成所有基本功能后,设计一些附加的功能。第二章 Matlab简介2.1 Mat
6、lab的功能特点MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中。为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度
7、上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了
8、像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。2.2 Matlab的基本操作Matlab的操作界面由工作窗口、开始按钮、功能菜单和工具栏等组成。(1) Matlab的工作窗口在默认状态下是由命令窗口、历史命令窗口、当前工作目录窗口、工作空间浏览器窗口等构成。(2) Matlab的开始按钮位于Matlab操作界面的左下角,单击这个按钮后,会出现Matlab的操作菜单。这个菜单上半部分的选项包含Matlab的各种交互界面,下半部分的选项的主要功能是窗口设置、访问Matlab公司的网页和查看帮助文件等。(3) 功能菜单
9、包括File-文件操作菜单、Edit-编辑菜单、Debug-调试菜单、Desktop-桌面菜单、Window-窗口菜单。(4) 工具栏可快速进入Guide模板窗口、建立M文件等。第3章 控制系统仿真设计3.1 控制系统的界面设计在本次设计中,不采用guide建立GUI,单纯的由M文件来实现控制的界面的设计,在该系统中,设计了一个主窗口,9个坐标,但只有一个坐标系是用来显示输出响应的,两个显示背景图片,其他坐标用来显示文字,就能实现在图片上显示文字并且和背景色保持一致;设计了19个普通按键,各有各自的功能,能实现进入系统,退出系统等功能;另外还有两个选择框和一个静态文本框,两个选择框分别用来选择
10、输入模型和选择歌曲播放,静态文本框用来显示实时时钟。系统界面如下:图3-1 控制系统未进入系统界面图3-2 控制系统进入系统界面在进入系统之后,如果需要绘图,那么首先必须先输入参数,当为输入参数而绘图时,会弹出错误对话框errordlg(未选择系统数学模型!),其他的情况也会出现别的提示框。这里还设置了一个输入的按键,因为输入的不一定是阶跃响应,所以在这里加了一个输入按键,在界面上看起来好像只有暂停播放而没有继续播放,但是当你按下暂停播放后,转而出现的就是继续播放,这里运用的就是按键的可视性,这样就能节省出一小块地方,也更加美观。3.2 控制系统的输入模型设计在设计系统的输入模型时,我们已经打
11、算设计三种输入的模型,分别是多项式传递函数、空间状态表达式、零极点形式。在这里,我采用选择框来选择想要输入的模型,另外还设计了一个输入按键,可以设置输入信号,仿真时间,步长等值。具体选择操作如图:图3-3 输入信号的设置图3-4 输入模型的选择图3-5 多项式传递函数的输入图3-6 空间状态表达式的输入图3-7 零极点形式的输入在设置输入的时候只需要设置一次,在选择输入模型时也只要选择一种输入模型,然后按输入的提示进行输入。3.3 欧拉法的Matlab实现在数学和计算机科学中,欧拉法是一种一阶数值方法,用以对给定初值的常微分方程(即初值问题)求解。它是一种解决常微分方程数值积分的最基本的一类显
12、型方法。欧拉法又称折线法或矩形法,是最简单也是最早的一种数值方法。基本思想是迭代。将 (3-1) (3-2)微分方程两边进行积分,得: (3-3)即 (3-4)通常假设离散点t1,t2,.,tn是等距离的,即tk+1 - tk= h,称h为计算步长或步距。当t t0时,x(t)是未知的,因此式子(3-4)右端的积分是求不出来的。为了解决这个问题,把积分间隔取得足够小,使得在tk与tk+1之间的f(t,x(t)可以近似看做常数f(tk,x(tk)。这样便得到用矩阵公式积分的近似公式 (3-5)或简化为 (3-6)这就是欧拉公式。以x(t0) = x0作为初始值,应用欧拉公式就可求出解x(t)。欧
13、拉法虽然比较简单,但精度较低。这里的欧拉法针对连续系统,当输入信号经过系统,利用欧拉法处理后,输出信号将会发生变化,然后在坐标上画出时间与输出的对应关系,进而形成数字仿真曲线。运行结果:图3-8 欧拉法仿真曲线说明:输入是以零极点形式输入,其中Z=-2;P=0,-1,-3;K=2;r=1;Tf=5;h=0.01。3.4 梯形法的Matlab实现欧拉公式中的积分是用矩形面积f(tk,xk)h来近似的,用矩形面积代替积分误差较大,为了提高精度,先用梯形面积来代替积分,即 (3-7)于是可得梯形法的计算公式为 (3-8)由于上式右边包含未知量xk+1,所以每一步都必须通过迭代法来求解。每一步迭代的初
14、始值通常采用欧拉公式来计算。因此梯形法的每一步迭代公式为 (3-9)式中,迭代次数R=0,1,2,.梯形法比欧拉法更加精确,当输入经过梯形法处理后,且计算步长比较小,得出的图形与欧拉法处理后的图形相差不大,但是实际上梯形法处理的更加精确。在输入信号的基本参数运行结果:图3-9 梯形法仿真曲线说明:输入是以零极点形式输入,其中Z=-2;P=0,-1,-3;K=2;r=1;Tf=5;h=0.01。3.5 龙格-库塔法的Matlab实现龙格-库塔方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支持的基础之上的。在这里介绍介绍四阶龙格-库塔公式: (3-10)欧拉法、梯形法都是基于在初值附近展开