简单领域

本节中,我们将讨论一些比较简单的工程领域。这里指的是其connector仅带有一个穿越变量以及一个横跨变量的工程领域。概念上,这意味着该连接器仅涉及一个保守量。

下表涵盖了四种不同的工程领域。在每个领域中会分别看到所用到的穿越变量、横跨变量以及这些量相对应的国际单位。

领域

穿越变量

横跨变量

电气

电流[A]

电压[V]

热学

热[W]

温度[K]

平移

力[N]

位置[m]

旋转

力矩[N.m]

角[rad]

你可能在之前就看过了类似的表格,不过其选择的变量却有所不同。举个例子,你会有时会看到速度(单位为\(m/s\))作为平移运动的横跨变量以上选择受制于两个约束条件。

第一个约束条件要求穿越变量应为某个守恒量的时间导数。这样做的原因是穿越变量会被用于建立系统的广义守恒方程。因此,穿越变量为守恒量的导数便至关重要。

第二个约束条件则要求横跨变量应为领域内所有本构方程和经验公式内的最低阶导数。因此,举个例子,在平移运动时我们选择位置作为横跨变量,因为位置会用于描述弹簧的行为(即胡克定律)。如果我们选择了速度(位置的时间导数),那么我们就会一直处于一种尴尬局面。对比起位置,我们必须试图用速度去描述弹簧行为。这里有一点很重要的:微分是有损的。如果知道位置,我们可以很容易地表达速度。但倘若只知道速度,而没有额外的积分常数,我们就不能计算位置。这就是为什么我们希望横跨变量不要经过太多次微分。

现在让我们分别来看看每个领域。

电气

我们可以定义电气领域的connector,如下:

  connector Electrical
     Modelica.SIunits.Voltage v;
     flow Modelica.SIunits.Current i;
  end Electrical;

在这里我们看到,连接器内的变量v代表电压,而变量i则代表电流。

请注意电流i声明里的flow限定词。flow限定词告诉了Modelica编译器,i是穿越变量。回忆我们对非因果连接的讨论:flow变量应该是守恒量的时间导数。我们可以看到,该连接器遵循了上述规则。Current的确为电荷的导数(而电荷为守恒量)。

注意电压v的声明里并无限定词。没有任何限定词的变量可以认为是across变量。在本章后面,你会见到对变量(包括对其可用的各种限定词)的进一步讨论。

有兴趣的读者不妨跳到关于电气部件的章节,去看看我们是如何使用连接器定义来创建电路元件的。

热学

用于建模集总传热的连接器和电气领域的连接器没有太大不同:

  connector Thermal
     Modelica.SIunits.Temperature T;
     flow Modelica.SIunits.HeatFlowRate q;
  end Thermal;

该连接器包括了TemperatureHeatFlowRate,分别对应VoltageCurrent。虽然变量名称名称不同,两个连接器的整体结构基本相同。connector包括一个穿越变量(带有flow限定词的q)和一个横跨变量(没有限定词的T)。我们再一次看到,带有flow限定词的变量HeatFlowRate是守恒量能量的时间导数。

在建模集总传热网路时,上述连接器可以用于建立部件模型。具体例子可以在下面关于传热组件的讨论里找到。如果你觉得对此connector的定义没有疑问,请尽管跳到该章节。但我仍然建议之后回过头来读读连接器章的回顾一节。

平移

为了对平移运动进行建模,我们将定义如下的连接器:

  connector Translational
     Modelica.SIunits.Position x;
     flow Modelica.SIunits.Force f;
  end Translational;

再一次,我们看到和之前相同的基本结构。connector包括一个穿越变量f和一个横跨变量x。需要注意的是,虽然这是个一维的力学连接器,但其物理类型特定于平移运动,不同于下面提到的旋转的物理类型。

对于力学连接器大家经常忽视了一个重要的事实,flow变量确系某个守恒量的时间导数。例如,在平移运动的情况下,flow变量f是力。力则是(线)动量的时间导数。而动量就正正是个守恒量。

旋转

只能进行转动运动的系统应使用下列的Modelica connector定义:

  connector Rotational
     Modelica.SIunits.Angle phi;
     flow Modelica.SIunits.Torque tau;
  end Rotational;

这里我们看到,横跨变量是phi(代表角位移),而穿越变量则为torque。与所有前述例子一样,flow变量是守恒量的时间导数。在本例里,守恒量为角动量。

SimpleDomains

为便于参考,所有在本节中定义的接口组成一个单一的包:

within ModelicaByExample.Connectors;
package SimpleDomains "Examples of connectors for simple domains"
  connector Electrical
     Modelica.SIunits.Voltage v;
     flow Modelica.SIunits.Current i;
  end Electrical;

  connector Thermal
     Modelica.SIunits.Temperature T;
     flow Modelica.SIunits.HeatFlowRate q;
  end Thermal;

  connector Translational
     Modelica.SIunits.Position x;
     flow Modelica.SIunits.Force f;
  end Translational;

  connector Rotational
     Modelica.SIunits.Angle phi;
     flow Modelica.SIunits.Torque tau;
  end Rotational;
end SimpleDomains;