## How to choose the perturbation values for linearization?

Provide feedback, request enhancements, and get help with wind-turbine computer-aided engineering tools.

Moderators: Bonnie.Jonkman, Jason.Jonkman

Mohamed.Fekry
Posts: 27
Joined: Mon Dec 25, 2017 5:47 am
Organization: Zagazig University
Location: Egypt

### How to choose the perturbation values for linearization?

Why the Linearization subroutines of FAST (ED_Init_Jacobian, ED_Init_Jacobian_x) assumes a predefined perturbation values (p%du and p%dx) to perform the linearization for the motion equations? Based on what one should choose these values?

For du perturbations

Code: Select all

`if (allocated(u%BladePtLoads)) then      do k=1,p%NumBl         p%du(2*k-1) = MaxThrust / real(100*p%NumBl*u%BladePtLoads(k)%NNodes,R8Ki) ! u%BladePtLoads(k)%Force  = 2*k-1         p%du(2*k  ) = MaxTorque / real(100*p%NumBl*u%BladePtLoads(k)%NNodes,R8Ki) ! u%BladePtLoads(k)%Moment = 2*k      end do !k   else      p%du(1:6) = 0.0_R8Ki   end if      p%du( 7) = MaxThrust / 100.0_R8Ki                           ! u%PlatformPtMesh%Force = 7   p%du( 8) = MaxTorque / 100.0_R8Ki                           ! u%PlatformPtMesh%Moment = 8   p%du( 9) = MaxThrust / real(100*u%TowerPtLoads%NNodes,R8Ki) ! u%TowerPtLoads%Force = 9   p%du(10) = MaxTorque / real(100*u%TowerPtLoads%NNodes,R8Ki) ! u%TowerPtLoads%Moment = 10   p%du(11) = MaxThrust / 100.0_R8Ki                           ! u%HubPtLoad%Force = 11   p%du(12) = MaxTorque / 100.0_R8Ki                           ! u%HubPtLoad%Moment = 12   p%du(13) = MaxThrust / 100.0_R8Ki                           ! u%NacelleLoads%Force = 13   p%du(14) = MaxTorque / 100.0_R8Ki                           ! u%NacelleLoads%Moment = 14      p%du(15) = 2.0_R8Ki * D2R_D                                 ! u%BlPitchCom = 15    p%du(16) = MaxTorque / 100.0_R8Ki                           ! u%YawMom = 16   p%du(17) = MaxTorque / (100.0_R8Ki*p%GBRatio)               ! u%GenTrq = 17`

for dx perturbations

Code: Select all

` p%dx = 0.0_R8Ki ! initialize in case we have only 1 blade      ! set perturbation sizes: p%dx   p%dx(DOF_Sg  :DOF_Hv)   = 0.2_R8Ki * D2R_D * max(p%TowerHt, 1.0_ReKi)     ! platform translational displacement states   p%dx(DOF_R   :DOF_Y )   = 2.0_R8Ki * D2R_D                                ! platform rotational states   p%dx(DOF_TFA1:DOF_TSS1) = 0.020_R8Ki * D2R_D * p%TwrFlexL                 ! tower deflection states: 1st tower   p%dx(DOF_TFA2:DOF_TSS2) = 0.002_R8Ki * D2R_D * p%TwrFlexL                 ! tower deflection states: 2nd tower   p%dx(DOF_Yaw :DOF_TFrl) = 2.0_R8Ki * D2R_D                                ! nacelle-yaw, rotor-furl, generator azimuth, drivetrain, and tail-furl rotational states   do i=1,p%NumBl      p%dx(DOF_BF(i,1))= 0.20_R8Ki * D2R_D * p%BldFlexL ! blade-deflection states: 1st blade flap mode       p%dx(DOF_BF(i,2))= 0.02_R8Ki * D2R_D * p%BldFlexL ! blade-deflection states: 2nd blade flap mode for blades (1/10 of the other perturbations)      p%dx(DOF_BE(i,1))= 0.20_R8Ki * D2R_D * p%BldFlexL ! blade-deflection states: 1st blade edge mode   end do            if ( p%NumBl == 2 ) then      p%dx(DOF_Teet)       = 2.0_R8Ki * D2R_D              ! rotor-teeter rotational state   end if      !Set some limits in case perturbation is very small   do i=1,p%NDof      p%dx(i) = max(p%dx(i), MinPerturb)   end do`

Jason.Jonkman
Posts: 5071
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

### Re: How to choose the perturbation values for linearization?

Dear Mohamed,

I'm not sure I understand your question. Are you trying to change the default perturbation sizes for some reason? The default perturbation sizes where chosen so that they would work with most wind turbines (scaled by blade radius and tower height). Are the default perturbation sizes not appropriate for your system?

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Mohamed.Fekry
Posts: 27
Joined: Mon Dec 25, 2017 5:47 am
Organization: Zagazig University
Location: Egypt

### Re: How to choose the perturbation values for linearization?

Dear Dr Jonkman

Thank you for your understanding
Just I noticed that perturbation values are so large while it should be a small deviation from the operating point. Also, it does not causes any problem with my system until now.

Best Regards
M.Fekry

Jason.Jonkman
Posts: 5071
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

### Re: How to choose the perturbation values for linearization?

Dear Mohamed,

I agree that the perturbations should be small relative to the operating point (OP) values, but the OP values grow with turbine size, so, the perturbation sizes do as well.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov