Download - Visu

Transcript

PROBLEMA 1 Desarrolle un Programa en Visual Basic para determinar los clculos de vaporizacin instantnea (Flash) isotrmico, empleando para la iteracin el mtodo de Newton Raphson, es decir, el programa desarrollado en el Problema 1. Este programa deber ingresar los siguientes valores: nmero de componentes de la mezcla, conjunto de fracciones molares en la alimentacin, conjunto de valores de las constantes de equilibrio. El programa calcular: flujo molar del vapor as como el conjunto de fracciones molares del lquido y del vapor.

Evale su programa con el siguiente grupo de valores correspondiente a una corriente de gas natural que se encuentra a 1600 psia y 120 F: Nmero 1 2 3 4 5 6 7 8 9 Componente Dixido de carbono Metano Etano Propano Isobutano n-Butano Pentanos Hexanos Heptanos Fraccin molar

Problema 4

Const zero = 0.0000000000001

Const tol = 0.0000001

Const maxit = 100

Dim n As Integer

Private Sub Calcular_Click()

Dim x0 As Double

Dim X1 As Double

Dim Q As Double

n = Val(TextN.Text)

Q = Val(TextQ.Text)

ReDim A(1 To n, 1 To 2) As Double

For i = 1 To n

A(i, 1) = matriz.TextMatrix(i, 1)

A(i, 2) = matriz.TextMatrix(i, 2)

Next i

x0 = 0.5 'punto inicial para la iteracin

'-------------------------------Rutina Principal------------------------------

For i = 1 To maxit 'Inicia e incrementa el contador

X1 = x0 - f(x0, A()) / dF(x0, A()) 'Frmula iterativa

'----------------------Evaluacin de tolerancia----------------------

If Abs(f(X1, A())) >= tol Then

x0 = X1

Else

Exit For

End If

Next

'-------------------------Mensaje de no convergencia-----------------------

If Abs(f(X1, A())) > tol Then

R = MsgBox("Mtodo no converge para nmero de interaciones especificadas", 16)

End If

For i = 1 To n

z = A(i, 1)

k = A(i, 2)

fracciones.TextMatrix(i, 1) = Round((z / (x0 * (k - 1) + 1)), 4)

fracciones.TextMatrix(i, 2) = Round((z * k / (x0 * (k - 1) + 1)), 4)

Next

Text1.Text = Q * x0

Text2.Text = Q - Val(Text1.Text)

End Sub

Private Sub Form_Load()

matriz.ColWidth(0) = 900

matriz.ColWidth(1) = 1520

matriz.ColWidth(2) = 1520

fracciones.ColWidth(0) = 900

fracciones.ColWidth(1) = 1680

fracciones.ColWidth(2) = 1680

TextN.Text = 1

matriz.TextMatrix(0, 0) = " N Comp."

matriz.TextMatrix(0, 1) = " Fraccin Molar"

matriz.TextMatrix(0, 2) = " Const. Equilibrio"

matriz.TextMatrix(1, 0) = " C1"

fracciones.TextMatrix(0, 0) = " N Comp."

fracciones.TextMatrix(0, 1) = "Fracc. Molar Lquido"

fracciones.TextMatrix(0, 2) = " Fracc. Molar vapor"

fracciones.TextMatrix(1, 0) = " C1"

End Sub

Private Sub matriz_KeyPress(KeyAscii As Integer)

If KeyAscii >= 46 And KeyAscii 0 Then

matriz.Text = Left(matriz.Text, Len(matriz.Text) - 1)

End If

End Select

End Sub

Private Sub TextN_KeyPress(KeyAscii As Integer)

n = Val(TextN.Text)

If KeyAscii = 13 Then

matriz.Rows = n + 1

fracciones.Rows = n + 1

For i = 1 To n

matriz.TextMatrix(i, 0) = " C" & (i)

fracciones.TextMatrix(i, 0) = " C" & (i)

Next i

End If

End Sub

Private Sub TextN_LostFocus()

If TextN.Text = Empty Or Val(TextN.Text)


Top Related