コンテンツにスキップ

はじめに

  • パラメトリックな手法による翼やプロペラのモデリングがメインとなる。
  • 3Dモデリングを使って流体解析や空力中心をもとめてみる。
  • 機体の形状、構造は船舶の章の手順が参考になると思う。

パラメトリックな手法

画面を見ながらGUI(Graphical User Interface)上で製図するのではなく、数値や数式等を使って製図する手法である。 手で描く場合、正確にトレースしたつもりでも細かい点でズレはでる。数値や数式等を使うと他の研究結果をモデリングに正確に反映できる。 特に翼やプロペラの設計の際にはNACA翼型を使う。 NACA翼型は数値データとして入手できるため、パラメトリックな手法を用いてモデリングを効率的に行なうことができる。

翼素理論

プロペラや飛行機の翼は翼素の組み合わせでできている。翼には揚力と抗力が発生し、迎角をあげていくことで揚力が増していくが、ある一定の角度で翼に沿っていた気流が剥離し失速する。

プロペラは捻れたかたちになっているが、迎角を調整し失速を防止するようになっている。すなわち中心に近い部分(根元)と外側(翼端)で、回転による移動速度(周速度)が異なるため、迎角を調整した結果、ねじれた形になっているのである。

飛行機の翼も一見真っ直ぐしていて、捻れたかたちには見えないが、根本と翼端で失速のタイミングを調整するために捻れた形状で設計される。 翼の場合は、翼端よりも根本を早く失速させるために、根本から翼端にむけて捻り下げがされる。

3Dモデリングを行なう際は、パラメトリックに翼を描画して、翼(プロペラブレード)の長さの分の翼素を並べて、それぞれの翼素の迎え角を少しずつ変えていきながら、ひとつの翼を描いていく。

翼型や揚力、抗力特性等は、次のサイトを見るとよい。

翼のプロファイル

今回はLibreCADでの製図ではなく、「翼のプロファイル」からDXF形式を出力し、FreeCADで編集する流れで実施する。

graph LR
  A[翼のプロファイル] --> B[DXF];
  B[DXF] --> C[FreeCAD];

翼のプロファイルは次のようなテキストファイルである。この形式とした根拠は設計支援AIを参照する。

ファイル名: demo-wing-left.md

---
type: wing
title: デモ翼(左)
description: 3Dモデリングのデモとして作成。NACA2412、矩形で翼根に向けて捻り上げ、上反角をつけた例。datファイルは0-1で正規化されているので、chord_lengthで拡大する。
resource: aircraft/demo-wing-left.dxf
tags: [wing, sample]
timestamp: 2026-05-28T14:30:00Z
---

- layer-10-root-z-0:
  shape_dat: aircraft/NACA2412.dat
  leading_edge_x: 0
  leading_edge_y: 0
  chord_length: 500
  twist_degrees: 0.0

- layer-20-z-500:
  shape_dat: aircraft/NACA2412.dat
  leading_edge_x: 0
  leading_edge_y: 0
  chord_length: 500
  twist_degrees: -0.45

- layer-30-z-1000:
  shape_dat: aircraft/NACA2412.dat
  leading_edge_x: 0
  leading_edge_y: 0
  chord_length: 500
  twist_degrees: -0.90

- layer-40-z-150:
  shape_dat: aircraft/NACA2412.dat
  leading_edge_x: 0
  leading_edge_y: 0
  chord_length: 500
  twist_degrees: -1.35

3Dモデリングデータの出力

翼のプロファイルdemo-wing-left.mdをもとにDXFの生成を行い、FreeCADに読み込み、船舶 3Dモデリングと同じ要領でLoftを使ってつなげていく。

NACA2412の翼

流体解析

3Dモデリングが自動生成できるようになったので、この章の残りは、流体解析がメインとなる。 今回、流体解析によって確認したい点は次の項目である。

  • 翼の回りの気流の状態(巡航を想定)
  • 空力中心の確認
  • 迎角を上げていったときの気流の変化(失速までを想定)

風洞に翼を配置して、OpenFOAMでシミュレーションを行なう。

  1. 3Dモデリング作成(FreeCAD)
  2. 条件設定(OpenFOAM)
  3. メッシュ作成(OpenFOAM)
  4. シミュレーション実行(OpenFOAM)
  5. 可視化(Paraview)
graph LR
  A[3Dモデリング作成] --> B[メッシュ作成];
  B[メッシュ作成] --> C[条件設定];
  C[条件設定] --> D[シミュレーション実行];
  D[シミュレーション実行] --> C[条件設定];
  D[シミュレーション実行] --> E[可視化];
  E[可視化] --> C[条件設定];

OpenFAOMのQuick Startを参考

(1) 3Dモデリング作成

今回は次の手順である。翼のプロファイルに翼型や翼弦長(chord)、捻り(twist)角等を指定するので、ソリッドなモデルの作成と見た目をFreeCADで行なう作業になる。

NACA2412.dat

graph LR
  A[NACA2412.datの読み込み] --> B[DXF出力];
  B --> C[DXFにz座標を設定];
  C --> D[FreeCADにてモデリング];

(2) 条件設定

次のようなディレクトリを作って作業する。

openfoam-case-example/
├── demo-wing-left.foam // ParaViewで読み込む
├── 0/
│   ├── alphat
│   ├── k
│   ├── nut
│   ├── omega
│   ├── p
│   ├── T
│   └── U
├── constant/
│   ├── polyMesh/
│   ├── triSurface/
│   │ └── NACA2412.stl // ここにFreeCADからexportした3Dモデルファイルを置く
│   ├── transportProperties
│   └── turbulenceProperties
└── system/
    ├── blockMeshDict  // geometry.aerofoil.fileを修正する
    ├── controlDict
    ├── extrudeMeshDict
    ├── snappyHexMeshDict
    ├── surfaceFeatureExtractDict
    ├── FOMachNo
    ├── fvOptions
    ├── fvSchemes
    ├── fvSolution
    └── solverInfo

$FOAM_TUTORIALS/tutorials/compressible/rhoPimpleFoam/RAS/aerofoilNACA0012をベースにしている。

(3) メッシュ作成

風洞と翼型のスケールや向きを確認し、風洞に翼型モデルが収まっているかどうかを確認する。 メッシュを作りながら、Paraviewで視覚的に確認しながら調整していく。

  • スケールや向きを調整
[OpenFOAM]$ surfaceCheck constant/triSurface/NACA2412.stl
# Scale
[OpenFOAM]$ surfaceTransformPoints -scale "(0.001 0.001 0.001)" constant/triSurface/NACA2412.stl constant/triSurface/NACA2412_scaled.stl
# Rotate
[OpenFOAM]$ surfaceTransformPoints -rollPitchYaw "(0 90 0)" constant/triSurface/NACA2412.stl constant/triSurface/NACA2412_rot90.stl
# Translate
[OpenFOAM]$ surfaceTransformPoints -translate "(0.5 0 0)" constant/triSurface/NACA2412.stl constant/triSurface/NACA2412_translated.stl
  • メッシュ作成
# 空洞のMeshを作成する
[OpenFOAM]$ blockMesh
# 翼型のブロックを作成する
[OpenFOAM]$ surfaceFeatureExtract
[OpenFOAM]$ snappyHexMesh -overwrite
# メッシュのチェック
[OpenFOAM]$ checkMesh

シュミレーション実行前に、Paraviewで確認しておく。

風洞の確認

(4) シミュレーション実行

実際には次のコマンドを流す迄に、初期値や計算条件、各種パラメータの設定が多くあるが、最終的に流すコマンドを記載しておく。

# 前回シュミレーション出力を削除
[OpenFOAM]$ foamListTimes -rm
[OpenFOAM]$ rhoSimpleFoam

(5) 可視化

Paraviewでシミュレーション結果を可視化する。

$ paraview demo-wing-left.foam

初期値や計算条件、各種パラメータの設定内容をもとに可視化の内容を確認。仮説と結果がどうだったか等を見ながら検討を続けていくのである。今回はシミュレーションのワークフローの紹介のための画像掲載をしておく。左が迎角0で、右が迎角を10°変えたものである。

シミュレーション結果

まとめ

今回は、3Dプリントを目的としたモデリングであるため、流体解析シミュレーションの深いところまでは触れない。3Dモデリングは実際に飛んでいる飛行機等を参考にできるが、具体的な空気力学的な性質まで真似しようとすると、多くの試行錯誤やシミュレーションが必要になると思う。流体解析シミュレーションを習得するのもかなりの労力が要るので、翼を3Dプリントして紙飛行機と同じくらいのスケールや感覚で飛ばしてみるのもよいかと思う。

プロペラは翼と同じく翼素を捻ってつなげたものであるので、翼のプロファイルで1枚作って、2枚のプロペラであれば、0°の3Dモデルを複写して180°の位置にコピーする。プロペラボスやスピナーは、円筒や円錐パーツを使ってFreeCAD上で製図する。