Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/source/user/aerodyn/driver.rst
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ Yawing occurs around the :math:`z_n` axis, the rotor rotates about the :math:`x
Two turbine input formats are supported:

- basic (`BasicHAWTFormat=True`): Basic horizontal axis wind turbine (HAWT) format.
In this format, the turbine geometry is entirely determined by the number of blades (`NumBlades`), the hub radius (`HubRad`), the hub height (`HubHt`), the overhang (`Overhang`), the shaft tilt (`ShftTilt`) and the precone (`Precone`), as shown in :numref:`fig:BasicGeometry`.
In this format, the turbine geometry is entirely determined by the number of blades (`NumBlades`), the hub radius (`HubRad`), the hub height (`HubHt`), the overhang (`Overhang`), the shaft tilt (`ShftTilt`), the precone (`Precone`), and the vertical distance from the tower-top to the rotor shaft (`Twr2Shft`), as shown in :numref:`fig:BasicGeometry`.
The definition of each parameter follows the ElastoDyn convention. For example, `HubRad` specifies the radius from the center-of-rotation to the blade root along the (possibly preconed) blade-pitch axis and must be greater than zero. `HubHt` specifies the elevation of the hub center above the ground for land-based wind turbines, above the mean sea level (MSL) for offshore wind turbines, or above the seabed for MHK turbines. `Overhang` specifies the distance along the (possibly tilted) rotor shaft between the tower centerline and hub center and is positive downwind (use a negative number for upwind rotors). `ShftTilt` is the angle (in degrees) between the rotor shaft and the horizontal plane, and positive `ShftTilt` means that the downwind end of the shaft is the highest (upwind turbines have negative `ShftTilt` for improved tower clearance). `Precone` is the angle (in degrees) between a flat rotor disk and the cone swept by the blades, positive downwind (upwind turbines have negative `Precone` for improved tower clearance).

.. figure:: figs/ad_driver_geom.png
Expand All @@ -171,6 +171,7 @@ Two turbine input formats are supported:
-7 Overhang(1) - Overhang (m)
-6 ShftTilt(1) - Shaft tilt (deg)
-4 Precone(1) - Blade precone (deg)
3.09343 Twr2Shft(1) - Vertical distance from the tower-top to the rotor shaft (m)


- advanced (`BasicHAWTFormat=False`): The position and orientation of the tower base, nacelle, hub, and individual blades can be arbitrarily defined. This can be used for HAWT and any other turbine concepts.
Expand Down Expand Up @@ -445,6 +446,7 @@ An example of an AeroDyn driver for a basic inflow, basic HAWT, and combined cas
-7 Overhang(1) - Overhang (m)
-6 ShftTilt(1) - Shaft tilt (deg)
-4 Precone(1) - Blade precone (deg)
3.09343 Twr2Shft(1) - Vertical distance from the tower-top to the rotor shaft (m)
----- Turbine(1) Motion [used only when AnalysisType=1] ---------------------------------
1 BaseMotionType(1) - Type of motion prescribed for this base {0: fixed, 1: Sinusoidal motion, 2: arbitrary motion} (flag)
1 DegreeOfFreedom(1) - {1:xg, 2:yg, 3:zg, 4:theta_xg, 5:theta_yg, 6:theta_zg} [used only when BaseMotionType=1] (flag)
Expand Down
1 change: 1 addition & 0 deletions docs/source/user/aerodyn/examples/ad_driver_example.dvr
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ False Echo - Echo input parameters to "<rootname>.ech"?
-7 Overhang(1) - Overhang (m)
-6 ShftTilt(1) - Shaft tilt (deg)
-4 Precone(1) - Blade precone (deg)
3.09343 Twr2Shft(1) - Vertical distance from the tower-top to the rotor shaft (m)
----- Turbine(1) Motion [used only when AnalysisType=1] ---------------------------------
1 BaseMotionType(1) - Type of motion prescribed for this base {0: fixed, 1: Sinusoidal motion, 2: arbitrary motion} (flag)
1 DegreeOfFreedom(1) - {1:xg, 2:yg, 3:zg, 4:theta_xg, 5:theta_yg, 6:theta_zg} [used only when BaseMotionType=1] (flag)
Expand Down
1 change: 1 addition & 0 deletions docs/source/user/aerodyn/examples/ad_driver_multiple.dvr
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ True HAWTprojection(1) - True if turbine is a horizontal axis tu
-7 Overhang(2) - Overhang (m)
-6 ShftTilt(2) - Shaft tilt (deg)
-4 Precone(2) - Blade precone (deg)
3.09343 Twr2Shft(2) - Vertical distance from the tower-top to the rotor shaft (m)
----- Turbine(2) Motion [used only when AnalysisType=1] ---------------------------------
0 BaseMotionType(2) - Type of motion prescribed for this base {0: fixed, 1: Sinusoidal motion, 2: arbitrary motion} (flag)
0 DegreeOfFreedom(2) - {1:xt, 2:yt, 3:zt, 4:theta_xt, 5:theta_yt, 6:theta_zt} [used only when BaseMotionType=1] (flag)
Expand Down
1 change: 1 addition & 0 deletions docs/source/user/api_change.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ OpenFAST 30 WtrDpth 50 Wt
OpenFAST 31 MSL2SWL 0 MSL2SWL - Offset between still-water level and mean sea level (m) [positive upward]
AeroDyn 15 40 UAStartRad 0.25 UAStartRad - Starting radius for dynamic stall (fraction of rotor radius) [used only when AFAeroMod=2; if line is missing UAStartRad=0]
AeroDyn 15 41 UAEndRad 0.95 UAEndRad - Ending radius for dynamic stall (fraction of rotor radius) [used only when AFAeroMod=2; if line is missing UAEndRad=1]
AeroDyn driver 34 Twr2Shft 3.09343 Twr2Shft - Vertical distance from the tower-top to the rotor shaft (m)
AirFoilTables 12\* alphaUpper 5.0 alphaUpper ! Angle of attack at upper boundary of fully-attached region. (deg) [used only when UAMod=5] ! THIS IS AN OPTIONAL LINE; if omitted, it will be calculated from the polar data
AirFoilTables 13\* alphaLower \-3.0 alphaLower ! Angle of attack at lower boundary of fully-attached region. (deg) [used only when UAMod=5] ! THIS IS AN OPTIONAL LINE; if omitted, it will be calculated from the polar data
AirFoilTables 42\* UACutout_delta "DEFAULT" UACutout_delta ! Delta angle of attack below UACutout where unsteady aerodynamics begin to turn off (blend with steady solution) (deg) [Specifying the string "Default" sets UACutout_delta to 5 degrees] ! THIS IS AN OPTIONAL LINE; if omitted, it will be set to its default value
Expand Down
9 changes: 6 additions & 3 deletions modules/aerodyn/src/AeroDyn_Driver_Subs.f90
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,8 @@ subroutine Init_AeroDyn(iCase, dvr, AD, dt, InitOutData, errStat, errMsg)
endif
InitInData%rotors(iWT)%HubPosition = wt%hub%ptMesh%Position(:,1)
InitInData%rotors(iWT)%HubOrientation = wt%hub%ptMesh%RefOrientation(:,:,1)
InitInData%rotors(iWT)%NacellePosition = wt%nac%ptMesh%Position(:,1)
InitInData%rotors(iWT)%NacelleOrientation = wt%nac%ptMesh%RefOrientation(:,:,1)
do k=1,wt%numBlades
InitInData%rotors(iWT)%BladeRootOrientation(:,:,k) = wt%bld(k)%ptMesh%RefOrientation(:,:,1)
InitInData%rotors(iWT)%BladeRootPosition(:,k) = wt%bld(k)%ptMesh%Position(:,1)
Expand Down Expand Up @@ -1255,7 +1257,7 @@ subroutine Dvr_ReadInputFile(fileName, dvr, errStat, errMsg )
character(10) :: sWT
character(15) :: sBld
! Basic inputs
real(ReKi) :: hubRad, hubHt, overhang, shftTilt, precone ! Basic inputs when basicHAWTFormat is true
real(ReKi) :: hubRad, hubHt, overhang, shftTilt, precone, twr2Shft ! Basic inputs when basicHAWTFormat is true
real(ReKi) :: nacYaw, bldPitch, rotSpeed
ErrStat = ErrID_None
ErrMsg = ''
Expand Down Expand Up @@ -1348,6 +1350,7 @@ subroutine Dvr_ReadInputFile(fileName, dvr, errStat, errMsg )
call ParseVar(FileInfo_In, CurLine, 'overhang'//sWT , overhang , errStat2, errMsg2 , unEc); if(Failed()) return
call ParseVar(FileInfo_In, CurLine, 'shftTilt'//sWT , shftTilt , errStat2, errMsg2 , unEc); if(Failed()) return
call ParseVar(FileInfo_In, CurLine, 'precone'//sWT , precone , errStat2, errMsg2 , unEc); if(Failed()) return
call ParseVar(FileInfo_In, CurLine, 'twr2Shft'//sWT , twr2Shft , errStat2, errMsg2 , unEc); if(Failed()) return

shftTilt=-shftTilt*Pi/180._ReKi ! deg 2 rad, NOTE: OpenFAST convention sign wrong around y
precone=precone*Pi/180._ReKi ! deg 2 rad
Expand All @@ -1358,8 +1361,8 @@ subroutine Dvr_ReadInputFile(fileName, dvr, errStat, errMsg )
wt%hasTower = .True.
wt%HAWTprojection = .True.
wt%twr%origin_t = 0.0_ReKi ! Exactly at the base
wt%nac%origin_t = (/ 0.0_ReKi , 0.0_ReKi, hubHt + overhang * sin(shftTilt) /) ! NOTE WE DON'T HAVE TWR2SHAFT to approximate
wt%hub%origin_n = (/ overhang * cos(shftTilt), 0.0_ReKi, -overhang * sin(shftTilt) /) ! IDEM
wt%nac%origin_t = (/ 0.0_ReKi , 0.0_ReKi, hubHt - twr2Shft + overhang * sin(shftTilt) /)
wt%hub%origin_n = (/ overhang * cos(shftTilt), 0.0_ReKi, -overhang * sin(shftTilt) + twr2shft /) ! IDEM
wt%hub%orientation_n = (/ 0.0_ReKi, shftTilt, 0.0_ReKi /)

! blades
Expand Down
2 changes: 1 addition & 1 deletion modules/aerodyn/src/AeroDyn_Registry.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ typedef ^ RotInitInputType ReKi HubPosition {3} - - "X-Y-Z reference position of
typedef ^ RotInitInputType R8Ki HubOrientation {3}{3} - - "DCM reference orientation of hub" -
typedef ^ RotInitInputType ReKi BladeRootPosition {:}{:} - - "X-Y-Z reference position of each blade root (3 x NumBlades)" m
typedef ^ RotInitInputType R8Ki BladeRootOrientation {:}{:}{:} - - "DCM reference orientation of blade roots (3x3 x NumBlades)" -
typedef ^ RotInitInputType R8Ki NacellePosition {3} - - "X-Y-Z reference position of hub" m
typedef ^ RotInitInputType R8Ki NacellePosition {3} - - "X-Y-Z reference position of nacelle" m
typedef ^ RotInitInputType R8Ki NacelleOrientation {3}{3} - - "DCM reference orientation of nacelle" -
typedef ^ RotInitInputType IntKi AeroProjMod - 0 - "Flag to switch between different projection models" -

Expand Down
2 changes: 1 addition & 1 deletion modules/aerodyn/src/AeroDyn_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ MODULE AeroDyn_Types
REAL(R8Ki) , DIMENSION(1:3,1:3) :: HubOrientation !< DCM reference orientation of hub [-]
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: BladeRootPosition !< X-Y-Z reference position of each blade root (3 x NumBlades) [m]
REAL(R8Ki) , DIMENSION(:,:,:), ALLOCATABLE :: BladeRootOrientation !< DCM reference orientation of blade roots (3x3 x NumBlades) [-]
REAL(R8Ki) , DIMENSION(1:3) :: NacellePosition !< X-Y-Z reference position of hub [m]
REAL(R8Ki) , DIMENSION(1:3) :: NacellePosition !< X-Y-Z reference position of nacelle [m]
REAL(R8Ki) , DIMENSION(1:3,1:3) :: NacelleOrientation !< DCM reference orientation of nacelle [-]
INTEGER(IntKi) :: AeroProjMod = 0 !< Flag to switch between different projection models [-]
END TYPE RotInitInputType
Expand Down