Skip to content

Commit 7a398db

Browse files
Merge pull request #171 from dzalkind/floating_docs
Floating Documentation
2 parents e55f3ba + 53200ae commit 7a398db

1 file changed

Lines changed: 310 additions & 15 deletions

File tree

docs/source/how_to_build_a_turbine_model.rst

Lines changed: 310 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -751,39 +751,334 @@ The :code:`monopile` section of the turbine YAML file provides detailed specific
751751

752752
.. literalinclude:: ../../windIO/examples/turbine/IEA-15-240-RWT.yaml
753753
:language: yaml
754-
:lines: 707-735
754+
:lines: 682-721
755755

756756
Floating platform
757757
~~~~~~~~~~~~~~~~~
758758
The :code:`floating_platform` section of the turbine YAML file provides detailed specifications for the wind turbine floating platform, when present. It includes the following subfields:
759759

760-
- :code:`transition_piece_mass`
761-
- :code:`transition_piece_cost`
762-
- :code:`joints`
763-
- :code:`members`
760+
- :code:`transition_piece_mass`: Defines a point mass for the transition piece connecting the tower to the floating platform
761+
- :code:`transition_piece_cost`: Defines the cost associated with the transition piece
762+
- :code:`members`: Defines the hydrodynamic and structural members of the floating platform
763+
- :code:`joints`: Points in space that can be mapped to the endpoints of :code:`members` or mooring :code:`nodes`.
764764

765-
The floating platform of the IEA-15MW turbine is defined as shown below.
765+
Take the floating platform of the IEA-15MW turbine as an example.
766+
The :code:`transition_piece_mass` and :code:`transition_piece_cost` are values that can be defined as below:
766767

767-
.. literalinclude:: ../../windIO/examples/turbine/IEA-15-240-RWT_VolturnUS-S.yaml
768-
:language: yaml
769-
:lines: 807-999
768+
.. code-block:: yaml
769+
770+
floating_platform:
771+
transition_piece_mass: 100000.0
772+
transition_piece_cost: 100000.0
773+
774+
The location of the transition piece can be defined manually by setting :code:`transition` field under a joint in the `joints` section at the desired location.
775+
For the IEA-15MW turbine, the transition piece is defined at the top of the main column (the joint :code:`main_freeboard`) as shown below:
776+
777+
.. code-block:: yaml
778+
779+
floating_platform:
780+
joints:
781+
- name: main_keel
782+
location: [0.0, 0.0, -20.0]
783+
- name: main_freeboard
784+
location: [0.0, 0.0, 15.0]
785+
transition: true
786+
- name: col1_keel
787+
location: [51.75, 179.99999979432002, -20.0]
788+
- ...
789+
790+
The geometry of the floating platform is defined by the joints and members.
791+
The elements are shown below.
792+
Additional fields for the :code:`joints` and :code:`members` are expanded upon in the next sections.
793+
794+
.. code-block:: yaml
795+
796+
floating_platform:
797+
transition_piece_mass: 100000.0
798+
transition_piece_cost: 100000.0
799+
joints:
800+
- name: main_keel
801+
- name: main_freeboard
802+
- name: col1_keel
803+
- name: col1_freeboard
804+
- name: col2_keel
805+
- name: col2_freeboard
806+
- name: col3_keel
807+
- name: col3_freeboard
808+
- name: anchor1
809+
- name: anchor2
810+
- name: anchor3
811+
members:
812+
- name: main_column
813+
joint1: main_keel
814+
joint2: main_freeboard
815+
- name: column1
816+
joint1: col1_keel
817+
joint2: col1_freeboard
818+
axial_joints:
819+
- name: col1_upper_pontoon
820+
grid: 0.987
821+
- name: col1_lower_pontoon
822+
grid: 0.1
823+
- name: col1_fairlead
824+
grid: 0.1714
825+
- name: column2
826+
joint1: col2_keel
827+
joint2: col2_freeboard
828+
axial_joints:
829+
- name: col2_upper_pontoon
830+
grid: 0.987
831+
- name: col2_lower_pontoon
832+
grid: 0.1
833+
- name: col2_fairlead
834+
grid: 0.1714
835+
- name: column3
836+
joint1: col3_keel
837+
joint2: col3_freeboard
838+
axial_joints:
839+
- name: col3_upper_pontoon
840+
grid: 0.987
841+
- name: col3_lower_pontoon
842+
grid: 0.1
843+
- name: col3_fairlead
844+
grid: 0.1714
845+
- name: Y_pontoon_upper1
846+
joint1: main_upper_pontoon
847+
joint2: col1_upper_pontoon
848+
- name: Y_pontoon_upper2
849+
joint1: main_upper_pontoon
850+
joint2: col2_upper_pontoon
851+
- name: Y_pontoon_upper3
852+
joint1: main_upper_pontoon
853+
joint2: col3_upper_pontoon
854+
- name: Y_pontoon_lower1
855+
joint1: main_lower_pontoon
856+
joint2: col1_lower_pontoon
857+
- name: Y_pontoon_lower2
858+
joint1: main_lower_pontoon
859+
joint2: col2_lower_pontoon
860+
- name: Y_pontoon_lower3
861+
joint1: main_lower_pontoon
862+
joint2: col3_lower_pontoon
863+
864+
.. image:: images/floating_platform.png
865+
:width: 600 px
866+
:align: center
867+
:alt: Floating platform `joints` and `members`.
868+
869+
Note that the actual platform definition does not include the cross-braces and large heave plates from the image above.
870+
Image credit to Mayank Chetan, NREL.
871+
872+
Joints can be defined in free space by specifying their coordinates in Cartesian or cylindrical coordinates.
873+
Joints can also be specified along the axis of a member by specifying their non-dimensional location along a member (from the first joint to the second).
874+
875+
In the example above, the joints for defining the main (central) column are defined in Cartesian coordinates :math:`(x, y, z)`:
876+
877+
.. code-block:: yaml
878+
879+
joints:
880+
- name: main_keel
881+
location: [0.0, 0.0, -20.0]
882+
- name: main_freeboard
883+
location: [0.0, 0.0, 15.0]
884+
885+
The joints for the three outer columns are defined in cylindrical coordinates :math:`(r, \theta, z)`, where :math:`r` is the radial distance from the z-axis to the joint, :math:`\theta` is the angle in degree between the x-axis and the line connecting the origin to the projection of the joint onto the x-y plane, and :math:`z` is the distance from the x-y plane to the joint along the z-axis.
886+
887+
.. code-block:: yaml
888+
889+
- name: col1_keel
890+
location: [51.75, 179.99999979432002, -20.0]
891+
cylindrical: true
892+
- name: col1_freeboard
893+
location: [51.75, 179.99999979432002, 15.0]
894+
cylindrical: true
895+
896+
The column members are created by referencing the start and end :code:`joints` defined above.
897+
For the IEA-15MW turbine, the main column is defined as shown below.
898+
899+
.. code-block:: yaml
900+
901+
- name: main_column
902+
joint1: main_keel
903+
joint2: main_freeboard
904+
905+
On the main column, two axial joints are defined at non-dimensional locations 0.987 and 0.1 along the member.
906+
These two joints will be used to define the positions of upper and lower pontoons connected to the main column.
907+
908+
.. code-block:: yaml
909+
910+
- name: main_column
911+
joint1: main_keel
912+
joint2: main_freeboard
913+
Ca: 1.0
914+
Cd: 0.8
915+
outer_shape:
916+
shape: circular
917+
outer_diameter:
918+
grid: [0.0, 1.0]
919+
values: [10.0, 10.0]
920+
axial_joints:
921+
- name: main_upper_pontoon
922+
grid: 0.987
923+
- name: main_lower_pontoon
924+
grid: 0.1
925+
926+
On the outer columns, three axial joints are defined at non-dimensional locations 0.987, 0.1, and 0.1714 along the member, which will be used to define the positions of upper pontoons, lower pontoons, and fairleads connected to the outer columns.
927+
For the upwind column, the axial joints are defined as shown below:
928+
929+
.. code-block:: yaml
930+
931+
axial_joints:
932+
- name: col1_upper_pontoon
933+
grid: 0.987
934+
- name: col1_lower_pontoon
935+
grid: 0.1
936+
- name: col1_fairlead
937+
grid: 0.1714
938+
939+
With these axial joints defined, the upper and lower pontoons on the main column can be defined by referencing the corresponding axial joints.
940+
941+
.. code-block:: yaml
942+
943+
- name: Y_pontoon_upper1
944+
joint1: main_upper_pontoon
945+
joint2: col1_upper_pontoon
946+
947+
.. code-block:: yaml
948+
949+
- name: Y_pontoon_lower1
950+
joint1: main_lower_pontoon
951+
joint2: col1_lower_pontoon
952+
953+
For each member, users can define their hydrodynamic coefficients, outer shape, and internal structure.
954+
Currently, circular and rectangular cross-sections are supported for members' outer shapes.
955+
For members with circular cross-sections, users can define the diameter as spanwise distributions:
956+
957+
.. code-block:: yaml
958+
959+
- name: main_column
960+
joint1: main_keel
961+
joint2: main_freeboard
962+
Ca: 1.0
963+
Cd: 0.8
964+
outer_shape:
965+
shape: circular
966+
outer_diameter:
967+
grid: [0.0, 1.0]
968+
values: [10.0, 10.0]
969+
970+
The hydrodynamic coefficients, including drag (:math:`C_d`) and added mass (:math:`C_a`) coefficients, for members with circular cross-sections can be defined as constant values or as spanwise distributions.
971+
If a single constant value is provided, it will be applied to the entire member.
972+
To specify varying coefficients along the member length, users can provide a list of grid/value pairs. They share the same grid locations as the outer shape definition.
973+
974+
The :code:`layers` section under :code:`structure` allows users to define the layup of each member, including the material and thickness of each layer.
975+
An example of defining the structure for the main column is shown below.
976+
977+
.. code-block:: yaml
978+
979+
structure:
980+
layers:
981+
- name: main_twall
982+
material: steel
983+
thickness:
984+
grid: [0.0, 1.0]
985+
values: [0.05, 0.05]
986+
987+
Bulkheads, ring stiffeners, longitudinal stiffeners, and ballasts are defined under the :code:`structure` section for each member.
988+
Bulkheads are defined by the material and thickness at specific non-dimensional locations along the member.
989+
Stiffeners are all T-stiffeners, defined by their material, web height, web thickness, flange width, flange thickness, and spacing.
990+
The spacing of ring stiffeners defines the distance between adjacent ring stiffeners along the member axis in nondimensional form.
991+
The spacing of longitudinal stiffeners (in degree) defines circumferential spacing between adjacent longitudinal stiffeners.
992+
993+
There are two types of ballasts that can be defined: permanent ballast and variable water ballast, specified as :code:`variable_flag: false` and :code:`variable_flag: true`, respectively.
994+
Permanent ballast is defined by its material, volume, start and end locations of the ballast segment along the member in nondimensional form.
995+
Variable water ballast is defined by start and end locations of the ballast segment along the member in nondimensional form, which determines the maximum volume of the water ballast.
996+
The actual volume of water ballast is calculated in some modeling tools (e.g. WISDEM) to achieve neutral buoyancy in an unloaded equilibrium position, with the maximum volume limited by the defined segment volume.
997+
An example of defining bulkheads and ballasts for the upwind column is shown below.
998+
999+
.. code-block:: yaml
1000+
1001+
bulkhead:
1002+
material: steel
1003+
thickness:
1004+
grid: [0.0, 0.05, 0.2, 1.0]
1005+
values: [0.05, 0.05, 0.05, 0.05]
1006+
ballast:
1007+
- variable_flag: false
1008+
material: slurry
1009+
volume: 169.333333
1010+
grid: [0.0, 0.05]
1011+
- variable_flag: true
1012+
grid: [0.05, 0.2]
7701013
7711014
Users should refer to the :doc:`detailed_turbine_documentation` for the details of each subfield.
7721015

7731016
Mooring
7741017
~~~~~~~
775-
The `mooring` section of the turbine YAML file provides detailed specifications for the floating wind turbine mooring system, when present. It includes the following subfields:
1018+
The :code:`mooring` section of the turbine YAML file provides detailed specifications for the floating wind turbine mooring system, when present. It includes the following subfields:
7761019

777-
- :code:`nodes`: Defines the nodes of the mooring system
778-
- :code:`lines`: Defines the lines of the mooring system
1020+
- :code:`nodes`: Defines the nodes of the mooring system, corresponding to floating platform `joints`
1021+
- :code:`lines`: Defines the lines of the mooring system, connecting the mooring `nodes`
7791022
- :code:`line_types`: Defines the characteristics of the lines
7801023
- :code:`anchor_types`: Defines the characteristics of the anchors
7811024

7821025
The floating platform of the IEA-15MW turbine is defined as shown below.
7831026

784-
.. literalinclude:: ../../windIO/examples/turbine/IEA-15-240-RWT_VolturnUS-S.yaml
785-
:language: yaml
786-
:lines: 1000-1052
1027+
.. code-block:: yaml
1028+
1029+
mooring:
1030+
nodes:
1031+
- name: line1_anchor
1032+
node_type: fixed
1033+
joint: anchor1
1034+
anchor_type: drag_embedment
1035+
- name: line2_anchor
1036+
node_type: fixed
1037+
joint: anchor2
1038+
anchor_type: drag_embedment
1039+
- name: line3_anchor
1040+
node_type: fixed
1041+
joint: anchor3
1042+
anchor_type: drag_embedment
1043+
- name: line1_vessel
1044+
node_type: vessel
1045+
joint: col1_fairlead
1046+
fairlead_type: rigid
1047+
- name: line2_vessel
1048+
node_type: vessel
1049+
joint: col2_fairlead
1050+
fairlead_type: rigid
1051+
- name: line3_vessel
1052+
joint: col3_fairlead
1053+
node_type: vessel
1054+
fairlead_type: rigid
1055+
lines:
1056+
- name: line1
1057+
node1: line1_anchor
1058+
node2: line1_vessel
1059+
line_type: main
1060+
unstretched_length: 850.0
1061+
- name: line2
1062+
node1: line2_anchor
1063+
node2: line2_vessel
1064+
line_type: main
1065+
unstretched_length: 850.0
1066+
- name: line3
1067+
node1: line3_anchor
1068+
node2: line3_vessel
1069+
line_type: main
1070+
unstretched_length: 850.0
1071+
line_types:
1072+
- name: main
1073+
diameter: 0.185
1074+
type: chain
1075+
transverse_added_mass: 1.0
1076+
tangential_added_mass: 0.0
1077+
transverse_drag: 1.6
1078+
tangential_drag: 0.1
1079+
anchor_types:
1080+
- name: drag_embedment
1081+
type: drag_embedment
7871082
7881083
Users should refer to the :doc:`detailed_turbine_documentation` for the details of each subfield.
7891084

0 commit comments

Comments
 (0)