1.2.2 通用建模语言
1.2.2.1 C语言
C语言是一种面向过程的语言,用户创建过程或函数来执行他们的任务。面向过程的语言很容易学习,因为它遵循算法来执行相应的语句。要使用面向过程的语言开发程序,需要编写算法,然后转换成程序或功能。另外,C语言执行速度较快,也提供了大量的函数,可以根据需要自行编写函数,用户自定义的函数还可以进行扩展,同时,C语言还是一种结构化的程序设计语言。
针对特定问题,可以使用C语言建立模型,然后利用VC编译器执行程序进行求解。C语言的运算速度比较快,当建模过程中遇到数据量较大的情况时,第一种想法应该是借助程序来解决问题,若有规律可循,则可以运用C语言中的循环或者是直接写一个解决此类问题的函数,在需要的时候进行调用。
1.2.2.2 SysML
为了满足系统工程的实际需要,国际系统工程学会(International Council on Systems Engineering,INCOSE)和对象管理组织(OMG)决定在对UML2.0的子集进行重用和扩展的基础上,提出一种新的系统建模语言——SysML(Systems Modeling Language)作为系统工程的标准建模语言。SysML是一种基于图形的建模语言,其直观性和易操作性使其在需求描述、直观性及模型关联性等方面较传统系统工程方法而言具有更大优势。SysML不是一种方法或工具,其与方法和工具无关,但在利用SysML表述模型时,无法直接得知结果的正确性以及是否满足需求或指标,必须借助其他工具进行后续分析,由此增加的工作量掩盖了其原有优势。
首先,SysML包含许多专用建模与分析工具箱,提供了许多支持抽象模型的建模方式,可用来定义系统总体结构和子系统间的关系,但SysML并不具备分析设计结果的能力。其次,不同的模型有各自的特点,虽然SysML具有很强的定义系统结构和子系统间关联关系的能力,但对于特殊专业模型并非完全适用。较通用的SysML模型而言,专业领域模型能够更准确、完整地描述一个系统,对于复杂的大型系统工程而言,专业领域模型必不可少,因此需要解决SysML的这一缺陷。此外,工程分析需要将各分系统联系成一个整体,但对于复杂的大系统,在分析过程中很容易失去彼此之间的联系。SysML采用自顶向下的方法,从高度抽象到底层具体的方式描述系统。
1.2.2.3 Modelica
Modelica是一种开放、面向对象的以方程为基础的语言,适用于大规模复杂异构物理系统建模,包括机械、电子、电力、液压、热、控制及面向过程的子系统模型,面向对象、结构化的数学(物理)建模语言(非因果);模块化的高级语言大大简化了系统构建流程,适用于系统建模、硬件在环(Hardware-In-Loop,HIL)仿真以及嵌入式系统开发。
Modelica从原理上统一了之前各种领域的建模机制,直接支持基于框图的建模、基于函数的建模、面向对象和面向组件的建模,通过基于端口与连接的广义基尔霍夫网络机制支持多领域统一建模,并且以库的形式支持键合图和Petri网表示。
Modelica能有效支持复杂物理系统仿真模型库的开发和模型交换,同时,Modelica基于非因果建模思想,采用数学方程组和面向对象结构来促进模型知识的重用。Modelica还提供了强大的、开放的标准领域模型库,覆盖机械、电子、控制、电磁、流体、热等领域,目前在标准库之外已经存在大量可用的商业库与免费库,为解决复杂工程系统仿真中多领域耦合的问题开辟了新的道路。