Hello,
I was running the 15MW Simulink wind turbine for testing the IPC performance. After MBC, the bending moment was transformed to the stationary axis with M_tilt and M_yaw. Then they are controlled with PI and output theta_tilt and theta_yaw, seperately. The scope shows that the theta_yaw is very small and close to zero. I was wondering whether it is right for the whole simulation.
I am using the ROSCO.mdl and with 15ms steady wind speed. The corresponding individual pithc angle is given as follows.
I would be so so grateful if you can help to check. Thanks in advance.
Hi Yongxiang,
This depends on your simulation and controller. For IPC, if no yaw moment is calculated from the blade loads, then the yaw pitch angle will be small.
Best, Dan
Hi Dan,
Thank you very much for your prompt response.
For the simulation setting, I just opened the IPC_ControlMode=2 and changed the IPC_KI parameters in DISCON.IN.
!------- INDIVIDUAL PITCH CONTROL -----------------------------------------
8.472000 10.590000 ! IPC_Vramp - Start and end wind speeds for cut-in ramp function. First entry: IPC inactive, second entry: IPC fully active. [m/s]
2 ! IPC_SatMode - IPC Saturation method (0 - no saturation (except by PC_MinPit), 1 - saturate by PS_BldPitchMin, 2 - saturate sotfly (full IPC cycle) by PC_MinPit, 3 - saturate softly by PS_BldPitchMin)
0.3 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad]
0.000e+00 0.000e+00 ! IPC_KP - Proportional gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-]
0.200e+00 0.010e+00 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-]
0.000000 0.000000 ! 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]
So, do you have some preference on how to set the optimal IPC_KP and IPC_KI? Or whether I ignore some parameter mode during the simulation?
Best,
Yongxiang
Hi Yongxiang,
I would tune those parameters to minimize the variation in blade root loading. I recommend starting with small values of IPC_KI and increasing until you see diminishing returns.
Best, Dan
Thanks Dan, it is really helpful.
If my understanding is correct, the ROSCO IPC for tuning the IPC_Kp IPC_KI is dynamically soft cutin with a sigma function (Controllers.f90).
! Soft cutin with sigma function
DO i = 1,2
LocalVar%IPC_KP(i) = sigma(LocalVar%WE_Vw, CntrPar%IPC_Vramp(1), CntrPar%IPC_Vramp(2), 0.0_DbKi, CntrPar%IPC_KP(i), ErrVar)
LocalVar%IPC_KI(i) = sigma(LocalVar%WE_Vw, CntrPar%IPC_Vramp(1), CntrPar%IPC_Vramp(2), 0.0_DbKi, CntrPar%IPC_KI(i), ErrVar)
END DO
But I found that simulink model for intergral gain IPC_KI is a user-defined constant, which means in every sampling step, the IPC_KI is same. If it is true, then it is an optimal problem for tune the PI controller parameter. May I formulate an optimal problem with the decision variables as [IPC_Kp, IPC_KI], and then the objection function would be the sum of blade root moment DEL(M1+M2+M3)?
To implement this idea, what I need to do for the next procedure is that I change the fortran controller.f90 routine and then recompile it to work with cmake command?
Thanks for your attention.
Best,
Yongxiang