- Julia implementation of Davoudi's [1] hybrid blade element momentum (BEM) model
- Linear inflow (default: Pitt-Peters) model coupled with BEM
- Multi-threaded (if Julia is started with multiple threads)
- Corrections:
- Hub/tip-loss correction by Prandtl [2]
- Mach correction of polars by Glauert (note: use polar data generated at
$M=0.0$ for accurate correction) - Rotational 3D correction for polars (offline, online)
Create a new Conda env:
conda create -n julia python==3.10
conda activate julia
pip install proplot # install some packages
# show python path
which python
Build Julia's PyCall
with this Python version:
pkg> add PyCall
julia> using PyCall
ENV["PYTHON"] = "path_to_python"
julia> using Pkg
julia> build("PyCall")
# Test
julia> pyversion # --> this should give the correct python version!
julia> pplt = pyimport("proplot") # --> this should load proplot from Python
Clone the repo to your path:
git clone https://github.com/christianhauschel/Propeller.jl <mypath>
cd <mypath>
julia --threads=4 --project=.
Inside of Julia, add the following nonlisted packages:
import Pkg
url = "https://github.com/christianhauschel/"
packages = (
("PrettySections.jl", nothing),
("AirfoilFast.jl", nothing),
("AirfoilPolars.jl", nothing),
("Gradient.jl", nothing),
("FlightConditions.jl", nothing),
("GeometricTools.jl", nothing),
("GridSpacing.jl", nothing),
)
Pkg.add([Pkg.PackageSpec(; url=url * name, rev=v) for (name, v) in packages])
julia> include("example.jl")
rotor_calculations.jl
: make different calculations a priori, e.g. to figure out the approx. Reynolds number range for the polar calculationmisc/export_dust.jl
: exports rotor to dust geometry input filemisc/export_flowunsteady.jl
: exports rotor to FLOWUnsteady
Simple comparison with uniform inflow (APC11x47):
Data taken from Davoudi [1]:
Comparison to FLOWUnsteady BEM code:
- B. Davoudi, “A Hybrid Blade Element Momentum Model for Flight Simulation of Rotary Wing Unmanned Aerial Vehicles,” AIAA Paper, 2019.
- https://flow.byu.edu/FLOWUnsteady/examples/rotorhover-aero/