Skip to content

Commit c13a58b

Browse files
authored
Merge pull request #2017 from abhineet-gupta/YawFrictionImplementation
Yaw friction implementation
2 parents e39453a + 4ee90ba commit c13a58b

File tree

14 files changed

+1163
-543
lines changed

14 files changed

+1163
-543
lines changed
1.84 KB
Binary file not shown.

docs/conf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ def runDoxygen(sourcfile, doxyfileIn, doxyfileOut):
7272
'source/user/aerodyn-aeroacoustics/references.bib',
7373
'source/user/aerodyn-olaf/bibliography.bib',
7474
'source/user/aerodyn/bibliography.bib',
75+
'source/user/elastodyn/bibliography.bib',
7576
'source/user/beamdyn/references.bib',
7677
'source/user/extptfm/bibliography.bib',
7778
'source/user/fast.farm/bibliography.bib',
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
@techreport{ed-hammam2023,
2+
title={Modeling the Yaw Behavior of Tail Fins for Small Wind Turbines: November 22, 2021-May 21, 2024},
3+
author={Hammam, Mohamed M and Wood, David and Summerville, Brent},
4+
year={2023},
5+
institution={National Renewable Energy Laboratory (NREL), Golden, CO (United States)}
6+
}
11.9 KB
Loading

docs/source/user/elastodyn/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,4 @@ equations of FAST v7 and the ElastoDyn module of FAST v8 and OpenFAST.
5858
coordsys.rst
5959
input.rst
6060
theory.rst
61+
zrefs.rst

docs/source/user/elastodyn/input.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,17 @@ Rotor-Teeter
231231
**TeetHSSp** - Rotor-teeter hard-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1]
232232

233233

234+
Yaw-Friction
235+
~~~~~~~~~~~~
236+
237+
**YawFrctMod** - Yaw-friction model {0: none, 1: friction without Fz term at the yaw bearing, 2: friction includes Fz term at yaw bearing, 3: user defined model}
238+
239+
**M_CSmax** - Maximum Coulomb friction torque (N-m)[mu_s*D_eff when YawFrctMod=1 and Fz*mu_s*D_eff when YawFrctMod=2]
240+
241+
**M_CD** - Dynamic friction moment at null yaw rate (N-m) [mu_d*D_eff when YawFrctMod=1 and Fz*mu_d*D_eff when YawFrctMod=2]
242+
243+
**sig_v** - Viscous friction coefficient (N-m/(rad/s))
244+
234245

235246
Drivetrain
236247
~~~~~~~~~~

docs/source/user/elastodyn/theory.rst

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,41 @@ The total moment on the given degree of freedom is:
159159

160160

161161

162+
.. _ed_yawfriction_theory:
162163

164+
Yaw-friction
165+
------------
166+
A yaw-friction model is implemented in ElastoDyn based on a Coulomb-viscous approach.
167+
The yaw-friction moment as a function of yaw rate (:math:`\omega`) is shown below in :numref:`figYawFriction`
168+
169+
.. _figYawFriction:
170+
.. figure:: figs/YawFrictionModel.jpg
171+
:width: 60%
172+
173+
Yaw-friction model
174+
175+
The yaw-friction torque :math:`M_f` can be calcualated as follows.
176+
177+
if :math:`\omega\neq0`:
178+
179+
.. math::
180+
M_f = \mu_d\bar{D}\times\text{min}(0,F_z)\times\text{sign}(\omega) - \sigma_v\times\omega
181+
182+
if :math:`\omega=0` and :math:`\dot{\omega}\neq 0`:
183+
184+
.. math::
185+
M_f = \mu_d\bar{D}\times\text{min}(0,F_z)\times\text{sign}(\dot{\omega})
186+
187+
if :math:`\omega=0` and :math:`\dot{\omega}=0`:
188+
189+
.. math::
190+
M_f = -\text{min}(\mu_s\bar{D}\times|\text{min}(0,F_z)|,|M_z|)\times\text{sign}(M_z)
191+
192+
193+
where :math:`\bar{D}` is the effective yaw-bearing race diameter, :math:`\mu_d` is the dynamic friction coefficient, :math:`\mu_s` is the static friction coefficient, :math:`F_z` is effective axial load on yaw-bearing, :math:`M-z` is the external torque on yaw-bearing.
194+
The static 'stiction' (where the static contribution exceeds the dynamic Coulomb friction) is only applied if both the yaw rotational velocity and acceleration at the current time-step are zero.
195+
The static portion of the friction is omitted if the rotational acceleration is not null, (sign(0) is taken as 1).
196+
This is to account for the fact that a 'warm' joint may not feel stiction when crossing through zero velocity in a dynamic sense :cite:`ed-hammam2023`
163197

164198

165199
.. _ed_dev_notes:
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.. only:: html
2+
3+
References
4+
----------
5+
6+
.. bibliography:: bibliography.bib
7+
:labelprefix: ed-
8+
9+

modules/elastodyn/src/ED_UserSubs.f90

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,35 @@ SUBROUTINE UserTeet ( TeetDef, TeetRate, ZTime, DirRoot, TeetMom )
101101
RETURN
102102
END SUBROUTINE UserTeet
103103
!=======================================================================
104+
SUBROUTINE UserYawFrict ( ZTime, Fz, Mzz, Omg, OmgDot, DirRoot, YawFriMf )
105+
106+
! This is a dummy routine for holding the place of a user-specified
107+
! Yaw Friction. Modify this code to create your own device.
108+
109+
110+
USE Precision
111+
112+
113+
IMPLICIT NONE
114+
115+
116+
! Passed Variables:
117+
REAL(DbKi), INTENT(IN ) :: ZTime ! Current simulation time, sec.
118+
REAL(R8Ki), INTENT(IN ) :: Fz, Mzz ! Yaw Bering normal force (positive if upward) and torque, N and N*m
119+
REAL(R8Ki), INTENT(IN ) :: Omg ! Yaw rotational speed, rad/s.
120+
REAL(R8Ki), INTENT(IN ) :: OmgDot ! Yaw rotational acceleration, rad/s^2.
121+
122+
CHARACTER(1024), INTENT(IN ) :: DirRoot ! The name of the root file including the full path to the current working directory. This may be useful if you want this routine to write a permanent record of what it does to be stored with the simulation results: the results should be stored in a file whose name (including path) is generated by appending any suitable extension to DirRoot.
123+
124+
REAL(ReKi), INTENT(OUT) :: YawFriMf ! Yaw friction moment, N*m.
125+
126+
127+
128+
YawFriMf = 0.0
129+
130+
RETURN
131+
END SUBROUTINE UserYawFrict
132+
!=======================================================================
104133
SUBROUTINE UserTFrl ( TFrlDef, TFrlRate, ZTime, DirRoot, TFrlMom )
105134

106135

0 commit comments

Comments
 (0)