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. 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. 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 File Termination Co-simulation with SIMO