COMSOL® で CAD ファイルの射影面積を計算する方法

2022年 1月 20日

CAD ファイルの射影面積を計算したいと思ったことはありませんか? これは, 空気抵抗の簡易的な推定など, 様々なケースで役立ちます. いくつかの方向に沿った射影面積を求めたい場合は, いくつかの方法がありますが, すべての可能な方向の射影面積を計算したい場合はどうしたらよいでしょうか? ここでは, そのようなデータを計算し, 利用するための効率的な方法について見ていきます.

いくつかの簡単なアプローチ

複雑な CAD ジオメトリを考えてみましょう. まず, 次のような質問が出てきます. このジオメトリの特定の方向に沿った射影面積はどのくらいでしょうか? これにはいくつかの方法があります. まず, 一般射影演算子を使用することができます. この方法では, ジオメトリ全体に対してボックスを描き, 解像度を上げるために非常に細かくメッシュを組む必要があります. メッシュ作成とドメイン全体の統合にコストがかかるため, この方法は非常に高価になります. 2つ目の方法は, バージョン6.0の新機能である3D モデルの射影を利用する方法です. この機能により, 空間にワークプレーンを描き, そのワークプレーンに3D CADファイルを射影することができます. この射影の面積は, 直接計測することができます. この CAD ベースのアプローチは, はるかに高速でメッシュ生成の必要がありませんが, CAD インポートモジュール, デザインモジュール, または LiveLink™ 製品が必要です. これらのアプローチは, 多くの異なる任意の方向に沿った射影面積が必要な場合, どちらも面倒です.

一般的な射影演算子 (左) とデザインモジュールの射影機能 (右) で決定された CAD ファイルの射影面積.
射影面積を求める2つの方法: メッシュに依存する一般射影演算子 (左) と, 一連のワークプレーンに射影表面を作成する射影機能 (右).

より一般的なアプローチ

CAD ファイルの体積をメッシュ化したり, CAD 操作を追加したりするのではなく, 射影面積の定義を利用します. これは次のとおりです.

A_{projected}= \int_A \cos\left( \beta \right) dA

ここで, \beta は視線と表面の法線との間の角度であり, その方向に沿って見える表面についてです.

表面積分を取るのはとても簡単ですが, \cos \left( \beta \right) の項はどのように評価すればよいのでしょうか? この項は, 無限距離型の外部輻射源を使用した場合, 表面‐表面輻射インターフェースを介して得られることがわかりました. この計算には, 体積ではなく, パーツの表面のみのメッシュが必要です. この入射外部流束は, シャドウイングとともに前処理として計算されるため, 表面‐表面輻射を解く必要もありません. したがって, すべての表面に対する外部流束を積分し, 公称入射流束で割れば, 外部輻射源機能に入力した任意の方向に沿った射影面積を得ることができるのです. デフォルトで4次のガウス積分を使用しているため, かなり粗いメッシュを使用することができます.

外部輻射源機能を示す設定ウィンドウのスクリーンショット.

外部輻射源機能を使用すると, 射影面積を計算するためにジオメトリの照射を設定することができます.

外部輻射線源機能で事前に計算された入射流束で決定された射影面積.
外部輻射源機能で事前に計算された入射流束を積算して, 射影面積を得ることができます. 翼のシャドウイングに注意してください.

全方向にわたる射影面積データの抽出と利用

多くの場合, 全方向からの射影面積を抽出する必要があります. さて, 上記の積分を任意の入射方向について再評価すればよいのですが, これにはかなりのコストがかかります.

その代わりに, オブジェクトを取り囲む球体を想像し, その球体上でオブジェクトを照らす有限数の方向を選択します. それらの有限数の方向の間で, 球面全体に対して線形補間を行います. しかし, 方向を選択する前に, 射影面積は周囲の球の中心を通るどの平面に対しても対称になること, また, ここで扱う CAD ジオメトリは正中面に対して対称であることに注意しておく必要があります. したがって, この二つの対称性を利用し, 空間の正の xy 象限にある1/4球のみを考慮することは理にかなっています.

次に実行するのは, 次の手順です:

  1. CAD パーツの対称性を利用したジオメトリの作成, 有限の点数での視線方向の定義
  2. その方向に沿った射影断面積の算出
  3. すべての中間方向へのデータの補間
  4. このデータの抽出

まず, 下図のような非常に特殊な種類のジオメトリを作成します. このジオメトリは, 1/4球のメッシュのように見えますが, まず単位球の一部のメッシュを別途作成し, そのメッシュをエクスポートして, モデルの2つ目のコンポーネントにインポートすることで作成されたものです. インポート設定は, 表面メッシュの各要素が個別の表面であり, 各ノードがジオメトリ点であるような設定になっています. この表面は空間の正の xy 象限に位置しています.

インポート設定の画面 (左) と, それぞれ異なるフェースを表す要素を持つメッシュ (右) .
各要素が異なるフェースを表すように設定されたメッシュをインポート.

これらの点は, 射影面積を評価するためのサンプリングされた方向の1つを表していることになります. これらの点の間の各三角形パッチに対して, 線形有限要素基底関数を用いて面積を線形補間し, あらゆる入射角からの射影面積を近似できるようにします.

このために, 1/4球モデルのすべての表面に対して係数形式境界 PDE を追加し, 離散化を線形に設定し, 従属変数の名前を AREA に設定します.

補間の実装に使用される係数形式境界 PDE インターフェースを示す設定ウィンドウのスクリーンショット.
補間を実装する係数形式境界 PDE インターフェースの設定.

このインターフェースでは, ジオメトリのすべての点に点拘束機能を適用します. これは, すべてのノード点がジオメトリ点にあるため, 問題を完全に拘束する効果があります. これらの設定による正味の効果は, 他のすべてのフィジックス設定は何の効果もなく, デフォルトのままでよいということです. 結果的に得られる解は, 各表面の角にある拘束されたノード値間の線形補間です.

係数形式境界 PDE インターフェースのポイントごとの拘束機能を示す設定ウィンドウのスクリーンショット.
モデル上のすべての点に点拘束を適用.

そのため, 各点で, その離散的な視線方向における射影面積を設定する必要があります. そのために, 次の制約式を使用します.

AREA-nojac(if(dom==INDEX,comp1.intop1(rad.Gext/1[W/m^2]),AREA))

各点に AREA の値を設定するこの式を解いてみましょう. まず, 式全体がゼロに等しくなければならないため, AREAnojac() 演算子内の式と等しくなるように設定されます. この演算子は, その中の式がヤコビアンの寄与を加えないことを意味します. これについての詳細は, シンボリック微分によるモデル収束の加速に関するブログをご覧ください. この演算子の中に if(logical expression, true, false) いうステートメントがあります. このステートメントは dom==INDEX という論理式から始まります. 各ジオメトリオブジェクト (ドメイン, 境界, エッジ, 点)には, ドメインインデックス dom という一意の整数が付けられています. これから実行するスタディでは, このジオメトリ内のすべての点について, グローバルパラメーター INDEX に対する補助的なスイープを実行します.

このスイープの間, 論理式の評価が偽の場合, AREA 変数は単に変更されないままです. 論理式が真の場合, 射影面積, つまり遮蔽された流束を入射流束で割った積分が得られます. 積分演算子 comp1.intop1() は, CAD ファイルのすべての露出面に対して, 最初のコンポーネントで定義されています. しかし, この積分が評価されるとき, 第1コンポーネントの外部輻射源機能は, 第2コンポーネントの点に対応する方向をどのように認識するのでしょうか ? そこで, 2つ目のコンポーネント内のすべての点に対して2つ目の積分カップリング変数を使用し, それを外部輻射源方向フィールドに使用します.

comp2.intop2(x[1/m]*(dom==INDEX))

この式の読み方は, 第2コンポーネントである x 位置(または y 位置, z 位置)のすべての点にわたって評価し, それに (dom==INDEX) を乗じると, 0または1になるというものです. つまり, 下のスクリーンショットに示すように, 現在インデックスされている点に対してのみ, その点を指向する照明ベクトルを評価することになります.

コンポーネント1の外部輻射線源機能を示す設定ウィンドウのスクリーンショット.
第1コンポーネントでは, 第2コンポーネントでジオメトリによって定義された点位置に基づいて, 入射輻射方向が設定されます.

次に, インデックス変数のすべての値についてスイープしたいのですが, これは, 補助スイープを含む定常スタディステップで行います. このスタディでは, 入射流束は前処理ステップであるため, 表面‐表面輻射を解く必要はありません.

補助スイープを含む静止スタディステップを示す設定ウィンドウのスクリーンショット.
インデックス変数についてスイープすると, 射影面積が得られます.

スイープの最後の値だけがすべての結果を含んでいるので, この最後の解を除いてすべてを破棄することができます. これは, 以下のスクリーンショットに示すように, 解の結合スタディステップで行うことができます.

スイープで最後の解を保持するために使用する解の結合機能を表示した設定ウィンドウのスクリーンショット.
解の結合機能を使って, 最後の解だけをスイープで残します.

次に, このデータの使い方の例として, 時間依存ステップを用いた2つ目のスタディを使用します. ここでは, 飛行機軸\phiと上向き角\thetaとを定義する方向に位置合わせされた球面座標系で, 球面上に点をトレースします.

CAD モデルと, 点の集合で表現された射影面積.
CAD モデルと離散方向に沿った射影面積. 一連の点で表され, 表面上で補間される. この表面上にトレースされた線に沿った場の値は, 球面座標系について一般押出演算子を介して評価することができます.

一般押出演算子を表示した設定ウィンドウ.
球体表面の補間データから, 一般押出演算子でデータを抽出.

球面座標系で, この球面上の任意の位置からデータを抽出するには, 解の対称性を考慮する行先マップ式の変数を入力することで, 一般押出演算子を動的プローブとして使用することができます.

最後に

CAD ファイルの射影面積を計算するには, いくつかの方法があります. ここでご紹介した3つの方法のうち, 一般射影演算子を使用する方法は, ドメイン上で積分し, 周囲のドメインで細かいメッシュを必要とするため, 最も計算量が多くなります. したがって, 他の2つの方法が使用できない場合にのみ使用しましょう. 2 番目のアプローチは, 射影機能を使用した, CAD ベースの操作です. 直感的で正確, かつメッシュに依存しませんが, 射影方向ごとに手動で設定する必要があります. 最後の方法は, 表面‐表面輻射インターフェースを使用するもので, 設定は最も複雑ですが, 方程式ベースのモデリングにデータを再利用する際に, 非常に柔軟性に富んでいます. このアプローチを示すファイルは, こちらからダウンロードできます.

コメント (0)

コメントを残す
ログイン | 登録
Loading...
COMSOL ブログを探索