1.2 计算机仿真的历史及现状
1.2.1 计算机仿真
数学仿真的基本工具是计算机,通常又将数学仿真称为计算机仿真。按照所使用的计算机的种类的不同,可以将计算机仿真分为模拟计算机仿真、数字计算机仿真和混合计算机仿真。
1.模拟计算机仿真
模拟计算机是由运算放大器组成的模拟计算装置,它包括运算器、控制器、模拟结果输出设备和电源等。模拟计算机的基本运算部件为加(减)法器、积分器、乘法器、函数器和其他非线性部件。这些运算部件的输入/输出变量都是随时间连续变化的模拟量电压,故称为模拟计算机。
模拟仿真是以相似性原理为基础的,实际系统中的物理量,如:距离、速度、角度和质量等,都用按一定比例变化的电压来表示,实际系统某一物理量随时间变化的动态关系和模拟计算机上与该物理量对应的电压随时间变化的关系是相似的。因此,原系统的数学方程和模拟机上的排题方程是相似的。只要原系统能用微分方程、代数方程(或逻辑方程)描述,就可以在模拟机上求解。
模拟仿真具有以下特点:
①能快速求解微分方程。模拟计算机运行时各运算器是并行工作的,模拟机的解题速度与原系统的复杂程度无关。
②可以灵活设置仿真试验的时间标尺。模拟机仿真既可以进行实时仿真,又可以进行非实时仿真。
③易于和实物相连。模拟计算机仿真是用直流电压表示被仿真的物理量,因此和连续运动的实物系统连接时一般不需要A/D、D/A转换装置。
④由于受到电路元件精度的制约和易于受到外界的干扰,所以模拟仿真的精度一般低于数字计算机仿真,且逻辑控制功能较差,自动化程度也较低。
2.数字计算机仿真
数字计算机的基本组成是存储器、运算器、控制器和外围设备等。由于数字计算机只能对数码进行操作,所以任何动态系统在数字计算机上进行仿真都必须将原系统模型变换成能在数字计算机上进行数值计算的离散时间模型。故数字仿真需要研究各种仿真算法,这是数字计算机仿真与模拟计算机仿真的最基本的差别。
数字仿真的特点是:
①数值计算的延迟。任何数值计算都有计算时间的延迟,其延迟的大小与计算机本身的存取速度、运算器的解算速度、所求解问题本身的复杂程度及使用的算法有关。
②仿真模型的数值化。数字计算机对仿真问题进行计算是采用数值计算,仿真模型必须是离散模型,如果原始数学模型是连续模型,则必须转换成适合数字计算机求解的仿真模型,因此需要研究各种仿真算法。
③计算精度高。特别是在工作量很大时,与模拟机相比具有更大的优越性。
④实现实时仿真比模拟仿真困难。对复杂的快速动态系统进行实时仿真时,对数字计算机本身的计算速度、存取速度等要求高。
⑤利用数字计算机进行半实物仿真时,需要有A/D、D/A转换装置与连续运动的实物相连接。
3.混合计算机仿真
混合计算机系统是由模拟计算机、数字计算机通过一套混合接口(A/D、D/A)组成的数字、模拟混合计算机系统,该系统具有模拟计算机的快速性和数字计算机的高精度和灵活性的优点。
混合仿真系统的特点是:
①混合仿真系统可以充分发挥模拟仿真和数字仿真的特点;
②仿真任务同时在模拟计算机和数字计算机上执行,这就存在按什么原则分配模拟计算机和数字计算机任务的问题,一般是使模拟计算机承担精度要求不高的快速计算任务,数字计算机则承担高精度、逻辑控制复杂的慢速变化任务;
③混合仿真的误差包括模拟机误差、数字机误差和接口误差,这些误差在仿真中均予以考虑;
④一般混合仿真需要专门的混合仿真语言来控制仿真任务的完成。
1.2.2 仿真软件及仿真计算机
数字仿真语言是现代仿真工具,因其相对简单而被广泛采用。仿真语言最大的优点是软件相对独立于硬件装置,其缺点是仿真速度不能满足实时仿真的要求。
仿真软件是一类面向仿真用途的专用软件,它的特点是面向问题、面向用户。它的功能可概括为:
①模型描述的规范及处理;
②仿真试验的执行与控制;
③资料与结果的分析、显示及文档化;
④对模型、试验程序、资料、图形或知识的存储、检索与管理。
根据上述功能的实现情况,仿真软件分为仿真程序、仿真语言、仿真环境三个不同层次。
仿真软件包括仿真程序和仿真语言,其中仿真程序是仿真软件的初级形式,是仿真软件的基本组成部分。仿真程序用于某些特定的问题的仿真,可提供许多算法;仿真语言则为用户提供更强的仿真功能,适用于不同领域的多种系统的仿真。仿真程序主要是采用高级计算机语言开发出来的,早期使用Basic语言,而现在一般使用Fortran语言和Visual C语言开发仿真程序,并且还发展到采用Visual C++语言来开发面向对象的计算机仿真程序。
仿真程序一般对计算机的硬件要求比较低,一般的计算机只要配置了相应的算法语言程序就可以运行;仿真程序可以针对不同的问题做适当的修改,以满足不同的需要;仿真程序使用比较简单,只需要输入系统模型和系统参数即可,并可选择多种积分算法。但仿真程序在功能上一般比较简单,只适于解决某一特定领域的一些小型仿真问题。国外从20世纪60年代开始开发适用于不同领域、不同对象的仿真语言,我国也在70年代的后期开始了这方面的研究,仿真语言大多属于面向专门问题的高级语言,它是在通用的高级语言的基础上,针对专门问题研制的,分为面向方程和面向框图两种类型的仿真语言。它不需要用户掌握复杂的高级语言,而是由机器自动翻译成高级语言或汇编语言,所以速度比较慢,并且研制周期较长,但它面向用户,具有较强的仿真功能。目前,仿真语言的开发已经取得了可喜的成果,开发出了许多的应用仿真程序。如:可以处理一般的数学、物理问题的通用仿真语言ACSL,CSSL,TUTSIM,CSMP等,这类语言可以被应用于各个领域(技术的、非技术的、经济的、社会的),但是用户必须对建模与仿真的方法有一个基本了解,另外一点需要强调的是通用仿真语言之所以通用是因为它们只能解决一般的问题,而不能解决所有的问题,只适合于解决一些不太复杂的问题;如果要解决特殊的问题就需要专用的仿真语言MATLAB,SPICE,PSPICE等,这些语言要求用户能深入了解建模与仿真问题,但用它们去解决一般性的问题却极不方便。
现代仿真使用的计算机根据仿真的对象及仿真的目的的不同,可以使用个人计算机、工作站和大型的计算机。
仿真领域的特点主要表现为大量、复杂、高精度、费时的计算和数据处理,要求使用的计算机具有高速的运算能力、高速的数据交换能力、大容量的数据处理能力,以及高速度的图形处理能力。以前这些工作都由大型机和图形工作站来支持完成,然而随着个人计算机技术的突飞猛进的发展,微处理器、存储介质、图形处理设备等都可以适应仿真领域的要求,操作系统、高级语言、工具软件和应用软件也日益成熟、丰富,个人计算机具有菜单式选择功能和图形用户界面,所以个人计算机也可以满足计算机仿真的要求,一般用于仿真教学和规模较小的系统的离线仿真分析。
工作站是以个人计算环境和分布式网络计算环境为基础,性能高于微型计算机的一类多功能计算机。工作站具有高速运算功能,适应多媒体应用的功能和知识处理功能。中央处理器能够进行高速定点、浮点运算,以及高速度图形处理。工作站由于低廉的价格、友好的人机界面及联网能力,得到了十分广泛的应用。SGI、SUN公司的工作站在该领域一直处于领先的地位,得到了广泛的使用。
大型计算机是由其所处时代的先进技术构成的一类高性能、大容量通用计算机,能够代表一个时期计算机技术的先进综合水平。大型计算机的处理系统可以是单处理机、多处理机或多个子系统的复合体。处理机一般采用两级高速缓冲存储器、流水线技术和多级部件以提高性能。存储器一般有高速缓冲存储器、主存储器、磁盘存储器和海量存储器组成,它们构成多层次的存储器系统。输入/输出系统由通道和外围设备组成。大型计算机有十分广泛的应用领域,在军事、民用等重要应用系统中发挥着巨大作用。在系统仿真中占主导地位。如:我国自主研制的银河Ⅰ型计算机、银河Ⅱ型计算机及银河实时仿真工作站都已经在国民经济与国防建设中发挥了重大的作用。
1.2.3 计算机仿真的发展历史与现状
早期系统科学研究的是单输入单输出的系统,由于系统比较简单,所以常常可以借助于理论分析来解决问题,后来发展到多输入多输出系统,问题就变得复杂了,再后来发展到大系统、巨系统乃至超巨系统,还包括工程和非工程、宏观与微观、生物与非生物、系统与环境、思维与行为的综合系统,当然问题就变得更加复杂了。这时,单纯依靠理论分析和科学实验已经不可能了。因此,仿真模拟就成为科学研究的途径之一了。事实上,早在20世纪40年代仿真试验就已经存在了,风洞试验就是空气动力模拟的典型例证。
从20世纪40年代开始,随着数字计算机的不断发展,仿真技术也得到了发展。计算机进行算术运算的速度,从每秒少于一万次,发展到现在的每秒可以进行上百亿次,甚至上千亿次。计算机仿真使用的语言从机器内部使用的汇编语言,发展到可以使用高级的程序语言及专用的计算机仿真语言。计算机仿真应用的领域也越来越广泛了。
进入80年代以后,超级计算机的仿真计算数据、卫星发回的地球资源、军事侦察数据、气象数据、海洋和地壳板块及地震监测数据、医学扫描图像数据等海量数据的产生与不能有效地解释这些数据的矛盾日益尖锐。首先,计算机仿真技术可以高效地处理科学数据和解释这些科学数据。其次,计算机仿真技术丰富了信息交流手段,即科学家之间的信息交流不再局限于采用文字和语言,而是可直接采用图形、图像、动画等可视信息。计算机仿真技术提供的参数最优化技术使科学家能够对中间计算结果进行解释,及时发现非正常现象与错误,达到动态调整计算过程的目的。
计算机仿真技术的形成也是推动工业发展、提高工业界竞争能力的需要。历史已经证明,推动工业发展的原动力是基础科学研究,科学上的新发现将促进工业界新的革命,而促使基础研究发展的重要手段之一是提供先进的科学计算工具(硬件和软件)。先进的科学计算工具同时也是促进当代工业发展的新动力,例如无图纸设计、虚拟样机技术等对缩短产品设计周期、提高产品质量、降低成本具有十分重要的作用。国外有学者提出,应用计算机仿真要解决六大问题:核反应过程、宇宙起源、生物工程、结构材料、社会经济、未来战争。计算机仿真技术是先进的科学计算工具的重要组成部分,因此,世界各国都十分重视计算机仿真技术的研究。
国际上,仿真技术在高科技中所处的地位日益提高。在1992年度美国提出的22项国家关键技术中,仿真技术被列为第16项;在21项国防关键技术中,被列为第6项。甚至把仿真技术作为今后科技发展战略的关键推动力。北约在1989年制定“欧几里得计划”中,把仿真技术作为11项优先合作的发展项目之一。计算机仿真在国防上已得到了成功的应用,扩展的防空仿真系统(EADSIM)在海湾战争中得到验证,科索沃战争呈现出信息化、智能化、一体化的发展新趋势,进一步表明了计算机仿真的重要性。近年来,美国在总结成功经验的基础上,更加重视仿真,已将发展“合成仿真环境”作为国防科技发展的七大科技推动领域之一。所谓合成仿真环境,就是在广泛采用DIS及相关的计算机技术(如灵境技术)的基础上,创造一种进行武器系统研究和训练的人工合成环境,在新武器系统研制过程中,用仿真实验(虚拟样机)代替实际样机试验,使新技术、新概念、新方案在虚拟战场条件下反复进行演示验证和分析比较,从而确定最佳方案,选择最佳技术路线。在此过程中,武器研制部门与武器的未来使用部门通过联网加强早期合作,即用户尽早介入“国防发展战略”,使新武器装备更合适军方的要求,并可以提前制定作战使用方案,比原先的实际样机方案更省时、省力,大大节约经费。
据资料,面临着全面禁止核武器试验和全面禁止化学武器试验的形势,美国、俄国等军事强国都花费大量的人力、财力从事计算机仿真技术的研究。他们认为,当在实际系统上进行试验比较危险或难以实现时,计算机仿真就成了十分重要、甚至是必不可少的工具。计算机仿真具有经济、灵活、可靠安全、可多次重复使用等优点,已成为许多复杂系统(工程的、非工程的)分析、设计、试验、评估等不可缺少的重要手段。
我国的计算机仿真技术的研究与应用起步较早,而且发展迅速。20世纪50年代开始,在自动控制领域首先开始采用仿真技术,面向方程建模和采用模拟计算机的数据仿真获得较普遍的应用,同时自行研制的三轴模拟转台自动飞行控制系统的半实物仿真试验已经开始应用于飞机、导弹的研制中。60年代,在开始连续系统仿真的同时,已开始对离散事件系统(如交通管理、企业管理)的仿真进行研究。70年代,我国的训练仿真器获得迅速的发展,自行设计的飞行模拟器、舰艇模拟器、坦克模拟器、火电机组培训仿真系统、化工过程培训仿真系统、机车培训仿真器、汽车模拟器等相继研制成功,并形成一定的市场,在操作人员的培训中起了很大的作用。80年代,我国建设了一批水平高、规模大的半实物仿真系统,如:射频制导导弹半实物仿真系统、红外制导导弹半实物仿真系统、歼击机工程飞行模拟器、歼击机半实物仿真系统、驱逐舰半实物仿真系统等。这些半实物仿真系统在武器型号的研制中发挥了巨大的作用。90年代,我国开始对分布交互式仿真、虚拟现实等先进的仿真技术及其应用进行研究,开展了对较大规模复杂系统的仿真,由对单个武器平台的性能仿真发展为对多个武器平台在作战环境下的对抗仿真等。
目前,计算机仿真技术被广泛应用在众多的领域,主要有以下的领域:声学、航天、航海、农业、食品和营养、空气质量、天文学和天文物理学、自动装置、动力系统、发射学和军事应用、生物学、医学、医药、卫生系统、布朗运动、化工、化学、采矿、制造、密码、气候学、气象学和太阳能利用、通信、计算机装置、计算机网络、结晶学、计量学、电子学、能量、发酵、金融、渔业、灌溉、林业、打猎、放牧管理、全息照相术、信息理论、保险、发明管理和政策、公共汽车系统、就业、排队、维修、计划与决策、生产与分配制度、人口生态与野生生物管理、社会体制与公共政策、心理研究,等等。