Output#
This command output can either be a main command block or a sub command block within the hawc_dll and type2_dll command blocks. In the following paragraphs, two options are introduced: the only option and the label option.
Only option#
For all outputs which return multiple channels, the user has the option to specify only a single channel which will be written to the output. This is done using the keyword “only” at the end of the output specification. This option is only available for outputs that add multiple channels to the output file. An example is given below:
constraint bearing1 shaft_rot 2 only 2;
The bare output command constraint bearing1 shaft_rot 2 adds two output channels to the output: the bearing angle and the angular velocity. The only option in this case allows us to only save the output of the second channel to the output file. This option is useful when you want to limit the scope of the output file to only contain a very specific set of channels.
Label option#
When the check mark is ’yes’ in only label it is possible to specify a label that is appended to the sensor description in the sensor list file. Normal text after the # symbol is used as a label. An example of this could be
dll inpvec 1 1 # This is a dummy label;
In this example the sensor description will be:
DLL : 1 inpvec : 1 This is a dummy label
Custom sensor name, unit and description#
It is also possible to overwrite the name, unit and description of a sensor. This option applies to all sensors. Names, units and descriptions are specified using the $name(), $unit() and $desc() options, which must be placed after the output line, either before or after the # symbol, e.g.:
dll inpvec 1 1 # $name(MySensorName) $unit(MySensorUnit) $desc(MySensorDescription);
Derived sensors#
With the $calc() option, the output value of output sensors can be manipulated by various math operations. This feature can be used e.g. to offset time sensor, or to scale forces from kN to N, or to do more complex operations. The $calc() must be placed after the output line, either before or after the # symbol, e.g.
dll inpvec 1 1 $calc(*1000) # This is a dummy label;
The operation string inside $calc() is composed of sets of:
1 |
Operation key describing the math operation (e.g. ’-’,’+’,’*’,’/’), |
|---|---|
2 |
then a (optional, dependent on operation ) number <val>, |
3 |
and then ’=’ character (to separate operations)(this can be omitted for last operation) |
E.g. $calc(-100=*5) added to sensor line x will return (x-100)*5 in the x sensor output.
Other math operations available (other than -+*/) are:
power, |
$calc(pow<val>) |
: |
returns x\<val> |
|---|---|---|---|
signed power, |
$calc(sgnpow<val>) |
: |
returns sign(x) * abs(x\<val>) |
absolute, |
$calc(abs) |
: |
returns abs(x) |
sine, |
$calc(sin) |
: |
returns sin(x) |
cosine, |
$calc(cos) |
: |
returns cos(x) |
tangens, |
$calc(tan) |
: |
returns tan(x) |
Commands used with results file writing#
When the output command is used for output files (the most normal purpose) some information regarding file name and format needs to be given.
Obl |
Command |
Explanation |
|---|---|---|
* |
filename |
1. Filename incl. relative path to outputfile without extension (example ./res/output) |
data_format |
ASCII or compressed binary output can be chosen. Default is the |
|
ASCII format if nothing is specified. |
||
1. format ( ’hawc_ascii’=ASCII format, |
||
’hawc_binary’=compressed binary format, |
||
’flex_int’=compressed binary format, |
||
’gtsdf’=General time series data format (hdf5 based compressed binary), |
||
’gtsdf64’=General time series data format (hdf5 based binary)) |
||
2. optional for ’flex_int’, time [s] to subtract from the time channel. |
||
buffer |
Buffer size in terms of time steps. When the buffer is full the data are |
|
written to data file. Only used together with the ’hawc_ascii’,’ gtsdf’ and ’gtsdf64’ formats. Default is 3000 time steps |
||
1. 1. buffer size |
||
deltat |
Time interval between outputs [s]. If ‘deltat’ is smaller than simulation time step, output is made each time step. |
|
output_initial_condition |
‘1’ Write the output starting from time 0.0. The optional “output / time” start will be ignored. This option is particularly useful together with the static solver, since, for example, “orientation / base / mbdy_ini_rotvec_d1” is only applied at the first time step. This command must be written before “time”. |
|
time |
Time start \(t_{0}\) and stop \(t_{1}\) for output is defined. Default is the entire simulation length if nothing is specified. By default, the output is written starting from the second time step. That is, the initial condition is not outputted. |
|
2. \(t_{0}\) |
||
3. \(t_{1}\) |
File format of HAWC_ASCII files#
Results are written to an ascii formatted data file with the name assigned to the filename variable (eg. filename ./res/resfil ). The data file will have the extension .dat as a standard. The description of the sensors in the data file is given in another textfile with same filename as the data file but the extension .sel. An example could be: ./res/resfil.dat and ./res/resfil.sel.
In the .sel-file, line number 9 specifies the following parameters: Number of scans, Number of sensors, Duration of output file, Data format (ASCII/BINARY). Example:
10 96 20.000 ASCII
From line number 13 and onwards, the sensors are specified with the following information: Sensor number, Variable description, unit, Long description. Example:
5 bea1 angle_speed rad/s pitch1 angle speed
Full example of the .sel file:
____________________________________________________________________________
Version ID : HAWC2MB 4.3w
Time : 14:23:28
Date : 22:11.2006
____________________________________________________________________________
Result file : ./res2_rev0/case41c_nohydro.dat
____________________________________________________________________________
Scans Channels Time [sec] Format
4500 199 90.000 ASCII
Channel Variable Description
1 Time s Time
2 bea1 angle deg shaft_rot angle
3 bea1 angle_speed rpm shaft_rot angle speed
4 bea1 angle deg pitch1 angle
5 bea1 angle_speed rad/s pitch1 angle speed
6 bea1 angle deg pitch2 angle
7 bea1 angle_speed rad/s pitch2 angle speed
8 bea1 angle deg pitch3 angle
9 bea1 angle_speed rad/s pitch3 angle speed
____________________________________________________________________________
File format of HAWC_BINARY files#
In this file format results are written to a binary unformatted data file with the name assigned to the filename variable (eg. filename ./res/resfil ). The data file will have the extension .dat as a standard. The description of the sensors in the data file is given in another textfile with same filename as the data file but the extension .sel. An example could be: ./res/resfil.dat and ./res/resfil.sel.
The data are scaled to standard 2-byte integers, with a range of 32000 using a scalefactor. The scalefactor is determined for each output sensor
where \(\mathit{max}\) and \(\mathit{min}\) are the largest and lowest number in the original data for the sensor. These scale factors are written in the end of the accompanying .sel file. When converting a binary number to the actual number, it’s just a matter of multiplying the binary numbers of a sensor with the corresponding scalefactor.
In the accompanying text file, which has the extension .sel-file, information of the content in the datafile is stored. In line number 9 the following parameters are specified: Number of scans, Number of sensors, Duration of output file, Data format (ASCII/BINARY). Example:
10 96 20.000 ASCII
From line number 13 and onwards, the sensors are specified with the following information: Sensor number, Variable description, unit, Long description. Example:
5 bea1 angle_speed rad/s pitch1 angle speed
From line number 9+nsensors+5 and upwards the scalefactors are written.
Full example of the .sel file:
____________________________________________________________________________
Version ID : HAWC2MB 4.3
Time : 14:23:28
Date : 22:11.2006
____________________________________________________________________________
Result file : ./res2_rev0/case41c_nohydro.dat
____________________________________________________________________________
Scans Channels Time [sec] Format
4500 9 90.000 ASCII
Channel Variable Description
1 Time s Time
2 bea1 angle deg shaft_rot angle
3 bea1 angle_speed rpm shaft_rot angle speed
4 bea1 angle deg pitch1 angle
5 bea1 angle_speed rad/s pitch1 angle speed
6 bea1 angle deg pitch2 angle
7 bea1 angle_speed rad/s pitch2 angle speed
8 bea1 angle deg pitch3 angle
9 bea1 angle_speed rad/s pitch3 angle speed
____________________________________________________________________________
Scale factors:
1.56250E-04
5.61731E-03
4.41991E-04
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
An important thing to notice is that in the binary data file all sensors are stored sequentially, i.e. all data for sensor 1, all data for sensor 2, etc. This way of storing the data makes later reading of a sensor extra fast since all data for a sensor can be read without reading any data for the other sensor.
A small matlab code for reading the binary HAWC2 format can be seen below.
function sig = ReadHawc2Bin(FileName,path);
ThisPath = pwd; cd(path(1,:))
fid = fopen([FileName,'.sel'], 'r'); fgets(fid); fgets(fid);
fgets(fid); fgets(fid); fgets(fid); fgets(fid); fgets(fid);
fgets(fid);
tline = fscanf(fid,'%d');
N = tline(1); Nch = tline(2); Time = tline(3); fclose(fid);
ScaleFactor = dlmread([FileName,'.sel'],'',[9+Nch+5 0 9+2*Nch+4
0]);
fid = fopen([FileName,'.dat'], 'r'); sig =
fread(fid,[N,Nch],'int16')*diag(ScaleFactor); fclose(fid);
cd(ThisPath)
File format for gtsdf and gtsdf64 files#
The file formats and reading and writing examples of the gtsdf and gtsdf64 file types and are described here: {https://gitlab.windenergy.dtu.dk/toolbox/WindEnergyToolbox/blob/master/wetb/gtsdf/General
A reference Python implementation to read and write gtsdf files is available in the open source Wind Energy Toolbox: https://gitlab.windenergy.dtu.dk/toolbox/WindEnergyToolbox/blob/master/wetb/gtsdf/gtsdf.py
Hub- and nacelle-lidar sensors#
The hub- and nacelle-lidar sensors are single-beam lidars that were implemented and updated, respectively, in HAWC2 version 13.1 (see Soto Sagredo et al. [SotoSagredoRL23]). Both sensors take into account tower motion when calculating the line-of-sight velocities.
The nacelle-lidar sensor is a continuous-wave (CW) lidar, which can be offset from the rotor to a desired initial position. The hub-lidar sensor is a pulsed lidar and is positioned at the rotor center, but rotates with the rotor. Both sensors translate and rotate with the nacelle. In addition to the weighted line-of-sight velocity, the outputs of the hub lidar sensor include the line-of-sight velocity without weighting as well as the three turbulence components at the measurement point. For more details on the two lidar sensors, please read Soto Sagredo et al. [SotoSagredoRL23].
mbdy (main body output commands)#
Command 1 |
Command 2 |
Explanation |
Label option |
|
|---|---|---|---|---|
mbdy |
forcevec |
\(F_x\), \(F_y\), \(F_z\) shear force vector, see definition in figure 2. |
yes |
|
1. Main_body name |
||||
2. Element number |
||||
3. Node number on element (1 or 2) |
||||
4. Main_body name of which coordinate system is used for output. “global” and “local” can also be used. Local is around local beam main bending directions. |
||||
mbdy |
momentvec |
\(M_x\), \(M_y\), \(M_z\) moment vector, see definition in figure 2. |
yes |
|
1. Main_body name |
||||
2. Element number |
||||
3. Node number on element (1 or 2) |
||||
4. Main_body name of which coordinate system is used for output. “global” and “local” can also be used. Local is around local beam main bending directions. |
||||
mbdy |
forcemomentvec_interp |
\(F_x\), \(F_y\), \(F_z\), \(M_x\), \(M_y\), \(M_z\) interpolated shear force and moment vector defined to output. This sensor can write out an interpolated set of cross sectional forces and moments independent of the node discretization. It can also write out in local deformed c2_def coordinates and therefore breaks the limit of using element coordinates. |
yes |
yes |
1. Main_body name |
||||
2. Position of location outputted: ’c2def’ or ’default’ (default = elastic center). |
||||
3. Name of mbdy used for output coordinate system: mbdy_name, ’global’, ’local_aero’ or ’local_element’ |
||||
4. Distance along c2_def to output location |
||||
5. Sign multiplied to output: 1.0 or -1.0 |
||||
mbdy |
state |
Vector with 3 components of either position, velocity or acceleration of a point on an element defined to output. If ’acg’ is used, the acceleration including the gravity contribution is written. |
yes |
|
1. State: ’pos’, ’vel’, ’acc’, ’acg’ |
||||
(“pos”=position, “vel”=velocity, “acc”=acceleration) |
||||
2. Main_body name |
||||
3. Element number |
||||
4. Relative distance from node 1 to node 2 on element |
||||
5. Main_body name of which coordinate system is used for output. “global” can also be used. |
||||
mbdy |
state_at |
Vector with 3 components of either position, velocity or acceleration of a point on an element defined to output. The point is offset from the element z axis by an x and y distance in element coordinates. |
yes |
|
1. State: ’pos’, ’vel’, ’acc’, ’acg’ |
||||
2. Main_body name |
||||
3. Element number |
||||
4. Relative distance from node 1 to node 2 on element |
||||
5. Main_body name of which coordinate system is used for output. “global” can also be used. |
||||
6. x-coordinate offset [m] |
||||
7. y-coordinate offset [m] |
||||
mbdy |
state_at2 |
Vector with 3 components of either position, velocity or acceleration of a point on an element defined to output. The point is offset from the c2_def centerline z axis by an x and y distance in local c2def centerline coordinates. |
yes |
|
1. State: ’pos’, ’vel’, ’acc’, ’acg’ |
||||
2. Main_body name |
||||
3. Element number |
||||
4. Relative distance from node 1 to node 2 on element |
||||
5. Main_body name of which coordinate system is used for output. “global” can also be used. |
||||
6. x-coordinate offset [m] |
||||
7. y-coordinate offset [m] |
||||
mbdy |
state_rot |
Vector with components of either axis and angle (angle [rad], \(r_{1}\),\(r_{2}\),\(r_{3}\)), euler parameters (quaternions \(r_{0}\),\(r_{1}\),\(r_{2}\),\(r_{3}\)), euler angles, rotation velocity ( |
yes |
|
-vector) or rotation acceleration ( |
||||
-vector) of a point on an element defined to output. |
||||
For the sensor eulerang_xyz a set of euler angles are created based on the orientation matrix. Be aware that the method used is only valid for rotations in the intervals |
||||
(\(\theta_{x}\) ±180°, \(\theta_{y}\) ±90°, \(\theta_{z}\) ±180°). The method proj_ang can be used to see how much a blade tip rotates around the pitch axis, but be aware that the angles are how the element is oriented and not necesarily how the local chord is rotated. With the command proj_ang the angles are obtained from the local element orientation \(3 \times 3\) matrix \(T_e\), seen from the chosen coordinate system using the \(\arctanTwo\) function (\(\mathrm{rot}_x = \arctanTwo(T_e(2,3), T_e(3,3))\), \(\mathrm{rot}_y = \arctanTwo(T_e(3,1), T_e(1,1))\), \(\mathrm{rot}_z = \arctanTwo(T_e(1,2), T_e(2,2))\)). |
||||
1. State : ’axisangle’, ’eulerp’, ’eulerang_xyz’, ’omega’, ’omegadot’ or proj_ang |
||||
2. Main_body name |
||||
3. Element number |
||||
4. Relative distance from node 1 to node 2 on element |
||||
5. Main_body name of which coordinate system is used for output. “global” can also be used. |
||||
mbdy |
statevec_new |
This sensor writes out the position vector and orientation vector for a point on the structure. The orientation vector is a direction vector to which the structure is rotated and the vector length is the size of this rotation. There is a direct relation between this vector and the 3x3-orientation matrix, but it is easier to overview as each single element corresponds to a 2D projected rotation (rot_x, rot_y, rot_z). |
yes |
|
Furthermore it can write out the orientation of the local deformed c2_def coordinates system and therefore breaks the limit of only looking at element orientations. |
||||
1. Main_body name |
||||
2. Position of location outputted: ’c2def’ or ’default’ (default = elastic center). |
||||
3. Name of mbdy used for output coordinate system: mbdy_name or ’global’ |
||||
4. State: ’elastic’ or ’absolute’. Elastic means that initial location is subtracted from the results |
||||
5. Distance along c2_def to output location |
||||
6. Sign multiplied to output: 1.0 or -1.0 |
||||
7. x-coordinate offset from center to a point where location is outputted (local c2def coo) [m] |
||||
8. y-coordinate offset from center to a point where location is outputted (local c2def coo) [m] |
||||
mbdy |
wind |
This sensor writes out the global or relative wind velocity components for a point on a main body. The measurement point follows the structure rigid body motions and elastic deflections. |
yes |
|
This output channel can be important if the wind measurement point moves long distances during the analysis. For example floating wind turbines can move dozens meters during a simulation. |
||||
1. Main_body name |
||||
2. Element number on the main body |
||||
3. Relative distance from node 1 to node 2 on the element |
||||
4. Wind velocity measurement method: ’global’ or ’relative’. Relative means the point velocity is substracted from the global wind speed |
||||
5. x-coordinate offset of the point [m] |
||||
6. y-coordinate offset of the point [m] |
This illustration shows how the sensors are placed on an element in terms of local nodes and relative distance.
The “mbdy forcevec” and “mbdy momentvec” sensor definitions depend on argument 3, “node number on element”, which must be 1 or 2.
For node number 1 (element start node), the sensors output the forces and moments (blue in figure) that the element and the succeeding structure (excluding concentrated masses and external forces attached to the node) applies to the preceding structure.
For node number 2 (element end node), the sensors output the forces and moments (red in figure) that the succeeding structure (including concentrated masses and external forces attached to the node) applies to the element and the preceding structure.#
Constraint (constraint output commands)#
bearing1#
Command 1 |
Command 2 |
Explanation |
Label option |
|
|---|---|---|---|---|
constraint |
bearing1 |
Bearing angle and angle velocity defined to output |
No |
|
1. bearing1 name |
||||
2. unit of output |
||||
(1:angle [unit=rad, range -\(\pi\):\(\pi\)], vel [rad/s]; |
||||
2:angle [unit=deg, range 0:360], vel [rpm]; |
||||
3:angle [unit=deg, range 0:360], vel [rad/s]); |
||||
4:angle [unit=deg, range -180:180], vel [rad/s]; |
||||
5:angle [unit=deg, range -180:180], vel [deg/s]) |
bearing2#
Command 1 |
Command 2 |
Explanation |
Label option |
|
|---|---|---|---|---|
constraint |
bearing2 |
Bearing angle and angle velocity defined to output |
No |
|
1. bearing2 name |
||||
2. unit of output |
||||
(1:angle [unit=rad, range -\(\pi\):\(\pi\)], vel [rad/s]; |
||||
2:angle [unit=deg, range 0:360], vel [rpm]; |
||||
3:angle [unit=deg, range 0:360], vel [rad/s]); |
||||
4:angle [unit=deg, range -180:180], vel [rad/s]; |
||||
5:angle [unit=deg, range -180:180], vel [deg/s]) |
bearing3#
Command 1 |
Command 2 |
Explanation |
Label option |
|
|---|---|---|---|---|
constraint |
bearing3 |
Bearing angle and angle velocity defined to output |
No |
|
1. bearing3 name |
||||
2. unit of output |
||||
(1:angle [unit=rad, range -\(\pi\):\(\pi\)], vel [rad/s]; |
||||
2:angle [unit=deg, range 0:360], vel [rpm]; |
||||
3:angle [unit=deg, range 0:360], vel [rad/s]); |
||||
4:angle [unit=deg, range -180:180], vel [rad/s]; |
||||
5:angle [unit=deg, range -180:180], vel [deg/s]) |
bearing4#
Rotation angle and velocity of the two axis perpendicular to the cardan shaft torsion axis are outputted.
Command 1 |
Command 2 |
Explanation |
Label option |
|
|---|---|---|---|---|
constraint |
bearing4 |
Bearing angle and angle velocity defined to output |
No |
|
1. bearing4 name |
||||
2. unit of output |
||||
(1:angle [unit=rad, range -\(\pi\):\(\pi\)], vel [rad/s]; |
||||
2:angle [unit=deg, range 0:360], vel [rpm]; |
||||
3:angle [unit=deg, range 0:360], vel [rad/s]); |
||||
4:angle [unit=deg, range -180:180], vel [rad/s]; |
||||
5:angle [unit=deg, range -180:180], vel [deg/s]) |
wind (wind output commands)#
Command 1 |
Command 2 |
Explanation |
Label option |
|
|---|---|---|---|---|
wind |
free_wind |
Wind vector \(V_x, V_y, V_z\), (wind as if the turbine didn’t exist). |
yes |
|
1. Coordinate system (1=global, 2=non rotating rotor coordinates (x always horizontal, y always out-of-plane)) |
||||
2. x-pos (global coo) |
||||
3. y-pos (global coo) |
||||
4. z-pos (global coo) |
||||
wind |
free_wind_center_pos0 |
Wind vector \(V_x, V_y, V_z\), (wind as if the turbine didn’t exist). |
yes |
|
1. Coordinate system (1=global, 2=non rotating rotor coordinates (x always horizontal, y always out-of-plane)) _center_pos0 |
||||
wind |
free_wind_hor |
Horizontal wind component velocity [m/s] and direction [deg] defined to output. Dir=0 when wind equals y-dir. |
yes |
|
1. Coordinate system (1=global, 2=non rotating rotor coordinates (x always horizontal, y always out-of-plane)) |
||||
2. x-pos (global coo) |
||||
3. y-pos (global coo) |
||||
4. z-pos (global coo) |
||||
wind |
free_wind_- hor_center_pos0 |
Horizontal wind component velocity [m/s] and direction [deg] defined to output. Dir=0 when wind equals y-dir. |
yes |
|
1. Coordinate system (1=global, 2=non rotating rotor coordinates (x always horizontal, y always out-of-plane)) |
||||
wind |
free_wind_shadow |
As sensor “free_wind”, but with tower shadow included. |
Yes |
Yes |
1. Coordinate system (1=global, 2=non rotating rotor coordinates (x always horizontal, y always out-of-plane)) |
||||
2. x-pos (global coo) |
||||
3. y-pos (global coo) |
||||
z-pos (global coo) |
wind_wake (wind wake output commands)#
Note that the wind_wake output command can only be used in simulation where wakes have been defined.
Command 1 |
Command 2 |
Explanation |
Label option |
|
|---|---|---|---|---|
wind_wake |
wake_pos |
Position of the wake deficit center after the meandering proces to the downstream end position. x,y and z position is written in meteorological coordinates \((x,y,z)_M=(u,v,w)\) with origo in the position defined with center_pos0 in the general wind commands. |
Yes |
|
1. wake source number |
dll (DLL output commands)#
Command 1 |
Command 2 |
Explanation |
Label option |
|---|---|---|---|
dll |
inpvec |
Value from DLL input vector is defined to output |
yes |
1. DLL number |
|||
2. array index number |
|||
dll |
outvec |
Value from DLL output vector is defined to output |
yes |
1. DLL number |
|||
2. array index number |
|||
dll |
hawc_dll |
Special output commands for the “hawc_dll” format. With this command the dll name can be used in the output definitions |
yes |
1. string. Reference name of the dll given in the begin – end hawc_dll input definitions. |
|||
2. string. “outvec” or “inpvec” can be used. Same definition as previously written above. |
|||
3. Channel number in the in or out going array. |
|||
dll |
type2_dll |
Special output commands for the “type2_dll” format. With this command the dll name can be used in the output definitions |
yes |
1. string. Reference name of the dll given in the begin – end hawc_dll input definitions. |
|||
2. string. “outvec” or “inpvec” can be used. Same definition as previously written above. |
|||
3. Channel number in the in or out going array. |
|||
dll |
sensor_id |
Name of sensor_id defined for other output sensor |
|
1. Sensor number if sensor id refers to a vector |
hydro (hydrodynamic output commands)#
Command 1 |
Command 2 |
Explanation |
Label option |
|
|---|---|---|---|---|
hydro |
water_surface |
Water surface level at a given horizontal location is defined to output (global coordinates). Unit [m] |
No |
|
1. x-pos |
||||
2. y-pos |
||||
hydro |
water_vel_acc |
Water velocity \(V_{x}\), \(V_{y}\), \(V_{z}\), and acceleration \(A_{x}\), \(A_{y}\), \(A_{z}\) vectors defined to output. Unit [m/s] and [m/s2]. |
No |
|
1. x-pos |
||||
2. y-pos |
||||
3. z-pos |
||||
hydro |
water_pressure |
Dynamic water pressure from Bernoulli’s equation, in a given hydro element calculation point. Unit [MPa]. |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
hydro |
fm |
Radial inertia force (FK + hydro mass) \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution from Morisons formula in a given calculation point. Unit [kN/m]. Note: added mass is by default computed in the right hand side of the EOM, so the hydro mass term is only accounting for the fluid acceleration term. |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
fd |
Radial drag force \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution from Morisons formula in a given calculation point. Unit [kN/m] |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
fb |
Buoyancy force (distributed along element) \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution in a given calculation point. Unit [kN/m] |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
mb |
Buoyancy moment (distributed along element) \(M_{x}\), \(M_{y}\), \(M_{z}\) contribution in a given calculation point. Unit [kNm/m] |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
cfb |
Concentrated axial buoyancy force \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution in a given calculation point. Unit [kN]. Note: in case of auto hydro sections =0, if the specified radius is not a hydro or structural node, the sensor will output the nearest node information. |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
cmb |
Concentrated buoyancy moment \(M_{x}\), \(M_{y}\), \(M_{z}\) contribution in a given calculation point. Unit [kNm]. Note: in case of auto hydro sections =0, if the specified radius is not a hydro or structural node, the sensor will output the nearest node information. |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
cfm |
Concentrated force from axial hydro mass \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution in a given calculation point. Unit [kN]. Added mass is by default computed in the right hand side of the EOM, so the hydro mass term is only accounting for the fluid acceleration term, and computed as \(\rho V_{ref} C_{a,axial} water\_acc\), with \(V_{ref}\) taken as half volume of sphere defined by the local width (of the specified element radius) as diameter. Note: in case of auto hydro sections =0, if the specified radius is not a hydro or structural node, the sensor will output the nearest node information. |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
cfdrag |
Concentrated force from axial damping \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution in a given calculation point. Unit [kN]. Note: in case of auto hydro sections =0, if the specified radius is not a hydro or structural node, the sensor will output the nearest node information. |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
fdyn |
Dynamic wave pressure force (distributed) \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution in a given calculation point. Unit [kN/m] |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
cfdyn |
Concentrated axial dynamic wave pressure force \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution in a given calculation point. Unit [kN]. Note: in case of auto hydro sections =0, if the specified radius is not a hydro or structural node, the sensor will output the nearest node information. |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
secfrc |
Total hydro distributed force \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution in a given calculation point. Unit [kN/m] |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
secmom |
Total hydro distributed moment \(M_{x}\), \(M_{y}\), \(M_{z}\) contribution in a given calculation point. Unit [kNm/m] |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
cfrc |
Total hydro axial concentrated force \(F_{x}\), \(F_{y}\), \(F_{z}\) contribution in a given calculation point. Unit [kN]. Note: in case of auto hydro sections =0, if the specified radius is not a hydro or structural node, the sensor will output the nearest node information. |
No |
|
1. hydro element number |
||||
2. radius (in [m], axial distance from 1st node) |
||||
3. coordinate system (1=global, 2=local hydro sec coo) |
||||
hydro |
totfrc/totmom |
Total hydro force/moment from integration of distributed forces and moment over the hydro element. Total \(F_x/M_{x}\), \(F_y/M_{y}\), \(F_z/M_{z}\). Unit [kN/kNm]. The sensor can be used for individual hydro elements by specifying the required hydro element number below; the reference point for the moment is then the location of first hydro section. Or the sensor can be the sum over all hydro elements by specifying ’all’ below; the reference point for the moment is then the global origin. All forces and moments are output in global coordinates |
No |
|
1. hydro element number OR ’all’ |
||||
2. coordinate system in which to output the forces or moments (mbdy_name or ’global’). Beware that the coordinate system for the moments is also specifying the origin. |
External forces#
Command 1 |
Command 2 |
Explanation |
Label option |
|---|---|---|---|
force |
1. Name of the force DLL. |
No |
general (general output commands)#
Command 1 |
Command 2 |
Explanation |
Label option |
|---|---|---|---|
general |
constant |
A constant value is send to output |
Yes |
1. constant value |
|||
general |
step |
A step function is created. This function changes from \(f_{0}\) to \(f_{1}\) at time \(t_{0}\). |
Yes |
1. \(t_{0}\) [sec] |
|||
2. \(f_{0}\) |
|||
3. \(f_{1}\) |
|||
general |
step2 |
A step function is created. This function changes from \(f_{0}\) to \(f_{1}\) between time \(t_{0}\) and \(t_{1}\) using linear interpolation. |
Yes |
1. \(t_{0}\) [sec] |
|||
2. \(t_{1}\) [sec] |
|||
3. \(f_{0}\) |
|||
4. \(f_{1}\) |
|||
general |
step3 |
A step function is created. This function changes from \(f_{0}\) to \(f_{1}\) between time \(t_{0}\) and \(t_{1}\) using a continuous sinus2 interpolation function. |
Yes |
1. \(t_{0}\) [sec] |
|||
2. \(t_{1}\) [sec] |
|||
3. \(f_{0}\) |
|||
4. \(f_{1}\) |
|||
general |
time |
The time is send to output. No parameters |
Yes |
general |
deltat |
The time increment is send to output. No parameters |
Yes |
general |
harmonic |
A harmonic function is send to output |
Yes |
\(F(t)=An (2\pi {{f}_{0}}t)+k\) |
|||
1. A |
|||
2. \(f_{0}\) |
|||
3. k |
|||
general |
harmonic2 |
A harmonic function is send to output |
Yes |
\( F(t) = \begin{cases} 0 & t < t_0 \\ A n(2 \pi f_0 (t-t_0)) + k & t_0 \le t \le t_1 \\ 0 & t > t_1 \end{cases}\) |
|||
1. A |
|||
2. \(f_{0}\) |
|||
3. k |
|||
4. \(t_{0}\) |
|||
5. \(t_{1}\) |
|||
general |
stairs |
A series of steps resulting in a staircase signal is created. |
Yes |
1. \(t_{0}\) time for first step change [s] |
|||
2. \(f_{0}\) start value of function |
|||
3. Step size |
|||
4. Step duration [s] |
|||
5. Number of steps |
|||
general |
status |
A status flag (mainly for controller purpose) is written. A first time step and first iteration the output value is 0. During the rest of the simulation the value is 1 until last time step where the value is -1. |
Yes |
general |
random |
A random (uniform distribution) is written |
Yes |
1. lower limit |
|||
2. upper limit |
|||
3. seed number |
|||
general |
impulse |
A step function which return to zero after a certain duration |
Yes |
1. \(t_{0}\) time for impulse start [s] |
|||
2. Impulse duration [s] |
|||
3. \(f_{0}\) impulse level |
|||
general |
sensor_id |
Sensor name. |
No |
1. Sensor name |
|||
2. Sensor number if sensor name refers to a vector |
|||
general |
variable |
Sensor, which can be modified via API in library version of HAWC2. |
No |
1. Sensor index (custom index, 1-100, use to refer to the sensor) |
|||
2. Initial sensor value |
|||
Name, unit and description can be specified as described in Sec. Custom sensor name, unit and description |
Output_at_time (output at a given time)#
This command is especially useful if a snapshot of loads or other properties are required at a specific time. This is mostly used for writing calculated aerodynamic properties as function of blade location. The command block can be repeated as many times as needed (e.g. if outputs at more than one time is needed)
The command must be written with the following syntax
output_at_time keyword time
where keyword is the name of an output subcommand. Currently only the subcommand aero is supported. The last command word time is the time in seconds from simulation start to which the output are written.
aero (aerodynamic output commands)#
The first line in the output_at block must be the information regarding which file the outputs are written (the filename command listed in the table below)
Command 1 |
Explanation |
Label option |
|---|---|---|
filename |
Filename incl. relative path to output file |
No |
(example ./output/output_at.dat). |
||
1. filename |
||
alfa |
Angle of attack [deg]. |
No |
1. Blade number |
||
2. Dimensionless position on the chord where the angle of attack is calculated (0= leading edge, 1= trailing edge). The calculation uses Equation (39) from Li et al. [LGP+22]. |
||
Note that the 2nd input argument (default=0.75) is optional |
||
alfadot |
Pitch rate term (z-axis rotation) in local aerodynamic plane, as used for non-circulatory contributions. Unit [rad/s]. |
No |
1. Blade number |
||
vrel |
Relative velocity [m/s] |
No |
1. Blade number |
||
2. Dimensionless position on the chord where the relative velocity is calculated (0= leading edge, 1= trailing edge). The calculation uses the pitch rate, similar to the angle of attack calculation in Equation (39) from Li et al. [LGP+22]. |
||
Note that the 2nd input argument (default=0.75) is optional |
||
cl |
Lift coefficient [-] |
No |
1. Blade number |
||
cd |
Drag coefficient [-] |
No |
1. Blade number |
||
cm |
Moment coefficient [-] |
No |
1. Blade number |
||
lift |
Lift force L [N/m] |
No |
1. Blade number |
||
drag |
Drag force D [N/m] |
No |
1. Blade number |
||
moment |
Moment force M [Nm/m] |
No |
1. Blade number |
||
secforce |
Aerodynamic forces [kN/m] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
3. Coordinate system (1=aero, 2=blade, 3=global, 4=rotor polar) |
||
secmoment |
Aerodynamic moments [kNm/m] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
3. Coordinate system (1=aero, 2=blade, 3=global, 4=rotor polar) |
||
4. Dimensionless position on the chord where the moment is calculated (0= leading edge, 1= trailing edge) |
||
Note that the 4th input argument (default=0.75) is optional |
||
int_force |
Aerodynamic forces integrated from tip to given radius [kN] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
3. Coordinate system (1=aero, 2=blade, 3=global, 4=rotor polar) |
||
int_moment |
Aerodynamic moment integrated from tip to given radius [kNm] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
3. Coordinate system (1=aero, 2=blade, 3=global, 4=rotor polar) |
||
inipos |
Initial position of sections in blade coo [m] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
position |
Actual position of section [m] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
3. Coordinate system (1=aero, 2=blade, 3=global, 4=rotor polar) |
||
velocity |
Actual velocity of section [m/s] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
3. Coordinate system (1=aero, 2=blade, 3=global, 4=rotor polar) |
||
acceleration |
Actual acceleration of section [m/s] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
3. Coordinate system (1=aero, 2=blade, 3=global, 4=rotor polar) |
||
ct_local |
Local thrust coefficient [-]. Calculated based on the expression |
No |
\({{C}_{t}}=\frac{{{F}_{axial}}\,B}{{\scriptstyle{}^{1}/{}_{2}}\rho 2\pi \,r\,V_{\inf }^{2}}\) |
||
1. Blade number |
||
cq_local |
Local tangential force coefficient [-]. Calculated based on the expression |
No |
\({{C}_{q}}=\frac{{{F}_{\tan }}\,B}{{\scriptstyle{}^{1}/{}_{2}}\rho 2\pi \,r\,V_{\inf }^{2}}\) |
||
1. Blade number |
||
chord |
Chord length [m] |
No |
1. Blade number |
||
induc |
Induced velocity [m/s] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
3. Coordinate system (1=aero, 2=blade, 3=global, 4=rotor polar) |
||
windspeed |
Free windspeed (without induction) [m/s] |
No |
1. Blade number |
||
2. DOF number (1=x,2=y,3=z) |
||
3. Coordinate system (1=aero, 2=blade, 3=global, 4=rotor polar) |
||
4. Include tower shadow (1: with tower shadow, 0: without tower shadow) |
||
Note that the 4th input argument is optional (default =1) |
||
inflow_angle |
Angle of attack + rotation angle of profile related to polar coordinates (not pitching). Unit [deg] |
No |
1. Blade number |
||
dcldalfa |
Gradient \({dCl}/{d\alpha }\;\). Unit [\(\mathrm{deg}^{-1}\)] |
No |
1. Blade number |
||
dcddalfa |
Gradient \({dCd}/{d\alpha }\;\). Unit [\(\mathrm{deg}^{-1}\)] |
No |
1. Blade number |
||
tiploss_f |
The local tiploss factor (product of Prandtl and custom tiploss factor) |
No |
1. Blade number |
An example of an output_at_time command block could be:
begin output_at_time aero 100;
filename ./output_at_time ;
alfa 1;
end output_at_time;