分享

“华如研究”系列之一:浅议系统仿真与体系仿真

 taotao_2016 2024-04-17 发布于北京

转自:华如科技

作者:华如研究院院长  张柯博士

图片

编者按

仿真作为一种在计算机上建立数学模型而求解真实结果的研究手段被广泛运用在工业、军事、经济等各行各业。根据研究对象的不同,可将仿真分为不同的类型,文章探讨了系统仿真与体系仿真、复杂系统仿真之间的区别与联系,通过追溯计算机科学发展史与仿真之间的关系,进而梳理了系统仿真与体系仿真的仿真方法。针对战争复杂系统,分析了其复杂性的原因,并得出在冯诺依曼体系结构的数字计算机上,基于DES的ABMS是我们目前认为比较理想的体系仿真核心方法。

Part.01

计算机的发展与系统仿真


1

仿真、计算机仿真与系统仿真

仿真,作为认识世界的第三种方法,可以帮助人们更好的理解和掌握现实世界中的各种问题。希望通过对仿真及其研究方法的探讨帮助我们更好的认识和利用仿真技术。

一般而言,当我们提到仿真的时候,默认是在计算机上开展的一项活动,这里的计算机一般是通用的数字计算机。本文中的所有仿真均指计算机仿真,在量子计算机等新型的计算技术成熟之前,是以冯诺依曼或哈佛结构的图灵机为代表(实际上仿真所依赖的计算机走过了一条从模拟到数字、从专用到通用的发展道路,并且计算机所提供的底层基础也深刻地影响着上层仿真应用的实现)。

仿真是一种研究手段,通过建立所研究对象的数学模型,并在计算机上进行求解,进而获取所关心问题的答案。

一般来说,针对不同的研究对象,应采用不同的建模和仿真方法。如我们常说的系统仿真,因为系统这个词含义广泛,因此系统仿真涵盖相当广泛类型的仿真。这里我们以系统仿真经典的研究对象——控制系统为例进行说明,控制系统的模型可以是微分方程、差分方程、状态方程、方框图等,仿真的方法对这些方程的数值求解,例如数值积分。从控制系统仿真的例子来说可以认为系统仿真的本质是联立的数学方程组的计算机求解,数值积分器是其求解器之一。如下图所示:

图片

理解系统仿真,首先需要对系统进行定义。一种易于理解的定义是Bernard.P.Zeigler给出的:系统是由输入、输出以及将输入转换为输出的处理三部分组成。在这个定义基础上,根据输入、输出、处理三者所采用的描述方法不同,又可将系统分为连续时间系统、离散时间系统和离散事件系统,分别用微分方程、差分方程和离散事件来描述,或者建立其模型。这种定义具有一般意义上的正确性,但指导开展具体仿真工作还需要进一步细化。

除此之外,20世纪五六十年代,随着计算机科学技术的发展,由冯诺依曼开展的对计算机硬件行为的数字仿真、SIMSCRIPT仿真语言的发明为代表,离散事件仿真开始萌生和发展。离散事件仿真用于研究复杂系统(Complicated System)中多个组成部分以及相互作用这一问题,我们似乎可以认为,基于离散事件仿真的系统仿真已经从数学方程的数值求解发展到多个不联立的数学方程组的计算问题。也就是说,对于复杂系统中的每个组成部分,我们仍然用数学方程进行描述或建模,但各个组成部分之间的相互作用或交互关系,是通过数学模型之间的数据传递实现的。在时间上,系统整体依然遵循统一的基准,但各组成部分有自己的时间线索,仿真需要在多个时间线索上保持一致性;在交互上存在不确定性,是通过事件触发、反应式行为等方式呈现整体系统模型的各个子模块此起彼伏的波浪式计算。

离散事件仿真用于军事问题研究、生产流程优化、交通系统规划、物流和供应链评估等,这些研究对象与前述的控制系统仿真有着明显的区别,但与后续要描述的体系仿真也不一样。体系与系统的区别简单概括来说,系统无论规模大小,一般来说有明确的组成、边界和交互关系,并且在生命周期中保持不变,例如飞机、航天器、汽车等,其组成的每一部分都可以分别建立数学模型,对系统的整体可以用离散事件的方法来建立组成部分之间的关系从而开展整体的仿真;而体系的组成、边界和交互关系具有弹性、模糊性和不确定性,整体上呈现复杂适应系统(CAS)的特点,因此其仿真方法上也应与系统仿真有所不同。离散事件仿真所应用的交通系统、金融系统已经属于复杂适应系统领域。

2

仿真与计算机

系统仿真是采用计算机对于描述系统的数学方程组进行求解的过程,除了系统所属的问题域的不同之外,系统仿真与计算数学、应用数学、计算机科学有密不可分的关系,甚至可以认为现代计算机仿真是与计算机的发展以及相应数学方法的发展相伴而行的。

与计算机技术等许多科学技术一样,系统仿真也受益于军事需求的驱动。我们所熟知的现代数字计算机的鼻祖ENIAC或者M9,其发明的初衷就是计算火炮的弹道和核反应过程。由于相应的计算十分庞杂,如弹道的计算,发射速度和角度的确定不仅要考虑炮弹本身的类型和炸药特性,还要考虑风向、风速、气压、气温、湿度和当地重力加速度等环境因素,作战时在瞬间完成这些因子的综合分析显然不是人力所能及的。因此需要发明新的计算工具来解决数学模型复杂、计算量大和实时性要求高的计算任务。

也是在二战期间,为解决和武器射击相关的问题而发展的一系列相关装备都可以认为与系统仿真密切相关。除前面提到的M9、M10高炮射击指挥仪之外,还有Norden轰炸瞄准仪、K3射击指挥仪等,其本质都是为了提高射击的精准度,将目标信息获取设备、自身位置速度姿态感知设备、实时弹道计算设备、武器自动控制设备等集成在一起,其核心之一就是弹道方程的求解,并且实时弹道计算可以理解为实时的系统仿真。受限于当时的计算技术,这些装备中采用了包括机械计算机/器、模拟电子计算机等在内的各种技术。

图片

在计算机科学发展史上,系统仿真同科学计算一起扮演着需求的推动者和主要的应用者的角色。从机械计算机、模拟计算机、混合计算机、数字计算机到通用的数字计算机,一直发展到当今的云计算、超算时代,仿真计算都是重要的服务对象,只是在多媒体、计算机网络、移动计算等技术发明之后,计算机才日益成为生活中服务社交、互联、信息获取的重要工具,反而淡化了其计算的本质。在量子计算时代之前,我们仍在冯诺依曼体系结构、现代操作系统的支持下开展计算工作,而随着量子计算等新型计算时代的到来,系统仿真也应随着计算技术的进步而进步。

图片

3

时间与空间及CAE

时间和空间是系统仿真中最常见的基准。例如控制系统仿真,时间往往是联系方程组各方程之间重要的变量;同时还需要建立统一的空间坐标系,以保持对位置姿态的共识。但在系统仿真中,时间也仅仅是关联各方程的共同基准,或者是一个数,计算沿时间的展开只需要采用固定时间间隔FTI或可变时间间隔VTI的方式推进即可,而后面所要涉及到的体系仿真中时间还是联系不同实体及实体间交互事件的重要依据,是保持仿真因果关系的基本要求。

从时间和空间出发,还会涉及到一类重要的工业软件即CAE,过去通常不认为该领域属于仿真,但从仿真的建立模型并求解的定义来看,以有限元分析FEA为代表的CAE也属于仿真领域,可以称之为基于物理的仿真,或者多物理场仿真。从时间维度,CAE可以做静态计算分析,也可以做动态计算分析;从空间维度,CAE针对的是具有明确边界条件的物体或场域。与系统仿真的沿时间展开的数值积分类似,FEA在空间上通过离散化网格的剖分,建立网格内的机理模型,网格之间的边界、接触、传递关系,通过空间展开的方式进行离散化计算。西门子将系统仿真和CAE形象地比喻为一维模型和三维模型的计算。

图片

无论是随时间的展开还是随空间的展开,都可以统一理解为连续时间动态系统和连续物理结构对象的离散化处理,离散化使得研究对象具备了数字计算机的可解,同时也会带来离散化的误差,因此误差分析是仿真的基本要求。对于工程应用来说,一定范围内误差的近似解是完全可以接受的。

到此为止,我们都可以认为除离散事件仿真之外的系统仿真和CAE主要属于数学问题和计算机科学问题,其复杂性主要体现在构建的数学模型内部的复杂性以及由此带来的求解器的复杂性上,对于模型的外部呈现或结构而言,相对是好理解的。

建立正确的系统仿真模型和CAE模型是领域专家的责任,而实现准确高效的仿真引擎或求解器是仿真专家的责任,所有的内容最终要落地到计算机实现上,因此要求精通计算机原理和软件工程的专家。这也是系统仿真或CAE工业软件发展的难点之一。

Part.02

体系仿真与复杂系统仿真


1

科学问题的提出

1948 年,美国数学家,信息论的创始人之一 Warren Weaver 提出了 3 类科学问题划分。这三类问题分别是:简单问题、无组织复杂问题和有组织复杂问题。

简单问题/系统:正如第一部分讲到的系统仿真的本质乃计算机的数学方程求解,这一类科学问题,无论是数学方程多么复杂,都被Warren Weaver归类为简单科学问题,我们可以通过数学方法获得解析解,或者通过仿真方法获得数值解。

无组织的复杂问题/系统:对于这类系统,通常采用统计方法进行研究,例如理想大气模型对于由海量空气分子所组成的系统的描述。

有组织复杂问题/系统:有组织的复杂系统包括自然系统和社会系统,前者如蜂群、鸟群、蚁群等,是当今群体智能研究的一类对象;而社会系统包括经济系统、交通系统、生产消费系统、战争系统,是另一类重要的研究对象,也是我们认为的体系。

图片

相较于系统组成之间的确定关系而言,体系的组成可理解为一种聚合的关系,是一种不确定的关系,例如战争复杂系统中的装备体系、兵力体系、对抗体系。一种描述复杂系统的观点认为,复杂性来自于各部分之间的关系。

因此,Warren Weaver所提出的有组织复杂问题,和本文的体系仿真所研究的体系问题,可以认为是一类问题。本文提到的体系仿真,我们不妨直接理解为战争复杂系统仿真。

2

复杂系统的研究

从数学的角度,我们可以认为体系或复杂系统的数学模型不存在一个全局的联立方程组,因此无法采用联立方程组数值求解的方法进行解决。随着十九世纪70年代圣塔菲研究所的成立, 90年代Agent方法以及Swarm语言的提出及相关的仿真软件的推出,我们认为,多主体/代理的建模与仿真(Agent-Based Modeling and Simulation,ABMS)的方法是研究复杂系统的有效方法,或者说是复杂系统建模仿真的有效方法。

这里的Agent是指组成复杂系统的个体,Agent之间存在各种关系,多个Agent组成MAS即多Agent系统。如果赋予Agent一定的智能,例如Agent自身有规则等模型驱动,则可以称为多智能体的系统。通过ABMS的方法,构建不同的Agent,可以对从自然到社会等不同的复杂系统进行研究。

3

战争复杂系统/体系仿真的Agent

就我们所关心的体系仿真或战争复杂系统而言,我们认为这属于最复杂的一类复杂系统。原因在于:

首先,一般研究的复杂系统的Agent本体的建模是相对简单的,Agent之间的规则也是相对简单的,复杂性来自于海量Agent之间通过动态的交互关系所体现出的例如涌现性等特点。典型的例子是“生命游戏”。而战争复杂系统中,每类Agent代表的是一类战场实体,例如单兵、部队、作战飞机或舰艇,生命体的复杂性自不必说,高科技装备例如飞机所携带的各类设备和武器,本身背后也是多个科学领域的大量数学、物理知识所支撑的,因此Agent模型非常复杂,至少包括了装备的科学和工程技术、军事或战争科学、自然科学三大领域;

其次,与蜂群、鸟群、鱼群等Agent类型较少甚至只有一类不同,战争复杂系统中实体类型非常多,叠加每类实体模型的复杂度,使得建模难度和工作量指数级增长,成为长期困扰相关领域的头等难题,也催生了组件化、面向对象、参数化等模型复用技术的发展;

最后,战场上实体之间的关系也非常复杂,既有同一阵营的上下级指挥、友邻协同、支援保障等关系,更有不同阵营之间的侦察与反侦察、干扰与抗干扰、打击与拦截/防护等关系,这些关系部分还伴随着复杂通信系统和通信过程的仿真,以及与环境效应之间的复杂关系,同时这些交互关系还随着时间的推进而不断建立和解除,而所有Agent必须适应所有这些情况。

由于Agent的自主性,复杂系统或体系中的时间以多个时间线的方式出现,每个Agent有自身的时间线,在该时间线上,Agent有系统仿真的成分,典型的如运动平台的运动学、动力学或弹道积分,同时Agent有行为或AI部分;更重要的是,Agent之间的关系往往需要严格刻画其时间关系,尤其是在时间先后与因果顺序相关时。所以在体系仿真中对时间的刻画,对各类事件的时间先后关系的严格保持一般有绝对准确的要求。这类要求容易导致计算或求解的并行度下降,进而影响仿真效率。在某些场合,可以牺牲一部分对时间的准确要求而换取高的运算效率。

如果将体系仿真的模型分为数字装备、数字兵力和数字环境三部分,可以简单认为数字装备和数字环境是科学计算问题,数字兵力是AI类行为逻辑问题。整体的模型是由分散在各Agent和环境中的这三大部分模型组成,并以一个个Agent实例的形式出现如下图所示。

图片

Part.03

系统仿真和体系仿真的仿真方法


综上所述,仿真方法与计算设备关系密切,在冯诺依曼体系结构的数字计算机上,最合适的方法仍然是离散事件仿真方法,即DES。因为数字计算机本身是一个离散时间系统,只能提供离散化的底层计算能力支持(早期的模拟仿真机可以提供连续的计算支持,但在输入和观测的时候也需要离散化);同时离散事件方法既可以向下支持连续时间系统的离散化处理(例如数值积分),也可以支持离散时间系统的表达(例如随机事件)。

对于系统仿真而言,仿真方法更多的是数学求解的底层驱动,可以大致理解为设置方程组的初值后,循环调用计算并且修改推进时间或空间变量,相对来说是比较简单的。即使考虑到类似数值积分的定步长或者可变步长,也并不复杂。

而体系或复杂系统仿真,考虑到Agent之间关系以及关系发生时间顺序的至关重要性,DES方法能够在数字计算机上精确刻画离散的时间点,无论是事件调度法、活动扫描法还是进程交互法,都能实现相关的特性;同时对于体系仿真中的系统仿真部分,DES可以很容易地通过周期性事件实现不同周期的周期性计算的调度问题,而反过来的周期性的离散时间方法,例如采用时间步进方式,不仅很难适应不同对象的系统仿真部分对不同周期的需求(要么损失精度,要么浪费算力),更致命的是对随机事件无法准确刻画时间特性。

因此基于DES的ABMS是我们目前认为比较理想的体系仿真核心方法。

在此基础上,通过挖掘在并行多任务操作系统以及多核多路并行计算硬件条件下的并行仿真能力,实现PDES的仿真运行,则是仿真域当仁不让的工作,并且应实现对问题域的透明。

图片

写在最后,仿真是一种工程应用技术,以仿真系统的方式来满足使用的需求。仿真系统的研发,首先是对被研究对象的领域研究和抽象建模,其次是结合仿真方法的程序建模和仿真实现,最后还需要从计算机科学角度进行准确高效实现,因此是一个多学科多技术综合的问题。以上是我们一直以来在研究和实现体系仿真中所获得的一些认识及采用的一些方法,在补充了大量但并非不重要的工程技术细节后做了落地实现。应该说对建模仿真方法、引擎实现及运行效率、模型体系建设等方面的工作是永无止境的,目前我们的认知也不一定完全正确或唯一可行,也希望有更多的人对仿真有兴趣,共同推进仿真技术和产业的发展。未来道阻且长,但行则将至!




《系统仿真学报》简介
《系统仿真学报》创刊于1989年7月,是中国仿真学会会刊,由北京仿真中心和中国仿真学会联合主办,是中国仿真技术领域具有权威性、代表性的学术刊物。其宗旨是报道我国仿真技术领域具有国际、国内领先水平的科研成果,刊登具有创新性学术见解的研究论文。

◆ 中文核心期刊要目总览收录

◆ 中国科学引文数据库CSCD(核心库)收录

◆ Scopus数据库收录

◆ 英国科学文摘INSPEC收录

◆ 中国自动化学会推荐科技期刊目录 A类

◆ 仿真科学与技术领域高质量科技期刊 T1级

◆ 计算领域高质量科技期刊 T2级

◆ 图像图形领域高质量科技期刊 T2级

◆ 图学领域高质量科技期刊T2级

◆ 航空航天领域高质量科技期刊 T3级

◆ 指挥与控制领域高质量科技期刊T3级 

◆ 世界期刊影响力指数 (WJCI) 报告收录

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多