Linearization issue using Fast V7.02

Dear Zhe.Zhang,

I’m not an expert on Simulink, but I know that you can set the initial states in the Simulink model. Please check the MATLAB/Simulink documentation for more information. I would guess that the states are initialized to zero if not set.

Best regards,

[attachment=2]NRELOffshrBsline5MW_Floating_TLP.lin.docx[/attachment]Dear Jason,
According to your suggestion, I added controller and disturbance input to the state space model, but the simulation results are very different from what I expected. I suspect that my FAST linearization is wrong. Can you help me?[attachment=1]QQ截图20191024112617.png[/attachment][attachment=0]QQ截图20191024112648.png[/attachment]

Dear Zhe.Zhang,

Just a couple comments:

  • Did you post-process your linear model to convert the states in the rotating frame to the fixed frame and azimuth-average the state matrices? And did you eliminate the rotor-azimuth state from your state-space model (reducing the total states from 26 to 25). See the following forum topic for more information: FAST linearization V7 - #17 by Yanhua.Liu.
  • The linear model is only valid for perturbations about the operating point, so, I would not expect that you’d add the operating point values (12.1 rpm and 14.74 degrees) to your inputs and outputs.

Best regards,

Dear Jason,
I use the GetMats command to obtain the six matrices of AvgAMat, AvgBMat, AvgBdMat, AvgCMat, AvgDMat, and AvgDdMat as the coefficient matrix of the state space model. The mbc3 command can only get the MBC_AvgA matrix. Should I modify the mbc3 file?
Best regards,

Dear Zhe.Zhang,

Yes, I would apply MBC before azimuth-averaging the matrices, otherwise, many of the rotation-related terms will not be well represented in the linear model.

Best regards,

Dear Jason,
Before the azimuth averaging of the matrix, I have used MBC and obtained six matrices of MBC_AvgA, MBC_AvgB, MBC_AvgBd, MBC_AvgC, MBC_AvgD, and MBC_AvgDd.But I don’t understand the elimination of the first column of matrix MBC_AvgA and the first column of MBC_AvgC, Do I need to close a degree of freedom? Thank you again!

All the best.
Zhe.Zhang

Dear Zhe.Zhang,

After applying MBC and azimuth-averaging, I would expect that you’d see effectively zeros in the row and column associated with the generator azimuth state…do you see that? Thus, they should be removed from the matrices before further post-processing.

Best regards,

Dear Jason,
I want to verify the linear model. The same wind velocity is input to the linear model as in FAST nonlinear simulations. The mean wind velocity is 16 m/s and the turbulence intensity is about 0.0564,How to set up the disturbance in simulink?

Dear Zhe.Zhang,

I’m assuming your linear model was derived with wind-disturbance inputs, e.g., with a perturbation of wind speed. This wind speed perturbation is uniform across the rotor; it is not possible in FAST to linearize with more localized wind e.g. what is available with full-field turbulence derived from TurbSim. (You can also include perturbations in shear and wind direction as wind-disturbances inputs in your linear model.) If your turbulence is not full-field, but is uniform across the rotor disk, the input to the linear model would simply be the fluctuations of wind speed about the mean wind speed of 16 m/s (assuming you’ve linearized your model at 16 m/s), i.e., simply remove the mean from the time series.

Best regards,

Hi there,

I am analysing the NREL 5MW offshore wind turbine with monopile foundation (both coupled and distributed springs) using FAST v7.

I am running the linearization feature about initial conditions. I want to investigate the M, K and C matrices when the initial conditions are all zero. However when I run this analysis, the K and C matrices are full of NaN (The mass matrix is fine). I get the same result if I give small initial conditions, but if I give large (e.g. towertop displacement of ~1m) then it gives a normal ‘non-NaN’ result.
Do you know why this might be? Apologies if this is a stupid question, is there a fundamental reason why this result occurs due to the numerical procedure for linearisation?
Perhaps it has something to do with the pertubation size used?

For extra information, I am applying a steady wind file with mean wind speed of 12m/s, no control inputs or disturbances are applied and the rotor speed is zero.

I will appreciate any light you can shed on the issue!
Thanks so much
Emily

Dear Emily,

I’m not sure, but first I would confirm that your model is otherwise set up properly. For the same simulation set up, can you run a time-domain simulation without getting NaNs in the output?

Best regards,

Dear Jason,

Yes I have been running it in the time domain with no problems.

The input files are exactly the same aside from the necessary changes for running a linearisation.

Thanks
Emily

Hi Emily,

OK, interesting. Yes, I would start by reducing the perturbation sizes. This will require a change to the FAST source code. In FAST v7, the perturbation sizes are defined near the top of SUBROUTINE in FAST_Lin.f90/Linearize(). I would start by dropping the perturbation sizes by a factor of 10 to see what the influence is.

Best regards,

Hi Jason,

The pertubation size had a bit of an effect but not much, then I compiled in double precision and that helped a lot, though I still had to give a non-zero number.

For another purpose I changed the source code as you advised to Vicki in this post:

so that I could specify any point to linearise around, and interestingly it solved this problem. So now if I specify the operating point as zero for all states for each degree of freedom, the linearisation works and I get meaningful mass, stiffness and damping matrices.
So I imagine the issue might be in how the user specified initial conditions from the input files are converted into the operating point.

Thanks
Emily

Dear Emily,

It is easy to specify zero initial conditions through the FAST v7 input file (set all initial conditions, including RotSPeed, to zero). Do you get the behavior you want then? What initial conditions did you have when you had the issue?

Best regards,

Dear Jason,

I am using the fast7 linearization function to get the state space model of the TLP type floating wind turbine, and compare it with the fast8 non-linear model. Both the linear model and the non-linear model use pi control. The two models are compared using a turbulent wind of 18 m / s. The comparison results are very different. Can you help me find out why?

help.zip (264 KB)

Dear Zhe.Zhang,

You haven’t given me enough information to guess why the results are different, e.g., how are you specifying turbulent wind in the linear model? I would suggest simplifying the model to debug the problem, e.g., is the comparison between and linear and nonlinear response close if you only enable one structural DOF?

Dear Jason,
I want to compare the linearized model calculated from fast7 with the fast8 nonlinear model in matlab software. Do I need to set their degrees of freedom to be consistent?

Thanks

Dear Zhe.Zhang,

Well, the closer you set up the linear and nonlinear models (similar DOFs and features enable), and the more linear the response, the closer the results should compare.

Best regards,

Dear Jason,
I compared the linearized model with the non-linear model through matlab. The input wind file was a step wind that changed from 17m / s to 19m / s at 150s. The relevant documents and comparison results are in the annex.my question is
1. Why is the result of rotspeed slightly different, is this normal?
2. Based on the comparison results, can I design a controller based on this linear model.

Thanks
Zhe.Zhang
Related documents.zip (126 KB)