Linearization issue using Fast V7.02

Dear Babak,

Yes, I completely agree. But I thought that was the nature of your question. I thought were saying that when you used FAST to calculate Cpmax for the SWRT, you obtain Cpmax = 0.42 at TSR=5.6 by running a range of TSRs, but then when you run specifically at 10 m/s and the corresponding rotor speed for TSR=5.6, you no longer get Cpmax = 0.42. What am I missing? I no longer understand your question.

Best regards,

Dear Jason,

Thanks for your reply.
My problem is exactly at this part as you said:

Why this happens?

Kind regards,

Dear Babak,

So, at what condition can you run FAST and get Cpmax = 0.42 and how does that condition differ from the simulation at 10 m/s and TSR = 5.6?

Best regards,

Dear Jason,

That is my question.
I run FAST at constant wind speed and corresponding rotor speed for TSR= 5.6. I disable all DOFs. But why the Cp is not maximum considering that the rotor speed is set to its value at MPP?

Best regards,
Babak

Dear Babak,

We seem to be going in circles and I’m not sure how to help. Do you have two distinct FAST models, where one predicts the answer you expect and the other does not? If so, what is different between these models?

Best regards,

Dear Jason,

I don’t have two distinct models.
At first I find the optimal value for the TSR and Cp of the turbine.
Next I do the calculations in opposite direction: If I set that turbine to rotate at fixed optimal speed (for its corresponding wind speed) and I find the TSR and Cp values, they should be the optimal values that I had on the first step. But it is not!!
Because: TSR = (R*rotor speed)/v OR
rotor speed = (TSR *v)/R

Bests,

Dear Babak,

To answer your question, I need to understand what the difference is between these two FAST solutions:

Solution 1

Solution 2

What is the difference between how these two FAST solutions are set up or post-processed?

Best regards,

Dear Jason,

I want to do linearization around MPP. So I need to have the rotor speed at MPP and then do linearizations.
–But how to find rotor speed at MPP? To do this, I find the optimal TSR and then calculate the rotor speed at MPP for its corresponding constant wind speed. The values are surely correct.

The problem is when:
I just fix the wind speed to constant value and I set the optimal rotor speed to its corresponding wind speed. But there is an inconsistency in the FAST output for Cp and TSR while setting rotor speed to its MPP value.
All DOFs are disabled.
I expect to see that the TSR and Cp are the optimal values but they are not and Cp is lower than Cpmax!!!
But why?
The wind speed is constant and the turbine is set to rotate at fixed rotor speed at MPP. SO the TSR and Cp must be the optimal values.

Kind regards,

Dear Babak,

To debug this, I need to have the input files associated with Solution 1 and Solution 2 to see what is different between the two solutions. Please attach those.

Best regards,

Dear Jason,

Thanks for your reply.
The solution 1 is just to verify optimal values of TSR and Cp. In different literatures, these values are TSR =5.6 and Cpmax = 0.42. So I have just included the files for solution 2. Please find in the attachment the files. 10kW wind turbine is considered.

All DOFs are disabled.
Wind speed is set to 10m/s and I have fixed the rotational speed to the MPP of its corresponding wind speed (10m/s) and pitch angle is fixed at its optimal value (7.5°).
The rotor speed has been calculated as below:
Rotor Speed at MPP = (Optimal TSR)*(Wind Speed)/Rotor radius
Optimal TSR = 5.6; Wind speed =10m/s; Rotor radius = 2.9m SO rotor speed at MPP = 19.31034 rad/s or 184.4002 rpm
The optimal values for TSR and Cp are 5.6 and 0.422, respectively. These values are surely correct.

I obtain the Cp and TSR values from Aerodyn.
If you debug it, you will see that the Cp and TSR are not the optimal values.

Kind regards,
Babak
Files.7z (9.06 KB)

Dear Babak,

I’m not an expert on the SWRT model, and I’m not sure what literature you are referring to, but my guess is this OpenFAST models does not predict the same power coefficient curve that you have found in literature. I would suggest trying to generate Solution 1 yourself using this OpenFAST model to better understand the difference.

I briefly looked at your input files, and nothing sticks out to me as incorrect. I did notice that you’ve set the fixed blade-pitch angles to be 7.5 degrees, whereas the sample SWRT models provided in the OpenFAST r-test use 11.44 degrees; I’m not sure I know why these angles are different.

Please be aware that if you decide to enable structural DOFs, that OpenFAST does not yet support tail-fin aerodynamics or furling degrees of freedom (NREL has not yet been funded to implement this functionality into OpenFAST). If you need to model these physics, I suggest downgrading back to FAST v7.

Best regards,

Hi Attila,

I am doing exactly what you doing but not bale to generate .lin files that can be utilize to obtain a state space A, B, C, D matrix. Can you please help with generating .lin file in fast 7 using matlab workspace and others way of doing it.

Kind regards
Shiv

Dear Shiv,

The linearization functionality of FAST v7 is not available when running FAST v7 interfaced to MATLAB/Simulink. If you want to linearize a FAST model while running FAST in the MATLAB environment, you’ll need to upgrade to FAST v8 or OpenFAST.

Best regards,

Dear Dr. Jonkman,

Please guide why I am not able to receive the exact power from the liniearised model as I am getting in Test 18 NREL 5 MW onshore windturbine FAST Turbine. There is a mismatch of power observed, as less power is developed from the linrearized model when I linearized over 23 time instances.

Kind regards
Shiv Malhotra


Dear Shiv,

I don’t know enough about what you are comparing to comment. A few clarifying questions:

  • You are linearizing 23 times, but the linearization times are bit sporadic. What are you doing with the various linear solutions? Are you showing the results from only one linearized model?
  • How are you comparing the linear and nonlinear solutions? Are you stepping the wind or blade pitch about the operating point, with other inputs/disturbances unchanged? Are you plotting power as a perturbation about the operating point?
  • Which structural DOFs have you enabled in your FAST v8 model?

Best regards,

Dear Jason,

I enabled GenDOF and DrTrDOF, and extracted the state matrix through linearization. I used GetMats to extract AvgAMat, but I don’t know what quantity each line represents.

image

And the state variables I designed for the controller include[ Δ DrTr Δ rot_ speed Δ DrTrdot], how should I convert four-dimensional AvgAMat to three-dimensional?

image

could you help me pls ?

Regards.

Dear @Xiang.Li,

Are you post-processing the linearization output from FAST v7 using the old GetMats.m script from MBC: matlab-toolbox/GetMats.m at main · OpenFAST/matlab-toolbox · GitHub (rather than, say, the new fx_getMats.m script for OpenFAST: matlab-toolbox/fx_getMats.m at main · OpenFAST/matlab-toolbox · GitHub)? In the old GetMats.m script, the order of the states (rows in the B matrix) is read in as variable DescStates into MATLAB and the order of control inputs (columns in the B matrix) is given as variable DescCntrlInpt.

After azimuth averaging, the influence of the generator-azimuth state should be eliminated, which should then be removed from the linear model before use. This is discussed e.g. in the following forum topic: FAST linearization V7.

Best regards,

Dear Jason,

On AvgBMat Matrix
The column in matrix B represents the sequence of control inputs. Here, there is only one column in matrix B. Does it mean that this column represents the only control input, that is, the total rotor blade pitch (rad)?

The rows in the B matrix represent the order of states

Whether the elements with 0 in the first and second rows of matrix B correspond to two status quantities respectively, Variable speed generator DOF (internal DOF index=DOF_GeAz) and Drivetrain rotary flexibility DOF (internal DOF index=DOF_DrTr)

I’m sorry I’m a little stupid and i don’t know if it’s right

another question, what do the rows and columns of matrix A represent?

I really appreciate it if you can give me some advice

Regards.

Dear @Xiang.Li,

Yes, that is correct. The column of B corresponds to the one control input you selected (collective blade pitch). The first two rows of B correspond to the first time derivatives of the generator azimuth and drivetrain torsion angle, i.e., the generator speed and drivetrain torsion rate, respectively. And rows 3-4 of B correspond to the second time derivatives of these states, i.e., the generator acceleration and drivetrain torsion acceleration.

The first two columns of A correspond to the generator azimuth and drivetrain torsion angle, respectively. And columns 3-4 of A correspond to the first time derivatives of these states, i.e., the generator speed and drivetrain torsion rate. The rows of A correspond to the same descriptions of the rows of B.

Best regards,

Dear Jason,

My question is your perfect solution, thanks again!

Best regards,