OpenModelica(v1.12.0 (64-bit))をインストールして、OMEditのExampleをいじったり、本(Modelicaによるシステムシミュレーション入門)を読んだりしていましたが、ようやくOMEditを使ったオリジナルのモデル作りにチャレンジしております。
最初に作りましたのが、下図の最小限の構成。
ThermalのSourcesからAmbientを二つとってきて、volumeFlowでつないでみて、Parametersに適当な値を入力してみました。
この適当な値の入力でも少しハマりましたが、それは次回ご紹介するとして、テキストで見るとこんな感じです。
model test_temp
Modelica.Thermal.FluidHeatFlow.Sources.Ambient ambient1(constantAmbientPressure = 1e+06, constantAmbientTemperature = 293.15) annotation(
Placement(visible = true, transformation(origin = {-48, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
Modelica.Thermal.FluidHeatFlow.Sources.VolumeFlow volumeFlow1(T(start = 288.15), T0 = 288.15, constantVolumeFlow = 1, m = 1) annotation(
Placement(visible = true, transformation(origin = {-4, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Thermal.FluidHeatFlow.Sources.Ambient ambient2(constantAmbientPressure = 1e+06, constantAmbientTemperature = 288.15) annotation(
Placement(visible = true, transformation(origin = {52, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
connect(volumeFlow1.flowPort_b, ambient2.flowPort) annotation(
Line(points = {{6, -2}, {42, -2}, {42, 0}, {42, 0}}, color = {255, 0, 0}));
connect(ambient1.flowPort, volumeFlow1.flowPort_a) annotation(
Line(points = {{-38, -2}, {-10, -2}, {-10, -2}, {-14, -2}, {-14, -2}}, color = {255, 0, 0}));
annotation(
uses(Modelica(version = "3.2.2")));
end test_temp;
これでも実行はできましたが、伝熱流動に携わる者として重大な疑念が残りました。
流体の物性はどうなっているのだろう?
下図のmediumという部分が作動流体を定義する部分であるであることに気づいたのですが、流体を指定する方法がわからない。
そこで、Exampleを見直してみると、冒頭部分で流体を定義しているよう。
それを参考に、コピペしてmediumとしてWaterを定義してみたのが以下のテキストです。
model cooling_test2
parameter Modelica.Thermal.FluidHeatFlow.Media.Water
medium = Modelica.Thermal.FluidHeatFlow.Media.Water()
"Cooling medium";
Modelica.Thermal.FluidHeatFlow.Sources.Ambient ambient1(constantAmbientPressure = 1e+06, constantAmbientTemperature = 293.15, medium = medium, usePressureInput = false, useTemperatureInput = false) annotation(
Placement(visible = true, transformation(origin = {-60, 42}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
Modelica.Thermal.FluidHeatFlow.Sources.Ambient ambient2(constantAmbientPressure = 500000, constantAmbientTemperature = 293.15, medium = medium, usePressureInput = false, useTemperatureInput = false) annotation(
Placement(visible = true, transformation(origin = {48, 42}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Thermal.FluidHeatFlow.Sources.VolumeFlow volumeFlow1(T(start = 288.15), T0 = 288.15, constantVolumeFlow = 1, m = 1, medium = medium, useVolumeFlowInput = false) annotation(
Placement(visible = true, transformation(origin = {0, 42}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
connect(volumeFlow1.flowPort_b, ambient2.flowPort) annotation(
Line(points = {{10, 42}, {38, 42}}, color = {255, 0, 0}));
connect(ambient1.flowPort, volumeFlow1.flowPort_a) annotation(
Line(points = {{-50, 42}, {-10, 42}}, color = {255, 0, 0}));
annotation(
choicesAllMatching = true);
annotation(
uses(Modelica(version = "3.2.2")));
end cooling_test2;
ThermalFluidHeatFlowの中で見つけたMediaのWaterを使ってみました。
テキストを編集してmediumをWaterに定義する文を書いて、OMEditで、ambient、volumeFlowのコンポーネントのパラメータに設定してみました。
これで流体として水が設定されたはずです。(たぶん・・・)
流体を設定するGUIが(恐らく)無く、テキストに手打ちするしかないところが残念ですが、流体を選定することができるようになりました。