自動計算・最適化

翼型の自動選定と GA 探索、揚力線理論の比較、飛行経路最適化

自動計算(U) メニュー

・滑空機シム+最大飛距離 翼型計算…

4 段平面形の各断面に翼型データベースの翼型を割り当て、 XFOIL で各断面のポーラを事前に計算してから、非線形 3DOF で 10 m からの滑空を計算します。

結果は 2 つのグラフで表示されます。

飛行軌跡水平距離と高度の関係
ピッチ角・合成速度時間に対するピッチ角と対気速度の変化
Reynolds 数は自動で決まります。 4 段平面形の各断面の翼弦長と、滑空機のシム滑空速度から自動算出されるので、 手で指定する必要はありません。

本プログラムの中でもっとも自動化が進んだ機能です。 翼根の翼厚を指定するだけで、あとは全自動で最良の機体を探します。

処理の流れは次のとおりです。

  1. 翼型の絞り込み … 指定した翼根翼厚 ± 許容幅で翼型データベースを検索し、 翼厚が近い順に候補を選びます
  2. XFOIL 事前解析 … 候補翼型を、迎角範囲 × Reynolds 数範囲でまとめて解析し、 断面ポーラ表を作ります
  3. GA 探索 … 4 段それぞれの翼型・取付角・コード長・上反角を遺伝的アルゴリズムで振りながら、 非線形 3DOF の滑空距離を並列で評価します
  4. ランキング … 飛行距離の大きい順に並べ、autocalc.db へ保存します

パイロットの体重と機体重量は決定済みの固定条件として扱い、 翼まわりの諸元だけを変化させて探索します。

・0.06 の土台機体・計算結果の登録

下側の「機体データベース」タブで機体を選び、「選択行機体を読み込む」を押すと、 その胴体・尾翼・飛行性能を保持して主翼だけを探索します。翼幅・機体重量・翼根翼厚も読み込まれます。 「内蔵の既定グライダーに戻す」で既定の土台へ戻せます。

「保存済み (autocalc.db)」タブで行を選び、「選択行を機体データベースへ登録」を押すと、 多段平面形・各段翼型・上反角・質量・翼厚をグライダー DB の機体にできます。 計算の距離・滞空・角度をメモに残します。新しい記録は平面形そのものを保存します。 旧記録の区間中央翼弦から折れ点を復元した場合は、翼面積が少し変わることを登録時に表示します。

探索中も他のモードを使えます。 ウィンドウを閉じても計算はバックグラウンドで走り続けます。 進み具合と停止ボタンは画面下のステータスバーに出るので、 モードを切り替えてもそこから止められます。
全翼型バッチ解析・GA最適化とは同時に走りません。 どれも CPU のコアを目いっぱい使う並列計算だからです。 バッチ解析とぶつかったときは、どちらを続けるか尋ねるダイアログが出ます。 GA最適化が動いているときは「ほかの計算が実行中です」と表示され、開始しません。 → 並列計算について

・揚力線理論群全計算+比較…

12 種類の揚力線理論を同じ条件でまとめて計算し、翼幅荷重分布を 1 枚のグラフに重ね描きします。 手法ごとの違いを見比べたいときに使います。

手法出典
SchrenkNACA TM-948
谷の平均値法谷一郎「主翼の壓力分布を簡單に計算する方法」
Lippisch Verfahren zur Bestimmung der Auftriebsverteilung längs der Spannweite
Lotz Berechnung der Auftriebsverteilung beliebig geformter Flügel
Prandtl フーリエ級数『航空力学の基礎』第3版
MutterperlNACA TN-834
Falkner The Calculation of Aerodynamic Loading on Surfaces of Any Shape
Multhopp Die Berechnung der Auftriebsverteilung von Tragflügeln
線形 WeissingerNACA TM 1120
Weissinger-L 法NACA TM 1120
Sivells–NeelyNACA TN-1269
Wickenheiser・Garcia Aerodynamic Modeling of Morphing Wings Using an Extended Lifting-Line Analysis

比較を成り立たせるため、零揚力角と揚力傾斜はすべての手法で同じ値を使います。 手法ごとに違う値を使うと、CL が 2 群に分裂して比べられなくなるためです。

・グラフと表の連動

計算後に手法のチェックを外すと、グラフから対応する曲線が消えます。 チェックを戻すとまた表示されます。線が混み合って見づらいときにお使いください。 非表示にした手法は、表の行も灰色になります。

最適化(O) メニュー

飛行経路そのものを最適化して、10 m からの飛行距離を最大にする操縦を求めます。

項目内容
SCGRA2 — 10 m 飛行距離最適化 逐次共役勾配復元法(Sequential Conjugate Gradient-Restoration Algorithm)による最適制御
SCGRA3 — 原田・別府・東 1996 論文モデル 論文のモデルをそのまま実装したもの
DCNLP — 10 m 飛行距離最適化 直接コロケーション非線形計画法(Direct Collocation NLP)
GA最適化 — 滑空距離最大化(NLFS6) 機体データベースの機体を 6 自由度モデルで飛ばし、操縦のしかたを遺伝的アルゴリズムで探します。 → GA最適化

注 有料版:最適化 → 「QPSO+VLM(有料版実装)」を開き、目標 CL・格子数・粒子数・世代数・ねじり上下限を設定して 「QPSO+VLMを実行」します。現在の機体の最小誘導抗力のねじりを探索し、CL/CDi・評価回数・翼根〜翼端のねじりを表示します。 機体データへの自動書き戻しはありません。

注 有料版:「IVLM と QPSO+VLM の比較(有料版実装)」では、現在の機体・AR=8 矩形翼・30°後退検証翼を選び、 同じ目標 CL と格子で「比較を実行」します。未最適化/QPSO/IVLM/理論値と論文値、計算時間・評価回数、ねじり・翼幅荷重・収束を比較します。 「CSV保存…」で表を出力できます。

GA+αFOIL(GAXQ):ωSIM の翼型最適化

注 有料版:GAXQ は ωSIM に統合された機能です。最適化メニューの「GA+αFOIL(GAXQ)(有料版実装)」、 または airfoil 解析の「GAXQ起動」を押します。機体モデルは不要です。 airfoil 解析のボタンから新しい GAXQ 画面を開くと、一覧の選択翼型を第1基底へ渡します。既存画面の再表示では探索状態を保持します。 粘性探索には別途用意した XFOIL 実行ファイルが必要です。

  1. 注 有料版:基底の選択。 第1〜第4翼型のプルダウンで DB 翼型を選びます。「第n翼型を開く」で DAT を読み込めます。 混合係数・基底点・追加キャンバー・翼厚倍率を編集できます。
  2. 注 有料版:条件と評価。 迎角・Re・目標 CL/翼厚・Cd/Cm 係数・通過率・個体数・世代数を設定します。 「飛行条件一覧を編集」で巡航・離陸・低 Re・高迎角などを追加/削除し、製作性・Cp 罰則も設定します。
  3. 注 有料版:探索。「再計算」で GA、設定の「QMOPSO 多目的探索を開始」で多目的探索を開始します。 非粘性パネルのふるい分けの後に XFOIL を使います。未収束・除外候補は正常な粘性解として扱いません。
  4. 注 有料版:確認。「現世代」「パレート」「履歴」の数値表・グラフを見ます。 「Cp表示世代」「候補」で表示する保存済み個体を選びます。完了世代のエリートが同じなら、図が同じでも切替失敗ではありません。
  5. 注 有料版:Cp 比較。 Cp 図の「重ね表示なし」「前世代重ね」「全世代重ね」で比較します。 選択候補をシアン、比較対象を各世代の第1候補として共通軸へ描きます。欠けた Cp は作り出さず除外します。
  6. 注 有料版:中断・再開。「一時停止」で完了世代を残し、「続行」で再開します。「巻き戻し」は選択世代の集団/探索状態を復元します。 条件を変更した場合は再計算してください。
  7. 注 有料版:保存。「dbへ保存」は手編集を含む現在の中央表示形状を新しい DB 翼型にします。 「翼型出力」は選択候補を遺伝子から再構築して DAT 出力し、候補未選択なら表示翼型を出力します。 手編集した現在形状を確実に残すには「dbへ保存」を使ってください。 「候補群を一括出力」は DAT・取得済み Cp CSV・性能一覧、「選択翼型のXFOIL極曲線」は迎角掃引・CSV 出力です。

・形状モードと逆設計

Morita 2013注 有料版
Morita / PARSEC のモードを選び、Xc・Zc・後縁角・Am などを入れて「Moritaパラメータを適用」します。 四次の追加キャンバーと逆抗力評価を使い、目標翼厚は x/c=0.292 の上下間隔です。
PARSEC注 有料版
「PARSEC翼型を基底翼型へ適用」で 11 パラメータから基底を生成し、通常の混合探索に使います。 11 パラメータ直接探索の GUI ではありません。
理論基底・自動選抜注 有料版
設定で Theodorsen/NACA・Theodorsen/Joukowski 基底を使い、またはフォルダから性能と形状多様性で 4 基底を自動選抜します。
Cp 目標の逆設計注 有料版
「Cp目標で第1翼型を逆設計」で上面 Cp をドラッグし、QSPEC 混合逆設計の形を第1基底へ渡します。 Cp 目標は JSON で保存・読込できます。

・実験の保存と復元

注 有料版:新しい実験はローカルデータ領域の omegaSIM/GAXQ/experiments に完了世代を自動保存します。 一時停止してからファイル → 「実験チェックポイントを保存」で基底・設定・候補・履歴・続行状態を保存し、 「実験チェックポイントを読込」で復元できます。QMOPSO の粒子・個体最良・アーカイブ・乱数状態も含みます。 保存した世代別 DAT・CSV とともに、実験条件を確認して使ってください。

・GA最適化 — 滑空距離最大化(NLFS6)…

「最適化(O) → GA最適化 — 滑空距離最大化(NLFS6)…」で開きます。

「翼型自動選定+最大飛距離 探索(GA)」が機体の形を探すのに対し、 GA最適化は決まった機体の飛ばし方を探します。 機体データベース(glider.db / hpa.db)から機体を選び、 NLFS6 の 6 自由度モデルで飛ばして、滑空距離が最大になる操縦パラメータを遺伝的アルゴリズムで見つけます。

設定内容
機体種別(グライダー/人力プロペラ機)と、データベースに保存した機体
飛行条件発進高度・打ち切り時間・計算刻み・向かい風
探索する操縦パラメータ 初期姿勢・引き起こしやバンクを始める時刻・目標経路角・自動操縦の PID ゲインなど。 「21 個すべて」か「17 個(初期ロール・ヨーとバンク横 PID の I・D を固定)」を選べます
機体データベースに入っている操縦を出発点にする 既定でオン。保存済みの操縦を初期集団に入れるので、結果が出発点より悪くなることはありません
GA の設定 個体数(既定 90)・エリート数(30)・世代数(90)・個体突然変異率(0.05)・遺伝子突然変異率(0.02)・交叉(2 点交叉/一様交叉)・並列プロセス数。 既定値は公開されている設定にそろえてあります

「最適化を開始」を押すと、世代ごとの最良飛距離がグラフに、見つかった操縦パラメータが表に出ます。 進捗バーは 1 個体を飛ばすごとに進み、経過時間と残り時間の見込みも表示されます。 終わったら「この操縦を機体データベースへ保存」で、その機体に操縦パラメータを保存できます。

ウィンドウを閉じても計算は止まりません。 進み具合と停止ボタンは画面下のステータスバーへ引き継がれ、モードを切り替えてもそこから止められます。 閉じている間に終わった結果は、もう一度開いたときに表示され、保存できます。
エリート(成績上位でそのまま次の世代へ残る個体)は飛ばし直さないので、 既定設定での評価回数は 5,490 回です(開始前にダイアログに表示されます)。

並列計算について

全翼型バッチ解析・GA 探索・GA最適化は、複数の CPU コアを使って並列に計算します。 既定の並列数はお使いの PC の CPU から自動で決まり、 GUI と他モードのために全コアは使いません。

この 3 つは同時には 1 つしか動きません。どれもコアを目いっぱい使うので、 重ねると互いに遅くなるだけだからです。

動いている計算始めようとした計算どうなるか
全翼型バッチ解析GA 探索どちらを続けるか尋ねるダイアログが出ます
GA 探索全翼型バッチ解析
全翼型バッチ解析 / GA 探索GA最適化 「ほかの計算が実行中です」と、動いている計算の名前と止め方が表示され、開始しません
GA最適化全翼型バッチ解析 / GA 探索

お使いの PC で何並列になるかは、「ヘルプ → αFOIL+ωSIM について」で確認できます。 実際のコア数・スレッド数(論理プロセッサ数)が表示されます。

並列数は開始前のダイアログで変更できます。他の作業をしながら回したいときは少なめに、 探索だけに集中したいときは多めにしてください。