Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Rotare
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
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
Rouma Alexandre
Rotare
Commits
8b5ef48b
Verified
Commit
8b5ef48b
authored
2 years ago
by
Thomas Lambert
Browse files
Options
Downloads
Patches
Plain Diff
feat(configs): add base config examples
parent
8c02ef71
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/configs/caradonna1981.m
+123
-0
123 additions, 0 deletions
src/configs/caradonna1981.m
src/configs/knight1937.m
+119
-0
119 additions, 0 deletions
src/configs/knight1937.m
src/configs/template.m
+171
-0
171 additions, 0 deletions
src/configs/template.m
with
413 additions
and
0 deletions
src/configs/caradonna1981.m
0 → 100644
+
123
−
0
View file @
8b5ef48b
% CARADONNA1981 Configuration file for Caradonna & Tung rotor (NASA TM-81232)
% This file is used to simulate the experiment described in NASA TM-81232 with Rotare.
% -----
%
% See also: template, rotare, validconfig.
%
% <a href="https://gitlab.uliege.be/thlamb/rotare-doc">Complete documentation (online)</a>
% --------------------------------------------------------------------------------------------------
% Ref: Caradonna and Tung, "Experimental and Analytical Studies of a Model Helicopter Rotor in
% Hover". 1981. NASA. (TM-81232)
% --------------------------------------------------------------------------------------------------
% (c) Copyright 2022 University of Liege
% Author: Thomas Lambert <t.lambert@uliege.be>
% ULiege - Aeroelasticity and Experimental Aerodynamics
% MIT License
% Repo: https://gitlab.uliege.be/thlamb/rotare
% Docs: https://gitlab.uliege.be/thlamb/rotare-doc
% Issues: https://gitlab.uliege.be/thlamb/rotare/-/issues
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ==================================================================================================
% =============================== General simulation options =======================================
% ==================================================================================================
% Autosave
Sim
.
Save
.
autosave
=
true
;
% Auto-save the simulation results in a mat file
Sim
.
Save
.
overwrite
=
true
;
% Overwrite previous result if filename is the same
Sim
.
Save
.
dir
=
'../results/'
;
% Directory where the results are saved
Sim
.
Save
.
filename
=
'caradonna'
;
% File name of the saved result
Sim
.
Save
.
appendInfo
=
true
;
% Auto append config information to filename
Sim
.
Save
.
prependTime
=
false
;
% Add the time code before the filename
Sim
.
Save
.
timeFormat
=
'YYYYmmddTHHMM'
;
% Format for the time code
% Outputs
Sim
.
Out
.
showPlots
=
false
;
% Show all plots (forces, angles, speed, ...)
Sim
.
Out
.
show3D
=
true
;
% Show the 3D view of the whole rotor
Sim
.
Out
.
hubType
=
'none'
;
% Hub (nose cone) type on the 3D view (see docs for list)
Sim
.
Out
.
console
=
true
;
% Print the final results in console
Sim
.
Out
.
verbosity
=
'min'
;
% Verbosity level of the console output ('min', 'all')
% Warnings
Sim
.
Warn
.
sonicTip
=
true
;
% Enable warnings if tip is trans/supersonic
% Miscellaneous
Sim
.
Misc
.
nonDim
=
'US'
;
% Non-dimensionalization factor ('US', 'EU')
Sim
.
Misc
.
appli
=
'heli'
;
% Type of application ('helicopter', 'propeller', 'windturbine')
% ==================================================================================================
% ==================================== Models and solvers ==========================================
% ==================================================================================================
% System
Mod
.
Syst
.
nRotors
=
1
;
% Number of rotors (if >1, rotors are coaxial)
% Solvers
Mod
.
solvers
=
{
'all'
};
% BEMT Solver ('leishman', 'indfact', 'indvel', 'stahlhut', 'all')
% Extensions/corrections
Mod
.
Ext
.
losses
=
'all'
;
% Include losses using Prandtl formula ('none', 'hub', 'tip', 'both')
% Numerical parameters
Mod
.
Num
.
convCrit
=
1e-4
;
% Convergence criterion value,
Mod
.
Num
.
maxIter
=
500
;
% Maximum number of iterations for convergence calculations
Mod
.
Num
.
azimStep
=
6
;
% Azimuthal step (for oblique flows), [deg]
Mod
.
Num
.
relax
=
0.10
;
% Relaxation coefficient (facilitate convergence of iterative schemes)
% ==================================================================================================
% ======================================== Freestream ==============================================
% ==================================================================================================
Flow
.
fluid
=
'air'
;
% Fluid ('air', 'seawater', 'freshwater')
% ==================================================================================================
% ===================================== Operating points ===========================================
% ==================================================================================================
% The four "Operating points" variables can be entered as vectors in order to study one given
% geometry over many operation points (and create a whole operating map for the rotor). If you are
% only interested in one specific case, you can just enter a scalar value.
%
% Note that the code will loop on every combination of these fours. So the total number of
% simulations can be very large if you want lots of operating points.
Op
.
speed
=
0
;
% (Axial) Velocity, [m/s]
Op
.
collective
=
[
5
,
8
,
12
];
% Collective pitch, [deg]
Op
.
rpm
=
[
1250
,
1750
,
2280
];
% Rotor angular velocity, [RPM]
Op
.
altitude
=
0
;
% Flight altitude (only used if Flow.fluid = 'air'), [m]
% ==================================================================================================
% ==================================== Airfoil parameters ==========================================
% ==================================================================================================
% ------- FIRST AIRFOIL -------
Airfoil
.
polarType
=
'file'
;
% Type of polar to use ('file', 'polynomial')
Airfoil
.
coordFile
=
'airfoil_data/naca0012.dat'
;
% If Airfoil.polarType == 'file'
Airfoil
.
polarFile
=
'airfoil_data/NACA_0012-Re_2e5-1e7.mat'
;
Airfoil
.
extrap
=
true
;
% Extrapolates polar over whole range of angles of attack ([-180,180] deg)
% ==================================================================================================
% ================================= Blade and rotor geometry =======================================
% ==================================================================================================
% The base dimensions of the blade are given as vectors with data for some representative sections
% of the blade. These vectors should have at least 2 points (the root and the tip of the blade).
% The blade elements will be interpolated using a spline rule between the available points.
Blade
.
nBlades
=
2
;
% Number of blades on the rotor, [-]
Blade
.
pitchRef
=
'chordline'
;
% Reference for the pitch angle value ('zerolift', 'chordline')
% Base dimensions (at least root and tip)
Blade
.
radius
=
[
0.1905
,
1.143
];
% Spanwise position of the blade base stations, [m]
Blade
.
chord
=
[
0.1905
,
0.1905
];
% Chord at the blade base stations; [m]
Blade
.
twist
=
[
0
,
0
];
% Twist at the blade base stations, [deg]
Blade
.
iAirfoil
=
[
1
,
1
];
% Index of the airfoil to use for the base stations, [-]
% Discretization
Blade
.
nElem
=
100
;
% Number of blade elements, [-]
% Rotor base position
Blade
.
hubPos
=
[
0
,
0
,
0
];
% Rotor center position (used for coaxial rotors)
This diff is collapsed.
Click to expand it.
src/configs/knight1937.m
0 → 100644
+
119
−
0
View file @
8b5ef48b
% KNIGHT1937 Configuration file for Knight & Hefner rotor (NACA TN-626)
% This file is used to simulate the experiment described in NACA TN-626 with Rotare.
% -----
%
% See also: template, rotare, validconfig.
%
% <a href="https://gitlab.uliege.be/thlamb/rotare-doc">Complete documentation (online)</a>
% --------------------------------------------------------------------------------------------------
% Ref: Knight and Hefner, "Static Thrust Analysis of the Lifting Airscrew". 1937. NASA. (TN-626)
% --------------------------------------------------------------------------------------------------
% (c) Copyright 2022 University of Liege
% Author: Thomas Lambert <t.lambert@uliege.be>
% ULiege - Aeroelasticity and Experimental Aerodynamics
% MIT License
% Repo: https://gitlab.uliege.be/thlamb/rotare
% Docs: https://gitlab.uliege.be/thlamb/rotare-doc
% Issues: https://gitlab.uliege.be/thlamb/rotare/-/issues
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Autosave
Sim
.
Save
.
autosave
=
true
;
% Auto-save the simulation results in a mat file
Sim
.
Save
.
overwrite
=
true
;
% Overwrite previous result if filename is the same
Sim
.
Save
.
dir
=
'../results/'
;
% Directory where the results are saved
Sim
.
Save
.
filename
=
'knight2'
;
% File name of the saved result
Sim
.
Save
.
appendInfo
=
true
;
% Auto append config information to filename
Sim
.
Save
.
prependTime
=
false
;
% Add the time code before the filename
Sim
.
Save
.
timeFormat
=
'YYYYmmddTHHMM'
;
% Format for the time code
% Outputs
Sim
.
Out
.
showPlots
=
false
;
% Show all plots (forces, angles, speed, ...)
Sim
.
Out
.
show3D
=
true
;
% Show the 3D view of the whole rotor
Sim
.
Out
.
hubType
=
'none'
;
% Hub (nose cone) type on the 3D view (see docs for list)
Sim
.
Out
.
console
=
true
;
% Print the final results in console
Sim
.
Out
.
verbosity
=
'min'
;
% Verbosity level of the console output ('min', 'all')
% Warnings
Sim
.
Warn
.
sonicTip
=
true
;
% Enable warnings if tip is trans/supersonic
% Miscellaneous
Sim
.
Misc
.
nonDim
=
'US'
;
% Non-dimensionalization factor ('US', 'EU')
Sim
.
Misc
.
appli
=
'heli'
;
% Type of application ('helicopter', 'propeller', 'windturbine')
% ==================================================================================================
% ==================================== Models and solvers ==========================================
% ==================================================================================================
% System
Mod
.
Syst
.
nRotors
=
1
;
% Number of rotors (if >1, rotors are coaxial)
% Solvers
Mod
.
solvers
=
{
'all'
};
% BEMT Solver ('leishman', 'indfact', 'indvel', 'stahlhut', 'all')
% Extensions/corrections
Mod
.
Ext
.
losses
=
'all'
;
% Include losses using Prandtl formula ('none', 'hub', 'tip', 'both')
% Numerical parameters
Mod
.
Num
.
convCrit
=
1e-4
;
% Convergence criterion value,
Mod
.
Num
.
maxIter
=
500
;
% Maximum number of iterations for convergence calculations
Mod
.
Num
.
azimStep
=
6
;
% Azimuthal step (for oblique flows), [deg]
Mod
.
Num
.
relax
=
0.10
;
% Relaxation coefficient (facilitate convergence of iterative schemes)
% ==================================================================================================
% ======================================== Freestream ==============================================
% ==================================================================================================
Flow
.
fluid
=
'air'
;
% Fluid ('air', 'seawater', 'freshwater')
% ==================================================================================================
% ===================================== Operating points ===========================================
% ==================================================================================================
% The four "Operating points" variables can be entered as vectors in order to study one given
% geometry over many operation points (and create a whole operating map for the rotor). If you are
% only interested in one specific case, you can just enter a scalar value.
%
% Note that the code will loop on every combination of these fours. So the total number of
% simulations can be very large if you want lots of operating points.
Op
.
speed
=
0
;
% (Axial) Velocity, [m/s]
Op
.
collective
=
0
:
12
;
% Collective pitch, [deg]
Op
.
rpm
=
960
;
% Rotor angular velocity, [RPM]
Op
.
altitude
=
0
;
% Flight altitude (only used if Flow.fluid = 'air'), [m]
% ==================================================================================================
% ==================================== Airfoil parameters ==========================================
% ==================================================================================================
% ------- FIRST AIRFOIL -------
Airfoil
.
polarType
=
'file'
;
% Type of polar to use ('file', 'polynomial')
Airfoil
.
coordFile
=
'airfoil_data/naca0015.dat'
;
% If Airfoil.polarType == 'file'
Airfoil
.
polarFile
=
'airfoil_data/NACA_0015-Re_2e5-1e7.mat'
;
Airfoil
.
extrap
=
true
;
% Extrapolates polar over whole range of angles of attack ([-180,180] deg)
% ==================================================================================================
% ================================= Blade and rotor geometry =======================================
% ==================================================================================================
% The base dimensions of the blade are given as vectors with data for some representative sections
% of the blade. These vectors should have at least 2 points (the root and the tip of the blade).
% The blade elements will be interpolated using a spline rule between the available points.
Blade
.
nBlades
=
2
;
% Number of blades on the rotor, [-]
Blade
.
pitchRef
=
'chordline'
;
% Reference for the pitch angle value ('zerolift', 'chordline')
% Base dimensions (at least root and tip)
Blade
.
radius
=
[
0.0381
,
0.7620
];
% Spanwise position of the blade base stations, [m]
Blade
.
radius
=
[
0.00001
,
0.7620
];
% Spanwise position of the blade base stations, [m]
Blade
.
chord
=
[
0.0508
,
0.0508
];
% Chord at the blade base stations; [m]
Blade
.
twist
=
[
0
,
0
];
% Twist at the blade base stations, [deg]
Blade
.
iAirfoil
=
[
1
,
1
];
% Index of the airfoil to use for the base stations, [-]
% Discretization
Blade
.
nElem
=
100
;
% Number of blade elements, [-]
% Rotor base position
Blade
.
hubPos
=
[
0
,
0
,
0
];
% Rotor center position (used for coaxial rotors)
This diff is collapsed.
Click to expand it.
src/configs/template.m
0 → 100644
+
171
−
0
View file @
8b5ef48b
% TEMPLATE Template configuration file for Rotare
% This file gather all options, parameters and configurations needed for a complete simulation
% with Rotare.
% It specifies the simulation parameters, the models, the blade/rotor geometry, the operation
% parameters and the free stream variables.
%
% Note:
% This template does not correspond to any existing rotor. These are simply to showcase the
% various configuration settings available.
%
% Documentation:
% More details regarding this file and the possible configurations parameters can be found in the
% documentation of Rotare <a href="https://gitlab.uliege.be/thlamb/rotare-doc/">online</a>.
%
% Input Validation:
% Before being used by Rotare, this configuration file will be passed through a validation
% function (validateconfig) that will check if all inputs are properly formatted. If that step
% fails, an error message will be displayed with details on how to fix the configuration.
%
% Usage:
% <strong>This is a template configuration file</strong>. It is recommended to copy it an create
% your own configuration by modifying the copy. That way you will always be able to fallback on
% this template if needed, or read comments with explanation in case you deleted them.
% -----
%
% Syntax:
% run('template');
%
% Inputs:
% /
%
% Outputs:
% Sim : General simulation parameters
% Mod : Models and solver parameters
% Flow : Free stream parameters
% Design : Operating points of the rotor to simulate
% Airfoil : Airfoil parameters
% Blade : Blade and rotor geometric parameters
%
% See also: rotare, validconfig.
%
% <a href="https://gitlab.uliege.be/thlamb/rotare-doc">Complete documentation (online)</a>
% --------------------------------------------------------------------------------------------------
% (c) Copyright 2022 University of Liege
% Author: Thomas Lambert <t.lambert@uliege.be>
% ULiege - Aeroelasticity and Experimental Aerodynamics
% MIT License
% Repo: https://gitlab.uliege.be/thlamb/rotare
% Docs: https://gitlab.uliege.be/thlamb/rotare-doc
% Issues: https://gitlab.uliege.be/thlamb/rotare/-/issues
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ==================================================================================================
% =============================== General simulation options =======================================
% ==================================================================================================
% Autosave
Sim
.
Save
.
autosave
=
false
;
% Auto-save the simulation results in a mat file
Sim
.
Save
.
overwrite
=
false
;
% Overwrite previous result if filename is the same
Sim
.
Save
.
dir
=
'../results/'
;
% Directory where the results are saved
Sim
.
Save
.
filename
=
'tempalteRes'
;
% File name of the saved result
Sim
.
Save
.
appendInfo
=
true
;
% Auto append config information to filename
Sim
.
Save
.
prependTime
=
false
;
% Add the time code before the filename
Sim
.
Save
.
timeFormat
=
'YYYYmmddTHHMM'
;
% Format for the time code
% Outputs
Sim
.
Out
.
showPlots
=
true
;
% Show all plots (forces, angles, speed, ...)
Sim
.
Out
.
show3D
=
false
;
% Show the 3D view of the whole rotor
Sim
.
Out
.
hubType
=
'tangent_ogive'
;
% Hub (nose cone) type on the 3D view (see docs for list)
Sim
.
Out
.
console
=
true
;
% Print the final results in console
Sim
.
Out
.
verbosity
=
'min'
;
% Verbosity level of the console output ('min', 'all')
% Warnings
Sim
.
Warn
.
sonicTip
=
true
;
% Enable warnings if tip is trans/supersonic
% Miscellaneous
Sim
.
Misc
.
nonDim
=
'US'
;
% Non-dimensionalization factor ('US', 'EU')
Sim
.
Misc
.
appli
=
'heli'
;
% Type of application ('helicopter', 'propeller', 'windturbine')
% ==================================================================================================
% ==================================== Models and solvers ==========================================
% ==================================================================================================
% System
Mod
.
Syst
.
nRotors
=
1
;
% Number of rotors (if >1, rotors are coaxial)
% Solvers
Mod
.
solvers
=
'stahlhut'
;
% BEMT Solver ('leishman', 'indfact', 'indvel', 'stahlhut', 'all')
% Extensions/corrections
Mod
.
Ext
.
losses
=
'all'
;
% Include losses using Prandtl formula ('none', 'hub', 'tip', 'both')
% Numerical parameters
Mod
.
Num
.
convCrit
=
1e-4
;
% Convergence criterion value,
Mod
.
Num
.
maxIter
=
500
;
% Maximum number of iterations for convergence calculations
Mod
.
Num
.
azimStep
=
6
;
% Azimuthal step (for oblique flows), [deg]
Mod
.
Num
.
relax
=
0.10
;
% Relaxation coefficient (facilitate convergence of iterative schemes)
% ==================================================================================================
% ======================================== Freestream ==============================================
% ==================================================================================================
Flow
.
fluid
=
'air'
;
% Fluid ('air', 'seawater', 'freshwater')
% ==================================================================================================
% ===================================== Operating points ===========================================
% ==================================================================================================
% The four "Operating points" variables can be entered as vectors in order to study one given
% geometry over many operation points (and create a whole operating map for the rotor). If you are
% only interested in one specific case, you can just enter a scalar value.
%
% Note that the code will loop on every combination of these fours. So the total number of
% simulations can be very large if you want lots of operating points.
Op
.
speed
=
2
:
2
:
10
;
% (Axial) Velocity, [m/s]
Op
.
collective
=
[
2
,
5
,
8
];
% Collective pitch, [deg]
Op
.
rpm
=
[
100
,
1300
,
1500
];
% Rotor angular velocity, [RPM]
Op
.
altitude
=
0
;
% Flight altitude (only used if Flow.fluid = 'air'), [m]
% ==================================================================================================
% ==================================== Airfoil parameters ==========================================
% ==================================================================================================
% ------- FIRST AIRFOIL -------
Airfoil
.
coordFile
=
'airfoil_data/naca0015.dat'
;
Airfoil
.
polarType
=
'file'
;
% Type of polar to use ('file', 'polynomial')
% If Airfoil.polarType == 'file'
Airfoil
.
polarFile
=
'airfoil_data/NACA_0015-Re_2e5-1e7.mat'
;
Airfoil
.
extrap
=
true
;
% Extrapolates polar over whole range of angles of attack ([-180,180] deg)
% If Airfoil.polarType == 'polynomial'
Airfoil
.
clPoly
=
[
0.1101
,
0.4409
];
% Polynomial coefficients for Cl, [1/deg]
Airfoil
.
cdPoly
=
[
0.0006
,
-
0.0042
,
0.005
];
% Polynomial coefficients for Cd, [1/deg]
% ------- SECOND AIRFOIL -------
Airfoil
(
2
)
.
coordFile
=
'airfoil_data/naca0012.dat'
;
Airfoil
(
2
)
.
polarType
=
'file'
;
% Type of polar to use ('file', 'polynomial')
% If Airfoil.polarType == 'file'
Airfoil
(
2
)
.
polarFile
=
'airfoil_data/NACA_0012-Re_2e5-1e7.mat'
;
Airfoil
(
2
)
.
extrap
=
true
;
% Extrapolates polar over whole range of angles of attack ([-180,180] deg)
% If Airfoil.polarType == 'polynomial'
Airfoil
(
2
)
.
clPoly
=
[
0.1101
,
0.4409
];
% Polynomial coefficients for Cl, [1/deg]
Airfoil
(
2
)
.
cdPoly
=
[
0.0006
,
-
0.0042
,
0.005
];
% Polynomial coefficients for Cd, [1/deg]
% ==================================================================================================
% ================================= Blade and rotor geometry =======================================
% ==================================================================================================
% The base dimensions of the blade are given as vectors with data for some representative sections
% of the blade. These vectors should have at least 2 points (the root and the tip of the blade).
% The blade elements will be interpolated using a spline rule between the available points.
Blade
.
nBlades
=
3
;
% Number of blades on the rotor, [-]
Blade
.
pitchRef
=
'zerolift'
;
% Reference for the pitch angle value ('zerolift', 'chordline')
% Base dimensions (at least root and tip)
Blade
.
radius
=
[
0.1
,
0.4
,
2
];
% Spanwise position of the blade base stations, [m]
Blade
.
chord
=
[
0.3
,
0.27
,
0.10
];
% Chord at the blade base stations; [m]
Blade
.
twist
=
[
40
,
30
,
3
];
% Twist at the blade base stations, [deg]
Blade
.
iAirfoil
=
[
1
,
2
,
2
];
% Index of the airfoil to use for the base stations, [-]
% Discretization
Blade
.
nElem
=
100
;
% Number of blade elements, [-]
% Rotor base position
Blade
.
hubPos
=
[
0
,
0
,
0
];
% Rotor center position (used for coaxial rotors)
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