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?

Postby Mohamed.Fekry » Sun Oct 13, 2019 9:20 pm

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?

Postby Jason.Jonkman » Mon Oct 14, 2019 8:10 pm

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?

Postby Mohamed.Fekry » Tue Oct 15, 2019 5:56 pm

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?

Postby Jason.Jonkman » Tue Oct 15, 2019 7:27 pm

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


Return to “Computer-Aided Engineering Software Tools”

Who is online

Users browsing this forum: Ramya.Niranjan and 1 guest