Skip to content
Snippets Groups Projects
Verified Commit a213c5d2 authored by Thomas Lambert's avatar Thomas Lambert :helicopter:
Browse files

feat(solvers): BET part

parent 8d38b3c8
No related branches found
No related tags found
No related merge requests found
Pipeline #9556 passed
......@@ -13,27 +13,114 @@
\chapter{Solvers}
\label{chap:tech:solvers}
\fxfatal{While \rotare does not fully support coaxial rotors or oblique
flows yet, the current documentation is written as if it was already the case.}
\section{Blade Element theory}
\label{chap:tech:solvers:BET}
Thrust, torque and power for the whole rotor:
The Blade Element Theory postulates that a rotor can be represented as a
collection of 2D elements which are radially distributed over the blade. It
further assumes that the performance of an individual element is completely
independent of the influence of the other elements. Each element can therefore
be represented as a simple 2D airfoil section.
\begin{figure}[ht]
\begin{center}
\incfig[0.8]{bladeElement}
\caption{Velocity diagram for a blade element $dy$ at location $y$.}
\label{fig:tech:blade-element}
\end{center}
\end{figure}
The representation in Figure~\ref{fig:tech:blade-element} showcases a single
blade element with its associated velocity triangles and forces. The element
lies at a total pitch angle $\aPitch$ with respect to the rotor disk. This pitch
can be decomposed in different contributions:
\begin{equation}
\aPitch = \aTwist + \aColl
\label{eq:tech:solv:pitch}
\end{equation}
Where $\aTwist$ is the twist angle of the blade (\ie a radial variation of
pitch along the blade) and $\aColl$ is the collective pitch of the blade (\ie a
modification of the pitch constant over the entire blade). Not that, by
convention, the pitch angle is usually given with respect to the
\emph{zero-lift line} and not the \emph{chord line} of the airfoil.
The resultant velocity is the sum of the velocity components acting in the
$\xtpp$ and $\ztpp$ directions, respectively $\vTg$ and $\vAx$.\footnote{There
is no contribution in $\ytpp$ as the BEMT represents the blade through 2D
elements}.
In oblique flows (\ie when the flow is not perfectly perpendicular to the rotor
disk), the tangential velocity is dependent on blade instantaneous position,
which can be represented though the azimuthal angle $\aAzim$.
\begin{align}
\label{eq:tech:solvers:BET:vAx}
\vAx &= \airspeed \sin\aoaR + \iAx \\
\label{eq:tech:solvers:BET:vTg}
\vTg &= \airspeed \cos\aoaR \sin\aAzim + \angVel \radA - \iTg \\
\label{eq:tech:solvers:BET:vRel}
\vRel &= \sqrt{\vAx^2+\vTg^2}
\end{align}
The angle induced (or inflow) angle $\aInd$ expresses the angle between the
resultant velocity and the rotor disk:
\begin{equation}
\label{eq:tech:solvers:BET:aInd}
\tan^{-1}\aInd = \dfrac{\vAx}{\vTg}
\end{equation}
By convention, $\aInd$ is positive when $\vRel$ is directed towards the disk and
negative when $\vRel$ points outwards.
The effective angle of attack at the element can therefore be obtained by the
difference of the element's pitch and the inflow angle. Note that, as the pitch
angle is often given with respect to the airfoil \emph{zero-lift line}, the
zero-lift angle must be subtracted as well.
\begin{equation}
\label{eq:tech:solvers:BET:aoa}
\aoa = (\aPitch - \aoa_0) - \aInd
\end{equation}
The angle of attack, along with the Reynolds number can be used to determine the
value of the airfoil lift and drag coefficient. The airfoil polar coefficients
are usually given in the form of tabulated data, either directly from \XFOIL or
\XFLR or via other means.
\begin{equation}
\label{eq:tech:solvers:BET:clcd}
\cLift(\aoa,\reynolds) \qquad \text{and} \qquad \cDrag(\aoa,\reynolds)
\end{equation}
The elemental lift and drag can now be obtained though the known aerodynamic
coefficients, alongside the dynamic pressure and the element's chord.
\begin{equation}
\label{eq:tech:solvers:BET:dLdD}
d\lift = \dfrac{1}{2}\dens \vRel^2 \chord \cLift \dy
\qquad
\qquad
d\drag = \dfrac{1}{2}\dens \vRel^2 \chord \cDrag \dy
\end{equation}
Finally, the more useful notation consist in replacing the forces in the axes of
the rotor and derive the thrust (\thrust), torque (\torque) and power (\power)
contribution of the element
\begin{align}
\label{eq:tech:solvers:BET:thrust}
\thrust &= \nBlades (d\lift \sin\indAngle - d\drag \cos\indAngle)\\
d\thrust &= \nBlades (d\lift \sin\aInd - d\drag \cos\aInd)\\
\label{eq:tech:solvers:BET:torque}
\torque &= \nBlades (d\lift \cos\indAngle + d\drag \sin\indAngle) \aRad\\
d\torque &= \nBlades (d\lift \cos\aInd + d\drag \sin\aInd) \radA\\
\label{eq:tech:solvers:BET:power}
\power &= \nBlades (d\lift \cos\indAngle + d\drag \sin\indAngle) \aRad \angVel
d\power &= \nBlades (d\lift \cos\aInd + d\drag \sin\aInd) \radA \angVel
\end{align}
, where $\indAngle$ is the induced angle:
\begin{equation}
\label{eq:tech:solvers:BET:indAngle}
\tan^{-1}\indAngle = \dfrac{\aVel_A}{\aVel_T}
\end{equation}
\section{Momentum theory}
\label{chap:tech:solvers:mom}
Mass flow rate through the disk:
\begin{equation}
......@@ -54,7 +141,7 @@ Likewise, the torque is given by
\begin{equation}
\label{eq:tech:solvers:mom:torque}
\begin{split}
d\torque & = \mFlow \aRad \indSwirl
d\torque & = \mFlow \radA \indSwirl
\end{split}
\end{equation}
......@@ -91,7 +178,7 @@ We start by defining the axial and tangential (swirl) induction factors:
\label{eq:tech:solvers:indfact:a}
\aVel_A &= (1+\axFact)\aVel_\infty \\
\label{eq:tech:solvers:indfact:b}
\aVel_T &= (1-b)\angVel \aRad
\aVel_T &= (1-b)\angVel \radA
\end{align}
and then inject these in the momentum equations \ref{eq:tech:solvers:mom:thrust}
and (\ref{eq:tech:solvers:mom:torque}).
......@@ -106,16 +193,17 @@ Using the inflow factors, the thrust equations becomes:
\begin{equation}
\label{eq:tech:solvers:indfact:thurst}
\begin{split}
d\thrust & = 4\pi \dens (\aVel_A + \indAxVel) \indAxVel \aRad dy \\
& = 4\pi \dens (1 + \axFact) a \aVel_\infty^2 \aRad dy
d\thrust & = 4\pi \dens (\aVel_A + \indAxVel) \indAxVel \radA dy \\
& = 4\pi \dens (1 + \axFact) a \aVel_\infty^2 \radA dy
\end{split}
\end{equation}
, and the torque equation becomes
\begin{equation}
\label{eq:tech:solvers:indfact:thurst}
\begin{split}
d\torque & = 2\pi \aRad \dens (\aVel_A + \indAxVel) (2\tgFact\angVel\aRad) \aRad dy \\
& = 4\pi \aRad^3 \dens (1 + \axFact) \aVel_\infty \tgFact \angVel dy
d\torque & = 2\pi \radA \dens (\aVel_A + \indAxVel) (2\tgFact\angVel\radA)
\radA dy \\
& = 4\pi \radA^3 \dens (1 + \axFact) \aVel_\infty \tgFact \angVel dy
\end{split}
\end{equation}
......
......@@ -96,5 +96,5 @@
\usepackage{transparent}
% Fixme for todo messages in text
\usepackage[inline, marginclue]{fixme}
\usepackage[draft, inline, marginclue]{fixme}
\fxsetup{theme=color}
......@@ -28,6 +28,8 @@
\newcommand\QBlade{\textsc{QBlade}\xspace}
\newcommand\JBlade{\textsc{JBlade}\xspace}
\newcommand\pyBEMT{\textsc{pyBEMT}\xspace}
\newcommand\XFOIL{\textsc{XFOIL}\xspace}
\newcommand\XFLR{\textsc{XFLR5}\xspace}
\newcommand\AeroDyn{\textsc{AeroDyn}\xspace}
\newcommand\git{\textsf{git}\xspace}
......
......@@ -21,112 +21,138 @@
% --- Velocities ---------------------------------------------------------------
% Main velocities components
\newcommand{\vAx}{\ensuremath{V}} % Absolute axial velocity
\newcommand{\vAx}{\ensuremath{V_\perp}}
\newcommand{\vTg}{\ensuremath{V_\theta}}
\newcommand{\vRel}{\ensuremath{V}}
\newcommand{\airspeed}{\ensuremath{V_\infty}}
\nomenclature[A]{\vRel}{Relative velocity\nomunit{\m\per\s}}
\nomenclature[A]{\vAx}{Axial velocity\nomunit{\m\per\s}}
\newcommand{\vTg}{\ensuremath{U}} % Absolute tangential velocity
\nomenclature[A]{\vTg}{Tangential velocity\nomunit{\m\per\s}}
\newcommand{\rVel}{\ensuremath{W}} % Relative velocity
\nomenclature[A]{\rVel}{Relative velocity\nomunit{\m\per\s}}
\nomenclature[A]{\airspeed}{Freestream velocity\nomunit{\m\per\s}}
% Induced velocities
\newcommand\iAx[1][]{\ensuremath{v_{#1i}}} % Induced axial velocity
\newcommand\iAx[1][]{\ensuremath{v_{#1i}}}
\newcommand{\iTg}[1][]{\ensuremath{u_{#1i}}}
\nomenclature[A]{\iAx}{Induced axial velocity\nomunit{\m\per\s}}
\newcommand{\iTg}[1][]{\ensuremath{u_{#1i}}} % Induced tangential velocity
\nomenclature[A]{\iTg}{Induced tangential velocity\nomunit{\m\per\s}}
\newcommand{\indSwirl}{\ensuremath{u_i}} % Swirl velocity, in-plane toward rot blade
\newcommand{\indAxVel}{\ensuremath{v_i}} % Induced velocity, normal to rotor dis
\newcommand{\airspeed}{\ensuremath{V_\infty}} % Freestream velocity
\nomenclature[A]{\airspeed}{Freestream velocity\nomunit{\m\per\s}}
\newcommand{\aVel}{\ensuremath{V}} % Axial velocity component
\newcommand{\indAxWake}{\ensuremath{v_w}} % Slipstream velocity downstream
\newcommand{\indSwirlWake}{\ensuremath{u_w}} % Slipstream velocity downstream
\newcommand{\axFact}{\ensuremath{a}} % Axial induction factor
\nomenclature[A]{\axFact}{Axial induction factor\nomunit{-}}
\newcommand{\tgFact}{\ensuremath{b}} % Tangential induciton factor
\nomenclature[A]{\tgFact}{Tangential induction factor\nomunit{-}}
\newcommand{\indSwirl}{\ensuremath{u_i}}
\newcommand{\indAxVel}{\ensuremath{v_i}}
\newcommand{\aVel}{\ensuremath{V}}
\newcommand{\indAxWake}{\ensuremath{v_w}}
\newcommand{\indSwirlWake}{\ensuremath{u_w}}
\newcommand{\axFact}{\ensuremath{a}}
\newcommand{\tgFact}{\ensuremath{b}}
\nomenclature[A]{\axFact}{Axial induction factor\nomunit{-}}
\nomenclature[A]{\tgFact}{Tangential induction factor\nomunit{-}}
\newcommand{\angVel}{\ensuremath{\Omega}} % Angular velocity
\nomenclature[G]{\angVel}{Angular velocity\nomunit{\per\s}}
% --- Angles -------------------------------------------------------------------
\newcommand{\sweep}{\ensuremath{\Lambda}} % Sweep
\nomenclature[G]{\sweep}{Blade sweep angle\nomunit{}}
\newcommand{\indAngle}{\ensuremath{\phi}} % Induced angle
\nomenclature[G]{\phi}{Induced angle\nomunit{}}
\newcommand{\aoa}{\ensuremath{\alpha}} % Angle of attack
\newcommand{\aSweep}{\ensuremath{\Lambda}}
\newcommand{\aInd}{\ensuremath{\phi}}
\newcommand{\aoa}{\ensuremath{\alpha}}
\newcommand{\aPitch}{\ensuremath{\beta}}
\newcommand{\aColl}{\ensuremath{\beta_0}}
\newcommand{\aTwist}{\ensuremath{\chi}}
\newcommand{\aAzim}{\ensuremath{\psi}}
\newcommand{\aoaR}{\ensuremath{\zeta}}
\nomenclature[G]{\aSweep}{Blade sweep angle\nomunit{}}
\nomenclature[G]{\aInd}{Induced angle\nomunit{}}
\nomenclature[G]{\aoa}{Angle of attack\nomunit{}}
\nomenclature[G]{\aPitch}{Pitch angle\nomunit{}}
\nomenclature[G]{\aColl}{Collective pitch angle\nomunit{}}
\nomenclature[G]{\aTwist}{Twist angle (stagger for propellers)\nomunit{}}
\nomenclature[G]{\aAzim}{Azimuthal angle\nomunit{}}
\nomenclature[G]{\aoaR}{Rotor angle of attack\nomunit{}}
% --- Others -------------------------------------------------------------------
\newcommand{\area}{\ensuremath{A}} % (Rotor) Area
\nomenclature[A]{\area}{Area\nomunit{\m^2}}
\newcommand{\chord}{\ensuremath{c}} % Rotor radius
\newcommand{\radius}{\ensuremath{R}} % Rotor radius
\nomenclature[A]{\radius}{Rotor radius\nomunit{\m}}
\newcommand{\rRad}{\ensuremath{r}} % Nondimensional radial position along the blade
\nomenclature[A]{\rRad}{Nondimensional radial position\nomunit{-}}
\newcommand{\aRad}{\ensuremath{y}} % Radial distance along the blade
\nomenclature[A]{\aRad}{Absolute radial position\nomunit{\m}}
\newcommand{\radR}{\ensuremath{r}} % Nondimensional radial position along the blade
\newcommand{\radA}{\ensuremath{y}} % Radial distance along the blade
\newcommand{\advRat}{\ensuremath{\mathcal{J}}} % Advance ratio
\nomenclature[A]{\advRat}{Advance ratio\nomunit{-}}
\newcommand{\mFlow}{\ensuremath{\dot{m}}} % Mass flow rate
\newcommand{\dy}{\ensuremath{dy}} % Mass flow rate
\nomenclature[A]{\chord}{Rotor chord\nomunit{\m}}
\nomenclature[A]{\radius}{Rotor radius\nomunit{\m}}
\nomenclature[A]{\radR}{Nondimensional radial position\nomunit{-}}
\nomenclature[A]{\radA}{Absolute radial position\nomunit{\m}}
\nomenclature[A]{\advRat}{Advance ratio\nomunit{-}}
\nomenclature[A]{\mFlow}{Mass flow rate\nomunit{\kg\per\s}}
\newcommand{\mach}{\ensuremath{\mathcal{M}}} % Mach number
\nomenclature[A]{\mach}{Mach number\nomunit{-}}
\newcommand{\reynolds}{\ensuremath{Re}} % Reynolds number
\nomenclature[A]{\reynolds}{Reynolds number\nomunit{-}}
\newcommand{\dens}{\ensuremath{\rho}} % Density
\nomenclature[A]{\dens}{Density\nomunit{kg\per\m^3}}
\newcommand{\nBlades}{\ensuremath{N_b}} % Number of blades
\nomenclature[A]{\mach}{Mach number\nomunit{-}}
\nomenclature[A]{\reynolds}{Reynolds number\nomunit{-}}
\nomenclature[A]{\dens}{Density\nomunit{kg\per\m^3}}
\nomenclature[A]{\nBlades}{Number of blades\nomunit{-}}
% --- Forces, torques, powers, etc ---------------------------------------------
% Foces
\newcommand{\lift}{\ensuremath{\mathcal{L}}} % Lift
\nomenclature[A]{\lift}{Lift\nomunit{\N}}
\newcommand{\drag}{\ensuremath{\mathcal{D}}} % Drag
\nomenclature[A]{\drag}{Drag\nomunit{\N}}
\newcommand{\thrust}{\ensuremath{\mathcal{T}}} % Thrust
\nomenclature[A]{\thrust}{Thrust\nomunit{\N}}
\newcommand{\torque}{\ensuremath{\mathcal{Q}}} % Torque
\nomenclature[A]{\torque}{Torque\nomunit{\N.\m}}
\newcommand{\power}{\ensuremath{\mathcal{P}}} % Power
\nomenclature[A]{\power}{Power\nomunit{\W}}
\newcommand{\ForceX}{\ensuremath{F_x}} % Rotor force along X_TPP-axis
\newcommand{\ForceY}{\ensuremath{F_y}} % Rotor force along Y_TPP-axis
\newcommand{\MomX}{\ensuremath{M_x}} % Rotor moment along X_TPP-axis
\newcommand{\MomY}{\ensuremath{M_y}} % Rotor moment along Y_TPP-axis
\nomenclature[A]{\lift}{Lift\nomunit{\N}}
\nomenclature[A]{\drag}{Drag\nomunit{\N}}
\nomenclature[A]{\thrust}{Thrust\nomunit{\N}}
\nomenclature[A]{\torque}{Torque\nomunit{\N.\m}}
\nomenclature[A]{\power}{Power\nomunit{\W}}
% Coefficients
\newcommand{\cLift}{\ensuremath{c_l}} % Sectional lift coefficient
\nomenclature[A]{\cLift}{Lift coefficient\nomunit{-}}
\newcommand{\cLiftSlope}{\ensuremath{c_{l,\alpha}}} % Lift curve slope
\nomenclature[A]{\cLiftSlope}{Lift curve slope\nomunit{-}}
\newcommand{\cDrag}{\ensuremath{c_d}} % Sectional drag coefficient
\nomenclature[A]{\cDrag}{Drag coefficient\nomunit{-}}
\newcommand{\cMom}{\ensuremath{c_m}} % Sectional moment coefficient coefficient
\nomenclature[A]{\cMom}{Moment coefficient\nomunit{-}}
\newcommand{\cThrust}{\ensuremath{C_{\thrust}}} % Thrust coefficient
\nomenclature[A]{\cThrust}{Thrust coefficient\nomunit{-}}
\newcommand{\cTorque}{\ensuremath{C_{\torque}}} % Torque coefficient
\nomenclature[A]{\cTorque}{Torque coefficient\nomunit{-}}
\newcommand{\cPower}{\ensuremath{C_{\power}}} % Power coefficient
\nomenclature[A]{\cPower}{Power coefficient\nomunit{-}}
\newcommand{\cForceX}{\ensuremath{C_{F_x}}} % Longitudinal force coefficient
\newcommand{\cForceY}{\ensuremath{C_{F_y}}} % Lateral side force coefficient
\newcommand{\cMomX}{\ensuremath{C_{M_x}}} % Rolling moment coefficient
\newcommand{\cMomY}{\ensuremath{C_{M_y}}} % Pitching moment coefficient
\nomenclature[A]{\cLift}{Lift coefficient\nomunit{-}}
\nomenclature[A]{\cLiftSlope}{Lift curve slope\nomunit{-}}
\nomenclature[A]{\cDrag}{Drag coefficient\nomunit{-}}
\nomenclature[A]{\cMom}{Moment coefficient\nomunit{-}}
\nomenclature[A]{\cThrust}{Thrust coefficient\nomunit{-}}
\nomenclature[A]{\cTorque}{Torque coefficient\nomunit{-}}
\nomenclature[A]{\cPower}{Power coefficient\nomunit{-}}
% Subscripts
\nomenclature[Z]{$\left(\ \right)_1$}{Upstream of the rotor}
\nomenclature[Z]{$\left(\ \right)_2$}{At the rotor disk}
\nomenclature[Z]{$\left(\ \right)_3$}{Far downstream of the rotor}
% Coordinate system
\newcommand{\xtpp}{\ensuremath{x_{TPP}}}
\newcommand{\ytpp}{\ensuremath{y_{TPP}}}
\newcommand{\ztpp}{\ensuremath{z_{TPP}}}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment