Hi everyone
I am trying to implement a yaw-by-IPC controller for the 15 MW reference wind turbine mounted on a floater. My current attempts seem to work fine at a given wind speed but poorly at others (for example, I manage to have a good alignment between the RNA and the wind at rated speed, but pretty poor at around 25 ms).
Is anyone aware of published values for the yaw-by-IPC in ROSCO, or any work that has looked into this? I imagine the values would be floater specific, but values for the UMaine semisub or even the bottom-fixed version would be a good starting point.
Thanks,
Loup
Hi Loup,
We don’t yet have yaw-by-IPC set up in ROSCO for a generic turbine. I worked on it in the past for a partner with a single point mooring system and recall similar behavior: the yaw stiffness of the floating platform decreases at higher wind speeds.
You may want to try tuning the controller for adequate performance at 25 m/s, and seeing if the same gains will apply to near rated, or you could try implementing a gain scheduling mechanism.
I hope this helps.
Best, Dan
Thanks a lot Daniel. I have two follow-up question:
-
about gain scheduling: I see that the latest version of ROSCO has, in the DISCON.IN input file, the possibility to input several values for KP and KI. Is that how gain scheduling would be implemented? How does ROSCO select which gain it uses?
-
in my case I also had issues at very low wind speeds as well (3 - 4 ms). Did you experience that as well? My hypothesis was that somehow yaw-by-IPC was struggling to work properly when the controller is already doing collective pitch (i.e. very low speeds and above rated), do you think that can have anything do to with what I am describing?
In any case, I will try to tune for individual wind speeds, that would probably be good enough for now.
One last question: is the theory behind the yaw-by-IPC feature explained somewhere? I checked the User Manual but could not find it there.
Again, thanks for your time,
Loup
Hi Loup,
- ROSCO interpolates the gains provided by the DISCON.
- There’s going to be low thrust at both low wind speeds and high wind speeds (due to the high pitch angle), and I think that will contribute to the low yaw stiffness.
We haven’t published any theory, but here is a paper that explains some.
I hope this helps.
Best, Dan
Thanks Dan
About your 1st point: I am looking at this document: 4. ROSCO Structure: Controller — ROSCO 2.9.4 documentation
What I understand is that I will input an array for the P and I gains, but shouldn’t there be an input for the corresponding angles (which would then be an array the same length)?
Hi Dan
Apologies for the misunderstanding, I was talking about the array corresponding to the Y_IPC_KP parameter. In the latest ROSCO documentation, it seems like that parameter can be an array, but I am not sure how that array is then interpreted by the controller.
The input example you linked to (which is similar to the one I have been using) only takes one gain value for the yaw-by-IPC. I am happy to stick to that for now (and use different values for different wind speeds), but I was under the impression that the fact that it can take an array meant scheduling could be done within the yaw-by-IPC itself
Hi, Loup and daniel
I am doing on this topic. I can not figure out a way to fill about IPC_KP, IPC_KI, IPC_aziOffset, Y_MErrSet, Y_IPC_IntSat, Y_IPC_KP Y_IPC and Y_IPC_KI.
I want to see that my model that have 3 moorings with single point is moved by ditterent thrust.
- How did you set your notes that i wrote?
- Do i have to turn IPC_ControlMode into mode 1 to use Y_ControlMode with mode 2?
best regards,
I believe IPC_ControlMode must be 0 to use Y_ControlMode of 2.
Here is where the controller is implemented: ROSCO/rosco/controller/src/Controllers.f90 at 974290ec39f7322a9ae83ffa989444bfbea8728b · NatLabRockies/ROSCO · GitHub
Here is where you can find documentation of the various inputs: 5. ROSCO Structure: Toolbox — ROSCO 2.10.4 documentation
I hope this helps.
Best, Dan
Thank you for your reply.
I already know the link you give. But i couldn’t understand why IPCmode have to be 0 to use Y_control mode of 2. Where did you get the point that make sure? And.. i want to know how can i set the topics like KP, Ki and etc.. Can you tell me..?
This is my first work on controller. So i don’t know well about this field. I am sorry for asking again.
Thank you, Best regards.
Hi Jihan,
Both IPC_ControlMode and Y_ControlMode will use individual pitch control, but for different aims. It’s unclear what will happen if both are used. If you’d like to use both, you can disable the error catching in this line: ROSCO/rosco/controller/src/ReadSetParameters.f90 at 974290ec39f7322a9ae83ffa989444bfbea8728b · NatLabRockies/ROSCO · GitHub
I suggest reviewing the literature previously shared in this post and other resources on tuning PID controllers for setting the gains. I cannot provide additional support at this time.
Best, Dan