1D-CAEは3D-CAEとの比較において言及される事も多いのですが,1Dシミュレーションまたは1DCAEと呼ばれる技術が注目されているのは,単なる3D-CAEの代替や補間にとどまらないからです.また1Dモデルは現代技術として欠かす事のできない情報工学との親和性が高く,従来の機械工学ドメインを超えて,(例えばAIなどの)次世代技術との発展の可能性も考えられます.
ではなぜ,1Dシミュレーションは従来の工学シミュレーションの範疇を超えるのか,1Dモデリング研究会で定義されている「5段階のレベル」に分けて,順に説明していきます.
モデル例
モデル例として,下記のマスバネダンパー(MSD)システムを取り上げます.
$$M~a~+~~C~v~+~~K~x~=~f$$
5つのモデルレベル
1Dモデルのレベルは,下記の5つのレベルに分けられます.
- レベルⅠ: 支配方程式モデル
- レベルⅡ: 物理現象モデル
- レベルⅢ: 機械要素モデル
- レベルⅣ: 生産性モデル
- レベルⅣ: 実務モデル
レベルⅠ~Ⅲはスクリプトベースで,Ⅳ~Ⅴは基本的にグラフィックベースです.またレベルの数字が小さくなるほど機械工学(従来の工学ドメイン)の知識を求められ,レベルが大きくなるほど情報工学(プログラミング,システム工学)の知識が必要になってきます.
- レベルⅠ支配方程式モデル支配原理を変数と方程式で表現した最もシンプルな非因果的スクリプトモデル
- レベルⅡ物理現象モデル表現したい物理システムの挙動を定式化し,クラス内に記述したモデル
- レベルⅢ機械要素モデルレベルⅡの各クラスのインターフェース間をコネクタで接続した基本的なモデルベース開発型のモデル
- レベルⅣ生産性モデルレベルⅢにGUIを適用させ,グラフィカルに図解したモデル
- レベルⅤ実務モデル標準または追加(商用・無償)のライブラリを用いたモデル
ここでは1DCAEの重要な概念の一つである「見通しの良さ」をキーワードの一つとして,各モデルレベルを見ていきましょう.
レベルⅠ: 支配方程式モデル(Equation Model)
下記のスクリプトは,運動方程式を表現した最もシンプルな1Dモデルです.(ここでは簡単にするためにMSDシステムは自由減衰振動(外力なし)としています)
Modelicaは「equation」というキーワードより上のエリア(上図の緑色の部分)で変数および定数を定義(宣言)し,「equation」から下のエリア(上図の水色の部分)で方程式を記述するのが基本ですが,このレベルのモデルは構造が大変シンプルなので非因果モデルの特徴を最も明確に表わしています.
このように階層化(クラス化,モジュール化)をせずに,現象をあらわす方程式を一つのスクリプトにすべて記述したフラットなモデルをレベルⅠと定義しています.
見通しの良さは
レベルⅠの見通しの良さは「支配方程式そのものがよく見える」ということになります.
レベルⅠ(支配方程式モデル)の詳細は下記をご参照ください.
レベルⅡ: 物理現象モデル(Physics Model)
下記のレベルⅡのスクリプトは,レベルⅠのMSDシステムの支配方程式を,それぞれ マス要素(慣性項)と ダンパー要素(減衰項)と バネ要素(剛性項)の3つのコンポーネントに分けて(オブジェクト化して)記述しています.
equationより上のエリア(緑色の箇所)は,レベルⅠでは変数と定数(機械特性)を直接宣言していましたが,レベルⅡでは機械特性はそれぞれのコンポーネント(正確には Massクラス,Damperクラス,Springクラスから作成した3つのインスタンス(mass1, damper1, spring1))に置き換えられています.
そしてequationから下の連立方程式のエリア(水色の箇所)は,レベルⅠでは運動方程式をそのまま記述しましたが,レベルⅡでは平衡状態(equilibrium)をあらわす力の釣り合い式(=運動方程式に相当)に加えて,各コンポーネントの変数が同位である事を示すポテンシャル量の連続条件(continuity)が追加されています.
ちなみに時間依存の変数(x:変位,v:速度,a:加速度)がどこに行ったかと言うと,各機械要素のコンポーネント(クラス)の中で記述しています.下記は質量要素(Massクラス)の中身です.
見通しの良さは
このレベルⅡのモデルの見通しの良さは「物理システムの挙動がよく見える」という事になります.このレベルⅡのモデル(現象の定式化)は1Dシミュレーションの要になります.このモデルが本質から外れていたり,正しく表現出来ていなかった場合,これ以降のレベルが「砂上の楼閣」になってしまいますので,確実にモデル化していく必要があります.
レベルⅢ: 機械要素モデル(Element Model)
下記のスクリプトがレベルⅢの機械要素モデルのスクリプトです.レベルⅡとの違いを見てみると,equationより上のエリア(緑色の箇所)は同じですが,equationから下のエリア(水色の箇所)では,レベルⅡでは力学的視点から,「平衡条件」と「連続条件」の連立方程式を記述したのに対し,レベルⅢでは単にconnect文で各コンポーネント(インスタンス)をそれぞれつないでいます.
なぜ単につなぐだけで支配方程式を表せるかというと,これはModelicaが各コンポーネント間をつなぐための「コネクタ」と呼ばれる特殊なクラスを用いたインターフェースを有しているからです.
下記のコネクタには,2つのコネクタ変数(アクロス変数とスルー変数)が定義されています.
このコネクタ変数を各インターフェース間でやり取りすることで,元の支配方程式と等価な連立方程式が作成されます.これらのコネクタ変数はシステム・アナロジーの概念に基づいて構成されており(システム・アナロジーについては,また後日記事をアップします)着目すべきは,このインターフェースの搭載により機械工学の手を離れModel-Based(モデルベース)でシステムを表現する事ができるようになった点です.
ここで力学的な知見の必要性が薄れたことが機械系の人に危惧を抱かせるかもしれませんが,機械工学からシステム工学へ確実にパスできるよう(奇妙なモデルが出来ないよう),これからの時代の機械系エンジニアは(煩雑な作業から解放される替わりに)対象機器に対するより本質的な理解が求められるようになると言えるかもしれません.
見通しの良さは
以上より,レベルⅢの見通しの良さは「Model-Based(モデルベース環境)のシステムの挙動がよく見える」というところでしょうか.
レベルⅣ: 生産性モデル(Production Model)
テキストビュー
下記のスクリプトがレベルⅣですが,レベルⅢとの相違点は「アノテーション(annotation)文」が追加された「だけ」です.
アノテーションは日本語で「注釈」と訳されるように,annotation文で指定した箇所は,シミュレーションの実行に影響を与えません.
[+]をクリックして,アノテーションを表示させると,例えば下記のようになっています.
annotation( Placement(visible = true, transformation(origin={0, 0}, extent={{-10, -10}, {10, 10}}, rotation=0)) )
- visible = true/false: 視覚表示のオン・オフ
- origin: 位置
- extent:大きさ(左上から右下の座標)
- rotation:回転
ダイアグラムビュー
をクリックしてダイアグラム・ビューを確認すると,下記のようなダイアグラムが自動的に作成されています.
レベルⅢで 各コンポーネントのコネクタをconnect文でつなぎましたが,ダイアグラムビューで表示されている接続線はこのconnect文が視覚化されたものです.
単にスクリプトを視覚化(ビジュアライズ)しただけですので,工学的には大してメリットがないように思えるかもしれませんが,業務の生産性を上げたりシステムを構築していくためには「視覚化」はとても大きな効果があります.同時にドラッグ&ドロップ等のGUIが使えるので,Modelica言語をよく知らなくても操作しやすくなります.システム設計のMBSE(Model-Based Systems Engineering)を適用する際にも有利です.
見通しの良さは
以上よりレベルⅣは,コンパイルレベルでのモデル自体は全くレベルⅢと同じですが,見通しの良さが視覚的に大きく向上しています.
レベルⅤ: 実務モデル(Practice Model)
ダイアグラムビュー
最後にレベルⅤを紹介します.(レベルⅠ~Ⅳまでは自分で作って来ましたが)レベルⅤは「ライブラリ(商用・無償を問わず)を用いたモデル」と定義しています.下記の例は,OpenModelicaに標準で付属しているMSL(Modelica Standard Library)のコンポーネントを使って作成したモデルです.もちろん得られる計算結果は,レベルⅠ~Ⅳと全く同じものです.
レベルⅤのライブラリを用いたモデルは,モデル自体の構成は基本的にレベルⅣと同じなのですが,そのほとんどが(クラスを入れ子にするなど)より複雑な作りになっています.
またこれらのライブラリには,標準のMSL以外にも,ユーザーにより提供されているオープンソース・ライブラリや商用のライブラリがあります.特に自動車などのメカ-制御を含むフルビークルモデルや大規模なアセンブリモデルを扱う場合は,商用ライブラリを活用することで操作性が向上し,モデルの保守性,再現性,利便性が上がります.
例えば業務用としては,下記のような産業用ライブラリ(モデロン社)があります.
レベルⅠ~Ⅴは混在できるか
もちろん混在できます.また実際は,業務中はレベルⅤのモデル(商用ライブラリ)を使っている事がほとんどだと思いますが,その既存機種のモデル(レベルⅤ)の中に,検討段階の機能をサブモデル(レベルⅠ~Ⅳ)として組み込んで検証する事などはよく行われます.
見通しの良さは
レベルⅤになると「見通しの良さ」という概念は,一言では言い表しずらくなるのですが,このレベルのモデルで最も重要なことは「実質的な成果を得る」ということです.1Dシミュレーションの目的(上流でのMILS適用を重視するのか,実装のためのHILS適用が目標なのか),実際の工数(モデルの使用者,適用範囲),必要とされる精度(フィージビリティスタディか運用設計か)など,適用範囲が広いだけに,プロジェクトが発散しないようリーダーの判断は重要です.
発生するトレードオフ
またよく起こる問題として,必要以上に詳細なモデルにすると当然計算時間が増加します.特に設計上流で使われることの多い1Dシミュレーションにおいて実行時間が長いのは好まれませんが,要求される精度を満たすためにやむを得ない場合もあります.またHILSではコントローラの性能も考慮に入れてモデリングする必要があり,その際にはモデルの計算ステップと実時間との整合性を合わせていく必要があります.それらを解決するために3D-CAEで詳細検証し,その結果を(例えば関数で表現するなどして)1Dモデルに適用することもあります.
また運用においては,自動車業界に限りますが経産省のSURIAWASE2.0構想に基づいたガイドライン(自動車開発におけるプラントモデルI/Fガイドラインver1.0)が公表されていますので,参考までに紹介しておきます.
まとめ
レベルⅠ~Ⅴを通してシンプルな支配方程式の記述からシステム運用のレベルまで,1Dシミュレーションの全体像を見てきましたが,レベルが上がる程良いモデルという訳ではないことは理解いただけたと思います.しかし高位のモデルが生産性や再現性に優れ,また機械系技術者だけでなく他分野の領域の人とも連携しやすくなるという視点で,ものづくりのブレークスルーともなり得る可能性を秘めていることには注目すべきでしょう.