Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Documentation
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Rotare
Documentation
Commits
4b8ddf31
Verified
Commit
4b8ddf31
authored
2 years ago
by
Thomas Lambert
Browse files
Options
Downloads
Patches
Plain Diff
style(nomencl): major symbols adjustments
parent
a213c5d2
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Pipeline
#9742
passed
2 years ago
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
contents/tech-solvers.tex
+44
-31
44 additions, 31 deletions
contents/tech-solvers.tex
preamble.tex
+2
-2
2 additions, 2 deletions
preamble.tex
style/symbols.sty
+76
-53
76 additions, 53 deletions
style/symbols.sty
with
122 additions
and
86 deletions
contents/tech-solvers.tex
+
44
−
31
View file @
4b8ddf31
...
...
@@ -6,7 +6,7 @@
% https://gitlab.uliege.be/thlamb/Rotare-doc
%
% License: CC-BY-SA-4.0
% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
% This work is licensed under a Creative Commons Attribution-Share
Alike 4.0
% International License (https://creativecommons.org/licenses/by-sa/4.0/)
% ------------------------------------------------------------------------------
...
...
@@ -24,6 +24,7 @@ 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.
\fxerror
{
Fix nomenclature on figure, once symbols name defined
}
\begin{figure}
[ht]
\begin{center}
...
...
@@ -35,16 +36,16 @@ be represented as a simple 2D airfoil section.
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
$
\
aP
itch
$
with respect to the rotor disk. This pitch
lies at a total pitch angle
$
\
p
itch
$
with respect to the rotor disk. This pitch
can be decomposed in different contributions:
\begin{equation}
\
aP
itch
=
\
aT
wist
+
\
aC
oll
\
p
itch
=
\
t
wist
+
\
c
oll
\label
{
eq:tech:solv:pitch
}
\end{equation}
Where
$
\
aT
wist
$
is the twist angle of the blade (
\ie
a radial variation of
pitch along the blade) and
$
\
aC
oll
$
is the collective pitch of the blade (
\ie
a
Where
$
\
t
wist
$
is the twist angle of the blade (
\ie
a radial variation of
pitch along the blade) and
$
\
c
oll
$
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.
...
...
@@ -56,12 +57,12 @@ 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
$
\a
A
zim
$
.
which can be represented though the azimuthal angle
$
\azim
$
.
\begin{align}
\label
{
eq:tech:solvers:BET:vAx
}
\vAx
&
=
\
airspeed
\sin\aoaR
+
\iAx
\\
\vAx
&
=
\
vAir
\sin\aoaR
+
\
v
iAx
\\
\label
{
eq:tech:solvers:BET:vTg
}
\vTg
&
=
\
airspeed
\cos\aoaR
\sin\a
A
zim
+
\angVel
\radA
-
\iTg
\\
\vTg
&
=
\
vAir
\cos\aoaR
\sin\azim
+
\angVel
\radA
-
\
v
iTg
\\
\label
{
eq:tech:solvers:BET:vRel
}
\vRel
&
=
\sqrt
{
\vAx
^
2+
\vTg
^
2
}
\end{align}
...
...
@@ -81,7 +82,7 @@ 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
= (
\
aP
itch
-
\aoa
_
0) -
\aInd
\aoa
= (
\
p
itch
-
\aoa
_
0) -
\aInd
\end{equation}
The angle of attack, along with the Reynolds number can be used to determine the
...
...
@@ -118,30 +119,42 @@ contribution of the element
\section
{
Momentum theory
}
\label
{
chap:tech:solvers:mom
}
Mass flow rate through the disk:
The momentum theory considers the rotor as an infinitesimally thin actuator
disk. Following this theory, we consider that
\begin{itemize}
\item
the flow velocity and pressure are constant on every section normal to
the throughflow in the rotor stream tube;
\item
the rotor induces an abrupt change of the flow conditions by causing a
pressure jump across the disk.
\end{itemize}
Following the Blade Element Theory, the overall control volume can be further
refined in infinitesimal concentrically arranged annuli whose area is expressed
by
$
dA
=
2
\pi
\radA
\dy
$
. The mass flow rate through any individual annulus is
then given by:
\begin{equation}
\label
{
eq:tech:solvers:mom:mass
}
\mFlow
=
\dens
(
\
aVel
_
A +
\indAxVel
) d
\area
=
\dens
(
\
aVel
_
A +
\indAxVel
) 2
\pi
y dy
\mFlow
=
\dens
(
\
vAx
+
\viAx
) d
\area
=
\dens
(
\
vAx
+
\viAx
) 2
\pi
y dy
\end{equation}
Th
rust
:
Th
e axial and tangential momentum balance through the disk give
:
\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
d
\thrust
&
=
\mFlow
(
\vAx
[d]
-
\vAx
[u]
)
\\
&
=
\mFlow
\vSlip
\\
&
=
\mFlow
(2
\viAx
)
\\
&
= 4
\pi
\dens
(
\vAx
+
\viAx
)
\viAx
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
\radA
\
indSwirl
d
\torque
&
=
\mFlow
\radA
\
viTg
\end{split}
\end{equation}
...
...
@@ -152,7 +165,7 @@ Likewise, the torque is given by
\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
}
).
\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
...
...
@@ -176,15 +189,15 @@ 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
\\
\
vAx
&
= (1+
\axFact
)
\
vAir
\\
\label
{
eq:tech:solvers:indfact:b
}
\
aVel
_
T
&
= (1-b)
\angVel
\radA
\
vTg
&
= (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
}
).
As it can be seen directly in E
q
.
\ref
{
eq:tech:solvers:indfact:a
}
, this
formulation falls down when the free stream velocity,
$
\
aVel
_
\infty
$
, is zero.
As it can be seen directly in E
Q
.
\ref
{
eq:tech:solvers:indfact:a
}
, this
formulation falls down when the free stream velocity,
$
\
vAir
$
, 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.
...
...
@@ -193,23 +206,23 @@ 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
\radA
dy
\\
&
= 4
\pi
\dens
(1 +
\axFact
) a
\
aVel
_
\infty
^
2
\radA
dy
d
\thrust
&
= 4
\pi
\dens
(
\
vAx
+
\viAx
)
\viAx
\radA
dy
\\
&
= 4
\pi
\dens
(1 +
\axFact
) a
\
vAir
^
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
\radA
\dens
(
\
aVel
_
A +
\indAxVel
) (2
\tgFact\angVel\radA
)
d
\torque
&
= 2
\pi
\radA
\dens
(
\
vAx
+
\viAx
) (2
\tgFact\angVel\radA
)
\radA
dy
\\
&
= 4
\pi
\radA
^
3
\dens
(1 +
\axFact
)
\
aVel
_
\infty
\tgFact
\angVel
dy
&
= 4
\pi
\radA
^
3
\dens
(1 +
\axFact
)
\
vAir
\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
{
f
solve
}
function in order to
equations is then solved using
\matlab
's
\lst
{
solve
}
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.
...
...
@@ -223,7 +236,7 @@ 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
{
f
solve
}
function in order to determine
The system is solved using
\matlab
's
\lst
{
solve
}
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.
...
...
This diff is collapsed.
Click to expand it.
preamble.tex
+
2
−
2
View file @
4b8ddf31
...
...
@@ -31,7 +31,7 @@
% Encoding and language
% ***********************************************
\PassOptionsToPackage
{
utf8
}{
inputenc
}
\usepackage
{
inputenc
}
%
\usepackage{inputenc}
Not needed for lualatex
\usepackage
[english]
{
babel
}
% Debugging
...
...
@@ -96,5 +96,5 @@
\usepackage
{
transparent
}
% Fixme for todo messages in text
\usepackage
[draft, inline, marginclue]
{
fixme
}
\usepackage
[draft,
nomargin,
inline, marginclue]
{
fixme
}
\fxsetup
{
theme=color
}
This diff is collapsed.
Click to expand it.
style/symbols.sty
+
76
−
53
View file @
4b8ddf31
...
...
@@ -11,100 +11,118 @@
% https://gitlab.uliege.be/thlamb/rotare-doc
% ------------------------------------------------------------------------------
% Package for the nomenclature and layout tweaks
\RequirePackage
[stdsubgroups]
{
nomencl
}
% ==============================================================================
% PACKAGES AND OPTIONS
% ==============================================================================
\RequirePackage
[stdsubgroups]
{
nomencl
}
% Nomenclature management
\makenomenclature
\RequirePackage
{
siunitx
}
% SI units
% Tweak layout and display of units in nomenclature
\newcommand
{
\nomunit
}
[1]
{
%
\renewcommand
{
\nomentryend
}{
\hspace*
{
\fill
}
\si
{
#1
}}
%
}
% ==============================================================================
% GENERAL SYMBOLS
% ==============================================================================
% --- Velocities ---------------------------------------------------------------
% Main velocities components
\newcommand
{
\vAx
}{
\ensuremath
{
V
_
\perp
}}
\newcommand
{
\vTg
}{
\ensuremath
{
V
_
\theta
}}
\newcommand
{
\vRel
}{
\ensuremath
{
V
}}
\newcommand
{
\
airspeed
}{
\ensuremath
{
V
_
\infty
}}
\newcommand
{
\vAx
}
[1][]
{
\ensuremath
{
V
_
{
#1
}
}}
\newcommand
{
\vTg
}
[1][]
{
\ensuremath
{
U
_{
#1
}
}}
\newcommand
{
\vRel
}
[1][]
{
\ensuremath
{
W
}}
\newcommand
{
\
vAir
}{
\ensuremath
{
V
_
\infty
}}
\nomenclature
[A]
{
\vRel
}{
Relative velocity
\nomunit
{
\m\per\s
}}
\nomenclature
[A]
{
\vAx
}{
Axial velocity
\nomunit
{
\m\per\s
}}
\nomenclature
[A]
{
\vTg
}{
Tangential velocity
\nomunit
{
\m\per\s
}}
\nomenclature
[A]
{
\
airspeed
}{
Freestream velocity
\nomunit
{
\m\per\s
}}
\nomenclature
[A]
{
\
vAir
}{
Freestream velocity
\nomunit
{
\m\per\s
}}
% Induced velocities
\newcommand\iAx
[1][]
{
\ensuremath
{
v
_{
#1i
}}}
\newcommand
{
\iTg
}
[1][]
{
\ensuremath
{
u
_{
#1i
}}}
\newcommand
{
\viAx
}{
\ensuremath
{
v
_{
i
}}}
\newcommand
{
\viTg
}{
\ensuremath
{
u
_{
i
}}}
\newcommand
{
\vSlip
}{
\ensuremath
{
w
}}
\nomenclature
[A]
{
\iAx
}{
Induced axial velocity
\nomunit
{
\m\per\s
}}
\nomenclature
[A]
{
\iTg
}{
Induced tangential velocity
\nomunit
{
\m\per\s
}}
\newcommand
{
\indSwirl
}{
\ensuremath
{
u
_
i
}}
\newcommand
{
\indAxVel
}{
\ensuremath
{
v
_
i
}}
\newcommand
{
\aVel
}{
\ensuremath
{
V
}}
\newcommand
{
\indAxWake
}{
\ensuremath
{
v
_
w
}}
\newcommand
{
\indSwirlWake
}{
\ensuremath
{
u
_
w
}}
\nomenclature
[A]
{
\viAx
}{
Induced axial velocity
\nomunit
{
\m\per\s
}}
\nomenclature
[A]
{
\viTg
}{
Induced tangential velocity
\nomunit
{
\m\per\s
}}
\nomenclature
[A]
{
\vSlip
}{
Slipsteam velocity in the far wake
\nomunit
{
\m\per\s
}}
% Induction factors
\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
% Other velocities
\newcommand
{
\angVel
}{
\ensuremath
{
\Omega
}}
\nomenclature
[G]
{
\angVel
}{
Angular velocity
\nomunit
{
\per\s
}}
% --- Angles -------------------------------------------------------------------
\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
{
\
twist
}{
\ensuremath
{
\
chi
}}
\newcommand
{
\
sweep
}{
\ensuremath
{
\
Lambda
}}
\newcommand
{
\
coll
}{
\ensuremath
{
\
beta
_
0
}}
\newcommand
{
\
pitch
}{
\ensuremath
{
\
beta
}}
\newcommand
{
\aoaR
}{
\ensuremath
{
\zeta
}}
\newcommand
{
\azim
}{
\ensuremath
{
\psi
}}
\newcommand
{
\aInd
}{
\ensuremath
{
\phi
}}
\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]
{
\
twist
}{
Twist angle (stagger for propellers)
\nomunit
{}}
\nomenclature
[G]
{
\
sweep
}{
Blade sweep
angle
\nomunit
{}}
\nomenclature
[G]
{
\
coll
}{
Collective pitch angle
\nomunit
{}}
\nomenclature
[G]
{
\
pitch
}{
Pitch
angle
\nomunit
{}}
\nomenclature
[G]
{
\aoaR
}{
Rotor angle of attack
\nomunit
{}}
\nomenclature
[G]
{
\azim
}{
Azimuthal angle
\nomunit
{}}
\nomenclature
[G]
{
\aInd
}{
Induced angle
\nomunit
{}}
% --- Others -------------------------------------------------------------------
\newcommand
{
\area
}{
\ensuremath
{
A
}}
% (Rotor) Area
\nomenclature
[A]
{
\area
}{
Area
\nomunit
{
\m
^
2
}}
% --- Lengths ------------------------------------------------------------------
\newcommand
{
\chord
}{
\ensuremath
{
c
}}
% Rotor radius
\newcommand
{
\radius
}{
\ensuremath
{
R
}}
% Rotor radius
\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
\newcommand
{
\mFlow
}{
\ensuremath
{
\dot
{
m
}}}
% Mass flow rate
\newcommand
{
\dy
}{
\ensuremath
{
dy
}}
% Mass flow rate
% Lengths
\newcommand
{
\chord
}{
\ensuremath
{
c
}}
\newcommand
{
\radius
}{
\ensuremath
{
R
}}
\newcommand
{
\radR
}{
\ensuremath
{
r
}}
\newcommand
{
\radA
}{
\ensuremath
{
y
}}
\newcommand
{
\dy
}{
\ensuremath
{
dy
}}
\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
}}
% Surfaces
\newcommand
{
\area
}{
\ensuremath
{
A
}}
% (Rotor) Area
\nomenclature
[A]
{
\area
}{
Area
\nomunit
{
\m
^
2
}}
% --- Non-dimensional ----------------------------------------------------------
\newcommand
{
\advRat
}{
\ensuremath
{
\mathcal
{
J
}}}
% Advance ratio
\newcommand
{
\mach
}{
\ensuremath
{
\mathcal
{
M
}}}
% Mach number
\newcommand
{
\reynolds
}{
\ensuremath
{
Re
}}
% Reynolds number
\newcommand
{
\dens
}{
\ensuremath
{
\rho
}}
% Density
\newcommand
{
\nBlades
}{
\ensuremath
{
N
_
b
}}
% Number of blades
% solidity
\nomenclature
[A]
{
\advRat
}{
Advance ratio
\nomunit
{
-
}}
\nomenclature
[A]
{
\mach
}{
Mach number
\nomunit
{
-
}}
\nomenclature
[A]
{
\reynolds
}{
Reynolds number
\nomunit
{
-
}}
% --- Others -------------------------------------------------------------------
\newcommand
{
\dens
}{
\ensuremath
{
\rho
}}
\newcommand
{
\mFlow
}{
\ensuremath
{
\dot
{
m
}}}
\nomenclature
[A]
{
\dens
}{
Density
\nomunit
{
kg
\per\m
^
3
}}
\nomenclature
[A]
{
\mFlow
}{
Mass flow rate
\nomunit
{
\kg\per\s
}}
\newcommand
{
\nBlades
}{
\ensuremath
{
N
_
b
}}
\nomenclature
[A]
{
\nBlades
}{
Number of blades
\nomunit
{
-
}}
% --- Forces, torques, powers, etc ---------------------------------------------
% Foces
...
...
@@ -145,14 +163,19 @@
\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
}
% ==============================================================================
% Subscripts
% ==============================================================================
\nomenclature
[Z]
{$
\left
(
\ \right
)
_
u
$}{
Upstream of the rotor
}
\nomenclature
[Z]
{$
\left
(
\ \right
)
_
d
$}{
Far downstream of the rotor (slipstream)
}
% ==============================================================================
% COORDINATES
% ==============================================================================
% Coordinate system
\newcommand
{
\xtpp
}{
\ensuremath
{
x
_{
TPP
}}}
\newcommand
{
\ytpp
}{
\ensuremath
{
y
_{
TPP
}}}
\newcommand
{
\ztpp
}{
\ensuremath
{
z
_{
TPP
}}}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment