Está en la página 1de 42

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.

 Se aplicara el método del Punto Fijo para la simulación.


 Obtener los Balance de materia del circuito, carga circulante, potencia del
molino, eficiencia del Hidrociclón.

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.
El Centro de Tesis, Documentos, Publicaciones y Recursos Educativos más amplio de la Red.
Términos y Condiciones | Haga publicidad en Monografías.com | Contáctenos | Blog Institucional
© Monografias.com S.A.

También podría gustarte