Professional Documents
Culture Documents
1.1-Contexto:
Tendencias vigentes de la tecnologa
Proyecto de investigacin
Los clculos dependen del tonelaje de alimentacin fresca y de las dimensiones y parmetros de
operacin del molino as como de las propiedades del mineral.
1.2-Justificacin:
Todos los procesos necesarios en la industria de procesamiento de minerales son importantes debido a
que cada uno contribuye para la obtencin del producto deseado.
Sin embargo los procesos de conminucin de mineral juegan un rol trascendental en la recuperacin de
elementos valiosos desde sus menas. Dentro de ellos la molienda tiene importancia especial, no
solamente por sus altos costos operativos, sino tambin al hecho de que las propiedades fsicas y
mineralgicas del producto molido resultante es determinante en gran medida de la efectividad de las
siguientes etapas. Es por eso que la optimizacin de esta operacin unitaria disminuira
considerablemente los costos de operacin.
1.3-Objetivos:
Desarrollar un simulador de un circuito de molienda-clasificacin directa en Visual Basic.
Se aplicara el mtodo del Punto Fijo para la simulacin.
Obtener los Balance de materia del circuito, carga circulante, potencia del molino, eficiencia del
Hidrocicln.
1.4-Elementos Conceptuales:
El circuito de molienda-clasificacin que se permite simular es el siguiente:
Figura 1
Este sistema tiene tres subsistemas (S1, S2, S3), los cuales nos permitirn realizar los clculos para la
simulacin.
1.4.1-El subsistema (S1) esta conformado por el Hidrocicln, este subsistema nos permitir calcular: El
porcentaje acumulado retenido del Underflow; tonelaje de salida del Underflow,
cuyos modelos matemticos son:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Donde,
a1, a2, a3, a4, son constantes del Hidrocicln.
Qf, Flujo volumtrico de pulpa en la alimentacin del Hidrocicln, m3/hr.
H, presin en la alimentacin del Hidrocicln, expresada en pies equivalentes en la pulpa de alimentacin,
ft.
, Fraccin slidos por volumen alimentacin del Hidrocicln, %.
DC, dimetro del Hidrocicln, in.
h, altura del Hidrocicln, definida como la distancia del fondo (Vortex) a la parte superior (apex), in.
DI, Dimetro de la entrada de la alimentacin del Hidrocicln (rea equivalente si la entrada es
rectangular), in.
DO, Dimetro del vortex Hidrocicln (Overflow), in.
DU, Dimetro apex Cicln (Underflow), in.
, Tamao Corre del corte de la partcula que permite un cociente de peso 50:50 entre el Overflow y
Underflow.
S, distribucin de los caudales volumtricos (flor split) de rebalse y descarga del Hidrocicln.
m, parmetro de plits nunca es mayor que 4.
, Eficacia Corregida de Clasificacin.
, By_pass finos.
, By_pass del agua.
1.4.2-El subsistema (S2) esta conformado por la unin de flujos del Underflow; del Hidrocicln y la
alimentacin fresca, este subsistema permite realizar el calculo de: El porcentaje acumulado retenido de
la alimentacin al molino, alimentacin total al molino; los modelos matemticos son:
(8 y 9)
Donde
Fj, Flujo seco total de alimentacin fresca al sistema tons/hr.
U, toneladas del Underflow del Hidrocicln, tons/hr.
Fm, flujo total de alimentacin al molino (incluye carga circulante), tons/h.
fm, porcentaje acumulada retenida de slidos en la alimentacin compuesta al molino, %.
fu, porcentaje acumulada retenida de slidos en el Underflow del Hidrocicln,%.
fsf, porcentaje acumulada retenida de slidos en la alimentacin 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 matemticos son:
(10)
Donde:
fm:= {fi |i=1,2,n} vector producto (descarga) del molino, cuyos elementos representan la distribucin
granulomtrica parcial del producto
fd= { fd |i=1,2,n} vector de alimentacin al molino, cuyos elementos representan la distribucin
granulomtrica parcial de la alimentacin al equipo
T es la matriz triangular inferior (nxn), cuyos elementos Tij estn dados:
Tij =
e
(11)
Donde:
Es la funcin de fractura en su forma acumulada retenida.
Es la funcin de seleccin especfica.
J es la matriz diagonal (nxn), cuyos elementos Jij estn dados por:
Jij =
(12)
(13)
(14)
(15)
(16)
(17)
Donde:
D, Dimetro interior molino,ft.
L, Largo interior molino, ft.
J, Nivel llenado aparente. Carga volumtrica aparente llenado (incluyendo bolas y exceso pulpa sobre
bolas cargadas, mas pulpa en espacios intersticiales entre bolas), porcentaje ocupa carga relacin
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 inclinacin superficie carga durante operacin, .
P, Potencia real o total, kW.
Lw, Prdidas potencia, %.
E, Energa por tonelada carga, kWh/ton.
Fm, Flujo seco total alimentacin molino (incluye carga recirculada), tph.
La relacin de las variables entre estos tres subsistemas es el siguiente:
Figura 2
4-DISEO DEL PROGRAMA:
4.1-Algoritmo de la simulacin del circuito molienda-clasificacin.
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-Parmetros del Molino
La figura 4 se representan las constante del molino, estas dependen solo del tipo de mineral que se va a
reducir de tamao
, constantes para hallar la funcin de seleccin especifica "SE"
constantes para hallar la funcin de fractura "B(i,j)"
dcrit, dimetro crtico al que se quiere llegar, micrones
Figura 4
La figura 5 se representa datos de operacin del molino
Lw, Prdidas potencia, %, (0100)
, Angulo inclinacin superficie carga durante operacin, , (0180)
, porcentaje velocidad crtica utilizada, %
D, Dimetro interior molino ,ft
L, Largo interior molino, ft
Jp, Nivel llenado pulpa espacios intersticiales %
J, Nivel llenado aparente. Carga volumtrica aparente llenado (incluyendo bolas y exceso pulpa sobre
bolas cargadas, mas pulpa en espacios intersticiales entre bolas), porcentaje ocupa carga relacin
volumen interno total molino, %
fsd, Fraccin peso de los slidos a la descarga del molino, %
JB, Nivel llenado bolas
fv, Fraccin volumtrica 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- Parmetros del Hidrocicln
La figura 6 se representa datos de operacin del Hidrocicln
fus, Fraccin Slidos Underflow Cicln, %.
Figura 6
4.2.1.3-Alimentacin Fresca
Esta parte de la ventana representa el anlisis granulomtrico % acumulado retenido de la alimentacin
fresca al circuito de molienda clasificacin y el tonelaje seco de alimentacin fresca.
Malla, representa el tipo de malla usada en el anlisis granulomtrico
Abertura, es el dimetro correspondiente al numero de malla en micrones
Figura 7
4.2.2- Proceso de Iteracin.
El Mtodo Numrico que se a empleado en el Programa en Mtodo 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 alimentacin al Hidrocicln(c/U)
5- CONCLUSIONES
Se trabajo con el mtodo numrico de punto fijo el cual da una buena convergencia
Se construyo el programa en Visual Basic 6.0, el cual permite predecir el porcentaje acumulado
passing del molino as como tambin el balance de materia del circuito
6- RECOMENDACIONES
Este simulador no es dinmico, se aplica al estado estacionario.
Los clculos dependen del tonelaje de alimentacin fresca y de las dimensiones y parmetros de
operacin 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
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 Hidrocicln
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
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 direccin igorclm[arroba]hotmail.com " _
& "y le indicaran la solucin 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
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 simulacin"
Print #1, "Fecha" & " " & Date
Print #1, "Hora" & " " & Time
Print #1, " Autores" & ";" & "Veronica Charres & igor Caapataa"
Print #1, " " & ";" & "Distribucin de tamaos 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, "Desempeo 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, "Alimentacin" & ";" & Round(Feed * NH, 2) & " " & "ton/Hr"
Print #1, "Presin" & ";" & 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- Mdulo 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
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
Fecha 27/03/2006
Hora 15:33:39
Autores
malla
Tyler#
1'
3/4 '
1/2 '
3/8 '
3
4
6
8
10
14
20
28
35
48
65
100
150
200
270
400