前言
复杂系统建模与仿真技术是支持复杂系统论证、设计、分析、试验、运行和评估等活动(复杂系统全生命周期活动)的一类工程技术。典型的复杂系统包括飞机、导弹、汽车和船舶等。实践表明,建模/仿真技术是复杂系统研制与应用的重要手段之一。
仿真语言及其软件环境(如MATLAB)是研究实现复杂系统从建模到仿真一体化设计验证的关键技术之一。好的建模仿真语言能极大地减少工程设计人员的工作量,使他们可以在较少学习编程语言和常微分/偏微分算法的情况下,直接使用仿真语言从面向问题的角度编写复杂仿真系统,从而极大地简化复杂系统的设计过程,提高工作效率。遗憾的是,目前我国自主可控的仿真语言很少,还缺乏类似MATLAB那样拥有大量用户、能对大量工程人员起作用的仿真语言。近十年来,我们在预研项目的支撑下开展了一系列围绕仿真语言的研究,提出了复杂系统建模与仿真语言(Complex System Modeling and Simulation Language, CSMSL),研发了编译器和仿真引擎,实现了基于CSMSL的混合(连续/离散/定性)仿真系统,初步实现了面向组件的一体化建模仿真环境。
从具体内容上,本书第1章介绍了CSMSL的文本描述规范,包括词法、语法、语义等,重点是定义支持连续系统、离散系统、定性系统、优化系统、半实物系统及其混合系统建模与仿真的关键字、模型端口和模型块语法。第2章给出了与文本规范对应的图形描述规范,支持拖曳式组件建模。针对前两章涉及的仿真组件和运行时管理,第3章重点介绍了面向组件的CSMSL模型体系详细规范,并进一步给出了实现分布式并行仿真引擎的关键算法。针对仿真语言编译器这一难点,第4章介绍了研发CSMSL编译器的诸多细节,包括如何实现词法、语法分析器、语义解释器,如何自动识别建模语言语义并将其转换为C++等编程语言、面向可重用组件的代码生成技术等。基于前4章的论述,第5章给出了一个混合仿真系统设计案例,从航天器实例的角度展示了如何设计并实现一个包含连续、离散、定性和优化等要素的仿真系统。第6章进一步比较了CSMSL仿真引擎与高层体系架构(HLA)相关仿真系统的效率,论述了面向高性能集群仿真系统的运行方法。
通过学习本书,相关专业人员、研究生能够了解和掌握当前建模仿真语言及其编译器技术,熟悉混合系统仿真技术,为进一步设计和优化航空航天等复杂系统打下基础。
本书内容基于编者团队多年来的研究成果,本书的研究工作得到国家重点研发计划、国家自然科学基金和预研课题的资助。感谢赖李媛君博士、杨晨博士、邢驰博士,研究生周文、姬杭等为本书所做的大量研发工作。
由于编者能力、时间有限,书中还有不少不尽完善之处。特别值得指出的是,我们从实践中也发现,仿真语言是一门极其复杂的技术,涉及编程语言、编译原理、软件工程、数值计算、系统工程等多个学科,很难在短时间取得重大的突破。因此,我们希望本书对于仿真语言技术能起到知识储备、打基础的作用,对我国仿真语言的发展壮大起到积极作用。
编者
2020年5月