模型定义

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子句通常列在模型定义最上方,在任何变量之前

在后面的章节中,我们会展示上述语法如何用来定义除了模型之外的其他实体。但是,我们目前的重点是模型。