OpenFAST / openfast

Main repository for the NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes.
http://openfast.readthedocs.io
Apache License 2.0
648 stars 447 forks source link

Some questions in pitch system. #1367

Closed DL-JerkLearner closed 1 year ago

DL-JerkLearner commented 1 year ago

Hello everyone! I am having some problems simulating the failure of the pitch system of a 5MW WT using the ROSCO controller and would like to be taught. I don't know how to simulate the following situations.

**1. maximum value of pitch angle. That is, no matter what the wind speed is, the maximum angle of the pitch cannot exceed a certain set value. An example is: even if the wind speed has reached 20m/s, the maximum pitch angle is still 5deg.

  1. Wrong pitch angle. In a certain wind speed, the theoretical pitch angle should be 5deg, but the actual pitch angle is 7deg, 2deg is the set deviation value.

3、Initial error of pitch angle. The deviation value of a certain angle has been generated before the wind turbine operation. There is also a doubt about this point. Does the pitch controller automatically adjust the proper pitch angle? The effect I want to achieve is that when a 2deg deviation is generated initially, it will be a 2deg deviation in the future. In other words, this stage simulates the data after the fault is generated, not just the initial few seconds when the fault occurs.**

One more thing, can openFAST also simulate pitch system failures other than those mentioned above? (except for pitch angle fixing and pitch retraction errors)

Thanks.

dzalkind commented 1 year ago

Hi,

I don't think that OpenFAST can simulate these conditions. In ROSCO, we have implemented No. 2:

No. 1 should be simple to implement. I don't understand how 2 and 3 are different. Please feel free to start a discussion on the ROSCO repository.

Best, Dan

uniqueusername-sahil commented 1 year ago

Hi @dzalkind,

Thanks for highlighting the parameters needed to insert a pitch fault, but I am wondering if it is possible to create a fault while the simulation is running. So in a e.g. 60 second simulation the first 10 seconds the turbine is perfect, then over the following 20 seconds one blade pitch starts to drift and by the last 10 seconds the blade is totally askew.

I am intending to use the Simulink version of ROSCO, so my thought was to manipulate the blade position between the ROSCO pitch controller and the input to FAST_SFunc block which would imply an acutator problem. Another option may be to manipulate the actual blade position coming from FAST which would imply a pitch sensor error.

Similar could be done with the yaw controller, either manipulate the actual yaw out of FAST so simulate a sensor error, or manipulate the controller output as a controller / actuator malfunction.

Regards, Sahil

jjonkman commented 1 year ago

Dear @uniqueusername-sahil,

What you describe is achievable directly within OpenFAST (rather than ROSCO) via the override pitch maneuvers (via ServoDyn inputs TPitManS, PitManRat, and BlPitchF), the commands of which override the commands coming from the pitch controller.

Best regards,

uniqueusername-sahil commented 1 year ago

Dear @jjonkman ,

Thank you for pointing out these commands. What would be the recommended way of driving these inputs from a Simulink environment?

Thanks, Sahil

jjonkman commented 1 year ago

Dear @uniqueusername-sahil,

The override maneuvers I mentioned are features directly available in ServoDyn (settable through the input file), which will override the control commands coming from Simulink or other user-defined controls. I imagine that you could customize your Simulink model to also add commands that override what the controller is doing.

Best regards,