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

下载本文档

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

文档简介

安徽三联学院毕业论文 本科毕业论文(设计、创作)题目: 基于龙格-库塔法的电路仿真 学生姓名: 学号: 所在系院: 信息与通信技术系 专业: 电子信息工程 入学时间: 2010 年 9 月导师姓名: 职称/学位: 副教授/硕士/讲师/硕士 导师所在单位: 完成时间: 2014 年 5 月安徽三联学院教务处 制基于龙格-库塔法的电路仿真摘 要:在工程领域中,连续系统是种比较常见的系统,对应的方针方法也是系统仿真技术中最基本、最常见、最成熟的技术。进行数字仿真首先要建立次仿真系统的数学模型,并将此模型转换为计算机可接受的、与模型等价的仿真模型,最后编制仿真程序,并在计算机上运行。如何将连续系统的模型转换成等价的计算机仿真模型,采用什么方法解决此仿真模型,这就是连续数字仿真算法所要解决的问题。关于连续系统的数学模型,大多数情况下可以用微分方程的形式给出,因此连续系统仿真算法大多也可以归结为计算机求解微分方程的问题。本文将研究龙格-库塔数值积分法的电路仿真模型。关键词:连续系统,数字仿真,微分方程,龙格库塔数值积分 4Circuit simulation based on Runge Kutta method Abstract: Rontinuous system is more common, the policy simulation technology is the most basic system exposure, the most common, the most mature in the engineering field. The digital simulation mathematical model should be established for simulation system, the model is converted into the simulation model of computer acceptable, and the equivalence of the models, and then the simulation program, and run on your computer. How will the continuous system model into acomputer simulation model of equivalent, which method is adopted to solve this model, which is the continuous digital simulation algorithm to solve the problem. The mathematical model of continuous system, most can be given by the form of differential equations, therefore continuous system simulation algorithms can be reduced to the problem of solving differential equations of the computer. Circuit simulation model. This paper will study the numerical Runge Kutta integration method.Keywords: continuous system; digital simulation; differential equation; the Runge Kutta numerical integration目录第一章 引言1第二章 VC+6.0 简介2第三章 计算机仿真33.1 什么是计算机仿真3 3.1.1 连续系统仿真3 3.1.2 离散事件系统仿真33.2 系统与系统模型43. 2. 1 系统43. 2. 2 系统模型43.3 计算机仿真的具体实施6第四章 龙格-库塔数值积分法的电路仿真7 4.1 龙格-库塔数值积分法7 4. 1. 1 龙格-库塔数值积分法的基本简介74. 1. 2 龙格-库塔数值积分法的分析方法7 4.2 用VC+6.0进行系统编程94. 2. 1 建模94. 2. 2 龙格库塔法程序设计9 4. 2. 3 程序运行结果12第5章 总结及心得体会32 致谢33参考文献344第一章 引言数值计算主要研究在实际问题中利用计算机如何更好的去解决各种数学上的问题,包括连续系统离散化的求解和离散型方程的求解,并考虑误差,收敛性以及稳定性等问题。连续系统是指系统的状态变量随着时间连续变化的系统,其主要特征可以通过常微分方程或偏微分方程进行描述。其中常微分方程描述的系统被称为集中参数系统,他的数学模型常是一组常微分方程,系统一般包括各种电路,动力学和种群生态系统。而偏微分方程通常描述的系统则称为分布参数系统,他的数学模型常是一组偏微分方程,系统一般包括工程领域内的对流扩散系统和物理领域内的流体系统等等。数学类型上,数值运算包括最优化方法,数值代数,数值逼近,数值微分和数值积分,积分方程数值的解发,常微分方程数值的解法,偏微分方程数值的解法,概率统计,计算机和等的研究。微分方程的建模方法是研究函数变化规律的重要工具,在科技,经济管理,生态,环境,人口,交通等各个领域上都有着广泛的应用。随着计算机应用的发展产生了许多计算领域的问题。在工作中,连续系统的仿真方法是系统仿真技术中最基本,最常用,最成熟的。如何将连续系统的数学模型转换成计算机可以接受的等价的仿真模型,采用何种方法在计算机上求解此模型,这是连续系统数字仿真算法所要解决的问题。建立微分方程模型只是初步解决问题,实际上通常要求出方程的解来解释实际现象,并进一步的检验。能得到解析形式的解固然方便分析和应用,但很多微分方程是解不出的,故对其研究稳定性和数值解法也非常重要。344安徽三联学院毕业论文第二章 VC+6.0的简介Visual C+6.0,简称VC或VC6.0,是微软公司推出的一款C+编译器,将“高级语言”翻译成“机器语言”程序。Visual C+是一个功能强大的可视化的软件开发工具。自1993年Microsoft公司推出的Visual C+1.0后,随着新版本的不断问世,Visual C+已成为专业的程序员进行软件开发首选的工具。虽然微软公司推出了 Visual C+.NET(Visual C+7.0),但它的应用有很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。所以在实际问题中,更多以Visual C+6.0为平台。Visual C+6.0不但是C+编译器,而且是基于Windows操作系统的可视化集成开发环境(IDE)。Visual C+6.0是由许多组件组成的,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等工具。 这些组件通过Developer Studio的组件集成一个和谐的开发环境。安徽三联学院毕业论文第三章 计算机仿真3.1 什么是计算机仿真 随着信息技术和计算机技术的发展,“仿真”的概念也在不断的发展和完善,因此给予仿真一个确定的定义是非常困难的。通俗所说的系统仿真基本含义是:设计一个实际系统的模型,对它进行实验,以便于对它理解和评价系统的各种运行的一种策略。而这里的模型是一个广义的模型,包含数学模型、非数学模型、物理模型等等。显而易见,根据模型的不同,有着不同方式的仿真。从仿真实现的角度来看,模型特性可以分为连续系统和离散事件系统两大类。3.1.1 连续系统仿真连续系统仿真指的是物理系统状态随着时间连续变化的系统,一般可以使用常微分方程或偏微分方程组来描述。而这类系统也包括用差分方程描述的离散时间系统。3.1.2 离散事件系统仿真 离散事件系统指的是物理系统的状态在某些随机的时间点上发生离散变化的系统。它与连续系统的主要区别在于:物理状态的变化发生在随机时间点上,这种引起状态变化的行为被称作“事件”,因而这类系统是由事件驱动的。离散时间系统的事件往往发生在随机时间点上,并且事件是时间的离散变量。系统的动态特性是无法使用微分方程这类数学方程来描述的,只能使用事件的活动图或是流程图。因此对离散事件系统的仿真的主要目的是对系统事件的行为作统计特性的分析,而不是对物理系统的状态轨迹作出分析。 3.2 系统与系统模型 3.2.1 系统系统是一些具有特定功能的、相互之间以一定规律联系的物体所组成的一个总体。系统是一个广泛的概念,它在现代科学研究中扮演着重要的角色。不同领域的问题都可以用系统来解决。 有的系统非常复杂,有的却很简单,因此给“系统”下一个确切的定义是非常困难的。因为这个定义不但要能够概括系统的各种应用,又要足以简明地把这个定义应用于实际问题当中。但所有的系统均具有4个重要的性质:整体性、相关性、有序性和动态性。 建立系统概念的目的是为了深入的认识并掌握系统运动规律。因此不仅要定性的了解系统,还要定量的分析、综合系统。定量地的分析、综合系统最有效手段是建立系统模型,并使用高效的数值计算工具和算法对系统模型进行解算。 3.2.2 系统模型系统模型指的是以某种确定的形式(如文字、符号、图表、数学公式等),对系统某一方面本质进行属性上的描述。一方面,根据不同的研究目的,对同一个系统可以建立不同的系统模型。另一方面,同一系统模型也可代表着不同的系统。 系统模型的特征有以下三个:(1)它是现实系统的抽象体或模仿体;(2)它是由反映系统本质或特征的主要因素构成的;(3)它集中的体现了这些主要因素之间的相互关系。1.系统模型的分类常用的系统模型通常上分为物理模型、文字模型和数学模型三类,其中物理模型与数学模型又可以分为若干种。而在所有系统模型中,通常采用数学模型来分析系统工程问题,其原因在于:(1)它是定量分析的基础;(2)它是系统预测和决策的工具;(3)它可变性好,适应性强,分析问题的速度快,且便于应用于计算机。2.系统建模的要求、遵循原则和方法系统建模的要求可概括为:现实、简明、标准。系统建模的遵循原则是:1 切题;2 模型结构清晰;3 精度适当;4 尽量使用标准模型。根据系统的对象不同,则系统建模的方法可分为推理法、统计分析法、实验法、混合法和类似法。根据系统的特性不同,则系统建模的方法可以分为状态空间法、结构模型解析法和最小二乘估计法等。3.3 计算机仿真的具体实施 在开展系统的仿真工作之前,必须对所研究的系统做详细的调查和了解,明确所要研究的问题和研究的目标,以及描述这些目标的主要参数和衡量标准。同时要清晰地定义所研究系统的范围和边界。但需注意,该范围和边界一定要定义得恰当,不能希望什么问题都一次解决,但也应避免问题的过分细化。一般连续系统仿真所需研究的问题可概括为以下几个内容: 方案论证:对设计的方案进行论证,或是对系统进行鉴定论证。 系统分析:对已存在系统进行研究,或对系统故障进行仿真分析。 辅助建立系统模型,选择合理的结构,优化设计参数。 半实物实验:将系统的某一子部分接入计算机仿真系统,检验实际设计加工效果。图1是仿真的流程图。 图1. 仿真的流程图第四章 龙格-库塔数值积分法的电路仿真4.1 龙格-库塔数值积分法4. 1. 1 龙格-库塔数值积分法的基本简介将展开式多取几项以后截断,就可以得到精度较高的高阶数值解,但是要直接使用台劳展开式要计算函数的高阶导数。龙格库塔法是间接的利用台劳展开式,即用在n个点上的函数值f的线性组合来代替f的导数,然后按台劳展开式确定其中的系数,以提高算法的阶数。这样既能有效的避免计算函数的导数,同时又能保证计算的精度。因为龙格库塔法具有很多优点,所以在许多仿真程序中,它是最基本的算法之一。4. 1. 2 龙格-库塔数值积分法的分析方法已知y(t0)=y0,假设我t0 开始以h 增长, t1=t0+h,t1 时刻为 ,在附近展开成台劳级数,保留项,则有 (4-1)上式括号内下标为0,表示括号中的函数用t=t0,y=y0代入,以下均同。假定上式的解可写成如下形式 (4-2)其中, K1=f(t0,y0) 对K2式右端的函数在t=t0, y=y0处展开成台劳级数,保留h项,可得到: 将K1 与K2代入 (4-2)式得: 将上式与(4-2)式比较,可得系数a1,b1,c2,b2方程如下:以上三个方程,四个未知数,因此有无穷个解,若设b1=b2 则可得一个解: 将它们代入(4-2)式可得出一组计算公式 其中 K1=f(t0,y0),k2=f(t0+h,y0+k1h),写成一般的递推形式如下: (4-3) 其中,,式中只取h,两项,而将以上的高阶项舍去,一次地推公式的截断误差与h的三次方成正比,计算的过程只取h和h的平方,因此这种方法被称为二阶龙格库塔法。而我们一般使用的是四阶的龙格库塔公式,在展开的台劳数中保留,和项,它的截断误差是,四阶龙格库塔公式如下: (4-4)式中: 四阶龙格库塔法公式精度较高,故其普遍应用于各个地方。4.2 用VC+6.0进行系统编程4. 2. 1 建模本文对图2的一阶电路响应方程进行仿真。图2. 一阶RC放电电路+Uc=0 Uc(0)为初始条件 +Uc=0 Uc(0)=10V初始状态方程D=-P*Y运行程序时需输入数据:dt ptdt maxt 仿真步长,打印步长,仿真总经时 N M V W 方程数目Y1 Uc 变量初始条件4. 2. 2 龙格库塔法程序设计#include stdio.h#include conio.h#include math.h /*标准的输入输出流头文件 */#define NORDER 3#define NPARAM 2float yNORDER,dNORDER,pNPARAM,t;void output(void)int j; printf(%9s,time); for(j=0;jNORDER;j+) printf( y%d,j); putchar(n);void difq(void) d0=-p0*y0*y1; d1=p0*y0*y1-p1*y1; d2=p1*y1; void run(float dt) int i; float rk3NORDER,ysNORDER; difq(); for(i=0;iNORDER;i+) rk0i=di*0.5*dt; ysi=yi; yi=ysi+rk0i; t+=0.5*dt; difq(); for(i=0;iNORDER;i+) rk1i=di*0.5*dt; yi=ysi+rk1i; difq(); for(i=0;iNORDER;i+) rk2i=di*dt; yi=ysi+rk2i; t+=0.5*dt; difq(); for(i=0;iNORDER;i+) yi=ysi+1.0/6*(2*(rk0i+rk2i)+4*rk1i+di*dt); void main(void)char c; do float dt,tmax,co,tnext,tol; int j; printf(This program will find the root of:n); printf( y0(t)=-p0*y0*y1n); printf(&y1(t)=p0*y0*y1-p1*y1n); printf(&y2(t)=p1*y1n); for(j=0;jNORDER;j+) printf(Now,please input the first y%d:,j); scanf(%f,&yj); for(j=0;jNPARAM;j+) printf(Please input p%d:,j); scanf(%f,&pj); printf(Please input the time of simulation:); scanf(%f,&tmax); printf(Please input the time of one step:); scanf(%f,&dt); printf(Now,this is the result:n); co=5*dt; tol=0.0001*co; tnext=0; output(); for (t=0;t=tmax+tol;) int k; if(fabs(tnext-t)tol) tnext+=co; printf(%10.4f,t); for(k=0;kNORDER;k+)printf(%10d,(int)(yk+0.5); putchar(n); run(dt); printf(nRun this program againY:); c=getche(); putchar(n); while(c=r|c=Y|c=y);程序中所用的变量和数组说明如下:Y(20) 状态变量数组G(20) 状态变量的一阶导数P(20) 存数系统参数,本例中仅一个参数,P(1)=P1=0.1TMAX 模拟时间DT 积分步长,即前面的hNP 打印点数NORDER 系统阶数NPARAM 系统参数个数OUTPUT 打印输出控制变量,.TRUE.为打印 FALSE 为不打印INIT 打印表头控制变量A(8) 8个参数变量CO 打印时间间隔NOUT 已打印点数计数器TNEXT 打印点处的时间值SS 剩下的打印点数NLIST 输出结果4. 2. 3 程序运行结果通过改变分别为0.05、0.10、0.15,仿真结果如表1所示。表1. 根据上面所给参数的仿真结果0.29.655810.49.323480.69.002570.88.6927218.393531.28.104641.47.825691.67.556341.87.2962627.045132.26.802652.46.568512.66.342432.86.1241435.913353.25.709823.45.51333.65.323543.85.1403144.963354.24.792564.44.62764.64.468334.84.3145354.166035.24.022655.43.884195.63.75055.83.6214263.496776.23.376246.43.260216.63.1486.83.0396572.935037.22.834017.42.736467.62.642287.82.5513482.463528.22.378738.42.296868.62.21788.82.1414792.067769.21.99669.41.927889.61.861529.81.79745101.7355810.21.6758510.41.6181710.61.5624710.81.50869111.4567711.21.4066311.41.3582111.61.3114711.81.26633121.2227412.21.1806612.41.1400212.61.1007812.81.0629131.0263113.20.9909913.40.9568813.60.9239513.80.89214140.8614414.20.8317914.40.8031614.60.7755214.80.74882150.7230515.20.6981615.40.6741515.60.6509315.80.62853160.6068916.20.5860116.40.5658416.60.5463616.80.52756170.509417.20.4918717.40.4749417.60.4585917.80.44281180.4275718.20.4128518.40.3986418.60.3842918.80.37167190.3588819.20.3465319.40.334619.60.3230819.80.31196200.3012320.20.2908620.40.2808520.60.2711820.80.26185210.2528321.20.2441321.40.2357321.60.2276221.80.21978220.2122222.20.2049122.40.1978622.60.1910522.80.18447230.1781323.20.1719923.40.1660723.60.1603623.80.15484240.1495124.20.1443624.40.138424.60.134624.80.12996250.1254925.20.1211725.40.11725.60.1129725.80.10909260.1053326.20.1017126.40.0982126.60.0948326.80.09156270.0884127.20.0853727.40.0824327.60.0795927.80.07685280.0742128.20.0716528.40.0691928.60.0668128.80.06451290.0622929.20.0601429.40.0580729.60.0560729.80.05414300.0522830.20.0504830.40.0487430.60.0470730.80.04545310.0438831.20.0423731.40.0409131.60.039531.80.03814320.0368332.20.0355632.40.0343432.60.0331632.80.03202330.0309233.20.0298533.40.0288233.60.0278333.80.02687340.0259534.20.0250634.40.0241934.60.0233634.80.02256350.0217835.20.0210335.40.0203135.60.0196135.80.01893360.0182836.20.0176536.40.0170436.60.0164636.80.01589370.0153437.20.0148237.40.0143137.60.0138137.80.01334380.0128838.20.0124438.40.0120138.60.0115938.80.0112390.0108139.20.0104439.40.0100839.60.0097339.80.0094400.0090740.20.0087640.40.0084640.60.0081740.80.00789410.0076241.20.0073541.40.007141.60.0068641.80.00662420.0063942.20.0061742.40.0059642.60.0057542.80.00556430.0053743.20.0051843.40.00543.60.0048343.80.00466440.004544.20.0043544.40.004244.60.0040544.80.00391450.0037845.20.0036545.40.0035245.60.003445.80.00329460.0031746.20.0030646.40.0029646.60.0028646.80.00276470.0026647.20.0025747.40.0024847.60.002447.80.00231480.0022448.20.0021648.40.0020848.60.0020148.80.00194490.0018849.20.0018149.40.0017549.60.0016949.80.00163500.00157图2是将以上数据绘成图形 图3. RC电路放电图形(为0.05)为0.1时的仿真数据如表2所示表2. 为0.1时的仿真数据0.29.323010.48.691850.68.103430.87.5548317.043381.26.566551.46.1221.65.707551.85.3211624.960922.24.625072.44.311962.64.020052.83.7478933.494163.23.257613.43.037083.62.831473.82.6397842.461074.22.294464.42.139134.61.994314.81.859351.733435.21.616085.41.506675.61.404675.81.3095861.220926.21.138266.41.06126.60.989366.80.9223870.859947.20.801727.40.747457.60.696857.80.6496780.605698.20.564688.40.526468.60.490818.80.4575990.426619.20.397739.40.37089.60.34579.80.3223100.3004810.20.2801410.40.2611710.60.2434910.80.22701110.2116411.20.1973111.40.1839511.60.171511.80.15989120.1490612.20.1389712.40.1295612.60.1207912.80.11262130.1049913.20.0978813.40.0912613.60.0850813.80.07932140.0739514.20.0689414.40.0642814.60.0599214.80.05587150.0520915.20.0485615.40.0452715.60.0422115.80.03935160.0366916.20.034216.40.0318916.60.0297316.80.02772170.0258417.20.0240917.40.0224617.60.0209417.80.01952180.018218.20.0169718.40.0158218.60.0147518.80.01375190.0128219.20.0119519.40.0111419.60.0103919.80.00968200.0090320.20.0084220.40.0078520.60.0073220.80.00682210.0063621.20.0059321.40.0055321.60.0051521.80.0048220.0044822.20.0041822.40.0038922.60.0036322.80.00338230.0031523.20.0029423.40.0027423.60.0025623.80.00238240.0022224.20.0020724.40.0019324.60.001824.80.00168250.0015725.20.0014625.40.0013625.60.0012725.80.00118260.001126.20.0010326.40.0009626.60.0008926.80.00083270.0007827.20.0007227.40.0006727.60.0006327.80.00059280.0005528.20.0005128.40.0004828.60.0004428.80.00041290.0003929.20.0003629.40.0003329.60.0003129.80.00029300.0002730.20.0002530.40.0002430.60.0002230.80.0002310.0001931.20.0001831.40.0001731.60.0001531.80.00014320.0001332.20.0001332.40.0001232.60.0001132.80.0001330.0000933.20.0000933.40.0000833.60.0000833.80.00007340.0000734.20.0000634.40.0000634.60.0000534.80.00005350.0000535.20.0000435.40.0000435.60.0000435.80.00004360.0000336.20.0000336.40.0000336.60.0000336.80.00003370.0000237.20.0000237.40.0000237.60.0000237.80.00002380.0000238.20.0000238.40.0000138.60.0000138.80.00001390.0000139.20.0000139.40.0000139.60.0000139.80.00001400.0000140.20.0000140.40.0000140.60.0000140.80.00001410.0000141.20.0000141.4041.6041.8042042.2042.4042.6042.8043043.2043.4043.6043.8044044.2044.4044.6044.8045045.2045.4045.6045.8046046.2046.4046.6046.8047047.2047.4047.6047.8048048.2048.4048.6048.8049049.2049.4049.6049.80500图4. RC电路放电图形(为0.1)表3是为0.15时的仿真数据输出表3. 为0.15时的仿真数据输出0.29.001230.48.102210.67.292990.86.564591.05.908941.25.318771.44.787551.64.309381.83.878972.03.491552.23.142832.42.828932.62.546392.82.292063.02.063143.21.8573.41.67163.61.504643.81.354364.01.219094.21.097334.40.987744.60.889084.80.800295.00.720355.20.648415.40.583655.60.525355.80.472886.00.425656.20.383146.40.344876.60.310436.80.279427.00.251527.20.22647.40.203787.60.183437.80.165118.00.148628.20.133788.40.120418.60.108398.80.097569.00.087829.20.079059.40.071159.60.064059.80.0576510.00.0518910.20.0467110.40.0420410.60.0378410.80.0340611.00.0306611.20.027611.40.0248411.60.0223611.80.0201312.00.0181212.20.0163112.40.0146812.60.0132112.80.0118913.00.0107113.20.0096413.40.0086713.60.0078113.80.0070314.00.0063314.20.0056914.40.0051314.60.0046114.80.0041515.00.0037415.20.0033615.40.0030315.60.0027315.80.0024516.00.0022116.20.0019916.40.0017916.60.0016116.80.0014517.00.0013117.20.0011717.40.0010617.60.0009517.80.0008618.00.0007718.20.0006918.40.0006218.60.0005618.80.0005119.00.0004619.20.0004119.40.0003719.60.0003319.80.000320.00.0002720.20.0002420.40.0002220.60.000220.80.0001821.00.0001621.20.0001421.40.0001321.60.0001221.80.000122.00.0000922.20.0000822.40.0000822.60.0000722.80.0000623.00.0000623.20.0000523.40.0000523.60.0000423.80.0000424.00.0000324.20.0000324.40.0000324.60.0000224.80.0000225.00.0000225.20.0000225.40

温馨提示

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

最新文档

评论

0/150

提交评论