2.2.4 类与类型

2.2.4 类与类型

类是Modelica语言的基本结构元素,是构成Modelica模型的基本单元。类的实例称为对象或组件,实例化的类称为对象或组件的类型。类中可包含变量、嵌套类、算法和方程。变量代表类的属性;算法和方程定义类的行为,描述变量之间的约束关系。

Modelica类分为一般类和受限类。受限类具有特殊用途,在语法规范上有一定的限制。使用受限类是为了使Modelica模型代码便于阅读和维护。一般类由关键字class修饰,受限类由特定的关键字修饰,如model、connector、record、block和type等。

受限类只不过是一般类概念的特殊化形式,在模型中,受限类关键字可以被一般类关键字class替换,而不会改变模型的行为。受限类关键字也可以在适当条件下替换一般类关键字class,只要二者在语义上等价。受限类与一般类的详细含义与作用见表2-1。

表2-1 Modelica的受限类型

Modelica类型可分为内置类型和自定义类型。内置类型是Modelica的基本类型,可以不声明直接使用,例如,VanDerPol模型中x和y的类型是内置实型Real。Modelica定义了5种内置类型:Real、Integer、Boolean、String、enumeration,分别支持浮点型、整型、布尔型、字符串型和枚举型变量。内置类型自身具有属性,详细情况见表2-2。设置这些属性可能影响模型的求解结果,例如VanDer-Pol模型中x和y的“start”属性值。

表2-2 Modelica的内置属性

续表

自定义类型即用户声明的类型。自定义类型必须声明才能使用,即有类型定义才能声明该类型的实例。Modelica将各领域常用的类型集成到Modelica标准库中,用户只需加载该库就可在此基础上建模,而不必自己从底层开始建立模型。Modelica类型还可以通过继承和重声明进行扩展和重用。