第0章 绪论
0.1 仿真技术简介
仿真技术是一门利用物理模型或数学模型模拟实际环境进行科学实验的技术,它具有经济、可靠、实用、安全、灵活和可多次重复使用的优点,目前已被广泛地应用于几乎所有的科学技术领域,成为分析、综合各种复杂系统的一种强有力的工具和手段。
在工业自动化领域,控制系统的分析、设计和系统调试、改造,大量应用仿真技术。例如,在设计前期,利用仿真技术论证方案,进行经济技术比较,优选合理方案;在设计阶段,仿真技术可帮助设计人员优选系统合理结构,优化系统参数,以期获得系统最优品质和性能;在调试阶段,利用仿真技术分析系统响应与参数关系,指导调试工作,可以迅速完成调试任务;在运行阶段,利用仿真技术可以在不影响生产的条件下分析系统的工作状态,预防事故发生,寻求改进薄弱环节,以提高系统的性能和运行效率。
对于比较简单的被控对象,可以直接在实际系统上进行实验和调整来获得较好的整定参数。但是在实际生产过程中,大部分的被控对象是比较复杂的,并且要考虑安全性、经济性以及进行实验研究的可能性等,这在现场实验中往往不易做到,甚至根本不允许这样做。例如研究导弹飞行、宇航、反应堆控制等系统时,不经模拟仿真实验就进行直接实验,将对人类的生命和健康带来很大的危险,这时,就需要利用实际系统的物理模型或数学模型进行研究,然后把对模型实验研究的结果应用到实际系统中去,这种方法就叫做模拟仿真研究,简称仿真。因此,仿真就是用模型(物理模型或数学模型)代替实际系统进行实验和研究。仿真所遵循的基本原则是相似原理,即几何相似、环境相似和性能相似。
依据相似原理,仿真可分为物理仿真、数学仿真和混合仿真。物理仿真就是应用几何相似原理,制作一个与实际系统相似但几何尺寸较小或较大的物理模型(例如飞机模型放在气流场相似的风洞中)进行实验研究。数学仿真是应用数学相似原理,构成数学模型在计算机上进行研究。它由软硬件仿真环境、动画、图形显示、输出打印设备等组成。在仿真研究中,数学仿真只要有一台数学仿真设备(如计算机等),就可以对不同的控制系统进行仿真实验和研究,而且,进行一次仿真实验研究的准备工作也比较简单,主要是被控系统的建模、控制方式的确立和计算机编程。而物理仿真则需要进行大量的设备制造、安装、接线及调试工作,其投资大、周期长、灵活性差、改变参数困难、模型难以重用,且实验数据处理也不方便。数学仿真实验所需的时间比物理仿真大大缩短,实验数据的处理也比物理仿真简单的多。但由于物理仿真具有信号连续、运算速度快、直观形象、可信度高等特点,故至今仍然广泛使用。混合仿真又称数学物理仿真,它是为了提高仿真的可信度或者针对一些难以建模的实体,在系统研究中往往把数学仿真、物理仿真和实体结合起来组成一个复杂的仿真系统,这种在仿真环节中有部分实物介入的混合仿真也称为半实物仿真或者半物理仿真。
由于数学仿真的主要工具是计算机,因此一般又称为“计算机仿真”。计算机仿真根据被研究系统的特征可分为两大类:连续系统仿真和离散事件系统仿真。前者可对系统建立用微分方程或差分方程等描述的数学模型,并将其放在计算机上进行试验;后者面对的是由某种随机事件驱动引发状态变化的系统的数学模型(非数学方程式描述,通常用流程图或网络图描述),并将它放在计算机上进行试验。本书主要讨论非离散事件系统的计算机仿真。
计算机仿真能够为许多实验提供方便、灵活的“活的数学模型”,因此,凡是可以用模型进行实验的,几乎都可以用计算机仿真来研究被仿真系统本身的各种特性,选择最佳参数和设计最合理的系统方案。所以随着计算机技术的发展,计算机仿真越来越广泛地得到应用。计算机仿真过程流程图如图0-1所示。
图0-1 计算机仿真流程图
由图0-1可对计算机仿真的一般过程描述如下。
(1)根据仿真目的确定仿真方案
根据仿真目的确定相应的仿真结构和方法,规定仿真的边界条件与约束条件。
(2)建立系统的数学模型
对于简单的系统,可以通过某些基本定律来建立数学模型。而对于复杂的系统,则必须利用实验方法通过系统辨识技术来建立数学模型。数学模型是系统仿真的依据,所以数学模型的准确性十分重要。
(3)建立仿真模型
就连续系统而言,就是通过一定算法对原系统的数学模型进行离散化处理,即建立相应的差分方程。
(4)编写仿真程序
对于非实时仿真,可用一般高级语言或仿真语言。对于快速的实时仿真,往往需要用汇编语言。
(5)进行仿真实验
设定实验环境、条件,进行实验,并记录仿真数据。
(6)仿真结果分析
根据实验要求和仿真目的对仿真结果进行分析处理,以便修正数学模型、仿真模型及仿真程序,或者修正/改变原型系统,以进行新的实验。模型是否能够正确地表示实际系统,并不是一次完成的,而是需要比较模型和实际系统的差异,通过不断地修正和验证而完成的。
通常,将实际系统抽象为数学模型,称之为一次模型化,它涉及系统辨识技术问题,又称为建模问题。将数学模型转化为可以在计算机上运行的仿真模型,称之为二次模型化,它涉及仿真编程、运行、修改参数等技术,又称为系统仿真技术。