Circuito-molienda.doc

  • Uploaded by: Daniel Vargas Celi
  • 0
  • 0
  • March 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Circuito-molienda.doc as PDF for free.

More details

  • Words: 5,943
  • Pages: 25
Loading documents preview...
www.monografias.com

Simulación de un circuito de molienda clasificación directa 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Introducción Justificación Objetivos Elementos Conceptuales Diseño del programa Procedimiento Conclusiones Recomendaciones Bibliografía 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:

1

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:

H  a1

Q f 1.46  exp(7.63  10.79 2 ) ( DC )0.20  h0.15  ( DI )0.51  ( DO)1.65  ( DU )0.53

d50C  a2

(1)

( DC )0.44  ( DI )0.58  ( DO)1.91  exp(11.12 ) (2) ( DU )0.80  h0.37  Q f 0.44  ( m  1) 0.50

h0.19  ( DU / DO) 2.54  exp(4.33  8.77 2 ) S  a3 (3) ( DC )0.38  H 0.38 S  h  2 m  exp a4  1.58    DC  S  1  Qf  Ei  1  exp[0.693(d i / d50C ) m ] B pf    B pw

(6)

P p

(7)

H  2.31

  

0.15

(4)

(5)

Donde, a1, a2, a3, a4, son constantes del Hidrociclón. Qf, Flujo volumétrico de pulpa en la alimentación del Hidrociclón, m 3/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. C d 50 , 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.

Ei , Eficacia Corregida de Clasificación. B pf , By_pass finos. B pw , By_pass del agua.

2

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:

F f  U  Fm fm 

U  f m  F f  f af

(8 y 9)

Ff  U

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:

[ f m ]  [T  J  T 1 ][ f d ] (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:

; si i  j ; si i  j

0 1

Tij = e

i 1

bij  SkE  Tij

k j

SiE  S Ej



; si i  j (11)

Donde:

bij Es la función de fractura en su forma acumulada retenida. SiE Es la función de selección específica. J es la matriz diagonal (nxn), cuyos elementos Jij están dados por:

; si i  j

0

Jij =

 SiE   1   N  

-N

; si i  j (12)

N

L D

(13)

Pneta

L  0.238  D 3.5    N C   ap  ( J  1.065 J )  sen D

(14)

3

P

Pneta Lw (15) 1 100

Fm  Ff (1  CC ) (16) E

Pneta Fm

(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/m 3. 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

INICIO

Parámetros del molino Parámetros del hidrociclon Alimentación fresca %Acumulado retenido Underflow CC1, CC0

Cálculo de la eficiencia del hidrocilon Calculo del % acumulado retenido del Overflow

Calculo del % acumulado retenido del Underflow Actualizar Carga circulante

Calculo del % acumulado retenido a la alimentación del molino Calculo del % acumulado retenido a la descarga del molino

Calculo de carga nueva circulante

convergencia

CC; Pneta; fd; fu; fo; ff; fm; O,U,F Carga circulante; Potencia neta; balance de materia del circuito; análisis granulométrico de las salidas y entradas a los subsistemas

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

5

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

6

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

7

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.

8



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

9

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.1Datos de Ingreso

10

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

11

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

12

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

13

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

14

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." _

15

& 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 [email protected] " _ & "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

16

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

17

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

18

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

19

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

20

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

21

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

22

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

23

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 al. Tyler# Al. Fresca Molino Des. Molino Al. Hidrociclón Underflow 1' 100 100 100 100 100 3/4 ' 100 100 100 100 100 1/2 ' 100 100 100 100 100 3/8 ' 95 98,02 99,42 99,42 99,99 3 78,4 91,81 97,87 97,87 99,95 4 64,33 86,11 96,12 96,12 99,91 6 54 81,25 94,16 94,16 99,86 8 45,66 76,54 91,8 91,8 99,8 10 38,82 71,74 88,94 88,94 99,73 14 33,41 66,43 85,18 85,18 99,63

%pass Overflow 100 100 100 100 100 100 100 100 100 100

24

20 28 35 48 65 100 150 200 270 400

28,31 24,41 20,87 17,86 15,27 13,06 11,18 9,56 8,18 7

60,38 53,36 44,93 34,82 25,58 19,85 16,25 13,71 11,77 10,26

80,59 74,71 67,33 58,09 48,18 39,85 33,43 28,58 24,85 21,98

80,59 74,71 67,33 58,09 48,18 39,85 33,43 28,58 24,85 21,98

99,51 99,36 99,17 98,94 98,72 98,59 98,51 98,46 98,42 98,39

100 100 100 100 99,9 99,68 99,46 99,28 99,13 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 Autores: Verónica Charres Choque [email protected] Igor Cañapataña Larico [email protected]

25

More Documents from "Daniel Vargas Celi"

Circuito-molienda.doc
March 2021 0
January 2021 0
January 2021 0
Ejercicios_modulo_2
February 2021 0