martes, 22 de abril de 2008

SÉPTIMA SESIÓN DE PRÁCTICAS

Hoy hemos modelado sistemas que incluyen reactores continuos, correspondientes a las prácticas 9 y 10. En el caso de la batería de reactores en serie, hemos calculado de una forma un tanto "desordenada" el reparto de una corriente de alimentación que proporciona mayor selectividad y productividad. Es posible llevar a cabo este procedimiento de de manera más rigurosa empleando "Parameter plot". También se podría emplear la función "Optimize", aunque su uso no será exigido en la evaluación de la asignatura.
Se puede consultar la asistencia aquí.

7 comentarios:

  1. Hola!! aqui os dejo una variante de la práctica 9, es lo mismo pero en lugar de ser una reaccion isoterma se trata de una reacción exotérmica.

    METHOD RK4

    STOPTIME=25000
    DT = 0.01

    {ECUACIONES=9}

    CA'=F/V*(CA0-CA)+(-r1)
    CB'=F/V*(CB0-CB)+(-r1-r2-r3)
    CX'=F/V*(CX0-CX)+(r1-r2)
    CY'=F/V*(CY0-CY)+(r2-r3)
    CZ'=F/V*(CZ0-CZ)+(r3)

    T'=F/V*CP*(T0-T)+(V*(H1*r1+H2*r2+H3*r3))/RHO*CP+(U*A*(Tj-T))/RHO*CP*V

    r1=K1*CA*CB
    r2=K2*CB*CX
    r3=K3*CB*CY
    K1=Z1*EXP(-E1/R*T)
    K2=Z2*EXP(-E2/R*T)
    K3=Z3*EXP(-E3/R*T)

    {NGL=32-13=25}


    CA0=0.4
    CB0=0.6
    CX0=1E-10
    CY0=1E-10
    CZ0=1E-10
    Z1=1.15E1-4
    Z2=2.5E-12
    Z3=3.2E-12
    F=1E-4
    V=1
    CP=3.8
    T0=293
    H1=-1500
    H2=3000
    H3=-6250
    U=120
    A=15
    Tj=280
    RHO=200
    R=8.314
    E1=10000
    E2=15000
    E3=20000

    {CONDICIONES INICIALES}


    INIT CA=0
    INIT CB=0
    INIT CX=0
    INIT CY=0
    INIT CZ=0
    INIT T=440

    ResponderEliminar
  2. Cuando hemos evaluado la selectividad y productividad de P, hay algunos casos (en los que el reparto de caudal volumétrico es muy desigual) en los que deberíamos haber aumentado el stoptime para alcanzar el estado estacionario. Al no hacerlo así los valores de selectividad y productividad no son correctos.

    ResponderEliminar
  3. ¡Hola! Aquí pongo el programa que sería si se hace para un número de N tanques, el problema es que en el caso de los valores del tanque primero sí se llega a los mismos valores pero con los que ya estamos usando array no, si alguien puede ayudarme lo agradecería.

    Hay una función que no hemos visto en clase, ARRAYSUM(V[*]), esto te suma todos los elementos del array V, que en nuestro caso es el volumen del tanque.


    {Método numérico}
    METHOD RK4

    STARTTIME = 0
    STOPTIME=4000
    DT = 0.2

    {Número de ecuaciones= 9*ntanks + 3}

    F[1]=FB0[1] + F0
    F[2..Ntanks]=FB0[i]+F[i-1]

    RA[1..Ntanks]=-k1*CA[i]*CB[i]
    RB[1..Ntanks]= -k1*CA[i]*CB[i]-k2*CB[i]*CP[i]
    RP[1..Ntanks]= k1*CA[i]*CB[i]-k2*CB[i]*CP[i]
    RQ[1..Ntanks]= k2*CB[i]*CP[i]

    D/DT(CA[1])=((F0*CA0-F[1]*CA[1])/V[1])+RA[1]
    D/DT(CB[1])=((F0*CB00+FB0[1]*CB0[1]-F[1]*CB[1])/V[1])+RB[1]
    D/DT(CQ[1])=((F0*CQ0-F[1]*CQ[1])/V[1])+RQ[1]
    D/DT(CP[1])=((F0*CP0-F[1]*CP[1])/V[1])+RP[1]

    D/DT(CA[2..Ntanks])= (F[i-1]*CA[i-1]-F[i]*CA[i])/V[i] + RA[i]
    D/DT(CB[2..Ntanks])=(F[i-1]*CA[i-1]+FB0[i]*CB0[i]-F[i]*CB[i])/V[i] +RB[i]
    D/DT(CP[2..Ntanks])=(F[i-1]*CP[i-1]-F[i]*CP[i])/V[i] + RP[i]
    D/DT(CQ[2..Ntanks])=(F[i-1]*CQ[i-1]-F[i]*CQ[i])/V[i] + RQ[i]

    SELP = CP[Ntanks]/(CP[Ntanks]+CQ[Ntanks])
    SUMM= ARRAYSUM(V[*])
    PRODP= CP[Ntanks]*F[Ntanks]/SUMM

    {Número de de variables=12*Ntanks+11}

    {Número de grados de libertad= 3*Ntanks + 8}

    FB0[1..Ntanks]= 0.001
    CB0[1..Ntanks]= 1
    V[1..Ntanks]=1
    F0=0.003
    CA0=1
    CB00=0
    CP0=0
    CQ0=0
    k1=1
    k2=0.1
    Ntanks=3

    {CONDICIONES DE INICIALIZACIÓN}
    INIT CA[1..Ntanks]= 0
    INIT CB[1..Ntanks]= 0
    INIT CP[1..Ntanks]= 0
    INIT CQ[1..Ntanks-1]= 0
    INIT CQ[Ntanks]=1e-10 {de cara a la definición de selectividad}

    ¡Muchas gracias!

    ResponderEliminar
  4. ¡Encontré el fallo! Cuando se copia y pega una ecuación porque tienen la misma forma hay que tener cuidado al cambiar los componentes, donde ponía
    D/DT(CB[2..Ntanks])=(F[i-1]*CA[i-1]+FB0[i]*CB0[i]-F[i]*CB[i])/V[i] +RB[i]

    Debe poner:
    D/DT(CB[2..Ntanks])=(F[i-1]*CB[i-1]+FB0[i]*CB0[i]-F[i]*CB[i])/V[i] +RB[i]

    Olvidé cambiar CA por CB.

    ResponderEliminar
  5. Hola!Creo que los dos primeros términos del balance entálpico de la modificación de la práctica 9 no están bien despejados. Quedarían de la siguiente forma:

    T'=(F/V)*(T0-T)+(H1*r1+H2*r2+H3*r3)/(RHO*CP)+U*A*(Tj-T)/(RHO*CP*V)

    ResponderEliminar
  6. mi duda es sobre la practica 10 (bateria de reactores continuos en serie)

    hemos visto como afecta a la selectividad P el reparto de B en los tres reactores, y observamos que no se produce ninguna mejora sobre la selectividad original.

    ¿podria alguien decirme cómo producir mejoras en la selectividad utilizando la herramienta OPTIMIZE (parameters>optimize) ?

    gracias

    ResponderEliminar
  7. Anónimo1/7/08, 9:35

    Creo que he conseguido usar la función Optimize para realizar el reparto de la corriente FB óptimo, he hecho lo siguiente:

    -En el modelo he escrito una nueva ecuación: FB1=SUMA-FB2-FB3. FB1 deja de ser un grado de libertad y pasa a serlo SUMA con un valor de 0.003.Con esta ecuación se consigue que la suma de las tres corrientes sea 0.003.

    -Lo siguiente es abrir la ventana de Optimize. Seleccionamos los parámetros FB2 y FB3. En las casillas de la derecha he puesto como valor mínimo 0 y máximo 0.003.
    A guess1 le di como valor 0.0001 y a guess2 0.0002, estas opciones creo que sirven para seleccionar el tamaño de los intervalos en los que le da valores a la función.
    Por último, como se ve abajo hay una casilla que pone Minimize Expresion y dentro he puesto 1-SelP, ya que queremos maximizar SelP.
    Al darle a OK varía los valores de FB2 y FB3 hasta obtener el mínimo de la función. Luego miramos el valor de FB1.

    -Haciendo esto he obtenido los siguientes resultados:
    FB1=0.00143105
    FB2=0.00088888
    FB3=0.00068011
    SelP=0.82493

    ResponderEliminar