diff --git a/contents/preamble.tex b/contents/preamble.tex new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/contents/tech-solvers.tex b/contents/tech-solvers.tex index 55f0df650432e895a22a52c6f073b32c021f6e6b..e787bc472089c0df97fe89c938f15165fa18255f 100644 --- a/contents/tech-solvers.tex +++ b/contents/tech-solvers.tex @@ -14,4 +14,170 @@ \label{chap:tech:solvers} +\section{Blade Element theory} +\label{chap:tech:solvers:BET} + +Thrust, torque and power for the whole rotor: + +\begin{align} + \label{eq:tech:solvers:BET:thrust} + \thrust &= \nBlades (d\lift \sin\indAngle - d\drag \cos\indAngle)\\ + \label{eq:tech:solvers:BET:torque} + \torque &= \nBlades (d\lift \cos\indAngle + d\drag \sin\indAngle) \aRad\\ + \label{eq:tech:solvers:BET:power} + \power &= \nBlades (d\lift \cos\indAngle + d\drag \sin\indAngle) \aRad \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} + \label{eq:tech:solvers:mom:mass} + \mFlow = \dens (\aVel_A + \indAxVel) d\area = \dens (\aVel_A + \indAxVel) 2 \pi y dy +\end{equation} + +Thrust: +\begin{equation} + \label{eq:tech:solvers:mom:thrust} + \begin{split} + d\thrust & = \mFlow \indAxWake \\ + & = \mFlow (2\indAxVel) \\ + & = 4\pi \dens (\aVel_A + \indAxVel) \indAxVel y dy + \end{split} +\end{equation} +Likewise, the torque is given by +\begin{equation} + \label{eq:tech:solvers:mom:torque} + \begin{split} + d\torque & = \mFlow \aRad \indSwirl + \end{split} +\end{equation} + + + +\section{Solvers} +\label{chap:tech:solvers:solvers} +\rotare implements four different solvers, all of them based on the same set of +initial equations +(see~\ref{eq:tech:solvers:BET:thrust}-\ref{eq:tech:solvers:BET:power} and \todo{ref +for momentum eq}). + +These solver differs by introducing some additional assumptions or by modifying +the nonlinear system of equations (mostly the momentum equations) in order to +simplify its formulation or the convergence of its solution. + +\subsection{Leishman solver} +\label{chap:tech:solvers:leishman} +This solver is based on the methodology described in \todo{cite: Leishman}. + + + +\subsection{Induction factor} +\label{chap:tech:solvers:indfact} + +This solver is commonly used for the study of propellers or wind turbines. It +does not rely on additional assumptions, but rather on a reformulation of the +momentum equations in terms of induction factors. This induction factors lighten +a bit the formulation. The main drawback is that they are not compatible for the +analysis of rotors with zero external velocity (such as helicopter in hover or +propellers in idle). + +We start by defining the axial and tangential (swirl) induction factors: +\begin{align} + \label{eq:tech:solvers:indfact:a} + \aVel_A &= (1+\axFact)\aVel_\infty \\ + \label{eq:tech:solvers:indfact:b} + \aVel_T &= (1-b)\angVel \aRad +\end{align} +and then inject these in the momentum equations \ref{eq:tech:solvers:mom:thrust} +and (\ref{eq:tech:solvers:mom:torque}). + +As it can be seen directly in Eq.\ref{eq:tech:solvers:indfact:a}, this +formulation falls down when the free stream velocity, $\aVel_\infty$, is zero. +In that situation, it is more interesting to keep the original formulation for +the thrust equation (in terms of velocities) and only use the tangential inflow +ratio in the torque equation. + +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 + \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 + \end{split} +\end{equation} + +\subsubsection{Resolution} +The system made of the Blade Element equations and the new form of the momentum +equations is then solved using \matlab's \lst{fsolve} function in order to +determine the value of both induction factors. The solution is initialized with +an axial inflow factor of 0.01 and assuming no swirl is induced. + + + +\subsection{Induced velocities} +\label{chap:tech:solvers:indvel} + +This solver is a pure resolution of the initial system, without any major +rewrite or additional assumptions. It is a bit more formal, but has the benefit +of being directly usable in any flow condition. + +\subsubsection{Resolution} +The system is solved using \matlab's \lst{fsolve} function in order to determine +directly the induced velocities at the rotor disk. The solution is initialized +by considering that the axial induced velocity is 0.01 m/s and the tangential +component is 0. + + +\subsection{Stahlhut solver} +\label{chap:tech:solvers:stahlhut} +This solver relies on a complete rewriting of the system in a single nonlinear +transcendental equation. This improves significantly the convergence of the +system and facilitate the determination of a solution. The only drawback is that +the equation formed is much more complex and less intuitive than the ones at the +base of the system. + + +\section{Coaxial rotors} +\label{chap:tech:solver:coax} + +The analysis of coaxial rotors is currently supported for either hovering/idle +rotors or axial flows only. + +In that cases, the first rotor is evaluated exactly as if it was in isolation. +The axial and swirl velocity induced by the first rotor as then passed to the +second rotor as inlet velocity. The contraction of the wake is then calculated +based on the distance between the two rotors and the velocity profile is then +adapted accordingly. +The second rotor is then evaluated as if it was in isolation as well, but with +the new inlet velocity profile. + + +\section{Oblique flows} +\label{chap:tech:solver:oblique} + +\rotare currently implements oblique flows for single isolated rotors only. The +analysis of such flows for multi-rotor systems involves the determination of the +actual wake geometry. This is commonly done through other methods (vortex +sheets), which is currently out of the scope of this software. + +For oblique flows, the solution of the blade elements will depend on the +azimuthal position of the blade. It is therefore required to calculate the +forces for all azimuthal positions and then integrate around the complete +circle. + diff --git a/style/definitions.sty b/style/definitions.sty index cf08b53e3390a9c15680fd525f25076e4a198f0d..5efeae8684685ba8ed038ffa752b8f000f540122 100644 --- a/style/definitions.sty +++ b/style/definitions.sty @@ -61,31 +61,34 @@ % --- Velocities --------------------------------------------------------------- \newcommand{\indSwirl}{\ensuremath{u_i}} % Swirl velocity, in-plane toward rot blade -\newcommand{\indAxVel}{\ensuremath{u_i}} % Induced velocity, normal to rotor dis +\newcommand{\indAxVel}{\ensuremath{v_i}} % Induced velocity, normal to rotor dis \newcommand{\airspeed}{\ensuremath{V_\infty}} % Freestream velocity -\newcommand{\velA}{\ensuremath{V_A}} % Axial velocity component -\newcommand{\velR}{\ensuremath{V_R}} % Resultant velocity at the rotor plane -\newcommand{\velRadial}{\ensuremath{V_\text{radial}}} % Radial component of freestream velocity -\newcommand{\velT}{\ensuremath{V_T}} % Tangential component at the rotor plane -\newcommand{\indAxWake}{\ensuremath{w}} % Slipstream velocity downstream +\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 +\newcommand{\tgFact}{\ensuremath{b}} % Tangential induciton factor + \newcommand{\angVel}{\ensuremath{\Omega}} % Angular velocity -\newcommand{\aoa}{\ensuremath{\alpha}} % Angle of attack -\newcommand{\aoaZero}{\ensuremath{\alpha_0}} % Zero-lift angle of attack % --- Angles ------------------------------------------------------------------- -\newcommand{\sweep}{\ensuremath{\Lambda}} % Circulation +\newcommand{\sweep}{\ensuremath{\Lambda}} % Sweep +\newcommand{\indAngle}{\ensuremath{\phi}} % Induced angle +\newcommand{\aoa}{\ensuremath{\alpha}} % Angle of attack % --- Others ------------------------------------------------------------------- \newcommand{\area}{\ensuremath{A}} % (Rotor) Area \newcommand{\radius}{\ensuremath{R}} % Rotor radius -\newcommand{\relRad}{\ensuremath{r}} % Nondimensional radial position along the blade -\newcommand{\absRad}{\ensuremath{y}} % Radial distance along the blade +\newcommand{\rRad}{\ensuremath{r}} % Nondimensional radial position along the blade +\newcommand{\aRad}{\ensuremath{y}} % Radial distance along the blade \newcommand{\advRat}{\ensuremath{\mathcal{J}}} % Advance ratio \newcommand{\mFlow}{\ensuremath{\dot{m}}} % Mass flow rate \newcommand{\mach}{\ensuremath{\mathcal{M}}} % Mach number +\newcommand{\reynolds}{\ensuremath{\mathcal{Re}}} % Reynolds number +\newcommand{\dens}{\ensuremath{\rho}} % Density \newcommand{\nBlades}{\ensuremath{N_b}} % Number of blades % --- Forces, torques, powers, etc ---------------------------------------------