電磁界/熱伝導シミュレータ解説#
本WEBで公開している電磁界/熱伝導シミュレータ(MagCat/ElecCat/ThermoCat)についての解説やQ&Aです。気が向いたら書き足していきます。
共通#
グリッドを細かくすると、精度が上がる?#
結論としては、「理論上はグリッドを無限に細かくすれば、正解(マクスウェル方程式の厳密解)に収束します」
本ツールはFDM(有限差分法)のアルゴリズムを使用しており、物体や空間を正方形のグリッドで区切りモデルを表現しています。ところが、円形や斜めの線がある場合、これを正確にモデル化するためにはグリッドを無限に細かくする必要があり、計算量(計算時間)が爆発してしまいます。
本ツールでストレスなく遊ぶには、グリッドは160x120程度で操作するのが良いかと思います(PCのスペック等によります)。
電波や電磁波・EMC等をシミュレーションできますか?#
いいえ、できません
本ツールは静電場/静磁場等(static)を対象にしています。周波数や時間変化が絡む現象はシミュレーションできません。 周波数や時間変化を取り扱うには、通常FDTD法(Finite-difference time-domain method)などが用いられます。
例えば電磁界ノイズを取り扱うことはできませんが、静電場/静磁場でもシールドの検討や効果検証などには役立つはずです。
本ツールでは条件や物体物質などを変更するとアニメーションのように結果が変化しますが、これは時間変化を表しているのではなく、計算過程が表示されている(正しい結果になるように微調整を繰り返している)に過ぎないことに留意ください。
市販静電磁界/熱シミュレータとの違い#
商用ソフト(Ansys, JMAGなど)の多くは、FDMではなく 有限要素法(FEM: Finite Element Method) を採用しており、恐らくFEMの方が優れています。
本ツールでは正方形のグリッドを使用してモデル化していますが、FEMでは三角形を利用してモデル化(メッシュ化)しています。またこのメッシュのサイズは好きなサイズで定義できます。これにより何もない空間は大きなメッシュで計算量を減らし、着目したい点や複雑な曲面などは細かいメッシュで正確に計算する、などの処理が可能です。通常FEMのソフトはモデルから最適なメッシュを自動で作る機能があります。私個人的には、電磁界計算部よりもこのメッシュ生成のソフトウエアを作るほうが大変な気がしています。
本ツールの計算アルゴリズムは、「隣のセルの値を見て、自分の値をちょっと修正する」を何千回も繰り返して正解にじわじわ近づけていく方法です。グリッドが増えると計算時間が爆発します。ところが商用ソフトは、モデルを連立方程式(行列)として組み上げ、行列計算により超高速に一発で(CG法など。まあこの計算もループがあるが)解を導き出します。
そのほか、商用ソフトは渦電流やヒステリシスを正確に扱ったり、モータやトランスの挙動解析に特化した機能がたくさんあります。
業務や研究等で正確な電磁界計算を行うならば、本ツールではなく商用ツールを使用したほうが良いと思います (羨ましいほど高価ですが!) 。ただし上記のような違いを理解頂いた上でなら、本ツールも業務でも十分活用できます。
なぜ静電磁界+熱伝導?#
元々欲しかったものは磁界シミュレータなのですが、内部の計算ロジックはほぼそのままで、物理量を置き換えれば簡単に磁界シミュレータから電界シミュレータや熱伝導シミュレータが作れてしまいます(物理手的なアナロジー(相似性)と呼ばれます)。
磁界計算では、ポアソン方程式\( \nabla^2 \phi = -S \)を解いていますが、このソルバ(計算コード)がそのまま流用できます。
| 物理現象 | 計算する場 (\( \phi \)) | 媒体の定数 (\( C \)) | 源 (\( S \)) | 物理法則 (数式は同じ) |
|---|---|---|---|---|
| 静磁場 | 磁気ベクトルポテンシャル \( A \) | 透磁率 \( 1/\mu \) | 電流密度 \( J \) | \( \nabla \cdot (\frac{1}{\mu} \nabla A) = -J \) |
| 静電場 | 電位 (電圧) \( V \) | 誘電率 \( \epsilon \) | 電荷 \( \rho \) | \( \nabla \cdot (\epsilon \nabla V) = -\rho \) |
| 熱伝導 | 温度 \( T \) | 熱伝導率 \( k \) | 発熱量 \( Q \) | \( \nabla \cdot (k \nabla T) = -Q \) |
| 定常電流 | 電位 \( V \) | 導電率 \( \sigma \) | 電流源 \( I \) | \( \nabla \cdot (\sigma \nabla V) = -I \) |
各々計算や可視化などに少しの工夫はありますが、ほぼ同じソフトウエアで作られています。市販ソフトもこのラインナップであることが多いです。
「共有リンク」で生成されるURLについて#
「共有リンク」で生成されるURLには、モデルの情報が直接記述されます(GET方式)。モデル情報が弊社サーバに残ることはありません。
GETの中身は、モデル情報(計算結果は含まない)を、簡易的なランレングス法で圧縮し、さらにJavascriptのgzip APIでgzip圧縮し、base64にエンコードしたものです。
データ共有のほかに、データ保存の用途にもご利用ください。
磁界シミュレータ(MagCat)について#
永久磁石のモデル化について#
永久磁石をモデル化しようとした場合、最初はモノポール(磁荷:電界計算の電荷に相当するもの)を配置してモデル化しようと考えていましたが、一般的にはEquivalent Current Model(等価電流モデル?)を使うのが一般的だそうです。
計算上では、永久磁石(フェライトやネオジム)は、「表面に電流が流れているコイル」と数学的に等価となります。
- N極が上にある磁石:
- 磁石の側面をぐるりと電流が流れているとみなせます。
- 2次元断面で見ると、「左端に手前向き(\( \odot \))」、 「右端に奥向き(\( \otimes \))」 の電流を配置すれば、真ん中から上に向かって磁束が噴き出す「磁石」になります。
- 透磁率:
- フェライトやネオジムなどの永久磁石の透磁率は 空気とほぼ同じ \( \mu_r \approx 1 \) です。(鉄のように磁束を吸い寄せるのではなく、自ら生み出すため)。
本ツールでは、永久磁石をモデル化する機能を持っています。これで磁石を描くと、空芯コイルのような形状が作成されます。棒磁石は作りやすいのですが、U字磁石はモデル化ができない(面倒)です。
電界シミュレータ(ElecCat)について#
まだコンテンツはありません
熱伝導シミュレータ(ThermoCat)について#
対流/空間放熱の処理について#
電磁界シミュレータの流れで熱伝導シミュレータを作った際、放熱を考えないと温度が上昇し続ける現象が起きてしまいます。現実的には空間を満たす空気の対流により、物体が冷やされることである温度に落ち着きます。
私は熱伝導シミュレータは商用製品を触ったことが無いのですが、それらはナビエストークス方程式に則って、空気の温度変化からなる密度変化による風(浮力)で対流をシミュレーションし、冷却作用を行っているのでしょうか…?それは大変すぎる気がします。
本ツールでは、ニュートン冷却の法則を、「周囲の温度差が大きいほどたくさん熱が逃げる」とかなり簡略解釈し、
// tNew = 計算により求める新しい温度
// ambient = 室温25℃
// coolingCoeff = UIで指定した冷却係数
tNew -= (tNew - ambient) * coolingCoeff;のように単純に冷却を表現しています。
ここでcoolingCoeffは何の根拠も無いまま、それらしい値として標準値を設定しています。強制空冷(ファンで冷やすなど)の場合はこの係数を大きくします。
シミュレーションで温度℃を得るには、この係数を適切に設定する必要がありますが、かなり困難です。