Body Data Specification This data group is given once for each body to be included in the simulation. It represents the start of all data related to a body. Consequently, this data group must be given first, for each body. For the different body types there are restrictions on the data types to be specified on the system description file. Mandatory means that the data group must be given, allowed means that the data group can be given, dummy means that the data group can be given, but is not used for STAMOD or DYNMOD calculations. Data group identifier IBDTYP 1 IBDTYP 2 IBDTYP 3 BODY LOCAtion DATA Mandatory Mandatory Mandatory BODY GEOMetry DATA Allowed Allowed Allowed BODY SHAPe DATA Allowed Allowed Allowed BODY MASS DATA Allowed Allowed Allowed MASS COEFficients Allowed Allowed Allowed TIME DEPEndent MASS Allowed Allowed Allowed HYDRodynamic SEPAration METHod Mandatory Not allowed Not allowed ADDEd MASS ZERO Not allowed Allowed Not allowed ADDEd MASS INFInite Allowed Not allowed Not allowed RETArdation FUNCtion Allowed Dummy Not allowed HYDRostatic STIFfness DATA Allowed Allowed Allowed LINEar DAMPing Allowed Allowed Allowed QUADratic DAMPing Allowed Allowed Allowed FIRSt ORDEr WAVE force tr. f. Allowed Dummy Not allowed FIRSt ORDEr MOTIon tr. f. Dummy Allowed Not allowed FIRSt ORDEr DIFFracted wave tr. f. Allowed Allowed Not allowed WIND FORCe COEFficients Allowed Allowed Not allowed LINEar CURRent COEFficients Allowed Allowed Allowed QUADratic CURRent COEFficients Allowed Allowed Not allowed SECOnd ORDEr WAVE drift forces Allowed Allowed Not allowed WAVE DRIFt DAMPing Allowed Allowed Not allowed QUADratic TRANsfer FUNCtions Allowed Allowed Not allowed SMALl BODY HYDRodynamic data Allowed Not allowed Allowed DISTributed ELEMent FORCes Allowed Allowed Not allowed SPECified FORCes Allowed Allowed Allowed POSItioning SYSTem DATA Allowed Allowed Allowed BODY COMPonent Allowed Allowed Allowed Data groups for IBDTYP = 4 as for IBDTYP = 1. 1. 1 identification input line: BODY DATA SPECification 2. 1 input line: CHBDY CHBDY: character(8): Body identification, must be unique 3. Text for identifying the body, 3 input lines: TXBDY TXBDY: character(60): Character string describing the body 4. Body type 1 input line. IBDTYP IMPTYP IBDTYP: integer: Body type = 1: Large volume, total motion is simulated in time domain, 6 degrees of freedom = 2: Large volume, separation of motions in frequency domain HF motions and time domain LF motions, 6 degrees of freedom = 3: Small volume, position dependent hydrodynamic coefficients are allowed, 3 translational degrees of freedom = 4: As IBDTYP=1, but fixed or prescribed body position IMPTYP: integer: Type of import for positions. Applicable for body type 4, else dummy = 0: No import - fixed position = 1: Import from file = 2: Import from HLA = 3: Articulated structure, Fixed to master, relative motion specified, imported from HLA, Turret Model Body type 4 - Import position from file 1 input line. CHIMP CHIMP: character(120): Filename for body positions The file format is described in Body type 4, Prescribed positions imported from file. Body type 4 - Import position from HLA 1 input line. CHIMP CHIMP: character(120): HLA object name for the body Body type 4 - Articulated structural member This data group enables modelling of one member of an articulated structure, such as a rigid member of a crane as illustrated in the figure below. The body may be specified to move along or around one of the degrees of freedom of its master body. This model is refered to as Simple Articulated Structure (SAS). In addition, this model can be used to represent the Turret of an FPSO vessel (TUR). The turret is presented as an articulated structure which is free to rotate relative to it’s master, i.e. the vessel. A simple model of maximum slip-free angle and slip (turn-back) angle is implemented to model the friction between the turret and the vessel. Figure 1. Crane manoeuvrability Using SAS, a series of articulated structures can be specified to model movable mechanisms such as A-frames, cranes and gangways. The rigid members of the structure are connected in a master-slave fashion. In the present version of SIMO a time history of prescribed motion can be specified for each member of such a mechanism. Important modelling issues and restrictions: - The mechanism is a series of linked master / slave members - The main master (support body) of the articulated structure cannot itself be specified as an articulated structural member - Each of the members has its own body-fixed coordinate system - The link between a master and a slave member cannot be disconnected - The relative motion (translation or rotation) between the slave and the master can only take place along or around one of the principle axis of master’s coordinate system - The series of bodies must not be arranged in loops Name of master body for the given structure member, 1 input line: CHMASTER CHMASTER: character(8): Name of master body Coordinates in the body fixed reference system, specifying where the present body is attached to its master, 1 input line: XAP YAP ZAP XAP: real: X-position of the attachment point \(\mathrm {[L]}\) YAP: real: Y-position of the attachment point \(\mathrm {[L]}\) ZAP: real: Z-position of the attachment point \(\mathrm {[L]}\) Coordinates in the master body-fixed reference system specifying where the present body is attached to its master, 1 input line: XAPM YAPM ZAPM XAPM: real: X-position of the attachment point given in the master body’s reference system \(\mathrm {[L]}\) YAPM: real: Y- position of the attachment point given in the master body’s reference system \(\mathrm {[L]}\) ZAPM: real: Z- position of the attachment point given in the master body’s reference system \(\mathrm {[L]}\) Mode of relative motion, 1 input line: CHMOD ARTMOD CHMOD: character(4): Mode of motion (X,Y,Z,PHI,THETA,PSI) ARTMOD: character(4): Articulated Structure Model (SAS, TUR) Note that only PSI is a valid choice for CHMOD, if ARTMOD = TUR. (ARTMOD = TUR) Initial angle and stick/slip model for turret, 1 input line: If ARTMOD = TUR, DISINI_glob SLIPANG MAXANG DISINI_glob: real: Initial turret yaw angle relative to the global coordinate system \([\mathrm {deg}]\) SLIPANG: real: Slip (turn-back) angle \([\mathrm {deg}]\) MAXANG: real: Maximum angle that turret follows the vessel before sliding \([\mathrm {deg}]\) The initial turret angle relative to the master (DISINI) is computed from DISINI_glob using the relation DISINI = DISINI_glob - YAWINI, where YAWINI is the initial yaw angle of the master body. This is an approximation which is appropriate when the master have small initial roll and pitch angles. (ARTMOD = SAS) Initial displacement and limitations for specified mode of motion relative to point of attachment, 1 input line: If ARTMOD = SAS, DISINI DISMIN DISMAX VMAX AMAX DISINI: real: Initial displacement relative to master body \([L,\mathrm {deg}]\) DISMIN: real: Lower limit for displacement \([L,\mathrm {deg}]\) DISMAX: real: Upper limit for displacement \([L,\mathrm {deg}]\) VMAX: real: Maximum velocity (absolute value) \([L/T,\mathrm {deg}/T]\) AMAX: real: Maximum acceleration (absolute value) \([L/T^2,\mathrm {deg}/T^2]\) Note that DISMIN, DISMAX, VMAX and AMAX are dummy if CAST = "NONE", confer next input line (ARTMOD = SAS) Type of control, 1 input line: CAST CAST: character(4): Type of articulated structure coupling control = NRUN: Predefined run = HLA: HLA Joystick (not implemented) = NONE: Member is fixed to its master (ARTMOD = SAS) Predefined run (ARTMOD = SAS) (CAST = NRUN), number and type of motion intervals, 1 input line: NRUN ISEQTYPE NRUN: integer, default: 1: Number of motion intervals ISEQTYP: integer, default: 1: Motion sequence type (1-3): = 1: Compute TSTOP (DISPL and VEL to be specified) = 2: Compute DELTA (TSTOP and VEL to be specified) = 3: Compute VEL (TSTOP and DELTA to be specified) For ISEQTYP = 1, NRUN input lines: TSTART DELTA VEL ACC TSTART: real: Interval start time \(\mathrm {[T]}\) DELTA: real: Displacement during interval \([L,\mathrm {deg}]\) VEL: real, default: VMAX: Interval absolute velocity after ramp-up \([L/T,\mathrm {deg}/T]\) ACC: real, default: AMAX: Interval ramp-up/ramp-down acceleration \([L/T^2,\mathrm {deg}/T^2]\) For ISEQTYP = 2, NRUN input lines: TSTART TSTOP VEL ACC TSTART: real: Interval start time \(\mathrm {[T]}\) TSTOP: real: Interval stop time \(\mathrm {[T]}\) VEL: real, default: VMAX: Interval absolute velocity after ramp-up \([L/T,\mathrm {deg}/T]\) ACC: real, default: AMAX: Interval ramp-up/ramp-down acceleration \([L/T^2,\mathrm {deg}/T^2]\) For ISEQTYP = 3, NRUN input lines: TSTART TSTOP DELTA ACC TSTART: real: Interval start time \(\mathrm {[T]}\) TSTOP: real: Interval stop time \(\mathrm {[T]}\) DELTA: real: Displacement during interval \([L,\mathrm {deg}]\) ACC: real, default: AMAX: Interval ramp-up/ramp-down acceleration \([L/T^2,\mathrm {deg}/T^2]\) (ARTMOD = SAS) Import displacements from HLA For CAST = "HLA", HLA coupling with name, 1 input line (Not implemented in present version): CHCOAST CHCOAST: character: HLA coupling name HLA export of body position, velocity and acceleration HLA body data group for publishing 6 DOF global positions, velocities, accelerations and estimated next positions and velocities. 1 identification input line: HLA EXPOrt 1 input line: CHBHLA CHBHLA: character(120): HLA name of this body 5. Initial position This is the position of the body’s origin in the global coordinate system. This position may be modified during STAMOD calculations. 1 identification input line (Note: If body type is 4 (IBDTYP=4) and the import type is 3 (IMPTYP=3) the initial position is given under the body data specification, and hence body location data should be omitted here): BODY LOCAtion DATA 1 input line: XGLOB YGLOB ZGLOB PHI THETA PSI XGLOB: real: Global X-coordinate of origin of body fixed coordinate system, \(\mathrm {[L]}\) YGLOB: real: Global Y-coordinate of origin of body fixed coordinate system, \(\mathrm {[L]}\) ZGLOB: real: Global Z-coordinate of origin of body fixed coordinate system, \(\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]}\) Note that the orientation of the body system of axes is obtained by rotations from the global coordinate system about body z, y and x axis in succession. PHI and THETA are dummy for IBDTYP = 3 (will be set to 0.) 6. Geometry data Body geometry data is read only in OUTMOD and is used for preparing plots of static geometry and "snapshots". The data group is skipped whenever encountered in STAMOD. In order to ease change of body geometry after STAMOD and/or DYNMOD have been run, body geometry data may be read from a reduced SYSFIL. This file must at least contain the main data group identifiers: - SYSTem DESCription SIMO - BODY DATA SPECification - END The reduced SYSFIL must contain the same bodies as the original file, and they must be given in the same sequence. Only the body identifiers, CHBDY, needs to be specified on the reduced file in addition to main data group identifiers and geometry data. 1 identification input line: BODY GEOMetry DATA Curve data The geometry of a body may consist of a number of curves. Each curve is described by a number of points between which lines are to be drawn. Each curve must be defined by at least two points. 1 identification input line for each curve: CURVe DATA Each point of the curve is specified on a separate input line: XGEOM YGEOM ZGEOM XGEOM: real: X-coordinate, \(\mathrm {[L]}\) YGEOM: real: Y-coordinate, \(\mathrm {[L]}\) ZGEOM: real: Z-coordinate, \(\mathrm {[L]}\) 7. Body shape Defines some of the key sizes of the body. Must be specified when propulsors in the propulsion library are used. 1 identification input line: BODY SHAPe DATA 1 input line: LPP BWL DRAFTAP DRAFTFP BLOCKCOEFF DISTAP DISTBL LPP: real: Length between perpendiculars, \(\mathrm {[L]}\) BWL: real: Maximum beam at the waterline, \(\mathrm {[L]}\) DRAFTAP: real: Draft at aft perpendicular, \(\mathrm {[L]}\) DRAFTFP: real: Draft at fore perpendicular, \(\mathrm {[L]}\) BLOCKCOEFF: real: Cb = Displacement of the ship / LWL x BWL x T, \(\mathrm {[-]}\) DISTAP: real: Distance from aft perpendicular to the body fixed origin, \(\mathrm {[L]}\) DISTBL: real: Distance from baseline to the body fixed origin, \(\mathrm {[L]}\) Note that the location of the body fixed origin relative to AP/BL is defined as positive forward/up. 1 input line: WATERLINE WATERLINE: character(256): Character string giving path and filename of waterline file If waterline file is empty, or the file does not exist, a square based on LPP/BWL will be used. 8. Mass Data Structure mass 1 identification input line: BODY MASS DATA Text for describing the mass and added mass coefficients, 2 input lines: TXMASS TXMASS: character(60): Character string describing the mass and added mass coefficients Location of centre of gravity, 1 input line: XCOG YCOG ZCOG XCOG: real: X-coordinate of centre of gravity, \(\mathrm {[L]}\) YCOG: real: Y-coordinate of centre of gravity, \(\mathrm {[L]}\) ZCOG: real: Z-coordinate of centre of gravity, \(\mathrm {[L]}\) The coordinates and all other body data should be given in the local coordinate system. The input line is dummy for IBDTYP = 3 1 input line: MASS COEFficients The body mass, moment of inertia and negative products of inertia, 1 input line: M IXX IYX IYY IZX IZY IZZ M: real: Mass, \(\mathrm {[M]}\) IXX: real: Moment of inertia about X-axis \(\mathrm {[ML^2]}\), defined as \(\mathrm {\iiint_{m}(y^{2}+z^{2})dm}\) IYX: real: Negative product of inertia in Y-X \(\mathrm {[ML^2]}\), defined as \(\mathrm {-\iiint_{m}yxdm}\) IYY: real: Moment of inertia about Y-axis \(\mathrm {[ML^2]}\), defined as \(\mathrm {\iiint_{m}(x^{2}+z^{2})dm}\) IZX: real: Negative product of inertia in Z-X \(\mathrm {[ML^2]}\), defined as \(\mathrm {-\iiint_{m}zxdm}\) IZY: real: Negative product of inertia in Z-Y \(\mathrm {[ML^2]}\), defined as \(\mathrm {-\iiint_{m}zydm}\) IZZ: real: Moment of inertia about Z-axis \(\mathrm {[ML^2]}\), defined as \(\mathrm {\iiint_{m}(x^{2}+y^{2})dm}\) Note that the moments of inertia and negative products of inertia are to be specified in the local body fixed coordinate system and about the origin of the body fixed system. This means that \(\mathrm {(x,y,z)}\) in the volume integrals above should be understood as the position of the infinitesimal mass particle in the body fixed coordinate system. In case that the moments of inertia and negative products of inertia are known at centre of gravity they transform to the body fixed origin by the following expressions: \(\mathrm {IXX}=I^{cog}_{xx}+\mathrm {M}\cdot (\mathrm {YCOG^2+ZCOG^2})\) \(\mathrm {IYY}=I^{cog}_{yy}+\mathrm {M}\cdot (\mathrm {XCOG^2+ZCOG^2})\) \(\mathrm {IZZ}=I^{cog}_{zz}+\mathrm {M}\cdot (\mathrm {XCOG^2+YCOG^2})\) \(\mathrm {IYX}=I^{cog}_{yx}-\mathrm {M}\cdot \mathrm {XCOG\cdot YCOG}\) \(\mathrm {IZX}=I^{cog}_{zx}-\mathrm {M}\cdot \mathrm {XCOG\cdot ZCOG}\) \(\mathrm {IZY}=I^{cog}_{zy}-\mathrm {M}\cdot \mathrm {YCOG\cdot ZCOG}\) The applied symmetrical structural mass matrix can be written as: \[\begin{bmatrix}\mathrm {M}&0&0&0&\mathrm {M\cdot ZCOG}&\mathrm {-M\cdot YCOG}\\0&\mathrm {M}&0&\mathrm {-M\cdot ZCOG}&0&\mathrm {M\cdot XCOG}\\0&0&\mathrm {M}&\mathrm {M\cdot YCOG}&\mathrm {-M\cdot XCOG}&0\\0&\mathrm {-M\cdot ZCOG}&\mathrm {M\cdot YCOG}&\mathrm {IXX}&\mathrm {IYX}&\mathrm {IZX}\\\mathrm {M\cdot ZCOG}&0&\mathrm {-M\cdot XCOG}&\mathrm {IYX}&\mathrm {IYY}&\mathrm {IZY}\\\mathrm {-M\cdot YCOG}&\mathrm {M\cdot XCOG}&0&\mathrm {IZX}&\mathrm {IZY}&\mathrm {IZZ}\\\end{bmatrix}\] A mass matrix has to be positive definite to ensure that kinetic energy is always positive. SIMO will give an error if the mass matrix is not positive definite besed on the following requirements: \(\mathrm {M}\geq 0\) \(\mathrm {I_{xx}^{cog}\geq 0}\) \(\mathrm {I_{yy}^{cog}\geq 0}\) \(\mathrm {I_{zz}^{cog}\geq 0}\) \(\mathrm {I_{xx}^{(cog)}I_{yy}^{(cog)}-(I_{yx}^{(cog)})^{2}\geq 0}\) \(\mathrm {I_{xx}^{(cog)}I_{yy}^{(cog)}I_{zz}^{(cog)}-I_{xx}^{(cog)}(I_{zy}^{(cog)})^{2}-I_{yy}^{(cog)}(I_{zx}^{(cog)})^{2}-I_{zz}^{(cog)}(I_{yx}^{(cog)})^{2}+2I_{yx}^{(cog)}I_{zx}^{(cog)}I_{zy}^{(cog)}\geq 0}\) Additional mass may be given by specifying Time dependent mass Distributed element force Gravity force For floating vessels the gravity and buoyancy forces are normally modelled by use of the linear hydrostatic stiffness matrix, where the reference point for stiffness is taken as the position where the buoyancy and weight are in equilibrium. Optionally, the gravity force due to the structural mass and acting at the centre of gravity may be computed. When gravity force is applied the model must include an explicit buoyancy force to balance the gravity force, and the restoring matrix must be modified so that the effect of gravity is not included. When using Non-linear hydrostatic stiffness (see section Non-linear hydrostatic stiffness), it is often relevant to include the gravity force, since the hydrostatic force model will only return the buoyancy force. Activating gravity forces by this data group will not affect gravity forces due to the mass term of distributed element forces or time dependent mass. 1 input line: GRAVity FORCe INCLuded Added mass For body type 1 (IBDTYP=1), the frequency dependent added mass and damping are taken care of by the retardation function. The asymptotic value of added mass (at high frequency) from the retardation function is zero. The constant part of the frequency dependent added mass is specified by the instruction: "added mass infinite". 1 input line: ADDEd MASS INFInite 6 input lines: AMi1 AMi2 AMi3 AMi4 AMi5 AMi6 AMij: real: Added mass force in dof i due to unit acceleration in dof j \(\mathrm {[M,ML,ML^2]}\) For body type 2 (IBDTYP=2), the added mass used for low frequency time domain integration is assumed independent of frequency and specified by the instruction "added mass zero". In this case the frequency dependent added mass and damping are included in the wave frequency motion transfer function (RAO). 1 input line: ADDEd MASS ZERO 6 input lines: AMi1 AMi2 AMi3 AMi4 AMi5 AMi6 AMij: real: Added mass force in dof i due to unit acceleration in dof no j \(\mathrm {[M,ML,ML^2]}\) Time dependent mass (TDM) The input data should be given after the data group ’BODY MASS DATA’. It should be noted that time dependent mass always will contribute to gravity forces. This data group may also be used to model a constant mass at a specified location. 1 identification input line: TIME DEPEndent MASS 1 input line: CTDMTY NTTDM IHLA CHTYPE: character(4): Type of Time Dependent Mass (TDM): = POINt: Point mass = TANK: TDM with geometry = BALLast: Ballast tank system NTTDM: integer: Number of time intervals for which the mass/volume flow is given (must be 1 for IHLA=1). Dummy if CTDMTY = BALLast. IHLA: integer, default: 0: HLA control parameter. Should be equal to 0 if CTDMTY = BALLast. = 0: Mass/volume flow rate specified in this group = 1: Mass/volume flow rate imported from HLA If IHLA=1, one line: CTDMHLA CTDMHLA: character(120): HLA name of this TDM For TDM of type point mass (CTDMTY = POINT), 1 input line: XTDM YTDM ZTDM MAS0 MASMAX MASMIN MRATMAX MRATMIN XTDM: real: X-position of TDM in body fixed system, \(\mathrm {[L]}\) YTDM: real: Y-position of TDM in body fixed system, \(\mathrm {[L]}\) ZTDM: real: Z-position of TDM in body fixed system, \(\mathrm {[L]}\) MAS0: real: Mass at t = 0., (may be negative) \(\mathrm {[M]}\) MASMAX: real: Maximum allowable mass, \(\mathrm {[M]}\) (may be negative) MASMIN: real: Minimum allowable mass, \(\mathrm {[M]}\) (may be negative) MRATMAX: real: Maximum allowable mass rate, \(\mathrm {[M/T]}\), only IHLA=1 MRATMIN: real: Minimum allowable mass rate, \(\mathrm {[M/T]}\), only IHLA=1 For TDM of type tank with geometry (CTDMTY = TANK), 1 input line: XTDM YTDM ZTDM VOL0 VOLMAX VOLMIN VRATMAX VRATMIN XTDM: real: X-position of TDM in body fixed system, \(\mathrm {[L]}\) YTDM: real: Y-position of TDM in body fixed system, \(\mathrm {[L]}\) ZTDM: real: Z-position of TDM in body fixed system, \(\mathrm {[L]}\) VOL0: real: Volume of liquid at t = 0. , \(\mathrm {[L^3]}\) VOLMAX: real: Maximum allowable volume, \(\mathrm {[L^3]}\) VOLMIN: real: Minimum allowable volume, \(\mathrm {[L^3]}\) VRATMAX: real: Maximum allowable volume rate, \(\mathrm {[L^3/T]}\), only IHLA=1 VRATMIN: real: Minimum allowable volume rate, \(\mathrm {[L^3/T]}\), only IHLA=1 Note that if the calculated volume of the tank is less than VOLMAX, the actual volume will be used as maximum volume. The minimum allowable volume is 0.0. For TDM of type tank with geometry (CTDMTY = TANK), 1 input line: NPORT DENSL DVZ1 DVZ2 DVZ3 DVXZ1 DVXZ2 DVXZ3 NPORT: integer: Number of PORTIONS, (NPORT ⇐ 5) DENSL: real: Density of liquid in tank (must be positive) \(\mathrm {[M/L^3]}\) DVZ1: real: X component of TDMs local Z-axis referred in body-fixed system \(\mathrm {[1]}\) DVZ2: real: Y component of TDMs local Z-axis referred in body-fixed system \(\mathrm {[1]}\) DVZ3: real: Z component of TDMs local Z-axis referred in body-fixed system \(\mathrm {[1]}\) DVXZ1: real: X-component of vector in TDM’s XZ-plane referred in body-fixed system DVXZ2: real: Y-component of vector in TDM’s XZ-plane referred in body-fixed system DVXZ3: real: Z-component of vector in TDM’s XZ-plane referred in body-fixed system Note that the maximum number of portions, NPORT, is 5 The local TDM coordinate system is illustrated in the figure below. Figure 2. Definition of the TDM local coordinate system For TDM of type tank with geometry (CTDMTY = TANK), NPORT input lines: IADD CPOTYP XRPOR YRPOR ZRPOR RLBP DIA1 DIA2 IAXIS or IADD CPOTYP XRPOR YRPOR ZRPOR BLX BLY BLZ IADD: integer: +1 ⇒ Volume shall be added -1 ⇒ Subtracted CPOTYP: character(4): = CONE: Cone with circular cross section = BOX: XRPOR: real: Location of centre of plane 1 in local TDM coordinate system \(\mathrm {[L]}\) YRPOR: real: ZRPOR: real: For CPOTYP = CONE: RLBP: real: Length of cone DIA1: real: Diameter of plane 1 (bottom plane) DIA2: real: Diameter of plane 2 *IAXIS: integer, Code for direction of cone axis: = 1: Axis parallel to TDM’s X axis = 2: Axis parallel to TDM’s Y axis = 3: Axis parallel to TDM’s Z axis (Default) For CPOTYP = BOX: BLX: real: Length of box in TDM x-direction \(\mathrm {[L]}\) BLY: real: Length of box in TDM y-direction \(\mathrm {[L]}\) BLZ: real: Length of box in TDM z-direction \(\mathrm {[L]}\) The box and cone portion types are illustrated in the figure `Illustration of potion types BOX and CONE' below. If the volume of portion B shall be subtracted from portion A (IADD = -1), then no part of portion B must be "outside" portion A, see the figure "Example of physical tank and unphysical tanks (IADD=-1)" below. There is no check in SIMO that this event does not occur. If the geometry of a TDM is defined by "adding" portions, the portions must not be "overlapping" (The intersection must be zero). NTTDM input lines (and CTDMTY different from BALLast): TVM FLOW TVM: real: Start of time interval, \(\mathrm {[T]}\) FLOW: real: Mass or Volume rate used until next time instant, \(\mathrm {[}\)*\(\mathrm {/T]}\) The first time value must be zero This data line is dummy for import from HLA (IHLA=1) where NTTDM must be 1 Figure 3. Illustration of portion types BOX and CONE Figure 4. Example of physical tank and unphysical tanks (IADD=-1) For TDM of type ballast system (CTDMTY = BALLast), 1 input line: NTANKS NTANKS: integer: Number of tanks For TDM of type ballast system (CTDMTY = BALLast), NTANKS blocks of 12 input lines: TNAME TNAME: character(256): Name of the tank DESCR1 DESCR1: character(60): First line of tank description DESCR2 DESCR2: character(60): Second line of tank description TAG TAG: character(256): Tag of the tank XPOS_B YPOS_B ZPOS_B XPOS_B: real: x-position of the tank in the body-fixed coordinate system YPOS_B: real: y-position of the tank in the body-fixed coordinate system ZPOS_B: real: z-position of the tank in the body-fixed coordinate system VTYPE VOLUME VTYPE: integer: Code for the unit of the variable VOLUME: = 1: the unit of VOLUME is a volume expressed in \(\mathrm {[L^3]}\). = 2: the unit of VOLUME is a percentage of the maximum volume of the tank (VOLUME = 100 corresponds to a full tank). VOLUME: real: volume of fluid present in the tank. The unit depends on the value of VTYPE. DENSL DENSL: real: Density of liquid in tank (must be positive) \(\mathrm {[M/L^3]}\) VTOL PERM VTOL: real: Volume tolerance used for the precision of the computation of fluid volume in the tank \(\mathrm {[L^3]}\) PERM: real: Permeability factor of the tank (PERM = 0.8 means that only 80% of the tank volume can be filled with fluid). GTYPE GTYPE: character(256): Type of geometry file used for the description of the tank. Only option available in the current version: = triangularMesh: the geometry file given in GFILE should be of type STL (STereoLithography) GFILE GFILE: character(256): Geometry file name. The type of file should be accorded to the value of GTYPE. XPOS_T YPOS_T ZPOS_T ROLL_T PITCH_T YAW_T XPOS_T: real: x-position of the geometry in the tank-fixed coordinate system YPOS_T: real: y-position of the geometry in the tank-fixed coordinate system ZPOS_T: real: z-position of the geometry in the tank-fixed coordinate system ROLL_T: real: roll angle of the geometry in the tank-fixed coordinate system PITCH_T: real: pitch angle of the geometry in the tank-fixed coordinate system YAW_T: real: yaw angle of the geometry in the tank-fixed coordinate system Note that the tank coordinate system uses the same convention as usual SIMO bodies coordinate system. DTYPE DTYPE: integer: code for damage type of the tank: = 0: the tank is intact = 1: the tank is damaged. It will be filled with sea water up to the calm water free surface (water height due to waves is disregarded). For TDM of type ballast system (CTDMTY = BALLast), 1 input line: BALLPROC BALLPROC: integer: Code for the presence of a ballast procedure. Only option available in the present SIMO version: = 0: no ballast procedure is defined. 9. Separation of low and wave frequency motions for body type 1 Floating vessels can be modelled in two basic ways in SIMO: - Separated analysis (body type 2), which works based on separation of wave frequency (WF) and low frequency (LF) motions. In this case the low frequency motion is directly available in the analysis. - Simulation of total motion (body type 1), which solves the combined wave and low frequency motion in time without separation. In some situations during the time domain simulation the low frequency motion of a body is needed. This is not directly available when simulating total motion in time domain (body type 1) so the low frequency motion has to be estimated based on the time series of total motion. Estimation of low frequency motion is intended to be used for floating vessels with 1st and 2nd order hydrodynamic forces included, i.e. bodies that have wave force transfer functions and retardation functions. For other bodies, for example spool pieces, templates etc. in a lifting operation, the estimation method should be set to NONE or body type 2 may be used. The low-frequency body position and velocity is used for several purposes, most notably: Heading correction: When interpolating between force time series for different headings during simulation (heading correction), the low frequency yaw motion is used to obtain the relative wave heading and thereby the correct time varying force transfer function. If the total yaw motion is used, wave frequency temporal changes in the transfer function will interact with the wave and create fictitios difference-frequency forces. This may lead to, for example, wrong mean heading of a weather vaning vessel. Cosine series waves: When calculating wave excitation forces together with the Cosine wave generation method, the phase of the wave force will be based on the low-frequency instantaneous position of the body. Low-frequency damping: When defining linear and quadratic damping matrices, the user can choose between multiplying the matrix with low-frequency, wave-frequency or the total velocity. Current force: Low-frequency velocity is used in calculation of relative current velocity Wind force: Low-frequency velocity is used in calculation of relative current velocity There are currently two alternative methods for estimating low-frequency motions: 2nd order low-pass (LP) Butterworth filter Non-linearity-pass (NLP) filter based on 1st order motion transfer functions The primary disadvantage of using the Butterworth filter is that a significant delay will be introduced in the LP filtered signals. Moreover, the filter have a mild roll-off, meaning that it will not be able to remove all the energy above the cut-off frequency. The delay can lead to undesired and unphysical effects. One effect is that a low-frequency damping force will have a component in phase with displacement, thereby acting as an apparent stiffness and modifying the natural period of the system. It has also been observed that the heading stability of turret moored vessels can be adversely affected by the delay. An increase in cut-off period will increase the delay, and this has shown to increase the magnitude of unstable yaw motion. To limit the delay, it is therefore adviced to use a cut-off period close to the wave frequency range. A reasonable starting point can be, \[T_c=2.5\cdot T_P\] where \(\mathrm {T_c}\) is the cut off period and \(\mathrm {T_P}\) is the peak period in the wave spectrum. The non-linearity-pass (NLP) filter estimates the LF motion by subtracting the linear wave induced motions from the total motion. The linear motion is obtained from first order motion transfer functions (RAO’s). As such, it has much in common with the separated analysis option (body type 2). The main advantage of simulating the total motion (body type 1) in combination with an NLP filter as compared to body type 2, is that body type 1 will capture interactions between the wave frequency responses and the low frequency responses. Such interactions will in principle exist in all nonlinear systems. The NLP filter will work well (as a low-pass filter) when the following conditions are met: The wave frequency range of the simulated response is dominated by linear wave induced response. The provided 1st order motion transfer functions (RAO’s) are accurate and represents a linearization of the SIMO simulation model The effect of LF response on the WF response is small. Low frequency (difference-frequency) non-linear responses is much larger than high frequency (sum-frequency) responses. These conditions are most often satisfied for a large volume floating structure subjected to waves and the NLP filter is then the recommended filtering method. The best way to determine the applicability is by comparing time series and power spectra of total and LF motions estimated by SIMO. It should be noted that in many cases there will be a significant effect of the WF responses on the LF responses - an effect not captured by a separated analysis (body type 2). The presence of such effects does not make the filter less efficient. An opposite effect (LF effect on WF responses) will however violate the conditions listed above and make the filter less efficient. Still, even in cases where the conditions are only approximately satisfied the filter may remove most of the wave frequency responses and perform satisfactorily. Indeed it is likely to remove a larger portion of the WF responses as compared to the Butterworth filter due to the mild roll-off the Butterworth filter. It should be noted that the wave frequency response subtracted from the total response is itself dependent on the low-frequency yaw motion. Thus, the LF yaw angle, \(\mathrm {\psi_{LF}}\), is calculated by solving the following non-linear equation for \(\mathrm {\psi_{LF}}\): \[\mathrm {\psi_{LF}=\psi-\psi_{WF}(\psi_{LF})}\] This equation will have a unique solution when \(\mathrm {\frac{d\psi_{WF}(\psi_{LF})}{\psi_{LF}}<1}\) for all \(\mathrm {\psi_{LF}}\). The following data group may be used to estimate low frequency motion when simulation directly the total motion (body type 1). Note that the NLP filter does not have a cut-off period. However, it requires motions transfer functions defined in the data group described in section First-order wave force transfer functions. If a motion transfer function in a given degree of freedom is missing, the associated WF motion will be zero and the filtered signal will become equal to the total signal for that degree of freedom. 1 input line if ibdtyp = 1: HYDRodynamic SEPAration METHod 1 input line: METH METH: character(4): Method for estimating low frequency motions: = NONE: No estimation. Total motion will be used in all force models = BW2: Estimate low frequency motion using a 2nd order Butterworth low pass filter = NLP: Estimate low frequency motion using the non-linearity-pass filter 1 input line if METH = BW2: TC TC: real: Cutoff period for low pass filter used to estimate low frequency motion from total motion 10. Retardation function This data group is used for body type 1 (IBDTYP = 1) to account for frequency dependent added mass and damping in the time domain. 1 identification input line: RETArdation FUNCtion Text for describing the retardation function, 2 input lines: TXRET TXRET: character(60): Character string 1 input line: TIMDEL TIMDEL: real: Time step in retardation function. \(\mathrm {[T]}\) 1 identification input line: RETArdation ELEMent DATA 1 input line: NRET IDOF JDOF NRET: integer: Number of values in retardation function for (idof, jdof) IDOF: integer: Force in dof IDOF due to velocity in dof JDOF JDOF: integer: Retardation function, 1 input line: RET(1), RET(2), .... RET(NRET) RET(k): real: Retardation function value, Time k is present time \(\mathrm {[F/L,FT,FL]}\) When interpolation to find values for the sampling time interval applied in the dynamic analysis, the value at zero time delay, (k=1), is doubled. 11. Hydrostatic stiffness 1 identification input line: HYDRostatic STIFfness DATA Text for describing the hydrostatic stiffness, 2 input lines: TXSTF TXSTF: character(60): Character string 1 input line: ISTMOD ISTMOD: integer: Stiffness model = 1: Linear stiffness matrix = 2: Non-linear stiffness computed by volume integration Linear stiffness matrix model is used (ISTMOD = 1) Stiffness reference 1 identification input line: STIFfness REFErence Reference position for stiffness force, i.e. the global position where stiffness force is zero. 1 input line: XREF YREF ZREF PHI THETA PSI XREF: real: Global X-coordinate of body origin, \(\mathrm {[L]}\) YREF: real: Global Y-coordinate of body origin, \(\mathrm {[L]}\) ZREF: real: Global Z-coordinate of body origin, \(\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 orientation of the body system is obtained by the rotation sequence: rotation about global Z, local Y and local X. PHI and THETA are dummy for body type 3 (IBDTYP = 3) Stiffness matrix 1 identification input line: LINEar STIFfness MATRix Stiffness matrix, 6 input lines: KMATi1 KMATi2 KMATi3 KMATi4 KMATi5 KMATi6 KMATij: real: Stiffness force in dof i due to unit displacement in dof j, \(\mathrm {[F/L,F,FL]}\) The rotations related to the stiffness matrix are in \(\mathrm {[rad]}\), i.e. the unit of KMAT66 is \([FL/\mathrm {rad}]\). The hydrostatic forces/moments are calculated as follows. The global displacements are computed by subtracting reference position for stiffness force (i.e. XREF, YREF, ZREF, PHI, THETA, PSI) from the global vessel position. The global displacements are transformed to body related system. These displacements are multiplied with the stiffness matrix and resulting forces and moments are calculated. The forces/moments are then transformed to body fixed coordinate system. This formulation will give correct hydrostatic stiffness (in heave, roll and pitch). However, it should be noted that this formulation gives stiffness in the body related system, and stiffness in e.g. X- and y-axis hence are referred to body surge and sway. Consequently the stiffness will be applied as a simplified "gain" coefficient in a DP system. It can however, not be used to represent surge and sway stiffness of a mooring system for a body with relatively large yaw motions. Non-linear stiffness model is used (ISTMOD = 2) Note that the hydrostatic force model will only return the buoyancy force when using this formulation. It is therefore often relevant to include the gravity forces for the body in that case (see section Gravity force). Number of hulls, 1 input line: NHULLS NHULLS: integer: Number of hulls that contributes to the hydrostatic force Hull data, NHULLS blocks of 3 input lines: GTYPE GTYPE: character(256): Type of geometry file used for the description of the hull. Only options available in the current version: = triangularMesh: the geometry file given in GFILE should be of type STL (STereoLithography) = lowOrderPanel: the geometry file given in GFILE should be of type GDF (Geometry Data File), as defined in WAMIT documentation Note that it is highly recommended to use STL files for the description of the hull geometry (more precise, less CPU time consuming). GFILE GFILE: character(256): Geometry file name. The type of file should be accorded to the value of GTYPE. XPOS_H YPOS_H ZPOS_H ROLL_H PITCH_H YAW_H XPOS_H: real: x-position of the geometry in the hull-fixed coordinate system YPOS_H: real: y-position of the geometry in the hull-fixed coordinate system ZPOS_H: real: z-position of the geometry in the hull-fixed coordinate system ROLL_H: real: roll angle of the geometry in the hull-fixed coordinate system PITCH_H: real: pitch angle of the geometry in the hull-fixed coordinate system YAW_H: real: yaw angle of the geometry in the hull-fixed coordinate system Note that the hull coordinate system uses the same convention as usual SIMO bodies coordinate system. 12. Nonlinear modification of buoyancy and wave forces First note that this model is available only if a linear stiffness matrix (ISTMOD = 1) is used to model the hydrostatic stiffness (see section Hydrostatic stiffness). The applied models for wave- and hydrostatic stiffness loading acting on a "large volume" body are based on a hydrodynamic input description pre-calculated for a certain draught assuming constant geometry of the intersection between the hull and the mean water level. This means that the body-fixed coordinate system has to coincide with the system used for computation of the hydrodynamic potential flow solution, and that the load model for nonlinear modification of buoyancy and wave forces has to be initialized at the appropriate draught. The nonlinear modification of buoyancy- and wave forces load model is applied to give more accurate results when the wave height and motions are large and the hull geometry is draft-dependent. This is done by a quasistatic correction of the pressure forces that act on the hull. The correction uses a numerical panel model for the hull’s geometry in the splash zone. The coordinate axes of the panel model are the same as the body axes, except that the origin may be offset from that of the body axes system. When the panel description extends beyond the anticipated splash zone, the number of panels to be considered in the computation can be reduced by specifying a lower and an upper bound for the draught. Note that the correction load model is initialized at the reference position for hydrostatic stiffness forces. As a consequence, the reference position has to coincide with the origin of the system used for hydrodynamic calculations. This implies that the reference position can not be used to introduce specified force in global Z-direction, nor moments for roll or pitch. The following input must be given: 1 identification input line: NONLinear BUOYancy CORRection Descriptive text, 2 input lines: TXSTF TXSTF: character(60): Character string Name of geometry file (gdf-file), 1 input line: GDF_FILE FILE_NAME: character(256): Character string Reference point of the coordinates in the geometry file (body coordinates) and vertical range to be used. 1 input line: XGEO YGEO ZGEO ZMIN ZMAX CHMET XGEO: real: X-coordinate of zero of geometry coordinates YGEO: real: Y-coordinate of d.o. ZGEO: real: Z-coordinate of d.o. ZMIN: real: Minimum vertical position to be used (geometry file coordinates) ZMAX: real: Maximum vertical position to be used (geometry file coordinates) CHMET: character(4): Correction method. Must be 'MWL' or 'WAVE' CHMET = MWL ⇒ Nonlinear modification of buoyancy force based on panel locations with respect to mean water level Note that modification to wave forces is performed only if waves are present and 1st order wave forces are specified. In this case also the modification to drift forces will be computed if specified. Example of panel system for buoyancy correction. ZMIN and ZMAX indicate the bounds of the draught band to be considered in the computation. Only panels having their centre between these bounds are included in the calculation. SWL indicates the mean water level. 13. Linear damping The damping affects the total motion for IBDTYP = 1 or 3 and the low frequency motion if IBDTYP = 2. 1 identification input line: LINEar DAMPing Text for describing the linear damping, 2 input lines: TXDPL TXDPL: character(60): Character string 6 input lines, linear damping matrix: DLi1 DLi2 DLi3 DLi4 DLi5 DLi6 DLij: real: Linear damping forces in dof i due to a unit velocity in dof j, \(\mathrm {[FT/L,FT,FTL]}\) The rotation velocities are given in \([\mathrm {rad}/T]\) ⇒ Unit of DL66 is \([FL/(\mathrm {rad}/T)]\) 14. Quadratic damping The quadratic damping affects the total motion for IBDTYP = 1 or 3 and the low frequency motion for IBDTYP = 2. 1 identification input line: QUADratic DAMPing Text for describing the quadratic damping, 2 input lines: TXDPQ TXDPQ: character(60): Character string 6 input line, quadratic damping matrix: DQi1 DQi2 DQi3 DQi4 DQi5 DQi6 DQij: real: Quadratic damping force in dof i due to a unit velocity in dof j, \(\mathrm {[FT^2/L^2,FT^2,FT^2/L,FT^2L]}\) The rotation velocities are in \([\mathrm {rad}/T]\) ⇒ Unit of DQ66 is \([FL/(\mathrm {rad}/T)^2]\) 15. First-order wave force transfer functions 1 identification input line. FIRSt ORDEr WAVE force transfer functions Text for describing the first-order wave force transfer functions, 2 input lines. TXFO1 TXFO1: character(60): Character string 1 input line. NFODIR NFOFRE IFOSYM ITYPIN NFODIR: integer: Number of directions NFOFRE: integer: Number of frequencies IFOSYM: integer, default: 0: Symmetry code = 0: No symmetry = 1: Single symmetry about x-z plane = 2: Double symmetry, x-z and y-z planes ITYPIN: integer: Code for which format the transfer functions are given in = 1: Complex form = 2: Amplitude ratio and phase \(\mathrm {[deg]}\) = 3: Amplitude ratio and phase \(\mathrm {[rad]}\) 1 identification input line. WAVE DIREctions FORCe transfer functions Directions, NFODIR input lines. IFODIR FODIR IFODIR: integer: Direction number FODIR: real: Propagation direction, \(\mathrm {[deg]}\) Note that - If IFOSYM = 1 - 0 deg ⇐ IFODIR ⇐ 180 deg. - Both 0 and 180 deg must be included - If IFOSYM = 2 - 0 deg ⇐ IFODIR ⇐ 90 deg. - Both 0 and 90 deg must be included 1 identification input line. WAVE FREQuencies FORCe transfer functions Frequencies, NFOFRE input lines. IFREQ FOFRE IFREQ: integer: Frequency number FOFRE: real: Angular frequency, \([\mathrm {rad}/T]\) 1 identification input line. "DOF" is either SURGe, SWAY, HEAVe, ROLL, PITCh or YAW. "DOF" FORCe TRANsfer function Transfer function, for WF "DOF" force, NFOFRE*NFODIR input lines IDIR IFREQ A B IDIR: integer: Direction number IFREQ: integer: Frequency number A: real: Interpretation according to the value of ITYPIN ITYPIN=1: Real part ITYPIN=2: Amplitude ratio \(\mathrm {[F/L],[F]}\) ITYPIN=3: Amplitude ratio \(\mathrm {[F/L],[F]}\) B: real: Interpretation according to the value of ITYPIN ITYPIN=1: Imaginary part ITYPIN=2: Phase angle \(\mathrm {[deg]}\) ITYPIN=3: Phase angle \(\mathrm {[rad]}\) Both translational and rotational transfer functions must be given for unit wave amplitude. For angular motions the dimension of the amplitude ratio is \([\mathrm {rad}/L]\), while for translations: \(\mathrm {[L/L]}\). 16. First-order motion transfer functions (RAO) 1 identification input line. FIRSt ORDEr MOTIon transfer functions Text for describing the first-order motion transfer functions, 2 lines. TXMO1 TXMO1: character(60): Character string 1 input line. NMODIR NMOFRE IMOSYM ITYPIN NMODIR: integer: Number of directions NMOFRE: integer: Number of frequencies IMOSYM: integer, default: 0: Symmetry code = 0: No symmetry = 1: Single symmetry about x-z plane = 2: Double symmetry, x-z and y-z planes ITYPIN: integer: Code for which format the transfer functions are given in = 1: Complex form = 2: Amplitude ratio and phase \(\mathrm {[deg]}\) = 3: Amplitude ratio and phase \(\mathrm {[rad]}\) 1 identification input line. WAVE DIREctions MOTIon transfer functions Directions, NMODIR input lines. IMODIR MODIR IMODIR: integer: Direction number MODIR: real: Propagation direction, \(\mathrm {[deg]}\) Note that - If IMOSYM = 1 - 0 deg ⇐ IMODIR ⇐ 180 deg. - Both 0 and 180 deg must be included - If IMOSYM = 2 - 0 deg ⇐ IMODIR ⇐ 90 deg. - Both 0 and 90 deg must be included 1 identification input line. WAVE FREQuencies MOTIon transfer functions Frequencies, NMOFRE input lines. IFREQ MOFRE IFREQ: integer: Frequency number MOFRE: real: Angular frequency, \([\mathrm {rad}/T]\) 1 identification input line. "DOF" is either SURGe, SWAY, HEAVe, ROLL, PITCh or YAW. "DOF" MOTIon TRANsfer function Transfer function, for HF "DOF" motion, NMOFRE*NMODIR input lines IDIR IFREQ A B IDIR: integer: Direction number IFREQ: integer: Frequency number A: real: Interpretation according to the value of ITYPIN ITYPIN=1: Real part ITYPIN=2: Amplitude ratio \([1],[\mathrm {rad}]\) ITYPIN=3: Amplitude ratio \([1],[\mathrm {rad}]\) B: real: Interpretation according to the value of ITYPIN ITYPIN=1: Imaginary part ITYPIN=2: Phase angle \(\mathrm {[deg]}\) ITYPIN=3: Phase angle \(\mathrm {[rad]}\) The amplitude ratio rotational transfer functions must be given as \([\mathrm {rad}/L]\). Both translational and rotational transfer functions must be given for unit wave amplitude. When ITYPIN=3, the complex transfer function element is given as Acos(B) iA*sin(B) where i is the imaginary unit. 17. Wind force coefficients 1 identification input line. WIND FORCe COEFficients Text for describing the wind force coefficients, 2 input lines. TXWICO TXWICO: character(60): Character string Specification of wind coefficient type, 1 optional identification line. FORMAT If identification line FORMAT is present, 1 input line. WCTYPE WCTYPE: integer: Code for wind coefficient type. Options available in current version are: = 0: Wind coefficients are given as a function of the relative wind direction = 1: Wind coefficients are given as function of: relative wind direction body vertical position body roll angle body pitch angle Note that if FORMAT is not present, SIMO will automatically consider that WCTYPE = 0. Classic wind force coefficients (WCTYPE = 0) 1 input line. NWIDIR IWISYM WIAREA ZCOEF NWIDIR: integer: Number of directions IWISYM: integer, default: 0: Symmetry code = 0: No symmetry = 1: Single symmetry about x-z plane = 2: Double symmetry, x-z and y-z planes WIAREA: real, default: 2000: Characteristic area for admittance function (ref. Theory Manual) ZCOEFF: real, default: 10: Height referred to still water level for which wind velocity will be calculated. Coefficients, NWIDIR input lines. WIDIR WI1 WI2 WI3 WI4 WI5 WI6 WIDIR: real: Wind direction, \(\mathrm {[deg]}\) WIn: real: Wind force coefficient for degree of freedom n, \(\mathrm {[FT^2/L^2,FT^2/L]}\) Note that when "No symmetry" is selected, coefficients for both 0 and 360 deg ought to be included and that they must be equal. Position dependent wind force coefficients (WCTYPE = 1) 1 input line. WIAREA ZCOEF WIAREA: real, default: 2000: Characteristic area for admittance function (ref. Theory Manual) ZCOEFF: real, default: 10: Height referred to still water level for which wind velocity will be calculated. 1 input line. READFLAG READFLAG: integer: Flag indicating if the wind coefficients should be read from an external file: = 0: wind coefficients are read directly from the sys-file = 1: wind coefficients are read from an external input file Wind coefficients are given in the sysfile (READFLAG = 0) 1 input line NWIDIR NWIDIR: integer: Number of relative wind directions for which the wind coefficients will be given NWIDIR input lines WIDIR WIDIR: real: Relative wind direction, \(\mathrm {[deg]}\) 1 input line NWIZ NWIZ: integer: Number of body vertical positions for which the wind coefficients will be given NWIZ input lines WIZ WIZ: real: Body vertical position, \(\mathrm {[L]}\) 1 input line NWIROLL NWIROLL: integer: Number of body roll angles for which the wind coefficients will be given NWIROLL input lines WIROLL WIROLL: real: Body roll angle, \(\mathrm {[deg]}\) 1 input line NWIPITCH NWIPITCH: integer: Number of body roll angles for which the wind coefficients will be given NWIPITCH input lines WIPITCH WIPITCH: real: Body pitch angle, \(\mathrm {[deg]}\) NWIDIRNWIZNWIROLL*NWIPITCH input lines, given in the following nested loops order: WIDIR>WIZ>WIROLL>WIPITCH WI1 WI2 WI3 WI4 WI5 WI6 WIn: real: Wind force coefficient for degree of freedom n, \(\mathrm {[FT^2/L^2,FT^2/L]}\) Note: SIMO expects that the wind 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 Wind coefficients are read from an external input file (READFLAG = 1) 1 input line FILENAME FILENAME: character(256): Path to the position dependent wind coefficient file For file format details, see Position dependent wind/current coefficients file. 18. Diffracted wave transfer functions in points 1 identification input line. FIRSt ORDEr DIFFracted wave transfer functions Text for describing the linear incoming wave to diffracted wave transfer functions, 2 lines. TXDI1 TXDI1: character(60): Character string 1 input line. PTNOUS PTNOUS: integer: Point number defined by user 1 input line. XBDY YBDY ZBDY XBDY: real: x-coordinate of where transfer function is calculated \(\mathrm {[L]}\) YBDY: real: y-coordinate of where transfer function is calculated \(\mathrm {[L]}\) ZBDY: real: z-coordinate of where transfer function is calculated \(\mathrm {[L]}\) Note that the coordinates are specified in body related system 1 input line. NDIR NFRE ITYPIN NDIR: integer: Total number of wave directions (for this point) NFRE: integer: Total number of frequencies (for this point) ITYPIN: integer: Code for which format the transfer functions are given in = 1: Complex form = 2: Amplitude ratio and phase \(\mathrm {[deg]}\) = 3: Amplitude ratio and phase \(\mathrm {[rad]}\) 1 identification input line. WAVE DIREctions DIFFracted wave transfer functions Directions, NDIR input lines. IDIR DIR IDIR: integer: Direction number (between 1 and NDIR) DIR: real: Propagation direction of incoming wave, \(\mathrm {[deg]}\) 1 identification input line. WAVE FREQuencies DIFFracted wave transfer functions Frequencies, NFRE input lines. IFRE FRE IFRE: integer: Frequency number (between 1 and NFRE) FRE: real: Angular frequency of incoming wave, \([\mathrm {rad}/T]\) 1 identification input line. WAVE ELEVation DIFFracted wave transfer function And / or XVELocity DIFFracted WAVE transfer function YVELocity DIFFracted WAVE transfer function ZVELocity DIFFracted WAVE transfer function Transfer function from incoming wave to diffracted wave, NDIR*NFRE input lines. IDIR IFRE A B IDIR: integer: Direction number IFRE: integer: Frequency number A: real: Interpretation according to value of ITYPIN ITYPIN=1: Real part ITYPIN=2: Amplitude ratio \(\mathrm {[1]}\),\([\mathrm {rad}/L]\) ITYPIN=3: Amplitude ratio \(\mathrm {[1]}\),\([\mathrm {rad}/L]\) B: real: Interpretation according to value of ITYPIN ITYPIN=1: Imaginary part ITYPIN=2: Phase angle \(\mathrm {[deg]}\) ITYPIN=3: Phase angle \(\mathrm {[rad]}\) If transfer functions of X-, Y- or Z-velocity are given, corresponding acceleration time series will also be computed. When ITYPIN=3, the complex transfer function is given as Acos(B) + iA*sin(B) where i is the imaginary unit. HLA export or visualisation of diffracted wave elevation One or more fields of diffracted wave elevations can be exported for visualization, or to HLA, in a simulator setting. In these points the "WAVE ELEVation DIFFracted wave transfer function" has to be specified, and the points must be equidistant in X and Y direction, respectively. The generation and visualisation of a field of diffracted wave elevations is computationally demanding and time consuming. In order to increase the simulation speed in an HLA simulation session, the computation can be distributed between several computers in the HLA network. In that case one computer (i.e. HLA federate, identified as the "DIFFRACTED WAVE MASTER") will specify the wave field and a number of computers (called "DIFFRACTED WAVE WORKERS") that cooperate in the generation of wave elevations. In case that a diffracted wave field from a stand-alone SIMO analysis shall be visualised, the SIMO sys-file should both specify the wave field and generate the diffracted wave elevations, and should thus include both "MASTER" and "WORKER". The following input sequence will enable visualization of one rectangular patch of diffracted wave elevations: 1 identification input line DIFFracted WAVE EXPOrt Diffracted wave patch name, 1 input line CHDWP CHDWP: character(120): Diffracted wave patch name Either the diffracted wave master or the diffracted wave worker or both have to be specified. 1 identification input line DIFFracted WAVE MASTer Specification of number of points for diffracted wave MASTER, 1 input line NWRK NPX NPY NWRK: integer: Number of `WORKERs' (divisions) for the diffracted wave elevation patch NPX: integer: Number of points in X-direction NPY: integer: Number of points in Y-direction SIMO stand-alone analysis: NWRK = 1 Specification of patch for wave MASTER, 1 input line DWDX DWDY DWX DWY DWPSI DWDX: real: Equidistant length between diffracted wave points in X-direction \(\mathrm {[L]}\) DWDY: real: Equidistant length between diffracted wave points in Y-direction \(\mathrm {[L]}\) DWX: real: Minimum X-coordinate of the diffracted wave patch referred to the body-fixed coordinate system \(\mathrm {[L]}\) DWY: real: Minimum Y-coordinate of the diffracted wave patch referred to the body-fixed coordinate system \(\mathrm {[L]}\) DWPSI: real: Yaw angle of the diffracted wave patch relative to the body-fixed coordinate system \(\mathrm {[deg]}\) 1 identification input line DIFFracted WAVE WORKer Specification of number of points for diffracted wave WORKER , 1 input line IDWW NDWWP IDWW: integer: Worker number NDWWP: integer: Number of points for the worker NDWWP = NPX * NPY / NWRK Figure 5. Diffracted wave patch with NPX = 5, NPY = 3. 19. Linear current coefficients 1 identification input line. LINEar CURRent COEFficients Text for describing the linear current coefficients, 2 input lines. TXC1CO TXC1CO: character(60): Character string 1 input line. NC1DIR IC1SYM NC1DIR: integer: Number of directions IC1SYM: integer, default: 0: Symmetry code = 0: No symmetry = 1: Single symmetry about x-z plane = 2: Double symmetry, x-z and y-z planes Coefficients, NC1DIR input lines. C1DIR C11 C12 C13 C14 C15 C16 C1DIR: real: Direction, \(\mathrm {[deg]}\) C1n: real: Linear current force coefficient for degree of freedom n, \(\mathrm {[FT/L,FT]}\) Note that when No symmetry' is selected, coefficients for both `0 and 360 deg ought to be included and that they must be equal. 20. Quadratic current coefficients 1 identification input line. QUADratic CURRent COEFficients Text for describing the quadratic current coefficients, 2 input lines. TXC2CO TXC2CO: character(60): Character string Specification of current coefficient type, 1 optional identification line. FORMAT If identification line FORMAT is present, 1 input line. CCTYPE CCTYPE: integer: Code for current coefficient type. Options available in current version are: = 0: Current coefficients are given as a function of the relative current direction = 1: Current coefficients are given as function of: relative current direction body vertical position body roll angle body pitch angle Note that if FORMAT is not present, SIMO will automatically consider that CCTYPE = 0. Classic current force coefficients (CCTYPE = 0) 1 input line. NC2DIR IC2SYM ISTRIP RLTOT RLORI NC2DIR: integer: Number of directions IC2SYM: integer, default: 0: Symmetry code = 0: No symmetry = 1: Single symmetry about x-z plane = 2: Double symmetry, x-z and y-z planes ISTRIP: integer, default: 0: Strip model number = 0: No strip model = 1: Strip model no. 1 = 2: Strip model no. 2 RLTOT: real: Total length RLORI: real: Length from FP to motion origin Note that when No symmetry' is selected, coefficients for both `0 and 360 deg ought to be included and that they must be equal. For details on the strip model, confer the Theory Manual. RLTOT and RLORI apply for strip models only. Coefficients, NC2DIR input lines. C2DIR C21 C22 C23 C24 C25 C26 C2DIR: real: Direction, \(\mathrm {[deg]}\) C2n: real: Quadratic current force coefficient for degree of freedom n, \(\mathrm {[FT^2/L^2,FT^2/L]}\) The coefficient C26 is dummy for ISTRIP = 1 or 2 Position dependent quadratic current force coefficients (CCTYPE = 1) 1 input line. READFLAG READFLAG: integer: Flag indicating if the current coefficients should be read from an external file: = 0: current coefficients are read directly from the sys-file = 1: current coefficients are read from an external input file Current coefficients are given in the sysfile (READFLAG = 0) 1 input line NCUDIR NCUDIR: integer: Number of relative current directions for which the current coefficients will be given NCUDIR input lines CUDIR CUDIR: real: Relative current direction, \(\mathrm {[deg]}\) 1 input line NCUZ NCUZ: integer: Number of body vertical positions for which the current coefficients will be given NCUZ input lines CUZ CUZ: real: Body vertical position, \(\mathrm {[L]}\) 1 input line NCUROLL NCUROLL: integer: Number of body roll angles for which the current coefficients will be given NCUROLL input lines CUROLL CUROLL: real: Body roll angle, \(\mathrm {[deg]}\) 1 input line NCUPITCH NCUPITCH: integer: Number of body roll angles for which the current coefficients will be given NCUPITCH input lines CUPITCH CUPITCH: real: Body pitch angle, \(\mathrm {[deg]}\) NCUDIRNCUZNCUROLL*NCUPITCH input lines, given in the following nested loops order: CUDIR>CUZ>CUROLL>CUPITCH CU1 CU2 CU3 CU4 CU5 CU6 CUn: real: current force coefficient for degree of freedom n, \(\mathrm {[FT^2/L^2,FT^2/L]}\) Note: SIMO expects that the current coefficients are given as nested loops as follows: for idDIR=1:NCUDIR for idZ=1:NCUZ for idROLL=1:NCUROLL for idPITCH=1:NCUPITCH read CUn corresponding to CUDIR(idDIR),CUZ(idZ),CUROLL(idROLL),CUPITCH(idPITCH) end for end for end for end for current coefficients are read from an external input file (READFLAG = 1) 1 input line FILENAME FILENAME: character(256): Path to the position dependent current coefficient file For file format details, see Position dependent wind/current coefficients file. 21. Second-order wave drift coefficients 1 identification input line. SECOnd ORDer WAVE drift forces Text for describing the second-order wave drift force coefficients, 2 input lines. TXWADR TXWADR: character(60): Character string 1 input line. NDRDIR NDRFRE IDRSYM NDRDIR: integer: Number of directions NDRFRE: integer: Number of frequencies IDRSYM: integer, default: 0: Symmetry code = 0: No symmetry = 1: Single symmetry about x-z plane = 2: Double symmetry, x-z and y-z planes 1 identification input line. WAVE DIREctions DRIFt coefficients NDRDIR input lines. IDRDIR DRDIR IDRDIR: integer: Direction number DRDIR: real: Direction, \(\mathrm {[deg]}\) Note that: If IDRSYM = 1 0 deg ≤ DRDIR ≤ 180 deg 0 deg must be included If IDRSYM = 2 0 deg ≤ DRDIR ≤ 90 deg 1 identification input line. WAVE FREQuencies DRIFt coefficients Frequencies, NDRFRE input lines. IDRFRE DRFRE IDRFRE: integer: Frequency number DRFRE: real: Angular frequency, \(\mathrm {[rad}/T]\) 1 identification input line, "DOF" is either SURGe, SWAY, HEAVe, ROLL, PITCh or YAW. "DOF" WAVE DRIFt coefficients Force coefficients, NDRFRE*NDRDIR input lines IDRDIR IDRFRE TDR IDRDIR: integer: Direction number IDRFRE: integer: Frequency number TDR: real: Wave drift force coefficient, \(\mathrm {[F/L^2,F/L]}\) Wave drift damping 1 identification input line. WAVE DRIFt DAMPing Text for describing the wave drift damping, 2 input lines. TXWADD TXWADD: character(60): Character string 1 input line ICOF ICOF: integer: Calculation method = 1: Simplified method = 2: Newman’s method Simplified method (ICOF=1) 1 input line NWADD NWADD: integer: Number of peak periods for which coefficients are given Wave drift damping coefficients, NWADD input lines WDPER WD11 WD12 WDPER: real: Peak period in wave spectrum \(\mathrm {[T]}\) WD1n: real: Wave drift damping coefficient for degree of freedom n, (i.e. relative change in average wave drift force for unit velocity), \(\mathrm {[T/L]}\) Newman’s method (ICOF=2) 1 input line NDDDIR NDDFRE NDDDIR: integer: Number of directions NDDFRE: integer: Number of frequencies 1 identification input line (optional) CALCulation METhod 1 identification input line (if optional line CALculation METhod is given) IVEMET IVEMET: integer: Calculation method for wave drift damping force = 1: uses body velocity relative to current velocity = 2: uses absolute body velocity Note: in both cases, low-frequency velocity is used (if available) 1 identification input line WAVE DIREction DAMPing coefficients Directions, NDDDIR input lines IDDDIR DDDIR IDDDIR: integer: Direction number DDDIR: real: Direction, \(\mathrm {[deg]}\) 1 identification input line WAVE FREQuencies DAMPing coefficients Frequencies, NDDFRE input lines IDDFRE DDFRE IDDFRE: integer: Frequency number DDFRE: real: Angular frequency, \(\mathrm {[rad}/T]\) 1 identification input line, "BIJ" is B11,B12,B16,B21,B22,B26,B61,B62 or B66 BIJ DRIFt DAMPing coefficients Damping force coefficients, NDDFRE*NDDDIR input lines IDDDIR IDDFRE WAD2 IDDDIR: integer: Direction number IDDFRE: integer: Frequency number WAD2: real: Wave drift damping force coefficient B11, B21, B22, B12: \(\mathrm {[(F/(L/T))/L^2]}\) B16, B26, B61, B62: \(\mathrm {[(F/(1/T))/L^2]}\) B66: \(\mathrm {[(FL/(1/T))/L^2]}\) 22. Second-order wave force transfer functions To do simulations with full Quadratic Transfer Functions (QTFs), the number of frequencies along both axes must be equal. This is given by the parameters NWQTF1 and NWQTF2. When running DYNMOD the option "Full QTF" will then be available in the menu Frequency variation of QTF force. 1 identification input line. QUADratic TRANsfer FUNCtions Text for describing the second-order wave force transfer functions, 2 input lines. TXFO2 TXFO2: character(60): Character string 1 input line. NDQTF1 NDQTF2 NWQTF1 NWQTF2 MODQTF IQTSYM ITYPIN NDQTF1: integer: Number of directions NDQTF2: integer: Number of directions (1 or NDQTF1) NWQTF1: integer: Number of frequencies NWQTF2: integer: Number of frequencies (1 or NWQTF1) MODQTF: integer: Mode for transfer functions = 1: Difference frequency transfer functions = 2: Sum frequency transfer functions IQTSYM: integer, default: 0: Symmetry code = 0: No symmetry is mandatory ITYPIN: integer: Code for which format the transfer functions are given in = 1: Complex form = 2: Amplitude ratio and phase \(\mathrm {[deg]}\) = 3: Amplitude ratio and phase \(\mathrm {[rad]}\) 1 identification input line. WAVE DIREctions QTF Directions, NDQTF1 input lines. IQTDIR QTFDIR IQTDIR: integer: Direction number QTFDIR: real: Direction, \(\mathrm {[deg]}\) 1 identification input line. WAVE FREQuencies QTF Frequencies, NWQTF1 input lines. IQTFRE QTFFRE IQTFRE: integer: Frequency number QTFFRE: real: Angular frequency, \(\mathrm {[rad}/T]\) 1 identification input line. "DOF" is SURGe, SWAY, HEAVe, ROLL, PITCh or YAW. "DOF" QUADratic TRANsfer function Transfer function, for HF "DOF" force, NWQTF1((NWQTF2+1)/2)NDQTF1*((NDQTF2+1)/2) input lines. IDQTF1 IDQTF2 IWQTF1 IWQTF2 A B IDQTF1: integer: Direction number 1 IDQTF2: integer: Direction number 2 IWQTF1: integer: Frequency number 1 IWQTF2: integer: Frequency number 2 A: real: Interpretation according to value of ITYPIN ITYPIN=1: Real part \(\mathrm {[F/L^2,F/L]}\) ITYPIN=2: Amplitude ratio \(\mathrm {[F/L^2,F/L]}\) ITYPIN=3: Amplitude ratio \(\mathrm {[F/L^2,F/L]}\) B: real: Interpretation according to value of ITYPIN ITYPIN=1: Imaginary part \(\mathrm {[F/L^2,F/L]}\) ITYPIN=2: Phase angle \(\mathrm {[deg]}\) ITYPIN=3: Phase angle \(\mathrm {[rad]}\) Both translational and rotational transfer functions must be given for unit wave height. When ITYPIN=3, the complex transfer function element is given as Acos(B) + iA*sin(B) where i is the imaginary unit. When NDQTF2=1, IDQTF2 must always be equal to IDQTF1. 23. Distributed element forces This force model applies to two types of elements: - Slender elements (example: spoolpiece) - Fixed body elements with zero extension (giving forces acting at a specified point) Both give 6 d.o.f. forces on the body on which the elements are attached. Make sure that any forces here are not otherwise included in the integral force coefficients for the body. For each body where either of these two force models shall be used, the following 3 input lines shall precede the input sequence for all the attached elements: The elements can be grouped for HLA export. In that case the following 3 input lines shall precede the input sequence for each element group: 1 identification input line. DISTributed ELEMent FORCe Text for describing distributed hydrodynamic forces, 2 input lines. TXDIST TXDIST: character(60): Character string HLA export of distributed element forces If the global coordinates of all nodes and the hydrodynamic forces on each strip shall be exported to HLA, the following 2 input lines shall follow directly after the first 3 lines: 1 identification line HLA EXPOrt Unique name of the exported element group data, 1 input line. CHDELF CHDELF: character(120): HLA name (identifier) of the element group Slender elements 1 identification input line: SLENder ELEMent 1 input line SPEVOL DSTMAS IFOADD IVOL IWDHF NSTRIP SPEVOL: real: Specific volume (cross-section area) of element, \(\mathrm {[L^2]}\) DSTMAS: real: Distributed mass of element, \(\mathrm {[M/L]}\) IFOADD: integer, default: 1: Parameter defining wave force integration method: IFOADD = 1: Force integrated to actual wave elevation IFOADD = 0: Force integrated to z=0 (strictly linear wave theory) IVOL: integer, default: 1: Parameter for load types IVOL = 0: Gravity and buoyancy NOT included IVOL = 1: Gravity and buoyancy force included IWDHF: integer, default: 2: Include wave particle velocity and acceleration? IWDHF = 0: No IWDHF = 1: Velocity only (drag forces) IWDHF = 2: Velocity and acceleration IWDHF= 3: Velocity only (strip 1 and NSTRIP only) IWDHF= 4: Velocity and acceleration (strip 1 and NSTRIP only) NSTRIP: integer, default: 10: Number of strips For IWDHF = 3 or 4, the wave kinematics will only be calculated in the mid point of strip 1 and NSTRIP. Linear interpolation is used to find velocity, acceleration and wave elevation for the other strips. In a normal analysis of a pipe (or other slender element) in the splash zone, the following values should be used: IFOADD = 1, IVOL = 1, IWDHF = 2 Element end coordinates in body fixed coordinate system and a reference point to specify the direction of the local y-axis 1 input line. XEL1 YEL1 ZEL1 XEL2 YEL2 ZEL2 XREF YREF ZREF XEL1: real: X-coordinate end point 1, \(\mathrm {[L]}\) YEL1: real: Y-coordinate end point 1, \(\mathrm {[L]}\) ZEL1: real: Z-coordinate end point 1, \(\mathrm {[L]}\) XEL2: real: X-coordinate end point 2, \(\mathrm {[L]}\) YEL2: real: Y-coordinate end point 2, \(\mathrm {[L]}\) ZEL2: real: Z-coordinate end point 2, \(\mathrm {[L]}\) XREF: real: X-coordinate reference point, \(\mathrm {[L]}\) YREF: real: Y-coordinate reference point, \(\mathrm {[L]}\) ZREF: real: Z-coordinate reference point, \(\mathrm {[L]}\) The reference point [XREF,YREF,ZREF] is used to specify the orientation of the The slender element coordinate system is established as follows: The XS-axis extends along the element from end point 1 to point 2. The YS-axis is defined by the plane between the XS-axis and the reference point [XREF,YREF,ZREF]. Positive direction is towards the reference point. Figure 6. Coordinate system [XS,YS,ZS] of the slender element Hydrodynamic coefficients, in local element coordinate system, 1 input line. C2X C2Y C2Z C1X C1Y C1Z AMX AMY AMZ C2X: real: Quadratic longitudinal drag coefficient \(\mathrm {[FT^2/L^3]}\) C2Y: real: Quadratic transverse (Y) drag coefficient \(\mathrm {[FT^2/L^3]}\) C2Z: real: Quadratic transverse (Z) drag coefficient \(\mathrm {[FT^2/L^3]}\) C1X: real: Linear longitudinal drag coefficient \(\mathrm {[FT^2/L^3]}\) C1Y: real: Linear transverse (Y) drag coefficient \(\mathrm {[FT/L^2]}\) C1Z: real: Linear longitudinal (Z) drag coefficient \(\mathrm {[FT/L^2]}\) AMX: real: Longitudinal added mass coefficient \(\mathrm {[M/L]}\) AMY: real: Transverse (Y) added mass coefficient \(\mathrm {[M/L]}\) AMZ: real: Transverse (Z) added mass coefficient \(\mathrm {[M/L]}\) The coefficients are given with dimension, and are valid for a fully submerged strip. Application of diffracted waves The diffracted wave points given below must contain diffracted wave transfer functions both for wave elevation and for velocity in x, y and z direction. 1 identification input line. DIFFracted WAVE APPLication 1 input line. CHBDYD CHBDYD: character(8): Name of body for which transfer functions for diffracted waves are given 1 input line IPDIFF1 IPDIFF1: integer: Diffracted wave point number associated with element end 1 1 input line IPDIFF2 IPDIFF2: integer: Diffracted wave point number associated with element end 2 Depth dependent scaling of hydrodynamic coefficients As an additional modelling option, the user may specify depth dependent scaling of hydrodynamic coefficients. The following group (position dependent data) is not mandatory. If the element will be fully submerged and assumed unaffected by surface effects throughout the simulation, the data group will not be relevant and can be omitted. However, if a fixed element or a slender element with nearly horizontal angle crosses the water surface, the slamming force is calculated only if the position depended data are given. The depth dependent scaling coefficients are applied to the centre of each strip, and are mainly intended for nearly horizontal slender elements or fixed body elements. For tilted elements a scaling factor will be calculated, proportional to the submerged part of each strip. 1 identification input line DEPTH-dependent HYDRodynamic COEFficients 1 input line NDEPTH ZCOEF NDEPTH: integer: Number of depths for which hydrodynamic coefficients are given ZCOEF: real, default: 0: Vertical position used as reference for depth dependency, \(\mathrm {[L]}\). The hydrodynamic coefficients will be found by interpolation. Input for interpolation in the ZD table is - \(\mathrm {Zin=Z-ZCOEF-\xi \quad (IFOADD=1)}\) - \(\mathrm {Zin=Z-ZCOEF\quad \quad \:\;(IFOADD=0)}\) where \(\mathrm {Zin}\) is the vertical position of the strip center, and \(\mathrm {\xi }\) is the wave elevation. The following pairs of input lines have to be given for increasing or decreasing vertical position, ZD. 2*NDEPTH input lines ZD RVOL RAMX RAMY RAMZ ZD: real, default: 1: Vertical position, \(\mathrm {[L]}\) RVOL: real, default: 1: Volume relative to fully submerged volume RAMX: real, default: 1: Relative added mass in longitudinal, local element x-direction RAMY: real, default: 1: Relative added mass in local element y-direction RAMZ: real, default: 1: Relative addedmass in local element z-direction RCLX RCLY RCLZ RCQX RCQY RCQZ RCLX: real: Relative linear drag in longitudinal direction (local element x-direction) RCLY: real: Relative linear drag in local element y-direction RCLZ: real: Relative linear drag in local element z-direction RCQX: real: Relative quadratic drag in longitudinal direction (local element x-direction) RCQY: real: Relative quadratic drag in local element y-direction RCQZ: real: Relative quadratic drag in local element z-direction Wind force on slender element. As an option, the user may get wind forces on slender elements. This is obtained by adding the new optional sub-group AERODYNAMIC DESCRIPTION. 1 identification input line AEROdynamic DESCription Load description type CHTYPE CHTYPE: character: Type of aerodynamic force (only option available at the moment) = DRAG ⇒ Morison-like loading. Drag term If CHTYPE=DRAG, Wind drag coefficients, in local element coordinate system, 1 input line. CVX CVY CVZ CVX: real: Quadratic longitudinal drag coefficient \(\mathrm {[FT^2/L^3]}\) CVY: real: Quadratic transverse (Y) drag coefficient \(\mathrm {[FT^2/L^3]}\) CVZ: real: Quadratic transverse (Z) drag coefficient \(\mathrm {[FT^2/L^3]}\) Fixed body element 1 identification input line. FIXEd BODY ELEMent 1 input line VOL MASS IFOADD IVOL IWDHF VOL: real: Volume of element, \(\mathrm {[L^3]}\) MASS: real: Mass of element, \(\mathrm {[M]}\) IFOADD: integer, default: 1: Parameter defining wave force integration method: IFOADD = 1: Force integrated to actual wave elevation IFOADD = 0: Force integrated to z=0 (strictly linear wave theory) IVOL: integer, default: 1: Include gravity and buoyancy forces? IVOL = 0: Gravity and buoyancy NOT included IVOL = 1: Gravity and buoyancy force included IWDHF: integer: Include wave particle velocity and acceleration IWDHF = 0: No IWDHF = 1: Velocity only (drag forces) IWDHF = 2: Velocity and acceleration In a normal analysis of a concentrated, force attracting element in the splash zone, the following values should be used: IFOADD = 1, IVOL = 1, IWDHF = 2 Element coordinates and axis definition in body fixed coordinate system, 1 input line. XEL YEL ZEL XELX YELX ZELX XELY YELY ZELY XEL: real: X-coordinate of element, \(\mathrm {[L]}\) YEL: real: Y-coordinate of element, \(\mathrm {[L]}\) ZEL: real: Z-coordinate of element, \(\mathrm {[L]}\) XELX: real: YELX: real: ZELX: real: XELY: real: YELY: real: ZELY: real: [XELX,YELX,ZELX] = reference point defining the element X axis [XELY,YELY,ZELY] = reference point in the local XY-plane of the element. Figure 7. Coordinate system of the body fixed element Hydrodynamic coefficients, in local element coordinate system, 1 input line. C2X C2Y C2Z C1X C1Y C1Z AMX AMY AMZ C2X: real: Quadratic longitudinal (X) drag \(\mathrm {[FT^2/L^2]}\) C2Y: real: Quadratic transverse (Y) drag \(\mathrm {[FT^2/L^2]}\) C2Z: real: Quadratic transverse (Z) drag \(\mathrm {[FT^2/L^2]}\) C1X: real: Linear longitudinal (X) drag \(\mathrm {[FT/L]}\) C1Y: real: Linear transverse (Y) drag \(\mathrm {[FT/L]}\) C1Z: real: Linear transverse (Z) drag \(\mathrm {[FT/L]}\) AMX: real: Longitudinal added mass \(\mathrm {[M]}\) AMY: real: Transverse (Y) added mass \(\mathrm {[M]}\) AMZ: real: Transverse (Z) added mass \(\mathrm {[M]}\) The coefficients are given with dimension, and are valid for a fully submerged element. Application of diffracted waves The diffracted wave points given below must contain diffracted wave transfer functions both for wave elevation and for velocity in x, y and z direction. 1 identification input line. DIFFracted WAVE APPLication 1 input line. CHBDYD CHBDYD: character(8): Name of body for which diff. wave TRF’s are given 1 line IPDIFF IPDIFF: integer: Diffracted point number to be associated with element Depth dependent scaling coefficients As an additional modelling option, the user may specify depth dependent hydrodynamic scaling coefficients. The following group (position dependent data) is not mandatory. If the element will be fully submerged and assumed unaffected by surface effects throughout the simulation, the data group will not be relevant and can be omitted. However, if a fixed element or a slender element with nearly horizontal angle crosses the water surface, omitting the position dependent data may result in large impulse forces. The depth dependent scaling coefficients are applied to the centre of each strip, and are mainly intended for nearly horizontal slender elements or fixed body elements. For tilted elements a scaling factor will be calculated, proportional to the submerged part of each strip. This data group, when used, should follow directly after the four input lines for the element. 1 identification input line DEPTh-dependent HYDRodynamic COEFficients 1 input line NDEPTH ZCOEF NDEPTH: integer: Number of depths for which hydrodynamic coefficients are given ZCOEF: real, default: 0: Vertical position used as reference for depth dependency, \(\mathrm {[L]}\). The hydrodynamic coefficients will be found by interpolation. Input for interpolation in the ZD table is - \(\mathrm {Zin=Z-ZCOEF-\xi \quad (IFOADD=1)}\) - \(\mathrm {Zin=Z-ZCOEF\quad \quad \:\;(IFOADD=0)}\) where \(\mathrm {Zin}\) is the vertical position and \(\mathrm {\xi }\) is the wave elevation. The following pairs of input lines have to be given for increasing or decreasing vertical position, ZD. 2*NDEPTH input lines ZD RVOL RAMX RAMY RAMZ - `ZD: real, default: 1`: Vertical position, latexmath:[\mathrm {[L\]}] - `RVOL: real, default: 1`: Volume relative to fully submerged volume - `RAMX: real, default: 1`: Relative added mass in longitudinal direction (local element x-direction) - `RAMY: real, default: 1`: Relative added mass in local element y-direction. - `RAMZ: real, default: 1`: Relative added mass in local element z-direction RCLX RCLY RCLZ RCQX RCQY RCQZ RCLX: real: Relative linear drag in longitudinal direction (local element x-direction) RCLY: real: Relative linear drag in local element y-direction RCLZ: real: Relative linear drag in local element z-direction RCQX: real: Relative quadratic drag in longitudinal, local element x-direction RCQY: real: Relative quadratic drag in local element y-direction RCQZ: real: Relative quadratic drag in local element z-direction Wind force on fixed body element. As an additional option, the user may get wind forces at slender elements. This is obtained by adding the new optional sub-group AERODYNAMIC DESCRIPTION. The obtained wind force will be added to the wind force time series. 1 identification input line AEROdynamic DESCription Load description type CHTYPE CHTYPE: character: Type of aerodynamic force (only one option available at the moment) = DRAG ⇒ Morison-like loading. Drag term If CHTYPE=DRAG, Wind drag coefficients, in local element coordinate system, 1 input line. CVX CVY CVZ CVX: real: Quadratic longitudinal drag coefficient \(\mathrm {[FT^2/L^2]}\) CVY: real: Quadratic transverse (Y) drag coefficient \(\mathrm {[FT^2/L^2]}\) CVZ: real: Quadratic transverse (Z) drag coefficient \(\mathrm {[FT^2/L^2]}\) 24. Small body hydrodynamic data (including soil penetration) 1 identification input line SMALl BODY HYDRodynamic data Text for describing small-body hydrodynamic data, 2 input lines CHTEXT CHTEXT: character(60): Character string 1 input line SVOL SVOL: real: Fully submerged volume, \(\mathrm {[L^3]}\) Added mass and drag force coefficients are specified for the fully submerged body in 3 degrees of freedom that coincide with the body fixed X, Y and Z directions: Added mass data, 1 input line SAMX SAMY SAMZ SAMX: real: Added mass in X-direction \(\mathrm {[M]}\) SAMY: real: Added mass in Y-direction \(\mathrm {[M]}\) SAMZ: real: Added mass in Z-direction \(\mathrm {[M]}\) Linear drag data, 1 input line SC1X SC1Y SC1Z SC1X: real: Linear drag coefficient in X-direction, \(\mathrm {[FT/L]}\) SC1Y: real: Linear drag coefficient in Y-direction, \(\mathrm {[FT/L]}\) SC1Z: real: Linear drag coefficient in Z-direction, \(\mathrm {[FT/L]}\) Quadratic drag data, 1 input line SC2X SC2Y SC2Z SC2X: real: Quadratic drag coefficient in X-direction, \(\mathrm {[F(T/L)^2]}\) SC2Y: real: Quadratic drag coefficient in Y-direction, \(\mathrm {[F(T/L)^2]}\) SC2Z: real: Quadratic drag coefficient in Z-direction, \(\mathrm {[F(T/L)^2]}\) Depth dependent hydrodynamic forces 1 identification input line DEPTH-dependent HYDRodynamic COEFficients 1 input line NDEPTH ZCOEF IREF NDEPTH: integer: Number of depths for which hydrodynamic coefficients are given ZCOEF: real: Vertical position used as reference for depth dependency, \(\mathrm {[L]}\) IREF: integer, default: 1: Reference for depth dependency = 1: Wave elevation = 2: Still water level 2*NDEPTH input lines ZD RVOL RAMX RAMY RAMZ ZD: real: Vertical position, \(\mathrm {[L]}\) RVOL: real: Volume relative to fully submerged volume RAMX: real: Relative added mass in X-direction RAMY: real: Relative added mass in Y-direction RAMZ: real: Relative added mass in Z-direction RC1X RC1Y RC1Z RC2X RC2Y RC2Z RC1X: real: Relative linear drag in X-direction RC1Y: real: Relative linear drag in Y-direction RC1Z: real: Relative linear drag in Z-direction RC2X: real: Relative quadratic drag in X-direction RC2Y: real: Relative quadratic drag in Y-direction RC2Z: real: Relative quadratic drag in Z-direction Application of diffracted waves The diffracted wave points given below must contain diffracted wave transfer functions both for wave elevation and for velocity in x, y and z direction. 1 identification input line. DIFFracted WAVE APPLication 1 input line CHBDYD CHBDYD: character(8): Name of body for which diff. wave TRF’s are given 1 input line IPDIFF IPDIFF: integer: Diffracted point number to be associated with this body Soil penetration model 1 identifying input line SOIL PENEtration 1 input line ISOIL NDFRIC NDCAP ISOIL: integer: Soil force control parameter = 1: Friction model for open compartment = 2: Friction model with soil fracture = 11: Friction model for open compartment including horizontal sliding NDFRIC: integer: Number of depths with friction forces NDCAP: integer: Number of depths with soil capacity (dummy for ISOIL = 1 and 11) 1 input line ZCONT PENETR BAREA SODENS CAREA IHSOIL ZCONT: real: Vertical global coordinate of the body giving first contact with the soil (landing), \(\mathrm {[L]}\) BAREA: real: Soil buoyancy cross section area, \(\mathrm {[L^2]}\) SODENS: real: Soil mass density, \(\mathrm {[M/L^3]}\) CAREA: real: Section area of cavity \(\mathrm {[L^2]}\) (Dummy for ISOIL 1 & 11) IHSOIL: integer, default: 0: Import of seabed depth values from HLA, Depth value replaces ZCONT IHSOIL = 0: No import IHSOIL = 1: Import NDFRIC input lines DFRIC FTIPDO FTIPUP FWALL FRICH DFRIC: real: Penetration relative to ZCONT (positive upwards), \(\mathrm {[L]}\) FTIPDO: real: Depth dependent tip force for DOWNward motion, \(\mathrm {[F]}\) FTIPUP: real: Depth dependent tip force for UPward motion, \(\mathrm {[F]}\) FWALL: real: Depth dependent skirt friction force for both upwards and downwards motion, \(\mathrm {[F]}\) FRICH: real >= 0: Depth dependent friction force in horizontal direction, \(\mathrm {[F]}\) FRICH is dummy for ISOIL = 1, 2 FTIPUP should be negative Figure 8. Soil penetration parameters Soil penetration parameters for friction model with soil fracture For ISOIL = 2, NDCAP input lines DCAP SOILFR FRCDEP PSUCT DCAP: real: Penetration relative to ZCONT (positive upwards) SOILFR: real: Soil capacity against failure at soil surface, \(\mathrm {[F/L^2]}\) FRCDEP: real: Depth of each new soil failure, \(\mathrm {[L]}\) PSUCT: real: Suction pressure \(\mathrm {[F/L^2]}\) For ISOIL = 2, 1 input line WSTIFF TSUCT CFLOW WSTIFF: real: Stiffness due to compressibility of water inside the cavity, \(\mathrm {[F/L]}\) TSUCT: real: Time for starting suction pumps, \(\mathrm {[T]}\) CFLOW: real: Flow coefficient in/out of closed compartment, \(\mathrm {[L^3/T(F/L^3)^{0.5}]}\) 25. Specified forces 1 identification input line SPECified FORCe Text describing the specified force, 2 input lines TXSPF TXSPF: character(60): Character string 1 input line NCOMP EHLA NCOMP: integer: Number of force components EHLA: integer, default: 0: HLA export flag for specified force EHLA = 0: No export EHLA = 1: HLA export For EHLA = 1, 1 input line, HLA name of specified force object, CHSHLA CHSHLA: character(120): HLA force object name (identifier) 1 input line IMETH IDOF/IMOM IMETH: integer: Method for applying the force = 1: Force/moment in specified degree of freedom (body fixed system) = 2: Force/moment acting in a point on the body, direction specified in the body fixed system and following its motion. = 3: Force/moment acting in a point on the body, direction is constant and specified in the global coordinate system. IDOF / IMOM: integer: Degree of freedom (IDOF=1-6) for IMETH=1 Force or moment (IMOM) for IMETH=2 or 3 IMOM = 0: Force IMOM = 1: Moment 1 input line for IMETH=2, IMETH=3 XP YP ZP DV1 DV2 DV3 XP: real: X-coordinate in body fixed coordinate system YP: real: Y-coordinate in body fixed coordinate system ZP: real: Z-coordinate in body fixed coordinate system DV1: real: Direction vector, x-component DV2: real: Direction vector, y-component DV3: real: Direction vector, z-component Direction vectors are defined in body fixed coordinate system for IMETH=2 and in global coordinate system for IMETH=3. They will be normalized in the input module. Coordinates XP, YP, and ZP are dummy for IMOM=1. Force component description, NCOMP input lines. IFORTY TON TOFF P1 P2 P3 IFORTY: integer: Force component type = 1: Constant force = 2: Harmonic force = 3: Ramp TON: real, default: 0: Time for switching component on, \(\mathrm {[T]}\) TOFF: real, default: 100000: Time for switching component off, \(\mathrm {[T]}\) Force comp. = 0. if time >= TOFF P1: real: Force component parameter IFORTY=1: Magnitude, \(\mathrm {[F,FL]}\) IFORTY=2: Amplitude, \(\mathrm {[F,FL]}\) IFORTY=3: Force derivative, \(\mathrm {[F/T,FL/T]}\) P2: real: Force component parameter IFORTY=1: Dummy IFORTY=2: Period, \(\mathrm {[T]}\) IFORTY=3: Dummy P3: real: Force component parameter IFORTY=1: Dummy IFORTY=2: Phase, forward phase shift to a sine wave (cf. Theory Manual) \(\mathrm {[deg]}\) IFORTY=3: Dummy 26. General external forces For each body there may be defined several external force models. They are numbered according to the location on the system description file. 1 identification input line. EXTErnal FORCes Text for describing external forces, 2 input lines. TXEXT TXEXT: character(60): Character string describing external force 1 input line IEXTF ICOORD EHLA IEXTF: integer, default: 2: Flag for type of external force interface = 1: User-supplied general external force library (DLL) = 2: External force time series from file = 3: HLA, attack point of force given in sysfile = 4: HLA, attack point of force is imported from HLA ICOORD: integer, default: 0: Flag for which coordinate system the force is given in = 0: Global coordinate system = 1: Body fixed coordinate system EHLA: integer, default: 0: HLA export flag for external force = 0: No export = 1: HLA export EHLA is dummy for IEXTF = 3 and 4. HLA name is automatically set to ExtFor[No]_[HLA_Bodyname]. Main parameters, 1 input line (Dummy for external force time series from file, IEXTF = 2) NINT NREA NSTO NSTR NINT: integer, default: 0: Number of integer input parameters NREA: integer, default: 0: Number of real input parameters NSTO: integer, default: 0: Number of parameters for intermediate storage NSTR: integer, default: 0: Number of input strings Integer parameters, NINT pairs of input lines (Dummy for external force time series from file, IEXTF = 2) TXINT TXINT: character(60): Character string describing integer parameter INTn INTn: integer: Integer parameter no n Real parameters, NREA pairs of input lines (Dummy for external force time series from file, IEXTF = 2) TXREA TXREA: character(60): Character string describing real parameter REAn REAn: real: Real parameter no n String parameters, NSTR input lines (Dummy for external force time series from file, IEXTF = 2) TXSTRn TXSTRn: character(120): Character string no n Force point of attack, 1 input line (Dummy for IEXTF = 3) XP YP ZP XP: real, default: 0: X-coordinate in body fixed coordinate system YP: real, default: 0: Y-coordinate in body fixed coordinate system ZP: real, default: 0: Z-coordinate in body fixed coordinate system Initial force used by STAMOD, 1 input line, (Dummy for IEXTF=1) 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]}\) FX: 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]}\) For HLA import the forces and moments are given in global system (IEXTFO=3 or IEXTFO=4) 1 input line TXXGF TXXGF: character(120): IEXTF = 1: Character string, path and library filename IEXTF = 2: Character string, path and force filename IEXTF = 3: Character string, HLA object name IEXTF = 4: Character string, HLA object name The file format for forces imported from file (IEXTFO = 2) is described in the section External force time series imported from file. For DLL import of force (IEXTF = 1), 1 input line NPCUR NPCUR: integer > 0: Number of points where current velocities shall be given to the external force library. 27. Wind turbine specification This data group enables the user to model a Horizontal Axis Wind Turbine (HAWT) considering wind load acting on the rigid blades and control system for blade pitch and electrical power extraction. In order to model a wind turbine a minimum of two bodies is required; one body to represent the blades, hub and the slow-speed shaft (the present rotor body) and one body to represent the support structure for the rotor. For application of the electrical torque moment a moment coupling between the bodies has to be included. It is assumed that the origin of the body fixed rotor coordinate system coincides with the hub centre with X-axis aligned in the direction with the rotor (slow speed) shaft i.e. from the hub towards the support. The wind loads on the blades are computed based on the load coefficient description in the air foil library file and together with a blade element momentum (BEM) method. The applied BEM code includes dynamic inflow, i.e. a time delay on changes of induced velocity related to the time it takes to convect vorticity in the wake downstream, away from the rotor. With dynamic inflow, the BEM method will give correct time series of rotor and blade loads under conditions of changing blade pitch angle, wind speed and direction, and tower motion. The main features of the BEM theory are: Induced velocity is calculated assuming momentum balance for a ring-shaped control volume Blade sections are treated as independent Aerodynamic coefficients from wind tunnel tests are used for the blades Empirical corrections are used for tip-vortices and cascade effects / lift amplification The BEM theory is a proven, simple and CPU efficient method to simulate rotor aerodynamics and the method represents the industry standard. Requirements to wind turbine modelling Support body and rotor (present) body with 6 degrees of freedom. Moment coupling attached to the rotor body in direction parallel with body fixed X-axis, i.e. moment around the X-axis. Recommendations to wind turbine modelling The rotor body and the support body may be connected by use of 2 docking cone couplings to transfer radial forces. Each docking cone coupling has its contact point located in the rotor body X-axis and itscone attached to the support body. A distance between the two contact points on the rotor axis is necessary in order to transfer moments about y- and z-axes. The orientation of the direction vector of the docking cones should be coincident with the rotor body X-axis. 1 axial force coupling between the rotor body and the support body to transfer axial rotor force. The axial force coupling should be aligned with the rotor body X-axis. Note that the applied electrical torque is handled by MOMENT COUPLING. Thus, no constant moment should be specified for the coupling. Any specified torsional stiffness will be set to zero during dynamic analysis. A principal sketch of a coupling system between rotor body and support body of a wind turbine system is presented in Figure 9. 1 identification input line WIND TURBine SPECification 1 input line DUMMY DUMMY: character(6): This line must contain the exact string "DUMMY" 1 input line CH_WITURB CH_WITURB: character(8): Wind turbine identifier 1 input line ZCOEF WIAREA ZCOEF: real: Ref. height for calc of wind WIAREA: real: Admittance function Note that ZCOEF and WIAREA are dummy for IWITYP>=10. File for control system specification. 1 input line CH_CONTROL CHCODE: character(4): CHCODE = INTC: Internal control system CHCODE = EXTC: External control system Specification internal control system, CHCODE = INTC, 1 input line CONTROLFILE CONTROLFILE: character(256): Name including the path of the file that contains input to the internal control system For additional details regarding the internal control system specification, see the RIFLEX User Manual, Input to INPMOD, Additional Input Files, Specification of internal control system for blade pitch and electrical power. Note that the internal controller is not identical to the one specified during the NREL study. Specification external control system, CHCODE = EXTC, 3 input lines The input to SIMO for the external wind turbine control system requires the (path and) name of the executable .jar file, the class to be used within that .jar file, and the (path and) name of a file which may contain input data for the external control. For additional details regarding the interface, see Java Based Controller Interface. JarName ClassName Config 1 input line CH_CPL CH_CPL: character(8): Name of moment coupling (MOMENT1) 1 input line ROUT RCANG ROUT: real: Outer airfoil radius \(\mathrm {[L]}\) RCANG: real: Cone angle \(\mathrm {[deg]}\) 1 input line NB NEB NB: integer: Number of blades NEB: integer: Number of el. per blade NEB input lines CH_FOIL EL_LENG CHORD TWIST CH_FOIL: character(32): Airfoil identifier EL_LENG: real: Blade element length \(\mathrm {[L]}\) CHORD: real: Chord length of the foil profile \(\mathrm {[L]}\) TWIST: real: Twist angle \(\mathrm {[deg]}\) Figure 9. Principal sketch of the coupling system between rotor body and support body (nacelle) of a wind turbine system 28. Vertical axis wind turbine specification This data group enables the user to model a Vertical Axis Wind Turbine (VAWT), considering wind loads acting on the rigid blades and a control system for generator torque. In order to model a wind turbine a minimum of two bodies is required; one body to represent the blades, hub and the slow-speed shaft (the present rotor body) and one body to represent the support structure for the rotor. For application of the electrical torque moment a moment coupling between the bodies has to be included. It is assumed that the origin of the body fixed rotor coordinate system coincides with the hub centre with Z-axis aligned in the direction with the rotor (slow speed) shaft, i.e from the support to the hub. The wind loads on the blades are computed based on the load coefficient description in the airfoil library file together with a double-multiple streamtube blade element momentum method. The approach includes dynamic stall effects (Øye-type model). Requirements for vertical axis wind turbine modelling Support body and rotor (present) body with 6 degrees of freedom. Moment coupling attached to the rotor body in direction parallel with body fixed Z-axis, ie. moment around the Z-axis Recommendations for vertical axis wind turbine modelling The rotor body and the support body may be connected by use of 2 docking cone couplings to transfer radial forces. Each docking cone coupling has its contact point located in the rotor body Z-axis and its cone attached to the support body. A distance between the two contact points on the rotor axis is necessary in order to transfer moments about x- and y-axes. The orientation of the direction vector of the docking cones should be coincident with the rotor body Z-axis. 1 axial force coupling between the rotor body and the support body to transfer axial rotor force. The axial force coupling should be aligned with the rotor body Z-axis. Note that the applied electrical torque is handled by MOMENT COUPLING. Thus, no constant moment should be specified for the coupling. Any specified torsional stiffness will be set to zero during dynamic analysis. The coupling system between rotor body and support body of a vertical axis wind turbine system is the same as in Figure 9, but rotated by 90 degrees. 1 identification input line VERTical AXIS TURBine 1 input line DUMMY DUMMY: character(6): This line must contain the exact string "DUMMY" 1 input line CH_WITURB CH_WITURB: character(8): Wind turbine identifier 1 input line ZCOEF WIAREA ZCOEF: real: Ref. height for calc of wind WIAREA: real: Admittance function Note that ZCOEF and WIAREA are dummy for IWITYP>=10. File for control system specification. 1 input line CH_CONTROL CH_CONTROL: character(4): = INTC Internal control system For control system specification, see Specification of internal control system for VAWT generator torque and electrical power. 1 input line Note that the controller is not identical to the one specified during the NREL study. CONTROLFILE CONTROLFILE: character(256): Name including the path of the file that contains input to the internal control system 1 input line CH_CPL CH_CPL: character(8): Name of moment coupling (MOMENT1) 1 input line R0 Z0 VW_OFF R0: real: Blade radius at lowest node \(\mathrm {[L]}\) Z0: real: Elevation of the lowest node \(\mathrm {[L]}\) VW_OFF: real: Tangential offset of the first blade node \(\mathrm {[L]}\) R0, Z0 and VW_OFF (indicated as offset) are shown in Figure 10. 1 input line NB NEB NCOL NB: integer: Number of blades NEB: integer: Number of elements per blade NCOL: integer: Number of azimuthal elements Note that NEB must be at least 2. NEB input lines CH_FOIL NODE_R NODE_Z NODE_OFF CHORD TWIST CH_FOIL: character(32): Airfoil identifier NODE_R: real: Radius of the second node of the element \(\mathrm {[L]}\) NODE_Z: real: Elevation of the second node of the element \(\mathrm {[L]}\) NODE_OFF: real: Offset of the second node of the element from the \(\mathrm {(r,z)}\) plane \(\mathrm {[L]}\) CHORD: real: Chord length of the foil profile \(\mathrm {[L]}\) TWIST: real: Static twist angle \(\mathrm {[deg]}\) The node coordinates NODE_R and NODE_Z are denoted as \(\mathrm {(R,Z)_i}\) for element i in Figure 10. 1 input line PRAND PRAND: real, default: -1 (calculated by program): Prandtl factor. For PRAND greater than or equal to zero, the given Prandtl factor is applied to all elements. For PRAND less than zero or default, the Prandtl factor is calculated in the normal way by the program. It is recommended to set the factor to 1.0 when analyzing a Darrieus rotor. The Prandtl factor should be calculated by the program when analyzing an H-rotor. Figure 10. Vertical axis wind turbine geometrical input (side views of one blade) 29. Positioning system data 1 identification input line POSItioning SYSTem DATA Text describing the positioning system, 2 input lines. TXPOS TXPOS: character(60): Character string The positioning elements are divided into the following groups: Catenary anchor lines described by line properties. This is the recommended method to specify mooring lines. Line characteristics will be calculated within the program. Directly specified catenary anchor line characteristic. Horizontal and vertical components can be specified for different vertical positions of fairlead. Force-elongation relationship with fixed attack points. The force is directed between the end points. Docking cone, giving a radial force at offset from target. Force-elongation relationship with sliding attack points, fender. Thrusters. If the positioning system includes thrusters, they may be controlled by a dynamic positioning system (DP), which is specified separately. Catenary anchor lines 1 identifying input line CATEnary SYSTem DATA 1 identifying line if HLA export of catenary system is wanted HLA EXPOrt If HLA EXPOrt is specified the HLA name (identifier) of the catenary system has to be specified: 1 input line CHPHLA CHPHLA: character(120): Character string describing HLA catenary object name By catenary mooring system is meant all the catenary mooring lines connected to one body. A catenary mooring system is built from three data groups: LINE DATA LINE CHARACTERISTICS DATA BUOY DATA Each mooring line must be uniquely specified by a set of LINE DATA. Typical line data are fairlead coordinates, line direction, pre-tension and winch run length. Each line must refer to a line characteristics specified by LINE CHARacteristics DATA. The line characteristics (force-displacement relationship) may be given directly, or by the data needed by SIMO to calculate it. Such data may typically be segment properties (weight, stiffness, drag coefficients), vertical position of the anchor and bottom slope. Several lines within one catenary system may refer to the same line characteristics. If the line characteristics are to be calculated by SIMO, the user may include buoys in the intersection between line segments. The buoys may have depth dependent buoyancy, and are specified by the BUOY DATA. Several line characteristics may refer to the same buoy data. It is important that for one catenary system, the data are given in the correct order: the LINE DATA for all the lines the LINE CHARacteristics DATA the BUOY DATA. Line data 1 identifying input line LINE DATA 1 input line ILINE LICHAR IMETH IWIRUN ICPRO ILINE: integer: Line number. The line numbers must be given in increasing order. LICHAR: integer: Identification number for line characteristics data which shall be used for this line (confer data group LINE CHARacteristics DATA) IMETH: integer: Method for initialization of line = 1: Initial tension and local direction specified = 2: Distance to anchor and local direction specified = 3: Anchor coordinates (global) specified IWIRUN: integer: Parameter for winch running = 0: The winch is not run = 1: The winch may be run ICPRO: integer, default: 0: Calculate line profile to be exported for visualization = 0: Export line profile as a straight line = 1: Export catenary line profile 1 input line XBDY YBDY ZBDY XBDY: real: X-coordinate of attachment point in body fixed coordinate system, \(\mathrm {[L]}\) YBDY: real: Y-coordinate of attachment point in body fixed coordinate system, \(\mathrm {[L]}\) ZBDY: real: Z-coordinate of attachment point in body fixed coordinate system, \(\mathrm {[L]}\) for IMETH = 1, 1 input line DIR PRETEN XWINCH DIR: real: Direction of line in horizontal plane, \(\mathrm {[deg]}\) PRETEN: real: Pretension, \(\mathrm {[F]}\) XWINCH: real: default: 0: Run length of winch, \(\mathrm {[L]}\) for IMETH = 2, 1 input line DIR XHOR XWINCH DIR: real: Direction of line in horizontal plane, \(\mathrm {[deg]}\) XHOR: real: Horizontal distance from attachment point to anchor, \(\mathrm {[L]}\) XWINCH: real, default: 0: Run length of winch, \(\mathrm {[L]}\) for IMETH = 3, 1 input line XGLB YGLB XWINCH XGLB: real: X-coordinate of the anchor in global coordinate system, \(\mathrm {[L]}\) YGLB: real: Y-coordinate of the anchor in global coordinate system, \(\mathrm {[L]}\) XWINCH: real, default: 0: Run length of winch, \(\mathrm {[L]}\) Element failure, 1 input line IFMOPO FTIME BTENS IFMOPO: integer: Failure mode of positioning element = 0: no failure = 1: failure by exceedance of tension after specified time FTIME: real: Earliest possible time of failure, \(\mathrm {[T]}\) BTENS: real: Breaking strength, \(\mathrm {[F]}\) The line breaks when both FTIME and BTENS are exceeded. Line characteristics data 1 identifying input line LINE CHARacteristics DATA 1 input line LICHAR LINPTY NPTH NPTV VMIN VMAX LICHAR: integer: Line characteristics number. The characteristics number must be given in increasing order. LINPTY: integer: Parameter for input of line characteristics = 1: Direct input of line characteristics by the user = 2: Line segment data are given as input, and SIMO will compute the line characteristics, shooting method = 3: As 2, including a simplified line dynamics model. Allowed for body type = 2 only. = 4: Line segment data are given as input, and SIMO will compute the line characteristics based on Finite Element Model (FEM method). NPTH: integer, default: 40: Number of points in the line characteristics matrix, offset variation in the horizontal plane. NPTV: integer, default: 5: Number of points in the line characteristics matrix, offset variation in the vertical plane. VMIN: real ⇐ 0: Minimum relative z-position for which the line characteristics will be calculated. Dummy for LINPTY=1 VMAX: real >= 0: Maximum relative z-position for which the line characteristics will be calculated. Dummy for LINPTY=1 VEXTOP: integer, default: 0: Vertical extrapolation option. = 0: Vertical extrapolation outside the range VMIN to VMAX is NOT allowed = 1: Vertical extrapolation outside the range VMIN to VMAX is allowed Dummy for LINPTY=1 If VMAX is omitted, VMIN is taken as the vertical range, VRANGE (>0) where VMIN = -VRANGE/2 and VMAX =VRANGE/2 if LINPTY=1, NPTH input lines DISTH DISTH: real: Horizontal distance between attachment point on vessel and anchor, must be given in increasing order, \(\mathrm {[L]}\). if LINPTY=1, NPTV input lines DISTV DISTV: real: Vertical distance between attachment point on vessel and anchor, must be given in increasing order, \(\mathrm {[L]}\). DISTV = DEPTH +Z_fairlead where DEPTH is positive. NPTV*NPTH lines if LINPTY=1 (start with NPTH lines with IPTV = 1) IPTV IPTH STATEN ANG IPTV: integer: Vertical distance number. IPTH: integer: Horizontal distance number STATEN: real: Static tension in line, \(\mathrm {[F]}\) ANG: real: Angle relative to horizontal plane, \(\mathrm {[deg]}\) Figure 11. Catenary element parameters if LINPTY > 1, 1 input line NSEG IBOTCO SLOPE ZGLB TMAX THMIN NSEG: integer: Number of line segments IBOTCO: integer: Bottom tangent option = 0: No seafloor contact except at line end = 1: Seafloor contact included in the vicinity of the anchor line end SLOPE: real, default: 0: Slope of the seabed, SLOPE=0 means horizontal bottom slope. Positive SLOPE means that the seabed is sloping downwards from the anchor towards the attachment point. ZGLB: real: Z-coordinate of the anchor in global coordinate system, \(\mathrm {[L]}\) TMAX: real: Maximum tension to be used in the line characteristics calculations, \(\mathrm {[F]}\) THMIN: real, default: 0: Minimum horizontal tension to be used for calculation of line characteristics, \(\mathrm {[F]}\) If number of vertical levels in line characteristics, NPTV, is larger than 1, the characteristics for the lowest level is calculated first. TMAX and THMIN are used for this level. If THMIN is set to zero, the first point in the characteristics will be for a tension as low as possible for the algorithm. For the other vertical levels, the characteristics are calculated for the same horizontal distances XHOR as for the lowest level. (XHOR=horizontal distance between fairlead and anchor). if LINPTY > 1, NSEG input lines ISEG IELTYP NEL IBUOY SLENG FRIC NEA ITYNEA ICATSTIF NEA_OW NEA_O ISEG: integer: Local segment number IELTYP: integer: Segment type = 0: Catenary segment = 1: Rigid segment (infinite bending- and axial stiffness) NEL: integer: Number of elements. For fibre rope segments (ICATSTIF=3), NEL must be 2 or higher, and the average tension over the elements in a segment (see note below) is used to compute the intersection between the working curve used in static analysis and the linear tension-strain curve used in dynamic analysis. For other axial stiffness types (not fibre rope), the elements are only used for visualization. IBUOY: integer: Buoy in end 1 of the segment, which is the end closest to the anchor = 0: No buoy in end 1 > 0: Buoy number IBUOY in end 1, referring to buoy in data group BUOY SLENG: real: Length of the segment, \(\mathrm {[L]}\) FRIC: real: Friction coefficient between line and sea bottom NEA: integer, default: 0: If ICATSTIF=2, NEA is number of points in non-linear tension-strain curve. If ICATSTIF=3, NEA is number of points in fibre rope working curve. ITYNEA: integer: = 1: Stress-strain curve with NEA points is given = 2: Tension-strain curve with NEA points is given When ICATSTIF=3, ITYNEA=2 is mandatory ICATSTIF: integer, default: 1 (if NEA=0), 2 (if NEA>0): = 1: Linear tension-strain relationship is determined by EMOD, EMFAC and DIA = 2: Non-linear tension-strain curve with NEA points is given = 3: Fibre rope model NEA_OW: integer, default: 0: Number of points in fibre rope original working curve. Dummy if ICATSTIF is not 3. NEA_O: integer, default: 0: Number of points in fibre rope original curve. This curve is presently not used and NEA_O should be set to 0. The segment numbers must be given in increasing order and the first segment is at the anchor. Note that NEL must at least 2 for fibre rope segments. This is because the tension is extracted at the top end of each element. The last element of each segment is therefore excluded from the averaging over elements to avoid bias towards the top of the segment. if LINPTY > 1, NSEG blocks of input lines First line in block: ISEG DIA EMOD EMFACT UWIA WATFAC CDN CDL ISEG: integer: Local segment number DIA: real: Segment diameter, \(\mathrm {[L]}\) EMOD: real: Modulus of elasticity \(\mathrm {[F/L^2]}\). Dummy when IELTYP=1 EMFAC: real: Factor of elasticity = 2: Chain = 1: Other segment types UWIA: real: Unit weight in air, \(\mathrm {[F/L]}\) WATFAC: real: The ratio of weight in water to weight in air Normally 0.81 for steel wire rope and 0.87 for chain CDN: real: Transverse drag coefficient of the line CDL: real: Longitudinal drag coefficient of the line Total stiffness, EA = EMOD * EMFAC * DIA**2 * \(\mathrm {\pi }\)/4. For the case where the simplified line dynamic model is used (LINPTY = 3) the (linear) EMOD is used as modulus of elasticity in the dynamic model. CDN and CDL are used in the line dynamics computation only. Drag force/length = 0.5 * RHOW * DIA * CDN * VN\(\mathrm {^2\quad }\) Transverse Drag force/length = 0.5 * RHOW * DIA * CDL * VL\(\mathrm {^2\quad }\) Longitudinal where VN and VL are transverse and longitudinal velocity components. IF ICATSTIF = 2, continue block, NEA input lines for stress-strain or tension-strain curve STRESS/TENSION STRAIN STRESS/ TENSION: real: Stress or tension in segment STRAIN: real: Corresponding relative elongation of segment The first point has to be (0., 0.). If ITYNEA=2, the tension will be calcualated with TENSION = STRESS * EMFAC * DIA**2 * \(\mathrm {\pi }\)/4 IF ICATSTIF = 3, continue block, 1 input line DSCA DSCB TMAX_HIST DSCA: real: Parameter in dynamic stiffness \(\mathrm {[F]}\) DSCB: real: Parameter in dynamic stiffness \(\mathrm {[-]}\) TMAX_HIST: real: Historic tension \(\mathrm {[F]}\) The dynamic axial stiffness is calculated with EA = DSCA + DSCB * TMEAN where TMEAN is the static tension in the segment IF ICATSTIF = 3, continue block, NEA input lines for working curve TENSION_W STRAIN_W TENSION_W: real: Tension in segment STRAIN_W: real: Corresponding relative elongation of segment The first point has to be (0., 0.). IF ICATSTIF = 3, continue block, NEA_OW input lines for original working curve TENSION_OW STRAIN_OW TENSION_OW: real: Tension in segment STRAIN_OW: real: Corresponding relative elongation of segment The first point has to be (0., 0.). IF ICATSTIF = 3, continue block, NEA_O input lines for original curve TENSION_O STRAIN_O TENSION_O: real: Tension in segment STRAIN_O: real: Corresponding relative elongation of segment Note that the original curve is presently dummy input The first point has to be (0., 0.). Buoy data 1 identifying input line BUOY DATA 1 input line IBUOY NFZ IBUOY: integer: Buoy number. IBUOY must be given from 1 to NBUOY in increasing order NFZ: integer: Number of points in the force vs. vertical position table NFZ input lines ZBUOY FBUOY ZBUOY(i): real: i’th vertical position in the force vs. vertical position table, \(\mathrm {[L]}\) For NFZ=1, ZBUOY is dummy, but must be given FBUOY(i): real: Corresponding vertical force, positive upwards, \(\mathrm {[F]}\) Vertical Z-axis is positive upwards. ZBUOY(i) = 0.0 means still water plane. ZBUOY(i+1) < ZBUOY(i). The buoy may first be specified in air by a positive z-value, and at last be specified fully submerged by a negative z-value. Force elongation with fixed attack points 1 identifying input line FIXEd FORCe ELONgation 1 input line NPT IMETH EXP PRETEN DIR ANG INTPOM VEMIFI EHLA NPT: integer: Number of points in characteristics IMETH: integer: Method for initialisation of positioning element = 1: Pretension and local direction = 2: Pretension and global direction = 3: Coordinates of both end points = 5: "Constant tension winch", coordinates of both end points are given. Maximum and minimum tension specified in the characteristic will not be exceeded. EXP: real, default: 1: Exponent of vel. in damping term PRETEN: real: Pretension, \(\mathrm {[F]}\) Dummy for IMETH = 3 and 5 DIR: real: Direction of line in horizontal plane, \(\mathrm {[deg]}\) Dummy for IMETH = 3 and 5 ANG: real: Angle of line from horizontal plane (positive downwards), \(\mathrm {[deg]}\) Dummy for IMETH = 3 and 5 INTPOM: integer, default: 1: Interpolation method = 1, 2, 3 or 4 =1: Linear force, linear damping. =2: Linear force, parabolic damping. =3: Parabolic force, linear damping. =4: Parabolic force, parabolic damping. VEMIFI: real, default: 0: Velocity limit for friction force (EXP = 0) See below. EHLA: integer, default: 0: HLA export flag for positioning element EHLA = 0: No export EHLA = 1: HLA export Small velocities and EXP=0.0 will result in problems in finding equilibrium position because the friction force (which may be relatively large) suddenly can change sign. To avoid this problem SIMO uses EXP=1 when Abs(Vel.) < VEMIFI and EXP<1. The damping force curve is continuous at Vel=VEMIFI. If EHLA = 1, a HLA name of force-elongation object has to specified, 1 input line CHPHLA CHPHLA: character(120): Character string for HLA force-elongation object name 1 input line XBDY YBDY ZBDY XGLB YGLB ZGLB XBDY: real: X-coordinate of attack point in body fixed coordinate system, \(\mathrm {[L]}\) YBDY: real: Y-coordinate of attack point in body fixed coordinate system, \(\mathrm {[L]}\) ZBDY: real: Z-coordinate of attack point in body fixed coordinate system, \(\mathrm {[L]}\) XGLB: real: X-coordinate of end point in global coordinate system, \(\mathrm {[L]}\) Dummy for IMETH=1 and IMETH=2 YGLB: real: Y-coordinate of end point in global coordinate system, \(\mathrm {[L]}\) Dummy for IMETH=1 and IMETH=2 ZGLB: real: Z-coordinate of end point in global coordinate system, \(\mathrm {[L]}\) Dummy for IMETH=1 and IMETH=2 NPT input lines. DIST FORCE DAMP DIST: real: Distance between end points, \(\mathrm {[L]}\) FORCE: real: Force in element, positive values signify attracting the body towards the element, \(\mathrm {[F]}\) DAMP: real: Damping coefficient, \([F(T/L)^{\mathrm {EXP}}]\) Distances have to be given in increasing order and can not be negative. Element failure, 1 input line IFMOPO FTIME BTENS IFMOPO: integer: Failure mode of positioning element = 0: No failure = 1: Failure by exceeding the breaking strength after specified time. = 2: Activation of positioning element after specified time if absolute value of force is below limit. FTIME: real: Earliest possible time of failure (IFMOPO = 1) or earliest activation time (IFMOPO = 2), \(\mathrm {[T]}\). BTENS: real: Breaking strength (IFMOPO = 1) or maximum force for activation of positioning element (IFMOPO = 2), \(\mathrm {[F]}\) For IFMOPO = 1, the element breaks when both FTIME and BTENS are exceeded. For IFMOPO = 2, the element is activated when FTIME is exceeded and force is below BTENS. Docking cone positioning 1 identifying input line DOCKing CONE POSItioning 1 input line NPT EXP INTPOM VEMIFI EHLA NPT: integer: Number of points in characteristics EXP: real, default: 1: Exponent of vel. in damping term INTPOM: integer, default: 1: Interpolation method = 1, 2, 3 or 4 =1: Linear force, linear damping. =2: Linear force, parabolic damping. =3: Parabolic force, linear damping. =4: Parabolic force, parabolic damping. VEMIFI: real, default: 0: Velocity limit for friction force (EXP = 0) See below. EHLA: integer, default: 0: HLA export flag for positioning element EHLA = 0: No export EHLA = 1: HLA export Small velocities and EXP=0 will result in problems in finding equilibrium position because the friction force (which may be relatively large) suddenly can change sign. To avoid this problem SIMO uses EXP=1 when Abs(Vel.) < VEMIFI and EXP<1. The damping force (EXP=1) for Vel=VEMIFI is equal to Damping force (EXP=as given). If EHLA = 1, a HLA name of force-elongation object has to be specified 1 input line CHPHLA CHPHLA: character(120): Character string for HLA force-elongation object name 1 input line NAXPTS NAXPTS: integer: Number of axial points with given force characteristics 1 input line RADMAX FRIC RADMAX: real: Maximum radial distance at entry FRIC: real, default: 0: Friction coefficient 1 input line XBDY YBDY ZBDY XGLB YGLB ZGLB XBDY: real: X-coordinate of attack point in body fixed coordinate system, \(\mathrm {[L]}\) YBDY: real: Y-coordinate of attack point in body fixed coordinate system, \(\mathrm {[L]}\) ZBDY: real: Z-coordinate of attack point in body fixed coordinate system, \(\mathrm {[L]}\) XGLB: real: X-coordinate of end point (center of cone opening) in global coordinate system, \(\mathrm {[L]}\) YGLB: real: Y-coordinate of end point in global coordinate system, \(\mathrm {[L]}\) ZGLB: real: Z-coordinate of end point in global coordinate system, \(\mathrm {[L]}\) 1 input line DV1 DV2 DV3 DV1: real, default: 0: Direction vector, x-component DV2: real, default: 0: Direction vector, y-component DV3: real, default: -1: Direction vector, z-component The direction vector of the guide axis is defined in global coordinate system (direction from end of cylinder and inwards). It will be normalised in the input module. NAXPTS input lines IAXPT AXPT IAXPT: integer: Axial point number AXPT: real: Axial point, axial distance from end, \(\mathrm {[L]}\) NAXPT * NPT input lines. DIST FORCE DAMP DIST: real: Radial distance (transverse offset), \(\mathrm {[L]}\) FORCE: real: Force in element, positive forces are attractive, \(\mathrm {[F]}\) DAMP: real: Damping coefficient, \([F(T/L)^{\mathrm {EXP}}]\) Distances should be increasing and can not be negative, and each characteristic must have the same number of distances. Force characteristics for each axial point, starting with point 1. At least one force value must be zero. Element failure, 1 input line IFMOPO FTIME BTENS IFMOPO: integer: Failure mode of positioning element = 0: No failure = 1: Failure by exceeding the breaking strength after specified time. = 2: Activation of positioning element after specified time if absolute value of force is below limit. FTIME: real: Earliest possible time of failure (IFMOPO = 1) or earliest activation time (IFMOPO = 2), \(\mathrm {[T]}\). BTENS: real: Breaking strength (IFMOPO = 1) or maximum force for activation of positioning element (IFMOPO = 2), \(\mathrm {[F]}\) For IFMOPO = 1, the element breaks when both FTIME and BTENS are exceeded. For IFMOPO = 2, the element is activated when FTIME is exceeded and force is below BTENS. Figure 12. Example of docking device fixed to earth Fender 1 identifying line BERThing FENDer DATA 1 input line NPT IFRIC DYNFRIC STAFRIC STIFFRIC EXP IFIX INTPO VEMIN EHLA NPT: integer: Number of points in fender characteristics IFRIC: integer: Fender model = 1: Fender point = 2: Fender roller (frictionless in one direction) DYNFRIC: real: Friction coefficient, sliding STAFRIC: real: Friction coefficient, when not sliding (stiction) STIFFRIC: real: Shear stiffness associated with friction \(\mathrm {[F/L]}\) EXP: real: Exponent of velocity in damping term for compressive force IFIX: integer, default: 0: Fender attachment = 0: Globally fixed point = 1: Body INTPO: integer, default: 1: Interpolation method = 1,2,3 or 4 =1: Linear force, linear damping. =2: Linear force, parabolic damping. =3: Parabolic force, linear damping. =4: Parabolic force, parabolic damping. VEMIN: real, default: 0: Velocity limit for normal friction force (EXP=0) EHLA: integer, default: 0: HLA export flag for fender EHLA = 0: No export EHLA = 1: HLA export Small velocities and EXP=0 can result in a large normal friction force that suddenly changes sign. To avoid this, the value EXP=1 is used when ABS(vel.) < VEMIN and EXP<1. If EHLA = 1, a HLA name of fender object has to be specified 1 input line CHPHLA CHPHLA: character(120): Character string describing HLA fender object name Figure 13. Illustration of fender attachments Figure 14. Example of friction force (here with constant normal force, AFORCE) Contact point,1 input line XF YF ZF XF: real: X-coordinate of fender attachment point, \(\mathrm {[L]}\) YF: real: Y-coordinate of fender attachment point, \(\mathrm {[L]}\) ZF: real: Z-coordinate of fender attachment point, \(\mathrm {[L]}\) Global coordinates if fender is attached to a globally fixed point (IFIX = 0). Local body coordinates if fender is attached to the body (IFIX = 1). Definition of fender plane and roller axis, 1 input line XP YP ZP XN YN ZN XA YA ZA XP: real: X-coordinate of point in the fender plane \(\mathrm {[L]}\) YP: real: Y- coordinate of point in the fender plane \(\mathrm {[L]}\) ZP: real: Z- coordinate of point in the fender plane \(\mathrm {[L]}\) XN: real: X-comp. of vector normal to surface \(\mathrm {[L]}\) YN: real: Y-comp. of vector normal to surface \(\mathrm {[L]}\) ZN: real: Z-comp. of vector normal to surface \(\mathrm {[L]}\) XA: real: X-comp. of vector parallel to rotation axis \(\mathrm {[L]}\) Dummy for IFRIC = 1 YA: real: Y-comp. of vector parallel to rotation axis \(\mathrm {[L]}\) Dummy for IFRIC = 1 ZA: real: Z-comp. of vector parallel to rotation axis \(\mathrm {[L]}\) Dummy for IFRIC = 1 Local body coordinates if fender is attached to a globally fixed point (IFIX = 0) Global coordinates if fender is attached to the body (IFIX = 1) For definition of fender plane dimensions, see the figure `Illustration of fender plane dimensions' below. May be omitted in case of an unlimited fender plane is modeled, 1 input line DV1X DV1Y DV1Z RL1 RL2 Vector defining direction no. 1 of fender plane: - DV1X: real: X-component of vector defining direction no. 1 - DV1Y: real: Y-component of vector defining direction no. 1 - DV1Z: real: Z-component of vector defining direction no. 1 - RL1: real: Dimension of fender plane in direction 1 - RL2: real: Dimension of fender plane in direction 2 Global coordinates are used if the fender plane is earth-fixed Local body coordinates are used if the fender plane is on a body. It is assumed that \{XP,YP,ZP} is the centre point of the plane. NPT input lines DIST AFORCE DAMP DIST: real: Distance from fender point to fender plane \(\mathrm {[L]}\) AFORCE: real: Axial fender force, normal to surface \(\mathrm {[F]}\) DAMP: real: Damping coefficient \([F(T/L)^{\mathrm {EXP}}]\) The characteristics can be given for monotonic increasing or decreasing distances, DIST. Point fender: All DIST ⇐ 0 Spherical fender: The largest distance in the characteristics must be positive (>0). This distance is the radius of the sphere around the fender point. AFORCE = 0 at the largest distance Compression force and damping are given as positive numbers. Figure 15. Illustration of fender models Figure 16. Illustration of fender plane dimensions Bumper element data 1 identifying line BUMPer DATA 1 input line NPT INTPOM VEMIN EXPD EHLA NPT: integer: Number of points in bumper force characteristics INTPOM: integer, default: 1: Interpolation method = 1,2,3 or 4 =1: Linear force, linear damping. =2: Linear force, parabolic damping. =3: Parabolic force, linear damping. =4: Parabolic force, parabolic damping. VEMIN: real, default: 0: Velocity limit for damping force (EXPD=0) EXPD: real: Exponent in damping formula EHLA: integer, default: 0: HLA export flag for bumper EHLA = 0: No export EHLA = 1: HLA export Small velocities and EXPD=0 can result in a large damping force that suddenly changes sign. To avoid this the value EXPD=1 is used when Abs(vel.) < VEMIN and EXPD < 1. If EHLA = 1, a HLA name of bumper object has to be specified 1 input line CHPHLA CHPHLA: character(120): Character string describing HLA bumper object name Coordinate of bumper line attached to the body, 1 input line. XB1 YB1 ZB1 XB2 YB2 ZB2 XB1: real: X-coordinate of bumper end 1, \(\mathrm {[L]}\) YB1: real: Y-coordinate of bumper end 1, \(\mathrm {[L]}\) ZB1: real: Z-coordinate of bumper end 1, \(\mathrm {[L]}\) XB2: real: X-coordinate of bumper end 2, \(\mathrm {[L]}\) YB2: real: Y-coordinate of bumper end 2, \(\mathrm {[L]}\) ZB2: real: Z-coordinate of bumper end 2, \(\mathrm {[L]}\) Local body coordinates Coordinate of globally fixed bumper line, 1 input line. XG1 YG1 ZG1 XG2 YG2 ZG2 XG1: real: X-coordinate of bumper end 1, \(\mathrm {[L]}\) YG1: real: Y-coordinate of bumper end 1, \(\mathrm {[L]}\) ZG1: real: Z-coordinate of bumper end 1, \(\mathrm {[L]}\) XG2: real: X-coordinate of bumper end 2, \(\mathrm {[L]}\) YG2: real: Y-coordinate of bumper end 2, \(\mathrm {[L]}\) ZG2: real: Z-coordinate of bumper end 2, \(\mathrm {[L]}\) Global coordinates Contact force characteristics, NPT input lines DIST AFORCE DAMP DIST: real: Distance between bumper centrelines \(\mathrm {[L]}\) AFORCE: real: Bumper force, normal to elements \(\mathrm {[F]}\) DAMP: real: Damping coefficient \([F(T/L)^{\mathrm {EXP}}]\) The characteristics can be given for increasing or decreasing distances, DIST. Compression force and damping are given as positive numbers. Thrusters (Deprecated model) This thruster model is deprecated. It will not be available anymore in the next release versions. This thruster model cannot be used on the same body together with the thruster model documented in the next section (Thruster system). 1 input line THRUster DATA 1 input line ITRTYP NDIR NZON ITRTYP: integer: Thruster type = 1: Fixed, conventional = 2: Fixed, ducted = 3: Fixed, tunnel = 4: Rotatable, conventional = 5: Rotatable, ducted = 6: Open main propeller = 7: Ducted main propeller NDIR: integer: Number of directions for which directional dependency is specified Dummy for ITRTYP=1,2,3,6,7 NZON: integer: Number of sectors with forbidden zones Dummy for ITRTYP=1,2,3,6,7 Directions are given as direction of thrust force acting on the body. Thruster types 1, 2 and 3 are equal and thruster types 4 and 5 are equal. 1 input line XTHR YTHR ZTHR DIRTHR FORCE FACALL EHLA XTHR: real: X-coordinate of thruster in body coordinate system, \(\mathrm {[L]}\) YTHR: real: Y-coordinate of thruster in body coordinate system, \(\mathrm {[L]}\) ZTHR: real: Z-coordinate of thruster in body coordinate system, \(\mathrm {[L]}\) DIRTHR: real: Direction of thrust force in body x-y plane, initial value if controlled by a DP-system, \(\mathrm {[deg]}\) FORCE: real: Resulting force, initial value if controlled by a DP-system, \(\mathrm {[F]}\) FACALL: real, default: 1: Factor in weight function for thruster allocation, dummy if not controlled by a DP-system EHLA: integer, default: 0: HLA export flag for thruster force EHLA = 0: No export EHLA = 1: HLA export If EHLA = 1, a HLA name of thruster object has to be specified. 1 input line CHTHLA CHTHLA: character(120): Character string describing HLA thruster object name 1 input line TMIMA DBAND ANGL ANGH TMIMA: real: Minimum time to change from minimum to maximum thrust, \(\mathrm {[T]}\) DBAND: real, default: .01: Relative dead band, minimum change of force relative to total range, \(\mathrm {[F]}\) ANGL: real, default: 0: Minimum change in direction of thrusters force, \(\mathrm {[deg]}\) Dummy for ITRTYP=1,2,3 ANGH: real, default: 10: Maximum revolving speed of rotatable thrusters, \(\mathrm {[deg}/T]\) Dummy for ITRTYP=1,2,3,6,7 1 input line FMIN FMAX DIAM KTNEG KTPOS FMIN: real: Minimum thruster force, \(\mathrm {[F]}\) FMAX: real: Maximum thruster force, \(\mathrm {[F]}\) DIAM: real, default: 1: For ITRTYP = 6 and 7 only. Thruster diameter, \(\mathrm {[L]}\) KTNEG: real, default: 0: Thrust coefficient (KT) for negative thruster rotation KTPOS: real, default: 0: Thrust coefficient (KT) for positive thruster rotation The Thruster diameter must be > 0. KTNEG and KTPOS are not presently used. 1 input line If ITRTYP = 6, 7 RUCOEF RUMAX RUCOEF: real: Rudder coefficient, \(\mathrm {[1/deg]}\) RUMAX: real: Maximum rudder angle, \(\mathrm {[deg]}\) RUMAX > 0. The angle of the rudder force (\(\mathrm {\alpha _f}\)) is calculated as \(\mathrm {\alpha _f=\sin{\alpha _r}/}\) RUCOEF, where \(\mathrm {\alpha _r}\) is the rudder angle. 1 input line if ITRTYP = 1,2,3 FACT FACT: real, default: 1: Thrust reduction factor The resulting force from a dynamically controlled thruster is between FMINFACT and FMAXFACT NDIR input lines if ITRTYP = 4,5 DIR FACT DANG DIR: real: Direction of propeller axis in body coordinate system, \(\mathrm {[deg]}\) FACT: real, default: 1: Thruster reduction factor DANG: real, default: 0: Dummy parameter. (Direction of thrust relative to propeller axis), \(\mathrm {[deg]}\) FACT will be interpolated between the specified DIR. The resulting force from a dynamically controlled thruster is between FMINFACT and FMAXFACT DANG is not implemented and is a dummy parameter NZON input lines if ITRTYP = 4,5 ZON1 ZON2 ZON1: real: Start of forbidden zone of thrust force, \(\mathrm {[deg]}\) ZON2: real: End of forbidden zone of thrust force, \(\mathrm {[deg]}\) ZON1<`ZON2`, allowed zone range is (-360.,360.) Zones are related to force direction ZON2 > ZON1 ⇒ the zone (330 : 45) must be given as ( -30 : 45) Thruster failure, 1 input line IFMOTH FTIME IFMOTH: integer: Failure mode = 0: no failure = 1: thruster blackout after specified time FTIME: real: Time for thruster failure if IFMOTH = 1 Thruster system THRUster SYSTem DATA NAME & TYPE, 1 input line CTHRST ITRTYP EHLA SEQSIZE CTHRST: character(8): Thruster identifier ITRTYP: integer: Thruster type = 1: Fixed, conventional = 2: Fixed, ducted = 3: Fixed, tunnel = 4: Rotatable, conventional = 5: Rotatable, ducted = 6: Open main propeller = 7: Ducted main propeller EHLA: integer, default: 0: HLA export flag for thruster force EHLA = 0: No export EHLA = 1: HLA export SEQSIZE: integer, default: 0: Number of items in thruster control sequence SIMO makes no distinction between ducted and open thrusters. Hence, specifying the thruster type to be 1 or 2 is identical. If EHLA = 1, a HLA name of thruster object has to be specified. 1 input line CHTHLA CHTHLA: character(120): Character string describing HLA thruster object name Coordinates of thruster attachment given in body system, input line XTHR YTHR ZTHR XTHR: real: X-coordinate of thruster in body coordinate system, \(\mathrm {[L]}\) YTHR: real: Y-coordinate of thruster in body coordinate system, \(\mathrm {[L]}\) ZTHR: real: Z-coordinate of thruster in body coordinate system, \(\mathrm {[L]}\) Thruster diameter, thrust and direction, 1 input line DIAM THRUST DIRTHR DIAM: real: Thruster diameter, \(\mathrm {[L]}\) THRUST: real: Thrust1, \(\mathrm {[F]}\) DIRTHR: real: Direction1 of thrust body x-y plane \(\mathrm {[deg]}\) Initial values if thruster is controlled by a DP-system DIAM should be greater than 0.01 Properties, 1 input line FMIN FMAX TRISE TCTHR FMIN: real: Minimum thrust, \(\mathrm {[F]}\) FMAX: real: Maximum thrust force, \(\mathrm {[F]}\) TRISE: real: Minimum rise time of thrust from 10% to 90% of maximum thrust, \(\mathrm {[T]}\) TCTHR: real: Time constant of thruster servo controller, \(\mathrm {[T]}\) TCTHR should be positive. TCTHR is used to determine the proportional gain of the controller that is used to minimize the error in thruster rotational speed. See the Theory Manual (Thruster control, speed control) for the determination of servo controller coefficients based on FMAX, TRISE, and TCTHR. Extra properties for azimuth thruster, i.e. ITRTYP=4 or 5, 1 input line ANGVMAX TCAZ ANGVMAX: real: Maximum turning speed of azimuth thruster, \(\mathrm {[deg}/T]\) TCAZ: real: Time constant of azimuth change, \(\mathrm {[T]}\) Property modifications, 1 input line CTFWD CQFWD CTREV CQREV CTFWD: real, default: 1: Modification factor for forward thrust CQFWD: real, default: 1: Modification factor for forward torque CTREV: real, default: 1: Modification factor for reverse thrust CQREV: real, default: 1: Modification factor for revers torque Option for thrust coefficient model, 1 input line ITMOD ITMOD: integer: = 0: Use internal generic model for thrust coefficient KT and torque coefficient KQ See figure showing built-in coefficients in the Theory Manual = 1: Coefficients of thrust and torque given for the forward direction (reverse thrust and torque obtained by using reduction factor) = 2: Coefficients of thrust and torque given separately for forward and reverse direction ITMOD=0, Pitch-diameter ratio, 1 input line PDRAT PDRAT: real, default: 1: Pitch-diameter ratio P/D ITMOD=1 or 2, Thrust and torque coefficients for forward direction, number of points in table: 1 input lines NKFWD NKFWD: integer: Number of points in functions KTFWD and KQFWD ITMOD=1 or 2, Thrust and torque coefficients for forward direction, NKFWD input lines JFWD(i), KTFWD(i), KQFWD(i) JFWD (i): real: Advance ratio (number i) KTFWD (i): real: Thrust coefficient (number i) KQFWD(i): real: Torque coefficient (number i) ITMOD=2, Thrust and torque coefficients for reversed direction: 1 input line NKREV NKREV: integer: Number of points in functions KTREV and KQREV ITMOD=2, Thrust and torque coefficients for reversed direction, NKREV input lines JREV (i), KTREV(i), KQREV(i) JREV (i): real: Advance ratio value (number i) KTREV (i): real: Thrust coefficient (number i) KQREV(i): real: Torque coefficient (number i) Option for thrust loss, 1 input line ILOSS ILOSS: integer: ILOSS = 0: No loss effects are included ILOSS = 1: Surface proximity loss is included If ILOSS=1: 3 input lines NSPL NSPL: integer: Number of entries in table for surface proximity loss ZD (1), ZD(2), .... , ZD(NSPL) ZD(1): real: First Z/D value in reduction factor table ZD(2): real: Second Z/D value in reduction factor table …: real: ZD(NSPL): real: Last Z/D value in reduction factor table CSPL(1), CSPL(2), .... , CSPL(NSPL) CSPL(1): real: First value of reduction factor CSPL(2): real: Second value of reduction factor …: real: CSPL (NSPL): real: Last value of reduction factor Notes: The values of CSPL outside the range of the data table provided by the user are extrapolated by using the end (or start) value of the table. Therefore it is strongly recommended to start the table by the submergence for which CSPL=1, in order to get CSPL=1 when the thruster is submerged and "does not feel" the surface. The values of CSPL inside the range of the data table provided by the user are interpolated linearly. For a submerged thruster, Z/D<0. For a thruster in the air, Z/D>0. CSPL=1 means no thrust loss (i.e. the thruster works properly). CSPL=0 means 100% thrust loss (i.e. the thruster does not provide any thrust). The array ZD should be monotonic. CSPL should always be positive (or zero) Additional loss effects for azimuth thrusters, ITRTYP=4 or 5, Number of directions for direction dependent thrust reduction factors, 1 input lines NDIR NDIR: integer: Number of directions for which directional dependency is specified ITRTYP=4 or 5, Direction dependent thrust reduction factors, NDIR input lines DIR FACT DIR: real: Direction of propeller axis in body coordinate system, \(\mathrm {[deg]}\) FACT: real, default: 1: Thrust reduction factor FACT will be interpolated between the specified DIR. The resulting force from a dynamically controlled thruster is between FMINFACT and FMAXFACT. ITRTYP = 6, 7, Rudder data, 1 input line RUCOEF RUMAX RUCOEF: real: Rudder coefficient, \(\mathrm {[1/deg]}\) RUMAX: real > 0: Maximum rudder angle, \(\mathrm {[deg]}\) The angle of the rudder force (\(\mathrm {\alpha _f}\)) is calculated as \(\mathrm {\alpha _f=\sin{\alpha _r}/}\) RUCOEF, where \(\mathrm {\alpha _r}\) is the rudder angle. Thruster control sequence Thrust signal type, 1 input line if SEQSIZE > 0 SIGTYPE SIGTYPE: character: Specifies unit for demanded thrust = FORCE: Demanded thrust force is given \(\mathrm {[F]}\) = ROTATION: Demanded thruster rotations per time unit is given \(\mathrm {[1/T]}\) Control sequence items, SEQSIZE input lines TIME THRUST DIRECTION ACCEPT TIME: real: Time to start applying sequence item \(\mathrm {[T]}\) THRUST: real: Demanded thrust. Unit depends on SIGTYPE DIRECTION: real: Demanded thrust force direction. Dummy if thruster is not rotatable \(\mathrm {[deg]}\) ACCEPT: integer: Flag for accepting signals from DP system = 0: Demanded thrust and direction will override any demand from the DP system = 1: Any demand from DP system will be accepted (THRUST and DIRECTION is dummy) Thruster failure, 1 input line if CONTrol SEQUence INPUt is not given IFMOTH FTIME IFMOTH: integer: Failure mode = 0: no failure = 1: thruster blackout after specified time FTIME: real: Time for thruster failure if IFMOTH = 1 Lift and drag force The intention of this option is, in a simplified way, to model the drag and lift forces for instance on a rudder as response to main propeller actions. The lifting surface is described by a local "surface" plane. The location is defined by a point P1 and the rotation axis, both defined in the body fixed coordinate system as illustrated in the figure below. A "surface" coordinate system is defined, with the z-axis along the rotation axis and the surface located in the xz-plane. To avoid confusion, it is recommended to use a "surface coordinate system" with approximately the same orientation as the local body coordinate system. Figure 17. Lifting surface coordinate system 1 identification input line LIFT AND DRAG force Lifting surface identifier, 1 input line LIFT_NAME LIFT_NAME: character(32): Lifting surface identifier (name) Lifting surface position referred in body fixed system, 1 input line XP1 YP1 ZP1 XP1: real: X-coordinate of point P1 \(\mathrm {[L]}\) YP1: real: Y-coordinate of point P1 \(\mathrm {[L]}\) ZP1: real: Z-coordinate of point P1 \(\mathrm {[L]}\) Lifting surface orientation referred in body fixed system, 1 input line DVZ1 DVZ2 DVZ3 DVXZ1 DVXZ2 DVXZ3 Direction vector parallel with the lift surface Zs -axis (rotation axis) DVZ1: real: X-component \(\mathrm {[L]}\) DVZ2: real: Y-component \(\mathrm {[L]}\) DVZ3: real: Z-component \(\mathrm {[L]}\) Vector in lift surface XZ plane for zero rotation around Zs DVXZ1: real: X-component \(\mathrm {[L]}\) DVXZ2: real: Y-component \(\mathrm {[L]}\) DVXZ3: real: Z-component \(\mathrm {[L]}\) Lifting surface dimensions and initial rotation angle around Zs, 1 input line XDIM ZDIM ANGLSU XDIM: real: Dimension in Xs direction \(\mathrm {[L]}\) ZDIM: real: Dimension in Zs direction \(\mathrm {[L]}\) ANGLSU: real: Initial lifting surface angle \(\mathrm {[deg]}\) Lift surface rotational properties, 1 input line ANGMAX RATE IHLA ANGMAX: real: Maximum rotation angle around ZS, absolute value \(\mathrm {[deg]}\) RATE: real: Maximum rotational velocity, absolute valute \(\mathrm {[deg}/T]\) IHLA: integer: = 0: No control from HLA = 1: angle adjustable from HLA If IHLA = 1, HLA name of lifting surface object, 1 input line CHTHLA CHTHLA: character(120): Character string describing HLA object name 1 input line ITHR CURFAC VESFAC THRFAC ITHR: integer: The number ID of the thruster associated with the lifting surface The thruster has to be type 6 or 7, '0' means that the rudder will give zero force CURFAC: real: Factor that current velocity is multiplied with VESFAC: real: Factor that vessel velocity is multiplied with THRFAC: real: Factor that thruster induced vel. is multiplied with 1 input line NPLIFT INTPOM ISYM ZDRAG NPLIFT: integer: Number of points in force characteristics INTPOM: integer: Interpolation method = 1: Linear interpolation = 2: Spline interpolation ISYM: integer: Symmetry code = 0: No symmetry = 1: Symmetry about x-axis ZDRAG: real: Quadratic force coeff. in rudder z-dir. \(\mathrm {[F(T/L)^2]}\) Force characteristics, NPLIFT input lines BETA FX FY ZMOM BETA: real: Velocity direction relative to rudder x-axis FX: real: Quadratic force coeff. in rudder x-dir. \(\mathrm {[F(T/L)^2]}\) FY: real: Quadratic force coeff. in rudder y-dir. \(\mathrm {[F(T/L)^2]}\) ZMOM: real: Quadratic moment coeff. about rudder z-axis \(\mathrm {[F*T*T/L]}\) Lifting surface forces are computed based on the current, vessel, and thruster induced velocities (multiplied by the factors CURFAC, VESFAC, and THRFAC). Orbital wave velocities are not included. Thruster from Propulsion Library PROPlib THRUster DATA NAME & TYPE, 1 input line: CTHRST ITRTYP EHLA SEQSIZE CTHRST: character(8): Thruster identifier ITRTYP: integer: Thruster ID in Propulsor Library. Available propulsors may vary. Minimum supported: = 4000: Tunnel thruster = 4010: Azimuth thruster = 4500: Propeller and rudder EHLA: integer, default: 0: HLA export flag for thruster force EHLA = 0: No export EHLA = 1: HLA export SEQSIZE: integer, default: 0: Number of items in thruster control sequence It is possible to add additional user-defined propulsors to the library, see PropLib documentation. If EHLA = 1, a HLA name of thruster object has to be specified. 1 input line: CHTHLA CHTHLA: character(120): Character string describing HLA thruster object name Coordinates of thruster attachment given in body system, 1 input line: XTHR YTHR ZTHR XTHR: real: X-coordinate of thruster in body coordinate system, \(\mathrm {[L]}\) YTHR: real: Y-coordinate of thruster in body coordinate system, \(\mathrm {[L]}\) ZTHR: real: Z-coordinate of thruster in body coordinate system, \(\mathrm {[L]}\) Thruster thrust and direction, 1 input line: THRUST DIRTHR THRUST: real: Thrust, \(\mathrm {[F]}\) DIRTHR: real: Direction of thrust in body x-y plane, \(\mathrm {[deg]}\) Initial values if thruster is controlled by a DP-system Properties, 1 input line: FMIN FMAX TRISE TCTHR FMIN: real: Minimum thrust, \(\mathrm {[F]}\) FMAX: real: Maximum thrust force, \(\mathrm {[F]}\) TRISE: real: Minimum rise time of thrust from 10% to 90% of maximum thrust, \(\mathrm {[T]}\) TCTHR: real: Time constant of thruster servo controller, \(\mathrm {[T]}\) TCTHR should be positive. TCTHR is used to determine the proportional gain of the controller that is used to minimize the error in thruster rotational speed. See the Theory Manual (Thruster control, speed control) for the determination of servo controller coefficients based on FMAX, TRISE, and TCTHR. Rotational properties, 1 input line: ANGVMAX TCAZ ANGVMAX: real: Maximum turning speed of azimuth thruster, \(\mathrm {[deg}/T]\) TCAZ: real: Time constant of azimuth change, \(\mathrm {[T]}\) For fixed thrusters, ANGVMAX should be 0. Thruster control sequence Thrust signal type, 1 input line if SEQSIZE > 0 SIGTYPE SIGTYPE: character: Specifies unit for demanded thrust = FORCE: Demanded thrust force is given, \(\mathrm {[F]}\) = ROTATION: Demanded thruster rotations per time unit is given, \(\mathrm {[1/T]}\) Control sequence items, SEQSIZE input lines: TIME THRUST DIRECTION ACCEPT TIME: real: Time to start applying sequence item, \(\mathrm {[T]}\) THRUST: real: Demanded thrust. Unit depends on SIGTYPE DIRECTION: real: Demanded thrust force direction. Dummy if thruster is not rotatable, \(\mathrm {[deg]}\) ACCEPT: integer: Flag for accepting signals from DP system = 0: Demanded thrust and direction will override any demand from the DP system = 1: Any demand from DP system will be accepted (THRUST and DIRECTION is dummy) Thruster failure, 1 input line if CONTrol SEQUence INPUt is not given: IFMOTH FTIME IFMOTH: integer: Failure mode = 0: no failure = 1: thruster blackout after specified time FTIME: real: Time for thruster failure if IFMOTH = 1 Max rps, 1 input line: MAXRPS MAXRPS: real: The RPS giving FMAX, \(\mathrm {[1/T]}\) Number og PropLib parameters, 1 input line: IPROPAR IPROPAR: integer: Number of parameters specified for this propulsor ITRTYP=4000: 8 ITRTYP=4010: 9 ITRTYP=4500: 19 For other propulsors, see the propulsors documentation. PropLib parameters, 1 input line if ITRTYP=4000: LEN DIAM PITCH ANGFRONT ANGTOP IGRID VDIST RBILGE LEN: real: Tunnel length, \(\mathrm {[L]}\) DIAM: real: Propeller diameter, \(\mathrm {[L]}\) PITCH: real: Propeller pitch ratio, \(\mathrm {[-]}\) ANGFRONT: real: Hull angle relative to baseline (front view), \(\mathrm {[deg]}\) ANGTOP: real: Hull angle relative to centerline (top view), \(\mathrm {[deg]}\) IGRID: real: Number of grids, \(\mathrm {[-]}\) VDIST: real: Vertical disrance from propeller center to hull, \(\mathrm {[L]}\) RBILGE: real: Bilge radius, \(\mathrm {[L]}\) PropLib parameters, 1 input line if ITRTYP=4010: DIAM PITCH ABLADE WAKEF TDUCT SIGMA VDIST RBILGE APOD DIAM: real: Propeller diameter, \(\mathrm {[L]}\) PITCH: real: Propeller pitch ratio, \(\mathrm {[-]}\) ABLADE: real: Propeller blade area ratio, \(\mathrm {[-]}\) FWAKE: real: Wake fraction, \(\mathrm {[-]}\) TDUCT: real: Thrust deduction factor, \(\mathrm {[-]}\) SIGMA: real: (1-Cwl_aft)/(1-Cp_aft), \(\mathrm {[-]}\) VDIST: real: Vertical disrance from propeller center to hull, \(\mathrm {[L]}\) RBILGE: real: Bilge radius, \(\mathrm {[L]}\) APOD: real: Pod area, \(\mathrm {[L^2]}\) PropLib parameters, 1 input line if ITRTYP=4500: DIAM PITCH ABLADE HBHEIGHT HBCHORD HBTIP HBAREA RHEIGHT RCHORD RTIP RHORN RAREA HDISTR VDISTR GAP WAKEF TDUCT VDIST RBILGE DIAM: real: Propeller diameter, \(\mathrm {[L]}\) PITCH: real: Propeller pitch ratio, \(\mathrm {[-]}\) ABLADE: real: Propeller blade area ratio, \(\mathrm {[-]}\) HBHEIGHT: real: Headbox height, \(\mathrm {[L]}\) HBCHORD: real: Headbox rot chord, \(\mathrm {[L]}\) HBTIP: real: Headbox tip chord, \(\mathrm {[L]}\) HBAREA: real: Headbox area, \(\mathrm {[L^2]}\) RHEIGHT: real: Rudder height, \(\mathrm {[L]}\) RCHORD: real: Rudder root chord, \(\mathrm {[L]}\) RTIP: real: Rudder tip chord, \(\mathrm {[L]}\) RHORN: real: Rudder horn area, \(\mathrm {[L^2]}\) RAREA: real: Rudder total area (incl. horn), \(\mathrm {[L^2]}\) HDISTR: real: Horizontal distance propeller plane to rudder stock, \(\mathrm {[L]}\) VDISTR: real: Vertical distance propeller plane to rudder top, \(\mathrm {[L]}\) GAP: real: Initial gap rudder to headbox, \(\mathrm {[L]}\) FWAKE: real: Wake fraction, \(\mathrm {[-]}\) TDUCT: real: Thrust deduction factor, \(\mathrm {[-]}\) VDIST: real: Vertical disrance from propeller center to hull, \(\mathrm {[L]}\) RBILGE: real: Bilge radius, \(\mathrm {[L]}\) Options for thrust loss, 1 input line: ILOSSVENT ILOSSTHRHULL ILOSSTHRTHR ILOSSVENT: integer: = 0: Loss effect not included = 1: Surface proximity loss is included ILOSSTHRHULL: integer: = 0: Loss effect not included = 1: Thruster-hull interaction loss is included ILOSSTHRTHR: integer: = 0: Loss effect not included = 1: Thruster-thruster interaction loss is included Dynamic positioning data (Deprecated model) This DP model is deprecated. It will not be available anymore in the next release versions. This DP model can only be used with the deprecated thruster model (Thruster systemdeprecated). Dynamic positioning (DP) data must always belong to a positioning system. If the positioning system includes thrusters, they may be controlled by a dynamic positioning system, which is specified separately. The dynamic positioning system will only control the motions in the horizontal plane (surge, sway and yaw). All dynamic positioning options are limited to one DP system for each body. Maximum number of thrusters per body is 20. 1 input line. DYNAmic POSItioning SYSTem Text for describing the positioning system, 2 input lines. TXDP TXDP: character(60): Character string Type of DP-system, 1 input line IDP IDP: integer: Type of dynamic positioning controller = 1: PID controller = 2: Kalman filter based controller = 3: External controller function/library = 4: MTDP controller (internal MARINTEK DP-system) = 5: Velocity PI controller (HLA) Degree of freedom for thruster allocation for IDP = 1, 2 and 3, 1 input line. IFO1 IFO2 IFO6 IDPMOD ITALLOC IMADP IFO1: integer: Force allocation in surge (0 or 1) IFO2: integer: Force allocation in sway (0 or 1) IFO6: integer: Moment allocation in yaw (0 or 1) IDPMOD: integer, default: 1: Flag for mode of DP-system = 0: DP-system OFF > 0: DP-system ON = 2: Use any given <`CHBDY`> as reference ITALLOC: integer, default: 1: Thrust allocation method = 1: Ordinary allocation = 2: Heading priority IMADP: integer, default: 0: Flag for option of manual-DP by commanded force from HLA 0: No HLA commanded force 1: HLA commanded force, OFF 2: HLA commanded force, ON IFOX = 1: Force shall be allocated. At least one parameter has to be 1. If IMADP = 2 the given DP-controller is deactivated. If IMADP = 1 and 2, 1 input line, describing HLA name of commanded force TXHDP TXHDP: character(120): Character string for HLA name of commanded force 1 input line for IDP = 1, 2 and 3 XREF YREF DREF XLOC YLOC CHREF XREF: real: X-coordinate of reference/wanted position, \(\mathrm {[L]}\) for CHREF \(\mathrm {\neq }\) GBCIRCLE X-coordinate of the circle center \(\mathrm {[L]}\) for CHREF = GBCIRCLE YREF: real: Y-coordinate of reference/wanted position, \(\mathrm {[L]}\) for CHREF \(\mathrm {\neq }\) GBCIRCLE Y-coordinate of the circle center \(\mathrm {[L]}\) for CHREF = GBCIRCLE DREF: real: Reference/wanted heading, \(\mathrm {[deg]}\) for CHREF \(\mathrm {\neq }\) GBCIRCLE Radius of the circle \([\mathrm {M}]\) for CHREF = GBCIRCLE XLOC: real: X-coordinate of the point on the body which shall be positioned at the specified reference, \(\mathrm {[L]}\) YLOC: real: Y-coordinate of the point on the body which shall be positioned at the specified reference, \(\mathrm {[L]}\) CHREF: character(8), default: GLOBAL: Reference frame identifier = GLOBAL: Fixed reference point given in global coordinate system = <CHBDY>: A moving point given relative to body <CHBDY> shall be followed for one or more degrees of freedom. IDPMOD must be set to 2. (If IDPMOD=1, CHREF = GLOBAL) = EXTREF: Reference from an external function = HLAREF: Read global reference from HLA communication = GUIDANCE: Guidance System = GBCIRCLE: The circle perimeter is used as reference (see `Weather vaning strategy (CHREF=GBCIRCLE)' in `Force models' in the Theory Manual) If CHREF = <CHBDY>, 1 input line IXYREF IDREF POSLPT IXYREF: integer: Reference position flag, XY-position. = 1: Fixed, given in global coordinate system = 2: Moving, given in local system of body to be followed IDREF: integer: Reference position/heading flag = 1: Fixed, given in global coordinate system = 2: Moving, given relative to heading of body to be followed POSLPT: real: Cut-off time in low-pass filter for position measurement of body to follow XREF, YREF are given values for <`CHBDY`> in the local coordinate system if CHREF = <`CHBDY`>, normally "outside" the body. DREF is the relative heading between the heading of the DP-body and the heading of <`CHBDY`>. If CHREF = EXTREF, 1 input line, name and path of external library EXTRNA EXTRNA: character(120): Character string describing path and name of external DP-reference library XREF, YREF and ZREF are initial values if CHREF = EXTREF If CHREF = EXTREF, 1 input line NPCUR NPCUR: integer > 0: Number of points where current velocities shall be given to the external reference library If CHREF = HLAREF, 1 input line, name of HLA reference HLARNA HLARNA: character(120): Character string describing HLA reference name XREF, YREF and ZREF are initial values if CHREF = HLAREF 1 input line IGTYP IGTYP: integer: Type of GUIDANCE = 1: Straight lines and circular arcs = 2: Line of sight (LOS) If CHREF = GUIDANCE (Guidance System), 1 input line NWAYP IWPTYP IHRTYP NWAYP: integer: Number of waypoints IWPTYP: integer: Waypoint type = 1: Locally defined relative to body location = 2: Globally defined IHRTYP: integer: Heading reference type = 1: Tangential to path = 2: Globally fixed If CHREF = GUIDANCE (Guidance System), 1 input line TSTART AMAXX AMAXY TSTART: real, default: 200: Start time for guidance system, \(\mathrm {[T]}\) AMAXX: real: Max. acceleration in local x-direction, \(\mathrm {[L/TT]}\) AMAXY: real: Max. acceleration in local y-direction, \(\mathrm {[L/TT]}\) If CHREF = GUIDANCE (Guidance System) and IGTYP = 1, Waypoint table, NWAYP input lines, XP YP ZP VREF PSI RADT XP: real: X-coordinate of waypoint, \(\mathrm {[L]}\) YP: real: Y-coordinate of waypoint, \(\mathrm {[L]}\) ZP: real: Z-coordinate of waypoint, (dummy), \(\mathrm {[L]}\) VREF: real > 0: Velocity towards next waypoint, \(\mathrm {[L/T]}\) PSI: real: Heading towards next waypoint, (only for IHRTYP=1), \(\mathrm {[deg]}\) RADT: real > 0: Turning radius of waypoint, \(\mathrm {[L]}\) Maximum rate of turn \(\mathrm {\dot {\theta }=\frac{VREF}{RADT}}\) If CHREF = GUIDANCE (Guidance System) and IGTYP = 1, Waypoint table, NWAYP input lines, (CHREF = GUIDANCE) XP YP ZP VREF PSI RADA LOSLEN XP: real: X-coordinate of waypoint, \(\mathrm {[L]}\) YP: real: Y-coordinate of waypoint, \(\mathrm {[L]}\) ZP: real: Z-coordinate of waypoint, (dummy), \(\mathrm {[L]}\) VREF: real > 0: Velocity towards next waypoint, \(\mathrm {[L/T]}\) PSI: real: Heading towards next waypoint, (only for IHRTYP=1), \(\mathrm {[deg]}\) RADA: real > 0: Radius of acceptance, \(\mathrm {[L]}\) LOSLEN: real > 0: `Line-of-sight' length, \(\mathrm {[L]}\) 1 input line for IDP = 1, 2 and 3, some or all input in this line may be dummy for IDP = 3 IWIND WILPT IWIND: integer, default: 1: Flag for measurement of wind forces to be included in the controller = 1: No = 2: Yes, but no low-pass filtering = 3: Yes, with low-pass filtering WILPT: real: Cut-off time in low-pass filter for wind measurements, \(\mathrm {[T]}\) Bias force estimation for IDP = 1, 2 and 3, 1 input line, may be dummy for IDP = 3 FSTAX FSTAY FSTAM FSTAX: real: Start value on non-measured longitudinal external forces acting on the body, \(\mathrm {[F]}\) FSTAY: real: Start value on non-measured transverse external forces acting on the body, \(\mathrm {[F]}\) FSTAM: real: Start value on non-measured external moment acting on the body, \(\mathrm {[FL]}\) PID controller (IDP = 1) 1 identification input line PID CONTroller DATA 1 input line, stiffness coefficients, \(\mathrm {K_p}\) RKPOSX RKPOSY RKPOSM RKPOSX: real: Position feedback in surge, \(\mathrm {[F/L]}\) RKPOSY: real: Position feedback in sway, \(\mathrm {[F/L]}\) RKPOSM: real: Position feedback in yaw, \(\mathrm {[FL]}\) 1 input line, damping coefficients, \(\mathrm {K_v}\) RKVELX RKVELY RKVELM RKVELX: real: Velocity feedback in surge, \(\mathrm {[FT/L]}\) RKVELY: real: Velocity feedback in sway, \(\mathrm {[FT/L]}\) RKVELM: real: Velocity feedback in yaw, \(\mathrm {[FLT]}\) 1 input line, \(\mathrm {K_I}\) RKINTX RKINTY RKINTM RKINTX: real: Integral feedback in surge, \(\mathrm {[F/LT]}\) RKINTY: real: Integral feedback in sway, \(\mathrm {[F/LT]}\) RKINTM: real: Integral feedback in yaw, \(\mathrm {[FL/T]}\) 1 input line TCWF ETAWF TFILTX TFILTY TFILTM TCWF: real, default: 10: Centre period of wave filter \(\mathrm {[T]}\) ETAWF: real, default: 1: Strength of wave filter, 0 ⇐ ETAWF ⇐ 1 TFILTX: real, default: 2.5: Filter period for surge, \(\mathrm {[T]}\) TFILTY: real, default: 2.5: Filter period for sway, \(\mathrm {[T]}\) TFILTM: real, default: 2.5: Filter period for yaw, \(\mathrm {[T]}\) Tuning a control system is no exact science. The following procedure should serve as a guideline. For each of the three motions surge, sway and yaw, determine position and velocity feedback gains \(\mathrm {K_P}\) and \(\mathrm {K_V}\) that give the wanted stiffness and damping. Set the integral gains \(\mathrm {K_I}\) to zero. Turn off the wave frequency filter (\(\mathrm {\eta _{WF}=0_{}}\)) and set the cutoff frequency of the lowpass filter to 1/5 of the sampling rate. Thruster limitations must not be effective. From an initial position of non-equilibrium and with no dynamic environmental forces acting, simulate the transient motion towards equilibrium (to avoid complications caused by possible cross-coupling effects, it is safest to do this for one motion at a time, that is simulating pure transients in surge, sway and yaw). The transients should be non-oscillating. If they are not, the damping coefficients must be increased. Make a simulation with dynamic environmental excitation. Inspect the thruster outputs to see if the amount of wave frequency components is admissible. If it is, proceed to 5. If not, select the appropriate value for the strength parameter of the wave filter according to the description and the figures in `PID controller' in `Dynamic positioning' in `Force models' in the Theory Manual. With the selected wave filter, simulate transients again. The wave filter introduces negative phase in the control loop, which reduces stability. If any transient is unstable or shows oscillatory behaviour that does not die out rapidly (i.e. during one or two half cycles), stability must be improved. If it is unacceptable to reduce the strength of the wave filter, the remedy is to: 1) make the controller phase more positive at the frequency of oscillation, and/or 2) reduce the controller gain at the same frequency. Remedy (1) is carried out by reducing \(\mathrm {K_P}\) while keeping \(\mathrm {K_V}\) constant. Try this choice first, for example by halving the value of \(\mathrm {K_P}\). Remedy (2) is effectuated by reducing \(\mathrm {K_P}\) and \(\mathrm {K_V}\) by the same amount (e.g. halving them). Try this remedy if (1) fails or is insufficient. If integral action is desired, determine the upper frequency limit \(\mathrm {\omega _I}\) for this action, i.e. the frequency above which the integral action becomes insignificant (cf. the figure `Frequency response of a PID controller (Dashed lines…)' in `PID controller' in `Dynamic positioning' in `Force models' in the Theory Manual). Then set \(\mathrm {K_I=\omega_I \cong K_P}\) and simulate transients. The integral action too deteriorates stability. If stability is unsatisfactory, \(\mathrm {K_I}\) must be reduced. If it is known that the amount of measurement noise (the present version of SIMO does not simulate such noise) necessitates harder lowpass filtering of the position measurements, the cutoff frequency of the filter must be reduced from the value set according to paragraph 1 above. This may then lead to an adjustment of the controller gains as outlined in paragraph 4, until a satisfactory transient motion is obtained for all three motion variables. The above procedure reflects the standard knowledge from control theory that for a feedback system to be stable, the open-loop gain must be less than 1 (0 dB) at the crossover frequency (i.e. the frequency at which the open-loop phase is -180 deg.) Kalman filter based controller (IDP = 2) 1 identification input line KALMan FILTer DATA 1 input line ILINE ISTAT ILINE: integer: Flag for measurement of line tensions to be included in the controller = 0: No line tension/coupling measurements in the Kalman filter = 1: Line tension/coupling measurements in the Kalman filter = 2: Diagonal stiffness matrix included in the estimator of the Kalman filter = 3: Stiffness matrix included in the estimator of the Kalman filter = 4: Stiffness matrix for anchor system, data table for nonlinear lines, and hawser tension measurements are included in the estimator of the Kalman filter ISTAT: integer: Estimation method flag = 0: Current estimation, quadratic drag formula used = 1: Bias force estimation, linear drag formula used 1 input line, drag coefficients and nominal velocity. The drag coefficients should be as correct as possible compared to the vessel to be positioned, but it is also important that DRAGX is not smaller than DRAGY/4. In such cases DRAGX should be overestimated. The nominal velocity, VTYP, should not be smaller than 0.1 m/s since this will give too high amplification for small current speeds. The drag forces on the vessel estimated by the Kalman filter are linearized with respect to this velocity. DRAGX DRAGY DRAGM VTYP TSTA DRAGX: real: Longitudinal drag coefficient, \(\mathrm {[FT^2/L^2]}\) DRAGY: real: Transverse drag coefficient, \(\mathrm {[FT^2/L^2]}\) DRAGM: real: Rotational drag coefficient, \(\mathrm {[FLT^2]}\) VTYP: real, default: 0.25: Nominal velocity, \(\mathrm {[L/T]}\) TSTA: real: Starting period for HF_estimation, \(\mathrm {[T]}\) 1 input line if ILINE = 2. The stiffness matrix is given with the wanted position as reference. STFLIX STFLIY STFLID STFLIX: real: Linear stiffness in global X-direction (not from DP system), \(\mathrm {[F/L]}\) STFLIY: real: Linear stiffness in global Y-direction (not from DP system), \(\mathrm {[F/L]}\) STFLID: real: Linear stiffness for global heading (not from DP system), \(\mathrm {[FL]}\) 3 input lines if ILINE = 3 or 4. The stiffness matrix is given with the wanted position as reference. STFLi1 STFLi2 STFLi6 STFLij: real: Force in global i-direction due to a unit displacement in the global j-direction (not from DP system) \(\mathrm {[F/L,F,FL]}\) Diagonal terms are negative for a common anchoring system. - i=1 is the global X-direction - i=2 is the global Y-direction - i=6 is the global heading The rotation stiffness is per rad 1 input line if ILINE = 4. NNL NNL: integer: Number of nonlinear lines of which forces are estimated in the Kalman filter NNL times the following block if ILINE = 4. 1 input line X0 Y0 X0: real: Global X-coord. of the line end point anchored at the sea bed \(\mathrm {[L]}\) Y0: real: Global Y-coord. of the line end point anchored at the sea bed \(\mathrm {[L]}\) 1 input line X1 Y1 X1: real: X-coord. of the line end point attached to the vessel (given in the body fixed coord. system) \(\mathrm {[L]}\) Y1: real: Y-coord. of the line end point attached to the vessel (given in the body fixed coord. system) \(\mathrm {[L]}\) 1 input line NLT NLT: integer: Number of data lines in the table describing the tension of the anchored line as a function of the horizontal length. NLT input lines (characteristic of the nonlinear line) Li Ti Li: real: Horizontal length of the nonlinear line \(\mathrm {[L]}\) Ti: real: Horizontal tension of the nonlinear line for the given length Li \(\mathrm {[F]}\) 1 input line if ILINE = 4. NH NH: integer: Number of hawsers of which force is measured and used in the Kalman filter estimation model. NH times the following block if ILINE = 4. 1 input line HAWID HAWID: character(8): Name (identifier) of the coupling element modelling the hawser. The coupling element should be a simple wire coupling or a fixed elongation coupling. 1 input line WNSTDV SEEDN WNSTDV: real: White noise standard deviation of the measurement system, \(\mathrm {[F]}\) - SEEDN: integer, default: 1: Seed number for the realisation of the white noise. The mersenne twister generator and a box-muller transform is used to generate normally distributed pseudo-random numbers 1 input line AMX AMY AMR AMX: real: Total mass in surge to be used in Kalman filter, \(\mathrm {[M]}\) AMY: real: Total mass in sway to be used in Kalman filter, \(\mathrm {[M]}\) AMR: real: Total inertia to be used in Kalman filter, \(\mathrm {[ML^2]}\) Total masses and inertia includes body mass and typical hydrodynamic added mass The linear controller matrix is defined on the next 3 input lines. The position gains will determine the natural periods in the system. It is possible to use: -0.01 AMX stem:[\le \ GMATX1 ≤ -0.005 AMX -0.01 AMY stem:[\le \ GMATY1 ≤ -0.005 AMY -0.01 AMR stem:[\le \ GMATD1 ≤ -0.005 AMR These position feedbacks will give natural periods in the range 90 s to 60 s. The higher feedbacks will give the best abilities to suppress disturbances, while the lower feedbacks will give less modulation of thruster signals. Theoretically, the best vessel behaviour is obtained by approximately 70 % of critical damping, which is obtained by: \(\mathrm {GMATX2=-\sqrt{2\:|GMATX1|\times AMX}}\) \(\mathrm {GMATY2=-\sqrt{2\:|GMATY1|\times AMY}}\) \(\mathrm {GMATD2=-\sqrt{2\:|GMATD1|\times AMR}}\) Alternatively: \(\mathrm {GMATX1}=-(\frac{2\pi }{T_x})^2m_x\quad \quad \quad \mathrm {GMATX2}=-2\xi _x\mathrm {\sqrt{|GMATX1|\times AMX}}\) \(\mathrm {GMATY1}=-(\frac{2\pi }{T_y})^2m_y\quad \quad \quad \mathrm {GMATY2}=-2\xi _y\mathrm {\sqrt{|GMATY1|\times AMY}}\) \(\mathrm {GMATD1}=-(\frac{2\pi }{T_{\psi}})^2m_{\psi}\quad \quad \quad \mathrm {GMATD2}=-2\xi _{\psi}\mathrm {\sqrt{|GMATD1|\times AMR}}\) where \(\mathrm {T_x}\), \(\mathrm {T_y}\) and \(\mathrm {T_{\psi}}\) are the chosen/wanted natural periods for surge, sway and yaw, respectively. The damping factors are given as \(\mathrm {\xi _x}\), \(\mathrm {\xi _y}\) and \(\mathrm {\xi _{\psi}}\), \(\mathrm {_{}}\) and they are typically set to a value of 0.7 which indicates a damping level of 70% of the critical damping. As the first step in tuning the DP-system, the vessel can be moved to an offset position and released with no environmental forces. The DP-system should then be able to produce a wanted transient motion to the desired position. At this stage of the tuning, the thrusters data TMIMA (minimum time to change from minimum to maximum thrust) should be set to a small value, and ANGH (maximum angular velocity of azimuth thrusters) should be set to a large value. These thruster data should be set to their correct values after initial tuning. 1 input line GMATX1 GMATX2 GMATX1: real: Longitudinal position gain, \(\mathrm {[F/L]}\) GMATX2: real: Longitudinal velocity gain, \(\mathrm {[FT/L]}\) 1 input line GMATY1 GMATY2 GMATY1: real: Transverse position gain, \(\mathrm {[F/L]}\) GMATY2: real: Transverse velocity gain, \(\mathrm {[FT/L]}\) 1 input line GMATD1 GMATD2 GMATD1: real: Heading gain, \(\mathrm {[FL]}\) GMATD2: real: Heading rate gain, \(\mathrm {[FLT]}\) The Kalman filter gain matrix is defined on the next 3 input lines. Depending on the natural periods of the motions (low frequency) and on the wave frequency motions, cut-off frequencies \(\mathrm {\omega _c}\) for filtering the wave frequency motions are normally chosen. Typically, the cut-off periods for surge, sway and yaw of \(\mathrm {T_c=2\pi /\omega _c}\) are given values between 25s and 50s. Then Kalman filter coefficients (for initial tuning) may be chosen as: \(\mathrm {RKXI}=2\xi _x\omega _{c,x}\quad \quad \quad \mathrm {RKX2}=\omega ^2_{c,x}\) \(\mathrm {RKYI}=2\xi _y\omega _{c,y}\quad \quad \quad \mathrm {RKY2}=\omega ^2_{c,y}\) \(\mathrm {RKDI}=2\xi _{\psi}\omega _{c,\psi}\quad \quad \:\:\:\mathrm {RKD2}=\omega ^2_{c,\psi}\) The \(\mathrm {_{}}\) default values for the various RK3-gains are given as guidelines for the case of current estimation (ISTAT = 0). In the case of bias force estimation (ISTAT = 1), it is recommended to use RKX3 = .00001AMX, RKY3 = .00001AMY. In both cases RKD3 = .00005AMR. 1 input line RKX1 RKX2 RKX3 RKX4 RKX1: real: Longitudinal LF position gain, \(\mathrm {[1]}\) RKX2: real: Longitudinal LF velocity gain, \(\mathrm {[1/T]}\) RKX3: real, default: 0.00025: Longitudinal current or bias force gain, \(\mathrm {[1/T]}\) or \(\mathrm {[F/L]}\) RKX4: real, default: 0.2: Longitudinal HF position gain, \(\mathrm {[1]}\) 1 input line RKY1 RKY2 RKY3 RKY4 RKY1: real: Transverse LF position gain, \(\mathrm {[1]}\) RKY2: real: Transverse LF velocity gain, \(\mathrm {[1/T]}\) RKY3: real, default: 0.00025: Transverse current or bias force gain, \(\mathrm {[1/T]}\) or \(\mathrm {[F/L]}\) RKY4: real, default: 0.2: Transverse HF position gain, \(\mathrm {[1]}\) 1 input line RKD1 RKD2 RKD3 RKD4 RKD1: real: LF heading gain, \(\mathrm {[1]}\) RKD2: real: LF heading rate gain, \(\mathrm {[1/T]}\) RKD3: real: Bias moment gain, \(\mathrm {[FL]}\) RKD4: real, default: 0.2: HF heading gain, \(\mathrm {[1]}\) In a case with zero or negligible wave frequency yaw motion, RKD4 should be set to zero. External controller function data (IDP = 3) 1 identification input line for a user-supplied external dynamic positioning controller EXTErnal DYNAmic POSItioning 1 input line, path and filename of library containing the controller TXXDP TXXDP: character(120): Character string giving path and filename 1 input line NPCUR NPCUR: integer > 0: Number of points where current velocities shall be given to the external DP-system library MTDP controller (IDP = 4) No input data on the system description file for this controller, but the communication settings must be given as described in MTDP communication. Velocity PI controller (IDP = 5) 1 identification input line, velocity reference from HLA VELOcity CONTroller DATA 1 input line, stiffness coefficients, \(\mathrm {K_P}\) RKVELX RKVELY RKVELM RKVELX: real: Velocity feedback in surge, \(\mathrm {[FT/L]}\) RKVELY: real: Velocity feedback in sway, \(\mathrm {[FT/L]}\) RKVELM: real: Velocity feedback in yaw, \(\mathrm {[FTL]}\) 1 input line, integral coefficients, \(\mathrm {K_I}\) RKINTX RKINTY RKINTM RKINTX: real: Integral feedback in surge, \(\mathrm {[F/L]}\) RKINTY: real: Integral feedback in sway, \(\mathrm {[F/L]}\) RKINTM: real: Integral feedback in yaw, \(\mathrm {[FL]}\) 1 input line TCWF ETAWF TFILTX TFILTY TFILTM TCWF: real, default: 10: Centre period of wave filter \(\mathrm {[T]}\) ETAWF: real, default: 1: Strength of wave filter, 0 ⇐ ETAWF ⇐ 1: TFILTX: real, default: 2.5: Filter period for surge, \(\mathrm {[T]}\) TFILTY: real, default: 2.5: Filter period for sway, \(\mathrm {[T]}\) TFILTM: real, default: 2.5: Filter period for yaw, \(\mathrm {[T]}\) Dynamic positioning This DP model can only be used together with the new thruster model documented in Thruster system. 1 input line. DYNAmic POSItioning CONTRol Text for describing the positioning system, 2 input lines. TXDP TXDP: character(60): Character string 1 input line. THRUster CONTrol DATA 1 input line. NTHRC NTHRC: integer: Number of thrusters to be under DP control 1 input line per thruster, NTHRC lines in all ITHR ITYPE XTH YTH ZTH DIR FMIN FMAX CFPOS CFNEG FRATE ARATE CHTHR: character(8): Thruster name; Reference to thruster identifier for thruster to be controlled ITYPE: integer: Thruster type: 1 =: Fixed direction thruster 2 =: Variable direction (azimuth) thruster XTH: real: X-coordinate of thruster in body system YTH: real: Y-coordinate of thruster in body system ZTH: real: Z-coordinate of thruster in body system DIR: real: Direction of thruster \(\mathrm {[deg]}\). Start value for azimuthing thrusters FMIN: real: Minimum force \(\mathrm {[F]}\) FMAX: real: Maximum force \(\mathrm {[F]}\) FRATE: real: Maximum rate of force \(\mathrm {[F/T]}\) ARATE: real: Maximum rate of azimuth angle \(\mathrm {[deg}/T]\) Dummy for fixed direction thrusters. For azimuth thruster, FMIN should not be negative 1 input line. DYNAmic POSItioning DATA Type of DP-system, 1 input line IDP IDP: integer: Type of dynamic positioning controller = 1: PID controller = 2: Kalman filter based controller = 3: External controller function/library = 4: MTDP controller (internal MARINTEK DP-system) = 5: Velocity PI controller (HLA) If the MTDP controller type is selected NTHRC (specified in the previous section) must be zero. Degree of freedom for thruster allocation for IDP = 1, 2 and 3, 1 input line. IFO1 IFO2 IFO6 IDPMOD ITALLOC IMADP DTCI IFO1: integer: Force allocation in surge (0 or 1) IFO2: integer: Force allocation in sway (0 or 1) IFO6: integer: Moment allocation in yaw (0 or 1) IDPMOD: integer, default: 1: Flag for mode of DP-system = 0: DP-system OFF > 0: DP-system ON = 2: Use any given <CHBDY> as reference ITALLOC: integer, default: 1: Thrust allocation method = 1: Ordinary allocation = 2: Heading priority IMADP: integer, default: 0: Flag for option of manual-DP by commanded force from HLA = 0: No HLA commanded force = 1: HLA commanded force, OFF = 2: HLA commanded force, ON DTCI: real, default: DT: Control Interval IFOX = 1: Force shall be allocated. At least one parameter has to be 1. If IMADP = 2 the given DP-controller is deactivated. DT is the SIMO storage interval (Main time step). If IMADP = 1 and 2, 1 input line, describing HLA name of commanded force TXHDP TXHDP: character(120): Character string for HLA name of commanded force 1 input line for IDP = 1, 2 and 3 XREF YREF DREF XLOC YLOC CHREF XREF: real: X-coordinate of reference/wanted position, \(\mathrm {[L]}\) for CHREF != GBCIRCLE X-coordinate of the circle center \(\mathrm {[L]}\) for CHREF = GBCIRCLE YREF: real: Y-coordinate of reference/wanted position, \(\mathrm {[L]}\) for CHREF != GBCIRCLE Y-coordinate of the circle center \(\mathrm {[L]}\) for CHREF = GBCIRCLE DREF: real: Reference/wanted heading, \(\mathrm {[deg]}\) for CHREF != GBCIRCLE Radius of the circle \(\mathrm {[M]}\) for CHREF = GBCIRCLE XLOC: real: X-coordinate of the point on the body which shall be positioned at the specified reference, \(\mathrm {[L]}\) YLOC: real: Y-coordinate of the point on the body which shall be positioned at the specified reference, \(\mathrm {[L]}\) CHREF: character(8), default: GLOBAL: Reference frame identifier = GLOBAL: Fixed reference point given in global coordinate system = <CHBDY>: A moving point given relative to body <CHBDY> shall be followed for one or more degrees of freedom. IDPMOD must be set to 2. (If IDPMOD=1, CHREF = GLOBAL) = EXTREF: Reference from an external function = HLAREF: Read global reference from HLA communication = GUIDANCE: Guidance System = GBCIRCLE: The circle perimeter is used as reference (see `Weather vaning strategy (CHREF=GBCIRCLE)' in `Force models' in the Theory Manual) If CHREF = <CHBDY>, 1 input line IXYREF IDREF POSLPT IXYREF: integer: Reference position flag, XY-position. = 1: Fixed, given in global coordinate system = 2: Moving, given in local system of body to be followed IDREF: integer: Reference position/heading flag = 1: Fixed, given in global coordinate system = 2: Moving, given relative to heading of body to be followed POSLPT: real: Cut-off time in low-pass filter for position measurement of body to follow XREF, YREF are given values for <CHBDY> in the local coordinate system if CHREF = <CHBDY>, normally "outside" the body. DREF is the relative heading between the heading of the DP-body and the heading of <CHBDY>. If CHREF = EXTREF, 1 input line, name and path of external library EXTRNA EXTRNA: character(120): Character string describing path and name of external DP-reference library XREF, YREF and ZREF are initial values if CHREF = EXTREF If CHREF = EXTREF, 1 input line NPCUR NPCUR: integer > 0: Number of points where current velocities shall be given to the external reference library If CHREF = HLAREF, 1 input line, name of HLA reference HLARNA HLARNA: character(120): Character string describing HLA reference name XREF, YREF and ZREF are initial values if CHREF = HLAREF 1 input line IGTYP IGTYP: integer: Type of GUIDANCE = 1: Straight lines and circular arcs = 2: Line of sight (LOS) If CHREF = GUIDANCE (Guidance System), 1 input line, (CHREF = GUIDANCE) NWAYP IWPTYP IHRTYP NWAYP: integer: Number of waypoints IWPTYP: integer: Waypoint type = 1: Locally defined relative to body location = 2: Globally defined IHRTYP: integer: Heading reference type = 1: Tangential to path = 2: Globally fixed If CHREF = GUIDANCE (Guidance System), 1 input line, (CHREF = GUIDANCE) TSTART AMAXX AMAXY TSTART: real, default: 200: Start time for guidance system, \(\mathrm {[T]}\) AMAXX: real: Max. acceleration in local x-direction, \(\mathrm {[L/TT]}\) AMAXY: real: Max. acceleration in local y-direction, \(\mathrm {[L/TT]}\) If CHREF = GUIDANCE (Guidance System) and IGTYP = 1, Waypoint table, NWAYP input lines, XP YP ZP VREF PSI RADT XP: real: X-coordinate of waypoint, \(\mathrm {[L]}\) YP: real: Y-coordinate of waypoint, \(\mathrm {[L]}\) ZP: real: Z-coordinate of waypoint, (dummy), \(\mathrm {[L]}\) VREF: real > 0: Velocity towards next waypoint, \(\mathrm {[L/T]}\) PSI: real: Heading towards next waypoint, (only for IHRTYP=1), \(\mathrm {[deg]}\) RADT: real > 0: Turning radius of waypoint, \(\mathrm {[L]}\) Maximum rate of turn \(\mathrm {\dot {\theta }=\frac{VREF}{RADT}}\) If IGTYP = 2, Waypoint table, NWAYP input lines, (CHREF = GUIDANCE) XP YP ZP VREF PSI RADA LOSLEN XP: real: X-coordinate of waypoint, \(\mathrm {[L]}\) YP: real: Y-coordinate of waypoint, \(\mathrm {[L]}\) ZP: real: Z-coordinate of waypoint, (dummy), \(\mathrm {[L]}\) VREF: real > 0: Velocity towards next waypoint, \(\mathrm {[L/T]}\) PSI: real: Heading towards next waypoint, (only for IHRTYP=1), \(\mathrm {[deg]}\) RADA: real > 0: Radius of acceptance, \(\mathrm {[L]}\) LOSLEN: real > 0: `Line-of-sight' length, \(\mathrm {[L]}\) 1 input line for IDP = 1, 2 and 3, some or all input in this line may be dummy for IDP = 3 IWIND WILPT IWIND: integer, default: 1: Flag for measurement of wind forces to be included in the controller = 1: No = 2: Yes, but no low-pass filtering = 3: Yes, with low-pass filtering WILPT: real: Cut-off time in low-pass filter for wind measurements, \(\mathrm {[T]}\) Bias force estimation for IDP = 1, 2 and 3, 1 input line, may be dummy for IDP = 3 FSTAX FSTAY FSTAM FSTAX: real: Start value on non-measured longitudinal external forces acting on the body, \(\mathrm {[F]}\) FSTAY: real: Start value on non-measured transverse external forces acting on the body, \(\mathrm {[F]}\) FSTAM: real: Start value on non-measured external moment acting on the body, \(\mathrm {[FL]}\) PID controller (IDP = 1) 1 identification input line PID CONTroller DATA 1 input line, stiffness coefficients, \(\mathrm {K_p}\) RKPOSX RKPOSY RKPOSM RKPOSX: real: Position feedback in surge, \(\mathrm {[F/L]}\) RKPOSY: real: Position feedback in sway, \(\mathrm {[F/L]}\) RKPOSM: real: Position feedback in yaw, \(\mathrm {[FL]}\) 1 input line, damping coefficients, \(\mathrm {K_v}\) RKVELX RKVELY RKVELM RKVELX: real: Velocity feedback in surge, \(\mathrm {[FT/L]}\) RKVELY: real: Velocity feedback in sway, \(\mathrm {[FT/L]}\) RKVELM: real: Velocity feedback in yaw, \(\mathrm {[FLT]}\) 1 input line, \(\mathrm {K_I}\) RKINTX RKINTY RKINTM RKINTX: real: Integral feedback in surge, \(\mathrm {[F/LT]}\) RKINTY: real: Integral feedback in sway, \(\mathrm {[F/LT]}\) RKINTM: real: Integral feedback in yaw, \(\mathrm {[FL/T]}\) 1 input line TCWF ETAWF TFILTX TFILTY TFILTM TCWF: real, default: 10: Centre period of wave filter \(\mathrm {[T]}\) ETAWF: real, default: 1: Strength of wave filter, 0 ⇐ ETAWF ⇐ 1 TFILTX: real, default: 2.5: Filter period for surge, \(\mathrm {[T]}\) TFILTY: real, default: 2.5: Filter period for sway, \(\mathrm {[T]}\) TFILTM: real, default: 2.5: Filter period for yaw, \(\mathrm {[T]}\) Tuning a control system is no exact science. The following procedure should serve as a guideline. For each of the three motions surge, sway and yaw, determine position and velocity feedback gains \(\mathrm {K_P}\) and \(\mathrm {K_V}\) that give the wanted stiffness and damping. Set the integral gains \(\mathrm {K_I}\) to zero. Turn off the wave frequency filter (\(\mathrm {\eta _{WF}=0_{}}\)) and set the cutoff frequency of the lowpass filter to 1/5 of the sampling rate. Thruster limitations must not be effective. From an initial position of non-equilibrium and with no dynamic environmental forces acting, simulate the transient motion towards equilibrium (to avoid complications caused by possible cross-coupling effects, it is safest to do this for one motion at a time, that is simulating pure transients in surge, sway and yaw). The transients should be non-oscillating. If they are not, the damping coefficients must be increased. Make a simulation with dynamic environmental excitation. Inspect the thruster outputs to see if the amount of wave frequency components is admissible. If it is, proceed to 5. If not, select the appropriate value for the strength parameter of the wave filter according to the description and the figures in `PID controller' in `Dynamic positioning' in `Force models' in the Theory Manual. With the selected wave filter, simulate transients again. The wave filter introduces negative phase in the control loop, which reduces stability. If any transient is unstable or shows oscillatory behaviour that does not die out rapidly (i.e. during one or two half cycles), stability must be improved. If it is unacceptable to reduce the strength of the wave filter, the remedy is to: 1) make the controller phase more positive at the frequency of oscillation, and/or 2) reduce the controller gain at the same frequency. Remedy (1) is carried out by reducing \(\mathrm {K_P}\) while keeping \(\mathrm {K_V}\) constant. Try this choice first, for example by halving the value of \(\mathrm {K_P}\). Remedy (2) is effectuated by reducing \(\mathrm {K_P}\) and \(\mathrm {K_V}\) by the same amount (e.g. halving them). Try this remedy if (1) fails or is insufficient. If integral action is desired, determine the upper frequency limit \(\mathrm {\omega _I}\) for this action, i.e. the frequency above which the integral action becomes insignificant (cf. the figure `Frequency response of a PID controller (Dashed lines…)' in `PID controller' in `Dynamic positioning' in `Force models' in the Theory Manual). Then set \(\mathrm {K_I=\omega_I \cong K_P}\) and simulate transients. The integral action too deteriorates stability. If stability is unsatisfactory, \(\mathrm {K_I}\) must be reduced. If it is known that the amount of measurement noise (the present version of SIMO does not simulate such noise) necessitates harder lowpass filtering of the position measurements, the cutoff frequency of the filter must be reduced from the value set according to paragraph 1 above. This may then lead to an adjustment of the controller gains as outlined in paragraph 4, until a satisfactory transient motion is obtained for all three motion variables. The above procedure reflects the standard knowledge from control theory that for a feedback system to be stable, the open-loop gain must be less than 1 (0 dB) at the crossover frequency (i.e. the frequency at which the open-loop phase is -180 deg.) Kalman filter based controller (IDP = 2) 1 identification input line KALMan FILTer DATA 1 input line ILINE ISTAT ILINE: integer: Flag for measurement of line tensions to be included in the controller = 0: No line tension/coupling measurements in the Kalman filter = 1: Line tension/coupling measurements in the Kalman filter = 2: Diagonal stiffness matrix included in the estimator of the Kalman filter = 3: Stiffness matrix included in the estimator of the Kalman filter = 4: Stiffness matrix for anchor system, data table for nonlinear lines, and hawser tension measurements are included in the estimator of the Kalman filter = 5: Forces from specified lines are used in the Kalman filter. ISTAT: integer: Estimation method flag = 0: Current estimation, quadratic drag formula used = 1: Bias force estimation, linear drag formula used 1 input line, drag coefficients and nominal velocity. The drag coefficients should be as correct as possible compared to the vessel to be positioned, but it is also important that DRAGX is not smaller than DRAGY/4. In such cases DRAGX should be overestimated. The nominal velocity, VTYP, should not be smaller than 0.1 m/s since this will give too high amplification for small current speeds. The drag forces on the vessel estimated by the Kalman filter are linearized with respect to this velocity. DRAGX DRAGY DRAGM VTYP TSTA DRAGX: real: Longitudinal drag coefficient, \(\mathrm {[FT^2/L^2]}\) DRAGY: real: Transverse drag coefficient, \(\mathrm {[FT^2/L^2]}\) DRAGM: real: Rotational drag coefficient, \(\mathrm {[FLT^2]}\) VTYP: real, default: 0.25: Nominal velocity, \(\mathrm {[L/T]}\) TSTA: real: Starting period for HF_estimation, \(\mathrm {[T]}\) 1 input line if ILINE = 2. The stiffness matrix is given with the wanted position as reference. STFLIX STFLIY STFLID STFLIX: real: Linear stiffness in global X-direction (not from DP system), \(\mathrm {[F/L]}\) STFLIY: real: Linear stiffness in global Y-direction (not from DP system), \(\mathrm {[F/L]}\) STFLID: real: Linear stiffness for global heading (not from DP system), \(\mathrm {[FL]}\) 3 input lines if ILINE = 3 or 4. The stiffness matrix is given with the wanted position as reference. STFLi1 STFLi2 STFLi6 STFLij: real: Force in global i-direction due to a unit displacement in the global j-direction (not from DP system) \(\mathrm {[F/L,F,FL]}\) Diagonal terms are negative for a common anchoring system. * i=1 is the global X-direction * i=2 is the global Y-direction * i=6 is the global heading The rotation stiffness is per rad 1 input line if ILINE = 4. NNL NNL: integer: Number of nonlinear lines of which forces are estimated in the Kalman filter NNL times the following block if ILINE = 4. 1 input line X0 Y0 X0: real: Global X-coord. of the line end point anchored at the sea bed \(\mathrm {[L]}\) Y0: real: Global Y-coord. of the line end point anchored at the sea bed \(\mathrm {[L]}\) 1 input line X1 Y1 X1: real: X-coord. of the line end point attached to the vessel (given in the body fixed coord. system) \(\mathrm {[L]}\) Y1: real: Y-coord. of the line end point attached to the vessel (given in the body fixed coord. system) \(\mathrm {[L]}\) 1 input line NLT NLT: integer: Number of data lines in the table describing the tension of the anchored line as a function of the horizontal length. NLT input lines (characteristic of the nonlinear line) Li Ti Li: real: Horizontal length of the nonlinear line \(\mathrm {[L]}\) Ti: real: Horizontal tension of the nonlinear line for the given length Li \(\mathrm {[F]}\) 1 input line if ILINE = 4. NH NH: integer: Number of hawsers of which force is measured and used in the Kalman filter estimation model. NH times the following block if ILINE = 4. 1 input line HAWID HAWID: character(8): Name (identifier) of the coupling element modelling the hawser. The coupling element should be a simple wire coupling or a fixed elongation coupling. 1 input line WNSTDV SEEDN WNSTDV: real: White noise standard deviation of the measurement system, \(\mathrm {[F]}\) SEEDN: integer, default: 1: Seed number for the realisation of the white noise. The mersenne twister generator and a box-muller transform is used to generate normally distributed pseudo-random numbers 1 input line if ILINE = 5. NRMEAS NRMEAS: integer: Number of RIFLEX line force measurements. NRMEAS input lines if ILINE = 5 CHLI LEND CHLI: character(8): String identifier for RIFLEX line LEND: integer: Line end to read measurements from. Valid input is 1 or 2. 1 input line AMX AMY AMR AMX: real: Total mass in surge to be used in Kalman filter, \(\mathrm {[M]}\) AMY: real: Total mass in sway to be used in Kalman filter, \(\mathrm {[M]}\) AMR: real: Total inertia to be used in Kalman filter, \(\mathrm {[ML^2]}\) Total masses and inertia includes body mass and typical hydrodynamic added mass The linear controller matrix is defined on the next 3 input lines. The position gains will determine the natural periods in the system. It is possible to use: -0.01 AMX ≤ GMATX1 ≤ -0.005 AMX -0.01 AMY ≤ GMATY1 ≤ -0.005 AMY -0.01 AMR ≤ GMATD1 ≤ -0.005 AMR These position feedbacks will give natural periods in the range 90 s to 60 s. The higher feedbacks will give the best abilities to suppress disturbances, while the lower feedbacks will give less modulation of thruster signals. Theoretically, the best vessel behaviour is obtained by approximately 70 % of critical damping, which is obtained by: \(\mathrm {GMATX2=-\sqrt{2\:|GMATX1|\times AMX}}\) \(\mathrm {GMATY2=-\sqrt{2\:|GMATY1|\times AMY}}\) \(\mathrm {GMATD2=-\sqrt{2\:|GMATD1|\times AMR}}\) Alternatively: \(\mathrm {GMATX1}=-(\frac{2\pi }{T_x})^2m_x\quad \quad \quad \mathrm {GMATX2}=-2\xi _x\mathrm {\sqrt{|GMATX1|\times AMX}}\) \(\mathrm {GMATY1}=-(\frac{2\pi }{T_y})^2m_y\quad \quad \quad \mathrm {GMATY2}=-2\xi _y\mathrm {\sqrt{|GMATY1|\times AMY}}\) \(\mathrm {GMATD1}=-(\frac{2\pi }{T_{\psi}})^2m_{\psi}\quad \quad \quad \mathrm {GMATD2}=-2\xi _{\psi}\mathrm {\sqrt{|GMATD1|\times AMR}}\) where \(\mathrm {T_x}\), \(\mathrm {T_y}\) and \(\mathrm {T_{\psi}}\) are the chosen/wanted natural periods for surge, sway and yaw, respectively. The damping factors are given as \(\mathrm {\xi _x}\), \(\mathrm {\xi _y}\) and \(\mathrm {\xi _{\psi}}\), \(\mathrm {_{}}\) and they are typically set to a value of 0.7 which indicates a damping level of 70% of the critical damping. As the first step in tuning the DP-system, the vessel can be moved to an offset position and released with no environmental forces. The DP-system should then be able to produce a wanted transient motion to the desired position. At this stage of the tuning, the thrusters data TMIMA (minimum time to change from minimum to maximum thrust) should be set to a small value, and ANGH (maximum angular velocity of azimuth thrusters) should be set to a large value. These thruster data should be set to their correct values after initial tuning. 1 input line GMATX1 GMATX2 GMATX1: real: Longitudinal position gain, \(\mathrm {[F/L]}\) GMATX2: real: Longitudinal velocity gain, \(\mathrm {[FT/L]}\) 1 input line GMATY1 GMATY2 GMATY1: real: Transverse position gain, \(\mathrm {[F/L]}\) GMATY2: real: Transverse velocity gain, \(\mathrm {[FT/L]}\) 1 input line GMATD1 GMATD2 GMATD1: real: Heading gain, \(\mathrm {[FL]}\) GMATD2: real: Heading rate gain, \(\mathrm {[FLT]}\) The Kalman filter gain matrix is defined on the next 3 input lines. Depending on the natural periods of the motions (low frequency) and on the wave frequency motions, cut-off frequencies \(\mathrm {\omega _c}\) for filtering the wave frequency motions are normally chosen. Typically, the cut-off periods for surge, sway and yaw of \(\mathrm {T_c=2\pi /\omega _c}\) are given values between 25s and 50s. Then Kalman filter coefficients (for initial tuning) may be chosen as: \(\mathrm {RKXI}=2\xi _x\omega _{c,x}\quad \quad \quad \mathrm {RKX2}=\omega ^2_{c,x}\) \(\mathrm {RKYI}=2\xi _y\omega _{c,y}\quad \quad \quad \mathrm {RKY2}=\omega ^2_{c,y}\) \(\mathrm {RKDI}=2\xi _{\psi}\omega _{c,\psi}\quad \quad \:\:\:\mathrm {RKD2}=\omega ^2_{c,\psi}\) The \(\mathrm {_{}}\) default values for the various RK3-gains are given as guidelines for the case of current estimation (ISTAT = 0). In the case of bias force estimation (ISTAT = 1), it is recommended to use RKX3 = .00001AMX, RKY3 = .00001AMY. In both cases RKD3 = .00005AMR. 1 input line RKX1 RKX2 RKX3 RKX4 RKX1: real: Longitudinal LF position gain, \(\mathrm {[1]}\) RKX2: real: Longitudinal LF velocity gain, \(\mathrm {[1/T]}\) RKX3: real, default: 0.00025: Longitudinal current or bias force gain, \(\mathrm {[1/T]}\) or \(\mathrm {[F/L]}\) RKX4: real, default: 0.2: Longitudinal HF position gain, \(\mathrm {[1]}\) 1 input line RKY1 RKY2 RKY3 RKY4 RKY1: real: Transverse LF position gain, \(\mathrm {[1]}\) RKY2: real: Transverse LF velocity gain, \(\mathrm {[1/T]}\) RKY3: real, default: 0.00025: Transverse current or bias force gain, \(\mathrm {[1/T]}\) or \(\mathrm {[F/L]}\) RKY4: real, default: 0.2: Transverse HF position gain, \(\mathrm {[1]}\) 1 input line RKD1 RKD2 RKD3 RKD4 RKD1: real: LF heading gain, \(\mathrm {[1]}\) RKD2: real: LF heading rate gain, \(\mathrm {[1/T]}\) RKD3: real: Bias moment gain, \(\mathrm {[FL]}\) RKD4: real, default: 0.2: HF heading gain, \(\mathrm {[1]}\) In a case with zero or negligible wave frequency yaw motion, RKD4 should be set to zero. External controller function data (IDP = 3) 1 identification input line for a user-supplied external dynamic positioning controller EXTErnal DYNAmic POSItioning 1 input line, path and filename of library containing the controller TXXDP TXXDP: character(120): Character string giving path and filename 1 input line NPCUR NPCUR: integer > 0: Number of points where current velocities shall be given to the external DP-system library MTDP controller (IDP = 4) No input data on the system description file for this controller, but the communication settings must be given as described in MTDP communication. Velocity PI controller (IDP = 5) 1 identification input line, velocity reference from HLA VELOcity CONTroller DATA 1 input line, stiffness coefficients, \(\mathrm {K_P}\) RKVELX RKVELY RKVELM RKVELX: real: Velocity feedback in surge, \(\mathrm {[FT/L]}\) RKVELY: real: Velocity feedback in sway, \(\mathrm {[FT/L]}\) RKVELM: real: Velocity feedback in yaw, \(\mathrm {[FTL]}\) 1 input line, integral coefficients, \(\mathrm {K_I}\) RKINTX RKINTY RKINTM RKINTX: real: Integral feedback in surge, \(\mathrm {[F/L]}\) RKINTY: real: Integral feedback in sway, \(\mathrm {[F/L]}\) RKINTM: real: Integral feedback in yaw, \(\mathrm {[FL]}\) 1 input line TCWF ETAWF TFILTX TFILTY TFILTM TCWF: real, default: 10: Centre period of wave filter \(\mathrm {[T]}\) ETAWF: real, default: 1: Strength of wave filter, 0 ⇐ ETAWF ⇐ 1 TFILTX: real, default: 2.5: Filter period for surge, \(\mathrm {[T]}\) TFILTY: real, default: 2.5: Filter period for sway, \(\mathrm {[T]}\) TFILTM: real, default: 2.5: Filter period for yaw, \(\mathrm {[T]}\) 30. Body components This data group enables the user to define body points equipped with specified attributes and equipments. The data group `Body components' defines two types of connection points for coupling elements: Fixed point at a defined location on the body where an end of a coupling element may be attached Guide point at a defined location on the body where a coupling element may slide through and a specification of equipment that may be located at the point: - Winch - Motion compensator - Tensioner (only to a fixed point) A coupling element may be connectable or disconnectable at a fixed connection point, from HLA. 1 identification input line. BODY COMPonents 1 identification input line COUPling POINt Text for description of the coupling point, 2 input lines TXSYS TXSYS: character(60): Character string describing the coupling Coupling point type and location, 1 input line CHCOPO CHPPT XCPL YCPL ZCPL CHCOPO: character(32): Identifier for coupling point. CHPPT: character(4): Type of coupling point = FIXEd: Fixed point = GUIDe: Guide point XCPL: real: X-coordinate of coupling point in body fixed coordinate system, \(\mathrm {[L]}\). YCPL: real: Y-coordinate of coupling point in body fixed coordinate system, \(\mathrm {[L]}\). ZCPL: real: Z-coordinate of coupling point in body fixed coordinate system, \(\mathrm {[L]}\). Control of fixed coupling point This data group is optional for a fixed coupling point (CHPPT = FIXED) 1 identification input line POINt CONTrol 1 input line NAME-POINT-CONTROL POINT-CONTROL-TYPE NAME-POINT-CONTROL: character(32): Name (identifier) of the CONTROL POINT-CONTROL-TYPE: character(4): HLA Connectable fixed coupling point This data group is optional for a fixed coupling point (CHPPT = FIXED) 1 identification input line HLA CONNectable 1 input line CHHCO CHHCO: character(32): Identifier for HLA Connectable point Motion compensator at fixed coupling point This data group defines the motion compensator attached to the coupling point. The data group is optional for a fixed type of coupling point (CHPPT = FIXED) 1 identification input line MOTIon COMPensator Type of motion compensator, 1 input line CMOCO CMOCO: character(4): = HC_S: SIMO Heave Compensator = HC_D: DLL Heave Compensator SIMO heave compensator This data group defines a SIMO built-in heave compensator (CMOCO = HC_S) 1 input line ITYPE ITYPE: integer, default: 1: Compensator type: = 1: Generic model, without detailed model of internal components If ITYPE = 1, 1 input line LIMOD FACTOR AMPMAX EHLA LIMOD: integer: Limitation handling mode for the compensator. = 1: FACTOR active = 2: FACTOR active, amplitude limit AMPMAX = 3: Limit AMPMAX FACTOR: real ⇐ 1: Reduction factor for compensator action at high sea states AMPMAX: real: Clipping level for crane motion measurement \(\mathrm {[L]}\) EHLA: integer: = 0: No export to HLA = 1: Piston position exported to HLA If ITYPE = 1, 1 input line NWIRE NWIREC STROKE ACYL NWIRE: integer: Number of wire parts from crane top to hook NWIREC: integer: Number of wire parts around compensator cylinder STROKE: real: Max. range of elongation (stroke length) \(\mathrm {[L]}\) ACYL: real: Cylinder cross section area \(\mathrm {[L^2]}\) If ITYPE = 1, 1 input line HCKP HCTD HCKF HCTFD HCKQ HCTQ TF1 HCKP: real: Gain factor in feedback HCTD: real: Time derivative in feedback HCKF: real: Gain factor in feedforward HCTFD: real: Time derivative in feedforward HCKQ: real: Characteristics of valve HCTQ: real: Valve time constant TF1: real: Time constant in low-pass filter If ITYPE = 1 and EHLA=1, 1 input line HC_HLA HC_HLA: character(120): HLA name of this HC DLL heave compensator This data group identifies the dynamic linked library (DLL) within which an external heave compensator is described (CHMOCO = HC_D) Name of DLL name, 1 input line CHCLIB CHCLIB: character(120): Character string for HC library name, incl. path 1 input line NPCUR NPCUR: integer > 0: Number of points where current velocities shall be given to the external HC library Tensioner at fixed coupling point This data group defines the passive tensioner attached to the coupling point. The data group is optional for a fixed type of coupling point (CHPPT = FIXED). An example of the force-displacement characteristic for two pre-set mean forces (blue and green lines) is illustrated in the figure below where also the piston motion range due to wave motion is illustrated by a red arrow. Figure 18. Force - displacement characteristic of a passive tensioner 1 identification input line TENSioner 1 input line FTENS DF_DT STIFFT STROKE IHLA FTENS: real: Pretension in tensioner \(\mathrm {[F]}\) DF_DT: real: Max. rate of change in pretension \(\mathrm {[F/T]}\) STIFFT: real: Stiffness at specified pretension \(\mathrm {[F/L]}\) STROKE: real: Max. range of elongation (stroke length) \(\mathrm {[L]}\) IHLA: integer: = 0: No control from HLA = 1: FTENS adjustable from HLA If IHLA=1, one line CPTHLA CPTHLA: character(120): HLA name of this tensioner Winch at fixed coupling point 1 OPTIONAL line if CHPPT = FIXEd COUPling WINCh If Coupling Winch, 1 input line CHCOWI CWICO CHCOWI: character(32): Identifier for coupling winch CWICO: character(4): Type of coupling winch control = NRUN: Predefined running of winch = HLA: HLA-Joystick = EXT: External control using an Generic External Control System 1 input line if COUPling WINCh and CHPPT = FIXEd WACCM WVELM DRUMA DRUML NRUN WACCM: real: Max. run acceleration for winch \(\mathrm {[L/TT]}\) WVELM: real: Max. run velocity for winch \(\mathrm {[L/T]}\) DRUMA: real: Max. wire length that can be added to drum \(\mathrm {[L]}\) DRUML: real: Initial wire length at drum \(\mathrm {[L]}\) NRUN: integer: Number of winch run intervals. (Dummy if CWICO = HLA) DRUMA and DRUML represent limitation to winch operation. NRUN input lines if COUPling WINCh and CHPPT = FIXEd and NRUN > 0 TSTART TSTOP RUNVEL TSTART: real: Start time for running winch, \(\mathrm {[T]}\). TSTOP: real: Stop time for running winch, \(\mathrm {[T]}\). RUNVEL: real: Winch run velocity (positive when paying out), \(\mathrm {[L/T]}\). Guide point 1 input line if CHPPT = GUIDe DGUID DV1 DV2 DV3 DGUID: real: Diameter of guide hole DV1: real: X-comp. of vector normal to hole in body fixed coordinate system, \(\mathrm {[L]}\). DV2: real: Y-comp. of vector normal to hole in body fixed coordinate system, \(\mathrm {[L]}\). DV3: real: Z-comp. of vector normal to hole in body fixed coordinate system, \(\mathrm {[L]}\). 31. Generic External Control System This data group enables the user to define a connection between SIMO and an external Java control system. The control system takes measurements i.e. values from chosen components of the model and returns feedback from the control system to specified SIMO components. The following measurement component TYPEs are currently supported: BODY COUPLING The following feedback component TYPEs are currently supported: WINCH For additional information on how to develop a control system for use in SIMO, see User-supplied Java code. For each body there may be defined several external control systems. They are numbered according to the location on the system description file. 1 identification input line. GENEric EXTErnal CONTrol system 1 input line. GECID GECID: character: External control system identifier, must be unique Text for describing external forces, 2 input lines. TXEXT TXEXT: character: Text describing external control system External control system specification, 2 input lines JARNAME CLASSNAME JARNAME: character: Filename of jar-file with control system class CLASSNAME: character: Name of class in jar-file with control system Main parameters, 1 input line NFEED NMEAS NINT NREA NSTR NFEED: integer, default: 0: Number of feedback entities NMEAS: integer, default: 0: Number of measurement entities NINTS: integer, default: 0: Number of integer input parameters NREAS: integer, default: 0: Number of real input parameters NSTRS: integer, default: 0: Number of input strings Entities to be controlled, NFEED input lines TYPEn CTRIDn TYPEn: character: Feedback entity type CTRIDn: character: Feedback entity id Measurements specifications, NMEAS input lines TYPEn MEASDn TYPEn: character: Measurement entity type MEASn: character: Measurement entity id Integer parameters, NINT pairs of input lines CHIDINTn IDINTn: character: String identifier for integer parameter no n INTn INTn: integer: Integer parameter no n Real parameters, NREA pairs of input lines CHIDREAn IDREAn: character: String identifier for real parameter no n REAn REAn: real: Real parameter no n String parameters, NSTR pairs of input lines CHIDSTRn IDSTRn: character: String identifier for string parameter no n TXSTRn TXSTRn: character: String no n