模型定义¶
model
定义是Modelica语言中最通用的定义方式。稍后在本书中(或者在本章中)将会介绍其他的定义方式(例如:record
定义)这些定义方式和model
定义有着相同的语法结构,但在其包含的内容方面有所限制。
模型定义的语法¶
正如我们在本章中看到的,模型定义首先是模型关键词。其次是模型的名字(或者是模型的描述)。模型的名字必须以字母开头,后面可以是字母、数字或者下划线。
命名约定
尽管Modelica语言并没有对此进行严格要求,但一般约定模型名字以大写字母开头。大多数开发者使用所谓的“驼峰式”规则,即模型内每个单词首字母为大写
模型定义包含变量和方程(稍后讨论)。end
关键词以及紧随的模型名字的重复出现标志着模型的结束。//
之后直至该行结束出现的任何文本,以及在分隔符/*
和 */
之间的文本都是模型的注释。
总之,模型定义具有如下一般形式:
model SomeModelName "An optional description"
// By convention, variables are listed at the start
equation
/* And equations are listed at the end */
end SomeModelName;
继承¶
正如我们在避免重复这个部分提到的一样,我们可以在当前模型中添加extends
子句,以此使用其他模型中的代码。另外值得注意的是,模型定义中可以包含多个extends
子句。
每个extends
子句必须包含被引用模型的名字。该子句也可以加上对于被引用模型的修改语句。对于继承其他模型的模型定义,你可以看到如下的通用语法
model SpecializedModelName "An optional description"
extends Model1; // No modifications
extends Model2(n=5); // Including modification
// By convention, variables are listed at the start
equation
/* And equations are listed at the end */
end SpecializedModelName;
按照惯例,extends
子句通常列在模型定义最上方,在任何变量之前
在后面的章节中,我们会展示上述语法如何用来定义除了模型之外的其他实体。但是,我们目前的重点是模型。