毕业设计(论文)-基于亚当斯法的电路仿真.doc_第1页
毕业设计(论文)-基于亚当斯法的电路仿真.doc_第2页
毕业设计(论文)-基于亚当斯法的电路仿真.doc_第3页
毕业设计(论文)-基于亚当斯法的电路仿真.doc_第4页
毕业设计(论文)-基于亚当斯法的电路仿真.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业论文(设计、创作)题目: 基于亚当斯法的电路仿真 学生姓名: 学号: 所在系院: 信息与通用技术系 专业: 电子信息工程 入学时间: 2010 年 9 月导师姓名: 职称/学位: 副教授/硕士/讲师/硕士 导师所在单位: 完成时间: 2014 年 5 月安徽三联学院教务处 制安徽三联学院毕业论文基于亚当斯法的电路仿真摘 要:随着社会的发展,计算机仿真技术在生活和学习中的各个领域得到了越来越广泛的运用。通过对现实事物的计算机仿真,我们可以选取最佳的模型来解决现实问题。所以对计算机仿真的研究具有重要的应用价值。本文首先介绍了计算机仿真的两种常见方法(欧拉法、亚当斯法),通过对两种方法的分析得出亚当斯法的优越性。其次,本文以vc6+作为主要运行软件,采用c语言进行程序设计,针对亚当斯法在电路仿真中的运用做出介绍和分析。为分析亚当斯法在电路中的运用,本文通过一个实例,即对一个电容充电方程充电快慢的影响因素进行分析讨论。利用c语言编写程序,vc6+运行,最后根据计算机仿真数据分别比较当时间参数p0和输入数组u2发生变化时,电容充电的速度变化,得出最佳的电容充电条件。证明了计算机仿真在电路中的运用价值。关键词:计算机仿真;亚当斯;时间常数;电容充电1安徽三联学院毕业论文The Circuit Simulation which based on the Adams Method Abstract :With the development of society, The computer simulation technology in all areas of life and learning has been more and more widely used. Through computer simulation of reality of things, we can select the best model to solve practical problems. Therefore, research has important application value of computer simulation.This paper introduces two common methods (Euler, Adams method) computer simulation. By analyzing the results of the two methods,we found that the Adams Law was better than the Euler.Secondly, this paper using vc6 + + as the primary run software, using c language programming to make presentations and analysis for the Adams method which used in circuit simulation. In order to analyze the Adams method,this paper by means of a capacitor equation modeling,programming, analysis.We got a conclusion that The speed of the capacitor charging time constant p 0 and input array u 2 The relationship between the size.Finally ,Proving the application of computer simulation in the circuit value.Keywords: computer simulation; Adams ; time constant; capacitor charging2安徽三联学院毕业论文目录第1章 计算机仿真1第1节 概论1第2节 计算机仿真技术的应用与影响1第2章 计算机仿真的方法2第1节 欧拉法2第2节 亚当斯法3第3节 计算机仿真方法的比较与选择5第3章 亚当斯法在电路仿真中的运用7第1节 建模:电容充电电路方程7第2节 基于亚当斯法的程序设计8第3节 VC+6.0程序运行11第1条 变化P0的值,画出曲线图11第2条 变化U2的值,画出曲线图16第4章 结论19第5章 心得体会20致谢21参考文献22 I安徽三联学院毕业论文第1章 计算机仿真第1节 概论仿真就是对一个真实的事物进行仿效,也就是用模子来反映真实事物的一个系统。在我们的生活中仿真现象无处不在,例如平时我们经常玩的象棋、围棋、军旗,儿童玩的拼图游戏等。而计算机仿真就是利用计算机对我们所研究的真实事物的内部结构和外部功能等因素进行仿真的一个历程。计算机仿真是确立在控制理论、相像性理论和信息处理技能及计算机技术等学说之上,并在微机和其它一些专用物理效应设备上运行,开展多次实验的一个过程。主要针对真实或假想的系统进行系统的仿真,结合大部分已知的专家理论经验、科学知识、统计数据和信息资料对试验结果做出自己的分析并继续下去的研究,进而得出结论并做出正确决策的一门学科。它是同一性的和试错性的一种方式1.傅廷亮,计算机仿真技术,中国科学技术大学出版社,2001年12月。第2节 计算机仿真技术的应用与影响计算机仿真是一种解决国民经济各领域问题的强劲的工具,特别是在一些特殊的环境,包括实验条件恶劣、实验仪器准确度不够、实验时间太长、花钱太多的场合,使用计算机仿真技术解决问题有其独特的优点。今天,随着科学技术的不断发展,电子计算机的微型化和计算机的价格日益下降,电子计算机的普及率大大提高,几乎可以说是家家户户必不可少,这就使得计算机仿真技术的应用范围大为扩展,不仅在科学实验方面,而且在生活方面都开始运用起来。在五十年代和六十年代,计算机仿真技术首要用以高新科技、人工智能、宇航、军械试制等一些部门,而现在,无论境内还是境外、各行各业都十分重视这门技能的研究、应用和发展,这就使得情况变得大为不同了2.朱志明和包焕升,“海轮县经济系统的动态仿真”,1985年12月第4期。使用计算机仿真来解决一系列问题,具有时间短,代价小的优点。在我们花费巨大的精力之前可以先预测出大致的结果,那样我们就可以根据实际的情况在不同的方法中做出比较,选择最佳模型。22 第2章 计算机仿真的方法计算机的仿真方法有很多种,在数值积分法中大体上可以分为单步法和多步法。什么叫单步法?什么又叫多步法?其实单步法就是在用递推公式求解时,递推公式是步进式的,我们知道前一个yn的值,那么我们就能得出后一个yn+1的值,这种方法就被称为单步法,单步法能够自启动,是一种比较简单的算法,欧拉法和龙格库塔法就是其中的两种。反之,当在求yn+1的值时就要使用到 yn, yn-1, yn-2 ,等多个值,这种方法被称为多步法, 这种方法的缺点是无法自启动3.郭俊义,“计算机仿真理论方法及其应用”宇航出版社,(1988)。亚当斯法就是一种多步法,本章中将介绍欧拉法以及亚当斯法这两种常用的计算机仿真方法,让我们来详细的认识和了解这两种方法。第1节 欧拉法本节开始让我们来认识一下什么叫做欧拉法,如下给定一个微分方程:在区域(tn,tn+1)上求其积分,得到: (2.1)用矩形作为一个单位来分割曲线图,那么如积分区间足够小,让得tn和 tn+1中间的值可近似的作为常数, 因此就可以得出tn+1时的值为: (2.2)将上式变成之下差分公式样式: (2.3)这就叫做欧拉公式。欧拉公式是一个递推的差分方程,首先要知道前一个数值和导数,然后才能求出下一个新的数值。用欧拉法来对问题进行计算机仿真,首先要用一个个单位矩形把连续的时间t变成一个个相等间隔的t, 然后求出函数值,依据这些值在函数图上就可画出一条折线,所以欧拉法又叫折线法4.李佳.基于JSP技术的网页自动生成工具的实现J.电脑开发与应用,2009,(03)。其特点是分析方法便捷,计算量比较小,但缺点是计算结果的准确度低。下面的图1为欧拉折线法的几何功能。 Y f(tn,yn) f(tn+1,yn+1) 欧拉折线 h y=f(t,y(t)dt+c 0 tn-1 tn tn+1 tn+2 图1 欧拉法的几何功能第2节 亚当斯法上节我们详介了单步法,即在准备yn+1值时,如若了解前一步的中的yn和fn的值就可以进行计算,这是一种比较简单的方法,但其误差也比较大,下面我们将介绍另一种方法:线性多步法。在线性多步法中,最普遍的一种叫亚当斯(Adams)法,下面来讲解这种计算机仿真方法。我们知道上节中的欧拉法是以矩形为一单位来分解图形,本节中以梯形为一单位,这样就提高了计算的精确度,那么整个数值积分公式变成: (2.4)在(2.4)式中,如果要得到yn+1值,就要用到yn+1本身,但yn+1是一个未知数,因以上的式子就叫做亚当斯公式,也被叫为梯形公式5.胡峰,孙国基,卫军胡.动态系统计算机仿真技术综述()仿真模型J.计算机仿真,2000,(01)。 Adams法的几何功能可用图2来表现出: F(t,y) f(t) fn+1 fn f1 f0=f(t0,y) H t0 t1 tn tn+1 t 图2 亚当斯法的几何功能 在求时,由于要用到本身,那就要用迭代法求解,首先要知道出初值,之后再得出,再由得出 6.刘时进.电子技术基础教程M武汉:湖北科学技术出版社,2000 (2.5)按照上述方法重复运算,直到与的之间的差变得很小才结束,那么我们就可以认为,其截断误差为7.李明君.基于网络环境的芯片仿真研究和微机系统仿真实现D.南京:南京气象学院,2004。再有下面是亚当斯显式程式,可表达为之下内容: 8.李西平.电路与电路仿真分析,M. 机械工业出版社; 第1版 2011.09.20 (2.6) 表2.1列出了,在不同的阶次时,亚当斯法计算程式中不相同的序数值,这就是多步法。多步法中为了计算yn+1,我们不但要知道yn的值,还要求出yn-1,yn-2,因此多步法的欠缺是做不到自启动,即开始时要用单步法,然后才用多步法,最后才能求解出所要求的结果9.王艳红,孔亮,李杨,戴纯春,王锦军,计算机仿真软件在电路设计中的应用与比较,J;实验室研究与探索;2012年07期。表1示出了亚当斯公式各项的系数。表1 亚当斯系数表名 称 B1 B0 B1 B2 B3一阶显式 0 1 0 00二阶显式 0 3/2 -1/2 00三阶显式 0 23/12 -16/12 5/12 0一阶隐式 1 0 0 0 0二阶隐式 1/2 1/2 0 0 0三阶隐式 5/12 8/12 -1/12 0 0四阶隐式 19/24 19/24 -5/24 1/24 0之下是亚当斯的显示程式与隐式程式的特征:(1)在阶位同一的情况下,隐式公式的级数值比显式公式小(一阶例外),故而隐式公式与显式公式相比较要更加的确切。 (2)隐式公式的稳定性好。表2是亚当斯法的稳定区。从表2中可以得出一结论:对于同一阶次,隐式的恒定域比显式的要大而接着阶数的变大,亚当斯法的稳定域在一点点的变小10.胡国镇.计算机仿真论文D上海.华东理工大学,2007 。表2 Adams稳定区域表 阶数 1 2 3 4 显式 2 1 6/11 -3/10 隐式 - - -6 -3(3)显式要比隐示计算量小,这是从计算量上来看的。运用隐示程式来解决问题的时候要计算出f的值,这就需要用亚当斯的显式程式来为它提供一个y,即首次近似值。这种方法就是我们所说预估校正法,即将显式程式和隐示程式联合起来,用来改进计算的稳定性和准确度11.梁波.现代计算机仿真技术的研究与发展J武汉.华中科技大学,2006。 亚当斯法具有一个优点,同时,这也是多步法所具有的共同优点,那就是亚当斯法计算较小。但是,多步法也有一个缺点,这就是它不能够象单步法那样自启动,多步法必须要知道多个出发值,所以在解决问题时我们必须先定义一个初值,先求出要用到的值,才能继续运算。第3节 计算机仿真方法的比较与选择对于连续系统的仿真常用的方法是建立所需仿真系统的微分方程的初值问题(即数学模型)。然后根据需要选择解此方程的计算方法。我们已介绍的欧拉法、亚当斯法。那么,到底选择哪种方法呢?选择的凭据大概上有之下几点:(1)精度要求。对于微分方程数值积分而言,由于计算机字长的有限位数的限制条件,使得其在计算的过程中存在舍入误差,这就使得我们在解决实际问题的时候要根据实际的问题对于精度的要求进行计算方法的不同选择,这样才能满足实际问题对于精度的要求。一般来说截断误差阶次越高,那么计算出来的结果也就越精确,对于欧拉法和亚当斯法来说,欧拉法精度最低,亚当斯法精确度相比较高。所以一般对于实际问题来说亚当斯法的应用范围更广,精度也更准确,选择的机会也越大12.Narsingh Deo,System Simulation with Digital Computer,Prentice Hall of India Private Limited.New Delhi110001,1979.。(2)速度要求。随着科技的不断前进,微电脑也在不断的改天换地,微电脑的运行进度也越来越快,对于一般的问题都能满足,但是对于一些实际中的复杂问题而言计算机的仿真还是有所欠缺的。因此,仿真进程中数值计算也是一个不可或缺的因素。计算的运行速度越快,那就说明程序的设计水平越高。反之,就说明该程序的设计水平有所欠缺,这是衡量该程序设计水平的一个重要标准。对于欧拉法来说在一些简单的问题上速度会比较快,但在复杂的现实问题上 亚当斯法就有着其优越性13.W.J.Meyer,Concepts of Mahematical Modeling,1984. 。(3)稳定性要求。微分代数方程的解法基本思路是:通过一些离散化的手段,将微分代数方程变化成差分方程来求值,但差分代数方程的值还会有计算误差,比如:结果舍入引起的扰动,这就是影响差分代数方程的稳定性地问题。因此,这个问题也是我们在选择积分法中必需考虑的问题。欧拉法在复杂问题上的误差会随着时间的不断变化越来越大,而亚当斯法在解决复杂问题时误差较小,稳定性较强14.David Kincaid Ward Cheney;Numerical Analysis;Mathematics of Scientific Computing Third Edition.北京.机械工业出版社.2003.4:524-608。综上所述,亚当斯法相比于欧拉法更精确、稳定、便捷,所以亚当斯法更能得到我们的青睐。我们在复杂问题的计算机仿真上一般都会选择亚当斯法来解决问题,而在一些简单问题的解决中才会选择欧拉法。第3章 亚当斯法在电路仿真中的运用第1节 建模:对图3所示电路进行仿真。 图3. 电容充电电路方程图图3中:此电容充电电路的方程为:移项得到:电路的状态方程为:运行程序时需输入数据: dt ptdt maxt 仿真步长,打印步长,仿真总经时 n m v w 方程阶数p1 p2 参数值u1 u2 输入数组值y1 y2 变量初始条件第2节 基于亚当斯法的程序设计如图4所示 L-10? N Y L-40? 计算导数F的值 N Y 调RUK4子程序, 求X及导数F 保存X L=L+1 XS(J)= X(J) J1,2,Nx 计算预报值XP 存储导数FWORK(1,J)=WORK(2,J)WORK(2,J)=WORK(3,J)WORK(3,J)=WORK(4,J) 计算导数Fn1 计算校正值Xc 计算导数F,存储 T=T+DT 图4 Adambm法仿真流程图之下是程序设计中一些重要数组和变化量:X nx维状态向量Y ny维输出向量A nx *ny维系数矩阵B nx *nu维输入系数矩阵C nx *ny维与状态有联系的输出方阵D ny *nu维输入有联系的输出方阵U nu维控制输入X(50),DX(50) 区别寄存状态变量及导数的数组WORK(4,50) 寄存状态变量倒数的数组TMAX,DT,PRDT 仿真时间总长度,积分步长,打印步长NM,NP 打印间距离和打印距离点数。Adams法积分函数#include stdio.h#include stdlib.h#include iostream.h /*标准的输入输出流头文件 */void adambm(float A50,float B6,float C50,float D6,float *X, /*定义adambm函数*/int nx,int nu,int nr, /*定义函数*/float dt,float *Y, /*输入变量*/float *U,float &time,int &length)static float DX50,WORK450,XS50; int j; /*变量说明*/ if(length1) diffun(A,B,C,D,nx,nu,nr,X,DX,Y,U); length+; for(j=0;jnx;j+) WORKlength-1j=DXj; return; /*把结果返回主函数*/ if(length4) ruk4(dt,A,B,C,D,nx,nu,nr,X,Y,time,U); length+; for(j=0;jnx;j+) WORKlength-1j=DXj; return; for(j=0;jnx;j+) XSj=Xj;Xj+=dt*(2.2916666*WORK3j-2.4583333*WORK2j+1.5416666*WORK1j-0.375*WORK0j); WORK0j=WORK1j; /*工作区间*/ WORK1j=WORK2j; WORK2j=WORK3j; diffun(A,B,C,D,nx,nu,nr,X,DX,Y,U); for(j=0;jnx;j+)Xj=XSj+dt*(0.375*DXj+0.7916666*WORK2j-0.2083333*WORK1j+0.0416666*WORK0j); /*迭代公式*/ diffun(A,B,C,D,nx,nu,nr,X,DX,Y,U); for(j=0;jnx;j+) WORK3j=DXj; time+=dt;void output(float *Y,int nr,float T) /*输出函数*/printf(%3.1ft,T);for(int i=0;inr;i+)printf(%7.6ft,Yi);printf(Y); /*输出结果y1*/第3节 VC+6.0程序运行第1条 变化P0的值,画出曲线图运行上节中的C语言程序,输入步长、打印步长、最大时间分别为0.01、1、50,方程数n、m、v、w都为1,P0为0.1,U1、U2都为1,得出y1、y2。于是有如下图5的程序运行结果:图5. 仿真结果的部分数据由于屏幕不能一次显示全部结果数据,故将图5全部数据在表3中显示:表3. 以上仿真的全部数据13.6609625.5351736.8552547.7850358.4399268.9011779.2260589.4548899.61605109.72957119.80953129.86584139.90551149.93345159.95312169.96698179.97674189.98362199.98846209.99187219.99428229.99597239.99716249.99800259.99859269.99901279.99930289.99951299.99965309.99976319.99983329.99988339.99991349.99994359.99996369.99997379.99998389.99999399.99999409.99999419.99999421043104410451046104710481049105010我们知道上表就是当p0为0.1,u1、u2都为1时,运行程序所得到的结果,从上表中的数据我们可以看出:y1为1时,y1的值为3.66096,当y1的值从1变化到50的时候,y2的值不断的增大,这就说明电容在充电的过程中,电量在不断的增加,当y1的值变化为42的时候,y2的值为10,这就说明电容的电量已经达到饱和,不会再增加,所以当y1的值从42变化到50,y2的值就不在增加。图6为根据表3数据画的图形:图6. 由表3所得出的图形变化P0的值,使得变化为0.5,则有之下运行结果如下图7:图7 P0的值为0.5时的运行结果列表4如下:表4 P0的值为0.5时的运行结果的全部数据18.4555129.7349539.9545149.9921959.9986669.9997779.9999689.9999991010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010上表为p0为0.5时程序运行所得到的数据,当p0的值为0.5时,在y1为1时,y2的值为8.4551,而在y1的值为9时,y2的值就为10了。当y1从9变化到50,我们的y2的值就不再发生改变,这说明电容充电在y1为9时,就已经饱和。图8就是根据上表结果所得出来的图形:图8 根据表4结果所得出来的图形第2条 变化U2的值,画出曲线图U10.1不变,将U2由1变为5,则有如下程序运行结果如下图9:图9 U10.1不变,将U2由1变为5的仿真结果根据上图作表5如下:表5。 U10.1不变,将U2由1变为5的全部仿真结果16.4783127.5195438.2529248.7694659.1332969.3895479.5700389.6971699.78670109.84976119.89418129.92547139.94750149.96303159.97396169.98166179.98708189.99090199.99359209.99549219.99682229.99776239.99842249.99889259.99922269.99945279.99961289.99973299.99981309.99986319.99990329.99993339.99995349.99997359.99998369.99998379.99999389.99999399.9999940104110421043104410451046104710481049105010表5为u2的值为5时所得到的数据,从数据中我们可以看出在电容充电开始的时候,即y1的值为1时,y2的值为6.47831,而在y1为40时,y2的值才是10,电容充电达到饱和。图10为根据表5数据所得到的图形:图10. 根据表5数据所得到的图形第4章 结论本文通过一个一阶电路分析了亚当斯法在电路仿真中的运用,通过输入数值和初始条件,在进行了多次仿真后得出结论:在电路仿真中,随着参数的变化,电容充电的速度也在发生变化。由上一章中的图中,我们可以知道当p0的取值由0.1变到0.5时,曲线图的幅度变得越来越陡,这就表示在p0的值变化时(RC时间常数大,p(0)小)y2的值变化越来越慢。电容充电的时间长。时间常数p0的值增大时(RC时间常数小),电容充电所需要的时间就越短,反之,当时间常数p0的值变小时,电容充电所需要的时间就越长。由图9及后面的图中,我们可以清楚的得出一个结论,那就是:当u2的值有1变化到5时,曲线图的幅度变得越来越平缓,其误差越小。当u2的值由1变化到5时,在开始的阶段u2为5时,电容充电的速度快,但后期速度较慢,两者几乎差不多达到饱和。这就说明当我们改变输入参数u2的值时,电容充电的速度并没有发生很大的变化,最终所需要的时间并没有减少。综合上章中的3副图形我们可以得出一个结论,那就是:在电容充电的过程中,当增大p0的值,电容充电的速度快,效果更好。所以在解决电容充电快慢的问题上,时间常数p0的值的大小变化起着至关重要的作用。这个结论与实

温馨提示

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

最新文档

评论

0/150

提交评论