面向结构图的连续系统数字仿真设计_第1页
面向结构图的连续系统数字仿真设计_第2页
面向结构图的连续系统数字仿真设计_第3页
面向结构图的连续系统数字仿真设计_第4页
面向结构图的连续系统数字仿真设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

./__2010133330课程设计题目面向结构图的连续系统数字仿真学院计算机科学与信息工程学院专业自动化班级2010级2班学生XX小指导教师吴诗贤2013年12月20日.面向结构图的连续系统数字仿真__陶园__10自动化3班__2010133330摘要根据自动控制系统中面向结构图的数字仿真的基本思想,探讨了仿真过程中典型环节的规X性、系统的连接矩阵、仿真求解、程序框图问题,并应用到实际的X例当中,并分析了结果总结了相关特点和相关结论。自动控制系统常常是由许多环节组成的,要应用数字仿真方法对系统进行分析和研究,首先需要求出总的传递函数,再转化为状态空间表达式的形式,然后对其求解。当改变系统某一环节的参数时,尤其是要改变小闭环中某一环节的参数时,以上整个过程又需要重新计算,这对研究对象参数变化对整个控制系统的影响是十分不便的,为了克服这些缺点,同时大多数从事自动化工作的科技人员更习惯于用结构图的形式来分析和研究控制系统,为此产生了面向结构图的仿真方法。该方法只需将各个环节的参数与各环节间的连接方式输入计算机,仿真程序就能自动求出闭环系统的状态空间表达式。本课程设计主要介绍典型环节参数和连接关系构成闭环系统的状态方程的方法,而动态响应的计算,仍采用四阶龙格-库塔法。这种方法具有便于研究各个环节参数对系统的影响,并可以得到每个环节的动态响应,以与对多输入输出系统的进行仿真的有点。关键字:结构图;典型环节;连接矩阵;数字仿真;1、设计任务已知某一系统结构如下图所示,编写matlab程序求a分别为2,4,6,8,10,12时输出量y的动态响应。图12、需求分析与概要设计2.1需求分析根据上述设计任务我们可以基本明确在我们课程设计当中应该明确以下几个方面:熟悉在数字计算机仿真技术中常用的四阶龙格-库塔算法。明确在面向结构图的连续系统数字仿真,典型环节与其系数矩阵确定。明确各连接矩阵的确定。能够熟练运用MATLAB仿真软件。2.2设计思路自动控制系统常常是由许多环节组成的,要应用数字仿真方法对系统进行分析和研究,首先需要求出总的传递函数,再转化为状态空间表达式的形式,然后对其求解。当改变系统某一环节的参数时,尤其是要改变小闭环中某一环节的参数时,以上整个过程又需要重新计算,这对研究对象参数变化对整个控制系统的影响是十分不便的,为了克服这些缺点,同时大多数从事自动化工作的科技人员更习惯于用结构图的形式来分析和研究控制系统,为此产生了面向结构图的仿真方法。该方法只需将各个环节的参数与各环节间的连接方式输入计算机,仿真程序就能自动求出闭环系统的状态空间表达式。以下是我们课程设计的主要设计思路框图:典型环节确定典型环节确定连接矩阵的确定确定系统的状态方程数字仿真任务分析图22.3连接矩阵确定:一个控制系统用典型环节来描述时,必须用连接矩阵把各个典型环节连接起来。所谓连接矩阵,就是用矩阵的形式表示各个典型环节之间的关系。以下是我们课程设计当中连接矩阵确定的分析过程:x1x1u2x2u3x3yu1r=10+——ⅠⅡⅢ图3由上图我们可以得出各环节输入与各环节输出间的关系,以与系统输出与各环节输出间的关系分别为和。由此可得各个环节的输入,以与系统输出的关系表达式为:,根据以上两式和各典型环节的系数值,可得如下矩阵和系数矩阵:,,。3、算法实现3.1面向结构图的连续系统数字仿真流程框图在本次课程设计当中,我们通过分析题目随后开始我们的程序编写,我们发现在编写程序上,变化数据的输入上我们能够采用两种不同的方法,一种是把变化的数据通过人为的单个输入到程序中,然后逐一的得出我们对应的仿真结果。另外一种是通过循环控制的方式,把我们需要改变的数据加入到程序当中,并且把不同的变量对应的仿真结果反映到同一X图片当中。于是,这里我们这里就具有两个不同的程序流程图。单个输入程序流程图:NNY开始给定输入信号和典型环节参数与连接矩阵输入Ⅲ环节变量a输入仿真时间Tf和计算步长h求矩阵求A,B矩阵根据龙格-库塔法求状态方程的根计算系统输出yt=Tf?输出结果,绘制仿真曲线结束图4利用循环控制实现a=2,4,6,8,10,12的仿真分析的流程图:NNNYY开始给定输入信号和连接矩阵输入仿真时间Tf和计算步长ha=2:2:12循环结束?计算典型环节参数矩阵P求矩阵求A,B矩阵根据龙格-库塔法求状态方程的根计算系统输出yt=Tf?输出结果,绘制仿真曲线结束图53.2程序代码在本次课程设计当中,我们通过分析题目随后开始我们的程序编写,我们发现在编写程序上,变化数据的输入上我们能够采用两种不同的方法,一种是把变化的数据通过人为的单个输入到程序中,然后逐一的得出我们对应的仿真结果。另外一种是通过循环控制的方式,把我们需要改变的数据加入到程序当中,并且把不同的变量对应的仿真结果反映到同一X图片当中。于是,这里我们这里就具有两个不同的程序代码。单个输入代码段r=10;%系统输入型号a=input<'输入Ⅲ环节变量a='>;%'输入Ⅲ环节变量aP=[0.110.51;0110;11a1];%各个典型环节系数矩阵W=[00-1;100;010];W0=[1;0;0];Wc=[001];%连接矩阵Tf=input<'仿真时间Tf='>;h=input<'计算步长h='>;A1=diag<P<:,1>>;%diag建立对角矩阵B1=diag<P<:,2>>;C1=diag<P<:,3>>;D1=diag<P<:,4>>;H=B1-D1*W;Q=C1*W-A1;%求取H,Q矩阵A=inv<H>*Q;%inv逆矩阵根据公式求去AB矩阵B=inv<H>*C1*W0;x=[zeros<length<A>,1>];%产生length<A>行1列的0矩阵y=[zeros<length<Wc<:,1>>,1>];t=0;fori=1:Tf/h%龙格-库塔法求取状态方程的根K1=A*x+B*r;K2=A*<x+h*K1/2>+B*r;K3=A*<x+h*K2/2>+B*r;K4=A*<x+h*K3>+B*r;x=x+h*<K1+2*K2+2*K3+K4>/6;y=[y,Wc*x];t=[t,t<i>+h];endplot<t,y>%绘制仿真曲线以下是图片处理gtext<'a=2'>gtext<'Tf=10'>gtext<'h=0.2'>title<'a=2时系统的仿真曲线'>xlabel<'时间〔t〕'>ylabel<'系统输出〔y〕'>利用循环控制实现a=2,4,6,8,10,12的仿真分析代码:r=10;%系统输入型号W=[00-1;100;010];W0=[1;0;0];Wc=[001];%连接矩阵Tf=input<'仿真时间Tf='>;h=input<'计算步长h='>;fora=2:2:12P=[0.110.51;0110;11a1];%各个典型环节系数矩阵A1=diag<P<:,1>>;%diag建立对角矩阵B1=diag<P<:,2>>;C1=diag<P<:,3>>;D1=diag<P<:,4>>;H=B1-D1*W;Q=C1*W-A1;%求取H,Q矩阵A=inv<H>*Q;%inv逆矩阵根据公式求去AB矩阵B=inv<H>*C1*W0;x=[zeros<length<A>,1>];%产生length<A>行1列的0矩阵y=[zeros<length<Wc<:,1>>,1>];t=0;fori=1:Tf/h%龙格-库塔法求取状态方程的根K1=A*x+B*r;K2=A*<x+h*K1/2>+B*r;K3=A*<x+h*K2/2>+B*r;K4=A*<x+h*K3>+B*r;x=x+h*<K1+2*K2+2*K3+K4>/6;y=[y,Wc*x];t=[t,t<i>+h];endplot<t,y>%绘制仿真曲线holdonendholdoffgtext<'a=2'>%图片标注gtext<'a=4'>gtext<'a=6'>gtext<'a=8'>gtext<'a=10'>gtext<'a=12'>gtext<'Tf=15'>gtext<'h=0.4'>title<'系统仿真曲线'>xlabel<'时间〔t〕'>ylabel<'系统输出〔y〕'>4、调试分析过程与结果4.1仿真和调试在仿真过程中我们采用的是Matlab软件,Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序〔M文件〕后再一起运行。在现在的自动控制系统的仿真上,由于该软件的方便使用,受到人们青睐。因此我们课程设计也选用了该软件作为我们的调试和仿真的工具。在是用Matlab软件对我们设计的系统进行调试的过程中,我们参照了很多关于程序调试的方法,其常见的调试方法有:<1>设置或清除断点:使用快捷键F12。<2>执行:使用快捷键F5。

<3>单步执行:使用快捷键F10。

<4>stepin:当遇见函数时,进入函数内部,使用快捷键F11。

<5>stepout:执行流程跳出函数,使用快捷键Shift+F11。

<6>执行到光标所在位置:非常遗憾这项功能没有快捷键,只能使用菜单来完成这样的功能。

<7>观察变量或表达式的值:将鼠标放在要观察的变量上停留片刻,就会显示出变量的值,当矩阵太大时,只显示矩阵的维数。

<8>退出调试模式:没有设置快捷键,使用菜单或者快捷按钮来完成。由于我们是初次使用这个软件,对于程序的调试我们也没有使用更为繁琐的步奏,而是采用了常见的调试方法,直接调试。在调试过程我们遇到了很多问题,包括语法的错误。这主要是我们在编写程序的时候没有注意到matlab程序的变量设置问题。最后通过查阅相关资料我们顺利的完成了程序编写,并且实现了我们想要功能。其调试窗口〔见下图〕:图64.2仿真结果在本课程设计当中,为了更好的验证系统,我们选用了两组数据进行验证,分别是仿真时间Tf=10,步长h=0.2和仿真时间Tf=15,步长h=0.4。并得出了在这两组数据下a分别取不同值时的仿真曲线图。当仿真时间Tf=10,步长h=0.2时,不同a的仿真结果<1>a=2的仿真曲线图:图7<2>a=4的仿真曲线图:图8<3>a=6的仿真曲线图:图9<4>a=8的仿真曲线图:图10<5>a=10的仿真曲线图:图11<6>a=12的仿真曲线图:图12<7>a=2,4,6,8,10,12的仿真结果:图13当仿真时间Tf=15,步长h=0.4时,不同a的仿真结果<1>a=2的仿真曲线图:图14<2>a=4的仿真曲线图:图15<3>a=6的仿真曲线图:图16<4>a=8的仿真曲线图:图17<5>a=10的仿真曲线图:图18<6>a=12的仿真曲线图:.图19<7>a=2,4,6,8,10,12的仿真结果:图205、心得体会两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程."千里之行始于足下",通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次面向结构图的连续系统数字仿真的仿真,本人在多方面都有所提高。熟悉了在数字计算机仿真技术中常用的几种数值积分方法,特别是四阶龙格-库塔法。明确了在面向结构图的连续系统数字仿真中,典型环节与其系数矩阵确定。明确了各连接矩阵的确定。能够熟练运用MATLAB仿真软件。在此感谢我们的吴老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。

温馨提示

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

评论

0/150

提交评论