计算机仿真技术课件.ppt
第第1 1章章 计算机仿真技术计算机仿真技术主要内容主要内容l系统与系统模型系统与系统模型l仿真及计算机仿真三要素仿真及计算机仿真三要素l连续系统仿真概论连续系统仿真概论l计算机仿真软件计算机仿真软件1.1 1.1 系统与系统模型系统与系统模型1.1.1 1.1.1 系统的概念系统的概念在生活、工作等各个方面,我们都离不开系统这样一个话题,它是人们在生活、工作等各个方面,我们都离不开系统这样一个话题,它是人们认识世界改造世界的过程中对某个事物、某个事件进行分析研究及改认识世界改造世界的过程中对某个事物、某个事件进行分析研究及改造的一个载体。作为计算机仿真技术的载体和研究对象,系统是计算造的一个载体。作为计算机仿真技术的载体和研究对象,系统是计算机仿真技术中不可或缺的部分,只有确定好系统的内涵和外延才能够机仿真技术中不可或缺的部分,只有确定好系统的内涵和外延才能够对科学研究及工程设计的各个方面进行回归综合、协同、集成等方面对科学研究及工程设计的各个方面进行回归综合、协同、集成等方面的工作,而对于研究对象的本身,由于各个专业、各个层次的研究目的工作,而对于研究对象的本身,由于各个专业、各个层次的研究目标不同,对于系统的定义往往千差万别,作为一般的定义系统可以定标不同,对于系统的定义往往千差万别,作为一般的定义系统可以定义为:相互关联又相互作用着的对象的有机组合,该有机组合能够完义为:相互关联又相互作用着的对象的有机组合,该有机组合能够完成某项任务或实现某个预定的目标。成某项任务或实现某个预定的目标。从以上定义可以看出作为科学研究及工程设计的系统主要有从以上定义可以看出作为科学研究及工程设计的系统主要有以下三个要素组成:以下三个要素组成:(1 1)对象)对象 (2 2)属性属性 (3 3)活动)活动以上这些就构成了系统的三个要素,系统可以完成某项任务以上这些就构成了系统的三个要素,系统可以完成某项任务或实现某个预定的目标,达到研究和设计的目的。或实现某个预定的目标,达到研究和设计的目的。例如控制某个加热的锅炉水温达到例如控制某个加热的锅炉水温达到100100。图图1-1 1-1 加热炉温控系统框图加热炉温控系统框图系统的定义及分类千差万别,如果从工程应用的角度出发,系统的定义及分类千差万别,如果从工程应用的角度出发,我们可以将系统分为工程系统、非工程系统和综合系统。我们可以将系统分为工程系统、非工程系统和综合系统。1.1.21.1.2系统研究的方法系统研究的方法随着科学研究和社会发展,人类在认识世界、改造世界的过程中逐渐走随着科学研究和社会发展,人类在认识世界、改造世界的过程中逐渐走向深入,科学技术发展所面临的复杂程度日益加深,类似于阿基米向深入,科学技术发展所面临的复杂程度日益加深,类似于阿基米德的金冠故事的科学发现已经不是科学研究和工程设计的主流的方德的金冠故事的科学发现已经不是科学研究和工程设计的主流的方式。人们在进行科学研究和工程设计已经形成了一些行之有效的方式。人们在进行科学研究和工程设计已经形成了一些行之有效的方法,通过这些方法我们可以对所要研究或设计的系统进行分析、综法,通过这些方法我们可以对所要研究或设计的系统进行分析、综合与设计。这些方法归纳起来主要有理论解析法、直接实验法与仿合与设计。这些方法归纳起来主要有理论解析法、直接实验法与仿真实验法三种方法。真实验法三种方法。1.1.理论解析法理论解析法所谓理论解析法,就是运用已掌握的理论知识对控制系统进行理论上的所谓理论解析法,就是运用已掌握的理论知识对控制系统进行理论上的分析、计算。它是在进行理论学习的一个必然应用的方法,其通过分析、计算。它是在进行理论学习的一个必然应用的方法,其通过理论的学习掌握有关的系统的客观规律,通过理论分析推导来对系理论的学习掌握有关的系统的客观规律,通过理论分析推导来对系统进行研究。统进行研究。图图1-2 1-2 单容水箱液位控制系统单容水箱液位控制系统如图如图1-21-2所示的单容水箱液位控制系统,通过体积和液位的平衡关系所示的单容水箱液位控制系统,通过体积和液位的平衡关系,可可以得到其数学模型。以得到其数学模型。(1.1)(1.1)然后可以通过局部线性化得到如下所示的单容水箱液位的传递函数模型然后可以通过局部线性化得到如下所示的单容水箱液位的传递函数模型 (1.2)(1.2)2.2.直接实验法直接实验法这种方法是我们古人常常采用的方法,譬如伽利略的自由落体实验。作这种方法是我们古人常常采用的方法,譬如伽利略的自由落体实验。作为实验法往往是在系统本身上进行实验。实验者利用各种仪器仪表为实验法往往是在系统本身上进行实验。实验者利用各种仪器仪表与装置,对系统施加一定类型的激励信号,利用系统的特性输出来与装置,对系统施加一定类型的激励信号,利用系统的特性输出来进行系统动静态特性的研究。例如我们可以通过给电动机突然加上进行系统动静态特性的研究。例如我们可以通过给电动机突然加上供电电压,来测量电机的阶跃特性。这种方法具有简明、直观与真供电电压,来测量电机的阶跃特性。这种方法具有简明、直观与真实,针对性强,在一些小型系统系统分析与测试中经常采用。整体实,针对性强,在一些小型系统系统分析与测试中经常采用。整体具有系统简单,经济消耗小等特点。具有系统简单,经济消耗小等特点。但是,这种方法采用实际系统进行实验,其费用较高,系统构成复杂、但是,这种方法采用实际系统进行实验,其费用较高,系统构成复杂、不确定因素太多,并且其有些系统由于实现性、安全性等原因不允不确定因素太多,并且其有些系统由于实现性、安全性等原因不允许进行直接的实验研究。应用的空间、时间受限较多。许进行直接的实验研究。应用的空间、时间受限较多。3.3.仿真实验法仿真实验法仿真实验法就是在模型上(物理的或数学的)所进行的系统性能分析与仿真实验法就是在模型上(物理的或数学的)所进行的系统性能分析与研究的实验方法,它所遵循的基本原则是相似原理。系统模型按照研究的实验方法,它所遵循的基本原则是相似原理。系统模型按照模型的形式可以分为物理模型和数学模型,还可以是两者的结合。模型的形式可以分为物理模型和数学模型,还可以是两者的结合。例如我们可以用包括欧姆定律、比例环节和惯性环节等来得到相关的控制规律,例如我们可以用包括欧姆定律、比例环节和惯性环节等来得到相关的控制规律,即系统的数学模型来进行研究。也可以对要设计的系统进行一定比例的缩放得到即系统的数学模型来进行研究。也可以对要设计的系统进行一定比例的缩放得到缩小或放大的物理模型或者具有一定特性替代的模型来进行间接地替代。也可以缩小或放大的物理模型或者具有一定特性替代的模型来进行间接地替代。也可以像计算机控制系统系统在线调试或火电站模型的模拟运行等数学和物理模型同时像计算机控制系统系统在线调试或火电站模型的模拟运行等数学和物理模型同时存在的混合系统。存在的混合系统。在物理模型上所做的仿真实验研究具有效果逼真、精度高等优点,由于相对费用在物理模型上所做的仿真实验研究具有效果逼真、精度高等优点,由于相对费用较高,且一致性有时难以保证等问题。而随着计算机技术和数学理论的飞速发展,较高,且一致性有时难以保证等问题。而随着计算机技术和数学理论的飞速发展,人们越来越重视利用数学模型或非实物软件模型来对系统进行研究和设计。这样人们越来越重视利用数学模型或非实物软件模型来对系统进行研究和设计。这样一类模型的研究实际上是利用了性能相似的原则来进行的,在一定的程度可以替一类模型的研究实际上是利用了性能相似的原则来进行的,在一定的程度可以替代实际系统来进行代实际系统来进行“仿真仿真”,是可信的。当然,采用何种的手段与方法建立高精,是可信的。当然,采用何种的手段与方法建立高精度的数学模型并能够在计算机上可靠的计算、运行是这种方法成功与否的关键。度的数学模型并能够在计算机上可靠的计算、运行是这种方法成功与否的关键。对于模型的实验应该说是在进行系统研究中的主要手段,选择在模型上对于模型的实验应该说是在进行系统研究中的主要手段,选择在模型上进行实验的原因主要有以下原因:进行实验的原因主要有以下原因:(1 1)系统尚未设计出来)系统尚未设计出来 (2 2)某些实验会对系统造成伤害)某些实验会对系统造成伤害 (3 3)难以保证实验条件的一致性)难以保证实验条件的一致性 (4 4)费用高)费用高 (5 5)无法复原)无法复原 1.1.3 1.1.3 模型的建立模型的建立 1.1.模型模型不管采用何种相似形式,仿真的进行都是在模型的基础上进行的,系统的仿真离不开相关的模型,而模型不管采用何种相似形式,仿真的进行都是在模型的基础上进行的,系统的仿真离不开相关的模型,而模型的好坏与否对系统的仿真是否真正能够和系统的好坏与否对系统的仿真是否真正能够和系统“相似相似”具有决定性的作用。对于不同的专业和研究特点,具有决定性的作用。对于不同的专业和研究特点,其模型应用的侧重点是不一样的,并且在系统仿真研究的不同阶段,其模型的应用也是不一样的。例如在其模型应用的侧重点是不一样的,并且在系统仿真研究的不同阶段,其模型的应用也是不一样的。例如在系统的理论学习阶段模型侧重于数学模型,而在系统的应用实验阶段,物理模型是不可或缺的。另外,随系统的理论学习阶段模型侧重于数学模型,而在系统的应用实验阶段,物理模型是不可或缺的。另外,随着现代科学技术的发展,一些模型并不能用传统的数学模型来表示,而是需要采用描述性的语言来建立所着现代科学技术的发展,一些模型并不能用传统的数学模型来表示,而是需要采用描述性的语言来建立所谓的系统数学模型,例如模糊控制的模型。在科学研究的过程中,也需要先有理论模型分析、半实物模型谓的系统数学模型,例如模糊控制的模型。在科学研究的过程中,也需要先有理论模型分析、半实物模型实验分析和实物运行验证等阶段。一个好的模型是工程设计或科学研究的基础,建立一个好的数学模型,实验分析和实物运行验证等阶段。一个好的模型是工程设计或科学研究的基础,建立一个好的数学模型,需要对所要研究系统的内涵及外延有一个比较清晰的认识,从而使模型能够代表所研究的系统。模型可以需要对所要研究系统的内涵及外延有一个比较清晰的认识,从而使模型能够代表所研究的系统。模型可以是物理模型、数学模型、混合模型甚至是语言描述模型,在本书中主要讲述或应用数学模型。是物理模型、数学模型、混合模型甚至是语言描述模型,在本书中主要讲述或应用数学模型。2.数学模型的建立建立系统模型就是(以一定的理论依据)把系统的行为概括为数学的函数关系。下面以一种直线倒立摆建模的过程来说明建模的基本步骤:1)确定模型的结构,建立系统的约束条件,确定系统的实体、属性与活动。在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和均匀质杆组成的系统,如下图所示:图1-3 直线一级倒立摆模型 图图1-4 1-4 小车及摆杆受力分析小车及摆杆受力分析2 2)检测得到有关的模型数据。)检测得到有关的模型数据。根据力学及运动等物理定律,我们可知系统中主要包含以下参数:根据力学及运动等物理定律,我们可知系统中主要包含以下参数:M-M-小车质量小车质量 m-m-摆杆质量摆杆质量 b-b-小车摩擦系数小车摩擦系数 l-l-摆杆转动轴心到杆质心的长度摆杆转动轴心到杆质心的长度 F-F-下车受力下车受力 x-x-小车位置小车位置 摆杆与垂直向上方向的夹角摆杆与垂直向上方向的夹角 摆杆与垂直向下方向的夹角(考虑到摆杆的初始位置为竖直向下)摆杆与垂直向下方向的夹角(考虑到摆杆的初始位置为竖直向下)3 3)运用适当理论建立系统的数学描述,即数学模型。)运用适当理论建立系统的数学描述,即数学模型。这个系统可以通过拉格朗日方法建模,牛顿这个系统可以通过拉格朗日方法建模,牛顿-欧拉方法建模等方法对系欧拉方法建模等方法对系统进行建模,例如采用牛顿统进行建模,例如采用牛顿-欧拉方法建模时可以得到如下系统运行欧拉方法建模时可以得到如下系统运行方程。方程。(1.3)(1.3)经过一定的化简最终得到系统的状态方程。经过一定的化简最终得到系统的状态方程。设设 ,则可以得到以小车加速度作为输入的系统状则可以得到以小车加速度作为输入的系统状态方程态方程:(1.41.4)4 4)检验所建立数学模型的准确性)检验所建立数学模型的准确性 在在MATLABMATLAB中对该模型进行单位阶跃的仿真实验来验证所建模型的准中对该模型进行单位阶跃的仿真实验来验证所建模型的准确性:确性:A=0 1 0 0;0 0 0 0;0 0 0 1;0 0 48.3 0A=0 1 0 0;0 0 0 0;0 0 0 1;0 0 48.3 0B=0;1;0;4.9B=0;1;0;4.9C=1 0 0 0;0 0 1 0C=1 0 0 0;0 0 1 0D=0;0D=0;0IPS=ss(A,B,C,D)IPS=ss(A,B,C,D)step(IPS)step(IPS)图图1-5 1-5 直线一级倒立摆模型的阶跃响应直线一级倒立摆模型的阶跃响应由图中可以看出该倒立摆系统模型符合倒立摆的特性。由图中可以看出该倒立摆系统模型符合倒立摆的特性。1.2 仿真及计算机仿真三要素1.2.1 仿真的定义仿真实质是对一个系统由其他系统(模型)代替或模拟该系统来进行研究和设计,这就要求系统和替代系统(模型)之间要有可替代的条件,也就是说实际系统和仿真系统之间应该满足相似性原理。相似性原理贯穿仿真技术的始终,是仿真技术的基础也是所遵循得基本原则。在实际的科学研究,工程实践的过程中,由于目的和方法不同,相似性的方式可以包含以下几个方面。(1)性能相似性能相似可以分为数学性能相似和物理性能相似。数学性能相似一般是通过原理抽象,利用各个学科内的各类定律和规律,通过数学模型来表征系统,并进行仿真计算研究。如图1-6所示的弹簧二阶阻尼系统和二阶电路系统,都可以通过各自的工作特点,进行理论分析,形成一个相似的二阶微分方程模型。(1.5)图1-6 弹簧二阶阻尼系统和二阶电路系统物理性能相似是指构成模型的元素和原系统的不同,但其性能相似。例如:可用一个电气系统来模拟热传导系统。在这个电气系统中电容代表热容量,电阻代表热阻,电压代表温差,电流代表热流。也如图1-6所示的由二阶电路代替弹簧二阶阻尼系统对由弹簧及液压装置组成的机械悬挂系统进行仿真研究。(2)几何相似根据相似原理把原来的实际系统放大可缩小。例如把12000吨水压机可用1200吨或120吨水压机作其模型,进行形变等仿真实验。万吨轮船或大型飞机也要用缩小的模型来进行流体力学方面的仿真研究。(3)环境相似一种是指通过模拟系统的运行环境,使人或设备能够及时感知当前环境的适应度,例如驾驶员培训模拟器,可以从视觉、听觉和触觉等方面使学员有一种身临其境的感觉。另一类本身模拟环境就是研究对象,从而研究环境的运行的情况。例如天气模拟系统。1.2.2 1.2.2 计算机仿真的目的和作用计算机仿真的目的和作用(1 1)优化设计)优化设计作为工程设计和科学实验,往往希望系统能够以一种最优的形式运行,尤其是电作为工程设计和科学实验,往往希望系统能够以一种最优的形式运行,尤其是电气与自动化的系统的设计。在设计或运行调试过程中,可以通过计算机仿真气与自动化的系统的设计。在设计或运行调试过程中,可以通过计算机仿真技术,仿真实验得到系统的性能和参数,以便进行参数的调整和优化。例如技术,仿真实验得到系统的性能和参数,以便进行参数的调整和优化。例如在控制系统中,通过多次的参数计算仿真,保证系统可以有一个比较理想的在控制系统中,通过多次的参数计算仿真,保证系统可以有一个比较理想的动、静态特性。动、静态特性。(2 2)经济性)经济性通过计算机仿真可以避免实际系统运行时所消耗的材料或能源,节省设计或研究通过计算机仿真可以避免实际系统运行时所消耗的材料或能源,节省设计或研究的费用,另外,采用物理模型或实物实验,花费巨大,采用数学模型即计算的费用,另外,采用物理模型或实物实验,花费巨大,采用数学模型即计算机数学仿真可大幅度的降低成本并可重复使用。例如,在进行飞机制造的过机数学仿真可大幅度的降低成本并可重复使用。例如,在进行飞机制造的过程中,进行风洞实验时,常常采用缩小的飞机模型替代实际飞机,或者是采程中,进行风洞实验时,常常采用缩小的飞机模型替代实际飞机,或者是采用专用软件进行造型分析。用专用软件进行造型分析。(3)安全性利用计算机仿真技术可以提高系统实验运行安全系数,减少由于系统试制阶段的状态不确定性而造成的人员或财物的损失。例如安全载人飞行器和核电站的危险性不允许人员在不成熟的情况下冒然进入现场操作运行,必须进行仿真。(4)预测性对于非工程系统,直接实验不可能,只能采用预测的方法。例如市场中的股票价格分析和天气预报等。(5)复原性通过仿真的手段复现一些场景或物体,从而使人们能够对一些事件进行模拟分析,实现事件评估或情景模拟。例如虚拟现实技术和安全事件分析评估等。1.2.3计算机仿真系统的三要素由以上所述可知,计算机仿真主要有系统、模型、计算机三个部分组成,常常称为计算机仿真的三要素,三者之间形成如图所示的关系。图1-7 计算机仿真三要素及三个基本活动通过专业理论知识的学习可以完成系统建模,形成的数学模型和实际系统的相似,但是由于计算机数据离散的要求和计算机仿真的实时性、可信性等要求,在进行计算机仿真时,需要考虑已经建立的数学模型是不是满足仿真的要求,还是要将系统模型转换为计算机系统认可的,具有一定相似性的计算机仿真模型。这需要进行专门的计算机仿真算法的研究,在本书主要侧重于用MATLAB的语言来完成计算机仿真的应用,对于计算机仿真算法不作太深入的探讨,在后面的学习中会简单介绍一下。计算机仿真三要素中,系统是根本,通过对系统的分析,通过系统建模建立相应的数学模型,然后通过计算机仿真的建模,在计算机中进行仿真实验,研究分析系统,如果效果满意则仿真结束。如果不满意则分析原因,重新进行上述步骤。1.2.4 1.2.4 仿真的分类仿真的分类1.按照模型性质分类 可以根据系统研究模型的性质分:(1)物理仿真按照物理性质构造系统的物理模型,并在模型上进行试验。(直观、形象)(2)数学仿真 一般是指在计算机上对系统的数学模型进行试验,在本书中基本上是以这一类模型为主。(经济方便)3)混合仿真两者结合。2.根据仿真时钟与实际时钟的比例关系分类在实际的仿真过程中,实际系统的运行和仿真运行的比例并不是1:1的形式出现,是应该根据系统的实时性创新的要求来进行选择,其推进的时钟是不同的。实时仿真,仿真时钟和实际时钟完全一致。欠实时仿真,仿真时钟比实际时钟慢。超实时仿真,仿真时钟比实际时钟快。3.按照信号类型:模拟、数字、混合 (1)模拟仿真由一些基本的模拟器件组成,它的输入、输出是连续变化的电压信号。采用并行运算,运算速度快,但精度不高。(2)数字仿真系统全部由数字器件构成,其处理也是按照离散数据来处理,其主要工具是数字计算机和相应的数字仿真软件。仿真精度高,仿真灵活方便,但是需要将模拟系统离散化,其算法和步长的选择很重要。(3)混合仿真是模拟-数字计算机仿真,当以上两者都不满足要求时,可以考虑采用混合仿真的方式进行仿真。例如采用数字控制器控制一个加热锅炉的水温,系统中既有数字控制信号,也有模拟的温度信号采集。1.3 1.3 连续系统仿真概论连续系统仿真概论在计算机仿真技术中也可以根据系统的数学模型特征将仿真分为连续系在计算机仿真技术中也可以根据系统的数学模型特征将仿真分为连续系统仿真、离散系统仿真和混合系统仿真。统仿真、离散系统仿真和混合系统仿真。1.1.连续系统仿真连续系统仿真系统的输入输出信号均为时间的连续函数,可用微分方程、状态方程等系统的输入输出信号均为时间的连续函数,可用微分方程、状态方程等数学表达式来描述,按照数值求解的方法来进行仿真计算。这也是数学表达式来描述,按照数值求解的方法来进行仿真计算。这也是本书主要介绍的内容。本书主要介绍的内容。2.2.离散系统仿真离散系统仿真系统的状态变化只是在离散时刻发生,且由某种随机事件驱动,称之为系统的状态变化只是在离散时刻发生,且由某种随机事件驱动,称之为离散事件系统。多采用流程图或网络图表达。在分析上则采用概率离散事件系统。多采用流程图或网络图表达。在分析上则采用概率及数理统计理论、随机过程理论来处理,例如理发店中的理发师及及数理统计理论、随机过程理论来处理,例如理发店中的理发师及理发者的各种状态与活动。在本书没有涉及这部分内容,有兴趣的理发者的各种状态与活动。在本书没有涉及这部分内容,有兴趣的读者可参阅有关文献。读者可参阅有关文献。3.3.混合系统仿真混合系统仿真是前两类仿真的综合,其一般在复杂的大系统仿真工程中实现。例如航是前两类仿真的综合,其一般在复杂的大系统仿真工程中实现。例如航天工程中的设备和人员的控制、运行操作等。天工程中的设备和人员的控制、运行操作等。1.3.11.3.1连续系统仿真模型连续系统仿真模型在实际的连续系统中,常见到的系统是线性时不变系统(在实际的连续系统中,常见到的系统是线性时不变系统(LTILTI)系统,)系统,其模型有两类,一类是连续系统的模型,一类是离散化的连续系统其模型有两类,一类是连续系统的模型,一类是离散化的连续系统的模型。的模型。1.1.连续时间模型连续时间模型 微分方程微分方程 (1.61.6)传递函数传递函数 (1.71.7)卷积函数模型卷积函数模型 (1.81.8)状态空间描述状态空间描述 (1.91.9)2.2.离散时间模型离散时间模型 差分方程差分方程 (1.101.10)Z Z传递函数传递函数 (1.111.11)卷积序列卷积序列 (1.121.12)离散状态空间模型离散状态空间模型 (1.131.13)3.连续离散混合模型有些系统由于研究对象是一个连续变化的实际系统,而控制或驱动则由计算机来完成,系统建立相应的模型时则包含连续部分和离散部分。系统模型中各个环节中有的空间为连续变量,而有的环节的状态变量为离散变量。系统组成如图1-8所示。图1-8 单闭环计算机控制系统框图1.3.2 1.3.2 连续系统的仿真数字算法初步连续系统的仿真数字算法初步在连续系统中,对系统运动的描述往往是采用微分方程来进行描述,其基本形式在连续系统中,对系统运动的描述往往是采用微分方程来进行描述,其基本形式如式如式1.141.14所示,其他模型形式是在其基础上的变换或推论。所示,其他模型形式是在其基础上的变换或推论。(1.141.14)在物理世界中,系统的动态变化最后还是要归结到系统在时域的运行变化,也就在物理世界中,系统的动态变化最后还是要归结到系统在时域的运行变化,也就是说系统的研究还是需要求解时域的变化及特性,这往往需要进行积分运算,是说系统的研究还是需要求解时域的变化及特性,这往往需要进行积分运算,而积分运算是一种连续累积运算。在计算机中由于计算机字长、存储空间、而积分运算是一种连续累积运算。在计算机中由于计算机字长、存储空间、仿真时间等因素,计算机不能进行这样的累积运算,需要采用数字积分算法仿真时间等因素,计算机不能进行这样的累积运算,需要采用数字积分算法来近似仿真运算。来近似仿真运算。数字积分算法是求解控制系统运动的微分方程模型的主要手段,其得到受控物理数字积分算法是求解控制系统运动的微分方程模型的主要手段,其得到受控物理量的运动规律,当然这种方式也会受到一些假设条件、非必要因素忽略的影量的运动规律,当然这种方式也会受到一些假设条件、非必要因素忽略的影响,但是如果满足一定的精度条件,这种近似的仿真计算还是满足仿真需要响,但是如果满足一定的精度条件,这种近似的仿真计算还是满足仿真需要的。在本节中将简单介绍一些常见的仿真算法,以便让读者对计算机仿真算的。在本节中将简单介绍一些常见的仿真算法,以便让读者对计算机仿真算法有一个初步的了解,而对于具体的仿真算法请参阅相关资料,在这里不再法有一个初步的了解,而对于具体的仿真算法请参阅相关资料,在这里不再介绍。介绍。一阶微分方程微分方程式的基本组成,高阶微分方程一般也可以有一阶微分方程一阶微分方程微分方程式的基本组成,高阶微分方程一般也可以有一阶微分方程组成,组成,所谓数字积分算法,就是寻求式所谓数字积分算法,就是寻求式1.141.14中中y y在一系列离散点在一系列离散点t0,t1,t2,t0,t1,t2,tntn的近似解的近似解y(1),y(2),y(1),y(2),y(n),y(n)。相邻两个点之间。相邻两个点之间h=tn-tn-1h=tn-tn-1,称为计算步长或步距。,称为计算步长或步距。根据根据 已知的初始条件已知的初始条件y(0)y(0),y(-1)y(-1),,采用不同的递推算法采用不同的递推算法(即不同的数值积分即不同的数值积分算法算法)可逐步递推计算出各时刻的可逐步递推计算出各时刻的y y的数值。常用的方法有欧拉法、梯形法、四的数值。常用的方法有欧拉法、梯形法、四阶龙格阶龙格-库塔法、亚当姆斯法等。库塔法、亚当姆斯法等。1.3.31.3.3几种常用的积分法几种常用的积分法 1.1.欧拉法欧拉法欧拉法是最简单的一种数值积分法。虽然它的计算精度较低,实际中很欧拉法是最简单的一种数值积分法。虽然它的计算精度较低,实际中很少采用,但其推导简单,能说明构造数值解法一般计算公式的基本少采用,但其推导简单,能说明构造数值解法一般计算公式的基本思想。对于式思想。对于式1.141.14从微积分的知识中可以得到从微积分的知识中可以得到t0-t1t0-t1的积分算式:的积分算式:(1.151.15)该积分算式的集合意义如图该积分算式的集合意义如图1-91-9所示。所示。图图1-9 1-9 欧拉法数值积分运算欧拉法数值积分运算 式1-B的积分项是曲线f及t0,t1所包围的面积,当步长h=tn-tn-1足够小时,可以用矩形面积加上初始值y(0)来近似,即 (1.16)其中y(t1)的近似值为y1,y(t0)的近似值为y0,然后依次类推就可以得到以下欧拉递推公式。yn+1=yn+h(yn,tn)(1.17)该公式又称为矩形法。任何一个新的数值解yn+1都是基于前一个数值解yn以及它的一阶微分值f(yn,tn)(即此处的曲线切线)求得的。若已知初值y0,则可以进行迭代计算,求得式1.14在tt1,t2,tn 处的近似解y(t1),y(t2),y(tn)。y1=y0+h(y0,t0)2.2.梯形法梯形法在上面的推导中,若用图中的梯形面积来近似式在上面的推导中,若用图中的梯形面积来近似式1.141.14中的积分项(如图中的积分项(如图1-101-10所示)。所示)。图图1-10 1-10 梯形法数值积分运算梯形法数值积分运算则可直接得到如下梯形数值积分算法公式:则可直接得到如下梯形数值积分算法公式:yn+1=yn+yn+1=yn+(yn,tn)+(yn,tn)+(yn+1,tn+1)(1.18)(yn+1,tn+1)(1.18)很显然,该公式的很显然,该公式的yn+1yn+1项是包含在公式的右边,其不能直接计算得到,项是包含在公式的右边,其不能直接计算得到,需要采用其他算法(如欧拉法)得到等式右端的需要采用其他算法(如欧拉法)得到等式右端的yn+1yn+1值才能够使计值才能够使计算进行下去。为了提高计算精度,可用梯形公式反复迭代。通常在算进行下去。为了提高计算精度,可用梯形公式反复迭代。通常在工程问题中,为简化计算,只迭代一次。这样可得改进的欧拉公式工程问题中,为简化计算,只迭代一次。这样可得改进的欧拉公式 (1.191.19)上式中第一式称为预估公式,第二式称为校正公式。通常称这类方法为预估上式中第一式称为预估公式,第二式称为校正公式。通常称这类方法为预估-校校正方法,也称为改进的欧拉法。这种有预估值提前运算的算法,又被叫做隐正方法,也称为改进的欧拉法。这种有预估值提前运算的算法,又被叫做隐式公式算法。式公式算法。3.3.龙格龙格-库塔法库塔法将公式将公式1.141.14在在tntn点展成泰勒级数点展成泰勒级数 (1.20)(1.20)如果去泰勒级数的前两项,则公式变成欧拉公式,如式如果去泰勒级数的前两项,则公式变成欧拉公式,如式1.211.21所示所示 (1.211.21)其去掉的部分就是级数的截断误差其去掉的部分就是级数的截断误差O(h2)O(h2),其误差较大,如果要得到精度更高的,其误差较大,如果要得到精度更高的近似解,必须取泰勒级数计算式中的高阶导数,但是其计算难度及计算量会近似解,必须取泰勒级数计算式中的高阶导数,但是其计算难度及计算量会大大增加。在实际的应用中,可以采取精度和计算难度的折中的方法,大大增加。在实际的应用中,可以采取精度和计算难度的折中的方法,4 4阶龙阶龙格格-库塔法就是其中一种最为常见的数值积分算法,它取泰勒级数的前五项,库塔法就是其中一种最为常见的数值积分算法,它取泰勒级数的前五项,导数最高阶次是导数最高阶次是4 4阶,截断误差阶,截断误差O(h5)O(h5)。龙格。龙格-库塔法是利用曲线库塔法是利用曲线f f上的几个点值上的几个点值确定其计算系数,因此其选择可以有多种组合方式,得到的龙格确定其计算系数,因此其选择可以有多种组合方式,得到的龙格-库塔法也是库塔法也是不一样的。下面就是其中一种算法:不一样的。下面就是其中一种算法:(1.221.22)龙格龙格-库塔法和欧拉法一样都属于单步法,只要给定方程的初值若已知初值库塔法和欧拉法一样都属于单步法,只要给定方程的初值若已知初值y0y0,就,就可以一步步求出近似解可以一步步求出近似解y(t1)y(t1),y(t2)y(t2),y(tn)y(tn)。y(t1)y(t1)的近似值为的近似值为y1,y2,y1,y2,yn,yn。单步法有下列优点:单步法有下列优点:1)1)需要存储的数据量少,占用的存储空间少;需要存储的数据量少,占用的存储空间少;2)2)只需要知只需要知道初值,即可启动递推公式进行运算,可自启动;道初值,即可启动递推公式进行运算,可自启动;3)3)容易实现变步长运算。容易实现变步长运算。4.4.亚当姆斯法亚当姆斯法 亚当姆斯法是线性多步法。在利用多步法计算亚当姆斯法是线性多步法。在利用多步法计算y(tn+1)y(tn+1)值时,必须已知除值时,必须已知除y(tn)y(tn)外前外前几步的值,例如几步的值,例如y(tn-1)y(tn-1),y(tn-2)y(tn-2)等。线性多步法不能自启动,需先用其他方法等。线性多步法不能自启动,需先用其他方法求出前几步的值才能利用进行数值积分的求解。线性多步法的递推计算公式求出前几步的值才能利用进行数值积分的求解。线性多步法的递推计算公式可写为可写为 (1.231.23)可以采用插值多项式来近似计算可以采用插值多项式来近似计算f(y,t)f(y,t),在,在tn-k-1tn-k-1到到tntn区间内等间距取区间内等间距取k k个点,进行个点,进行插值运算,求出上式中的待定的系数插值运算,求出上式中的待定的系数fi=f(yi,ti),i,ifi=f(yi,ti),i,i等,进而得到数值积分的值。等,进而得到数值积分的值。根据牛顿后插公式进行插值,得到一个根据牛顿后插公式进行插值,得到一个k-1k-1次多项式逼近次多项式逼近f(y,t)f(y,t),即,即 (1.241.24)其计算的几何意义如图其计算的几何意义如图1-111-11所示所示:图图1-11 1-11 亚当姆斯法数值积分运算亚当姆斯法数值积分运算常用的常用的4 4阶亚当姆斯法显式公式为阶亚当姆斯法显式公式为 (1.251.25)1.3.4 1.3.4 算法误差和稳定性问题算法误差和稳定性问题算法误差主要包括两种误差:截断误差和舍入误差。算法误差主要包括两种误差:截断误差和舍入误差。1.1.截断误差截断误差截断误差是指利用泰勒展开公式进行数值积分运算时,由于只取前几项而造成的截断误差是指利用泰勒展开公式进行数值积分运算时,由于只取前几项而造成的计算误差。截断误差的阶次越高,其求解的精度越高。前面介绍的积分方法计算误差。截断误差的阶次越高,其求解的精度越高。前面介绍的积分方法的截断误差为:的截断误差为:欧拉法:欧拉法:O(h2)O(h2)梯形法:梯形法:O(h3)O(h3)四阶龙格四阶龙格库塔法:库塔法:O(h5)O(h5)亚当姆斯法:亚当姆斯法:O(h6)O(h6)2.2.舍入误差舍入误差由于积分算法是由有限精度由于积分算法是由有限精度(字长字长)的计算机算术运算来实现的,所以必定要引入的计算机算术运算来实现的,所以必定要引入舍入误差。舍入误差会积累,它随着积分时间的增加和积分法阶次的增高而舍入误差。舍入误差会积累,它随着积分时间的增加和积分法阶次的增高而增加,并且它还随着积分步长的减小而变得愈加严重。这是因为对于给定的增加,并且它还随着积分步长的减小而变得愈加严重。这是因为对于给定的积分时间,使用更小的步长就意味着更多的积分步数。积分时间,使用更小的步长就意味着更多的积分步数。3.3.稳定性问题稳定性问题稳定性是数值积分法中非常重要的概念。所谓稳定性问题是指误差的积累是否受稳定性是数值积分法中非常重要的概念。所谓稳定性问题是指误差的积累是否受到控制的问题。如果在迭代递推运算时,前面积累的舍入误差是收敛的,即到控制的问题。如果在迭代递推运算时,前面积累的舍入误差是收敛的,即对实际误差的影响是减弱的,则计算方法是稳定的;反之,影响是增长的、对实际误差的影响是减弱的,则计算方法是稳定的;反之,影响是增长的、积累是发散的,则计算方法会变得不稳定,使得仿真计算结果是不可信的,积累是发散的,则计算方法会变得不稳定,使得仿真计算结果是不可信的,仿真计算结果失去意义。仿真计算结果失去意义。通常,把数值积分法用于试验方程通常,把数值积分法用于试验方程 (1.261.26)来判断积分算法的稳定性。若数值积分公式为来判断积分算法的稳定性。若数值积分公式为 (1.271.27)则当差分方程满足稳定条件则当差分方程满足稳定条件p|(h)|1p|(h)|1时,算法才稳定。下面对几种数值积分法进行稳定性分析。时,算法才稳定。下面对几种数值积分法进行稳定性分析。(1 1)欧拉法)欧拉法把欧拉公式把欧拉公式yn+1=yn+hfnyn+1=yn+hfn应用到上述试验方程,得到应用到上述试验方程,得到 对式(3.28)进行Z变换后得 (1.29)此差分方程的特征方程为 (1.30)根据差分方程稳定条件得 (1.31)式1.31称为欧拉公式的稳定性条件,它对h的限制构成了复平面上以(-1,0)为圆心的单位圆(图1-12),也称为欧拉公式的稳定区域。如果积分步长取得足够小使h落在稳定域内,则欧拉公式是稳定的。图1-12 欧拉公式的稳定区域(2 2)梯形法)梯形法梯形积分公式为梯形积分公式为 (1.32)(1.32)代入测试方程,取代入测试方程,取z z变换后得变换后得 (1.33)(1.33)其特征根为其特征根为 (1.34)(1.34)即即 (1.351.35)可见,若可见,若00,则,则|z|1,|z|A=1,2,3;4,5,6;7,8,9 A=1,2,3;4,5,6;7,8,9A=A=1 2 3 1 2 3 4 5 6 4 5 6 7 8 9 7 8 9 A(1,1)A(1,1)ans=ans=1 1 A(2,3)A(2,3)ans=ans=6 6(3 3)多维数组)多维数组多维数组迎合了许多多维的科学计算。在多维数组迎合了许多多维的科学计算。在MATLABMATLAB中数据的中数据的逻辑形式可以表现出多维,但物理上在内存中的形式却是逻辑形式可以表现出多维,但物理上在内存中的形式却是很简单按列存放的。可以将二维以后的数据按照页的概念很简单按列存放的。可以将二维以后的数据按照页的概念理解,每页都看成一个二维的矩阵。其生成和元素的访问理解,每页都看成一个二维的矩阵。其生成和元素的访问都和二维的矩阵类似。如图都和二维的矩阵类似。如图2-82-8所示。所示。图图2-8 2-8 多维数组矩阵多维数组矩阵2.3.2 矩阵的基本运