"class" 在 Modelica 中是什么意思?

What does "class" mean in Modelica?

我不明白 class 在 Modelica 上下文中的含义。

来自 Modelica 教程,版本 1.4 https://modelica.org/publications.html

In Modelica, the basic structuring element is a class. There are seven restricted classes with specific names, such as model...". Anyone have a simpler explanation? I am very new to Modelica.

如果您在 Dymola 或 OpenModelica 等工具中打开 Modelica 库,您在包或库浏览器中看到的所有内容都是 classes。

只要您使用其中一个 classes,例如通过在图表层中拖放,您可以创建此 class 类型的新组件。 实例化的组件不是 class 的副本,而是对它的引用。因此,如果更新 class 定义,也会更新作为此 class.

实例的所有组件的行为

有多种 classes 可用。最笼统的class其实叫class,不过用得不多。 它没有任何限制,因此它可以包含 Modelica 可能包含的所有内容:方程式、算法、public 和受保护的组件等。

还有更具体的class类型,限制了使用。这有助于正确使用 class。例如 functionrecord 无法模拟。

最重要的受限 class 类型是:

  • package:用于分组其他classes
  • model:通常用于具有物理连接器的组件和模拟的示例
  • block:用于带有因果连接器的组件(只有输入和输出,所以你在 Modelica.Blocks 中拥有的一切)
  • function:用于函数调用,媲美其他编程语言
  • record: 通常用于包含其他组件的数据集(允许快速更改完整的数据集)
  • connector:用于定义连接域中不同组件所需的接口变量(例如电域中的v和i)
  • type:通常用于定义物理量,如质量、长度或时间及其单位(例如包中的所有单位 Modelica.Units

可以在 Modelica 规范的第 4.6 章中找到更多信息:Specialized Classes

这只是一个链接集合,用于证明在 Modelica 协会内正在进行关于 class 的讨论:

  1. class still a valid Modelica class type to use?
  2. model no longer identical to class
  3. What is the usage recommendation for class?
  4. Restricted class for parameter record with initial equation