高校物理、大学受験、大学物理、プログラミングの記事を書きます。

1D CAEを使って設計する目的を超初心者が語ってみた。※書きかけです(‘ω’)ノ

2019/11/02
 
この記事を書いている人 - WRITER -

こんにちは(@t_kun_kamakiri)(‘◇’)ゞ

最近、モデリカのためのオープンソースであるOpenModelicaとか使って遊んでいます。

OpenModelica公式サイト

カマキリ
「1D CAE」はまだ深く理解していない今日この頃(^^)/

本記事の本筋は以下の内容です。

本記事の内容
1D CAEを使って設計する目的とか考えてみたよ(^^)/

 

さらにOpenModelicaって何だろうか?というのも話したいと思います。

はじめてのModelicaプログラミング -1日で読める わかる Modelica入門- (MBD Lab Series)

はじめてのModelicaプログラミング -1日で読める わかる Modelica入門- (MBD Lab Series)

広野 友英
2,420円(11/22 05:27時点)
発売日: 2017/10/20
Amazonの情報を掲載しています
Modelicaによるシステムシミュレーション入門 MBD Lab Series

Modelicaによるシステムシミュレーション入門 MBD Lab Series

PeterFritzson
発売日: 2015/06/20
Amazonの情報を掲載しています
スポンサーリンク

OpenModelicaってなんだろう?

 

OpenModelicaはGUI 上でコンポーネントを組み合わせてシステムを表現することができます。

カマキリ
言ってることが良くわからない人は、「1D CAE」や「MBD」というワードで調べてみましょう(^^)/

システムをプロセスごとに分解することで、設計の機能を知るための、

  • モデルベース設計(MBD)
  • 1Dシミュレーション(1D CAE)

の実行、結果の表示がOpenModelicaできるということです。

↓モデルサンプルはこんな感じです(^^)/

以下、※出展:Modelica – Wikiより

Modelicaは、オブジェクト指向のマルチドメイン・モデリング言語です。

他分野に跨る複雑なシステムのモデリング(例えば、機械、電気、電子、油圧、熱、制御、電力、プロセス指向のサブコンポーネントを含むシステム)に最適で、特に物理現象を表現するモデルの構築で使われています。オープンソースである為、特定のツールに依存することなく資産の共有また開発が出来ます。言語仕様やメンテナンスは非営利国際組織のModelica協会によって行われており、標準ライブラリとしてフリーに公開しています。

 

カマキリ
ふ~んって感じです。

 

急にどうしてOpenModelicaと使おうと思ったのか?

 

カマキリ
急にOpenModelicaで1D CAEとかやってみたくなりました。

 

昨今、

  • CAE解析を使った効率化・精度アップ・・・
  • AIブームによる「CAEで機械学習を使った最適化」・・・

みたいな話題もチラホラありますね(‘ω’)

 

カマキリ
流行りってやつですかね
  • 機械学習を使った最適化問題
  • 並列化しまくって何憶もの要素数にメッシュを切ってPCのパワーで解く
    などなど・・・

PCのスペックをフル活用してCAE解析を行っているというのも多くなってきているように感じます。

しかし、PCのパワーを使ってCAE解析をやると実現象を再現できて、効率よく設計ができるという錯覚に陥っている設計者も多いのではないでしょうか・・・・・

そう思う今日この頃(‘ω’)

それは完全に誤った考え方です。

CAEはあくまで設計のサポートであって、実験の代替えではないからです。

CAE(英:Computer Aided Engineering)はコンピューターによる技術・設計支援サポートの意味であり、本来の目的は設計のサポートです。

それが、なぜか実験を再現する素晴らしいツールという認識されがちです・・・

仕方がないことですが、上記のような「CAEは実機の代替え」という考え方がどれだけ愚かな事かというのは、以下の流れを見ればわかります。

実現象からCAEでモデルを作って再現するためのフローは以下のようになっています。

↑これを見るとCAEはツールであることがよくわかると思います。

CAE解析で実現象をモデル化するまでに、いくつもの”仮定や近似”を含んでいます。

そういった状態で「要素数だけを意識する」というのは良くないということになります。

※すべてが良くないとは言えません。「この数理モデルを解くには最低限これくらいの要素数が必要」という認識のもとであればPCでゴリゴリ解くのも良いかなと思います。

 

並列化しまくって何憶もの要素数にメッシュを切ってPCのパワーで解く

↑この考え方は、詳細に・詳細に・詳細に・・・実現象を再現する方向性で、詳細になればなるほど、理論は複雑になってしまい、

「やったー(^^)/実現象を再現できた!!バンザーイ(‘ω’)ノ」

と、仮になった場合でも、詳細すぎて「何が何とつながっていて、どう影響し合っているのか」が不明確になります。

 

そんな中、

むしろ、少ない情報・簡易モデルで多くの情報をサクッと得る方がむしろ賢いやり方である場合もあります。

それがシステムをプロセスごとに分解して機能を考えるのに注力を注いだ1D CAEです。

そして、1D CAEなら今回使ってみよう考えているOpenModelicaなら可能なのではないかなと思い、使い始めました(^^)/

お金はないのでオープンソースのOpenModelicaなら商用顔負けの実力を発揮してくれると期待しています。

 

システムをプロセスに分解して数式ベースでつなげよう

 

前章では、「上流段階から適用可能な設計支援の考え方、手法、ツールとして1DCAEが提案されています」というお話をしました。

ここで言う、1Dは特に一次元の数式モデルを対象にしているという意味だけではなく、物事の本質を的確に捉え、見通しの良い形式でシステムをプロセスでシンプルに表現することを意味します。

つまりは、システムをプロセスごとに数式ベースでつなげていくという考え方です(^^)/

例えば、超簡単な例として「バネが振動するモデル」を考えることにします。

 

1次元バネモデル

\begin{align*}m\ddot{x}=-k(x-x_{0})\tag{1}\end{align*}

1次元のバネモデルは\(m\ddot{x}=-k(x-x_{0})\)ですが、各パーツごとに何が変数の引き渡しになっているのかを意識すると、以下のプロセスでつながっていることが理解できることでしょう。

  1. \(f=-k(x-x_{0})\):変位\(x-x_{0}\)から荷重\(f\)を生成
  2. \(ma=f\):荷重\(f\)から加速度\(a\)を生成
  3. \(\frac{d^2 x}{dt^2}=a\):加速度\(a\)が位置\(x\)を生成

バネモデル自体はとても単純なモデルなのですが、このように無理やりシステムとしてプロセス分解して考えることもできます。

これがもっと大きなシステムになったときもこのように各部分ごとに「何がインプットされて何がアウトプットされているのか」、「何の変数を次のプロセスに引き渡しているのか」を考えることができます。

1D CAEは機能を考えるもの

 

例えば、設計の初期の段階(開発の初期の段階)は、形が無い状態からスタートすることになるため、「何がしたいのか?」「それは可能なのか?」ということだけを意識することもあるでしょう。

この「何がしたいのか?」という問いかけが、「モノの機能」を考えることになります。

※注意
「機能=どうしたいのか?」を考えがちですが、間違った考え方になります。

カマキリ
機能を考えていて泥沼に入らないように・・・

つい「機能=どうしたいのか?」と考えがちですが、「どうしたいのか?」の果ては・・・・結局「っで?何がしたかったっけ?」です(笑)

目的が手段に変わる典型的な例となります(笑)

 

 

 

この記事を書いている人 - WRITER -

コメントを残す

Copyright© 宇宙に入ったカマキリ , 2019 All Rights Reserved.