1.1 计算机仿真的基本概念
系统仿真是指通过系统模型的试验去研究一个已经存在的,或者是正在研究设计中的系统的具体过程。要实现系统仿真首先要寻找一个实际系统的“替身”,这个“替身”被称为系统模型。它不是系统原型的复现,而是按研究的侧重面或实际需要对系统进行简化提炼,以利于研究者抓住问题的本质或主要矛盾。在计算机出现以前,人们只采用物理仿真,那时的仿真技术附属在其他有关学科之中。随着计算机技术的发展,在仿真领域提出了大量的共同性的理论、方法和技术,所以仿真理论逐渐形成了一门独立的学科。
计算机仿真就是以计算机为工具,用仿真理论来研究系统。系统是仿真技术研究的对象,计算机是进行仿真技术研究所使用的工具。而应用恰当的模型描述系统是进行仿真研究的前提与核心,为了更全面、系统地了解系统仿真的基本概念和基本方法,有必要先了解一下什么是系统、系统模型及系统仿真。
1.1.1 系统
我们研究系统的目的在于深入认识并掌握系统的运动规律,不仅要定性地了解系统,还要对系统进行大量的分析、综合,以便解决一些自然、社会及工程上的复杂问题,那么,如何给系统下一个定义呢?
系统是一个内涵十分丰富的概念,是许多研究系统的学科共同使用的一个基本概念,如:控制系统、电力系统、机械系统、通信系统……正由于系统这个术语应用得非常普遍,所以就要给它下一个人们普遍能够接受的定义:
系统——由相互联系、相互制约、相互依存的若干部分(要素)结合在一起形成的具有特定功能和运动规律的有机整体。
系统的各个组成部分通常被称为子系统或分系统,而系统本身又可以看成它所从属的更大的系统的一个组成部分。例如,发电厂是一个电力生产系统,由汽机分厂、锅炉分厂、电气分厂和修配分厂等部门组成,汽机分厂、锅炉分厂、电气分厂和修配分厂等部门可以看做发电厂系统下面的各个子系统;同时,各个发电厂又是整个电力系统的一个组成部分。
任何系统都存在三方面需要研究的内容:即实体、属性和活动。
实体——组成系统的具体对象;
属性——实体所具有的每一种有效特性(状态和参数);
活动——系统内对象随时间推移而发生的状态变化。
图1-1 RLC电路系统
以图1-1中的RLC电路系统为例。
系统的实体为:电阻R,电感L,电容C和激励e(t)。
系统的属性为:电荷q,电流dq/dt,激励e(t)和R、L、C的数值。
系统的活动为:电振荡(随时间变化)。
由系统的定义可知,系统具有下列性质。
1.整体性
系统是一个整体,它的各个部分既是相对独立的,又是不可分割的。图1-1所示的系统就是由独立的电路元件按一定的规律组成的简单电路系统。
2.相关性
系统内部的各个部分之间按一定的规律相互联系、相互作用。这种相互联系和相互作用可以表现为某一个子系统从其他的子系统接受输入,从而产生有用的输出作用,该子系统的输出又可能是另一个子系统的输入。如图1-1的电路系统所示,系统的关联性主要表现为每个环节之间的信息流动和信息反馈作用。
3.目的性
设计或者综合一个系统,是为了实现预定的目的,也就是说系统具有目的性。一个系统的目的性表现在两个方面:一是系统要完成特定的功能;二是在完成基本功能的同时要使系统达到最优化。
另外,系统并不是孤立的,总是在某一个环境中工作。而环境的变化有可能影响系统的性能,系统也会产生一些作用,使系统之外的物体发生变化。因此还要明确系统的边界和环境。系统的边界(可以是物理的也可以是概念的)包围了所研究对象的所有部件;位于边界以外的那些部件以及能够在系统特性上施加某些重要影响的因素(但不能从系统内部控制这些影响)构成了系统的环境。而系统的边界并不是固定不变的,是需要根据所研究的目标来确定哪些属于内部因素、哪些属于外部因素。
根据所研究的对象与目标的不同,确定的系统可以大也可以小。系统本身是由相互作用的子系统构成的,子系统又可以由更低一级的子系统构成,从而形成系统的等级结构。
1.1.2 系统分类
系统的范围很广,可谓包罗万象,可以初步分为人类在长期的生产劳动和社会实践中逐渐认识世界而形成的自然系统(也可以称为非工程系统)和人为构成的满足某种需要、实现预定功能的工程系统,我们的研究对象主要是这种人为构成的工程系统。系统分类的方法很多,主要有以下4种分类方法。
1.静态系统和动态系统
静态系统是被视为相对不变的,如:处于平衡状态的一根梁,如果没有外界的干扰,则其平衡力是一个静态系统;处于稳定运行状态下的电力系统,在没有受到大的扰动时,也属于一个静态系统。
动态系统的状态是可以改变的,如:运行中的电力系统,在受到外界的干扰后,系统的运行状态(电压、电流和功率)都会发生相应的改变,如果调节器起作用,系统就会到达一个新的平衡点。在状态改变过程中的系统就是动态系统。
2.确定系统和随机系统
对于动态系统可以进一步分为两类:
①一个系统的每一个连续状态是唯一确定时,这个系统就是确定系统;
②一个系统在指定的条件和活动下,从一种状态转换成另一种状态不是确定的,而是带有一定的随机性,也就是相同的输入经过系统的转化过程会出现不同的输出结果时,这个系统就是随机系统。
3.连续系统和离散系统
在系统分类方法中一个比较重要的方法是按照系统状态随时间变化是否连续把系统分为连续系统和离散系统。一个系统的状态如果随着时间的变化是连续的,则该系统被称为连续系统;一个系统的状态如果随着时间成间断或突然的改变,则称该系统为离散系统。一个连续系统的动态特性可以用一个或一组方程来描述,这里的方程可以是代数方程、微分方程和状态方程等,究竟选用哪一种,视研究者对系统的一部分感兴趣还是对系统的整体感兴趣而定。一个离散系统的状态变化只是在离散时刻发生,而且往往是随机的,一般用“事件”来表示这种在离散时间间隔内的状态变化。
4.其他的分类方法
常用的分类方法还有:按照方程的类型分为线性系统和非线性系统;按参数类型分为定常系统和时变系统;还可以分为集中参数系统和分布参数系统;按照变量的个数分为单变量系统和多变量系统。
1.1.3 系统模型
系统模型是系统的某种特定性能的一种抽象形式。系统模型实质是用某种形式来近似地描述或模拟所研究的对象或过程。模型可以描述系统的本质和内在的关系,通过对模型的分析和研究,达到对原系统的了解。
模型的表达形式一般分为物理模型和数学模型两大类。
1.物理模型
物理模型又分为缩尺模型和模拟模型两种:
(1)缩尺模型
缩尺模型与实际系统有相似的物理性质,这些模型是按比例缩小了的实物,如:风洞试验中的飞机外形和船体外形;用于做动模试验的电力系统装置等。
(2)模拟模型
模拟模型是用其他现象或过程来描述所研究的现象或过程,用模型的性质来代表原来系统的性质。如:用电流来模拟热流、流体的流动;用流体来模拟车流等。模拟模型又可以进一步按模型的变量与原系统的变量之间的对应关系分为直接模拟模型和间接模拟模型两种。
还有一种具体模型是与原系统完全一致的样机模型,如生产过程中试制生产的样机等。
2.数学模型
数学模型是系统的某种特征本质的数学表达式,即用数学公式(如:函数式、代数方程、微分方程、微积分方程、差分方程)来描述(或表示、模拟)所研究的客观对象或系统中某一方面的规律。通过对系统数学模型的研究可以揭示系统的内在运动和系统的动态性能。
因为我们主要介绍利用计算机对一个系统进行仿真研究与分析,所以这本书里更侧重于对数学模型的介绍。
根据数学表达式的性质划分,数学模型可以分为:静态模型和动态模型两大类。无论是静态模型还是动态模型都具有抽象性,在计算机上运行的模型还要求具有递归性。
(1)静态模型——系统处于平衡状态下的属性
静态模型的一般表示形式是代数方程、逻辑表达关系式。例如:系统的稳态解公式、理想电位器转角和输出电压之间的关系式,以及继电器的逻辑关系输出式等。
(2)动态模型——系统属性随时间而发生变化
动态模型主要分为连续系统模型和离散系统模型。
①连续系统模型
连续系统模型又可以分为确定性模型和随机性模型。当系统有确定的输入时,系统受到一些复杂而尚未搞清原因的元素的影响,使得输出是不确定的,用随机数学模型来描述。当系统的输入是确定的、而且系统的输出也是确定的时,系统为确定性系统,用确定性模型来描述。确定性模型又可细分为以下几种类型:
a.微观数学模型和宏观数学模型
许多系统在局部空间或瞬间存在某种规律,它反映出所关注的系统的某种属性,这样得到的模型为微观模型。微观数学模型通常用微分方程和差分方程来描述。如果存在系统在一段时间或一个空间内变化量的总和与其他量之间的某种关系,根据这种关系建立的模型就是宏观模型。宏观模型常用各种积分公式、积分方程、联立方程组来表示。
b.线性数学模型和非线性数学模型
如果系统的输入/输出是呈线性的关系,也就是说满足均匀性和叠加性,这种系统模型或数学模型就是线性模型。不满足均匀性和叠加性的模型为非线性模型。
c.集中参数模型与分布参数模型
在科技工程中还存在两种不同类型的系统。一种是当输入送进系统后,输入的激励几乎同时波及到系统的每一点,也就是说,激励只是时间的函数,与系统点的位置无关。另一种是输入的激励要经过一段时间才传播到系统的各点,激励不但是时间的函数而且也是系统各点位置的函数。前一种系统和模型称为集中参数系统和集中参数模型,后一种称为分布参数系统和分布参数模型。如图1-1所示的RLC电路网络就是集中参数系统,电力系统在进行一些特定的研究时就属于一个分布参数系统。集中参数数学模型用常微分方程表示,分布参数数学模型用偏微分方程表示。
d.定常数学模型与时变数学模型
如果系统的全部参数与时间无关,那么系统为定常系统,主要用常系数微分方程和常系数差分方程来表示;如果系统的参数是时间的函数,那么系统为时变系统,主要用变系数的微分方程和变系数的差分方程来表示,如:含有真空管和晶体管的网络。
e.存储系统和非存储系统
如果系统任意瞬时t的输出仅与该时刻的输入有关,那么具有如此性质的系统为非存储系统,因为t时刻的输出与过去的状态无关,故常用代数方程来描述,如:电阻网络;相反,如果系统t时刻的输出与(t-T,t)区间的系统输入有关,那么系统为一个存储系统,T为存储长度,如:含有电感或电容的系统,一般应用非代数方程来表示。
②离散系统模型
a.时间离散系统。这种系统又被称为采样控制系统,一般采用差分方程、离散状态方程和脉冲传递函数来描述。系统的特性实质上是连续的,只是因为在采样的时刻点上来研究系统的输出,所以构成了时间离散系统。各种数字式控制器的模型均属于此类。
b.离散事件模型。这种系统模型用概率模型来描述。这种系统的输出,不完全由输入作用的形式来描述,往往存在着多种可能的输出。它是一个随机系统,如:库存系统、管理车辆流动的交通系统、排队服务系统等。因为这种系统的输入/输出是随机发生的,所以一般要用概率模型来描述这种系统。
1.1.4 建模方法
系统模型的建立是系统仿真的基础,而建立系统模型是以系统之间相似性原理为基础的。相似性原理指出,对于自然界的任一系统,都存在另一个系统,它们在某种意义上可以建立相似的数学描述或存在相似的物理属性。一个系统可以用模型在某种意义上来近似,这是整个系统仿真的理论基础。
要对一个系统进行研究,主要分为这样几个部分进行:其“白色”部分,可以建立定量的解析模型;“灰色”部分则可以通过试验、观测和归纳推理获得其模型结构,并根据专家的经验和知识来辨识参数;而对于“黑色”部分,则只能借助于各种信息知识(感性的、理性的、经验的、意念的、行为的等)给予定性的描述。
一个实际的问题往往是很复杂的,影响它的因素总是很多的。如果想把它的全部影响因素(或特性)都反映到数学模型中来,那么这样的数学模型是很难、甚至是不可能建立的;即使建立起来也是不可取的,因为这样的数学模型非常复杂,很难进行数学的推演和计算。反过来,若仅考虑数学处理的要求,当然数学模型越简单越好,这样做又难于反映系统的主要特性。实际建立数学模型一般要遵守以下的原则:
(1)精确性
精确性是模型与真实客体的相似程度的标志,根据所研究问题的目的、内容的不同对模型的精度有不同的要求。建模的方法、测试数据的精度、模型的结构都对模型的精度有影响。因此,要从工程实际出发,确定合适的模型精度。
(2)合理性
模型是对被研究实体在特定条件下的相似性复现。因此,在模型建立前,合理地提出模型的适用条件是十分必要的。例如:在分析电力传输的问题时,如果只关心输入端和输出端各变量之间的关系,可以建立集中参数模型;如果关心传输线中间的任意处的各变量的情况,就需要建立分布参数模型。
(3)复杂性
在满足所需模型精度的前提下,应对模型进行合理的简化。降低模型的阶数和简化模型结构是降低模型复杂程度的主要办法。为了研究的需要,可以对被研究的实际系统进行适当的分解,但不是分的越细越好。在一些场合,通过适当的简化,不仅可以简化程序,而且可以节省大量的仿真时间。
(4)应用性
建立模型的目的是把对模型的仿真应用于实际系统的分析和研究。因此,对模型中描述变量的选择应该从实际出发,遵循输入量可以测量的原则。
(5)鲁棒性
模型的适应性不仅与模型的精度有关,还与模型的结构、参数等有关。一个鲁棒性好的模型不但在所假设的工况下是适用的,而且当工况在假设条件以外的一定范围内也是适用的。这对于仿真结果的外推是非常重要的。
建立数学模型的一般方法有以下三种:
(1)演绎法
通过定理、定义、公理及已经验证了的理论推演得出数学模型。这是最早的一种建模方法,这种方法适用于内部结构和特性很明确的系统,可以利用已知的定律,如:力、能量等平衡关系来确定系统内部的运动关系,大多数工程系统属于这一类。电路系统、动力学系统等都可以采用这种演绎法来建立数学模型。
(2)归纳法
通过对大量的试验数据分析、总结,归纳出系统的数学模型。对那些内部结构不十分清楚的系统,可以根据对系统的输入/输出的测试数据来建立系统的数学模型。
(3)混合法
这是将演绎法和归纳法互相结合的一种建模方法。通常通过先验的知识确定系统模型的结构形式,再用归纳法来确定具体的参数。
最后,需要对所得到的模型进行检验和修正,检验模型是否反映真实的系统,是否满足精度等。一边检验模型,一边还需要对模型进行修正,直到得到满意的数学模型为止。
1.1.5 系统仿真
仿真界专家和学者对仿真下过不少的定义,其中内勒(T.H.Naylar)于1966年在其专著中对仿真做了如下定义:仿真是在数字计算机上进行试验的数字化技术,它包括数字与逻辑模型的某些模式,这些模型描述了某一事件或经济系统(或者它们的某些部分)在若干周期内的特征。还有一些描述性的定义,从中可以看出,系统仿真实质上包括了三个基本要素:系统、系统模型、计算机。而联系这三个要素的基本活动是:模型建立、仿真模型建立和仿真实验,如图1-2所示。
图1-2 系统仿真三要素
综合国内外学者对仿真的定义,可以对系统仿真做如下定义:
系统仿真是建立在控制理论、相似理论、信息处理技术和计算技术等理论基础之上的,以计算机和其他专用物理效应设备为工具,利用系统模型对真实或假想的系统进行试验,并借助专家经验知识、统计数据和信息资料对试验结果进行分析和研究,进而做出决策的一门综合性的试验性科学。
上述定义中的计算技术,除了包含通常意义下的计算理论和技术,还应该包括现代运筹学的绝大部分内容。对信息理论、控制理论、运筹学等的概念和术语,可以参见有关的系统科学和系统工程的著作。
1.1.6 系统仿真分类
依据不同的分类方法,可以将系统仿真进行不同的分类,如:
①根据被研究系统的特征可以分为两大类,连续系统仿真和离散事件系统仿真。
连续系统仿真是指对那些系统状态量随时间连续变化的系统的仿真研究,包括数据采集与处理系统的仿真。这类系统的数学模型包括:连续模型(微分方程等),离散时间模型(差分方程等)及连续-离散混合模型。
离散事件系统仿真是指对那些系统状态只在一些时间点上由于某种随机事件的驱动而发生变化的系统进行仿真试验。这类系统的状态量是由于事件的驱动而发生变化的,在两个事件之间状态量保持不变,因而是离散变化的,被称为离散事件系统。这类系统的数学模型通常用流程图或网络图来描述。
②按仿真实验中所取的时间标尺τ(模型时间)与自然时间的时间标尺(原型时间)T之间的比例关系可以将仿真分为实时仿真和非实时仿真两大类。若τ/T=1,则称为实时仿真,否则称为非实时仿真。非实时仿真又分为超实时τ/T>1和亚实时τ/T<1两种。
③按照参与仿真的模型种类不同,将系统分为物理仿真、数学仿真和物理-数学仿真(又称半物理仿真或半实物仿真)。
物理仿真,又称为物理效应仿真,是指按照实际系统的性质构造系统的物理模型,并在物理模型上进行试验研究。物理仿真直观形象,逼真度高,但不如数学仿真方便;尽管不用采用昂贵的原型系统,但在某些情况下构造一套物理模型也需要较大的投资,且周期较长,此外在物理模型上做试验不容易修改系统的结构和参数。
数学仿真是指首先建立系统的数学模型,并将数学模型转化成仿真计算模型,通过仿真模型的运行来达到系统运行的目的。现代数学仿真由仿真系统的软件/硬件环境、动画与图形显示、输入/输出等设备组成。数学仿真在系统分析与设计阶段是十分重要的,通过它可以检验理论设计的正确性和合理性。数学仿真具有经济性、灵活性和仿真模型的通用性等特点,今后随着并行处理技术、集成化技术、图形技术、人工智能技术和先进的交互式建模仿真的软硬件技术的发展,数学仿真必将获得飞速发展。
物理-数学仿真,又称为半实物仿真,准确的称谓是硬件(实物)在回路(Hardware in the Loop)的仿真。这种仿真将系统的一部分以数学模型描述,并把它转化为仿真计算模型;另一部分以实物(或物理模型)方式引入仿真回路。半实物仿真主要具有以下特点:
①原系统中的若干子系统或部件很难建立精确的数学模型,再加上各种难以实现的非线性因素和随机因素的影响,使得进行纯数学仿真十分困难或难以取得理想的效果。在半实物仿真中,可以将不易建模的部分以实物的形式参与仿真试验,从而避免建模的困难。
②利用半实物仿真可以进一步检验系统数学模型的正确性和数学仿真结果的精确性。
③利用半实物仿真可以检验构成真实系统的某些实物部件乃至整个系统的性能指标及可靠性,准确调整系统的参数和控制规律。在航空航天、武器系统和电力系统等研究领域,半实物仿真是不可缺少的重要手段之一。
1.1.7 系统仿真的一般过程与步骤
系统仿真是对系统进行试验研究的综合性技术学科。对于系统的任一项仿真研究都是一个系统工程,研究过程可简可繁,而对于复杂系统或综合系统的总体仿真研究则是一件难度很大的工作。系统仿真的主要工作有:系统仿真实验总体方案的设计;仿真系统的集成;仿真试验规范和标准的制定;各类模型的建立、校核、验证及确认;仿真系统的可靠性和精确度分析与评估;仿真结果的认可和置信度分析等,涉及面十分广泛。为了使仿真试验顺利进行并获得预期的效果,必须把针对某一实际系统的仿真试验切切实实作为一项系统工程来抓。通常系统的仿真实验是为特定的目的而设计的,是为仿真用户服务的,因此,复杂系统的仿真实验需要仿真者与用户共同参与,从这个意义上来说,仿真实验应该包括这样几个阶段的工作。
1.建模阶段
在这一阶段中,通常是先分块建立子系统的模型。若为数学模型则需要进行模型变换,即把数学模型变为可以在仿真计算机上运行的模型,并对其进行初步的校验;若为物理模型,它需要在功能与性能上覆盖系统的对应部分。然后根据系统的工作原理,将子系统的模型进一步集成为全系统的仿真实验模型。
2.模型实验阶段
在这一阶段中,首先要根据实验目的制订实验计划和实验大纲,在计划和大纲的指导下,设计一个好的流程,选定待测量变量和相应的测量点,以及适合的测量仪表。然后转入模型运行,即进行仿真实验并记录结果。
3.结果分析阶段
结果分析在仿真过程中占有重要的地位。在这一阶段中需要对实验数据进行去粗取精、去伪存真的科学分析,并根据分析的结果做出正确的判断和决策。因为实验的结果反映的是仿真模型系统的行为,这种行为能否代表实际系统的行为,往往得由仿真用户或熟悉系统领域的专家来判定。如果得到认可,则可以转入文档处理,否则,需要返回建模和模型实验阶段查找原因,或修改模型结构和参数,或检查实验流程和实验方法,然后再进行实验,如此往复,直到获得满意的结果。
对于一般意义下的系统仿真,通常将它分为以下10个步骤:
①系统定义(System Definition)。确定所研究系统的边界条件与约束。
②数据准备(Data Preparation)。收集和整理各类有关的信息,简化为适当的形式,同时对数据的可靠性进行核实,为建模做准备。
③模型表达(Model Formulation)。把实际系统抽象为数学公式或逻辑流程图,并进行模型验证(Validation)。
④模型变换(Model Translation)。用计算机语言描述模型,即建立仿真模型,并进行模型校核(Verification)。
⑤模型认可(Model Accreditation)。断定所建立的模型是否正确合理,是整个建模、仿真过程中极其困难而又非常重要的一步,并且与模型校核、模型验证等其他步骤都有密切的联系。
⑥战略设计(Strategic Planning)。根据研究的目的和仿真的目标,设计一个试验,使之能提供所需要的信息。
⑦战术设计(Tactical Planning)。确定试验的具体流程,如仿真执行控制参数、模型参数与系统参数等。
⑧仿真执行(Simulation Execution)。运行仿真软件并驱动仿真系统,得出所需数据,并进行敏感性分析。
⑨结果整理(Result Interpretation)。由仿真结果进行推断,得到一些设计和改进系统的有益结论。
⑩实现与维护(Implementation and Maintenance)。使用模型或仿真结果,形成产品并进行维护。
1.1.8 系统仿真的应用
系统仿真在系统分析与设计、系统理论研究、专职人员培训等方面都有十分重要的应用。
1.在系统分析与设计中的应用
系统仿真在系统分析与设计中的应用主要有以下几个方面:
①对尚未建立起来的系统进行方案论证及可行性分析,为系统设计打下基础;
②在系统的设计过程中利用仿真技术可以帮助设计人员建立系统模型,进行模型简化及验证,并进行优化设计;
③在系统建成之后,可以利用仿真技术来分析系统的运行状况,寻求改进系统的最佳途径,找出最优的控制策略。
2.在系统理论研究中的应用
对系统理论的研究,过去主要依靠理论推导。现在,系统仿真技术为系统理论研究提供了一个十分有利的工具。它不仅可以验证理论本身的正确与否,而且还可以进一步暴露系统理论在实际应用中的矛盾与不足,为理论研究提供新的研究方向。目前,在最优控制、自适应控制和大系统的分解协调控制等理论问题的研究中都应用了仿真技术。
3.在专职人员训练与教育方面的应用
系统仿真应用于训练和教育是它应用的另一个重要的方向。现在已经为各种运载工具(包括飞机、汽车和船舶等)以及各种复杂设备及系统(电站、电网和化工设备等)制造出各种训练仿真器。它们在提高训练效率、节约能源及安全训练等方面起着十分重要的作用。