Structural input#

Main command block - new_htc_structure#

Obl.

Command name

Explanation

beam_output_file_name

Write the beam properties for all bodies.

1. File name including relative path to file where the beam data are listed (output) (example ./info/beam.dat)

body_output_file_name

Write the initial conditions and inertia matrix for all bodies.

1. File name including relative path to file where the body data are listed (output) (example ./info/body.dat)

struct_inertia_output_file_name

For all bodies, write the inertia matrix, with respect to the center of gravity, in global and local coordinates.

1. File name including relative path to file where the global inertia information data are listed (output) (example ./info/inertia.dat)

body_matrix_output

Write the assembled stiffness, damping and mass matrices for all bodies.

1. Folder name where the bodies structural matrices are listed (example ./info/body).

element_matrix_output

Write the elements stiffness, damping and mass matrices.

1. File name including relative path to file where the elements structural matrices are listed (example ./info/element.dat).

constraint_output_file_name

Write the initial conditions of the constraints in global coordinates.

1. File name including relative path to file where the constraint data are listed (output). (example ./info/constraint.dat)

body_eigenanalysis_file_name

Do the eigenvalue analysis for all bodies. Deprecated, use system_eigenanalysis instead. Write the damped frequency, natural frequency and logarithmic decrement. The eigenvalue analysis should be the last operation in a simulation.

structure_eigenanalysis_file_name

Do the eigenvalue analysis for the entire structure. Deprecated, use system_eigenanalysis instead. Write the damped frequency, natural frequency, logarithmic decrement and animation of the mode shapes. The eigenvalue analysis should be the last operation in a simulation.

1. File name including relative path to file where the results of a complete turbine eigenanalysis are listed (example ./info/eigen_all.dat). Animation files are placed in the same directory of the file name.

2. Optional parameter determining if structural damping is included in the eigenvalue calculation or not. (0=damping not included, most robust method, 1=damping included default)

system_eigenanalysis

Do the eigenvalue analysis for the entire structure, including external systems attached, eg. mooring lines. Constraint equations are also fully included in the analysis. Write the damped frequency, natural frequency, logarithmic decrement and animation of the mode shapes. The eigenvalue analysis should be the last operation in a simulation.

1. File name including relative path to file where the results of a complete turbine eigenanalysis are listed (example ./info/eigen_all.dat). Animation files are placed in the same directory of the file name.

2. (optional) Parameter determining if structural damping is included in the eigenvalue calculation or not. (0=damping not included, most robust method, 1=damping included default)

3. (optional) Number of modes output.

4. (optional) Time for when the eigenanalysis is carried out. Eg. after a settling of a floating system.

Sub command block - main_body#

This block can be repeated as many times as needed. For every block a new body is added to the structure. A main body is a collection of normal bodies which are grouped together for bookkeeping purposes related to input output. When a main body consists of several bodies the spacing the name of each body inherits the name of the master body and is given an additional name of ’_#’, where # is the body number. An example could be a main body called ’blade1’ which consists of two bodies. These are then called ’blade1_1’ and ’blade1_2’ internally in the code. The internal names are only important if (output) commands are used that refer to the specific body name and not the main body name.

Obl.

Command name

Explanation

*

name

1. Main_body identification name (must be unique)

*

type

1. Element type used (options are: timoschenko)

*

nbodies

1. Number of bodies the main_body is divided into (especially used for blades when large deformation effects needs attention). Equal number of elements on each body, any extra elements are placed on the first body.

*

node_distribution

1. Distribution method of nodes and elements. Options are:

“uniform” nnodes. Where uniform ensures equal element length and nnodes are the node numbers.

“c2_def”, which ensures a node a every station defined with the sub command block c2_def.

damping

Original damping model that can only be used when the shear center location equals the elastic center to ensure a positive definite damping matrix. It is recommended to use the damping_posdef command instead. Rayleigh damping parameters containing factors that are multiplied to the mass and stiffness matrix respectively.

! Pay attention, the mass proportional damping is not contributing when a mbdy consists of multiple bodies !

1. \(M_x\)

2. \(M_y\)

3. \(M_z\)

4. \(K_x\)

5. \(K_y\)

6. \(K_z\)

NOTE: This damping model cannot be used with the Fully Populated Matrix (“FPM 1”, see below) beam element!

damping_posdef

Rayleigh damping parameters containing factors. \(M_x\), \(M_y\), \(M_z\) are constants multiplied on the mass matrix diagonal and inserted in the damping matrix. \(K_x\), \(K_y\), \(K_z\) are factors multiplied on the moment of inertia \(I_x\), \(I_y\), \(I_z\) in the stiffness matrix and inserted in the damping matrix. Parameters are in size approximately the same as the parameters used with the original damping model written above.

! Pay attention, the contribution from mass proportional damping is limited when a mbdy consists of multiple bodies !

1. \(M_x\)

2. \(M_y\)

3. \(M_z\)

4. \(K_x\)

5. \(K_y\)

6. \(K_z\)

NOTE: This damping model cannot be used with the Fully Populated Matrix (“FPM 1”, see below) beam element!

damping_aniso

Mixed mass/stiffness proportional and stiffness proportional damping parameters containing factors. \(\eta^{m}_{x}\), \(\eta^{m}_{y}\), \(\eta^{m}_{t}\) are constants multiplied on a mixed mass/stiffness matrix diagonal and inserted in the damping matrix. \(\eta^{s}_{x}\), \(\eta^{s}_{y}\), \(\eta^{s}_{t}\) are factors multiplied on the moment of inertia \(I_x\), \(I_y\), \(I_z\) in the stiffness matrix and inserted in the damping matrix.

! Pay attention, the mass proportional damping is not contributing when a mbdy consists of multiple bodies !

Damping_aniso will give a similar damping to damping_posdef if 1) only stiffness proportional damping is used (first three coefficients in both models are zero) and 2) the 4th and 5th parameters are swapped (\(n_y^s=K_x\) and \(n_x^s=K_y\))

! See the command for the corrected version of damping_aniso below !

1. \(\eta^{m}_{x}\)

2. \(\eta^{m}_{y}\)

3. \(\eta^{m}_{t}\)

4. \(\eta^{s}_{x}\)

5. \(\eta^{s}_{y}\)

6. \(\eta^{s}_{t}\)

damping_aniso_v2

Identical usage as damping_aniso, but a minor bug in the torsional damping computation has been fixed.

damping_file

Pre-generated damping read from file - the file can be generated by the method described in Section Fit of structural damping.

1. File name.

copy_main_body

Command that can be used if properties from a previously defined body shall be copied. The name command still have to be present, all other data are overwritten.

1. Main_body identification name of main_body that is copied.

gravity

1. Specification of gravity (directed towards zG).

NB! this gravity command only affects the present main body. Default=9.81 [m/s^2]

concentrated_mass

Concentrated masses and inertias can be attached to the structure. The offset distance from the node to the center of mass is given in the body’s coordinates system. The moments and products of inertia is given around the center of mass in the body’s coordinates system.

1. Node number to which the inertia is attached.

2. Offset distance x-direction [m]

3. Offset distance y-direction [m]

4. Offset distance z-direction [m]

5. Mass [kg]

6. \(I_{xx}\) [kg.m^2]

7. \(I_{yy}\) [kg.m^2]

8. \(I_{zz}\) [kg.m^2]

9. \(I_{xy}\) [kg.m^2] – optional

10. \(I_{xz}\) [kg.m^2] – optional

11. \(I_{yz}\) [kg.m^2] – optional

external_bladedata_dll

Blade structural data are found in an external encrypted dll. If this command is present only these other command lines need to be present (name, type, nbodies, node_distribution and a damping command line).

1. Company name (that has been granted a password, eg. dtu).

2. Password for opening this specific dll, eg. test1234

3. path and filename for the dll. eg. ./data/encr_blade_data.dll

Sub sub command block – timoschenko_input#

Block containing information about location of the file containing distributed beam property data and the data set requested.

Obl.

Command name

Explanation

*

filename

1. Filename incl. relative path to file where the distributed beam input data are listed (example ./data/hawc2_st.dat)

FPM

Logic command for Fully Populated Matrix beam element:

1. Write “1” to read a structural input file based on the fully populated stiffness matrix. Write “0” for the original beam model

If the command is neglected, HAWC2 will assume that the structural input file is based on the original beam model

mass_scale_method

Specify how to scale total mass of a main body.

1. 0 or 1 (default)

For method 1 the mass is adjusted for the entire main body such that the static moment around the first node is the same as when integrating the varying mass properties in the st file. Method 0 means no scaling is applied. See paragraph below for more information. Method 1 is the default option if this command is not present.

Note on mass scaling method:#

Scaling method 1 has historically been the default scaling method in HAWC2 to assure that, for example, the edge-wise gravity loads of the blade are consistent with the st input. In the st input file the mass varies linearly between the data points while the elements of a body (following the discretization from the c2_def section) have a constant mass. Depending on the c2_def discretization and the st file mass distribution HAWC2 will have to choose to either keep the total integrated mass or the static mass moment consistent between them.

There is a simple example with three different mass distributions available at https://​gitlab​.windenergy​.dtu​.dk​/HAWC2Public​/examples​/​-​/tree​/master​/hawc2​/structure​/static​_mass​_moment that demonstrates how the mass scaling method behaves.

Mass scaling method 1 can be expressed mathematically as follows:

\[\begin{split}\begin{align*} m_{eigen} &= \dfrac{2 \; \sqrt[]{m_x^2 + m_y^2 + m_z^2}}{L \; \sqrt[]{L_x^2 + L_y^2 + L_z^2}} \quad \text{, where} \\ m_x &= \int_{0}^{L} r_x m \,dr \; \text{,} \; m_y = \int_{0}^{L} r_y m \,dr \; \text{,} \; m_z = \int_{0}^{L} r_z m \,dr \\ r_x &= \sqrt{y^2 + z^2} \; \text{,} \; r_y = \sqrt{x^2 + z^2} \; \text{,} \; r_z = \sqrt{x^2 + y^2} \\ L_x &= \sqrt{p_y^2 + p_z^2} \; \text{,} \; L_y = \sqrt{p_x^2 + p_z^2} \; \text{,} \; L_z = \sqrt{p_x^2 + p_y^2} \\ p_x, & \; p_y, \; p_z \; \text{are element mid point coordinates}\\ L \; & \text{is element length, m is mass per unit length} \end{align*}\end{split}\]

Sub sub command block – c2_def#

In this command block the definition of the centerline of the main_body is described (position of the half chord, when the main_body is a blade). The input data given with the sec commands below is used to define a continuous differentiable line in space using akima spline functions. This centerline is used as the basis for local coordinate system definitions for sections along the structure. If two input sections are given it is assumed that all points are on a straight line. If three input sections are given points are assumed to be on the line consisting of two straight lines. If four or more input sections are given points are assumed to be on an akima interpolated spline. This spline will include a straight line if a minimum of three points on this line is defined.

_images/c2_def.png

Illustration of c2_def coordinate system related to main body coordinates. The blade z-coordinate has to be positive from root towards the tip.#

Obl.

Command name

Explanation

*

nsec

Must be the present before a “sec” command.

1. Number of section commands given below

*

sec

Command that must be repeated “nsec” times. Minimum 4 times.

1. Number

2. x-pos [m]

3. y-pos [m]

4. z-pos [m ]

5. \(\theta_z\) [deg]. Angle between local x-axis and main_body x-axis in the main_body x-y coordinate plane. For a straight blade this angle is the aerodynamic twist. Note that the sign is positive around the z-axis, which is opposite to traditional notation for etc. a pitch angle.

Here is an illustration of how a blade can be defined with respect to discretisation of bodies, nodes and elements.

_images/main_body_blade.png

Here is an example of this written into the htc-input file.


begin main_body;
name    blade1 ;
type    timoschenko ;
nbodies   6 ;
node_distribution  c2_def;
damping_posdef  1.17e-4 5.77e-5 6.6e-6 6.6e-4 5.2e-4 6.5e-4 ;
begin timoschenko_input ;
filename ./data/st_file.txt ;
  FPM 0;  (optional, when parameter is 0)
 set 1 1 ;        set subset
end timoschenko_input;
begin c2_def;       Definition of centerline (main_body coordinates)
  nsec 19 ;
sec 1  -0.0000 0.0000 0.000   0.000 ;
sec 2  -0.0041 0.0010 3.278  -13.590 ;
sec 3  -0.1048 0.0250 6.556  -13.568 ;
sec 4  -0.2582 0.0492 9.833  -13.564 ;
sec 5  -0.4694 0.0587 13.111 -13.546 ;
sec 6  -0.5689 0.0957 16.389 -11.406 ;
sec 7  -0.5455 0.0883 19.667 -10.145 ;
sec 8  -0.5246 0.0732 22.944  -9.043 ;
sec 9  -0.4362 0.0669 26.222  -7.843 ;
sec 10 -0.4644 0.0554 29.500  -6.589 ;
sec 11 -0.4358 0.0449 32.778  -5.447 ;
sec 12 -0.4859 0.0347 36.056  -4.234 ;
sec 13 -0.3759 0.0265 39.333  -3.545 ;
sec 14 -0.3453 0.0130 42.611  -2.223 ;
sec 15 -0.3156 0.0084 45.889  -1.553 ;
sec 16 -0.2791 0.0044 49.167  -0.934 ;
sec 17 -0.2675 0.0017 52.444  -0.454 ;
sec 18 -0.1785 0.0003 55.722  -0.121 ;
sec 19 -0.1213 0.0000 59.000  -0.000 ;
 end c2_def ;
end main_body;

Sub sub command block – cx_def#

cx_def generalizes c2_def: the input coordinates may describe any chordwise reference line, instead of only the 1/2c line. This reference line can for example be the pitch axis, the 1/4c line, or a chordwise position that varies along the span. The extra column dx is the signed chordwise distance from this reference line to the 1/2c line.

c2_def and cx_def cannot be used in the same main_body. If dx is zero, cx_def is equivalent to c2_def. The sec command has six columns instead of five:

Obl.

Command name

Explanation

*

nsec

Must be present before a “sec” command.

1. Number of section commands given below

*

sec

Command that must be repeated “nsec” times. Minimum 4 times.

1. Number

2. x-pos of the reference point [m]

3. y-pos of the reference point [m]

4. z-pos of the reference point [m]

5. \(\theta_z\) [deg]. Same twist definition as for c2_def.

6. dx [m]. Signed chordwise offset from the reference point to the 1/2c point: {math}`\verb

If the reference line is described by a chord fraction \(x_c\) measured from the leading edge (\(x_c = 0\) at the leading edge, \(x_c = 1\) at the trailing edge), then \(\verb|dx| = (x_c - 0.5)\,c\), where \(c\) is the local chord. Some examples are:

Reference line

\(x_c\)

dx

Leading edge

0.00

\(-0.50\,c\)

1/4c

0.25

\(-0.25\,c\)

1/2c

0.50

0

3/4c

0.75

\(+0.25\,c\)

Trailing edge

1.00

\(+0.50\,c\)

Notes on the reference line:#

  • The structural st-file offsets (\(x_e\), \(y_e\), \(x_{cg}\), \(y_{cg}\), \(x_{sh}\), \(y_{sh}\)) are measured from the reconstructed 1/2c line. This is an offset-origin convention only; it does not imply that structural or aerodynamic cross sections are defined by sections perpendicular to the 1/2c line.

  • The spanwise coordinate is the curved length along the input reference line.

  • The aerodynamic link syntax and the node_distribution c2_def; keyword are unchanged.

This allows more general blade planforms to be modeled and makes HAWC2 input closer to WindIO-style input, making it easier to convert WindIO files or input files from other aeroelastic tools to HAWC2.

Example – varying reference line:#

For a straight blade with a constant 2 m chord and zero twist, the reference line starts at the 1/2c line at the root and transitions to the 1/4c line over the outer span. The cx_def block can be written as follows:


begin cx_def;  ; chord = 2 m; reference line goes from 1/2c to 1/4c
  nsec 5;
 ;    x_ref y_ref z_ref theta_z   dx ;  dx = (xc - 0.5)*c
 sec 1  0.0  0.0   0.0   0.0   0.00 ;  xc = 0.50
 sec 2  0.0  0.0   2.5   0.0   -0.20 ;  xc = 0.40
 sec 3  0.0  0.0   5.0   0.0   -0.40 ;  xc = 0.30
 sec 4  0.0  0.0   7.5   0.0   -0.50 ;  xc = 0.25
 sec 5  0.0  0.0  10.0   0.0   -0.50 ;  xc = 0.25
end cx_def;

Format definition of file with distributed beam properties (st file)#

The format of this file, which in the old HAWC code was known as the hawc_st file, is changed slightly for the HAWC2 new_htc_structure format. The file is a text file in which the structural parameters are organized into main sets and sub sets. The main set is located after a “#” sign followed by the main set number. Within a main there can be as many subsets as desired. They are located after a “$” sign followed by the local set number. The next sign of the local set number is the number of lines in the following rows that belong to this sub set.

There are two types st_file:

  • The st_file for the original HAWC2 beam element. Input parameters for this model are reported in Table 1 HAWC2 original beam element structural data.

  • The st_file for the new anisotropic FPM beam element. Input parameters are reported in Table 2 New HAWC2 anisotropic beam element structural data.

Please note! The first column in the datasets is the curved-length distance from the main body’s first node. HAWC2 normalizes it to \([0,1]\) using the set’s last value. This normalized coordinate is used to interpolate the st-file properties along the main-body reference-line length defined by the x, y and z coordinates in the c2_def or cx_def block in the htc file. In other words, if the curved length in the st file goes from 0 to 100 but the curved length defined by the c2_def or cx_def coordinates has a maximum value of 50, the st-file properties are stretched so that the full st span (0 to 100) is applied over the main-body span (0 to 50). The curved length in the st file should start from 0, otherwise HAWC2 prints a warning. We recommend having consistent curved lengths in the st and htc files; consider using the beam_output_file_name to verify the lengths. For more information on how HAWC2 handles differing node locations in the htc file and st file, please see the structural module in the HAWC2 training course.

For cx_def, the st-file spanwise coordinate follows the input reference line, while the center offsets remain measured from the reconstructed \(C_{1/2}\) point.

In general all centers are given according to the \(C_{1/2}\) center location and all other are related to the principal bending axes. For the anisotropic beam element, centers are given according to the \(C_{1/2}\) center location, but the cross sectional stiffness matrix is given at the elastic center rotated along the principal bending axes.

_images/structural_properties.png

Illustration of structural properties that in the input files are related to the c2 coordinate system.#

Column

Parameter

1

r, curved length distance from main_body node 1 [m]. HAWC2 normalizes this by the curved length defined in c2_def.

2

m, mass per unit length [kg/m]

3

\(x_m\), \(x_{c2}\)-coordinate from \(C_{1/2}\) to mass center [m]

4

\(y_m\), \(y_{c2}\)-coordinate from \(C_{1/2}\) to mass center [m]

5

\(r_{ix}\), radius of gyration related to elastic center. Corresponds to rotation about principal bending \(x_{e}\) axis [m]

6

\(r_{iy}\), radius of gyration related to elastic center. Corresponds to rotation about principal bending \(y_{e}\) axis [m]

7

\(x_{s}\), \(x_{c2}\)-coordinate from \(C_{1/2}\) to shear center [m]. The shear center is the point where external forces only contributes to pure bending and no torsion.

8

\(y_{s}\), \(y_{c2}\)-coordinate from \(C_{1/2}\) to shear center [m]. The shear center is the point where external forces only contributes to pure bending and no torsion.

9

E, modulus of elasticity [\(N/m^{2}\)]

10

G, shear modulus of elasticity [\(N/m^{2}\)]

11

\(I_{x}\), area moment of inertia with respect to principal bending \(x_{e}\) axis [\(m^{^4}\)]. This is the principal bending axis most parallel to the \(x_{c2}\) axis

12

\(I_y\), area moment of inertia with respect to principal bending ye axis [\(m^{^4}\)]

13

K, torsional stiffness constant with respect to ze axis at the shear center [\(m^{^4}/rad\)]. For a circular section only this is identical to the polar moment of inertia.

14

\(k_x\) shear factor for force in principal bending \(x_{e}\) direction [-]

15

\(k_y\), shear factor for force in principal bending ye direction [-]

16

A, cross sectional area [\(m^{2}\)]

17

\(\theta_{z}\), structural pitch about \(z_{c2}\) axis. This is the angle between the \(x_{c2}\) -axis defined with the c2_def command and the main principal bending axis \(x_{e}\). [deg]

18

\(x_{e}\), \(x_{c2}\)-coordinate from \(C_{1/2}\) to center of elasticity [m]. The elastic center is the point where radial force (in the z-direction) does not contribute to bending around the x or y directions.

19

\(y_{e}\), \(y_{c2}\)-coordinate from \(C_{1/2}\) to center of elasticity [m]. The elastic center is the point where radial force (in the z-direction) does not contribute to bending around the x or y directions.

A small explanation about radius of gyration (also called radius of inertia) and the area moment of inertia (related to stiffness) is shown below in N.5 and N.11

_images/radius_of_inertia.png

An example of a st original beam formulation input file can be seen on the next page. The most important features to be aware of are colored with red.

_images/data_sets.png

Column

1

r, curved length distance from main_body node 1 [m]. HAWC2 normalizes this by the curved length defined in c2_def.

2

m, mass per unit length [kg/m]

3

\(x_{m}\), \(x_{c2}\)-coordinate from \(C_{1/2}\) to mass center [m]

4

\(y_{m}\), \(y_{c2}\)-coordinate from \(C_{1/2}\) to mass center [m]

5

\(r_{ix}\), radius of gyration related to elastic center. Corresponds to rotation about principal bending \(x_{e}\) axis [m]

6

\(r_{iy}\), radius of gyration related to elastic center. Corresponds to rotation about principal bending \(y_{e}\) axis [m]

7

\(\theta_z\), structural pitch about \(z_{c2}\) axis [deg]. This is the angle between the \(x_{c2}\) -axis defined with the c2_def command and the main principal bending axis \(x_{e}\).

8

\(x_{e}\), \(x_{c2}\)-coordinate from \(C_{1/2}\) to center of elasticity [m]. The elastic center is the point where radial force (in the z-direction) does not contribute to bending around the x or y directions.

9

\(y_{e}\), \(y_{c2}\)-coordinate from \(C_{1/2}\) to center of elasticity [m]. The elastic center is the point where radial force (in the z-direction) does not contribute to bending around the x or y directions.

10

\(K_{11}\), element 1,1 of the Cross sectional stiffness matrix [\(N\)].

REMEMBER: the cross sectional stiffness matrix is given at the elastic center rotated along the principal bending axes.

11

\(K_{12}\), element 1,2 of the Cross sectional stiffness matrix [\(N\)].

12

\(K_{13}\), element 1,3 of the Cross sectional stiffness matrix [\(N\)].

13

\(K_{14}\), element 1,4 of the Cross sectional stiffness matrix [\(Nm\)].

14

\(K_{15}\), element 1,5 of the Cross sectional stiffness matrix [\(Nm\)].

15

\(K_{16}\), element 1,6 of the Cross sectional stiffness matrix [\(Nm\)].

16

\(K_{22}\), element 2,2 of the Cross sectional stiffness matrix [\(N\)].

17

\(K_{23}\), element 2,3 of the Cross sectional stiffness matrix [\(N\)].

18

\(K_{24}\), element 2,4 of the Cross sectional stiffness matrix [\(Nm\)].

19

\(K_{25}\), element 2,5 of the Cross sectional stiffness matrix [\(Nm\)].

20

\(K_{26}\), element 2,6 of the Cross sectional stiffness matrix [\(Nm\)].

21

\(K_{33}\), element 3,3 of the Cross sectional stiffness matrix [\(N\)].

22

\(K_{34}\), element 3,4 of the Cross sectional stiffness matrix [\(Nm\)].

23

\(K_{35}\), element 3,5 of the Cross sectional stiffness matrix [\(Nm\)].

24

\(K_{36}\), element 3,6 of the Cross sectional stiffness matrix [\(Nm\)].

25

\(K_{44}\), element 4,4 of the Cross sectional stiffness matrix [\(Nm^2\)].

26

\(K_{45}\), element 4,5 of the Cross sectional stiffness matrix [\(Nm^2\)].

27

\(K_{46}\), element 4,6 of the Cross sectional stiffness matrix [\(Nm^2\)].

28

\(K_{55}\), element 5,5 of the Cross sectional stiffness matrix [\(Nm^2\)].

29

\(K_{56}\), element 5,6 of the Cross sectional stiffness matrix [\(Nm^2\)].

30

\(K_{66}\), element 6,6 of the Cross sectional stiffness matrix [\(Nm^2\)].

An example of a st anisotropic beam formulation input file can be seen on the next page.

_images/anisotropic_beam_formulation.png

Sub sub command - damping_distributed#

In this command block, Rayleigh damping parameters can be defined as function of blade length, hence damping parameters can be different at root of tip of a blade.

Obl.

Command name

Explanation

*

nsec

Number of input lines

*

sec

This command must be repeated nsec times.

1. r/R. Non-dim distance from node 1 to node N.

2. \(k_{x}\) Stiffness proportional damping around x

3. \(k_{y}\) Stiffness proportional damping around y

4. \(k_{z}\) Stiffness proportional damping around z

Sub sub command – damping_posdef_distributed#

In this command block, Rayleigh damping parameters can be defined as function of blade length, hence damping parameters can be different at root of tip of a blade.

Obl.

Command name

Explanation

*

nsec

Number of input lines

*

sec

This command must be repeated nsec times.

1. r/R. Non-dim distance from node 1 to node N.

2. \(k_{x}\) Stiffness proportional damping around x

3. \(k_{y}\) Stiffness proportional damping around y

4. \(k_{z}\) Stiffness proportional damping around z

Sub sub command – visualization_profile#

This command block is used together with the command name visualization in the main command block simulation. Default profiles are:

- Blade: An aerodynamic profile where thickness <95%, otherwise a cylinder. Dimensions as specified in the aerodynamic blade layout file.

- Other bodies: Cylinder. The diameter is calculated from the mass and inertia specified in the structural data

Obl.

Command name

Explanation

*

type

Profile type. (options are: “cylinder”, “cube” and “blade”)

*

nsec

Number of visualization sections

*

sec

This command must be repeated nsec times.

1. Distance from root [m or % or any other unit of choice (scaled relative to the largest number)]

2. Diameter (cylinder), width (cube), chord (blade) [m]

3. (not needed for cylinder), height (cube) [m], thickness (blade) [%]

Sub command - orientation#

In this command block the orientation (regarding position and rotation) of every main_body are specified.

Sub sub command - base#

The orientation of a main_body to which all other bodies are linked – directly or indirectly.

Obl.

Command name

Explanation

*

mbdy

1. Main_body name that is declared to be the base of all bodies (normally the tower or foundation)

(old command name body still usable)

*

inipos

Initial position in global coordinates.

1. x-pos [m]

2. y-pos [m]

3. z-pos [m]

\(\clubsuit\)

mbdy_eulerang

Command that can be repeated as many times as needed. All following rotations are given as a sequence of euler angle rotations. All angles can be filled in (rotation order x,y,z), but it is recommended only to give a value different from zero on one of the angles and reuse the command if several rotations are needed.

1. \(\theta_x\) [deg]

2. \(\theta_y\) [deg]

(old command name body_eulerang still usable)

3. \(\theta_z\) [deg]

\(\clubsuit\)

mbdy_eulerpar

The rotation is given as euler parameters (quaternions) directly (global coo).

1. \(r_{0}\)

2. \(r_{1}\)

3. \(r_{2}\)

(old command name body_eulerpar still usable)

4. \(r_{3}\)

\(\clubsuit\)

mbdy_axisangle

Command that can be repeated as many times as needed. A version of the euler parameters where the input is a rotation vector and the rotation angle of this vector.

1. x-value

2. y-value

3. z-value

(old command name body_axisangle still usable)

4. angle [deg]

mbdy_ini_rotvec_d1

Initial rotation velocity of main body and all subsequent attached bodies. A rotation vector is set up and the size of vector (the rotational speed) is given. The coordinate system used is main_body coo.

1. x-value

2. y-value

3. z-value

4. Vector size (rotational speed [rad/s])

\(\clubsuit\) One of these commands must be present.

Sub sub command - relative#

This command block can be repeated as many times as needed. However the orientation of every main_body should be described.

Obl.

Command name

Explanation

*

mbdy1

1. Main_body name to which the next main_body is attached.

(old command name body1 still usable)

2. Node number of body1 that is used for connection. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

*

mbdy2

1. Main_body name of the main_body that is positioned in space by the relative command.

(old command name body2 still usable)

2. Node number of body2 that is used for connection. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

\(\clubsuit\)

mbdy2_eulerang

Command that can be repeated as many times as needed. All following rotations are given as a sequence of euler angle rotations. All angles can be filled in (rotation order x,y,z), but it is recommended only to give a value different from zero on one of the angles and reuse the command if several rotations are needed. Until a rotation command is specified, body2 has the same coo. as body1. Rotations are performed in the present body2 coo. system.

1. \(\theta_x\) [deg]

2. \(\theta_y\) [deg]

3. \(\theta_z\) [deg]

(old command name body2_eulerang still usable)

\(\clubsuit\)

mbdy2_eulerpar

The rotation is given as euler parameters (quaternions) directly (global coo).

1. \(r_{0}\)

2. \(r_{1}\)

3. \(r_{2}\)

(old command name body2_eulerpar still usable)

4. \(r_{3}\)

\(\clubsuit\)

mbdy2_axisangle

Command that can be repeated as many times as needed. A version of the euler parameters where the input is a rotation vector and the rotation angle of this vector. Until a rotation command is specified, main_body2 has the same coo. as main_body1. Rotations are performed in the present main_body2 coo. system.

1. x-value

2. y-value

3. z-value

(old command name body2_axisangle still usable)

4. angle [deg]

mbdy2_ini_rotvec_d1

Initial rotation velocity of main body and all subsequent attached bodies. A rotation vector is set up and the size of vector (the rotational speed) is given. The coordinate system used is main_body2 coo.

1. x-value

2. y-value

3. z-value

(old command name body2_ini_rotvec_d1 still usable)

4. Vector size (rotational speed [rad/s])

relpos

Vector from coupling node of mbdy 1 to coupling node of mbdy 2 in mbdy1 coo system in case a certain distance between these nodes is required. (Default for overlapping coupling nodes, this vector is (0,0,0))

1. x-value

2. y-value

3. z-value

Sub command - constraint#

In this block constraints between the main_bodies and to the global coordinate system are defined.

Sub sub command – fix0#

This constraint fixes node number 1 of a given main_body to ground.

Obl.

Command name

Explanation

*

mbdy

Name of main body that is fixed to ground at node 1

(old command name body still usable)

disable_at

Time to which constraint can be disabled

1. \(t_{0}\)

enable_at

Time to which constraint can be enabled

1. \(t_{0}\)

Sub sub command – fix1#

This constraint fixes a given node on one main_body to another main_body’s node.

Obl.

Command name

Explanation

*

mbdy1

1. Main_body name to which the next main_body is fixed.

2. Node number of main_body1 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body1 still usable)

*

mbdy2

1. Main_body name of the main_body that is fixed to main_body1.

2. Node number of main_body2 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body2 still usable)

disable_at

Time to which constraint can be disabled

1. \(t_{0}\)

enable_at

Time to which constraint can be enabled

1. \(t_{0}\)

Sub sub command – fix2#

This constraint fixes node 1 on a main_body to ground in the x, y, and z directions. The direction that is free or fixed is optional.

Obl.

Command name

Explanation

*

mbdy

1. Main_body name to which node 1 is fixed.

(old command name body still usable)

*

dof

Direction in global coo. that is fixed in translation

1. x-direction (0=free, 1=fixed)

2. y-direction (0=free, 1=fixed)

3. z-direction (0=free, 1=fixed)

Sub sub command – fix3#

This constraint fixes a node to ground in the \(t_x\), \(t_y\), and \(t_z\) rotation directions. The rotation direction that is free or fixed is optional.

Obl.

Command name

Explanation

*

mbdy

1. Main_body name to which node 1 is fixed.

2. Node number

(old command name body still usable)

*

dof

Direction in global coo. that is fixed in rotation

1. tx-rot.direction (0=free, 1=fixed)

2. ty-rot.direction (0=free, 1=fixed)

3. tz-rot.direction (0=free, 1=fixed)

Sub sub command – fix4#

Constraint that locks a node on a body to another node in translation but not rotation with a pre-stress feature. The two nodes will start at the defined positions to begin with but narrow the distance until fully attached at time T.

Obl.

Command name

Explanation

*

mbdy1

1. Main_body name to which the next main_body is fixed.

2. Node number of main_body1 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body1 still usable)

*

mbdy2

1. Main_body name of the main_body that is fixed to body1.

2. Node number of main_body2 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body2 still usable)

time

1. Time for the pre-stress process. Default=2sec

disable_at

Time to which constraint can be disabled

1. \(t_{0}\)

enable_at

Time to which constraint can be enabled

1. \(t_{0}\)

Sub sub command – bearing1#

Constraint with properties as a bearing without friction. A sensor with the same identification name as the constraint is set up for output purposes.

Obl.

Command name

Explanation

*

name

1. Identification name

*

mbdy1

1. Main_body name to which the next main_body is fixed with bearing1 properties.

2. Node number of main_body1 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body1 still usable)

*

mbdy2

1. Main_body name of the main_body that is fixed to body1 with bearing1 properties.

2. Node number of main_body2 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body2 still usable)

*

bearing_vector

Vector to which the free rotation is possible. The direction of this vector also defines the coo to which the output angle is defined.

1. Coo. system used for vector definition (0=global,1=mbdy1,2=mbdy2)

2. x-axis

3. y-axis

4. z-axis

sensor_offset_deg

User defined initial bearing angle in degrees. Used for sensor (output).

1. \(\theta_{0}\) [deg]

sensor_offset_rad

User defined initial bearing angle in radians. Used for sensor (output).

1. \(\theta_{0}\) [rad]

disable_at

Time to which constraint can be disabled

1. \(t_{0}\)

enable_at

Time to which constraint can be enabled

1. \(t_{0}\)

Sub sub command – bearing2#

This constraint allows a rotation where the angle is directly specified by an external dll action command.

Obl.

Command name

Explanation

*

name

1. Identification name

*

mbdy1

1. Main_body name to which the next main_body is fixed with bearing2 properties.

2. Node number of main_body1 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body1 still usable)

*

mbdy2

1. Main_body name of the main_body that is fixed to main_body1 with bearing1 properties.

2. Node number of main_body2 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body2 still usable)

*

bearing_vector

Vector about which the rotation occurs. The direction of this vector also defines the coo. to which the output angle is defined.

1. Coo. system used for vector definition (0=global,1=mbdy1, 2=mbdy2)

2. x-axis

3. y-axis

4. z-axis

sensor_offset_deg

User defined initial bearing angle in degrees. Used for sensor (output) and control (input).

1. \(\theta_{0}\) [deg]

sensor_offset_rad

User defined initial bearing angle in radians. Used for sensor (output) and control (input).

1. \(\theta_{0}\) [rad]

disable_at

Time to which constraint can be disabled

1. \(t_{0}\)

enable_at

Time to which constraint can be enabled

1. \(t_{0}\)

Sub sub command – bearing3#

This constraint allows a rotation where the angle velocity is kept constant throughout the simulation.

Obl.

Command name

Explanation

*

name

1. Identification name

*

mbdy1

1. Main_body name to which the next main_body is fixed with bearing3 properties.

2. Node number of main_body1 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body1 still usable)

*

mbdy2

1. Main_body name of the main_body that is fixed to body1 with bearing3 properties.

2. Node number of main_body2 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body2 still usable)

*

bearing_vector

Vector about which the rotation occurs. The direction of this vector also defines the coo. to which the output angle is defined.

1. Coo. system used for vector definition (0=global,1=body1,2=body2)

2. x-axis

3. y-axis

4. z-axis

*

omegas

1. Rotational speed [rad/sec]

Sub sub command – bearing4#

This constraint is a cardan shaft constraint. Locked in relative translation. Locked in rotation around one vector and allows rotation about the two other directions.

Obl.

Command name

Explanation

*

name

1. Identification name

*

mbdy1

1. Main_body name to which the next main_body is fixed with bearing3 properties.

2. Node number of main_body1 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body1 still usable)

*

mbdy2

1. Main_body name of the main_body that is fixed to body1 with bearing3 properties.

2. Node number of main_body2 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body2 still usable)

*

bearing_vector

Vector about which the rotation is locked. The rotation angle and velocity can be output around the two perpendicular directions.

1. Coo. system used for vector definition (0=global,1=mbdy1, 2=mbdy2)

2. x-axis

3. y-axis

4. z-axis

Sub sub command – bearing5#

This constraint is a spherical constraint. Locked in relative translation. Free in rotation around all three axes, but only sensor on the main rotation direction.

Obl.

Command name

Explanation

*

name

1. Identification name

*

mbdy1

1. Main_body name to which the next main_body is fixed with bearing3 properties.

2. Node number of main_body1 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body1 still usable)

*

mbdy2

1. Main_body name of the main_body that is fixed to body1 with bearing3 properties.

2. Node number of main_body2 that is used for the constraint. (“last” can be specified which ensures that the last node on the main_body is used, and “0” (zero) refers to the origin of the main body coordinate system).

(old command name body2 still usable)

*

bearing_vector

Vector about which the rotation is locked. The rotation angle and velocity can be output around the two perpendicular directions.

1. Coo. system used for vector definition (0=global,1=mbdy1, 2=mbdy2)

2. x-axis

3. y-axis

4. z-axis