АШИГТ МАЛТМАЛЫН БАЯЖУУЛАЛТЫН ТЕХНИК, ТЕХНОЛОГИ

Ашигт малтмалын баяжуулалтын чиглэлээр сурч буй оюутан сурагчид, залуу инженерүүдэд зориулав.

Tuesday, April 14, 2026

ТЭЭРЭМ СОНГОХ ТООЦООЛУУР (Залуу инженерүүд, оюутан залуустаа зориулав)

Mill Selection Tool - Блогт зориулсан хувилбар

🏭 MILL SELECTION TOOL

Ball Mill / SAG Mill - Хурдан тооцоолол | Оюутнууд, залуучуудад зориулав

💡 10-30: Хатуу хүдэр | 30-70: Дунд | 70-150: Зөөлөн
💡 Тайлбар: Энэхүү тооцоолол нь Бондын болон Морреллийн эмпирик томьёонд суурилсан бөгөөд урьдчилсан тооцоонд зориулагдсан болно. Нарийвчилсан инженерийн тооцоонд мэргэжлийн програмуудыг ашиглана уу.

Saturday, January 31, 2026

PYTHON сонирхогч залуучуудад сонирхуулах зорилгоор БИОРИТМ программыг оруулав.

Биоритм Тооцоолуур

📊 Биоритм Тооцоолуур

Таны бие, сэтгэл, оюун ухааны долоо хоногийн мөчлөг

Тооцоолж байна...

ℹ️ Биоритмын тухай

Бие бялдар (23 хоног): Хүч чадал, эрч хүч, биеийн тамир
Сэтгэл санаа (28 хоног): Мэдрэмж, сэтгэл хөдлөл, уур хилэн
Оюун ухаан (33 хоног): Оюун ухаан, санах ой, шийдвэр гаргах

SABC схемийн шаардлагатай чадлыг тооцох нь (JK A*b)

GD Mill Design Toolkit (Web) — 3 Tabs

Tab1: SABC Power (JK A*b) • Tab2: Ball Mill + Cyclone • Tab3: Mill Power Design (Q → P)
Input Data
Results
E_total (kWh/t)
-
E_SAG (kWh/t)
-
E_Ball (kWh/t)
-
SAG fraction of total energy
-
SAG Power (kW)
-
Ball Mill Power (kW)
-
Total SABC Power (kW)
-
Hybrid split uses Bond energy split + JK A*b correction (Ab_ref=42.5).
Ball Mill Input (Bond + EF1–3, Installed Power)
Cyclone Input
Results
Mill E_basic (kWh/t)
-
Mill E_corrected (kWh/t)
-
Mill Q_basic (t/h)
-
Mill Q_corrected (t/h)
-
Cyclone Feed (m³/h)
-
Cyclone D50 (µm)
-
Cyclone Body Dia calc (mm)
-
Cyclone Dia selected (mm)
-
Capacity per cyclone (m³/h)
-
Number of cyclones
-
Vortex finder dia (mm)
-
Inlet dia (mm)
-
Design Input
Results
E_basic (kWh/t)
-
E_corrected (kWh/t)
-
Required Mill Power (kW)
-
Required Mill Power (MW)
-
P_req = (E_corr · Q) / η

Бөөрөнцөгт тээрмийн хүчин чадлыг Бондын аргаар автоматаар тооцох нь

Bond Ball Mill Capacity (Rowland EF) — Web Version

Capacity Q is calculated using Rowland form with ζ = product(EF). Units: D,L (m), ρb (t/m³), J (fraction), φc (fraction), Wi (kWh/t), F80,P80 (µm).
Basic inputs
Operating conditions
Result
Capacity Q = ?
Q is t/h (metric tonnes per hour)
Rowland Efficiency Factors (Ball Mill)
EF1 (dry grinding)
-
EF2 (open circuit)
-
EF3 (mill diameter)
-
EF4 (oversize feed)
-
EF5 (fine product)
-
EF7 (low reduction ratio)
-
ζ = EF1·EF2·EF3·EF4·EF5·EF7
-
Bond specific energy (F80 → P80)
Base W (no EF)
-
Actual W (with ζ)
-
Debug
Run a calculation to view details.

Sunday, January 25, 2026

БӨӨРӨНЦӨГТ ТЭЭРМИЙН ЧАДЛЫН ҮНЭЛГЭЭ

Доор бөөрөнцөгт тээрмийн суульлагдсан чадлыг регрессийн аргаар үнэлэх тооцоог Python -ыг хэрхэн хэрэглэх талаар авч үзэв. Энэ нь өгөгдлийг боловсруулах хамгийн энгийн жишээ юм.


Цаашид Python хэлээ улам сайн сураад инженерийн тооцоог гүйцэтгэдэг программыг GUI (Graphic User Interface) байдлаар бэлэн болгож болно.
Дараах зурагт бөөрөнцөгт тээрмийн хүчиэн чадлыг олдог программын GUI хэлбэрээр боловсруулсныг харуулав.







Friday, January 23, 2026

ХАГАС ӨӨРӨӨ НУНТАГЛАЛТЫН ТЭЭРМИЙН (SAG) ЧАДАЛ СОНГОХ ТООЦОО



ЭНЭХҮҮ ПАЙТОН КОД НЬ ХҮДРИЙН ХАТУУЛГЫН ИНДЕКС A*b АШИГЛАН (JKSIMMET) ХӨН-ЫН ТЭЭРМИЙН ЧАДЛЫГ ТООЦНО.
ПРОГРАММЫН ӨГӨГДӨЛ:
 		
 A*b = 42.5
 Wi = 17.8 kWh/t
 F80 = 304000 micron (304 mm)
 T80 = 1700 micron (1.7 mm)
 Q = 1812 tph
 
#-------------------------------------------------------------------------
# SAG тээрмийн чадлын тооцоог хатуулгын A*b индекс ашиглан тооцох программ
#-------------------------------------------------------------------------

import math
from dataclasses import dataclass

# ----------------- Өгөгдлийн бүтэц ----------------- #

@dataclass
class SagOreData:
    ab: float       # JK A*b
    wi: float       # Bond ball mill Wi, kWh/t
    f80_micron: float  # SAG feed F80, micron
    t80_micron: float  # SAG product T80 (BM feed), micron
    q_tph: float       # Fresh feed rate, t/h


@dataclass
class SagCalcParams:
    ab_ref: float = 40.0    # Reference A*b for "medium" ore
    gamma: float = 0.7      # Exponent in C_Ab = (Ab_ref / Ab)^gamma
    c_oper: float = 1.3     # Operating condition factor (fill, speed, etc.)
    eta_drive: float = 0.97 # Drive efficiency
    eta_motor: float = 0.97 # Motor efficiency
    sf: float = 1.10        # Safety factor for installed power


@dataclass
class SagResult:
    e_bond_sag: float   # Bond reference energy F80->T80, kWh/t
    c_ab: float         # Hardness factor from A*b
    c_oper: float       # Operating factor
    e_sag: float        # Final SAG specific energy, kWh/t
    p_net_kw: float     # Net SAG power, kW
    p_inst_kw: float    # Installed SAG power, kW


# ----------------- Туслах функцууд ----------------- #

def bond_energy_f_to_t(wi: float, f80_micron: float, t80_micron: float) -> float:
    """
    Bond equation for size reduction F80 -> T80.
    E (kWh/t) = 10 * Wi * (1/sqrt(T80) - 1/sqrt(F80))
    F80, T80 in micron.
    """
    f80 = max(f80_micron, 1.0)
    t80 = max(t80_micron, 1.0)

    term = (1.0 / math.sqrt(t80)) - (1.0 / math.sqrt(f80))
    e_bond = 10.0 * wi * term
    return max(e_bond, 0.0)


def hardness_factor_ab(ab: float, ab_ref: float, gamma: float) -> float:
    """
    C_Ab = (Ab_ref / Ab)^gamma
    - Ab < Ab_ref -> C_Ab > 1 (hard ore, more energy)
    - Ab > Ab_ref -> C_Ab < 1 (soft ore, less energy)
    """
    ab_eff = max(ab, 1e-6)
    return (ab_ref / ab_eff) ** gamma


def sag_power_from_ab(ore: SagOreData, params: SagCalcParams) -> SagResult:
    # 1) Bond reference energy for coarse grinding: F80 -> T80
    e_bond_sag = bond_energy_f_to_t(
        wi=ore.wi,
        f80_micron=ore.f80_micron,
        t80_micron=ore.t80_micron
    )

    # 2) Hardness factor from A*b
    c_ab = hardness_factor_ab(
        ab=ore.ab,
        ab_ref=params.ab_ref,
        gamma=params.gamma
    )

    # 3) Final SAG specific energy with operating factor
    e_sag = e_bond_sag * c_ab * params.c_oper  # kWh/t

    # 4) Net power: P_net (kW) = E_sag (kWh/t) * Q (t/h)
    p_net_kw = e_sag * ore.q_tph

    # 5) Installed power (mechanical + electrical losses, safety factor)
    p_inst_kw = p_net_kw / (params.eta_drive * params.eta_motor) * params.sf

    return SagResult(
        e_bond_sag=e_bond_sag,
        c_ab=c_ab,
        c_oper=params.c_oper,
        e_sag=e_sag,
        p_net_kw=p_net_kw,
        p_inst_kw=p_inst_kw
    )


# ----------------- ЖИШЭЭ: Эрдэнэттэй төстэй өгөгдөл ----------------- #

if __name__ == "__main__":
    # Таны өгсөн өгөгдөл:
    # A*b = 42.5, Wi = 17.8 kWh/t,
    # F80 = 304000 micron (304 mm),
    # T80 = 1700 micron (1.7 mm),
    # Q = 1812 tph
    ore_data = SagOreData(
        ab=42.5,
        wi=18,
        f80_micron=304000.0,
        t80_micron=1700.0,
        q_tph=1812
    )

    # Тооцооны параметр (эхний таамаг):
    calc_params = SagCalcParams(
        ab_ref=40.0,   # "дунд" хүдэр
        gamma=0.7,     # A*b-ийн нөлөөний зэргийн үзүүлэлт
        c_oper=1.3,    # ажиллагааны нөхцөл (fill, speed, etc.)
        eta_drive=0.97,
        eta_motor=0.97,
        sf=1.10
    )

    result = sag_power_from_ab(ore_data, calc_params)

    print("======= SAG ТЭЭРМИЙН ЧАДЛЫН ТООЦОО (A*b ашигласан) =======")
    print(f"Бондын томьёогоор (F80->T80): {result.e_bond_sag:6.3f} кВт ц/т")
    print(f"Хатуулгын фактор C_Ab       : {result.c_ab:6.3f} (-)")
    print(f"Vйл ажиллагааны фактор      : {result.c_oper:6.3f} (-)")
    print(f"SAG тээрмийн хувийн энерги  : {result.e_sag:6.3f} кВт ц/т")
    print(f"SAG тээрмийн цэвэр чадал    : {result.p_net_kw/1000:6.2f} МВт")
    print(f"Суулрьлагдсан чадал         : {result.p_inst_kw/1000:6.2f} МВт")
    
    

ПОЛИНОМ РЕГРЕСС (МАШИН СУРГАЛТ)




Машин сургалт ба өгөгдлийн шинжилгээнд регрессийн шинжилгээ нь гол үүрэгтэй.  Python -ы NUMPY сангийн ploy1d функцийг ашиглан полином регрессийн шигжилгээг амархан гүйцэтгэж болно.
Уг программаар полиномын зэргийг гараар өгч тухайн олон гишүүнт загварыг өөрийн хүссэнээр тооцоолно:


import matplotlib.pyplot as plt
import numpy as np

# туршилтын vр дvн
x = [-100, -75, -50, -25, 0, 25, 50, 75, 100]
y = [4.06, 6.78, 9.49, 16.27, 40.67, 97.62, 146.63, 151.85, 162.70]
X = np.linspace(-100, 100, 100)
# NUMPY сангийн полином регрессийн коэффициентуудыг vнэлэх
while True:
    try:
        m = eval(input("\n Полиномын зэрэг ==> "))
        mymodel = np.poly1d(np.polyfit(x, y, m))
        print(mymodel)
        plt.title('Полином регресс , n=' + str(m));
        plt.xlabel('x');
        plt.ylabel('y')
        plt.grid(True)
        plt.scatter(x, y)
        plt.plot(X, mymodel(X))
        plt.show()
    except SyntaxError:
        break
input("Боллоо, дурын товч дарна уу?")