学習ドキュメントの読み方¶
このフォルダは、人力飛行機の主翼設計プログラム(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 フーリエ係数の連立方程式」を参照
学習資料:を探せば、そのモジュール内の目印が一覧できます。
ドキュメント側(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— プロジェクト全体の進捗管理(このドキュメントとは目的が別)。