Simulation Core
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 
 

79 satır
3.4 KiB

  1. # 1 "/home/admin/SimulationCore2/Equipments/RotaryTable/RTable_Inputs.f90"
  2. subroutine RTable_INPUTS
  3. use CDrillingConsoleVariables
  4. use SimulationVariables
  5. use UnitySignalsModule
  6. use CHoistingVariables
  7. use TD_DrillStemComponents
  8. use UnityModule
  9. use CWarnings
  10. use UnitySignalVariables
  11. IMPLICIT NONE
  12. integer :: i
  13. data%State%RTable%AssignmentSwitch = data%Equipments%DrillingConsole%AssignmentSwitch
  14. data%State%RTable%Switch = data%Equipments%DrillingConsole%RTSwitch
  15. !data%State%RTable%GearsAbuse = RotaryGearsAbuse
  16. data%State%RTable%Throttle = data%Equipments%DrillingConsole%RTThrottle ![RPM] 0<RTThrottle<130(max output) rpm
  17. data%State%RTable%Throttle = data%State%RTable%Throttle*data%State%RTable%Conv_Ratio ![RPM] 0<RTable%Throttle<965 rpm
  18. data%State%RTable%String_Torque = data%State%TD_String%StringTorque*12.d0 ![lb.ft]*12 ---> [lb.in] ?????????
  19. !data%State%RTable%RpmGaugeMalf !:dar module haye C meghdardehi mishe
  20. data%State%RTable%N_new = data%State%RTable%Throttle
  21. if ( data%State%RTable%MotorFaileMalf==1 ) then
  22. data%State%RTable%N_new = 0.d0
  23. end if
  24. data%State%RTable%String_Torque = 0.112984d0*data%State%RTable%String_Torque ![N.m]
  25. !===> String_JCoef Calculation
  26. if ( data%Configuration%Hoisting%DriveType==0 ) then
  27. if ( Get_TdsConnectionModes()==TDS_CONNECTION_NOTHING .and. Get_TdsElevatorModes()==TDS_ELEVATOR_CONNECTION_NOTHING ) then
  28. data%State%RTable%RotaryMode = 1
  29. data%State%RTable%String_JCoef = 0.d0
  30. Do i = 1,data%State%TD_String%StringConfigurationCount
  31. data%State%RTable%String_JCoef = data%State%RTable%String_JCoef+( (data%State%TD_DrillStem(i)%TotalWeight*((data%State%TD_DrillStem(i)%Id**2.d0)+(data%State%TD_DrillStem(i)%Od**2.d0)))/8.d0 ) ![lb.ft^2] , Jz=(1/2)*m*(r1^2+r2^2)
  32. End Do
  33. data%State%RTable%String_JCoef = data%State%RTable%String_JCoef*0.0421401d0 ![kg.m^2]
  34. else if ( Get_Slips() /= SLIPS_SET_END ) then
  35. data%State%RTable%RotaryMode = 2
  36. data%State%RTable%String_JCoef = 0.d0
  37. data%State%RTable%String_Torque = 0.d0
  38. else
  39. data%State%RTable%RotaryMode = 3
  40. data%State%RTable%String_JCoef = 0.d0
  41. data%State%RTable%String_Torque = 0.d0
  42. end if
  43. else if ( data%Configuration%Hoisting%DriveType==1 ) then
  44. if ( Get_IsKellyBushingSetInTable() .or. Get_Slips() == SLIPS_SET_END ) then !if rotary connected to string
  45. data%State%RTable%RotaryMode = 4
  46. data%State%RTable%String_JCoef = 0.d0
  47. Do i = 1,data%State%TD_String%StringConfigurationCount
  48. data%State%RTable%String_JCoef = data%State%RTable%String_JCoef+( (data%State%TD_DrillStem(i)%TotalWeight*((data%State%TD_DrillStem(i)%Id**2.d0)+(data%State%TD_DrillStem(i)%Od**2.d0)))/8.d0 ) ![lb.ft^2] , Jz=(1/2)*m*(r1^2+r2^2)
  49. End Do
  50. data%State%RTable%String_JCoef = data%State%RTable%String_JCoef*0.0421401e0 ![kg.m^2]
  51. else
  52. data%State%RTable%RotaryMode = 5
  53. data%State%RTable%String_JCoef = 0.d0
  54. data%State%RTable%String_Torque = 0.d0
  55. end if
  56. end if
  57. end subroutine RTable_INPUTS