Darkside(https対応しました)

2019年2月21日(木) 21:40

形状定義

 手始めに解析するのは、単段式コイルガンの初期状態だ。

 内径12ミリ、外径22ミリ、長さ10ミリのコイル。
 そこに直径11ミリのパチンコ玉が、半分だけ入り込んでいる。

 ここでコイルに電流を与えた場合、パチンコ玉にはどれだけの吸引力が働くのだろうか?

 知りたいのは、たったそれだけ。
 しかしこんなシンプル極まる道具立てにも関わらず、解を得るのは想像を絶するほど困難である。磁界が鉄球に与える力について自分なりに調べてみたが、絶望しかなかった。

 コイルガンをシミュレーションしようという野望は、だいたいここで挫折する。

 コイルが発生させる磁場は単純だが、鉄球が存在すると一気に話がややこしくなる。かと言って鉄球を無視すれば、現実と掛け離れた結果しか得られない。それはコイルガンに使用するスイッチング素子のスペックを決める程度の役には立つが、それまでだ。

 まずは解析ソフトを使用し、この状況を計算させてみよう。

 最初に行うことは、コイルと鉄球の形状および位置を解析ソフトに与えることだ。ADVENTURE の標準手順だと、CADソフトで作図後それを IGES 形式で出力し、読み込ませる。
 ところが ADVENTURE は気難しく、大半の IGES データーを読み込んでくれない。極めて限定された仕様の IGES だけに対応しており、調べた範囲では ADVENTURE が読み込み可能な IGES 形式を出力可能なCADソフトは、有料のものしか存在しない。

 無料ソフトで解析を行おうとすれば、CADソフトは使用できない。

 よって、ADVENTURE に形状を与える方法は1つしかない。gm3d という ADVENTURE 独自形式に従って形状をテキストファイルに記述し、ソレを読み込ませる。残念なことに、gm3d 形式の仕様だけは日本語ドキュメントが無い。ここが参考になる。
 もちろんここでも、多数の落とし穴が待ち受けている。

・gm3d ファイルは、物体ごとに1つずつ別ファイルとして作成せねばならない。
・単位はメートルだという事実。11ミリとは、11 ではなく 0.011 である。
・box だが、「頂点のうち、最小座標/最大座標」とあるのは誤り。正しくは、「最小座標/サイズ」である。
・回転は常に360度であり、部分的な回転はできない。
・回転体は回転させた結果として重複してはならない。円を回転させた場合、180度で球体が完成する。360度回転させると、重複してエラー。
・球体の中心座標は原点(0,0,0)に固定すること。これは、ADVENTURE のとある弱点を回避するために必須である。
・円弧や曲面は定義できない。すべて多角形で近似される。

 球体を定義するには、円を定義し、円の半分を隠す多角形を定義し、差集合演算。最後にそれを回転させる。CADソフトなら当然に存在する「球の定義」一発という機能は無い。
 素直に考えると、コイル座標は固定しておき、パチンコ玉の座標を動かしつつシミュレーションを繰り返したい。だが、そういう情報の与え方はできない。与えることはできるが、高確率でエラーの原因になる。だからパチンコ玉を原点固定し、調整はコイルの座標で行う。

 球体を定義した ball1.gm3d ファイル。

 わざわざ形状をテキストファイルに記述するのは一見面倒だが、コイルと鉄球が1つずつしかない単純なモデルの場合、むしろCADソフトでいちいち作図する方が面倒だ。たったこれだけの解析がどれほど面倒かを知れば、ADVENTURE の仕様がむしろ合理的に感じられる。gm3d 形式で記述が困難な大規模問題など、そもそも無料ソフトで3次元静磁場解析するようなものではない。

 さて、無料ならではの ADVENTURE の恐怖は、まだここから始まる。今までは、前座だ。
 素朴に考えると、解析に必要な形状データーは3つである。
1)解析対象空間の定義。
2)コイルの形状を、1)内部のどこかに定義。
3)球体の形状を、1)内部のどこかに定義。

 しかし、そんな分かり易い定義が許されるのは、有料ソフトの特権らしい。ADVENTURE も形状データーが3つ必要なのは確かだが、それは以下の3つである。
1)空気の形状と位置。
2)コイルの形状と位置。
3)球体の形状と位置。

 大した差が無いように感じるかもしれないが、ADVENTURE に読ませる形状データーは一部でも重複してはならない。更に、重複だけでなく隙間ができてもいけない。何と言う注文の多い料理店。
 だから「空気の形状」とは「解析対象空間から、コイルと球体を取り除いた部分」のことである。

 そして、円弧や曲面は定義できず多角形近似です。重複や隙間が存在すると判定されると、エラーになっちゃいます。恐怖ですね。コイル側壁の曲面ならまだしも、球面なんてマトモに判定してくれません。だから、少しでも計算誤差を減らすべく、球体は中心を原点にしておかねばならない。付け加えれば、原点ならエラーが出ないという保証はない。パラメーターによっては、エラーになる。

 続いて、コイルを定義した、coil1.gm3d ファイル。コイルガンの銃口が、Z軸プラス側になるよう定義する。

 最後に、空気を定義した、air1.gm3d ファイル。
・解析対象空間を box で定義。
・球体定義をコピペ。
・subtract と記述。
・コイル定義をコピペ。
・subtract と記述。

 これで、サクっと完成する。

written by higashino [コイルガン設計] [この記事のURL] [コメントを書く] [コメント(5)] [TB(0)]

この記事へのトラックバックPingURL

Comments

『gm3d』

初めまして。
大学生4年工学系学科所属の者です。

現在、私は卒業研究でアドベンチャーマグネティックを使用しております。

一つ質問をさせていただきたいのですが、よろしいでしょうか?

約2年前の記事に申し訳ありません。

written by Shimamura Kentaro

『質問は構いませんが』

回答できる保証はありません。
この手のシミュレーションは、とっくに投げ出してます。
プロの理系ではないので、とてもじゃないが手に負えません。

written by IDK

『タイトルなし』

ご返信ありがとうございます。

現在、私は卒業研究で磁気刺激について研究をしています。
その研究内容としましては、腕にコイルによって磁気刺激を行う上でどのようなコイルが局所的に刺激できるか、という内容です。

その磁気刺激のシミュレーションを行う上でこのアドベンチャーマグネティックを使用しております。

そこで、gm3d形式で様々なコイルモデルを作成している段階なのですが、八の字コイルを縦方向に角度をつけたコイルモデル(URL先の消耗品の110mmダブルコーンコイルの形)を作成するのに手間取っています。

そこで質問なのですが、gm3dの仕様の円を描写する際に使う「circle」についてお聞きしたいです。

circleの半径ベクトル、法線ベクトルについて解説していただくことは可能でしょうか。

長々と申し訳ございません。

よろしくお願いいたします。

written by Shimamura Kentaro

『申し訳ありません』

座標作成は手計算とメモで何とかやっていた状態です。
球体と円筒だけで精一杯です。

角度の付いた8の字コイルとなると、そもそも法線座標なんて三角関数使って電卓叩くのか?みたいな環境でデーター作ってやってました。
理系大学生の方がマシな環境だと思います。
それを何とかできたとしても、たぶん動きません。記事に書いた理由により、計算誤差のせいで物体重複が不適切になり、エラーが出るのがオチです。

3次元の磁場解析を、無料ソフトでやろうというのは無謀も無謀。
大学の研究室や企業の研究所が購入するような有料ソフト(個人でも購入可能だが途轍もない金額)の領分だと思います。

written by IDK

『ご返信ありがとうございます。』

ご返信ありがとうございます。

なんとか角度をつけた八の字コイルのモデルを作成することができました。

一応研究室にはPHOTOシリーズという有料の三次元解析ソフトがあるのですが、教授のごり押しを受けまして、このアドベンチャーマグネティックで解析しております笑

あと一ヶ月ほどで卒論を完成させなければいけないのでがんばります。

今回は私の勝手な都合に対応していただき、本当にありがとうございました。

written by Shimamura Kentaro

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4