Simulation Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TopDrive_diff_eqs.f90 2.5 KiB

1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. subroutine TDS_dia(x1,x2,x3,x5,x6,x7)
  2. use equipments_PowerLimit
  3. use TopDrive_VARIABLES
  4. IMPLICIT NONE
  5. REAL :: x1,x2,x3,x5,x6,x7
  6. !TDS%Vt = x6+Kpi*(Kpn*((30.*TDS%w_ref/pi)-(30.*x3/pi))-x2)
  7. TDS%ia_ref = x7+Kpn*((30.*TDS%w_ref/pi)-(30.*x3/pi))
  8. call TopDrive_TorqueLimit
  9. !IF (TDS%ia_ref>TDS%ia_ref_limit) THEN
  10. ! TDS%ia_ref = TDS%ia_ref_limit
  11. !END IF
  12. !TorqueLimit_Elimination1:
  13. !call PowerLimits
  14. !if (Power_sigma>max_Power_sigma) then
  15. ! TDS%Vt = TDS%Vt
  16. !else
  17. TDS%Vt = x6+(Kpi*(TDS%ia_ref-x2))
  18. !end if
  19. IF (TDS%Vt>810.) THEN
  20. TDS%Vt = 810.0
  21. ELSE IF (TDS%Vt<0.) THEN
  22. TDS%Vt = 0.0
  23. END IF
  24. !IF (x2<=1150.) THEN
  25. x5 = (6.3304d-3)*1150.
  26. !ELSE IF (x2>1150.) THEN
  27. ! x5 = 2.8571d-7*(x2-1150.)+7.28
  28. !END IF
  29. TDS%Ea = x5*x3
  30. TDS%dia = (TDS%Vt-(Ra+Rf)*x2-TDS%Ea)/(La+Lf)
  31. !call PowerLimits
  32. !if (Power_sigma>max_Power_sigma) then
  33. ! TDS%dia = 0.d0
  34. !end if
  35. end subroutine
  36. !-------------------------------------------------------------------------------
  37. subroutine TDS_dw(x1,x2,x3,x4,x5)
  38. use TopDrive_VARIABLES
  39. IMPLICIT NONE
  40. REAL :: x1,x2,x3,x4,x5
  41. REAL :: const
  42. !IF (x2<=1150.) THEN
  43. x4 = 6.3304d-3*1150.
  44. !ELSE IF (x2>1150.) THEN
  45. ! x4 = 2.8571d-7*(x2-1150.)+7.28
  46. !END IF
  47. TDS%Te = x4*x2
  48. !TDS%dw = (TDS%Te-x5)/TDS%J_coef
  49. const = TDS%J_coef+(TDS%String_JCoef/(TDS%Mech_Efficiency*TDS%Conv_Ratio))
  50. !TDS%dw = (TDS%Te-((TDS%String_Torque)/(TDS%Mech_Efficiency*TDS%Conv_Ratio)))/(const)
  51. TDS%dw = (TDS%Te-TDS%TL)/(const)
  52. end subroutine
  53. !------------------------------------------------------------
  54. subroutine TDS_dx(x1,x2,x3,x4,x5)
  55. use TopDrive_VARIABLES
  56. IMPLICIT NONE
  57. REAL :: x1,x2,x3,x4,x5
  58. !TDS%dx = Kii*(Kpn*((30.*TDS%w_ref/pi)-(30.*x3/pi))-x2)
  59. TDS%ia_ref = x5+Kpn*((30.*TDS%w_ref/pi)-(30.*x3/pi))
  60. call TopDrive_TorqueLimit
  61. !if (LimitOveride==1) then
  62. !goto TorqueLimit_Limitation2
  63. !end if
  64. !IF (TDS%ia_ref>TDS%ia_ref_limit) THEN
  65. !TDS%ia_ref = TDS%ia_ref_limit
  66. !END IF
  67. !TorqueLimit_Elimination2:
  68. TDS%dx = Kii*(TDS%ia_ref-x2)
  69. end subroutine
  70. !------------------------------------------------------------
  71. subroutine TDS_dy(x1,x2,x3,x4,x5)
  72. use TopDrive_VARIABLES
  73. IMPLICIT NONE
  74. REAL :: x1,x2,x3,x4,x5
  75. TDS%dy = Kin*((30.0d0*TDS%w_ref/pi)-(30.0d0*x3/pi))
  76. end subroutine