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:
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.
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.
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 |
||
6. |
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\) |
|
|---|---|---|
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.
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
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.
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.
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 |