-
Notifications
You must be signed in to change notification settings - Fork 490
Description
I have a number of wind load series. The wind load consist of the aerodynamic lift, drag, and torque on each mass point of blade and tower. The wind load varied with time, and the wind load series are stored in a csv file.
Could OpenFAST read the wind load series from a specified csv file, and calculated the structural response (blade tip displacement and root force, tower top displacement) and platform motion of floating offshore wind turbine using beamdyn and hydrodyn modules? Is it easy to realize? I am a primary programer.
Based on the introduction book, I found that modifying the fortran code might work. Is that true?
"
https://openfast.readthedocs.io/en/main/source/user/beamdyn/input_files.html
BeamDyn is capable of handling more complex loading cases, e.g., time-dependent loads, through customization of the source code (requiring a recompile of stand-alone BeamDyn). The user can define such loads in the BD_InputSolve subroutine in the Driver_Beam.f90 file, which is called every time step. The following section can be modified to define the concentrated load at each FE node:
u%PointLoad%Force(1:3,u%PointLoad%NNodes) = u%PointLoad%Force(1:3,u%PointLoad%NNodes) + DvrData%TipLoad(1:3)
u%PointLoad%Moment(1:3,u%PointLoad%NNodes) = u%PointLoad%Moment(1:3,u%PointLoad%NNodes) + DvrData%TipLoad(4:6)
where the first index in each array ranges from 1 to 3 for load vector components along three global directions and the second index of each array ranges from 1 to u%PointLoad%NNodes, where the latter is the total number of FE nodes. Note that u%PointLoad%Force(1:3,:) and u%PointLoad%Moment(1:3,:) have been populated with the point-load loads read from the BeamDyn driver input file using the call to Transfer_Point_to_Point earlier in the subroutine.
For example, a time-dependent sinusoidal force acting along the X
direction applied at the 2nd
FE node can be defined as
u%PointLoad%Force(:,:) = 0.0D0
u%PointLoad%Force(1,2) = 1.0D+03SIN((2.0pi)*t/6.0 )
u%PointLoad%Moment(:,:) = 0.0D0
with 1.0D+03 being the amplitude and 6.0 being the period. Note that this particular implementation overrides the tip-load and point-loads defined in the driver input file.
Similar to the concentrated load, the distributed loads can be defined in the same subroutine
DO i=1,u%DistrLoad%NNodes
u%DistrLoad%Force(1:3,i) = DvrData%DistrLoad(1:3)
u%DistrLoad%Moment(1:3,i)= DvrData%DistrLoad(4:6)
ENDDO
where u%DistrLoad%NNodes is the number of nodes input to BeamDyn (on the quadrature points), and DvrData%DistrLoad(:) is the constant uniformly distributed load BeamDyn reads from the driver input file. The user can modify DvrData%DistrLoad(:) to define the loads based on need.
We note that the distributed loads are defined at the quadrature points for numerical integrations. For example, if Gauss quadrature is chosen, then the distributed loads are defined at Gauss points plus the two end points of the beam (root and tip). For trapezoidal quadrature, p%ngp stores the number of trapezoidal quadrature points.
"