Description of Additional Input Files

1. Body type 4, Prescribed positions imported from file

The name of the time series file is specified in the system input file.

The time series file is an ASCII text file, with comments beginning with apostrophes in the first lines on the file. The data section of the file contains time and the 6 components of the position vector.

File format:

File heading, arbitrary number of lines with apostrophe in the first position of the input line

' TEXT-1
' TEXT-2
' ......
' TEXT-n

1 input line

NCOL
  • NCOL: integer, default: 6: Number of columns (=6)

1 input line

NROW
  • NROW: integer: Number of time incidents given on file

1 input line

SAMP
  • SAMP: real: Sampling interval \(\mathrm {[T]}\)

Position, NROW lines (one per time incident)

XG  YG  ZG  PHI  THETA  PSI
  • XG: real: Global X-coordinate of body \(\mathrm {[L]}\)

  • YG: real: Global Y-coordinate of body \(\mathrm {[L]}\)

  • ZG: real: Global Z-coordinate of body \(\mathrm {[L]}\)

  • PHI: real: Euler angle, rotation about x-axis \(\mathrm {[deg]}\)

  • THETA: real: Euler angle, rotation about y-axis \(\mathrm {[deg]}\)

  • PSI: real: Euler angle, rotation about z-axis \(\mathrm {[deg]}\)

The applied rotational order is: PSI → THETA → PHI

Example:

'text
'text
 6            'Number of columns
 1000         'Number of time steps
  1.0         'Time step
  XG1  YG1  ZG1  PHI1  THETA1  PSI1
  XG2  YG2  ZG2  PHI2  THETA2  PSI2
 ....

2. External force time series imported from file

The name of the time series file is specified in the system input file.

The time series file is an ASCII text file, with comments beginning with apostrophes in the first lines on the file. The data section of the file contains time and the 6 components of the position vector.

File format:

File heading, arbitrary number of lines with apostrophe in the first position of the input line

' TEXT-1
' TEXT-2
' ......
' TEXT-n

1 input line

NCOL
  • NCOL: integer: Number of columns (=6)

1 input line

NROW
  • NROW: integer: Number of rows (i.e. no. of time incidents)

1 input line

SAMP
  • SAMP: real: Sampling interval \(\mathrm {[T]}\)

Force components, NROW lines (one per time incident)

FX   FY   FZ   MX   MY   MZ
  • FX: real, default: 0: Force in X-direction, \(\mathrm {[F]}\)

  • FY: real, default: 0: Force in Y-direction, \(\mathrm {[F]}\)

  • FZ: real, default: 0: Force in Z-direction, \(\mathrm {[F]}\)

  • MX: real, default: 0: Moment about X-axis, \(\mathrm {[FL]}\)

  • MY: real, default: 0: Moment about Y-axis, \(\mathrm {[FL]}\)

  • MZ: real, default: 0: Moment about Z-axis, \(\mathrm {[FL]}\)

Example:

'text
'text
6                    ' Number of columns
1000                 ' Number of time steps
1.0                  ' Time step
F1     F2   F3   M1   M2   M3
F1     F2   F3   M1   M2   M3
F1     F2   F3   M1   M2   M3

3. Specification of internal control system for VAWT generator torque and electrical power

Description of internal control system for VAWT generator torque and electrical power

The implemented generator torque control system includes start-up logic as well as operational logic. A PI controller for the generator torque is applied to achieve the desired rotor speed.

During the start-up period, the reference rotor speed is based on the rotor speed and the current time. The integral control parameter starts with a large value and is relaxed to the operational value after the start-up period.

After the start-up period, the reference rotor speed is based on the low-pass filtered wind speed.

Control measurement filter

The generator speed is the sole feedback input. Two notch filters are applied to the generator speed: one at \(\mathrm {n}\) times the reference rotor speed, and one at 2\(\mathrm {n}\) times the rotor speed (where \(\mathrm {n}\) is the number of blades). The notch filter at radial frequency \(\mathrm {\omega _n}\) with width parameter \(\mathrm {2\zeta}\) is given by:

\[H(s)=\frac{s^2+2\zeta\omega s+\omega _n^2}{(s+\omega _n)^2}\]

Generator torque controller

The generator torque controller uses PI control to try to attain a specified reference speed. The reference speed is determined based on a look-up wind speed/rotor speed table, which is given as input or taken from the default table shown below. The low-pass filtered wind speed is used to determine the reference rotor speed at each time step. Linear interpolation is used in between the reference values.

The default rotor speed/wind speed table
Wind speed Reference rotor speed

\(\mathrm {[m/s]}\)

\(\mathrm {[rad/s]}\)

3.0

0.200

8.0

0.544

23.0

0.544

35.0

0.200

PI control

The PI controller determines the generator torque based on the proportional and integrated errors in rotor speed. The simple regulator algorithm is given by

\[R(t+\Delta t)=R(t)+\Delta \omega \Delta t\]
\[\mathrm {Q=K_P\Delta \omega +K_IR(t+\Delta t)}\]

where \(\mathrm {\Delta t}\) is the regulator time step, \(\mathrm {\Delta \omega }\) is the rotor speed error, i.e. the difference between filtered rotor speed and rated rotor speed. \(\mathrm {R}\) is the accumulated time integrated speed error. \(\mathrm {Q}\) is the instructed/required generator torque.

The factor \(\mathrm {\tau_i}\) is used to relate the proportional and integral gains.

\[K_I=K_P/\tau_i\]

During start-up, the value of \(\mathrm {\tau_i}\) should be small. Therefore, an initial value, final value, and a time period for relaxing \(\mathrm {\tau_i}\) are introduced. The relaxation period begins after the defined start-up period. The relaxation procedure is shown in the figure
`Illustration of relaxation of integral gain' below.

tau
Figure 1. Illustration of relaxation of integral gain.
Start-up

During the specified start-up period, the reference rotor speed is first calculated based on the filtered wind speed and then a linear ramp factor is applied. The ramp factor is zero at the start of the simulation and increases to one at the end of the start-up period.

Gain scheduling

The optimal proportional and integrator gains may vary with rotor speed. At each step the gain will be corrected based on the present rotor speed. The user may specify a gain scheduling law or choose to apply the default law presented in the table `The default gain scheduling law'. For intervening generator speeds, linear interpolation is used.

The default gain scheduling law
Rotor speed Correction Factor

\(\mathrm {[rad/s]}\)

\(\mathrm {[1]}\)

0.00

1.00

0.55

1.00

0.60

1.50

1.00

1.50

Input description

Controller Data, Generator, One input line

DTSAMP  TSTARTUP
  • DTSAMP: real: time interval for control actions \(\mathrm {[T]}\)

  • TSTARTUP: real: Length of time for using start-up control logic \(\mathrm {[T]}\)

Controller Data, Generator One input line

TCOMEGA TCWIND WNFILT NOTCH_P2
  • TCOMEGA: real: Dummy input

  • TCWIND: real: Time constant for first order low pass filter for wind speed, \(\mathrm {TCWIND=1/\omega }\) \(\mathrm {[s/rad]}\)

  • WNFILT: real: Dummy input

  • NOTCH_P2: real: Width parameter in notch filters

Engine Data, Generator, One input line

GBRATIO MAX_TRQ MAX_TRQRATE
  • GBRATIO: real: Gear box ratio (N rotations of high speed shaft for one rotation of the low speed shaft, I.e. generator versus rotor)

  • MAX_TRQ: real: Rated generator torque \(\mathrm {[FL]}\)

  • MAX_TRQRATE: real: Maximum generator torque \(\mathrm {[FL/T]}\)

Controller Data, Generator One input line

 KP TAU_I_INIT, TAU_I_FINAL, T_RELAX
  • KP: real: Proportional gain (referred to high speed shaft) \(\mathrm {[FLT/rad]}\)

  • TAU_I_INIT: real: Initial value of \(\mathrm {\tau_i}\), \(\mathrm {[T]}\)

  • TAU_I_FINAL: real: Final value of \(\mathrm {\tau_i}\), \(\mathrm {[T]}\)

  • T_RELAX: real: Time period for relaxing \(\mathrm {\tau_i}\) after the start-up period, \(\mathrm {[T]}\)

Engine Data, Generator actuator One input line

WINDROTSPEED GAINSCHEDULE
  • WINDROTSPEED: character: Wind speed/rotor speed table; Default or Tabulated

    • = D: Default

    • = T: Tabulated

  • GAINSCHEDULE: character: Gain scheduling; Default or Tabulated

    • = D: Default

    • = T: Tabulated

Wind speed/rotor speed (WINDROTSPEED=T) One input line

WSNumber
  • WSNumber: integer: Number of points in wind speed/rotor speed table

Wind speed/rotor speed (WINDROTSPEED=T); Wind speed/rotor speed table. WSNumber input lines

WS OMEGA
  • WS: real: Wind speed at hub \(\mathrm {[L/T]}\)

  • OMEGA: real: Rotor speed \(\mathrm {[rad/T]}\)

Gain scheduling (GAINSCHEDULE=T) One input line

GSNumber
  • GSNumber: integer: Number of points in gain scheduling table

Gain scheduling; Gain scheduling factors (GAINSCHEDULE=T). GSNumber input lines

OMEGA GF
  • OMEGA: real: Rotor speed \(\mathrm {[rad/T]}\)

  • GF: real: Gain correction factor

Example input for control system

'dtsamp  tstartup
0.1   40
' TComega TCwind wnfilt notch_p2
0.6    47.75  1.02   0.05
' gbratio  max_trq max_trqrate
100           150      15
' KP, tau_i_init, tau_i_final, t_relax
0.04E6  15  120   120
' WindRotSpeed GainSchedule
T        T
' number of points in speed-wind map
4
' speed-wind map
3 0.2
8.0 0.544
23.0 0.544
35.0 0.20
' number of points in gain scheduling
4
' gain scheduling table (omega, GF)
0    1.0
0.55 1.0
0.6  1.5
1    1.5

4. Specification of time-varying environmental conditions

It is possible to request time-varying environmental conditions in DYNMOD. The time-varying environmental conditions are defined in an additional text file which contains information about when each condition starts and how to phase between the different conditions. There are additional restrictions on which different environments may be combined.

This option is only available for waves when the Cosine series only option for wave generation in DYNMOD is used, and only irregular waves are presently supported.

This option is only available for wind when the State Space model wind gust generation method in DYNMOD is used.

All of the wave conditions applied in time-varying environmental conditions must have the same option for directional spreading (and number of directions, if applicable). If swell is present in the first environmental condition to be applied, it must be present in all conditions. Similarly, if swell is absent, it must be absent in all conditions. Referring to the environmental specification parameters:

  • all conditions must have the same IWADR1

  • all conditions must have the same IWADR2

  • all conditions must have the same NDIR1

  • all conditions must have the same NDIR2

  • if IWASP2>0 for one condition, all conditions must have IWASP2>0

All of the wind conditions applied in time-varying environmental conditions must be of the same spectrum type and use the same reference height. If wind is present for the first environmental condition, it must be present in all conditions. Similarly, if wind is absent, it must be absent in all conditions.

If current is present for the first environmental condition, it must be present in all conditions. Similarly, if current is absent, it must be absent for all conditions. If the current is read from file, the same current environment must be used for the whole simulation (ie, current changes should be included in the file). If the current is not from file, the same number of current levels must be used for all environments.

File format:

File heading, arbitrary number of lines with apostrophe in the first position of the input line

' TEXT-1
' TEXT-2
' ......
' TEXT-n

1 input line

NENV WMINW WMAX WMINS WMAXS
  • NENV: integer: Number of environmental conditions to be read

  • WMINW: real, default: 0.1: Minimum wave frequency for wind-waves, \(\mathrm {[rad/T]}\)

  • WMAXW: real, default: 3.0: Maximum wave frequency for wind-waves, \(\mathrm {[rad/T]}\)

  • WMINS: real, default: 0.05: Minimum wave frequency for swell-waves, \(\mathrm {[rad/T]}\)

  • WMINW: real, default: 2.0: Maximum wave frequency for wind-waves, \(\mathrm {[rad/T]}\)

NENV input lines

ENVTS ENVTR CHIRWA CHWIND CHCURR
  • ENVTS: real: Time to begin switching to the new environment \(\mathrm {[T]}\)

  • ENVTR: real: Time duration of fade-in for this environment, \(\mathrm {[T]}\)

  • CHIRWA: character(8): Irregular wave identifier (or NONE)

  • CHWIND: character(8): Wind identifier (or NONE)

  • CHCURR: character(8): Current identifier (or NONE)

For the first condition, ENVTS and ENVTR must be zero. It is recommended to use at least 10*peak period for the fade-in duration.

The time series of different environments is applied as in the figure below. During the time periods indicated by hatched fill, the previous environment is faded out as the new environment is faded in. There cannot be overlap: the previous fade must be finished before a new fade period can begin.

envchange
Figure 2. Changing between environments

5. Advanced wind/current coefficients file

This file can be used by SIMO when the user specifies that the wind/current or current coefficients should be given as a function of:

  • relative wind/current direction

  • body vertical position

  • body roll angle

  • body pitch angle

The user then has to specify WCTYPE=1 and READFLAG=1. For further details see section Wind force coefficients and Quadratic current force coefficients

This additional input file does not allow the use of comment lines. However, description fields (CHTEXT) have to be provided.

File format:

2 input lines

CHTEXT
  • CHTEXT: character(512): Description text

NWIDIR
  • NWIDIR: integer: Number of relative wind/current directions for which the wind coefficients will be given

1 input line

CHTEXT
  • CHTEXT: character(512): Description text

NWIDIR input lines

WIDIR
  • WIDIR: real: Relative wind/current direction, \(\mathrm {[deg]}\). Values must be included in the interval [0 , 360] and given in increasing order.

2 input lines

CHTEXT
  • CHTEXT: character(512): Description text

NWIZ
  • NZ: integer: Number of body vertical positions for which the wind/current coefficients will be given

1 input line

CHTEXT
  • CHTEXT: character(512): Description text

NWIZ input lines

WIZ
  • WIZ: real: Body vertical position, \(\mathrm {[L]}\). Values must be given in increasing order.

2 input lines

CHTEXT
  • CHTEXT: character(512): Description text

NWIROLL
  • NWIROLL: integer: Number of body roll angles for which the wind/current coefficients will be given

1 input line

CHTEXT
  • CHTEXT: character(512): Description text

NWIROLL input lines

WIROLL
  • WIROLL: real: Body roll angle, \(\mathrm {[deg]}\). Values must be included in the interval [-180 , 180] and given in increasing order.

2 input lines

CHTEXT
  • CHTEXT: character(512): Description text

NWIPITCH
  • NWIPITCH: integer: Number of body roll angles for which the wind/current coefficients will be given

1 input line

CHTEXT
  • CHTEXT: character(512): Description text

NWIPITCH input lines

WIPITCH
  • WIPITCH: real: Body pitch angle, \(\mathrm {[deg]}\). Values must be included in the interval [-180 , 180] and given in increasing order.

1 input line

CHTEXT
  • CHTEXT: character(512): Description text

NWIDIRNWIZNWIROLL*NWIPITCH input lines, given in the following nested loops order: WIDIR>WIZ>WIROLL>WIPITCH

WI1   WI2   WI3   WI4   WI5   WI6
  • WIn: real: wind/current force coefficient for degree of freedom n, \(\mathrm {[FT^2/L^2,FT^2/L]}\)

Note: SIMO expects that the wind/current coefficients are given as nested loops as follows:

for idDIR=1:NWIDIR

    for idZ=1:NWIZ

        for idROLL=1:NWIROLL

            for idPITCH=1:NWIPITCH

                read WIn corresponding to WIDIR(idDIR),WIZ(idZ),WIROLL(idROLL),WIPITCH(idPITCH)

            end for

        end for

    end for

end for