コンテンツにスキップ

学習ドキュメントの読み方

このフォルダは、人力飛行機の主翼設計プログラム(MATLAB → Excel VBA移植版)の中身を理解するための資料です。「どう改造するか」ではなく「どういう理屈でこう計算しているか」を、まだ航空力学・複合材構造の専門知識が薄い読者でも追えるようにすることが目的です。

大学の力学・数学の基礎(応力・ひずみ・モーメント、フーリエ級数、線形代数など)は既に知っているものとして説明を省略し、このプログラム固有の理論の使い方に説明を絞っています。そこが分からない場合は、材料力学・構造力学・航空力学の教科書を別途参照してください。

読む順番

翼の設計は「空力(どれだけ揚力・抗力が出るか)」→「構造(その荷重に桁が耐えられるか)」という2段階の流れになっており、ドキュメントもこの流れに沿っています。

# ファイル 内容
00 00_はじめに.md(本ファイル) 読み方、モジュール一覧、コード⇔ドキュメントの対応の付け方
01 01_全体アーキテクチャ.md 空力→構造、全体のデータの流れ
02 02_空力理論編.md 揚力線理論(なぜこの数式で揚力分布が求まるか)
03 03_空力実装編.md 02の理論を実際のVBAコードにどう落とし込んだか
04 04_構造理論編.md 積層理論・3D梁FEM・強度評価の理論
05 05_構造実装編.md 04の理論を実際のVBAコードにどう落とし込んだか
06 06_用語集.md 変数名・記号の対応表
07 07_既知の制限事項.md まだ検証しきれていない部分・既知の誤差

初めて読む場合は 00 → 01 → 02 → 03 → 04 → 05 の順番を推奨します。「このコードが何をしているか」だけを知りたい場合は 01 と 06(用語集)だけ見れば足りることも多いです。

コード⇔ドキュメントの対応の付け方

このプロジェクトはコード側にも改修が今後入る見込みのため、「ドキュメントのどの説明が、コードのどの部分に対応するか」を機械的に辿れるように、コード側・ドキュメント側の両方に目印を付けています。

コード側(VBAのコメント。全角の●で始まる行を探せば見つかります):

' ●学習資料: 03_空力実装編.md 「§2 フーリエ係数の連立方程式」を参照
関数やSubの直前に、そこで使っている理論がどのドキュメントのどの節に説明されているかを書いています。VBE(VBAエディタ)の「検索」で学習資料:を探せば、そのモジュール内の目印が一覧できます。

ドキュメント側(Markdownの各節の冒頭):

### 2. フーリエ係数の連立方程式

> 💻 対応コード: `Mod05_空力ソルバー.bas` の `SolveAero` 関数

コードを読んでいて「なぜこの式なのか」が分からなくなったら、直前の学習資料:コメントを頼りにこちらのMarkdownへ。逆にMarkdownを読んでいて「実際のコードではどう書いているか」を確認したくなったら、「対応コード」からVBEでその関数を検索してください。

モジュール一覧(計算順)

標準モジュールは計算順(空力→構造)にMod01〜Mod18と番号を振ってあります。Mod01・Mod02はこのプロジェクトのオーナー(ユーザー)自身が実装した「シートから入力データを読む」モジュールで、それ以降がこのドキュメントで解説する計算ロジック本体です。

入力データ取得(オーナー実装、既存)

モジュール 役割
Mod01_情報取得_翼 「パラメータ_翼」系シートから機体諸元・平面形・ねじり下げ・桁位置・翼型分布を取得
Mod02_情報取得_桁 「パラメータ_桁」系シートから積層構成・UD補強・マンドレル径を取得(可変長データはラゲッド配列で表現)

空力解析(Mod03〜09、詳細は02/03)

モジュール 役割
Mod03_分布補間 (Y, 値)点列の共通補間ユーティリティ
Mod04_翼型データベース 翼型ごとのCd/Cm/Cl特性データベース(CSV読み込み)
Mod05_空力ソルバー 揚力線理論の本体(フーリエ級数によるSolveAero)
Mod06_空力ソルバーテスト Mod05の動作確認テスト
Mod07_空力結果出力 空力解析結果をシートへ書き出す
Mod08_空力実行 単一迎角での実行エントリポイント
Mod09_空力迎角スイープ 迎角を振りながら繰り返し実行するエントリポイント

桁の構造解析(Mod10〜18、詳細は04/05)

モジュール 役割
Mod10_材料データベース プリプレグ材料物性データベース
Mod11_桁断面剛性 積層理論による断面剛性(EA/GK/EIy/EIz等)の計算
Mod12_桁断面剛性テスト Mod11の動作確認テスト
Mod13_桁断面剛性実行 シートデータから断面剛性を求めるエントリポイント
Mod14_桁自重 桁自体の自重荷重の計算
Mod15_桁荷重 空力側の分布荷重をFEMの荷重ベクトルへ変換
Mod16_桁FEM 3D梁FEMの組立・求解(たわみ・BMD・SFD)
Mod17_桁強度座屈 Tsai-Wu複合則による強度評価・座屈評価
Mod18_桁構造解析実行 空力→断面剛性→荷重→FEM→強度評価を一括で行う最終エントリポイント

クラスモジュール(データの入れ物)

モジュール 役割
clsWingGeometry 翼形状(コサイン分布の各点のY・翼弦長・ねじり角など)
clsAeroResult 空力解析結果(CL・CD・スパン方向の分布など)
clsClTable / clsGridTable 翼型データベースの中身(Cl/Cd/Cm)
clsSparSection 桁の断面剛性分布(EA/GK/EIy/EIz等)
clsSparDeformation FEM解析結果(たわみ・ねじれ・断面内力)
clsSparStrength 強度・座屈評価結果

関連する既存資料

  • _VBA移植資料\入出力データ一覧.md — 元MATLABの入出力CSVの列の意味・既知バグの一覧。データの「単位」や「何を表す値か」を確認したいときはこちら。
  • _VBA移植資料\全体ロードマップ.md — プロジェクト全体の進捗管理(このドキュメントとは目的が別)。