Unexpected Oscillation under Prescribed Motion - ExtPtfm module

Dear NREL,

I have performed a large amount of simulations of the IEA Wind 15 MW under single-DOF prescribed motion using the ExtPtfm module by prescribing the mass, damping and stiffness matrices along with the adequate force time-history. I managed to obtain the motion that I desired in all of them but one. The turbine was operating under normal conditions at rated speed. A power law with no turbulence was used. DT was 0.01 s. The controller was enabled and the turbine was modeled as a flexible turbine. This simulation was under prescribed roll, with an amplitude of 0.7 deg, a static roll displacement of 0.17 deg and a frequency of 0.009 Hz. All the other platform DOFs were disabled. Below, I present the roll time-series for this simulation and for two other simulations under the same conditions (only differing slightly in simulation time) but with a smaller and higher frequencies. No sudden oscillation is observed in those. Inspection of the force time-history reveals expected values before, during and after the sudden oscillation. The controller action comes after the spike so I guess that rules out any controller instability. Do you have an idea about what could cause these sudden bursts?

UnexpectedRoll.png

Some more time-series:

Dear Ricardo,

I’m not sure. To rule out that the controller is causing the problem, I would suggest running a simulation with the generator DOF disabled (GenDOF = False). Does the spike go away then?

For the ExtPtfm, are you using a large mass/inertia (large relative to the turbine mass/inertia), a high natural frequency (higher than the structural natural frequencies of interest, to determine the stiffness), and a high damping (60-70% critical), as recommended for use with the old Seismic functionality of FAST v7?

Best regards,

Dear Jason,

Disabling GenDOF makes the spike go away (see figure below). Thank you for your advise. Regarding the ExtPtfm, I used a roll inertia I equal to 10^8 times that of the one present in ElastoDyn. I prescribed a stiffness k = w² x I with w = 2pi x 0.09 rad/s so the natural frequency is equal to the frequency of the motion I prescribed (0.09 Hz). The original structural frequencies of the turbine are 0.01221 Hz (surge/sway), 0.02441 Hz (pitch/roll), 0.03052 Hz (heave), 0.09155 Hz (Yaw), 0.4944 Hz (fore-aft), 0.5127 Hz (side-side), 0.555 Hz (1st flapwise), 0.642 Hz (1st edgewise). The 1P frequency is 0.126 Hz and the turbine is operating a rated wind speed. The damping was 65% critical. Do you see any inconsistency with the values I prescribed?

So far, this was an isolated event among many other simulations, all of which had their matrices and force time-histories prescribed in exactly the same way. As an example, a simulation with the same amplitude and frequency for pitch but with a static displacement of 4.26 deg produces a completely normal and correct sinusoid. However, I have no experience with controllers. Have you ever seen this type of of spike with recovery before?

UnexpectedRollNoController.png

Dear Ricardo,

Well, indeed it sounds like there is something in the controller leading to a small spike in the blade-pitch angle that triggers the spike throughout the system. Can you share your ServoDyn and ROSCO input files?

Regarding your settings in ExtPtfm, by setting the natural frequency equal to the excitation frequency, I gather that you resonating the structure, so, the amplitude of motion is limited by the damping present. This is a bit different than we recommended when using the Seismic module of FAST v7, whereby we recommended that the natural frequency be set higher than any structural natural frequency (this requires a smaller time step) and then prescribe the motion at the frequency you want (but lower than the natural frequency). Because the natural frequency and excitation frequencies differ, the structural will not be resonated, which may make it easier to set the amplitude of the prescribed motion. Your approach should work as well, but I would guess it may be harder to control the amplitude of motion.

Best regards,

Dear Jason,

I’m posting the inputs below. They were originally written for OpenFAST 2.1 so I had to add/remove some variables for compatibility with 2.4. Also, a non-functional libdiscon.so was provided with the model, so I’m using the one from the IEA Wind 15 MW from Github.

— ServoDyn

------- SERVODYN v1.05.* INPUT FILE -------------------------------------------- IEA 15 MW WindCrete Gran Canaria COREWIND, Climent Molins (Climent.Molins@upc.edu), Pau Trubat (Pau.Trubat.Casal@upc.edu). M.Youssef Mahfouz (mahfouz@IFB.Uni-Stuttgart.de) ---------------------- SIMULATION CONTROL -------------------------------------- False Echo - Echo input data to <RootName>.ech (flag) "default" DT - Communication interval for controllers (s) (or "default") ---------------------- PITCH CONTROL ------------------------------------------- 5 PCMode - Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) 0.0 TPCOn - Time to enable active pitch control (s) [unused when PCMode=0] 9999.9 TPitManS(1) - Time to start override pitch maneuver for blade 1 and end standard pitch control (s) 9999.9 TPitManS(2) - Time to start override pitch maneuver for blade 2 and end standard pitch control (s) 9999.9 TPitManS(3) - Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades] 2.0 PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s) 2.0 PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s) 2.0 PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades] 0.0 BlPitchF(1) - Blade 1 final pitch for pitch maneuvers (degrees) 0.0 BlPitchF(2) - Blade 2 final pitch for pitch maneuvers (degrees) 0.0 BlPitchF(3) - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades] ---------------------- GENERATOR AND TORQUE CONTROL ---------------------------- 5 VSContrl - Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) 2 GenModel - Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0] 96.55 GenEff - Generator efficiency [ignored by the Thevenin and user-defined generator models] (%) True GenTiStr - Method to start the generator {T: timed using TimGenOn, F: generator speed using SpdGenOn} (flag) True GenTiStp - Method to stop the generator {T: timed using TimGenOf, F: when generator power = 0} (flag) 9999.9 SpdGenOn - Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False] 0.0 TimGenOn - Time to turn on the generator for a startup (s) [used only when GenTiStr=True] 9999.9 TimGenOf - Time to turn off the generator (s) [used only when GenTiStp=True] ---------------------- SIMPLE VARIABLE-SPEED TORQUE CONTROL -------------------- 9999.9 VS_RtGnSp - Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1] 9999.9 VS_RtTq - Rated generator torque/constant generator torque in Region 3 for simple variable-speed generator control (HSS side) (N-m) [used only when VSContrl=1] 9999.9 VS_Rgn2K - Generator torque constant in Region 2 for simple variable-speed generator control (HSS side) (N-m/rpm^2) [used only when VSContrl=1] 9999.9 VS_SlPc - Rated generator slip percentage in Region 2 1/2 for simple variable-speed generator control (%) [used only when VSContrl=1] ---------------------- SIMPLE INDUCTION GENERATOR ------------------------------ 9999.9 SIG_SlPc - Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1] 9999.9 SIG_SySp - Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1] 9999.9 SIG_RtTq - Rated torque (N-m) [used only when VSContrl=0 and GenModel=1] 9999.9 SIG_PORt - Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1] ---------------------- THEVENIN-EQUIVALENT INDUCTION GENERATOR ----------------- 9999.9 TEC_Freq - Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2] 9998 TEC_NPol - Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2] 9999.9 TEC_SRes - Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2] 9999.9 TEC_RRes - Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2] 9999.9 TEC_VLL - Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2] 9999.9 TEC_SLR - Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2] 9999.9 TEC_RLR - Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2] 9999.9 TEC_MR - Magnetizing reactance (ohms) [used only when VSContrl=0 and GenModel=2] ---------------------- HIGH-SPEED SHAFT BRAKE ---------------------------------- 0 HSSBrMode - HSS brake model {0: none, 1: simple, 3: user-defined from routine UserHSSBr, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) 9999.9 THSSBrDp - Time to initiate deployment of the HSS brake (s) 0.6 HSSBrDT - Time for HSS-brake to reach full deployment once initiated (sec) [used only when HSSBrMode=1] 28116.2 HSSBrTqF - Fully deployed HSS-brake torque (N-m) ---------------------- NACELLE-YAW CONTROL ------------------------------------- 0 YCMode - Yaw control mode {0: none, 3: user-defined from routine UserYawCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) 9999.9 TYCOn - Time to enable active yaw control (s) [unused when YCMode=0] 0.0 YawNeut - Neutral yaw position--yaw spring force is zero at this yaw (degrees) 4.6273E+10 YawSpr - Nacelle-yaw spring constant (N-m/rad) 3.9088E+07 YawDamp - Nacelle-yaw damping constant (N-m/(rad/s)) 9999.9 TYawManS - Time to start override yaw maneuver and end standard yaw control (s) 2.0 YawManRat - Yaw maneuver rate (in absolute value) (deg/s) 0.0 NacYawF - Final yaw angle for override yaw maneuvers (degrees) ---------------------- TUNED MASS DAMPER --------------------------------------- False CompNTMD - Compute nacelle tuned mass damper {true/false} (flag) "unused" NTMDfile - Name of the file for nacelle tuned mass damper (quoted string) [unused when CompNTMD is false] False CompTTMD - Compute tower tuned mass damper {true/false} (flag) "unused" TTMDfile - Name of the file for tower tuned mass damper (quoted string) [unused when CompTTMD is false] ---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface] "/home/ramaral/T_IEA-15-240-RWT/OpenFAST/WindcreteSPAR/DataServo/libdiscon_IEA15Github.so" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] "/home/ramaral/T_IEA-15-240-RWT/OpenFAST/WindcreteSPAR/DataServo/DISCON.IN" DLL_InFile - Name of input file sent to the DLL (-) [used only with Bladed Interface] "DISCON" DLL_ProcName - Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface] "default" DLL_DT - Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface] True DLL_Ramp - Whether a linear ramp should be used between DLL_DT time steps [introduces time shift when true] (flag) [used only with Bladed Interface] 9999.9 BPCutoff - Cuttoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface] 0.0 NacYaw_North - Reference yaw angle of the nacelle when the upwind end points due North (deg) [used only with Bladed Interface] 0 Ptch_Cntrl - Record 28: Use individual pitch control {0: collective pitch; 1: individual pitch control} (switch) [used only with Bladed Interface] 0.0 Ptch_SetPnt - Record 5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface] 0.0 Ptch_Min - Record 6: Minimum pitch angle (deg) [used only with Bladed Interface] 0.0 Ptch_Max - Record 7: Maximum pitch angle (deg) [used only with Bladed Interface] 0.0 PtchRate_Min - Record 8: Minimum pitch rate (most negative value allowed) (deg/s) [used only with Bladed Interface] 0.0 PtchRate_Max - Record 9: Maximum pitch rate (deg/s) [used only with Bladed Interface] 0.0 Gain_OM - Record 16: Optimal mode gain (Nm/(rad/s)^2) [used only with Bladed Interface] 0.0 GenSpd_MinOM - Record 17: Minimum generator speed (rpm) [used only with Bladed Interface] 0.0 GenSpd_MaxOM - Record 18: Optimal mode maximum speed (rpm) [used only with Bladed Interface] 0.0 GenSpd_Dem - Record 19: Demanded generator speed above rated (rpm) [used only with Bladed Interface] 0.0 GenTrq_Dem - Record 22: Demanded generator torque above rated (Nm) [used only with Bladed Interface] 0.0 GenPwr_Dem - Record 13: Demanded power (W) [used only with Bladed Interface] ---------------------- BLADED INTERFACE TORQUE-SPEED LOOK-UP TABLE ------------- 0 DLL_NumTrq - Record 26: No. of points in torque-speed look-up table {0 = none and use the optimal mode parameters; nonzero = ignore the optimal mode PARAMETERs by setting Record 16 to 0.0} (-) [used only with Bladed Interface] GenSpd_TLU GenTrq_TLU (rpm) (Nm) ---------------------- OUTPUT -------------------------------------------------- False SumPrint - Print summary data to <RootName>.sum (flag) (currently unused) 1 OutFile - Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused) True TabDelim - Use tab delimiters in text tabular output file? (flag) (currently unused) "ES10.3E2" OutFmt - Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused) 30.0 TStart - Time to begin tabular output (s) (currently unused) OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) "GenPwr" "GenTq" END of input file (the word "END" must appear in the first 3 columns of this last OutList line)

— ROSCO

[code]! Controller parameter input file for the IEA-15-240-RWT wind turbine
! - File written using ROSCO Controller tuning logic on 01/26/20

!------- DEBUG ------------------------------------------------------------
0 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file}

!------- CONTROLLER FLAGS -------------------------------------------------
2 ! F_LPFType - {1: first-order low-pass filter, 2: second-order low-pass filter}, [rad/s] (currently filters generator speed and pitch control signals
0 ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion}
0 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions}
0 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control}
1 ! PC_ControlMode - Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control}
0 ! Y_ControlMode - Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC}
1 ! SS_Mode - Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing}
0 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator, 2: Extended Kalman Filter}
0 ! PS_Mode - Pitch saturation mode {0: no pitch saturation, 1: implement pitch saturation}
0 ! SD_Mode - Shutdown mode {0: no shutdown procedure, 1: pitch to max pitch at shutdown}
0 ! Fl_Mode - Floating specific feedback mode {0: no nacelle velocity feedback, 1: nacelle velocity feedback}
0 ! Flp_Mode - Flap control mode {0: no flap control, 1: steady state flap angle, 2: Proportional flap control}

!------- FILTERS ----------------------------------------------------------
0.4607 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s]
0.70000 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2]
0.00000 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s]
0.5 0.6 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-]
0.628320000000 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [rad/s].
0.21300 1.00000 ! F_FlCornerFreq - Corner frequency and damping in the second order low pass filter of the tower-top fore-aft motion for floating feedback control [rad/s, -].
1.16240 1.00000 ! F_FlpCornerFreq - Corner frequency and damping in the second order low pass filter of the blade root bending moment for flap control [rad/s, -].

!------- BLADE PITCH CONTROL ----------------------------------------------
28 ! PC_GS_n - Amount of gain-scheduling table entries
0.061387 0.089025 0.111184 0.130402 0.147722 0.163680 0.178598 0.192682 0.206100 0.218890 0.231158 0.243041 0.254621 0.265678 0.276596 0.287144 0.297491 0.307602 0.317520 0.327195 0.336859 0.346057 0.355488 0.364400 0.373303 0.382460 0.390818 0.399370 ! PC_GS_angles - Gain-schedule table: pitch angles
-0.4707 -0.3949 -0.3330 -0.2816 -0.2382 -0.2011 -0.1689 -0.1409 -0.1162 -0.0942 -0.0745 -0.0569 -0.0410 -0.0264 -0.0132 -0.0011 0.0101 0.0204 0.0298 0.0387 0.0469 0.0546 0.0618 0.0684 0.0748 0.0807 0.0863 0.0916 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains
-0.0094 -0.0085 -0.0077 -0.0070 -0.0065 -0.0061 -0.0057 -0.0053 -0.0050 -0.0047 -0.0045 -0.0042 -0.0040 -0.0039 -0.0036 -0.0035 -0.0034 -0.0033 -0.0031 -0.0030 -0.0029 -0.0028 -0.0027 -0.0027 -0.0025 -0.0024 -0.0024 -0.0023 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter)
1.570800000000 ! PC_MaxPit - Maximum physical pitch limit, [rad].
0.000000000000 ! PC_MinPit - Minimum physical pitch limit, [rad].
0.034900000000 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s].
-0.03490000000 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s].
0.791670000000 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s].
0.000000000000 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad]
0.017450000000 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad]

!------- INDIVIDUAL PITCH CONTROL -----------------------------------------
0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad]
0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-]
0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad].
0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s]

!------- VS TORQUE CONTROL ------------------------------------------------
96.55000000000 ! VS_GenEff - Generator efficiency mechanical power → electrical power, [should match the efficiency defined in the generator properties!], [%]
19624409.75999 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm]
4500000.000000 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s].
21586850.73599 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm].
0.000000000000 ! VS_MinTq - Minimum generator (HSS side), [Nm].
0.523600000000 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s]
31255062.12922 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2]
15000000.00000 ! VS_RtPwr - Wind turbine rated power [W]
19624409.75999 ! VS_RtTq - Rated torque, [Nm].
0.791670000000 ! VS_RefSpd - Rated generator speed [rad/s]
1 ! VS_n - Number of generator PI torque controller gains
-36454628.62851 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)
-2039220.08320 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)
9.00 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad].

!------- SETPOINT SMOOTHER ---------------------------------------------
1.00000 ! SS_VSGain - Variable speed torque controller setpoint smoother gain, [-].
0.00100 ! SS_PCGain - Collective pitch controller setpoint smoother gain, [-].

!------- WIND SPEED ESTIMATOR ---------------------------------------------
120.000 ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m]
1 ! WE_CP_n - Amount of parameters in the Cp array
0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function
0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad]
1.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-]
318628138.00000 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2]
1.225 ! WE_RhoAir - Air density, [kg m^-3]
“Cp_Ct_Cq.IEA15MW.txt” ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq)
101 73 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios
44 ! WE_FOPoles_N - Number of first-order system poles used in EKF
3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.24 11.74 12.24 12.74 13.24 13.74 14.24 14.74 15.24 15.74 16.24 16.74 17.24 17.74 18.24 18.74 19.24 19.74 20.24 20.74 21.24 21.74 22.24 22.74 23.24 23.74 24.24 24.74 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s]
-0.02216823 -0.02586293 -0.02955764 -0.03325234 -0.03694705 -0.04064175 -0.04433646 -0.04803116 -0.05172586 -0.05542057 -0.05911527 -0.06280998 -0.06650468 -0.07019939 -0.07389409 -0.07758880 -0.05251672 -0.05513898 -0.06148410 -0.06972031 -0.07936618 -0.09012729 -0.10180682 -0.11430744 -0.12756388 -0.14140211 -0.15579992 -0.17087585 -0.18664824 -0.20256185 -0.21931321 -0.23633449 -0.25391169 -0.27192045 -0.29039596 -0.30912439 -0.32872385 -0.34790708 -0.36846338 -0.38842442 -0.40898909 -0.43103810 -0.45141978 -0.47294282 ! WE_FOPoles - First order system poles

!------- YAW CONTROL ------------------------------------------------------
0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s]
0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad]
1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC)
0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp
0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki
0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s].
0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-].
0.0 ! Y_MErrSet - Yaw alignment error, set point [rad]
0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz]
0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz]
0.0 ! Y_Rate - Yaw rate [rad/s]

!------- TOWER FORE-AFT DAMPING -------------------------------------------
-1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag
0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s]
0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad]

!------- MINIMUM PITCH SATURATION -------------------------------------------
44 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin)
3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.24 11.74 12.24 12.74 13.24 13.74 14.24 14.74 15.24 15.74 16.24 16.74 17.24 17.74 18.24 18.74 19.24 19.74 20.24 20.74 21.24 21.74 22.24 22.74 23.24 23.74 24.24 24.74 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s]
0.06981317 0.06981317 0.06544985 0.05672320 0.04799655 0.03490659 0.02181662 0.00872665 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 ! PS_BldPitchMin - Minimum blade pitch angles [rad]

!------- SHUTDOWN -------------------------------------------
0.399370000000 ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad]
0.418880000000 ! SD_CornerFreq - Cutoff Frequency for first order low-pass filter for blade pitch angle, [rad/s]

!------- Floating -------------------------------------------
0.000000000000 ! Fl_Kp - Nacelle velocity proportional feedback gain [s]

!------- FLAP ACTUATION -----------------------------------------------------
0.000000000000 ! Flp_Angle - Initial or steady state flap angle [rad]
0.00000000e+00 ! Flp_Kp - Blade root bending moment proportional gain for flap control [s]
0.00000000e+00 ! Flp_Ki - Flap displacement integral gain for flap control [s]
0.000000000000 ! Flp_MaxPit - Maximum (and minimum) flap pitch angle [rad][/code]

Indeed I am resonating the structure but I’m prescribing the exact force that will lead to the desired motion, even under resonating conditions which comes from the solution of a linear mechanical system when subjected to a sinusoidal force of constant amplitude. I didn’t have any force related tunning to do. The only parameter I had to tune was the prescribed mass/inertia. The force I’m prescribing is:
ForceEquation.png

Hi Ricardo,

Based on the time series, it looks like something is causing a large roll just before 460 seconds, which speeds up the generator. When the generator speed exceeds the setpoint, there is a small peak in blade pitch after 460 seconds. It looks like the relative wind speed peaks right around 460 seconds and is caused by the rolling motion.

Perhaps the generator torque is causing the roll. Simulating very close to rated can be tricky with a controller because it will try to switch between torque and pitch control. Can you share the output GenTq and GenSpeed along with the other platform motions? If you set LoggingLevel to 1 in the ROSCO input file, it outputs helpful information about the internal ROSCO signals, and that could help us figure out what is happening here.

Best, Dan

Hi Daniel,

Thank you for helping. Posting the extra variables:

Posting the extra ROSCO output:

Dear Ricardo,
I was recently learning to give a motion to the IEA 15WM floating foundation via the Extptfm module, can I ask how you gave the mass, damping and stiffness matrix? Is it through the Guyan input file? If so, how is the values in the 6×6 matrix calculated?
Best regards,

Dear He Li,

I’m sending you two example input files for the ExtPtfm module and a paper where you can see how to calculate the values you want. The ExtPtfm_MCKF.dat is where you write the matrices and the force time-history to prescribe.

It seems that I can’t upload the files here so I leave a link to them: ExtPtfm_Inputs - Google Drive

Best regards,

Ricardo

1 Like

Dear Ricardo,
Thanks for your kind assistance!
I have downloaded the file you shared and I will read your article carefully.
Best regards,

Dear @He.Li ,
I have the seen problem as you. But i still don’t know how to calculate the mass, damping and stiffness matrix. So do you already know how to calculate it ?
Best regards