diff --git a/contents/tech-solvers.tex b/contents/tech-solvers.tex index bd83c90ee2c4830e88126f0a8b90b580f446b94a..2c7ec4beb3c2cfae131559863a79731d51ee684e 100644 --- a/contents/tech-solvers.tex +++ b/contents/tech-solvers.tex @@ -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} diff --git a/preamble.tex b/preamble.tex index ca6ae5b406c07e60853c355fe079796080a4f3a4..754cf6b85ad6131c9830ad69ee0a58f5e525ae97 100644 --- a/preamble.tex +++ b/preamble.tex @@ -96,5 +96,5 @@ \usepackage{transparent} % Fixme for todo messages in text -\usepackage[inline, marginclue]{fixme} +\usepackage[draft, inline, marginclue]{fixme} \fxsetup{theme=color} diff --git a/style/definitions.sty b/style/definitions.sty index d9705b818d62ff17ee62865e2651a07eca146b31..f5c1881e2abb18fdb02c247877e44007c2cad847 100644 --- a/style/definitions.sty +++ b/style/definitions.sty @@ -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} diff --git a/style/symbols.sty b/style/symbols.sty index 0b4e72eda229fc78ca144af8c58355878cecef06..e9817b7251676f115407965967413c6c4687fff7 100644 --- a/style/symbols.sty +++ b/style/symbols.sty @@ -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}}} +