Validation of linear model for IPC control

Dear all,

I am trying to get a linear model for IPC control for load mitigation.
According to some papers, I linearized Fastv3.0 under the wind speed at 16m/s with the GenDOF and FlapDOF1 enabled. Then I applied fx_mbc3 for the 36 .lin files.

Generally, the perturbation state space model from Fast linearization reads as
image

Q1: if I regard the magnitude and direction of wind as the disturbance, should here be Δw ?

So far I got the ss-model with the state vector x composed by Variable speed generator, flapwise bending-mode of blade1,2,3 and the corresponding derivation of them. The inputs are blade pitch command of 1,2,3.
Q2: Could I use RootMyb1,2,3 as the output to evaluate the performance of blade loads? Or there are more appropriate ones? And can I get the numerical value of x from OutData?

Conventionally, I eliminated the columns and rows related to azimuth in MBC_AvgA,B,C,D after the MBC transformation. And then the ss-model has been rearranged as

Q3:What is the physical meaning of L1,2,3? (1st flapwise bending-mode DOF of blade 1 (internal DOF index = DOF_BF(1,1)), m) Is that the displacement of flapwise bending of each blade?

Q4: I want to obtain a ss-model with
image

like some other meterials do. What should I do to the model? I tried to eliminate M_0 L_0 β_0 like azimuth, and compared 7-state model with 5-state model, the bode plot\Nyquist plot\Step response looks the same. Is this reasonable?

Q5: If I have done everything correctly, how can I compare this linear model with Fast model? I saw some discussion in the forum, they mentioned that give step wind step. Does that mean the input of u is fixed at zero to linear model, and Uop to FAST model, and change the wind input file for FAST model while give the perturbation of the wind in vector w for the linear model? (u contains the three blade pitch angles)

Q6:I know that the operating point should be introduced, but what’s the Xop Uop and Yop in the non-rotating frame? If I just use the average of x_op u_op y_op in FAST_linData, how can I get the mbc transformed O.P?

Looking forward to your reply.

Best regards,
Yarong

Dear @Yarong.Zhou,

Here are my answers to your questions:

  1. In the linearized model, all states, inputs (including disturbances), and outputs represent perturbations about the operating point. So, the wind disturbance input is also a perturbation about the operating point.

  2. Yes, blade root flapwise moments are typical blade loads used to assess control impact on blade loads. The operating point values of states, inputs, and output are written to the linearization (.lin) output files of OpenFAST.

  3. The MBC3-transformed blade states represent the collective (0) and asymmetric (C, S) rotor modes associated with the blade flapwise deflection.

  4. You can always ignore inputs and outputs that you don’t want. Other than the azimuth state, I wouldn’t eliminate other states unless they have no influence on the response you are concerned with.

  5. It sounds like you have done everything correctly. To compare the linear and nonlinear models, I would run equivalent simulations in each. For example, a stepwise wind input or a stepwise pitch input. Of course, you’ll have to ensure that the inputs are set up correctly in each model (with the inputs to the linear model being the perturbation about the operating point) and the outputs should be compared by adding the perturbation to the operating point from the linear model.

  6. I wouldn’t change the frame of reference of the nonlinear model. Instead, I would convert the output of the linear model from the nonrotating to the rotating frame and add the OP perturbation to compare to the nonlinear solution, e.g., as discussed in the following forum topic: OpenFAST: Linearization of NREL 5MW Onshore Turbine - #9 by Jason.Jonkman.

Best regards,

Dear @Jason.Jonkman ,

Thank you very much for your helpful response and also the discussion you recommended, I have already got results as below, the linearization is taken under the wind speed 16m/s with 2 DOFs enabled. All DOFs are enabled in the nonlinear model for comparison.

Case1 Wind speed=16m/s blade pitch=0.2059rad
image

Case 2 0.2m/s step based on 16m/s wind speed at 50s (the red line), with blade pitch = 0.2059 in the duration.
image

Case 3 0.02rad/0.01rad step to blade pitch command at 10s and hold wind speed at 16m/s in the duration.
image
image

Q1 The curves are not exactly the same under the extra step, which is different like things in other discussions. Is that okay or with some technical issues ?
This is my linear model, where I consider the collective blade pitch command as a input disturbance( but the two curves are more closer without consideration of it ). And since the generator torque and nacelle yaw are fixed, I didn’t include them.

Q2: One thing puzzled me is how to deal with the state x, in all simulation I ran the initial value of x is defined to be 0.

Q3: Since the linear model is a perturbation model, do OPs should always be introduced? If there is turbulent wind instead of steady wind, how to define the OPs?

Thanks for your valuable time and kind guidance! Looking forward to your reply.

Best regards,
Yarong

Dear @Yarong.Zhou,

Which two DOFs did you enable and what you are plotting for comparison?

Regardless, here are my responses:

  1. I don’t think I can comment without answering my two questions above.
  2. Initializing the states to zero is likely OK because you likely want your model to have zero output when the input perturbations are zero. With zero input and zero output, then the linear and nonlinear models should agree because the perturbations about the operating point are zero.
  3. Yes, you’ll need to add the perturbations generated from the linear model to the operating point in order to compare the linear and nonlinear solutions. An operating point should be derived from steady conditions, so, should not include turbulence. But you can add turbulence to your linear model by including the variations about the mean in the wind disturbance input. (And of course you can add turbulence to the nonlinear model). This the wind disturbance in the linear model represents wind that is uniform across the disk. So, this should compare well with WindType = 2 in InflowWind, but will differ from full-field turbulence (e.g., WindType = 3 in InflowWind where full field turbulence is derived from TurbSim).

Best regards,

Dear @Jason.Jonkman,

Thanks for your reply.

To linearize the model, I enabled GenDOF and FlapDOF1. By eliminationg the aimuth and L_0, beta_0 and M_0 state, my linear model is 2I2O with 5 states. When I compare the linear model and FAST model, I enabled all DOFs.
image

For your answer to the third question, my understanding are as follows. The lookup tables of OPs are generated under a steady wind speed, for example, 16m/s. If the inflowWind is turbluent with mean wind speed at 16m/s like
image
I can still use the lookup table generated at 16m/s even the wind speed is not always at 16m/s?

Looking forward to your answer. Thank you very much!

Best regards,

Dear @Yarong.Zhou,

OK, thanks for clarifying, but I’m not sure what you mean when you say that you eliminate the “L_0, beta_0 and M_0 state”.

Presumably you’ve applied MBC3 and transformed the blade states, inputs, and outputs from the rotating to a fixed frame of reference and azimuth-averaged the MBC3-transformed matrices? And to compare the linear solution to the nonlinear solution, are you applying an the inverse MBC3 transformation to the blade outputs and adding the periodic operating back?

Yes, you can use an operating point derived from a steady state wind speed of 16 m/s to analyze a linear model with turbulent wind about a mean wind speed of 16 m/s. The turbulence variations about the mean are the wind input disturbance perturbations to the linear model.

Best regards,

Dear @Jason.Jonkman ,

Thank you very much for your in time response.

Please go back to the Q4 I posted in the very beginning.

Here, eliminating means I deleted the corresponding columns and rows of M_0 L_0 β_0, like the way to deal with azimuth state.
And I also compare the two linear model, for example,


image

And this is your answer at that time.

As I understand it, the target of load mitigation contoller is to reduce M_c and M_s. From this perspective, there is no reference to control M_0. Beta_0 is determined by CPC controller in another loop. Therefore, the inputs of IPC controller are M_c and M_s, and the outputs of it are beta_c and beta_s. That’s why I said I want get a 2i2o linear model. Is that correct?

I paste my simulink model below for you to check.



I am really appreciate for your patient guidance.

Best regards,

Dear @Yarong.Zhou,

If I understand correctly, “L_0” is the collective blade flapwise displacement", “beta_0” is the collective blade pitch input, and “M_0” is the collective blade flapwise moment output. Calling these all “states” is what confused me because only “L_0” and its first time-derivative are states. My understanding is to go from 7 states to 5 states, you eliminate “L_0” and its first time-derivative.

As I said, you can always eliminate inputs and outputs that you don’t want. This is equivalent to not eliminating them, but setting the input to 0 and ignoring the outputs you don’t want to look at. But I would not eliminate states from the model (going from 7 to 5 states) unless those states have no effect on the response you care about.

I’m not fully understanding your Simulink model (e.g., where is Azimuth calculated?), but I don’t see any issues either.

Regarding the comparison of the linear and nonlinear system, does the response compare between when the nonlinear model has the same DOFs enabled (only GenDOF and FlapDOF1) as the linear model?

Best regards,

Dear @Jason.Jonkman ,

I am sorry for that stupid mistake in description. Thank you very much for your understanding. I eliminated L_0 and dL_0 state, and output M_0, input beta_0.

For brevity, I didn’t show all the details. All the FROM blocks I showed are collected from outData directly. And I enabled the two DOFs as you said in nonlinear model, the results are as below.


By the comparison of these two linear model, I found that only the wind speed magnitude lead to different result, which means without the consideration of disturbance, the performance of full order system and reduced order system are exactly the same. I am trying to unify the performances under wind speed magnitude disturbance.


image

My question: Is Bd_NR follows the same way as Dd_NR? I mean Bd_NR=inv*(T_1c)*Bd?

Thank you very much for your patience and detailed answer!

Best regards,

Dear @Yarong.Zhou,

Because the wind disturbance inputs are already formulated in the nonrotating frame of reference, Bd_NR is as follows;

Bd_NR = [ inv(T_1), 0; 0, inv(T_1) ]*Bd

Best regards,