Simulación de un circuito de molienda clasificación directa


  1. Justificación
  2. Objetivos
  3. Elementos Conceptuales
  4. Diseño del programa
  5. Procedimiento
  6. Conclusiones
  7. Recomendaciones
  8. Bibliografía
  9. Anexo. Simulación de un circuito de molienda clasificación directa

I-Introducción

1.1-Contexto:

  • Tendencias vigentes de la tecnología
  • Optimización de operaciones metalúrgicas
  • Extensión y detalle del documento
  • Proyecto de investigación
  • Este simulador no es dinámico, se aplica al estado estacionario.
  • Los cálculos dependen del tonelaje de alimentación fresca y de las dimensiones y parámetros de operación del molino así como de las propiedades del mineral.

1.2-Justificación:

Todos los procesos necesarios en la industria de procesamiento de minerales son importantes debido a que cada uno contribuye para la obtención del producto deseado.

Sin embargo los procesos de conminución de mineral juegan un rol trascendental en la recuperación de elementos valiosos desde sus menas. Dentro de ellos la molienda tiene importancia especial, no solamente por sus altos costos operativos, sino también al hecho de que las propiedades físicas y mineralógicas del producto molido resultante es determinante en gran medida de la efectividad de las siguientes etapas. Es por eso que la optimización de esta operación unitaria disminuiría considerablemente los costos de operación.

1.3-Objetivos:

  • Desarrollar un simulador de un circuito de molienda-clasificación directa en Visual Basic.

1.4-Elementos Conceptuales:

El circuito de molienda-clasificación que se permite simular es el siguiente:

Figura 1

Este sistema tiene tres subsistemas (S1, S2, S3), los cuales nos permitirán realizar los cálculos para la simulación.

1.4.1-El subsistema (S1) esta conformado por el Hidrociclón, este subsistema nos permitirá calcular: El porcentaje acumulado retenido del Underflow; tonelaje de salida del Underflow, cuyos modelos matemáticos son:

(1)

 

(2)

 

(3)

(4)

(5)

(6)

(7)

Donde,

a1, a2, a3, a4, son constantes del Hidrociclón.

Qf, Flujo volumétrico de pulpa en la alimentación del Hidrociclón, m3/hr.

H, presión en la alimentación del Hidrociclón, expresada en pies equivalentes en la pulpa de alimentación, ft.

, Fracción sólidos por volumen alimentación del Hidrociclón, %.

DC, diámetro del Hidrociclón, in.

h, altura del Hidrociclón, definida como la distancia del fondo (Vortex) a la parte superior (apex), in.

DI, Diámetro de la entrada de la alimentación del Hidrociclón (área equivalente si la entrada es rectangular), in.

DO, Diámetro del vortex Hidrociclón (Overflow), in.

DU, Diámetro apex Ciclón (Underflow), in.

, Tamaño Corre del corte de la partícula que permite un cociente de peso 50:50 entre el Overflow y Underflow.

S, distribución de los caudales volumétricos (flor split) de rebalse y descarga del Hidrociclón.

m, parámetro de plit’s nunca es mayor que 4.

, Eficacia Corregida de Clasificación.

, By_pass finos.

, By_pass del agua.

1.4.2-El subsistema (S2) esta conformado por la unión de flujos del Underflow; del Hidrociclón y la alimentación fresca, este subsistema permite realizar el calculo de: El porcentaje acumulado retenido de la alimentación al molino, alimentación total al molino; los modelos matemáticos son:

(8 y 9)

Donde

Fj, Flujo seco total de alimentación fresca al sistema tons/hr.

U, toneladas del Underflow del Hidrociclón, tons/hr.

Fm, flujo total de alimentación al molino (incluye carga circulante), tons/h.

fm, porcentaje acumulada retenida de sólidos en la alimentación compuesta al molino, %.

fu, porcentaje acumulada retenida de sólidos en el Underflow del Hidrociclón,%.

fsf, porcentaje acumulada retenida de sólidos en la alimentación fresca al circuito,%.

1.4.3-El subsistema (S3) esta conformado por el molino, este subsistema permite calcular el porcentaje acumulado retenido en la descarga del molino; los modelos matemáticos son:

(10)

Donde:

fm:= {fi |i=1,2,…n} vector producto (descarga) del molino, cuyos elementos representan la distribución granulométrica parcial del producto

fd= { fd |i=1,2,…n} vector de alimentación al molino, cuyos elementos representan la distribución granulométrica parcial de la alimentación al equipo

T es la matriz triangular inferior (nxn), cuyos elementos Tij están dados:

Tij =

e

(11)

Donde:

Es la función de fractura en su forma acumulada retenida.

Es la función de selección específica.

J es la matriz diagonal (nxn), cuyos elementos Jij están dados por:

Jij =

(12)

(13) (14)

(15)

(16)

(17)

Donde:

D, Diámetro interior molino,ft.

L, Largo interior molino, ft.

J, Nivel llenado aparente. Carga volumétrica aparente llenado (incluyendo bolas y exceso pulpa sobre bolas cargadas, mas pulpa en espacios intersticiales entre bolas), porcentaje ocupa carga relación volumen interno total molino, %.

m, Densidad Mineral, ton/m3.

ap, Densidad aparente carga molino (incluyendo espacios intersticiales), ton/m3.

Pneta, Potencia Neta Molino, kW.

, Angulo inclinación superficie carga durante operación, º.

P, Potencia real o total, kW.

Lw, Pérdidas potencia, %.

E, Energía por tonelada carga, kWh/ton.

Fm, Flujo seco total alimentación molino (incluye carga recirculada), tph.

La relación de las variables entre estos tres subsistemas es el siguiente:

Figura 2

4-DISEÑO DEL PROGRAMA:

4.1-Algoritmo de la simulación del circuito molienda-clasificación.

4.2- PROCEDIMIENTO

En la Figura 3 se indica el esquema seguido en el desarrollo del software:

4.2.1- Variables de Ingreso:

4.2.1.1-Parámetros del Molino

La figura 4 se representan las constante del molino, estas dependen solo del tipo de mineral que se va a reducir de tamaño

, constantes para hallar la función de selección especifica "SE"

constantes para hallar la función de fractura "B(i,j)"

dcrit, diámetro crítico al que se quiere llegar, micrones

Figura 4

La figura 5 se representa datos de operación del molino

Lw, Pérdidas potencia, %, (0→100)

, Angulo inclinación superficie carga durante operación, º, (0→180)

, porcentaje velocidad crítica utilizada, %

D, Diámetro interior molino ,ft

L, Largo interior molino, ft

Jp, Nivel llenado pulpa espacios intersticiales %

J, Nivel llenado aparente. Carga volumétrica aparente llenado (incluyendo bolas y exceso pulpa sobre bolas cargadas, mas pulpa en espacios intersticiales entre bolas), porcentaje ocupa carga relación volumen interno total molino, %

fsd, Fracción peso de los sólidos a la descarga del molino, %

JB, Nivel llenado bolas

fv, Fracción volumétrica espacios intersticiales entre bolas(aprox. 40% volumen aparente ocupado por carga).

B, Densidad bolas, ton/m3

m, Densidad Mineral, ton/m3

Figura 5

4.2.1.2- Parámetros del Hidrociclón

  • La figura 6 se representa datos de operación del Hidrociclón

fus, Fracción Sólidos Underflow Ciclón, %.

fos, Fracción Sólidos Overflow Ciclón, %.

a1, a2, a3, a4son constantes del Hidrociclón

N, número de hidrociclones

DC, diámetro del Hidrociclón, in

h, altura del Hidrociclón, definida como la distancia del fondo (Vortex) a la parte superior (apex), in.

DI, Diámetro de la entrada de la alimentación del Hidrociclón (área equivalente si la entrada es rectangular), in

DO, Diámetro del vortex Hidrociclón (Overflow), in

DU, Diámetro apex Ciclón (Underflow), in

Figura 6

4.2.1.3-Alimentación Fresca

Esta parte de la ventana representa el análisis granulométrico % acumulado retenido de la alimentación fresca al circuito de molienda clasificación y el tonelaje seco de alimentación fresca.

Malla, representa el tipo de malla usada en el análisis granulométrico

Abertura, es el diámetro correspondiente al numero de malla en micrones

Figura 7

4.2.2- Proceso de Iteración.

El Método Numérico que se a empleado en el Programa en Método de Punto Fijo, la variable que se itera es la carga circulante cci = cc0

Se partirá asumiendo una Carga Circulante Inicial = 1, obteniendo la nueva carga circulante la que nos permite determinar:

  • La masa en cada malla en la alimentación al Hidrociclón(c/U)
  • La masa en cada malla en el overflow al Hidrociclón
  • La masa en cada malla en el underflow del Hidrociclón
  • % retenido underflow y overflow del Hidrociclón
  • Masa total underfloW de cada Hidrociclón
  • % retenido underflow y overflow de cada malla
  • calculo de la fracción de sólidos acumulada retenida
  • calculo de la matriz Tij
  • calculo de la salida del molino
  • Nueva Carga Circulante.

El proceso de iteración termina cuando TM de alimentación nueva = TM de alimentación asumida.

4.2.3- Resultados:

  • Se obtiene los Balances de Matria en cada uno de los subsistemas.

  • Se genera un Reporte en Excel , que nos permite evaluar el Proceso del circuito.

5- CONCLUSIONES

  • Se trabajo con el método numérico de punto fijo el cual da una buena convergencia
  • Para el criterio de convergencia se usa la variación de la carga circulante, asumiendo se una inicial de 1
  • Se construyo el programa en Visual Basic 6.0, el cual permite predecir el porcentaje acumulado passing del molino así como también el balance de materia del circuito

6- RECOMENDACIONES

  • Este simulador no es dinámico, se aplica al estado estacionario.
  • Los cálculos dependen del tonelaje de alimentación fresca y de las dimensiones y parámetros de operación del molino así como de las propiedades del mineral.
  • Es importante saber las constantes del clasificador y del molino ya que este simulador no calcula las constantes.

7- BIBLIOGRAFIA

  • JOSE MANZANEDA CABALA "Procesamiento de minerales", Lima-Perú 1995
  • FERNANDO AYRES HIDALGO "Técnicas matemáticas aplicadas al balance de materia circuitos de Chancado, molienda y flotación" 1998
  • JAIME E. SEPULVEDA "Dimensionamiento y optimización de plantas concentradoras mediante técnicas de modelación matemática" Chile, 1986
  • ANGEL EGAS SAENS "Evaluación de plantas concentradoras"
  • JHON M. CURRIE "Operaciones Unitarias en el procesamiento de Minerales"

ANEXO

SIMULACIÓN DE UN CIRCUITO DE MOLIENDA CLASIFICACIÓN DIRECTA

I- CODIGO DEL PROGRAMA:

  1. Datos de Ingreso

frm Datos de Ingreso

Private Sub cmdaceptar_Click()

a01 = Val(txta01.Text)

a02 = Val(txta02.Text)

a11 = Val(txta11.Text)

a12 = Val(txta12.Text)

a2 = Val(txta2.Text)

dcrit = Val(txtdcrit.Text)

B00 = Val(txtb00.Text)

B01 = Val(txtb01.Text)

B1 = Val(txtb1.Text)

B2 = Val(txtb2.Text)

lw = Val(txtlw.Text)

angulo = Val(txta.Text)

phy = Val(txtphi.Text)

diametro = Val(txtdiametro.Text)

largo = Val(txtlongitud.Text)

Jp = Val(txtjp.Text)

tonff = Val(txtafrescacircuito.Text)

Jllenado = Val(txtj.Text)

Jbolas = Val(txtjb.Text)

fracv = Val(txtfv.Text)

dbolas = Val(txtdensidadbolas.Text)

dmineral = Val(txtdensidadmineral.Text)

fsd = Val(txtfsd.Text)

Rem hidrociclon

fus = Val(txtfus.Text)

fos = Val(txtfos.Text)

lambda = Val(txtlambda.Text)

ca1 = Val(txtca1.Text)

ca2 = Val(txtca2.Text)

ca3 = Val(txtca3.Text)

ca4 = Val(txtca4.Text)

NH = Val(txtNH.Text)

DCH = Val(txtDC.Text)

HC = Val(txtHC.Text)

DIH = Val(txtDI.Text)

DOH = Val(txtDO.Text)

DUH = Val(txtDU.Text)

cc0 = Val(txtCC0.Text)

'fasumido en la alimentacion del hidrociclon

fasumido(1) = 0: fasumido(10) = 2.971: fasumido(19) = 1

fasumido(2) = 0.632: fasumido(11) = 3.857

fasumido(3) = 1.397: fasumido(12) = 4.842

fasumido(4) = 1.384: fasumido(13) = 6.004

fasumido(5) = 1.272: fasumido(14) = 6.732

fasumido(6) = 1.344: fasumido(15) = 6.771

fasumido(7) = 1.568: fasumido(16) = 6.377

fasumido(8) = 1.857: fasumido(17) = 5.725

fasumido(9) = 2.475: fasumido(18) = 5.023

fasumido(19) = 4.164: fasumido(20) = 35.604

'recuperado los valores % retenido y abertura de las mallas

For i = 1 To 21

abertura(i) = Val(lblopen(i).Caption)

malla(i) = CStr(label1(i).Caption)

If i = 21 Then

Exit For

Else

faf(i) = Val(txtfaf(i).Text)

End If

Next i

Rem calculo del mid size y SE

For i = 2 To 21

If i <> 21 Then

d(i - 1) = Sqr(abertura(i) * abertura(i - 1))

ElseIf i = 21 Then

d(i - 1) = (abertura(i) + abertura(i - 1)) / 2

SE(i - 1) = 0: Exit For

End If

SE(i - 1) = (1 / (1 + a02 / a01)) * ((a01 * ((d(i - 1)) ^ a11) / (1 + (d(i - 1) / dcrit) ^ a2)) + a02 * (d(i - 1)) ^ a12)

Next i

'calulo de la potrencia del molino

Me.Hide

frmprincipal.Show

frmprincipal.cmdcalcular.Visible = True

End Sub

1.2- Hidrociclon

Frm Hidrociclón

Private Sub cmdaceptar_Click()

mdiprincipal.Enabled = True

Unload frmhidrociclon

End Sub

Private Sub Form_Activate()

Rem hidrocilon

TonF = TonFM

'overflow

txtfso.Text = Round(fos, 2) & " " & "%"

txtppo.Text = Round(densidad(fos), 2) & " " & "ton/m3"

txtTonO.Text = Round(Over * NH, 2) & " " & "ton/hr"

'underflow

txtfsu.Text = Round(fus, 2) & " " & "%"

txtppu.Text = Round(densidad(fus), 2) & " " & "ton/m3"

txttonU.Text = Round(TonFM - Over * NH, 2) & " " & "ton/Hr"

'alimentacion

Rem calculo de la fraccion de solidos a la alimentacion

fsf = TonF / (TonO / fos + TonU / fus)

txtfsf.Text = Round(fsf, 2) & " " & "%"

txtppf.Text = Round(densidad(fsf), 2) & " " & "ton/m3"

txtTonF.Text = Round(TonF, 2) & " " & "ton/hr"

txtNH.Text = NH

txtpresion.Text = Round(PHidrociclon / 2.31 * densidad(fsf), 2) & " " & "Psi"

txtbpw.Text = Round(Bpw, 2)

txtbpf = Round(Bpf, 2)

End Sub

Private Sub Timer1_Timer()

imghidrociclon.Visible = Not imghidrociclon.Visible

End Sub

1.3- Molino

Frm Molino

Private Sub cmdaceptar_Click()

mdiprincipal.Enabled = True

Unload frmmolino

End Sub

Private Sub Form_Load()

txtEnergia.Text = Round(E, 2) & " " & "KwHr/Ton"

'calculo del p80

For i = 1 To 19

If pfm(i) > 80 And pfm(i + 1) < 80 Then

P80M = abertura(i + 1) * Exp(Log(80 / pfm(i + 1)) * Log(abertura(i + 1) / abertura(i)) / Log(pfm(i + 1) / pfm(i)))

End If

Next i

For i = 1 To 19

If pd(i) > 80 And pd(i + 1) < 80 Then

P80D = abertura(i + 1) * Exp(Log(80 / pd(i + 1)) * Log(abertura(i + 1) / abertura(i)) / Log(pd(i + 1) / pd(i)))

End If

Next i

txtp80d.Text = Round(P80D, 2) & " " & "um"

txtp80m.Text = Round(P80M, 2) & " " & "um"

txtppd.Text = Round(densidad(fsd), 2) & " " & "ton/m3"

txtPR.Text = Round(Ereal, 2) & " " & "Kwhr"

txttonD.Text = Round(TonFM, 2) & " " & "ton/hr"

txtTonM.Text = Round(TonFM, 2) & " " & "ton/hr"

txtV.Text = Round(Nc, 2) & " " & "rpm"

txtWi.Text = Round(E / 10 / (1 / P80D ^ 0.5 - 1 / P80M ^ 0.5), 2) & " " & "KwHr/ton"

txtw.Text = Round(TonFM - TonFM / fsd, 2) & " " & "m3/hr"

End Sub

Private Sub Timer1_Timer()

imgtuberia2.Visible = Not imgtuberia2.Visible

imgmolino.Visible = Not imgmolino.Visible

imgsalida.Visible = Not imgsalida.Visible

End Sub

1.4- Frm Pozo

Private Sub cmdaceptar_Click()

mdiprincipal.Enabled = True

Unload frmpozo

End Sub

Private Sub Form_Load()

fsf = Round((TonO + TonU) / (TonO / fos + TonU / fus), 2)

txtd.Text = Round(TonFM, 2) & " " & "ton/hr"

txtpp1.Text = Round(densidad(fsd), 2) & " " & "m3/hr"

txtpp2.Text = Round(densidad(fsf), 2) & " " & "m3/hr"

txtps1.Text = Round(fsd, 2) & " " & "%"

txtps2.Text = Round(fsf, 2) & " " & "%"

txtw.Text = Round(TonFM - TonFM / fsd, 2) & " " & "m3/hr"

End Sub

Private Sub Timer1_Timer()

imgtuberia.Visible = Not imgtuberia.Visible

imgmsalida.Visible = Not imgmsalida.Visible

End Sub

1.5- Principal

Frm Principal

Dim fdescarga(1 To 20) As Double

Private Sub cmdcalcular_Click()

'la variable que se itera es la carga circulante

cci = cc0

ii = 1

For i = 1 To 20

fdescarga(i) = fasumido(i)

Next i

Do While ii < 1000

hidrociclon (cci)

calculos

If Gauss(mat(), inversa()) = True Then

If MULT(T(), Jm(), inversa(), fm(), fd()) = True Then

Else

MsgBox "Ha ocurrido un error." _

& Chr(13) & Chr(13) & "Error : " & Err.Number _

& Chr(13) & "Info : " & Err.Description _

& Chr(13) & "Objeto : " & Err.Source _

& Chr(13) & Chr(13) & "Envie este error a la dirección igorclm[arroba]hotmail.com " _

& "y le indicaran la solución a su problema.", vbCritical, "Error al"

End If

End If

'calculo de la nueva carga circulante

'hallamos la masa en cada malla en la alimentacion al hidrociclon(c/U)

For i = 1 To 20

mfi(i) = TonFM / NH * fd(i, 1) / 100

Next i

'hallamos la masa en cada malla en el overflow al hidrociclon

For i = 1 To 20

mui(i) = Ei(i) * mfi(i)

Next i

'hallamos la masa en cada malla en el underflow del hidrociclon

For i = 1 To 20

moi(i) = mfi(i) - mui(i)

Next i

'hallamos % retenido underflow y overflow del hidrociclon

For i = 1 To 20

'masa total underflon de cada hidrociclon

smui = smui + mui(i)

smoi = smoi + moi(i)

Next i

For i = 1 To 20

'% retenido underflow y overflow de cada hidrociclon

rfu(i) = mui(i) / smui * 100

rfo(i) = moi(i) / smoi * 100

Next i

cc = smui / smoi

If Abs(cci - cc) < 0.001 Then

mostrarpanel

Exit Sub

Else

cci = cc

End If

For i = 1 To 20

fdescarga(i) = fd(i, 1)

Next i

ii = ii + 1

Loop

End Sub

Sub mostrarpanel()

Pff(1) = 100: pfm(1) = 100: pd(1) = 100: paf(1) = 100

po(1) = 100: pu(1) = 100

For i = 1 To 20

Pff(i + 1) = Round(Pff(i) - faf(i), 2)

pfm(i + 1) = Round(pfm(i) - fm(i, 1), 2)

pd(i + 1) = Round(pd(i) - fd(i, 1), 2)

paf(i + 1) = Round(paf(i) - fd(i, 1), 2)

pu(i + 1) = Round(pu(i) - rfu(i), 2)

po(i + 1) = Round(po(i) - rfo(i), 2)

Next i

txtalifresca.Visible = True

txtover.Visible = True

txtalimolino.Visible = True

txtcc.Visible = True

Label1.Visible = True

Label2.Visible = True

Label3.Visible = True

Label4.Visible = True

lblmolino.Enabled = True

lblpozo.Enabled = True

lblhidrociclon.Enabled = True

cmdreporte.Visible = True

txtalifresca.Text = tonff & " " & "ton/hr"

txtover.Text = TonO & " " & "ton/hr"

txtalimolino.Text = Round(TonFM, 2) & " " & "ton/hr"

txtcc.Text = Round(cc, 4)

End Sub

Sub calculos()

Rem calculo de B0j

For i = 1 To 20

B0j(i) = B00 * (d(i) / d(1)) ^ (-B01)

If B0j(i) > 1 Then

B0j(i) = 1

ElseIf B0j(i) < 1 Then

B0j(i) = B0j(i)

End If

Next i

Rem calculo de Bij fraccion de solidos acumulada pasante

For i = 1 To 20

For j = 1 To 20

If i >= j Then

If i = 20 And j = 20 Then

B(i, j) = B0j(i) * (abertura(i) / abertura(j)) ^ B1 + (1 - B0j(i)) * (abertura(i) / abertura(j)) ^ B2

ElseIf i = j Then

B(i, j) = 1

ElseIf i > j Then

B(i, j) = B0j(i) * (abertura(i) / abertura(j + 1)) ^ B1 + (1 - B0j(i)) * (abertura(i) / abertura(j + 1)) ^ B2

End If

Else

B(i, j) = 0

End If

Next j

Next i

Rem calculo de la fraccion de solidos acumulada retenida baij

For i = 1 To 20

For j = 1 To 20

If i >= j Then

If i = j Then

ba(i, j) = 0

ElseIf i = 20 Then

ba(i, j) = B(i, j)

ElseIf i > j Then

ba(i, j) = B(i, j) - B(i + 1, j)

End If

End If

Next j

Next i

Rem caluculo de la matriz Tij

For j = 1 To 20

For i = 1 To 20

If i < j Then

T(i, j) = 0

ElseIf i = j Then

T(i, j) = 1

ElseIf i > j Then

T(i, j) = suma(i, j)

End If

Next i

Next j

'calculo de la matriz j

For i = 1 To 20

For j = 1 To 20

If i = j Then

Jm(i, j) = 1 / (1 + SE(i) * E / (largo / diametro)) ^ (largo / diametro)

ElseIf i <> j Then

Jm(i, j) = 0

End If

Next j

Next i

Rem calculo de la salida del molino

'creamos una matriz aumentada mat

For i = 1 To 20

For j = 1 To 40

If j = i + 20 And j > 20 Then

mat(i, j) = 1

End If

If j <= 20 Then

mat(i, j) = T(i, j)

End If

If j <> i + 20 And j > 20 Then

mat(i, j) = 0

End If

Next j

Next i

End Sub

Sub hidrociclon(cci)

Rem calculo delos valores

TonO = tonff ' alimentacion fresca

Over = TonO / NH

Under = cci * Over

Feed = Over + Under

Up = Under * 100 / fus 'mas de pulpa tons/hr

Op = Over * 100 / fos ' masa de pulpa tons/hr

Fp = Up + Op 'masa de pulpa tons/hr

Wf = Fp - Feed 'caudal de agua ton/hr

Wo = Op - Over 'caudal de agua ton/hr

Wu = Up - Under 'caudal de agua ton/hr

Qf = Feed / dmineral + Wf 'caudal de pulpa m3/hr

Qo = Over / dmineral + Wo 'caudal de pulpa m3/hr

Qu = Under / dmineral + Wu 'caudal de pulpa m3/hr

fphy = Feed / dmineral / Qf * 100

Bpw = Wu / Wf

Bpf = lambda * Bpw

'Public fus , fos lambda ca1 ca2 ca3 ca4 NH DC HC As Variant

PHidrociclon = ca1 * Qf ^ 1.46 * Exp(-7.63 * fphy / 100 + 10.79 * (fphy / 100) ^ 2) / (DCH ^ 0.2 * HC ^ 0.15 * DIH ^ 0.51 * DOH ^ 1.65 * DUH ^ 0.53)

d50 = ca2 * (DCH ^ 0.44 * DIH ^ 0.58 * DOH ^ 1.91 * Exp(11.12 * fphy / 100)) / (HC ^ 0.37 * DUH ^ 0.8 * Qf ^ 0.44 * (dmineral - 1) ^ 0.5)

Sp = ca3 * (HC ^ 0.19 * (DUH / DOH) ^ 2.64 * Exp(-4.33 * fphy / 100 + 0.77 * (fphy / 100) ^ 2)) / (HC ^ 0.54 * DCH ^ 0.38)

m = Exp(ca4 - 1.58 * (Sp / (1 + Sp))) * (DCH ^ 2 * HC / Qf) ^ 0.15

For i = 1 To 20

Eic(i) = 1 - Exp(-0.693 * (d(i) / d50) ^ m)

Next i

For i = 1 To 20

Ei(i) = Bpf + (1 - Bpf) * Eic(i)

Next i

'hallamos la masa en cada malla en la alimentacion al hidrociclon(c/U)

For i = 1 To 20

mfi(i) = Feed * fdescarga(i) / 100

Next i

'hallamos la masa en cada malla en el overflow al hidrociclon

For i = 1 To 20

mui(i) = Ei(i) * mfi(i)

Next i

'hallamos la masa en cada malla en el underflow al hidrociclon

For i = 1 To 20

moi(i) = mfi(i) - mui(i)

Next i

'hallamos % retenido underflow del hidrociclon

For i = 1 To 20

'masa total underflon de cada hidrociclon

smui = smui + mui(i)

Next i

For i = 1 To 20

'% retenido underflow de cada hidrociclon

fui(i) = mui(i) / smui * 100

Next i

'balance en el nodo de alimentacion del molino TonFM

TonU = smui * NH

TonFM = TonU + tonff

potencia

For i = 1 To 20

fm(i, 1) = (TonU * fui(i) + tonff * faf(i)) / (TonFM)

Next i

End Sub

Sub potencia()

Nc = 76.6 / diametro ^ 0.5 * phy / 100

ppd = densidad(fsd)

Vmolino = pi / 4 * (0.305 * diametro) ^ 2 * (0.305 * largo)

Vc = Vmolino * Jllenado / 100

VBolas = Vmolino * Jbolas / 100

MB = (1 - fracv) * dbolas * VBolas

MPEI = Jp / 100 * fracv * VBolas * ppd

JE = Jllenado - Jbolas

MPE = JE * Vmolino * ppd

pap = (MB + MPEI + MPE) / Vc

pneta = 0.238 * diametro ^ 3.5 * (largo / diametro) * phy / 100 * pap * (Jllenado / 100 - 1.064 * Jllenado ^ 2 / 10000) * Sin(angulo * pi / 180)

Ereal = pneta / (1 - lw / 100)

E = pneta / TonFM

End Sub

Private Sub cmdreporte_Click()

'calculo del p80

For i = 1 To 19

If pfm(i) > 80 And pfm(i + 1) < 80 Then

P80M = abertura(i + 1) * Exp(Log(80 / pfm(i + 1)) * Log(abertura(i + 1) / abertura(i)) / Log(pfm(i + 1) / pfm(i)))

End If

Next i

For i = 1 To 19

If pd(i) > 80 And pd(i + 1) < 80 Then

P80D = abertura(i + 1) * Exp(Log(80 / pd(i + 1)) * Log(abertura(i + 1) / abertura(i)) / Log(pd(i + 1) / pd(i)))

End If

Next i

dialogo.DialogTitle = "Destino - Seleccione el archivo de destino"

dialogo.Filter = "Archivos de Datos (*.csv)|*.csv|Archivos de Excel (*.xls)|*.xls|Todos los archivos (*.*)|*.*"

dialogo.ShowOpen

If dialogo.FileName <> "" Then

Open dialogo.FileName For Output As #1

Print #1, " " & ";" & "Simulador de Molienda de un Circuito Cerrado Convencional"

Print #1, ""

Print #1, " " & ";" & "Datos de la simulación"

Print #1, "Fecha" & " " & Date

Print #1, "Hora" & " " & Time

Print #1, " Autores" & ";" & "Veronica Charres & igor Cañapataña"

Print #1, " " & ";" & "Distribución de tamaños de particula"

Print #1, "malla" & ";" & "%pass" & ";" & "%pass" & ";" & "%pass" & ";" & "%pass" & ";" & "%pass" & ";" & "%pass"

Print #1, "Tyler#" & ";" & "Al. Fresca" & ";" & "al. Molino" & ";" & " Des. Molino" & ";" & "Al. Hidrociclon" & ";" & "Uderflow" & ";" & "Overflow"

For i = 1 To 20

Print #1, malla(i) & ";" & Pff(i) & ";" & pfm(i) & ";" & pd(i) & ";" & paf(i) & ";" & pu(i) & ";" & po(i)

Next i

Print #1, ""

Print #1, "Desempeño del molino de bolas"

Print #1, "Potencia Real" & ";" & Round(Ereal, 2) & "KWH "

Print #1, "Potencia Especifica" & ";" & Round(E, 2) & "KWH/Ton "

Print #1, "Velocidad del molino" & ";" & Round(Nc, 2) & " " & "rpm"

Print #1, "Work Index" & ";" & Round(E / 10 / (1 / P80D ^ 0.5 - 1 / P80M ^ 0.5), 2) & " " & "KwHr/ton"

Print #1, ""

Print #1, "datos del Hidrocilon"

Print #1, "Alimentación" & ";" & Round(Feed * NH, 2) & " " & "ton/Hr"

Print #1, "Presión" & ";" & Round(PHidrociclon / 2.31 * densidad(fsf), 2) & " " & "Psi"

Print #1, "d50" & ";" & Round(d50, 2) & " " & "micrones"

Print #1, "By-pass Agua" & ";" & Round(Bpw, 2)

Print #1, "By-pass Finos" & ";" & Round(Bpf, 2)

Print #1, "Carga Circulante" & ";" & Round(cc, 2)

Close #1

Dim Error As Integer

Error = ShellExecute(Me.hwnd, "Open", dialogo.FileName, " ", " ", 1)

End If

End Sub

Private Sub Form_Load()

txtalifresca.Visible = False

txtover.Visible = False

txtalimolino.Visible = False

txtcc.Visible = False

Label1.Visible = False

Label2.Visible = False

Label3.Visible = False

Label4.Visible = False

lblmolino.Enabled = False

lblpozo.Enabled = False

lblhidrociclon.Enabled = False

End Sub

Private Sub lblhidrociclon_Click()

mdiprincipal.Enabled = False

frmhidrociclon.Show

End Sub

Private Sub lblmolino_Click()

mdiprincipal.Enabled = False

frmmolino.Show

End Sub

Private Sub lblpozo_Click()

mdiprincipal.Enabled = False

frmpozo.Show

End Sub

Private Sub mdicontenido_Click()

frmayuda.Show

End Sub

Private Sub mdivaringreso_Click()

cmdreporte.Visible = False

frmprincipal.Hide

frmdatosdeingreso.WindowState = 2

frmdatosdeingreso.Show

End Sub

Private Sub Timer1_Timer()

imgmolino.Visible = Not imgmolino.Visible

imgsalida.Visible = Not imgsalida.Visible

imgtuberia.Visible = Not imgtuberia.Visible

imghidrociclon.Visible = Not imghidrociclon.Visible

imgtuberia2.Visible = Not imgtuberia2.Visible

End Sub

1.5- Módulo Principal

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Directorio As String

Public abertura(1 To 21) As Variant

Public d(1 To 20)

Public malla(1 To 21) As String

Public SE(1 To 20)

Public fm(1 To 20, 1) As Double

Public faf(1 To 20) As Single

Public B(1 To 20, 1 To 20)

Public B0j(1 To 20)

Public ba(1 To 20, 1 To 20)

Public Jdiag(1 To 20, 1 To 20)

Public T(1 To 20, 1 To 20) As Double

Public Jm(1 To 20, 1 To 20) As Double

Public mat(1 To 20, 1 To 40) As Double

Public dmineral

Public inversa(1 To 20, 1 To 20) As Double

Public fd(1 To 20, 1) As Double

Public E As Single

Public Const pi = 3.141592653589

Rem molino

Public a01 As Variant

Public a02 As Variant

Public a11 As Variant

Public a12 As Variant

Public a2 As Variant

Public dcrit As Variant

Public B00 As Variant

Public B01 As Variant

Public B1 As Variant

Public B2 As Variant

Public lw As Variant

Public angulo As Variant

Public phy As Variant

Public Ereal As Variant

Public diametro As Variant

Public largo As Variant

Public Jp As Variant

Public tonff As Variant

Public TonFM As Variant

Public Jllenado As Variant

Public Jbolas As Variant

Public fracv As Variant

Public dbolas As Variant

Public fsd As Variant

Public Nc As Variant

Rem porcentajes passing

Public Pff(1 To 21)

Public pfm(1 To 21)

Public pd(1 To 21)

Public paf(1 To 21)

Public pu(1 To 21)

Public po(1 To 21)

Public d50 As Single

Rem hicrocilon

'''''''''''''

Public fasumido(1 To 20) As Single

Public Eic(1 To 20) As Single

Public Ei(1 To 20) As Single

'masa en cada malla

Public moi(1 To 20) As Single

Public mui(1 To 20) As Single

Public mfi(1 To 20) As Single

'%retenidos en las mallas

Public fui(1 To 20) As Single

Public foi(1 To 20) As Single

Public ffi(1 To 20) As Single

Public rfo(1 To 20) As Single

Public rfu(1 To 20) As Single

Public TonU As Variant

Public TonO As Variant

Public TonF As Variant

Public PHidrociclon As Variant

'''''''''''''''''

Public fus As Variant

Public fos As Variant

Public fof As Variant

Public lambda As Variant

Public ca1 As Variant

Public ca2 As Variant

Public ca3 As Variant

Public ca4 As Variant

Public NH As Variant

Public DCH As Variant

Public HC As Variant

Public DIH As Variant

Public DOH As Variant

Public DUH As Variant

Public cc0 As Single

Public cc As Single

Public cci As Single

Public Bpw As Single

Public Bpf As Single

Public Under As Single

Public Over As Single

Public Feed As Single

Public ppd As Variant

Public Vmolino As Variant

Public Function MULT(ByRef A() As Double, ByRef B() As Double, ByRef invA() As Double, ByRef f0() As Double, ByRef f() As Double) As Boolean

Dim i, j, k, m

' On Error GoTo Gauss_Err

n = UBound(A)

'preimera multiplicacion T*J

ReDim c(1 To n, 1 To n) As Single

ReDim U(1 To n, 1 To n) As Single

For i = 1 To n

For j = 1 To n

c(i, j) = 0

For k = 1 To n

c(i, j) = c(i, j) + A(i, k) * B(k, j)

Next k

Next j

Next i

'segunda multiplicacion (T*J)*T-1

For i = 1 To n

For j = 1 To n

U(i, j) = 0

For k = 1 To n

U(i, j) = U(i, j) + c(i, k) * invA(k, j)

Next k

Next j

Next i

'hallando el producto

For i = 1 To n

For j = 1 To 1

f(i, j) = 0

For k = 1 To n

f(i, j) = f(i, j) + U(i, k) * f0(k, j)

Next k

Next j

Next i

MULT = True

Exit Function

Gauss_Err: MULT = False

End Function

Public Function Gauss(ByRef A() As Double, ByRef inv() As Double) As Boolean

Dim Temp As Single, i, j, k, m

On Error GoTo Gauss_Err

n = UBound(inv)

For k = 1 To n

Temp = A(k, k)

For j = 1 To 2 * n

A(k, j) = A(k, j) / Temp

Next j

For i = 1 To n - 1

If i = k Then

For m = i To n - 1

For j = k + 1 To 2 * n

A(m + 1, j) = A(m + 1, j) - A(m + 1, k) * A(i, j)

Next j

Next m

End If

Next i

Next k

Rem sacando elementos de la inversa

k = 1

For j = n + 1 To 2 * n

For i = 1 To n

inv(i, k) = A(i, j)

Next i

k = k + 1

Next j

Gauss = True

Exit Function

Gauss_Err: Gauss = False

End Function

Public Function suma(i, j)

suma = 0

For k = j To i - 1

suma = suma + (ba(i, k) * SE(k) * T(k, j)) / (SE(i) - SE(j))

Next k

End Function

Public Function densidad(s)

densidad = 1 / (s / 100 * 1 / dmineral + 1 - s / 100)

End Function

II- REPORTE EN EXCEL

Simulador de Molienda de un Circuito Cerrado Convencional

Datos de la simulación

Fecha 27/03/2006

Hora 15:33:39

Autores

Verónica Charres & igor Cañapataña

Distribución de tamaños de partícula

malla

%pass

%pass

%pass

%pass

%pass

%pass

Tyler#

Al. Fresca

al. Molino

Des. Molino

Al. Hidrociclón

Underflow

Overflow

1 '

100

100

100

100

100

100

3/4 '

100

100

100

100

100

100

1/2 '

100

100

100

100

100

100

3/8 '

95

98,02

99,42

99,42

99,99

100

3

78,4

91,81

97,87

97,87

99,95

100

4

64,33

86,11

96,12

96,12

99,91

100

6

54

81,25

94,16

94,16

99,86

100

8

45,66

76,54

91,8

91,8

99,8

100

10

38,82

71,74

88,94

88,94

99,73

100

14

33,41

66,43

85,18

85,18

99,63

100

20

28,31

60,38

80,59

80,59

99,51

100

28

24,41

53,36

74,71

74,71

99,36

100

35

20,87

44,93

67,33

67,33

99,17

100

48

17,86

34,82

58,09

58,09

98,94

100

65

15,27

25,58

48,18

48,18

98,72

99,9

100

13,06

19,85

39,85

39,85

98,59

99,68

150

11,18

16,25

33,43

33,43

98,51

99,46

200

9,56

13,71

28,58

28,58

98,46

99,28

270

8,18

11,77

24,85

24,85

98,42

99,13

400

7

10,26

21,98

21,98

98,39

99,02

Desempeño del molino de bolas

Potencia Real

1031,6KWH

Potencia Especifica

2,6KWH/Ton

Velocidad del molino

15,92 rpm

Work Index

15,45 KwHr/ton

datos del Hidrociclón

Alimentación

360,66 ton/Hr

Presión

3,1 Psi

d50

206,47 micrones

By-pass Agua

0,43

By-pass Finos

0,41

Carga Circulante

2,61

 

 

 

Autor:

Verónica Charres Choque

Igor Cañapataña Larico


Comentarios


Trabajos relacionados

  • Tecnología

    Prehistoria. Edad Antigua. Edad Media. Edad Moderna. Edad Contemporánea. Arado, Escritura, Fuego, Rueda, Herramientas d...

  • El nuevo milenio

    El progreso técnico y científico. La revolución de las comunicaciones. Un Mundo Global. Los problemas del comienzo del n...

  • Recipientes de almacenamiento

    Almacenamiento de líquidos. Almacenamiento de gases. Tanques atmosféricos. Tanques elevados, abiertos. Tejados flotantes...

Ver mas trabajos de Tecnologia

 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.


Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Iniciar sesión

Ingrese el e-mail y contraseña con el que está registrado en Monografias.com

   
 

Regístrese gratis

¿Olvidó su contraseña?

Ayuda