State of linearized model, rotor's speed

Hi,
I met a problem of controller design.
I have read the technical report “Modern Control Design for Flexible Wind Turbines”, and been interested in the models (1-state, 3-state, 7-state, and 9-state model) mentioned in it. Among these models, they all use the rotor’s speed as a state.
I would like to follow the report and design controllers for 5MW wind turbine.
However, the DOF denoting the rotor’s speed is only available to 2-blade wind turbines and not available to 3-blade wind turbines in FAST. Therefore, I cannot obtain the linearized model including the state of rotor’s speed directly by running FAST linearization.
Do you have some method to get a linearized model including such a state of rotor’s speed?

Thanks in advance.

Dear Lei Duan,

In FAST, the degrees of freedom (DOFs) for the drivetrain are identical between 2- and 3-bladed rotors. They are:

GenDOF - Rigid-body rotation of the generator end of the low-speed shaft (LSS) (not of the high-speed shaft)
DrTrDOF - Torsional twist of the low-speed shaft (LSS)

If q represents a DOF and qdot represents the first time derivative of the DOF, the rigid-body rotation of the rotor end of the LSS and the rotor speed can determined as follows:

q_RotorAzimuth = q_GenDOF + q_DrTrDOF
qdot_RotorSpeed = qdot_GenDOF + qdot_DrTrDOF

I hope that helps.

Best regards,

Dear Jason,
Thanks for your reply, and it help me much.

Also, I am following a book to build a state-space model for control by using the torsion angle(q_DrTrDOF), the rotor speed (qdot_GenDOF+qdot_DrTrDOF), and the generator speed (qdot_GenDOF) as the states.
The A matrix is shown as
A=[ 0 , 1 , -1 ;
-Ks/Jr , -Bs/Jr , Bs/Jr ;
Ks/Jg , Bs/Jg , -(Bs+Bg)/Jg ],
where,
Ks is the stiffness of the transmission;
Bs is the damping of the transmission;
Jr is the inertia of the rotor;
Jg is the inertia of the generator.
And we use the parameters provided by your report.
Ks=867637000;
Bs=6215000;
Jr=11776047.
Are they right?

And Jg’=534.116.
This is the generator inertia about the high-speed shaft, but we need the one about the low-speed shaft.
Moreover, we need to use another parameter Bg.
Bg is defined by a linear equation in the generator’s operating range. “Tg=Bg(Omega(gen)-Omega(zero))”.
where,
Tg is the generator torque;
Omega(gen) is the generator speed;
Omega(zero) is the generator speed at zero torque.

Have you published such parameters Jg and Bg somewhere?
Or could you provide it?

Thanks in advance.

Best wishes,
Lei DUAN

Dear Lei DUAN,

The state-space model looks reasonable. I confirm all of the values for the NREL 5-MW turbine, except for the rotor inertia, which is Jr = 38759228 kg*m^2.

The generator inertia about the high-speed shaft is 534.116 kgm^2; this is equivalent to a generator inertia about the low-speed shaft of 534.11697^2 = 5025497 kg*m^2 (where 97 is the gearbox ratio).

Your model for generator torque is a simple linear multiple of the speed error relative to synchronous speed. The variable-speed torque controller for the NREL 5-MW is more sophisticated than this linear model, but you could probably derive an equivalent linear form for small deviations of speed about different operating points (Bg and Omega(zero) will change with operating point).

I hope that helps.

Best regards,

DearJason,

Thank you very much.

I checked the eigenvalues of the A matrix by using the parameters you provided. They seemed reasonable.
Have you published the Jr somewhere? I need to quote it.

Also, I ran FAST to get the Bg and Omega(Torq=zero), but I did not know the appropriate settings of DOFs and parameters about control.
I just tried different parameters, so I was worried about the results. Usually, I could not get the Omega(Torq=zero) if the VScontrl is not zero.
Could you provide more details about obtaining such Bg and Omega(Torq=zero) by using FAST, especially the DOFs and control parameters (VScontrl and PCMode)?

Moreover, I read something from a book that Bg should be much larger than Bs. Is it possible?
I got some Bg by running FAST, and they are a little smaller than Bs. Of course, they may be wrong.

Thanks a lot for your help.

Best wishes,
Lei DUAN

Dear Lei DUAN,

The rotor inertia of the NREL 5-MW baseline turbine was not published in the specifications report, but is calculated by FAST at run time and written to the FAST summary (*.fsm) file.

You should be able to derive a linearized model of the generator by choosing an operating-point generator speed and finding the slope (first derivative) of the torque-speed curve shown in Figure 7-2 of the NREL 5-MW baseline turbine specifications report: nrel.gov/docs/fy09osti/38060.pdf. (You’ll have to convert the torques and speeds to low-speed shaft-equivalent values to quantify Bg.) Whether the effective damping (Bg) is larger or smaller than the structural damping (Bs) will depend on the operating point (in Region 3, the slope of the torque-speed curve is actually negative).

Best regards,

Dear Jason,
Thank you very much.
I will follow your suggestion and have a try.

Best wishes,
Lei DUAN

Hello , i hope you are doing well ,

I have tested the model given by Lei , the control inputs were GenTq and RotTorq got from FAST , i have eleminated the slop Bg from the model of Lei because it is included in the GenTq and likewise for RotTorq.

The problem is that it didnt give the same Wg and Wr as FAST . Someone has an idea about the problem . Is it a problem of non linearity ?

Sincerely .

Dear Jason,

If you just enable GenDOF and DrTrDOF, the state-space model considered by FAST is as follows:

d(δg)/dt=ωg
d(δtg)/dt=ωtg
d(ωg)/dt =Ktg/Jg (δtg)+Dtg/Jg (ωtg)-Tg
d(ωtg)/dt =Tw-Ktg*(1/Jt+1/Jg) (δtg)-Dtg*(1/Jt+1/Jg) (ωtg)

qdot=A q+B Tg+Bd Tw

where;
δt=q_RotorAzimuth, δg=q_GenDOF, δtg=q_DrTrDOF, ωt=RotorSpeed, ωg=qdot_GenDOF, ωtg= qdot_DrTrDOF, and
A=
[0 0 1 0;
0 0 0 1;
0 Ktg/Jg 0 Dtg/Jg;
0 -Ktg*(1/Jt+1/Jg) 0 -Dtg*(1/Jt+1/Jg)].

The eigenvalues are two complex conjugate pairs and two zeros (corresponding to δg and ωg).

However, a state-space matrix is obtained in linearization analysis by FAST as follows:
AvgAMat =
[ 0 0 1 0;
0 0 0 1;
-3.0571e-009 1667 4.7246e-009 33.33;
3.8985e-006 -2864 -0.066974 -57.348].

The eigenvalues are
-28.655 + 45.199i
-28.655 - 45.199i
5.8044e-005
-0.039041

I’d like to know why the state-space matrix obtained by FAST isn’t based on the matrix which I wrote, particularly the entry a(4,3) .
Moreover, in some operation points, the eigenvalue which corresponds to ωg is a positive real value.
I used CalcStdy=True and TrimCase=2.

best regards

Hamid reza Esmaeilian

Dear Hamid,

Your equations look OK except that “-Tg” in the 3rd equation should be “-Tg/Jg” and “Tw” in the 4th equation should be “Tw/Jt + Tg/Jg”.

The values showing up as e-009 and e-006 are likely the result of numerical precision issues in the way FAST, along with the MATLAB post-processor MBC3, compute AvgAMat. Element (4,3) of AvgAMat may also be the result of this, but I suggest that you plot AMat(4,3,:slight_smile: – that is the element (4,3) over the range of azimuth angles to check if the mean is near zero or not.

One thing your equations don’t have is the partial derivatives of Tw with respect to δt and/or ωt, which may be included in the FAST solution depending on the operating point, and the partial derivatives of Tg with respect to δg and/or ωg, which may be included in the FAST solution depending on TrimCase. The neglecting of these terms in your equations may explain why the FAST solution does not match your expectations exactly.

Best regards,

Dear Jason

Thanks for your precision response

Your explanations were really useful. I plotted AMat(4,3,:slight_smile: over the azimuth angles for two wind speeds as follows:

As can be seen, this element depends on the operation point as for wind speed=7 m/s, AvgAMat(4,3) is -0.066974 and for wind speed=17 m/s, AvgAMat(4,3) is 0.30557.
One of real eigenvalues, corresponding to ωg, depends on this element. In wind speed=17 m/s, the value of this eigenvalue is 0.17789. Is really the system unstable?

Best regards

Dear Hamid Reza,

The plot did not show up.

Best regards,

Dear Jason

please see
8pic.ir/images/l6cclksamntydto0e8rb.png

I checked the stability based on the sign of this eigenvalue that is +.
regards

Dear Hamid Reza,

I still can’t see the plot (it is blocked by our firewall), so, it is difficult for me to comment.

However, what may help is to plot the steady-state aerodynamic torque as a function of rotor speed near this operating point to see if the partial derivative of torque with respect to speed makes physical sense.

Best regards,

Dear Jason

I follow your suggestion. However, one eigenvalue has a positive real value. In this regards, can it be concluded that the system is unstable near this operation point?
Meanwhile, I ran a time-marching simulation, but the system was stable. Why does the linearized model show the system is unstable?

regards

Dear Hamid Reza,

The damping that is positive-valued is for the zero-frequency (rigid-body) mode, which does not mean the system is unstable.

Best regards,

Dear Jason

First, I’d like to thank you for your time and excellent replies.

Recently, I had a problem concerning the linearization analysis. In the post in the following forum topic: viewtopic.php?f=4&t=347, I wrote that the linearization doesn’t converge when choosing a high speed wind with TrimCase 2. In reply to my post, you answered “increasing the wind speed is lowering the TSR, resulting in TrimCase 2 going unstable.” and a solution was suggested in the following forum topic: viewtopic.php?f=4&t=771. Using this method, I could obtain the state-space model as the convergence was achieved.

However, one of the eigenvalues, corresponding to qdot_GenDOF, has a positive real value, as mentioned in the previous post here. You wrote that “the damping that is positive-valued is for the zero-frequency (rigid-body) mode, which does not mean the system is unstable.”. I obtained the step response, but I saw that it is unstable. I really confused.
I would be grateful if you could explain me more and give me a solution to obtain a stable system.


AvgAMat =[ 0 0 1 0;
0 0 0 1;
-3.1688e-008 1542 9.43e-008 15.12;
2.0219e-006 -1664 0.31449 -16.004];
AvgBMat =[0;0;-0.0102;0.0102];
AvgCMat =[0 0 322.8 0];

eig(AvgAMat)
-8.1477 + 39.97i
-8.1477 - 39.97i
-6.3203e-006
0.29144

Best regards.

Dear Hamid Reza,

I’m sorry, but I don’t understand what you need clarification on. You say that you obtained a step response but saw instability. Please explain more what are you doing and the results you obtained. In an earlier post, you said that the system was stable in the time-marching simulation.

Best regards,

Dear Jason

Actually, I am doing a stability analysis of a wind power system considering Test01.fst. I need to study the system using both time-marching simulation and eigenvalue method. I studied the system using time-marching simulation (PCMode=2) under different wind speeds, as it was stable based on the obtained results. However, I need to study the system using eigenvalue method too. Since the used wind turbine is a constant speed machine, I can linearize it just by TrimCase 2.

In low wind speeds, the linearization shows stable eigenvalues (negative real values). In high wind speeds, I could linearize the system by applying changes in the FAST source file (i.e., FAST_Lin.f90) based on what you suggested in the following forum topic: viewtopic.php?f=4&t=771. In the obtained state-space matrix, however, I see a eigenvalue with a positive real value which leads to the system instability. Based on the state-space model, the step response, considering HSShftV as output for example, is shown below (if you can’t observe it, please run the code):


please run the following code if you can’t see the figure:
AvgAMat =[ 0 0 1 0;
0 0 0 1;
-3.1688e-008 1542 9.43e-008 15.12;
2.0219e-006 -1664 0.31449 -16.004];
AvgBMat =[0;0;-0.0102;0.0102];
AvgCMat =[0 0 322.8 0];
sys = ss(AvgAMat,AvgBMat,AvgCMat,0);step(sys)

Therefore, it shows that the system is unstable although the linearization has been converged. It is very confusing for me.
I’d like to use FAST for stability analysis using eigenvalue method in addition to time-marching simulation, but I can’t employ it with this conditions.
Meanwhine I used:
wind speed=17 m/s;
VSContrl=0;
GenModel=2;
BlPitch=BlPitchF=-1;
GenDOF=True;
RotSpeed=54.089 (I applied this value based on what was obtained by time-marching simulation).

Best regards

Dear Hamid Reza,

Let me try to clarify. The damping of the rigid-body mode does not necessarily indicate that the system is unstable. As described in this forum topic: http://forums.nrel.gov/t/learizing-baseline-5mw-wind-turbine-with-fast/494/1, rigid-body modes show up in MBC3 as a pair of zero-valued (or near-zero-valued) frequencies with +/- inf damping (i.e., eigenvalues with real values only). That is, each rigid-body mode will introduce an additional mode beyond the number of enabled DOFs and the damping is unphysical.

That said, the rigid-body mode may be physically unstable. As described in my Jan 16, 2013 post in the forum topic you referred to (http://forums.nrel.gov/t/linearisation-trim/628/1), the rigid-body mode will be unstable (in open loop) if the TSR is below the TSR for maximum Cq at a given pitch angle. In this case, it is the generator (or torque controller) that likely keeps the physical system stable (in closed loop).

Best regards,