[執筆途中] DynamicSelectsの利用:計算結果のカラー表示

*執筆途中だが公開ポリシーに則り公開。
2023.05.20
 OpenModelicaが昨今,Annotationによる結果表示周りの機能が向上しているようなので,活用していこうと思う.今回は色表示周りについて.
 簡単な表示用コンポーネントを自作したが,コードの書き方等の解説は今回は見送り,それを使ってどの様な事が出来るかの一例を示す.

記事を通して言いたいこと(結論)

 例によって、冒頭で述べておく。
  • AnnotationのDynamicSelects記述により,計算結果の値に応じてiconの表示内容を変化させてアニメーション表示することができる.
  • 上記機能で計算結果をiconにカラーグラデーション表示するコンポーネントを作成した.
  • 本コンポーネントでシステム中の多数点の物理量(ex.温度)を.同時表示させることで,疑似的にシステムのdiagram上にカラー等高線を加えたような結果表示ができる.これにより複雑なシステムの挙動を把握し易くなる.

作成コンポーネントの解説

    icon

    ソースコード

    within FluidSystemComponents.InteractiveSimulation.Output;
    
    model DispValAndColor01
      extends FluidSystemComponents.InteractiveSimulation.Output.DispColorGrad00;
      //----------------------------------------
      // parameter
      //----------------------------------------
      parameter Integer sigDigits(min=1) = 6
        "";
      
      
    equation
    
    annotation(
        Icon(coordinateSystem(extent = {{-100, -80}, {100, 40}}), graphics = {Rectangle(origin = {0, -60}, fillColor = {255, 255, 255}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-100, 20}, {100, -20}}), Text(origin = {0, -61}, extent = {{-100, 15}, {100, -15}}, textString = DynamicSelect("0.0", String(u, sigDigits, 0, true)))}),
        defaultComponentName = "disp");
    
    
    end DispValAndColor01;
    

    コンポーネントソース情報

     本コンポーネントは,ライブラリFluidSystemComponent下にInteractiveSimulationのためのツールとして作成した.
     コンポーネントのパス: FluidSystemComponents/InteractiveSimulation/Output /DispValAndColor01.mo

シミュレーションモデル:

    動作確認用モデル:

      Diagram

      シミュレーション実行

      Input

      Output

      time= 4.8 s

      time= 14.6 s

      RGB value

      モデルソース情報

       本実行モデルは,ライブラリFluidSystemComponent下に収録している.
       コンポーネントのパス: FluidSystemComponents/InteractiveSimulation/Examples /DispValAndColor01_ex01.mo

    チュートリアルモデルに適用:

      diagram

      シミュレーション実行

      Input

      循環回路への入熱

      循環回路ポンプの機械回転数

      冷却流体質量流量

      Output

      time = 4 s


      time = 60 s


      time = 130 s


      time = 190 s


      time = 260 s

      各所温度

    モデルソース情報

     本実行モデルは,ライブラリWalkingInWorldOfThermoFluid下に収録している.
     コンポーネントのパス: WalkingInWorldOfThermoFluid/Hard /CoolingSystem_ex01_withColorTdisp.mo

あとがき(結論の繰り返し)

 例によって、冒頭で述べた結論をもう一度。
  • AnnotationのDynamicSelects記述により,計算結果の値に応じてiconの表示内容を変化させてアニメーション表示することができた.
  • 上記機能で計算結果をiconにカラーグラデーション表示するコンポーネントを作成し,Githubに公開した.
  • 本コンポーネントでシステム中の多数点の物理量(ex.温度)を.同時表示させることで,疑似的にシステムのdiagram上にカラー等高線を加えたような結果表示ができる.
    1. エンジンラジエータのような熱収支流体回路のモデルに,作成したカラーグラデーション表示コンポーネントを適用してみたところ,結果を温度コンタ状に表示でき,時間スライダを用いたアニメーションを合わせると,システムの挙動把握が非常にし易くなった.
以上

コメント

タイトルとURLをコピーしました