[rev.A]1DCAEの魅力 -この解析、3Dで簡単に出来ますか?-

本記事は、この記事2021/10/16開催モデルベースデザイン小委員会セミナ向けに加筆・修正したもの。主に文章を改変しており基本的な内容はそのまま。

Introduction

 昨今、MBD, 1DCAEの注目度は高まり、大手ベンダからソフトウェアが販売され、オープンソースソフトも活発に開発が進められている(OpenModelica)。

 1DCAEでは、CFDや3次元の構造、伝熱解析等と異なり、空間的分布を大幅に無視し、1次元/0次元に単純化した物理モデルを用いてシミュレーションを行う。従って、物理現象の再現度は低く、特に物理量の空間的分布情報の多くが欠けてしまう。また、それら単純化されたモデル1つ1つは工学教科書に登場するような基礎的な式を実装したものが多い。Excelや手計算でも作成・実行可能なレベルのものが殆どだ。それでは、何故3Dではなく、1DCAEを使うのか?本記事は例題を通してそれを見てゆく。

 *例えば「伝熱壁」のモデルは板厚方向の熱の移動だけをシミュレートするので、1次元。一方で、ガスタービンエンジンシステムに使う「圧縮機」のモデルは、流体の流れの向きこそ有るが、圧力比・断熱抗力という性能特性値だけをinputに取るので、0次元まで単純化されてると言える。

 *組み合わせ/重ね合わせにより、疑似的に2次元・3次元のシミュレーションを行うことは出来る。たとえば「伝熱壁」を用いた熱回路を上下左右4方向に広げて造れば2次元の熱回路になる。「形」の情報は抜け落ちるが「4つの向きの熱流れ」はシミュレートできる。

 *1DCAEの1Dは1dimensionで1次元を意味するのではなく、1domainを意味しているとのこと。流体・電気・機械・熱・磁気といった多分野の解析を1つのシミュレーションモデルで観るから1domain。この辺りの言葉尻に拘っても仕方無いので紹介として触れるだけにしておく。

何故1DCAEか

 結論というか記事を通して伝えたいことであり、先に述べておく。1DCAEを使う理由は、大きく、様々な機器や現象が複雑に絡み合う大きなシステム全体の動きをシミュレート/解析するためだ。解析は1条件ではなく、対象となるシステムが晒される幅広い動作範囲を取り扱い、場合によっては過渡応答も含む。更に、そのシステムを目的達成=必要機能獲得に向けて最適化すべく、システムの構成や設計パラメータを変えながら試行錯誤のシミュレーションを繰り返す。そのためにはシミュレーションがカバーする物理的範囲は3DのCAEより広く、それでいて計算負荷は小さくなければならない。そのため、再現性の観点で失うものが有っても単純化したものを使う。それが1DCAEだ。

 前述の通り、本記事では簡単な例題を通して3Dでは出来ない、1Dだからこそできる解析というものを紹介する。

 実は、1DCAE用モデリング言語であるModelicaでコンポーネント(計算モジュール)を自作して例題で動作確認を進めるうちに、「この解析って単純に見えて3DCAEだと遥かに手間がかかるのではないか?現実的に設計解析として実施するのは無理ではないか」と思ったのが本記事の発端だ。それは裏返しにすると1DCAEとModelicaの魅力・メリットであり、、それを伝えたい。

 以下ずっと、「これを3D(流体システムなのでCFD)で真面目に行うには何をしなければならない?どれくらいの手間・時間がかかる?」と、自問と想像をしながら読み進めて欲しい。

シミュレーション対象

 例題は、流体を複数箇所に供給するシステムで、ポンプ,バルブ,流路分岐からなるシンプルな流体回路。

概略図

 まずは、作りたい物/システムの簡略図作成からスタート。流体回路図、ブロック線図、SysML、デフォルメスケッチ、そのシステムの特徴を表せさえすれば何でも良い。例に示す下図は、「自分で解れば良い」の下に適当に作成した絵なので下手なのは容赦願う。

 造るものは、水道の末端をデフォルメしたような液体供給回路。供給元は1ヶ所、定容積ポンプが一定の体積流量を供給し続ける。そして、供給先は2か所で、それぞれ流量調整バルブを設ける。出口は大気圧。蛇口と同じもの。

Page0024
Fig.1 

要求仕様・制約

 次に、このシステムに課せられている要求・制約をリストアップする。

  1. 一方のバルブが全開になっても、他方に、指定の体積流量を供給できる。(供給量の下限)
  2.  全バルブ全開時に要求流量を供給出来ないというのは流体供給システムとして失格だろう。

     本例題では、供給量下限の値までは定めない。満たしたいのは、開いているバルブには如何なる時も任意の値以上の流量を供給出来るという事。

  3. 一方のバルブが全閉になっても、他方の体積流量が、指定値を上回る事が無い。(供給量の上限)
  4.  →他のバルブが閉まって突然大流量出てきたら困る。流速次第では事故やケガを招く。

     本例題では、具体的な上限値までは定めない。満たしたいのは、バルブをどう操作しても、開状態のバルブからの供給量が任意の値以下に留まるということ。ただし、全く何も定めなければ仕様満足かの判断が出来ないので、供給量の上限を全開時の1.2倍としておこう。

  5. 供給元ポンプ出口の流体圧力が制限値を超えることが無い。(圧力の上限)
  6.  →流体圧力が上がり過ぎたら機器自体が壊れる。ギアポンプやベーンポンプなどの容積型ポンプは回転に応じた流量を問答無用で押し出す。そして吐出圧力=システム中で最も高い流体圧力は下流の圧力損失の積み上げで決まる。なので、ポンプが指定された流量を吐出しつつ下流の圧力損失が大きくなると、機器が壊れるまで吐出圧力は上昇し続ける。

     本例題では、具体的な制限値までは定めない。満たしたいのは、如何なる作動をさせても最大圧力が任意の圧力より高くなることがないように動くこと。ただ何も定めなければ仕様満足かの判断も出来ないので、圧力の上限は両バルブ全開時の1.5倍としておこう。

  7. 両方のバルブを全閉にできる。
  8.  →水道の蛇口のように、全ライン供給停止にすることもあるだろう。機器を完全停止させる場合(自動車で例えると車庫に停めてエンジンを完全停止させる)は供給元のポンプを停止させれば良い。しかし、一時的に総てのバルブを全閉状態にしアイドリングのような状態としたい場合はどうか。一時的な流量供給停止の度にポンプの動力源を完全停止させるというのは不便だろう。また、ポンプ回転で全バルブ全閉に対応すると、機器を損傷させないために、全バルブ全閉に対してポンプの供給停止が一切遅れてはならなくなる。そのような余裕が全く許されないシステムを作ることなど不可能に近い。

  9. 供給元ポンプは供給先バルブの操作に関係無く、定回転作動させておく。
  10.  →バルブ操作に応じて必要とされる供給流量が変わるので、制御機構を組み込みたい所だが、バルブが複数ある上、流量・バルブ操作に応じて流路抵抗も常に変わるので、単純な制御ロジックでは済まない。従って、ポンプは定回転させて解が得られるかを探す。また、制御機構を設けるには、センサ・アクチュエータが必要となることも忘れてはならない。モデリング上の手間は大したものでない場合が多いが、実物ではそれらの選定・実装を含めると手間・コストは格段に増える。

シミュレーションモデル作成

 モデル作成には1DCAEに特化したモデリング言語のModelicaを、そのModelicaを使う解析プラットフォームにOpenModelicaを使う。

モデルdiagram組立て

 前述の概略図・要求仕様を満たすべくModelicaでモデルを組み立てると下図のようになる。機器・発生現象ごとにコンポーネントで区切られており、アイコンそれぞれが機能/現象をよく象徴している。Modelicaを詳しく知らなくても、この回路の成す機能は読み取れるのではないだろうか。これも1DCAEの持つ魅力の1つだ。モデルと同時に、その中身を説明する概念図も作成される。この図に直接説明や注釈を書き込むか、この図をクリップボードにコピーし資料/文書の図素材にすれば、設計書/報告書に載せる図は直ぐに完成だ。

 *すべての1DCAEツールがdiagramベースのモデリングに対応している訳ではない。JmodelicaやNPSSのように、1DCAEではあるがテキストコードベースのものも存在する。

 一応、作成したモデルのdiagramについて説明を述べておく。

 左側から、大気圧境界条件(大気解放された、大きさを無限とみなせる程大きいタンクと考えれば良い)、定容積ポンプ、配管、流路分岐、2つの供給経路、バルブ、そして大気圧境界条件、という流体回路となっている。定容積ポンプ直下流にはvolumeコンポーネントを入れているが、これは有限容積内の質量とエネルギー溜めによる過渡応答をシミュレートするのでなければ必須と言う訳ではない。ただ、volumeを間に設けた方が計算が安定したり、コンポーネントの組み合わせによってはvolume要素がなければ計算が回らない場合が有るので入れておく。定容積ポンプの軸は任意の回転速度を境界条件として与えるコンポーネントに繋がり、機械回転数をinputに取る造りとなっている。(逆に、任意のトルクを与えて機械回転速度を出たなり値とする造りとすることも出来る。)

flowSupplyNetwork002
Fig.2

Parameters

 当然、diagramを組み立てたら各コンポーネントにparameterを与えるのだが、本記事では省略する。

 上述した、システムの要求使用は総て定性的なものであり、数値的な要求は皆無としてある。そのため、parameterの設定値は余り気にする必要がない。要求した動きをさせるために一部のparameterまたはparameterの値の組み合わせを調整することが有り得る程度だ。そのため、[連載]Modelicaによる熱流体の世界の歩き方のような、各コンポーネントのparameter設定値のリストアップは省略する。

シミュレーションInput

 まず、インプット。ポンプ回転がほぼ停止した状態から開始し10-20 [s] で上昇させる。その後、30-40 [s] で#2のバルブを全閉に向かって閉じる(バルブ#1は全開を保ち、操作しない)。これらの操作に対して、作成したシステムが上述の要求を満たせる動きをとっているかを観てゆく。

FluidSupplySystem002_001
Fig. 3 ポンプ機械回転数
FluidSupplySystem002_002
Fig. 5 バルブ1開度
FluidSupplySystem002_003
Fig. 4 バルブ2開度

シミュレーション結果, round 1

 それではアウトプット。ポンプ出口圧力、バルブ2流量、バルブ1流量を観る。

FluidSupplySystem002_004
Fig. 6 ポンプ出口圧力
FluidSupplySystem002_005
Fig. 7 バルブ2質量流量
FluidSupplySystem002_006
Fig. 8 バルブ1質量流量

 当然だが、バルブ2を閉じるのに応じて、ポンプ出口圧力は約2倍まで上昇し、バルブ1の質量流量もおよそ倍増した。すべての挙動が見事にバルブ2を閉じたことに吊られている。

 この挙動を見て、要求仕様を総て満足するか考えていこう。

  1. 一方のバルブが全開になっても、他方に、指定の体積流量を供給できる。(供給量の下限)
  2. 達成可能。具体的な値は設定してないが、これは供給ポンプの大きさで対応できる。

  3. 一方のバルブが全閉になっても、他方の体積流量が、指定値を上回る事が無い。(供給量の上限、全バルブ全開時の1.2倍)
  4. 可能そうだが、不可能である(要求値次第で満足できる場合も有る。)。一概に言えないが、2つある同じ諸元のバルブが片方全閉になるのだから、残るバルブには概ね倍の流量が流れると考えるのが自然だろう。全バルブ全開時の1.2倍に抑えるのはこのシステム構成では到底実現出来ない。

  5. 供給元ポンプ出口の流体圧力が制限値を超えることが無い。(圧力の上限、全バルブ全開時の1.5倍)
  6. 要求3と同じ。要求値次第では満足できることも有る。しかし、今回は達成不可。流路圧力損失の大部分が流量調節バルブで、そのバルブが線形バルブ(差圧と流量の関係が線形)なので、流量が2倍になったら圧力損失も2倍になると考えておいて良い。なので、全バルブ全開時の1.5倍というのは現システム構成では実現不可だ。

  7. 両方のバルブを全閉にできる。
  8. 明らかに不可能。余分な圧力を逃がす機構が無い。全バルブを閉じると、ポンプ出口下流の何処かが壊れるまで圧力が上昇し続ける。

  9. 供給元ポンプは供給先バルブの操作に関係無く、定回転作動させておく。
  10. これは最初から達成されている。ポンプは他の操作や境界条件とは独立して一定回転で動作するよう境界条件を与えている。(実物で言うと、軸動力に十分余裕が有り、調速機か回転数を任意に制御できるモーターに繋がれている状態を意味する。)

システム構成改修

 前項にて、満足できない要求アイテムが有ることを確認した。作成したシステムには達成目的に対して足りないものがあ有るので、改修しよう。何かを造る時は当然の事だが、出来る限りシンプルに目的を達成できる手を考えよう。

 流路と機器を1つ追加する。再度になるが、絵が下手なのは容赦されたい(下手な絵を書く位なら最初からModelicaで図も作ってしまえば良いと言われそうだが、今回は練習と思って手書きの図を書く。)。

Page0025
Fig. 9

 ポンプ直下流に「バイパス流路」、流体の一部をすぐタンクに戻させて余分な圧力・流量を逃がす流路、を追加した。

 そして機器というのは「チェックバルブ」。これはバルブ前後の差圧が一定値を超えると流路が開き始めるバルブ。最も原始的なものはバネ押さえによる機械的な作動機構なのでセンサや制御機器は不要。それ単体で動作するし、信頼性も極めて高い。これを設置するのは、バイパス流路にずっと一定の流体が流れ放しになるのは無駄だから。必要な時だけバイパス流路を使うようにする。

 下図がModelicaモデルのdiagram。コンポーネントアイコン1つと、それを繋ぐ結線が2つ増えているのが判るだろう。1DCAEなら、このようなシステム構成の変更は非常に簡単で、可視化もすぐに出来る(必要とする機器や現象のコンポーネントが手元になければならないが。)。

flowSupplyNetwork003
Fig.10

シミュレーション結果, round 2

 本記事では、具体的数値は観ていないので、チェックバルブのparameter設定は省略する。インプットもround 1 と同じなので省略し、早速シミュレーション結果を観てゆく。覚えていなければ、当該項を再見願う。観るvariablesは同じポンプ吐出圧力、バルブ1,2の質量流量だ。

FluidSupplySystem003_004
Fig. 11 ポンプ出口圧力
FluidSupplySystem003_005
Fig. 12 バルブ2質量流量
FluidSupplySystem003_006
Fig. 13 バルブ1質量流量
  1. 一方のバルブが全開になっても、他方に、指定の体積流量を供給できる。(供給量の下限)
  2.  round 1 時点で既に仕様満足。

  3. 一方のバルブが全閉になっても、他方の体積流量が、指定値を上回る事が無い。(供給量の上限、全バルブ全開時の1.2倍)
  4.  バルブ1の質量流量は、バルブ2閉じ操作に従って少し増加はするのだが、直ぐに頭打ちになる。無事にバルブ2全開時の1.2以内に収められている。ポンプ出口圧の上昇によってチェックバルブが開き、余剰な流量をタンクに逃がしてくれていることで達成された。

  5. 供給ポンプ出口の流体圧力が制限値を超えることが無い。(圧力の上限、全バルブ全開時の1.5倍)
  6.  バルブ1質量流量同様、バルブ2閉じ操作に従って少し上昇はするが、直ぐに頭打ちになる。バルブ2全開時の1.5倍を余裕を以って下回れている。チェックバルブがポンプ出口の余分な圧力を流量と共に逃がしてくれていることで達成された。

  7. 両方のバルブを全閉にできる。
  8.  実証・確認はしていないが、要求満足は確実。バルブ2閉じ動作の時点で、チェックバルブが開いているので、全バルブ全閉にしても流量・圧力を逃がす所は確保している。

  9. 供給元ポンプは供給先バルブの操作に関係無く、定回転作動させておく。
  10.  round 1 時点で既に仕様満足。

 上で観てきた通り、バルブ2を閉じてもポンプ出口圧力の上昇とバルブ1質量流量増加がすぐに停止した。チェックバルブが開いて、「バルブ1に流れる筈だった」流量がバイパス回路に流れてくれたからだ。

—–チェックバルブの動き—–

 以下に、キーコンポーネントとなったチェックバルブの挙動を観ておこう。

 チェックバルブに流体が流れ始めるのはバイパス1を閉じていく途中から。両バルブ全開の時は全く流れていない。流れ始めて以降は、流量は差圧に応じて増し続ける。このバルブモデルは、通過体積流量vs.差圧が線形の特性となるよう作ったもので、Fig.15に示すとおり意図通り動いている。(*本当はバネが縮みきるまでは線形関係で、そのあとはオリフィスと似た振る舞いとなる筈だが、そこまで複雑なモデルは今回は用意していない。)

FluidSupplySystem003_007
Fig. 14 チェックバルブ質量流量
FluidSupplySystem003_008
Fig. 15 チェックバルブ体積流量 vs. チェックバルブ差圧

 チェックバルブの仕様を変えることでバルブが片方或いは両方閉じた時の挙動をある程度調整できる。具体的には、開口差圧・開口後の流量vs.差圧の特性を調整すれば、ポンプ出口圧力・バルブ1質量流量の最高到達値を調整できる。

 現実にシステム設計を行う場合、チェックバルブを0ベースで設計する/仕様を決めて特注するのも良いし、既存製品から要求達成可能なものを選んでも良い。解析は極短時間で回るし、バルブの仕様、使う流体、作動状態(タンクの流体温度やバルブ出口圧力など)を色々変えるのも簡単なので、メーカーカタログを参照しながら解析を繰り返せば良い。これは3DCFDのような解析では実施出来ない1Dならではの設計解析プロセスだろう。

あとがき ~設計変更を伴うシミュレーションを終えて~

 さて、最初の問いだ。今回作った流体供給システム、3Dのモデリングと解析で最適な構成・設計変数決めが出来るだろうか?特に、仕様を満たせない事を確認した後の、機器・流路の追加。その問いに対する答えと、ここまで観てきた設計モデリング・解析のプロセスが1DCAEの価値を物語る。3Dでもこの解析を行うのは不可能ではないだろうが、CADで3Dモデルを作って、メッシュを切って、とするだけで桁が違う時間が掛るのは間違い無いだろう。それに対して1DCAEは微細さを欠かすのと引き換えに、モデリングも解析実行も圧倒的に早く、回路組み換えのような変更に対して柔軟に対応出来る。

 ここまでシンプルなら手計算/エクセルでも計算出来てしまうだろうが、手間は結構かかるの筈だ。収束計算・条件分岐が多数発生するので、上記でOpenModelicaで実施したほど容易・軽快ではないだろう。そして何より、機器や流路の追加といった、システムの形態変更で大きな手間・難易度が生じるし、Modelicaのdiagramの様な見通しの良さも無い。

 今回のような、可動部が多数あるシステム、そして各要素の挙動が他要素に複雑に影響を与えるシステム、そういったものの設計解析に、1DCAEは3Dには無い構成要素の組換や計算実行の軽さをもって力を発揮する。

 1DCAEを実施する手段は多数有るが、中でもModelicaは、シミュレーション特化の、ツールベンダ等ではない第3者組織によって規格化された言語である点が大きな魅力だ。それ故に複数のフリー・商用ツールで共通して使える。そして、「非因果な方程式記述」が可能という特徴が、数理モデリングを行う上で実に魅力的である。ぜひとも導入・試用してその魅力と力に触れてみてほしい。OpenModelicaなら作業工数を除きコスト0で、誰にでも直ぐに試せる。

本記事のシミュレーションモデルに関して

 筆者の作成しているライブラリと本記事で紹介したシステムモデルは総てgithubで公開しているのでリンクを貼っておく。ご自由に参照・利用して頂きたい(GPL3の範囲内でなら商業利用含めて自由にお使い頂けます)。

 github-FluidSystemComponents

 本記事で使ったモデルは以下2つ。

  • ディレクトリ:HydroThermal/Examples
    • モデルファイル;

    • flowSupplyNetwork002.mo
    • flowSupplyNetwork003.mo

以上

コメント

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