Modelica是一种适用于大型复杂系统建模的开源式面向对象语言,由瑞典的非盈利组织Modelica协会开发,其利用数学关系来描述子系统的物理关系,通过组件接口进多领域系统建模和联合仿真
Modelica具有面向对象语言的特征,其能通过模型组织的方式简化大型系统的复杂性。Modelica以类的方式进行数据封装,利用组件的连接和继承的方法构建模型,并采用数学关系描述物理系统,使得Modelica可以省略很多细节,能够快速搭建很多复杂的模型。 Modelica在主要有两种工程建模方式,一种是块图建模方式,另一种是非因果建模方式。块图是系统由多个组件组成,这些组件通过已知量求解出未知量,完成系统的仿真。块图一般应用于控制系统的建模,其典型代表就是Simulink,这种建模方法简单易懂,但是该方法也有很多不足,例如必须人工推导建立方程引起出错,块图中参数分散导致系统维护困难等问题。非因果建模是采用守恒定律来描述系统和组件的性能和行为,非因果建模方式对系统的输入和输出没有明确的规定,因为它是通过联立组件的本构方程和守恒方程的方式得到整个系统的方程组,这种方法体现了不同的数据流向,能够更好的支持组件的复用。值得注意的是Modelica不仅支持两种方式的建模,还支持两种方法的混合建模。 Modelica用途广泛,具有多领域建模的能力,包括电路仿真、传动系统仿真、动力系统稳定性分析,车辆动力学分析、液压系统仿真,控制系统仿真等,几乎涵盖了所有工程领域的建模,因此Modelica可以应用到控制系统设计和半实物仿真中。 Modelica支持同时表示代数方程和微分方程的连续性和离散性,所以其能够实现连续-离散的混合建模,能够仿真状态突变的系统,使得仿真模型的结构与实际系统的行为更加一致。 最后Modelica具有非常丰富的模型标准库,并且对外免费开放,这些标准库可以让用户不用开发底层基本组件模型就可以开展系统的建模和仿真工作。主要有如表1所示的标准库
库名内容Modelica.Constants物理和数学常量Modelica.Icons图标Modelica.Math数学函数Modelica.SIunitsSI单位制Modelica.Electrical电气Modelica.Block控制Modelica.Mechanical.Translational机械(一维平移)Modelica.Mechanical.Rotational机械(一维旋转)Modelica.Mechanical.MultiBody机械(多体)Modelica.Thermal热学 表1 Modelica的主要标准库工程人员首先编写Modelica源文件,再利用软件编译,将复杂物理的模型转化为一组方程、常量、参数和变量。然后在分析优化阶段检查方程是否正确,若不正确则分析原因对模型进行校正;若正确则尝试减少方程个数,为仿真求解做准备。接着利用数值分析法求解方程,得到控制的策略,最后生成代码,在进编译运行后,完成模型的求解过程。
图1 Modelica模型的仿真流程Modelica 是一种非常理想的建模语言,它几乎可以用于所有工程领域的系统特性建模。单纯使用Modelica 语言就可以完美的支持物理模型设计和控制模型设计。同时,Modelica 语言也是多领域的,因此它不会人为地限制其应用的工程领域或系统。综上所述,Modelica 语言提供了一整套用于建立集总参数模型的方法,几乎涉及所有的工程应用系统。
