Assesing a controllers stability and robustness

Dear all,
I successfully implemented a blade pitch PI-controller using OpenFAST and Simulink, following the guidance of this paper As a next step I want to assess my pitch controller’s and the systems performance regarding stability, robustness, responsiveness and how well it follows the set point.
I stumbled upon some issues, for which I would like to kindly ask for some assistance.

For the control design I linearized the wind turbine using OpenFAST in 5 deg azimuth steps with only the GenDOF enabled to obtain the azimuth-averaged state matrices and afterwards eliminating the generator-azimuth state from the model. Please find the linearization files attached.

  1. My approach is to analyse the system based on the closed-loop transfer-function which is given by eq. 3.7 on p. 29 of the referenced paper. The values I am using for eq. 3.7 are A = AvgA(2,2) (GenDOF), B = AvgB(2,9) (BladePitchCommand) and Bd = AvgB(2,1) (wind speed).

Does this approach seem sensible? Is it correct to use AvgB(2,1) for Bd (as there is no separate disturbance matrix since FASTv8)?

  1. Using this closed-loop transfer function I was able to determine the stability of the system by finding the tf’s poles, which are on the left-hand side of the complex plane. However, I am unsure of my approach to analyse the systems robustness using a bode diagram. One usually uses an open loop tf to determine the gain and phase margins. But how can I obtain an open loop tf for my system?

Thank you for the help
Jannik (175 KB)

Dear Jannik,

Regarding (1), I agree that your approach sounds correct. In FAST v8 and OpenFAST, the input and disturbance matrices are combined into a single matrix (B).

Regarding (2), I’m not an expert in controls design, but isn’t the open-loop transfer function just the response without the feedback controller, i.e., Eq. (3.7) with K_P = K_I = K_D = zero?

Best regards,