laba7.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. # -*- coding: utf-8 -*-
  2. """
  3. Лаба 7. Расчеты элементов проходческих работ: производительность бурильных
  4. машин, погрузка породы, откатка электровозом, проветривание забоя.
  5. Формулы (7.1)-(7.20) методички.
  6. Числовой пример методички содержит арифметические погрешности
  7. (например, в (7.6) при подстановке использован psi = 0,25 вместо 0,17),
  8. поэтому проверка ниже сходится с примером по схеме расчёта, но не по
  9. всем округлениям. Формулы оттарированы по тем строкам примера, которые
  10. воспроизводятся точно: (7.1), (7.2), (7.3), (7.5), (7.10), (7.11), (7.16),
  11. (7.15), (7.19).
  12. """
  13. from math import pi, sqrt, floor, ceil
  14. # ---------------------------------------------------------------- справочные данные
  15. # Табл. 7.2: механическая скорость бурения V_м (м/мин) по крепости f
  16. VM_TABLE = {2: 2.20, 3: 2.00, 4: 1.80, 5: 1.65, 6: 1.50,
  17. 7: 1.35, 8: 1.20, 9: 1.10, 10: 1.00}
  18. # Табл. 7.4: техническая производительность погрузочных машин, м3/мин
  19. PGRUZ = {"ППН-1С": 0.8, "ППН-2Г": 1.0, "ППН-3": 1.25, "1ППН-5": 1.25,
  20. "ППМ-4У": 1.25, "2ПНБ-2": 2.2, "ПНБ-2": 2.5, "ПНБ-3Д": 4.0, "ПНБ-4": 6.0}
  21. # Табл. 7.5: коэффициент разрыхления k_р по крепости f (нижняя граница строки)
  22. KP_TABLE = ((2, 1.7), (3, 1.8), (4, 1.9), (7, 2.0), (10, 2.1), (15, 2.2))
  23. def k_r(f):
  24. for fmin, k in KP_TABLE:
  25. if f <= fmin:
  26. return k
  27. return 2.2
  28. # Табл. 7.6: сцепной вес электровозов, кН
  29. ELECTROVOZ = {"4КР": 40, "7КРМ1": 79, "К10": 106, "К14М": 140, "КТ14": 140,
  30. "АРВ7": 70, "АМ8Д": 87, "АРП10Б": 104, "АРП14": 134}
  31. # Табл. 7.7: вагонетки: вместимость (м3), грузоподъёмность (т), масса (т)
  32. VAGONETKA = {
  33. "ВГ0.7": (0.7, 1.8, 0.55), "ВГ1.2": (1.2, 2.5, 0.807), "ВГ2.0": (2.0, 5.0, 1.51),
  34. "ВГ2.2": (2.2, 5.5, 1.45), "ВГ4.5А": (4.5, 13.5, 4.2), "ВГ9А": (9.0, 27.0, 8.9),
  35. "ВГ10А": (10.0, 30.0, 9.5),
  36. }
  37. # Табл. 7.8: коэффициент трения альфа по диаметру трубы воздуховода
  38. ALPHA = {0.4: 0.00030, 0.5: 0.00025, 0.6: 0.00022, 0.7: 0.00020}
  39. # Варианты (таблица 7.10): f, rho, фракция, уклон промилилле, S,
  40. # бурильная установка, глубина бурения м, диаметр шпура мм, погрузочная машина
  41. VARIANTS = {
  42. 1: (12, 1.9, "мелкая", 5, 24, "БУ-1Б (УБШ 202)", 2.4, 46, "ППН-2Г", 2100, 0.5, 2400, 2),
  43. 2: (7, 2.0, "крупная", 0, 30, "БУР2Б (УБШ 302)", 2.3, 52, "2ПНБ-2", 2350, 0.7, 3600, 3),
  44. 3: (10, 1.8, "крупная", 6, 28, "БКГ-2 (УБШ 309)", 2.5, 52, "ПНБ-2", 2200, 0.7, 3000, 3),
  45. 4: (14, 1.7, "мелкая", 3, 22, "СБКН2М (УБШ 207)", 2.0, 55, "ППН-2Г", 2740, 0.5, 2400, 2),
  46. 5: (15, 2.5, "мелкая", 0, 24, "БУ-1Б (УБШ 202)", 2.1, 60, "1ППН-5", 2900, 0.5, 2400, 2),
  47. 6: (8, 2.1, "крупная", 4, 27, "БКГ-2 (УБШ 309)", 2.4, 43, "ППН-3", 2150, 0.6, 3000, 3),
  48. 7: (11, 2.0, "крупная", 10, 25, "БУ-1Б (УБШ 202)", 2.5, 46, "1ППН-5", 3050, 0.6, 2400, 2),
  49. 8: (16, 2.2, "мелкая", 0, 24, "СБКН2М (УБШ 207)", 2.2, 55, "ППН-5", 2350, 0.5, 2400, 2),
  50. 9: (9, 1.8, "крупная", 9, 30, "БУР2Б (УБШ 302)", 2.5, 52, "ПНБ-2", 2400, 0.7, 3600, 3),
  51. 10: (12, 2.1, "мелкая", 4, 22, "СБКН2М (УБШ 207)", 2.1, 46, "ППН-2Г", 3100, 0.5, 2400, 2),
  52. 11: (13, 2.1, "мелкая", 5, 25, "БУ-1Б (УБШ 202)", 2.0, 52, "ППН-3", 2400, 0.6, 2400, 2),
  53. 12: (8, 1.8, "крупная", 7, 32, "БУР2Б (УБШ 302)", 2.5, 43, "ПНБ-2", 2600, 0.7, 3600, 3),
  54. 13: (10, 1.9, "мелкая", 9, 21, "СБКН2М (УБШ 207)", 2.5, 46, "ППН-2Г", 3150, 0.5, 2400, 2),
  55. 14: (7, 1.8, "крупная", 3, 30, "БУР2Б (УБШ 302)", 2.4, 40, "ПНБ-2", 2440, 0.7, 3600, 3),
  56. 15: (14, 2.0, "крупная", 5, 26, "БУ-1Б (УБШ 202)", 2.2, 52, "ППН-5", 2150, 0.6, 3000, 3),
  57. 16: (12, 2.1, "мелкая", 7, 28, "БКГ-2 (УБШ 309)", 2.1, 46, "ППН-3", 2350, 0.7, 3000, 3),
  58. 17: (9, 1.9, "мелкая", 12, 27, "БКГ-2 (УБШ 309)", 2.3, 43, "1ППН-5", 2200, 0.6, 3000, 3),
  59. 18: (11, 1.7, "крупная", 2, 31, "БУР2Б (УБШ 302)", 2.1, 52, "2ПНБ-2", 2740, 0.7, 3600, 3),
  60. 19: (10, 1.6, "крупная", 4, 30, "БУР2Б (УБШ 302)", 2.5, 46, "2ПНБ-2", 2900, 0.7, 3600, 3),
  61. 20: (12, 2.0, "мелкая", 0, 26, "БУ-1Б (УБШ 202)", 2.4, 43, "ППН-3", 2150, 0.6, 2400, 2),
  62. }
  63. G = 9.81
  64. # ---------------------------------------------------------------- расчёт
  65. def rup(x, n=2):
  66. p = 10 ** n
  67. return floor(x * p + 0.5) / p
  68. def compute(f, rho, frak, uklon, S, ustanovka, l_shp_d_m, d_shp_mm, pogr_mash,
  69. L_ot, d_tr, t_prov, n_proh,
  70. m_b=2, k_zam=0.7, k_vsp=0.85, k_od=0.8, k_nad=0.9, k_pr=0.8,
  71. el="КТ14", vag="ВГ4.5А", a_p=0.3, v_t=2.0, l_t=10.0,
  72. k_nk=1.15, k_nrp=0.9, k_n_pogr=0.85, l_o=100, V_o=80, t_pr=1.5,
  73. t_pod=10, t_raz_v=1.0, t_man=10, v_sr=10.0, k_ng=1.1, n_mash=1,
  74. v_avto=5.0, k_z_v=1.1, q_v_chel=0.1, v_min=0.3, l_v=300, xi_sum=1.15,
  75. zap_v=1.1):
  76. """Полный расчёт по формулам (7.1)-(7.20). Числа методички по умолчанию."""
  77. out = {}
  78. l_shp = l_shp_d_m
  79. d_shp = d_shp_mm / 1000.0
  80. # --- 1. бурение, (7.1)-(7.2)
  81. V_m = VM_TABLE[min(max(f, 2), 10)]
  82. k_d = rup(30 / d_shp_mm, 2)
  83. P_b_t = rup(V_m * k_d * k_zam * k_vsp, 2) # м/мин
  84. P_b_e = rup(60 * P_b_t * k_od * k_nad * k_pr * m_b, 1) # м/ч
  85. # --- 2. погрузка
  86. P_p_t = PGRUZ[pogr_mash] # м3/мин (табл. 7.4)
  87. i = uklon / 1000.0 # уклон в долях
  88. P_sс = ELECTROVOZ[el] # кН
  89. # (7.5), (7.6): удельные величины в Н/кН: 1000*psi, i (промилле = Н/кН), 108*a
  90. Q5 = rup(P_sс * (1000 * 0.25 - uklon - 108 * a_p) / (9 + uklon) - P_sс, 1)
  91. Q6 = rup(P_sс * (1000 * 0.17 - uklon - 108 * (v_t ** 2 / (2 * l_t))) / (8 + uklon) - P_sс, 1)
  92. Q_gr = min(Q5, Q6)
  93. V_v, _gr, m_v = VAGONETKA[vag]
  94. G_gr = rup(V_v * rho * G, 1) # вес груза, кН
  95. G_t = rup(m_v * G, 1) # вес тары, кН
  96. Z = floor(Q_gr / (G_gr + G_t)) # вагонов в составе
  97. # (7.4): эксплуатационная производительность погрузочной машины, м3/ч
  98. P_p_e = rup(60 * V_v * k_nk / (V_v * k_nk / (P_p_t * k_nrp * k_n_pogr)
  99. + 2 * l_o / V_o + t_pr + t_pod / Z), 1)
  100. # --- 3. рейсы
  101. t_p = rup(Z * V_v * k_nk / (P_p_t * k_nrp * k_n_pogr), 1) # (7.10), мин
  102. t_dv = rup(2 * L_ot / (60 * v_sr), 1) # (7.11), мин
  103. t_r = rup(Z * t_raz_v, 1) # (7.12), мин
  104. T_r = rup(t_p + t_dv + t_r + t_man, 1) # (7.9), мин
  105. n_s = ceil((t_p + t_dv + t_r) / t_p) # (7.13), составов
  106. l_zah = l_shp # заходка ~ глубина
  107. N_r = ceil(S * l_zah * k_r(f) / (Z * V_v * k_nk)) # (7.14), рейсов
  108. # --- 4. вентиляция (цепочка по округляемым значениям, как в отчёте)
  109. S_tr = rup(pi * d_tr ** 2 / 4, 2) # площадь трубы, м2
  110. l_d = rup(S * sqrt(S_tr) + 5, 1) # (7.16), м
  111. kf = 48 if S > 20 else 26 # коэффициент 48/26
  112. Q_z = rup(kf * (S - l_d) * l_shp * rho / sqrt(S * S_tr * t_prov), 2) # (7.15), м3/с
  113. t_p_s = t_p * 60 # (7.10) в секундах
  114. Q_av = rup(k_ng * n_mash * sqrt(4.5 * (L_ot / t_p_s) * (1 + 20 / v_avto)), 2) # (7.17)
  115. N_l = 2 * n_proh # люди в забое
  116. Q_l = rup(k_z_v * q_v_chel * N_l, 2) # (7.18), м3/с
  117. Q_v = rup(v_min * S, 2) # (7.19), м3/с
  118. Q_rasch = max(Q_z, Q_av, Q_l, Q_v) # расчётный расход
  119. Q_vent = rup(zap_v * Q_rasch, 2) # производительность в-ра
  120. h_v = rup(6.5 * ALPHA[d_tr] * l_v * Q_vent ** 2 / d_tr ** 5
  121. + xi_sum * Q_vent ** 2 / (2 * G * S_tr ** 2), 0) # (7.20), Па
  122. out["исходные"] = f"f={f}, S={S} м2, уклон {uklon}‰, L={L_ot} м, {pogr_mash}, {el}+{vag}"
  123. out.update({
  124. "1) Vм": V_m, "1) kд": k_d, "1) Pб.т": P_b_t, "1) Pб.э": P_b_e,
  125. "2) Pп.т": P_p_t, "2) Q5(сцепл.)": Q5, "2) Q6(торм.)": Q6, "2) Qгр": Q_gr,
  126. "2) Gгр": G_gr, "2) Gт": G_t, "2) Z": Z, "2) Pп.э": P_p_e,
  127. "3) tп": t_p, "3) tдв": t_dv, "3) tр": t_r, "3) Tр": T_r,
  128. "3) nс": n_s, "3) Nрейс": N_r,
  129. "4) Sтр": round(S_tr, 4), "4) lд": l_d, "4) Qз(взрыв)": Q_z,
  130. "4) Qавто": Q_av, "4) Qлюди": Q_l, "4) Qскор": Q_v,
  131. "4) Qрасч": Q_rasch, "4) Qвент": Q_vent, "4) hв,Па": h_v,
  132. })
  133. return out
  134. def report(title, res):
  135. print(f"\n=== {title} ===")
  136. for k, val in res.items():
  137. print(f" {k:14} = {val}")
  138. if __name__ == "__main__":
  139. import sys
  140. if len(sys.argv) > 1 and sys.argv[1].isdigit():
  141. n = int(sys.argv[1])
  142. v = VARIANTS[n]
  143. report(f"Вариант {n}", compute(*v))
  144. else:
  145. # Пример методички: f=7, S=30, ППН-3, КТ14+ВГ4.5, уклон 12 промиллей,
  146. # L=3100, d_тр=0,7, t=2400 с, 3 проходчика, глубина 2,5 м, шпур 43 мм
  147. report("Пример методички (частично сходится)", compute(
  148. 7, 1.9, "крупная", 12, 30, "БУР2Б (УБШ 302)", 2.5, 43, "ППН-3",
  149. 3100, 0.7, 2400, 3, m_b=2))