I am working on fault tolerant controllers .for that , i am using OPEN FAST . I am not familiar with how to create a actuator and sensor faults in OPEN FAST. please suggest me the steps for creating faults in the OPENFAST. thanks in advance
I am using a simple PI based collective pitch controller for actuator faults in the pitch system of the blade. I followed your suggestions and after I created a fault, I got blade 1 pitch angle 0 and other two blade pitch angles are same as the original angles of fault free open fast wind turbine system. but how can I make the blade pitch angles with reduced value but not the zero (e.g 25% or 50% abrupt reduction in the balde pitch angles) ?.I set the following options as follows
AeroDyn:
1 WakeMod - Type of wake/induction model (switch) {0=none, 1=BEMT, 2=DBEMT, 3=OLAF} [WakeMod cannot be 2 or 3 when linearizing]
1 AFAeroMod - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model} [AFAeroMod must be 1 when linearizing]
ServoDyn:
---------------------- PITCH CONTROL -------------------------------------------
4 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)
9999.9 TPCOn - Time to enable active pitch control (s) [unused when PCMode=0]
100.1 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 PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s)
2 PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s)
2 PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades]
0 BlPitchF(1) - Blade 1 final pitch for pitch maneuvers (degrees)
0 BlPitchF(2) - Blade 2 final pitch for pitch maneuvers (degrees)
0 BlPitchF(3) - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades]
I’m not sure I fully understand your question, but BlPitchF(1-3) are the final pitch angles after the override pitch maneuver. It looks like you’ve set this angle to 0deg for all 3 blades, but you can set these angles different from 0deg if you want to.
Thank you. I set BlPitchF(1)- 8 , BlPitchF(2)- 0 and BlPitchF(3)- 0 and I got finite pitch angle in blade 1 .But after I created a fault in blade 1 pitch angle ,I did not find any change in the generator speed graph. Generator speed graph after the fault is the same as that under before fault condition . I don’t understand why that is like that. thanks in advance
Yes. I enabled the (GenDOF =True). after creating a fault, I am getting the pitch angle with constant magnitude but not the time varying pitch angle . I am attaching a image from a reference paper i am referring which shows the following information.
(1) Before fault condition, the pitch angle in the blue colour is shown in the image
(2) In that image , the fault is created at 300 sec .from that 300 sec , the pitch angle is reduced
and it is time varying pitch angle shown in the red colour (During fault condition).
(3) After using collective pitch controller (CPC), the pitch angle is brought somewhat close to the
blue colour pitch angle. here , the controller is worked .
where as in my case , I am getting the constant pitch angle in all the above three cases and generator speed response is not at all varying. I am not able to identify the mistake . thank you in advance.
yes. I tuned simple PI collective pitch controller to the wind speed of 16m/s. I am attaching the plots before fault ( wind speed, blade pitch ,generator speed).
I created a fault at 200 sec in blade pitch angle-1 and blade pitch angles-2&3 are the same as that under before fault condition. I am attaching the plots after fault created. i am getting the constant blade pitch angle -1 from 200 sec in blade pitch angle-1 plot
Can you plot both sets of results in the same figures? I do see differences in the generator speed after the blade 1 pitch fault, but I also see differences in the generator speed before the pitch fault, which I would not expect.
1 WakeMod - Type of wake/induction model (switch) {0=none, 1=BEMT, 2=DBEMT, 3=OLAF} [WakeMod cannot be 2 or 3 when linearizing]
1 AFAeroMod - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model} [AFAeroMod must be 1 when linearizing]
ServoDyn:
---------------------- PITCH CONTROL -------------------------------------------
4 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 TPCOn - Time to enable active pitch control (s) [unused when PCMode=0]
200 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 PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s)
2 PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s)
2 PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades]
8 BlPitchF(1) - Blade 1 final pitch for pitch maneuvers (degrees)
0 BlPitchF(2) - Blade 2 final pitch for pitch maneuvers (degrees)
0 BlPitchF(3) - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades]
Thanks for updating the plots. Now it is clear that the blade pitch and generator speed are not the same before the fault. I would expect them to the be same if the two models are set up consistently, other than the fault in the second model. Did you accidentally change other inputs between the two models?
I set previously in aerodyn file AFAeroMod ==2 in fault free model .Now i modified the following in the fault free model.
AeroDyn:
1 WakeMod - Type of wake/induction model (switch) {0=none, 1=BEMT, 2=DBEMT, 3=OLAF} [WakeMod cannot be 2 or 3 when linearizing]
1 AFAeroMod - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model} [AFAeroMod must be 1 when linearizing]
I am attaching the plots
I got the pitch angle and generator speed are the same before fault condition. How can I get the time varying pitch angle after fault occurrence like I mentioned for 25 % reduction in actuator effective ness or 50% reduction in actuator effective ness ?
OK, thanks for clarifying. The results make more sense to me now. Indeed, the blade-pitch fault is influencing the generator speed, but I suppose the effect is less than you were expecting? Can you clarify what you were expecting to see? It seems to me that at the high wind you are simulating, even with one blade faulted there is still enough power to maintain the generator speed. What do you mean by a reduction in actuator effectiveness?
In a normal/nominal operation, pitch actuators operate exactly as directed by the controller. In other words, the actuators are ideally 100% effective in executing control commands. However, in real operations, the pitch actuators may experience faults resulting from dynamic changes, for example, due to pressure drop in their hydraulic lines . This decreases the effectiveness of actuators (<100% effective) which makes it impossible for the pitch actuators to fulfill the control commands completely. Then the actuator may not pitch the blade for the desired pitch angle.so i can take the cases like 25% effectiveness (or)50% effectiveness of the actuator . I want to simulate this whole scenario .the reference image I sent you comes under this case. In that the author used the NREL 5mw .How can I simulate the faults arising from the pressure drop in the hydraulic system ?
The only blade-pitch fault you can define directly within ServoDyn is the override pitch maneuver, which overrides what the pitch controller is doing. The fault you describe sounds like something you’d have to customize the controller to do.
My guess is the fault you showed earlier would have more effect on generator speed if you reduce the wind speed or if the final pitch angle after the fault was further away from the nominal pitch angle at the wind speed you are simulating.
I run the simulations by varying the final pitch angle after the fault that is BlPitchF(1)==10 , BlPitchF(1)==8 and BlPitchF(1)==4 . for the larger final pitch angle i.e. BlPitchF(1)==10, the pitch action is more .therefore , generator speed(in green curve) should be more controlled compared to the generator speed(in red and blue colour) for the settings BlPitchF(1)==8 and BlPitchF(1)==4 respectively. but the results I got are contradictory to my thinking .that is for BlPitchF(1)==10 , the generator speed response has aggressive nature compared to the other two responses. please explain why this is like that. i am attaching the generator speed response and corresponding generator power response.
thanks in advance
I assume you are simulating the same wind condition as you did before (with a mean wind speed of around 16 m/s). At this wind speed, a blade-pitch angle of 10 degrees is closer to nominal than 4 degrees. My guess is that the faulted 10-degree pitch results in more aggressive generator speed because the other two blades have better control authority to regulate speed than when a blade is faulted at 4 degrees.
To exaggerate the effect of the faulted blade, I would choose the extremities of blade pitch for the faulted blade, such as 0 degrees or 90 degrees.