# -*- coding: utf-8 -*- """ Лаба 7. Расчеты элементов проходческих работ: производительность бурильных машин, погрузка породы, откатка электровозом, проветривание забоя. Формулы (7.1)-(7.20) методички. Числовой пример методички содержит арифметические погрешности (например, в (7.6) при подстановке использован psi = 0,25 вместо 0,17), поэтому проверка ниже сходится с примером по схеме расчёта, но не по всем округлениям. Формулы оттарированы по тем строкам примера, которые воспроизводятся точно: (7.1), (7.2), (7.3), (7.5), (7.10), (7.11), (7.16), (7.15), (7.19). """ from math import pi, sqrt, floor, ceil # ---------------------------------------------------------------- справочные данные # Табл. 7.2: механическая скорость бурения V_м (м/мин) по крепости f VM_TABLE = {2: 2.20, 3: 2.00, 4: 1.80, 5: 1.65, 6: 1.50, 7: 1.35, 8: 1.20, 9: 1.10, 10: 1.00} # Табл. 7.4: техническая производительность погрузочных машин, м3/мин PGRUZ = {"ППН-1С": 0.8, "ППН-2Г": 1.0, "ППН-3": 1.25, "1ППН-5": 1.25, "ППМ-4У": 1.25, "2ПНБ-2": 2.2, "ПНБ-2": 2.5, "ПНБ-3Д": 4.0, "ПНБ-4": 6.0} # Табл. 7.5: коэффициент разрыхления k_р по крепости f (нижняя граница строки) KP_TABLE = ((2, 1.7), (3, 1.8), (4, 1.9), (7, 2.0), (10, 2.1), (15, 2.2)) def k_r(f): for fmin, k in KP_TABLE: if f <= fmin: return k return 2.2 # Табл. 7.6: сцепной вес электровозов, кН ELECTROVOZ = {"4КР": 40, "7КРМ1": 79, "К10": 106, "К14М": 140, "КТ14": 140, "АРВ7": 70, "АМ8Д": 87, "АРП10Б": 104, "АРП14": 134} # Табл. 7.7: вагонетки: вместимость (м3), грузоподъёмность (т), масса (т) VAGONETKA = { "ВГ0.7": (0.7, 1.8, 0.55), "ВГ1.2": (1.2, 2.5, 0.807), "ВГ2.0": (2.0, 5.0, 1.51), "ВГ2.2": (2.2, 5.5, 1.45), "ВГ4.5А": (4.5, 13.5, 4.2), "ВГ9А": (9.0, 27.0, 8.9), "ВГ10А": (10.0, 30.0, 9.5), } # Табл. 7.8: коэффициент трения альфа по диаметру трубы воздуховода ALPHA = {0.4: 0.00030, 0.5: 0.00025, 0.6: 0.00022, 0.7: 0.00020} # Варианты (таблица 7.10): f, rho, фракция, уклон промилилле, S, # бурильная установка, глубина бурения м, диаметр шпура мм, погрузочная машина VARIANTS = { 1: (12, 1.9, "мелкая", 5, 24, "БУ-1Б (УБШ 202)", 2.4, 46, "ППН-2Г", 2100, 0.5, 2400, 2), 2: (7, 2.0, "крупная", 0, 30, "БУР2Б (УБШ 302)", 2.3, 52, "2ПНБ-2", 2350, 0.7, 3600, 3), 3: (10, 1.8, "крупная", 6, 28, "БКГ-2 (УБШ 309)", 2.5, 52, "ПНБ-2", 2200, 0.7, 3000, 3), 4: (14, 1.7, "мелкая", 3, 22, "СБКН2М (УБШ 207)", 2.0, 55, "ППН-2Г", 2740, 0.5, 2400, 2), 5: (15, 2.5, "мелкая", 0, 24, "БУ-1Б (УБШ 202)", 2.1, 60, "1ППН-5", 2900, 0.5, 2400, 2), 6: (8, 2.1, "крупная", 4, 27, "БКГ-2 (УБШ 309)", 2.4, 43, "ППН-3", 2150, 0.6, 3000, 3), 7: (11, 2.0, "крупная", 10, 25, "БУ-1Б (УБШ 202)", 2.5, 46, "1ППН-5", 3050, 0.6, 2400, 2), 8: (16, 2.2, "мелкая", 0, 24, "СБКН2М (УБШ 207)", 2.2, 55, "ППН-5", 2350, 0.5, 2400, 2), 9: (9, 1.8, "крупная", 9, 30, "БУР2Б (УБШ 302)", 2.5, 52, "ПНБ-2", 2400, 0.7, 3600, 3), 10: (12, 2.1, "мелкая", 4, 22, "СБКН2М (УБШ 207)", 2.1, 46, "ППН-2Г", 3100, 0.5, 2400, 2), 11: (13, 2.1, "мелкая", 5, 25, "БУ-1Б (УБШ 202)", 2.0, 52, "ППН-3", 2400, 0.6, 2400, 2), 12: (8, 1.8, "крупная", 7, 32, "БУР2Б (УБШ 302)", 2.5, 43, "ПНБ-2", 2600, 0.7, 3600, 3), 13: (10, 1.9, "мелкая", 9, 21, "СБКН2М (УБШ 207)", 2.5, 46, "ППН-2Г", 3150, 0.5, 2400, 2), 14: (7, 1.8, "крупная", 3, 30, "БУР2Б (УБШ 302)", 2.4, 40, "ПНБ-2", 2440, 0.7, 3600, 3), 15: (14, 2.0, "крупная", 5, 26, "БУ-1Б (УБШ 202)", 2.2, 52, "ППН-5", 2150, 0.6, 3000, 3), 16: (12, 2.1, "мелкая", 7, 28, "БКГ-2 (УБШ 309)", 2.1, 46, "ППН-3", 2350, 0.7, 3000, 3), 17: (9, 1.9, "мелкая", 12, 27, "БКГ-2 (УБШ 309)", 2.3, 43, "1ППН-5", 2200, 0.6, 3000, 3), 18: (11, 1.7, "крупная", 2, 31, "БУР2Б (УБШ 302)", 2.1, 52, "2ПНБ-2", 2740, 0.7, 3600, 3), 19: (10, 1.6, "крупная", 4, 30, "БУР2Б (УБШ 302)", 2.5, 46, "2ПНБ-2", 2900, 0.7, 3600, 3), 20: (12, 2.0, "мелкая", 0, 26, "БУ-1Б (УБШ 202)", 2.4, 43, "ППН-3", 2150, 0.6, 2400, 2), } G = 9.81 # ---------------------------------------------------------------- расчёт def rup(x, n=2): p = 10 ** n return floor(x * p + 0.5) / p def compute(f, rho, frak, uklon, S, ustanovka, l_shp_d_m, d_shp_mm, pogr_mash, L_ot, d_tr, t_prov, n_proh, m_b=2, k_zam=0.7, k_vsp=0.85, k_od=0.8, k_nad=0.9, k_pr=0.8, el="КТ14", vag="ВГ4.5А", a_p=0.3, v_t=2.0, l_t=10.0, k_nk=1.15, k_nrp=0.9, k_n_pogr=0.85, l_o=100, V_o=80, t_pr=1.5, t_pod=10, t_raz_v=1.0, t_man=10, v_sr=10.0, k_ng=1.1, n_mash=1, 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, zap_v=1.1): """Полный расчёт по формулам (7.1)-(7.20). Числа методички по умолчанию.""" out = {} l_shp = l_shp_d_m d_shp = d_shp_mm / 1000.0 # --- 1. бурение, (7.1)-(7.2) V_m = VM_TABLE[min(max(f, 2), 10)] k_d = rup(30 / d_shp_mm, 2) P_b_t = rup(V_m * k_d * k_zam * k_vsp, 2) # м/мин P_b_e = rup(60 * P_b_t * k_od * k_nad * k_pr * m_b, 1) # м/ч # --- 2. погрузка P_p_t = PGRUZ[pogr_mash] # м3/мин (табл. 7.4) i = uklon / 1000.0 # уклон в долях P_sс = ELECTROVOZ[el] # кН # (7.5), (7.6): удельные величины в Н/кН: 1000*psi, i (промилле = Н/кН), 108*a Q5 = rup(P_sс * (1000 * 0.25 - uklon - 108 * a_p) / (9 + uklon) - P_sс, 1) Q6 = rup(P_sс * (1000 * 0.17 - uklon - 108 * (v_t ** 2 / (2 * l_t))) / (8 + uklon) - P_sс, 1) Q_gr = min(Q5, Q6) V_v, _gr, m_v = VAGONETKA[vag] G_gr = rup(V_v * rho * G, 1) # вес груза, кН G_t = rup(m_v * G, 1) # вес тары, кН Z = floor(Q_gr / (G_gr + G_t)) # вагонов в составе # (7.4): эксплуатационная производительность погрузочной машины, м3/ч P_p_e = rup(60 * V_v * k_nk / (V_v * k_nk / (P_p_t * k_nrp * k_n_pogr) + 2 * l_o / V_o + t_pr + t_pod / Z), 1) # --- 3. рейсы t_p = rup(Z * V_v * k_nk / (P_p_t * k_nrp * k_n_pogr), 1) # (7.10), мин t_dv = rup(2 * L_ot / (60 * v_sr), 1) # (7.11), мин t_r = rup(Z * t_raz_v, 1) # (7.12), мин T_r = rup(t_p + t_dv + t_r + t_man, 1) # (7.9), мин n_s = ceil((t_p + t_dv + t_r) / t_p) # (7.13), составов l_zah = l_shp # заходка ~ глубина N_r = ceil(S * l_zah * k_r(f) / (Z * V_v * k_nk)) # (7.14), рейсов # --- 4. вентиляция (цепочка по округляемым значениям, как в отчёте) S_tr = rup(pi * d_tr ** 2 / 4, 2) # площадь трубы, м2 l_d = rup(S * sqrt(S_tr) + 5, 1) # (7.16), м kf = 48 if S > 20 else 26 # коэффициент 48/26 Q_z = rup(kf * (S - l_d) * l_shp * rho / sqrt(S * S_tr * t_prov), 2) # (7.15), м3/с t_p_s = t_p * 60 # (7.10) в секундах Q_av = rup(k_ng * n_mash * sqrt(4.5 * (L_ot / t_p_s) * (1 + 20 / v_avto)), 2) # (7.17) N_l = 2 * n_proh # люди в забое Q_l = rup(k_z_v * q_v_chel * N_l, 2) # (7.18), м3/с Q_v = rup(v_min * S, 2) # (7.19), м3/с Q_rasch = max(Q_z, Q_av, Q_l, Q_v) # расчётный расход Q_vent = rup(zap_v * Q_rasch, 2) # производительность в-ра h_v = rup(6.5 * ALPHA[d_tr] * l_v * Q_vent ** 2 / d_tr ** 5 + xi_sum * Q_vent ** 2 / (2 * G * S_tr ** 2), 0) # (7.20), Па out["исходные"] = f"f={f}, S={S} м2, уклон {uklon}‰, L={L_ot} м, {pogr_mash}, {el}+{vag}" out.update({ "1) Vм": V_m, "1) kд": k_d, "1) Pб.т": P_b_t, "1) Pб.э": P_b_e, "2) Pп.т": P_p_t, "2) Q5(сцепл.)": Q5, "2) Q6(торм.)": Q6, "2) Qгр": Q_gr, "2) Gгр": G_gr, "2) Gт": G_t, "2) Z": Z, "2) Pп.э": P_p_e, "3) tп": t_p, "3) tдв": t_dv, "3) tр": t_r, "3) Tр": T_r, "3) nс": n_s, "3) Nрейс": N_r, "4) Sтр": round(S_tr, 4), "4) lд": l_d, "4) Qз(взрыв)": Q_z, "4) Qавто": Q_av, "4) Qлюди": Q_l, "4) Qскор": Q_v, "4) Qрасч": Q_rasch, "4) Qвент": Q_vent, "4) hв,Па": h_v, }) return out def report(title, res): print(f"\n=== {title} ===") for k, val in res.items(): print(f" {k:14} = {val}") if __name__ == "__main__": import sys if len(sys.argv) > 1 and sys.argv[1].isdigit(): n = int(sys.argv[1]) v = VARIANTS[n] report(f"Вариант {n}", compute(*v)) else: # Пример методички: f=7, S=30, ППН-3, КТ14+ВГ4.5, уклон 12 промиллей, # L=3100, d_тр=0,7, t=2400 с, 3 проходчика, глубина 2,5 м, шпур 43 мм report("Пример методички (частично сходится)", compute( 7, 1.9, "крупная", 12, 30, "БУР2Б (УБШ 302)", 2.5, 43, "ППН-3", 3100, 0.7, 2400, 3, m_b=2))