注:以下内容仅供参考学习,禁止以一切形式以商用为目的传播。
建模内容均基于MWorks软件。
从本篇开始准备介绍一下modelica建模语言的相关语法,准备了一些资料,主要有公司的内部培训教材、ModelicaByExample和modelica语言规范(下载途径:MWorks软件帮助文档和modelica官网-Documents — Modelica Association),语言规范讲的过于详细,对新接触的同学不是很友好,后面如果遇到毕竟疑难的语法可以查阅语言规范,因此主要参考ModelicaByExample和整理过的培训教材。
类的基本概念
类:具有相同或相似性质的对象的抽象。在modelica语言中,一切实物都是类,从预定义的Integer和Real,到庞大的package,如Modelica标准库。对象(object)是类(class)的抽象化,对象是类的具体化,这里同其他编程原因类的理解大同小异。以下图为例,猫代表一个类,而将类进行具体化,则猫包含kitty猫、加菲猫、叮当猫。
特殊类
特殊类[以前称为受限类] record, type, model, block, package, function, connector,operator, operator function 除了受某些限制之外,都具有普通类的属性。另外,它们的属性还有某些额外的增强。下面的表格总结了这些特殊类的定义:
record | 记录 | 在record及其任何组件中,只允许有public部分(即在方程、算法、方程初始化、算法初始化节,不允许有protected部分)。不能在连接(connections)中使用。record中的元素不能有前缀input、output、inner、outer或flow。增强的性质是隐含地具有record构造函数.另外,record组件能在表达式中用作组件引用,能用在赋值表达式的左边,服从一般类型的兼容规则。 | 数据结构 | 类似C语言中的结构体,作为数据集使用,方便对类进行统一管理 |
type | 类型 | 仅能扩展预定义类型、枚举、type的数组、或由type扩展的类。增强之处在于对预定义类型进行扩展。[其它特殊类都没有这个特性] | 类型别名 |