diagrama de flujo características principales del motor

Anuncio
DIAGRAMA DE FLUJO CARACTERÍSTICAS
PRINCIPALES DEL MOTOR
Figura 1. Diagrama de flujo características principales del motor.
START
1
Figura 1. (Continuación)
1
STOP
ALGORITMO DE CÁLCULO PARA DETERMINAR LAS
CARACTERÍSTICAS PRINCIPALES DEL MOTOR
Tabla 1. Módulo base para determinar las características principales del motor a turboalimentar.
Pseudocódigo
Lenguaje Visual Basic Application
Programa: para determinar las características
principales del motor.
Entorno: Ma, Mcomb, Act, AC, Tesc, CE son
números corrientes
Inicio
Leer Combustible, Wmotor, EA, Cilindrada, Emotor,
nmotor
Si Combustible ← "" Entonces
Escribir ("Debe seleccionar un combustible")
Escribir ("Por defecto se ha trabajado con Octano
[C8H18], cambie el combustible si lo desea")
Combustible ← "Octano(L) (Gasolina) (C8H18)"
X=8
Y = 18
PCIcomb = 44430
cp1prom = 1.2023
Sino_Si Combustible ← "Acetileno(G) (C2H2)"
Entonces
X←2
Y←2
PCIcomb ← 48280
cp1prom ← 1.1662
Sino_Si Combustible ← "Benceno(L) (C6H6)"
Entonces
X←6
Y←6
Dim Ma As Currency, Mcomb As Currency, Act As Currency, AC As
Currency, Tesc As Currency, CE As Currency
Private Sub CALCULAR_Click()
If Combustible.Text = "" Then
MsgBox ("Debe seleccionar un combustible")
MsgBox ("Por defecto se ha trabajado con Octano [C8H18], cambie el
combustible si lo desea")
Combustible = "Octano(L) (Gasolina) (C8H18)"
Sheets("Mezcla").Activate
X=8
Y = 18
PCIcomb = 44430
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.2023
'1. Si se elige Acetileno
ElseIf Combustible.Text = "Acetileno(G) (C2H2)" Then
Sheets("Mezcla").Activate
X=2
Y=2
PCIcomb = 48280
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1662
'2. Si se elige Benceno
ElseIf Combustible.Text = "Benceno(L) (C6H6)" Then
Sheets("Mezcla").Activate
X=6
Y=6
Tabla 1. (Continuación)
Pseudocódigo
PCIcomb ← 40100
cp1prom ← 1.1662
Sino_Si Combustible ← "Butano(L) (C4H10)"
Entonces
X=4
Y ← 10
PCIcomb ← 45370
cp1prom ← 1.1834
Sino_Si Combustible ← "Decano(L) (C10H22)"
Entonces
X ← 10
Y ← 22
PCIcomb ← 44240
cp1prom ← 1.1806
Sino_Si Combustible ← "Dodecano(L) (Diesel)
(C12H26)" Entonces
X ← 12
Y ← 26
PCIcomb = 43200
Lenguaje Visual Basic Application
PCIcomb = 40100
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1662
'3. Si se elige Butano
ElseIf Combustible.Text = "Butano(L) (C4H10)" Then
Sheets("Mezcla").Activate
X=4
Y = 10
PCIcomb = 45370
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1834
'4. Si se elige Decano
ElseIf Combustible.Text = "Decano(L) (C10H22)" Then
Sheets("Mezcla").Activate
X = 10
Y = 22
PCIcomb = 44240
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1806
'5. Si se elige Diesel, el cual es tratado usualmente como Dodecano
ElseIf Combustible.Text = "Dodecano(L) (Diesel) (C12H26)" Then
Sheets("Mezcla").Activate
X = 12
Y = 26
PCIcomb = 43200
Range("B2") = X
Tabla 1. (Continuación)
Pseudocódigo
cp1prom = 1.1571
Sino_Si Combustible ← "Etano(G) (C2H6)" Entonces
X←2
Y←6
PCIcomb ← 47520
cp1prom ← 1.1875
Sino_Si Combustible ← "Heptano(L) (C7H16)"
Entonces
X←7
Y ← 16
PCIcomb = 44600
cp1prom = 1.1814
Sino_Si Combustible ← "Hexano(L) (C6H12)"
Entonces
X←6
Y ← 12
PCIcomb ← 44400
Lenguaje Visual Basic Application
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1571
'6. Si se elige Etano
ElseIf Combustible.Text = "Etano(G) (C2H6)" Then
Sheets("Mezcla").Activate
X=2
Y=6
PCIcomb = 47520
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1875
'7. Si se elige Heptano
ElseIf Combustible.Text = "Heptano(L) (C7H16)" Then
Sheets("Mezcla").Activate
X=7
Y = 16
PCIcomb = 44600
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1814
'8. Si se elige Hexano
ElseIf Combustible.Text = "Hexano(L) (C6H12)" Then
Sheets("Mezcla").Activate
X=6
Y = 12
PCIcomb = 44400
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
Tabla 1. (Continuación)
Pseudocódigo
cp1prom ← 1.1786
Sino_Si Combustible ← "Hexeno(L) (C6H14)"
Entonces
X←6
Y ← 14
PCIcomb ← 44740
cp1prom ← 1.1819
Sino_Si Combustible ← "Isopentano(L) (C5H12)"
Then
X←5
Y ← 12
PCIcomb ← 44910
cp1prom ← 1.1825
Sino_Si Combustible ← "Metano(G) (Gas Natural)
(CH4)" Entonces
X←1
Y←4
PCIcomb ←50050
cp1prom ← 1.1942
Lenguaje Visual Basic Application
cp1prom = 1.1786
'9. Si se elige Hexeno
ElseIf Combustible.Text = "Hexeno(L) (C6H14)" Then
Sheets("Mezcla").Activate
X=6
Y = 14
PCIcomb = 44740
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1819
'10. Si se elige Isopropano
ElseIf Combustible.Text = "Isopentano(L) (C5H12)" Then
Sheets("Mezcla").Activate
X=5
Y = 12
PCIcomb = 44910
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1825
'11. Si se elige Gas Natural, el cual es tratado usualmente como
Metano
ElseIf Combustible.Text = "Metano(G) (Gas Natural) (CH4)" Then
Sheets("Mezcla").Activate
X=1
Y=4
PCIcomb = 50050
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1942
Tabla 1. (Continuación)
Pseudocódigo
Sino_Si Combustible ←"Octano(L) (Gasolina)
(C8H18)" Entonces
X←8
Y ← 18
PCIcomb ← 44430
cp1prom ← 1.2023
Sino_Si Combustible ← "Penteno(L) (C5H10)"
Entonces
X←5
Y ← 10
PCIcomb ← 44630
cp1prom ← 1.1786
Sino_Si Combustible ← "Propano(L) (C3H8)"
Entonces
X←3
Y←8
PCIcomb ← 46340
cp1prom ← 1.1848
Sino_Si Combustible ← "Tolueno(L) (C7H8)"
Entonces
Lenguaje Visual Basic Application
'12. Si se elige Gasolina, el cual es tratado usualmente como Octano
ElseIf Combustible.Text = "Octano(L) (Gasolina) (C8H18)" Then
Sheets("Mezcla").Activate
X=8
Y = 18
PCIcomb = 44430
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.2023
'13. Si se elige Penteno
ElseIf Combustible.Text = "Penteno(L) (C5H10)" Then
Sheets("Mezcla").Activate
X=5
Y = 10
PCIcomb = 44630
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1786
'14. Si se elige Propano
ElseIf Combustible.Text = "Propano(L) (C3H8)" Then
Sheets("Mezcla").Activate
X=3
Y=8
PCIcomb = 46340
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1848
'15. Si se elige Tolueno
ElseIf Combustible.Text = "Tolueno(L) (C7H8)" Then
Tabla 1. (Continuación)
Pseudocódigo
X←7
Y←8
PCIcomb ← 40500
cp1prom ← 1.1683
Sino
Escribir ("Error en el combustible seleccionado")
Escribir ("Por defecto se ha trabajado con Octano
[C8H18], cambie el combustible si lo desea")
Combustible ← "Octano(L) (Gasolina) (C8H18)"
Sheets("Mezcla").Activate
X←8
Y ← 18
PCIcomb ← 44430
cp1prom ← 1.2023
Fin_Si
Si Wmotor ← "" o EA ← "" o Cilindrada ← "" o Emotor
← "" o nmotor ← "" Entonces
**Las comillas ("") representan un espacio vacío
Escribir "Falta por lo menos un parámetro de entrada
en el motor"
Sino_Si Wmotor ← No es un número o EA ← No es
un número o Cilindrada ← No es un número o
Emotor ← No es un número o nmotor ← No es un
número Entonces
Escribir " Son valores numéricos los que debe
introducir "
Lenguaje Visual Basic Application
Sheets("Mezcla").Activate
X=7
Y=8
PCIcomb = 40500
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.1683
Else
MsgBox ("Error en el combustible seleccionado")
MsgBox ("Por defecto se ha trabajado con Octano [C8H18], cambie el
combustible si lo desea")
Combustible = "Octano(L) (Gasolina) (C8H18)"
Sheets("Mezcla").Activate
X=8
Y = 18
PCIcomb = 44430
Range("B2") = X
Range("B3") = Y
Range("D2") = PCIcomb
cp1prom = 1.2023
End If
If Wmotor.Text = " " Or EA.Text = "" Or Cilindrada.Text = "" Or
Emotor.Text = "" Or nmotor.Text = "" Then
MsgBox ("Falta por lo menos un parámetro de entrada en el Motor")
ElseIf IsNumeric(Wmotor.Text) = False Or IsNumeric(EA.Text) =
False Or IsNumeric(Cilindrada.Text) = False Or
IsNumeric(Emotor.Text) = False Or IsNumeric(nmotor.Text) = False
Then
MsgBox ("Son valores numericos los que debe introducir")
'Para la potencia del motor
Tabla 1. (Continuación)
Pseudocódigo
Sino_Si Wmotor < 0 Entonces
Escribir "La potencia del motor debe ser mayor que
cero"
Sino_Si EA < 0 o EA > 2 Entonces
Escribir "El exceso de aire debe estar comprendido
entre [0 - 2]"
Sino_Si Cilindrada < 0 Entonces
Escribir "La cilindrada del motor debe ser mayor que
cero"
Sino_Si Emotor < 0.25 o Emotor > 0.4 Entonces
Escribir "La eficiencia térmica de la máquina de
combustión debe estar comprendida entre [0.25 0.4]"
Sino_Si nmotor < 0 Entonces
Escribir "La velocidad de rotación del motor debe ser
mayor que cero"
Sino
PCI ← Range("D2")
CE ← 1 / (EficienciaMotor * PCI)
ConsumoEspecifico ← CE * 3600000
Lenguaje Visual Basic Application
ElseIf (Wmotor.Text) < 0 Then
MsgBox ("La potencia del motor debe ser mayor que cero")
'Para el exceso de aire
ElseIf ((Val(EA.Text)) < 0) Or ((Val(EA.Text)) > 2) Then
MsgBox ("El exceso de aire debe estar comprendido entre [0 - 2]")
'Para la cilindrada
ElseIf ((Cilindrada.Text)) < 0 Then
MsgBox ("La cilindrada del motor debe ser mayor que cero")
'Para la eficiencia térmica de la máquina de combustión
ElseIf (((Emotor.Text)) < 0.25) Or (((Emotor.Text)) > 0.4) Then
MsgBox ("La eficiencia térmica de la máquina de combustión debe
estar comprendida entre [0.25 - 0.4]")
'Para las revoluciones del motor
ElseIf ((nmotor.Text)) < 0 Then
MsgBox ("La velocidad de rotación del motor debe ser mayor que
cero")
Else
'Potencia del motor
Range("F11") = Val(Wmotor.Text)
'Exceso de Aire
Range("F12") = Val(EA.Text)
'Cilindrada del Motor
Range("F13") = Val(Cilindrada.Text)
'Eficiencia del Motor
Range("F14") = Val(Emotor.Text)
'Revoluciones del Motor
Range("F16") = Val(nmotor.Text)
'Poder calorifico inferior del combustible
PCI = Range("D2")
'Consumo específico de combustible
CE = 1 / (EficienciaMotor * PCI)
ConsumoEspecifico = CE * 3600000
Tabla 1. (Continuación)
Pseudocódigo
Act ← ((X + (Y / 4)) * (4.762 * 28.97)) / ((12.012 * X)
+ (1.008 * Y))
AC ← ((1 + e) * (X + (Y / 4)) * (4.762 * 28.97)) /
((12.012 * X) + (1.008 * Y))
Ma ← Wmotor * CE * AC
Mcomb ← Ma / AC
MGases ← Ma + Mcomb
QH ← Wmotor / Emotor
Tesc ← ((0.4 * QH) / (MGases * cp1prom)) - 273.15
MCO2 ← 44.01
MH2O ← 18.015
MN2 ← 28.013
MO2 ← 31.999
NCO2 ← X
NH2O ← (Y / 2)
NN2 ← 3.762 * (X + (Y / 4)) * (1 + e)
NO2 ← (X + (Y / 4)) * (e)
NProductos ← NCO2 + NH2O + NN2 + NO2
MasaCO2 ← NCO2 * MCO2
Lenguaje Visual Basic Application
'Relación aire combustible teórica
Act = ((X + (Y / 4)) * (4.762 * 28.97)) / ((12.012 * X) + (1.008 * Y))
'Relación aire combustible con exceso
AC = ((1 + e) * (X + (Y / 4)) * (4.762 * 28.97)) / ((12.012 * X) + (1.008 *
Y))
Range("E2") = AC
'Masa de Aire
Ma = Wmotor * CE * AC
Range("F17") = Ma
'Masa de Combustible
Mcomb = Ma / AC
Range("F18") = Mcomb
'Masa de gases
MGases = Ma + Mcomb
'Temperatura promedio de los gases a la salida de la cámara de
combustión [K]
QH = Val(Wmotor.Text) / Val(Emotor.Text)
Tesc = ((0.4 * QH) / (MGases * cp1prom)) - 273.15
Range("F15") = Tesc
'Pesos moleculares [kJ/kg.mol]
MCO2 = 44.01
MH2O = 18.015
MN2 = 28.013
MO2 = 31.999
'Número de moles
NCO2 = X
NH2O = (Y / 2)
NN2 = 3.762 * (X + (Y / 4)) * (1 + e)
NO2 = (X + (Y / 4)) * (e)
NProductos = NCO2 + NH2O + NN2 + NO2
'Masa
MasaCO2 = NCO2 * MCO2
Tabla 1. (Continuación)
Pseudocódigo
MasaH2O ← NH2O * MH2O
MasaN2 ← NN2 * MN2
MasaO2 ← NO2 * MO2
MasaProductos ← MasaCO2 + MasaH2O + MasaN2
+ MasaO2
YCO2 ← NCO2 / NProductos
YH2O ← NH2O / NProductos
YN2 ← NN2 / NProductos
YO2 ← NO2 / NProductos
SumaYi ← YCO2 + YH2O + YN2 + YO2
mfCO2 ← MasaCO2 / MasaProductos
mfH2O ← MasaH2O / MasaProductos
mfN2 ← MasaN2 / MasaProductos
mfO2 ← MasaO2 / MasaProductos
Sumamfi ← mfCO2 + mfH2O + mfN2 + mfO2
MProductos ← MasaProductos / NProductos
Ru ← 8.31447
RMezcla ← Ru / MProductos
Rgasest1 ← RMezcla
Lenguaje Visual Basic Application
MasaH2O = NH2O * MH2O
MasaN2 = NN2 * MN2
MasaO2 = NO2 * MO2
MasaProductos = MasaCO2 + MasaH2O + MasaN2 + MasaO2
'Fracciones molares
YCO2 = NCO2 / NProductos
Range("H10") = YCO2
YH2O = NH2O / NProductos
Range("H11") = YH2O
YN2 = NN2 / NProductos
Range("H12") = YN2
YO2 = NO2 / NProductos
Range("H13") = YO2
SumaYi = YCO2 + YH2O + YN2 + YO2
'Fraciones de masa
mfCO2 = MasaCO2 / MasaProductos
Range("I10") = mfCO2
mfH2O = MasaH2O / MasaProductos
Range("I11") = mfH2O
mfN2 = MasaN2 / MasaProductos
Range("I12") = mfN2
mfO2 = MasaO2 / MasaProductos
Range("I13") = mfO2
Sumamfi = mfCO2 + mfH2O + mfN2 + mfO2
'Peso molecular de la mezcla
MProductos = MasaProductos / NProductos
Range("C2") = MProductos
'Constante de la Mezcla
Ru = 8.31447
RMezcla = Ru / MProductos
Range("F2") = RMezcla
Rgasest1 = RMezcla
Tabla 1. (Continuación)
Pseudocódigo
Fin_Si
Fin
Inicializar UserForm
Combustible.AddItem ("Acetileno(G) (C2H2)")
Combustible.AddItem ("Benceno(L) (C6H6)")
Combustible.AddItem ("Butano(L) (C4H10)")
Combustible.AddItem ("Decano(L) (C10H22)")
Combustible.AddItem ("Dodecano(L) (Diesel)
(C12H26)")
Combustible.AddItem ("Etano(G) (C2H6)")
Combustible.AddItem ("Heptano(L) (C7H16)")
Combustible.AddItem ("Hexano(L) (C6H12)")
Combustible.AddItem ("Hexeno(L) (C6H14)")
Combustible.AddItem ("Isopentano(L) (C5H12)")
Combustible.AddItem ("Metano(G) (Gas Natural)
(CH4)")
Combustible.AddItem ("Octano(L) (Gasolina)
(C8H18)")
Combustible.AddItem ("Penteno(L) (C5H10)")
Combustible.AddItem ("Propano(L) (C3H8)")
Combustible.AddItem ("Tolueno(L) (C7H8)")
Fin
Lenguaje Visual Basic Application
End If
End Sub
Private Sub UserForm_Initialize()
Combustible.AddItem ("Acetileno(G) (C2H2)")
Combustible.AddItem ("Benceno(L) (C6H6)")
Combustible.AddItem ("Butano(L) (C4H10)")
Combustible.AddItem ("Decano(L) (C10H22)")
Combustible.AddItem ("Dodecano(L) (Diesel) (C12H26)")
Combustible.AddItem ("Etano(G) (C2H6)")
Combustible.AddItem ("Heptano(L) (C7H16)")
Combustible.AddItem ("Hexano(L) (C6H12)")
Combustible.AddItem ("Hexeno(L) (C6H14)")
Combustible.AddItem ("Isopentano(L) (C5H12)")
Combustible.AddItem ("Metano(G) (Gas Natural) (CH4)")
Combustible.AddItem ("Octano(L) (Gasolina) (C8H18)")
Combustible.AddItem ("Penteno(L) (C5H10)")
Combustible.AddItem ("Propano(L) (C3H8)")
Combustible.AddItem ("Tolueno(L) (C7H8)")
End Sub
Private Sub CommandButton2_Click()
Sheets("Turbo").Activate
Unload Me
End Sub
DIAGRAMA DE FLUJO PARA LA ETAPA DE
COMPRESIÓN
En la figura 1 se muestran numeradas las estaciones de la etapa de compresión
del turbocompresor, la cual consta de un rodete, un difusor con álabes y una
carcasa, numeración empleada para la generación del diagrama de flujo.
Figura 1. Numeración de las estaciones de la etapa de compresión, con base al
cual se define el diagrama de flujo.
La secuencia establecida en el siguiente diagrama de flujo (ver figura 2) sintetiza
en gran parte la metodología y las consideraciones expuestas en el capítulo 3
sobre el diseño de compresores centrífugos, su ejecución permite el cálculo de los
parámetros
geométricos
turbocompresor.
y
térmicos
de
la
etapa
de
compresión
del
Figura 2. Diagrama de flujo para la etapa de compresión.
START
2
1
Figura 2. (Continuación)
2
1
3
Figura 2. (Continuación)
3
4
Figura 2. (Continuación)
4
5
Figura 2. (Continuación)
5
6
Figura 2. (Continuación)
6
7
Figura 2. (Continuación)
7
8
Figura 2. (Continuación)
8
STOP
ALGORITMO DE CÁLCULO ETAPA DE
COMPRESIÓN
Tabla 1. Módulo base para determinar las características principales de la etapa de expansión.
Pseudocódigo
Lenguaje Visual Basic Application
Programa: dimensionamiento geométrico de la etapa
de compresión, y cálculo de los parámetros
termodinámicos del aire.
Entorno: T0, P0, Dens0, h0, c0, T1, P1, Dens1, h1,
c1, T3, P3, Dens3, h3, c3, T5, P5, Dens5, h5, c5, u1,
w1, c1m, c2, u2, w2, c2m, c2u, w2u, alfa2, alfa4,
alfa5, beta2, ez, c2r, w2r, c2mr, c2ur, w2ur, Ys, Yu,
Yi, yiescal, y0a1, y1a2, y4a5, Ecomp, Erod, Edif, Ma,
S, Ccaudal, Cpresion, Cpotencia, GR, rprodete,
rpdifusor son números corrientes
Zrodete, Zdifusor son números reales
Comprobar, T1a son números variantes por defecto
Función Entalpia(Temperatura) es un número doble
Entalpia ← 97.2971301 - 0.975805876 *
Temperatura + 0.0164161491 * Temperatura ^ 2 0.0000714909365 * Temperatura ^ 3 +
0.000000172160451 * Temperatura ^ 4 2.17320434E-10 * Temperatura ^ 5 + 1.12523733E13 * Temperatura ^ 6
Fin_Función
Función Temperatura(Entalpia) es un número doble
Temperatura ← -96.2486053 + 2.9543569 * Entalpia
- 0.0162367633 * Entalpia ^ 2 + 0.000070706829 *
Entalpia ^ 3 - 0.000000170273443 * Entalpia ^ 4 +
2.14950951E-10 * Entalpia ^ 5 - 1.11308164E-13 *
Entalpia ^ 6
Fin_Función
Dim T0 As Currency, P0 As Currency, Dens0 As Currency, h0 As
Currency, c0 As Currency, T1 As Currency, P1 As Currency, Dens1
As Currency, h1 As Currency, c1 As Currency, T3 As Currency, P3
As Currency, Dens3 As Currency, h3 As Currency, c3 As Currency,
T5 As Currency, P5 As Currency, Dens5 As Currency, h5 As
Currency, c5 As Currency, u1 As Currency, w1 As Currency, c1m As
Currency, c2 As Currency, u2 As Currency, w2 As Currency,
c2m
As Currency, c2u As Currency, w2u As Currency, alfa2 As Currency,
alfa4 As Currency, alfa5 As Currency, beta2 As Currency, ez As
Currency, c2r As Currency, w2r As Currency, c2mr As Currency, c2ur
As Currency, w2ur As Currency, Ys As Currency, Yu As Currency, Yi
As Currency, yiescal As Currency, y0a1 As Currency, y1a2 As
Currency, y4a5 As Currency, Ecomp As Currency, Erod As Currency,
Edif As Currency, Ma As Currency, S As Currency, Ccaudal As
Currency, Cpresion As Currency, Cpotencia As Currency,GR As
Currency, rprodete As Currency, rpdifusor As Currency, Zrodete As
Integer, Zdifusor As Integer, Comprobar, T1a
'Funciones empleadas en el algoritmo
‘Entalpía en función de la temperatura
Function Entalpia(Temperatura) As Double
Entalpia = 97.2971301 - 0.975805876 * Temperatura + 0.0164161491
* Temperatura ^ 2 - 0.0000714909365 * Temperatura ^ 3 +
0.000000172160451 * Temperatura ^ 4 - 2.17320434E-10 *
Temperatura ^ 5 + 1.12523733E-13 * Temperatura ^ 6
End Function
'Temperatura en función de la entalpía
Function Temperatura(Entalpia) As Double
Temperatura = -96.2486053 + 2.9543569 * Entalpia - 0.0162367633 *
Entalpia ^ 2 + 0.000070706829 * Entalpia ^ 3 - 0.000000170273443 *
Entalpia ^ 4 + 2.14950951E-10 * Entalpia ^ 5 - 1.11308164E-13 *
Entalpia ^ 6
End Function
Tabla 1. (Continuación)
Pseudocódigo
Función EntropiaMolar(Temperatura) es un número
doble
EntropiaMolar ← 0.463215838 - 0.00515449075 *
Temperatura + 0.000131355253 * Temperatura ^ 2 0.000000718686475 * Temperatura ^ 3 +
1.95296799E-09 * Temperatura ^ 4 - 2.69611962E12 * Temperatura ^ 5 + 1.50925963E-15 *
Temperatura ^ 6
Fin_Función
Función TemperaturaM(EntropiaMolar) es un
número doble
TemperaturaM ← -3467.32897 + 12877.5274 *
EntropiaMolar - 19344.2523 * EntropiaMolar ^ 2 +
15557.2416 * EntropiaMolar ^ 3 - 6992.24843 *
EntropiaMolar ^ 4 + 1673.11037 * EntropiaMolar ^ 5
- 166.078433 * EntropiaMolar ^ 6
Fin_Función
Función Cp(Temperatura) es un número doble
Cp ← (28.11 + 0.001967 * (Temperatura) +
0.000004802 * ((Temperatura) ^ 2) 0.000000001966 * (Temperatura) ^ 3) / 28.97
Fin_Función
Función k(Temperatura) es un número doble
k ← 1.43737624 - 0.00048972631 * (Temperatura) +
0.00000265946141 * (Temperatura) ^ 2 7.08362896E-09 * (Temperatura) ^ 3 +
9.20325322E-12 * (Temperatura) ^ 4 - 5.88572329E15 * (Temperatura) ^ 5 + 1.49497119E-18 *
(Temperatura) ^ 6
Fin_Función
Lenguaje Visual Basic Application
'Entropía en base molar en función de la temperatura
Function EntropiaMolar(Temperatura) As Double
EntropiaMolar = 0.463215838 - 0.00515449075 * Temperatura +
0.000131355253 * Temperatura ^ 2 - 0.000000718686475 *
Temperatura ^ 3 + 1.95296799E-09 * Temperatura ^ 4 2.69611962E-12 * Temperatura ^ 5 + 1.50925963E-15 * Temperatura
^6
End Function
'Temperatura en función de la entropía en base molar
Function TemperaturaM(EntropiaMolar) As Double
TemperaturaM = -3467.32897 + 12877.5274 * EntropiaMolar 19344.2523 * EntropiaMolar ^ 2 + 15557.2416 * EntropiaMolar ^ 3 6992.24843 * EntropiaMolar ^ 4 + 1673.11037 * EntropiaMolar ^ 5 166.078433 * EntropiaMolar ^ 6
End Function
'Calor específico a presión constante en función de la temperatura
Function Cp(Temperatura) As Double
Cp = (28.11 + 0.001967 * (Temperatura) + 0.000004802 *
((Temperatura) ^ 2) - 0.000000001966 * (Temperatura) ^ 3) / 28.97
End Function
'Relación de calores específicos en función de la temperatura
Function k(Temperatura) As Double
k = 1.43737624 - 0.00048972631 * (Temperatura) +
0.00000265946141 * (Temperatura) ^ 2 - 7.08362896E-09 *
(Temperatura) ^ 3 + 9.20325322E-12 * (Temperatura) ^ 4 5.88572329E-15 * (Temperatura) ^ 5 + 1.49497119E-18 *
(Temperatura) ^ 6
End Function
Tabla 1. (Continuación)
Pseudocódigo
Inicio
Leer Tatm, Patm, n, Eadm, rpcom
Si Eadm ← "" o n ← "" o Patm ← "" o rpcom ← "" o
Tatm ← "" Entonces
**Las comillas ("") representan un espacio vacío
Escribir "Falta por lo menos un parámetro de
entrada"
Sino_Si Eadm ← No es un número o n ← No es un
número o Patm ← No es un número o rpcom ← No
es un número o Tatm ← No es un número Entonces
Escribir " Son valores numéricos los que debe
introducir "
Sino_Si Tatm < -90 o Tatm > 80 Entonces
Escribir "La temperatura atmósferica debe estar
comprendida entre [-90 °C a 80 °C]"
Sino_Si Patm < 87 o Patm > 110 Entonces
Escribir "La presión atmósferica debe estar
comprendida entre [87 kPa - 110 kPa]"
Sino_Si n < 40000 o n > 120000 Entonces
Escribir "El número de revoluciones del compresor
debe estar comprendido entre [40000 rpm - 120000
rpm]"
Sino_Si Eadm < 0.97 o Eadm > 0.99 Entonces
Escribir "La eficiencia de la admisión debe estar
comprendida entre [0.97 - 0.99]"
Sino_Si rpcom < 1.2 o rpcom > 2.4 Entonces
Escribir ("La relación de compresión debe estar
comprendida entre [1.2 - 2.4]")
Lenguaje Visual Basic Application
Private Sub CALCULAR_Compresor_Click()
'El aire tras su paso por el compresor se trata como un gas ideal
Sheets("Mezcla").Activate
If Tatm.Text = "" Or Patm.Text = "" Or n.Text = "" Or Eadm.Text = ""
Or rpcom.Text = "" Then
MsgBox ("Falta por lo menos un parámetro de entrada")
ElseIf IsNumeric(Tatm.Text) = False Or IsNumeric(Patm.Text) = False
Or IsNumeric(n.Text) = False Or IsNumeric(Eadm.Text) = False Or
IsNumeric(rpcom.Text) = False Then
MsgBox ("Son valores numéricos los que debe introducir")
'Para la temperatura atmósferica
ElseIf ((Val(Tatm.Text)) < -90) Or ((Val(Tatm.Text)) > 80) Then
MsgBox ("La temperatura atmósferica debe estar comprendida entre
[-90 °C a 80 °C]")
'Para la presión atmósferica
ElseIf ((Val(Patm.Text)) < 87) Or ((Val(Patm.Text)) > 110) Then
MsgBox ("La presión atmósferica debe estar comprendida entre [87
kPa - 110 kPa]")
'Para las revoluciones del compresor
ElseIf ((Val(n.Text)) < 40000) Or ((Val(n.Text)) > 120000) Then
MsgBox ("El número de revoluciones del compresor debe estar
comprendido entre [40000 rpm - 120000 rpm]")
'Para la eficiencia de la admisión
ElseIf ((Val(Eadm.Text)) < 0.97) Or ((Val(Eadm.Text)) > 0.99) Then
MsgBox ("La eficiencia de la admisión debe estar comprendida entre
[0.97 - 0.99]")
'Para la relación de compresión
ElseIf ((Val(rpcom.Text)) < 1.2) Or ((Val(rpcom.Text)) > 2.4) Then
MsgBox ("La relación de compresión debe estar comprendida entre
[1.2 - 2.4]")
Tabla 1. (Continuación)
Pseudocódigo
Sino
T0 ← Tatm
P0 ← Patm
nc ← n
Dens0 ← P0 / (0.287 * (T0 + 273.15))
cp0 ← Cp(T0 + 273.15)
h0 ← Entalpia(T0 + 273.15)
c0 ← 0
T00 ← T0 + (c0 ^ 2) / (2000 * cp0)
P00 ← P0 + (Dens0 * c0 ^ 2) / (2000)
h00 ← h0 + ((c0 ^ 2) / (2000))
Comprobar ← verdadero
T1a ← T0 - 10
Inicio_Bucle_externo
Inicio_Bucle_interno
Mientras
T1a ← T0 - 10
T1a ← T1a + 0.01
h1asum ← Entalpia(T1a + 273.15)
Lenguaje Visual Basic Application
Else
'Temperatura a condiciones atmosféricas
Range("G22") = Val(Tatm.Text)
T0 = Range("G22")
'Presión a condiciones atmosféricas
Range("G23") = Val(Patm.Text)
P0 = Range("G23")
'Revoluciones a las que gira el compresor
Range("B29") = Val(n.Text)
nc = Range("B29")
'Densidad a condiciones atmosféricas
Dens0 = P0 / (0.287 * (T0 + 273.15))
'Calor específico a presión constante a condiciones atmosféricas
cp0 = Cp(T0 + 273.15)
'Entalpía a condiciones atmosféricas
h0 = Entalpia(T0 + 273.15)
Range("N7") = h0
'Velocidad del aire lejos de la zona de succión
c0 = 0
c0c = c0
T00 = T0 + (c0 ^ 2) / (2000 * cp0)
'Presión total a condiciones atmosféricas
P00 = P0 + (Dens0 * c0 ^ 2) / (2000)
'Entalpía total a condiciones atmosféricas
h00 = h0 + ((c0 ^ 2) / (2000))
Comprobar = True: T1a = T0 - 10 'Inicializa variables
Do
Do While T1a >= T0 - 10
T1a = T1a + 0.01 ' Incrementa el contador
'Entalpía a la temperatura 1 asumida
h1asum = Entalpia(T1a + 273.15)
Tabla 1. (Continuación)
Pseudocódigo
h1asums ← h0 - ((h0 - h1asum) / Eadm)
Lenguaje Visual Basic Application
'Entalpía en 1 isoentrópica
h1asums = h0 - ((h0 - h1asum) / Val(Eadm.Text))
'Temperatura en 1 isoentrópica
T1asums ← Temperatura(h1asums) - 273.15
T1asums = Temperatura(h1asums) - 273.15
'Relación de calores específicos a temperatura atmosférica
katm ← k(T0 + 273.15)
katm = k(T0 + 273.15)
'Presión en 1 hallada a partir de T1 asumida
P1asum ← P0 / (((T0 + 273.15) / (T1asums +
P1asum = P0 / (((T0 + 273.15) / (T1asums + 273.15)) ^ ((katm) / (katm
273.15)) ^ ((katm) / (katm - 1)))
- 1)))
'Densidad hallada a partir de las suposiciones de presión y temperatura
dens1asum ← P1asum / (0.287 * (T1a + 273.15))
en 1
rp0 ← 0.516362598 - 0.0111730348 * (T0 + 273.15) dens1asum = P1asum / (0.287 * (T1a + 273.15))
'Relación de compresión para el aire a la temperatura atmosférica
+ 0.0000992904876 * (T0 + 273.15) ^ 2 rp0 = 0.516362598 - 0.0111730348 * (T0 + 273.15) +
0.000000448195469 * (T0 + 273.15) ^ 3 +
0.0000992904876 * ((T0 + 273.15) ^ 2) - 0.000000448195469 * ((T0 +
1.37028207E-09 * (T0 + 273.15) ^ 4 273.15) ^ 3) + 1.37028207E-09 * ((T0 + 273.15) ^ 4) - 1.85656226E-12
1.85656226E-12 * (T0 + 273.15) ^ 5 +
* ((T0 + 273.15) ^ 5) + 1.09593166E-15 * ((T0 + 273.15) ^ 6)
1.09593166E-15 * (T0 + 273.15) ^ 6
'Relación de compresión total
rpt = rp0 * Val(rpcom.Text)
rpt ← rp0 * rpcom
T05ss = 130.848652 + 262.552298 * rpt - 199.883979 * rpt ^ 2 +
109.932445 * rpt ^ 3 - 35.7959869 * rpt ^ 4 + 6.18565872 * rpt ^ 5 T05ss = 130.848652 + 262.552298 * rpt 0.435713688 * rpt ^ 6 - 273.15
199.883979 * rpt ^ 2 + 109.932445 * rpt ^ 3 Range("M13") = T05ss
35.7959869 * rpt ^ 4 + 6.18565872 * rpt ^ 5 h05ss = Entalpia(T05ss + 273.15)
0.435713688 * rpt ^ 6 - 273.15
Range("N13") = h05ss
'Salto adiabático e isoentrópico total del escalonamiento de compresión
h05ss ← Entalpia(T05ss + 273.15)
Ys = h05ss - h00
'Flujo de aire que entra al compresor
Ys ← h05ss - h00
Ma = Range("F17")
Ma ← Range("F17")
'Número específico de revoluciones del escalonamiento
S ← 2.108 * (nc / 60) * ((Ma / dens1asum) ^ (1 / 2)) S = 2.108 * (nc / 60) * ((Ma / dens1asum) ^ (1 / 2)) * ((Ys * 1000) ^ (-3 /
4))
* ((Ys * 1000) ^ (-3 / 4))
Tabla 1. (Continuación)
Pseudocódigo
rd ← -0.679 * (S ^ 2) + 1.151 * S + 0.261
Ccaudal ← 0.147 * (S ^ 2) + 0.203 * S
Cpresion ← -21.85 * (S ^ 3) + 26.56 * (S ^ 2) - 11.66
* (S) + 2.584
beta2 ← 16550 * (S ^ 4) - 24392 * (S ^ 3) +13301 *
(S ^ 2) - 3206 * (S) + 329.7
u2 ← raíz(2000 * Ys / Cpresion)
D2 ← ((60 * u2) / (3.141592654 * nc)) * 1000
D1 ← rd * D2
D3 ← D2 + 0.5
D4 ← 1.1 * D2
D5 ← 1.5 * D2
beta1 ← 30
u1 ← ((3.141592654 * D1 * nc) / 60000)
Lenguaje Visual Basic Application
'Parametrizando el diagrama de Eckert en función del número
específico de revoluciones
'Relación de diámetros del rodete del compresor
rd = -0.679 * (S ^ 2) + 1.151 * S + 0.261
'Coeficiente de caudal
Ccaudal = 0.147 * (S ^ 2) + 0.203 * S
'Coeficiente de presión
Cpresion = -21.85 * (S ^ 3) + 26.56 * (S ^ 2) - 11.66 * (S) + 2.584
'Ángulo de descarga del fluído en el rodete, beta 2
beta2 = 16550 * (S ^ 4) - 24392 * (S ^ 3) + 13301 * (S ^ 2) - 3206 * (S)
+ 329.7
Range("B41") = beta2
'Velocidad periféricas en 2
u2 = Sqr(2000 * Ys / Cpresion)
u2c = u2
'Diámetro exterior del rodete
D2 = ((60 * u2) / (3.141592654 * nc)) * 1000 Range("B35") = D2
'Diámetro interior del rodete
D1 = rd * D2
Range("B34") = D1
'Dimensiones del difusor
D3 = D2 + 0.5
Range("B44") = D3
D4 = 1.1 * D2
Range("B45") = D4
D5 = 1.5 * D2
Range("B46") = D5
'Ángulo de succión del fluido, beta 1
beta1 = 30
Range("B39") = beta1
'Velocidad periféricas en 1
u1 = ((3.141592654 * D1 * nc) / 60000)
Tabla 1. (Continuación)
Pseudocódigo
c1 ← u1 * Tan(30 * 3.141592654 / 180)
w1 ← raíz(u1 ^ 2 + c1 ^ 2)
h01 ← h00
h1 ← h01 - (c1 ^ 2) / 2000
T1 ← Temperatura(h1) - 273.15
Si (T1 - 0.01<=T1a <= T1 + 0.01) Entonces
Comprobar ← Falso
Salir_Bucle_interno
Fin_Si
Salir_Bucle_externo
h1s ← h1asums
T1s ← T1asums
P1 ← P1asum
Dens1 ← dens1asum
T01 ← T00
P01 ← P1 + (Dens1 * c1 ^ 2) / (2000)
Lenguaje Visual Basic Application
'Velocidades en el estado 1
c1 = u1 * Tan(30 * 3.141592654 / 180)
w1 = Sqr(u1 ^ 2 + c1 ^ 2)
h01 = h00
Range("N10") = h01
'Se recalcula la entalpia en el estado 1
h1 = h01 - (c1 ^ 2) / 2000
Range("N9") = h1
'Se verifica la temperatura que fue asumida para el estado 1
T1 = Temperatura(h1) - 273.15
If (T1a <= T1 + 0.01) And (T1a >= T1 - 0.01) Then ' Si la condición
es verdadera
Comprobar = False ' Establece el valor a False
Exit Do
End If
Loop
Loop Until Comprobar = False
Range("M9") = T1
T1c = T1
'Se recalculan algunas propiedades en el estado 1
h1s = h1asums
Range("N8") = h1s
T1s = T1asums
Range("M8") = T1s
P1 = P1asum
Range("O9") = P1
Dens1 = dens1asum
T01 = T00
Range("M10") = T01
'Presión total en el estado 1
P01 = P1 + (Dens1 * c1 ^ 2) / (2000)
Range("O10") = P01
Tabla 1. (Continuación)
Pseudocódigo
Lenguaje Visual Basic Application
s01 ← EntropiaMolar(T1 + 273.15)
s005ss ← EntropiaMolar(T05ss + 273.15)
P05ss ← Exp((s005ss - s01) / 0.287)* P1
P05 ← P05ss
P5 ← rpcom * P1
P5ss ← P5
s05ss ← s01 + (0.287 * Log(P5ss / P1))
T5ss ← TemperaturaM(s05ss) - 273.15
h5ss ← Entalpia(T5ss + 273.15)
c5 ← raíz(2000 * (h05ss - h5ss))
Zrodete ← 6.5 * (((1 / rd) + 1) / ((1 / rd) - 1)) * Sin(((30
+ beta2) * 3.141592654 / 360))
ez ← 1 / (1 + ((3.141592654 * Sin(beta2 *
3.141592654 / 180)) / (2 * Zrodete * (1 - rd))))
alfa1 ← 90
c1m ← c1
c2m ← c1m
Si beta2 < 90 Entonces
w2u ← c2m / Tan((beta2 * 3.141592654 /
180))
'Presión total en el estado 5
s01 = EntropiaMolar(T1 + 273.15)
s005ss = EntropiaMolar(T05ss + 273.15)
P05ss = Exp((s005ss - s01) / 0.287) * P1
P05 = P05ss
Range("O20") = P05
'Presión en el estado 5
P5 = Val(rpcom.Text) * P1
Range("O19") = P5
P5ss = P5
s05ss = s01 + (0.287 * Log(P5ss / P1))
T5ss = TemperaturaM(s05ss) - 273.15
Range("M12") = T5ss
h5ss = Entalpia(T5ss + 273.15)
Range("N12") = h5ss
'Velocidad absoluta del fluido en el estado 5
c5 = Sqr(2000 * (h05ss - h5ss))
'Número de álabes del rodete del compresor
Zrodete = 6.5 * (((1 / rd) + 1) / ((1 / rd) - 1)) * Sin(((30 + beta2) *
3.141592654 / 360))
Range("B42") = Zrodete
'Factor de corrección debido al número finito de álabes
ez = 1 / (1 + ((3.141592654 * Sin(beta2 * 3.141592654 / 180)) / (2 *
Zrodete * (1 - rd))))
'Componente meridional de la velocidad absoluta del fluido en 1 y 2
alfa1 = 90
Range("B38") = alfa1
c1m = c1
c2m = c1m
If beta2 < 90 Then
'Para número infinito de álabes
w2u = c2m / Tan((beta2 * 3.141592654 / 180))
Tabla 1. (Continuación)
Pseudocódigo
c2u ← u2 - w2u
w2 ← raíz(w2u ^ 2 + c2m ^ 2)
c2 ← raíz(c2u ^ 2 + c2m ^ 2)
c3 ← c2
alfa2 ← Atn(c2m / c2u) * 180 / 3.141592654
EntradaCompresor.Visible ← Verdadero
Menorde90.Visible ← Verdadero
c2ur ← ez * c2u
c2mr ← c2m
w2ur ← u2 - c2ur
w2r ← raíz(w2ur ^ 2 + c2mr ^ 2)
c2r ← raíz(c2ur ^ 2 + c2mr ^ 2)
Sino_Si beta2 = 90 Entonces
c2u ← u2
w2 ← c2m
w2u ← 0
c2 ← raíz(u2 ^ 2 + w2 ^ 2)
c3 ← c2
alfa2 ← Atn(w2 / u2) * 180 / 3.141592654
EntradaCompresor.Visible ← Verdadero
Iguala90.Visible ← verdadero
c2ur ← ez * c2u
c2mr ← c2m
w2ur ← u2 - c2ur
w2r ← raíz(w2ur ^ 2 + c2mr ^ 2)
c2r ← raíz(c2ur ^ 2 + c2mr ^ 2)
Sino
Lenguaje Visual Basic Application
c2u = u2 - w2u
w2 = Sqr(w2u ^ 2 + c2m ^ 2)
c2 = Sqr(c2u ^ 2 + c2m ^ 2)
c3 = c2
alfa2 = Atn(c2m / c2u) * 180 / 3.141592654
Range("B40") = alfa2
EntradaCompresor.Visible = True
Menorde90.Visible = True
'Para número finito de álabes
c2ur = ez * c2u
c2mr = c2m
w2ur = u2 - c2ur
w2r = Sqr(w2ur ^ 2 + c2mr ^ 2)
c2r = Sqr(c2ur ^ 2 + c2mr ^ 2)
ElseIf beta2 = 90 Then
'Para número infinito de álabes
c2u = u2
w2 = c2m
w2u = 0
c2 = Sqr(u2 ^ 2 + w2 ^ 2)
c3 = c2
alfa2 = Atn(w2 / u2) * 180 / 3.141592654
Range("B40") = alfa2
EntradaCompresor.Visible = True
Iguala90.Visible = True
'Para número finito de álabes
c2ur = ez * c2u
c2mr = c2m
w2ur = u2 - c2ur
w2r = Sqr(w2ur ^ 2 + c2mr ^ 2)
c2r = Sqr(c2ur ^ 2 + c2mr ^ 2)
Else
Tabla 1. (Continuación)
Pseudocódigo
w2u ← c2m / Tan(((180 - beta2) * 3.141592654 /
180))
c2u ← u2 + w2u
c2 ← raíz((c2u ^ 2) + (c2m ^ 2))
c3 ← c2
w2 ← raíz(w2u ^ 2 + c2m ^ 2)
alfa2 = Atn(c2m / c2u) * 180 / 3.141592654
EntradaCompresor.Visible ← Verdadero
Mayorde90.Visible ← Verdadero
c2ur ← ez * c2u
c2mr ← c2m
w2ur ← c2ur - u2
w2r ← raíz(w2ur ^ 2 + c2mr ^ 2)
c2r ← raíz(c2ur ^ 2 + c2mr ^ 2)
Fin_Si
alfa4 ← alfa2 + 3
alfa5 ← 38
rddif ← D5 / D4
Zdifusor ← 6.3 * ((rddif + 1) / (rddif - 1)) * Sin(alfa4 *
3.141592654 / 180)
Yu ← c2ur * u2 / 1000
Yi ← Yu
Lenguaje Visual Basic Application
'Para número infinito de álabes
w2u = c2m / Tan(((180 - beta2) * 3.141592654 / 180))
c2u = u2 + w2u
c2 = Sqr((c2u ^ 2) + (c2m ^ 2))
c3 = c2
w2 = Sqr(w2u ^ 2 + c2m ^ 2)
alfa2 = Atn(c2m / c2u) * 180 / 3.141592654
Range("B40") = alfa2
EntradaCompresor.Visible = True
Mayorde90.Visible = True
'Para número finito de álabes
c2ur = ez * c2u
c2mr = c2m
w2ur = c2ur - u2
w2r = Sqr(w2ur ^ 2 + c2mr ^ 2)
c2r = Sqr(c2ur ^ 2 + c2mr ^ 2)
End If
'Ángulos de flujo en el difusor
alfa4 = alfa2 + 3
Range("B50") = alfa4
alfa5 = 38
Range("B51") = alfa5
'Número de álabes del difusor
rddif = D5 / D4
Zdifusor = 6.3 * ((rddif + 1) / (rddif - 1)) * Sin(alfa4 * 3.141592654 /
180)
Range("B52") = Zdifusor
'Salto periférico en la etapa de compresión
Yu = c2ur * u2 / 1000
'Despreciando las pérdidas por rozamiento del disco, se tiene que el
salto entálpico interno es:
Yi = Yu
Tabla 1. (Continuación)
Pseudocódigo
yiescal ← Yi - Ys
K01 ← 0.135
y0a1 ← K01 * (c1 ^ 2) / 2000
K12 ← 0.25
y1a2 ← K12 * (w1 ^ 2) / 2000
K45 ← 0.25
y4a5 ← K45 * ((c2r ^ 2) - (c5 ^ 2)) / 2000
h02 ← h01 + Yu
h05 ← h02
T02 ← Temperatura(h02) - 273.15
Cp02 ← Cp(T02 + 273.15)
T03 ← T02
k02 ← k(T02 + 273.15)
P02 ← ((P05ss) / ((1 - (y4a5 / (Cp02 * (T02 +
273.15)))) ^ ((k02) / (k02 - 1))))
P03 ← P02
T2 ← T02 - (c2 ^ 2) / (2000 * Cp02)
Lenguaje Visual Basic Application
'Pérdidas internas en el escalonamiento de compresión
yiescal = Yi - Ys
'Pérdidas en la succión
'K01 asumido entre 0,1 a 0,15
K01 = 0.135
y0a1 = K01 * (c1 ^ 2) / 2000
'Pérdidas en el rotor
'K12 asumido entre 0,2 a 0,25
K12 = 0.25
y1a2 = K12 * (w1 ^ 2) / 2000
'Pérdidas en el difusor
'K45 asumido como 0,25
K45 = 0.25
y4a5 = K45 * ((c2r) ^ 2 - (c5 ^ 2)) / 2000
'Entalpía total en el estado 2
h02 = h01 + Yu
h05 = h02
Range("N18") = h02
'Temperatura en el estado 02 y cálculo de cp02
T02 = Temperatura(h02) - 273.15
Cp02 = Cp(T02 + 273.15)
Range("M18") = T02
T03 = T02
'Relación de calores específicos a T02
k02 = k(T02 + 273.15)
'Presión total en el estado 2
P02 = ((P05ss) / ((1 - (y4a5 / (Cp02 * (T02 + 273.15)))) ^ ((k02) / (k02
- 1))))
P03 = P02
Range("O18") = P02
T2 = T02 - (c2 ^ 2) / (2000 * Cp02)
Range("M15") = T2
Tabla 1. (Continuación)
Pseudocódigo
T3 ← T2
T05 ← T02
T5 ← T05 - ((c5 ^ 2) / (2000 * Cp02))
h5 ← Entalpia(T5 + 273.15)
Dens5 ← P5 / (0.287 * (T5 + 273.15))
s002 ← EntropiaMolar(T02 + 273.15)
s02 ← EntropiaMolar(T2 + 273.15)
P2 ← P02 / (Exp((s002 - s02) / 0.287))
P3 ← P2
Dens2 ← P2 / (0.287 * (T2 + 273.15))
Dens3 ← Dens2
h2 ← Entalpia(T2 + 273.15)
h3 ← h2
s02s ← s01 + (0.287 * Log(P2 / P1))
T2s ← TemperaturaM(s02s) - 273.15
h2s ← Entalpia(T2s + 273.15)
Lenguaje Visual Basic Application
T3 = T2
T05 = T02
'Temperatura en el estado 5 haciendo cp05 = cp02
T5 = T05 - ((c5 ^ 2) / (2000 * Cp02))
Range("M19") = T5
'Entalpía en el estado 5
h5 = Entalpia(T5 + 273.15)
Range("N19") = h5
'Densidad en el estado 5
Dens5 = P5 / (0.287 * (T5 + 273.15))
'Presión en el estado 2, salida del rotor
s002 = EntropiaMolar(T02 + 273.15)
s02 = EntropiaMolar(T2 + 273.15)
P2 = P02 / (Exp((s002 - s02) / 0.287))
P3 = P2
Range("O15") = P2
'Densidad en el estado 2
Dens2 = P2 / (0.287 * (T2 + 273.15))
Dens3 = Dens2
'Entalpía en el estado 2
h2 = Entalpia(T2 + 273.15)
Range("N15") = h2
h3 = h2
'Temperatura en el estado 2s
s02s = s01 + (0.287 * Log(P2 / P1))
T2s = TemperaturaM(s02s) - 273.15
Range("M11") = T2s
'Entalpía en el estado 2s
h2s = Entalpia(T2s + 273.15)
Range("N11") = h2s
Tabla 1. (Continuación)
Pseudocódigo
s05s ← s02 + (0.287 * Log(P5 / P2))
T5s ← TemperaturaM(s05s) - 273.15
h5s ← Entalpia(T5s + 273.15)
T05s ← T05 - T5 + T5s
h05s ← Entalpia(T05s + 273.15)
T02s ← T02 - T5s + T5ss
h02s ← Entalpia(T02s + 273.15)
rprodete ← P2 / P1
rpdifusor ← P5 / P2
b1 ← ((Ma) / (3.141592654 * D1 * c1m * Dens1)) *
1000000
b2 ← ((Ma) / (3.141592654 * D2 * c2m * Dens2)) *
1000000
b4 ← b2
b5 ← b2
Lenguaje Visual Basic Application
'Temperatura en el estado 5s
s05s = s02 + (0.287 * Log(P5 / P2))
T5s = TemperaturaM(s05s) - 273.15
Range("M16") = T5s
'Entalpía en el estado 5s
h5s = Entalpia(T5s + 273.15)
Range("N16") = h5s
'Temperatura en el estado 05s, del diagrama h-s
T05s = T05 - T5 + T5s
Range("M17") = T05s
'Entalpía en el estado 05s
h05s = Entalpia(T05s + 273.15)
Range("N17") = h05s
'Temperatura en el estado 02s, del diagrama h-s
T02s = T02 - T5s + T5ss
Range("M14") = T05s
'Entalpía en el estado 02s
h02s = Entalpia(T02s + 273.15)
Range("N14") = h05s
'Relaciones de presión
rprodete = P2 / P1
rpdifusor = P5 / P2
'Anchos del rodete y el difusor
b1 = ((Ma) / (3.141592654 * D1 * c1m * Dens1)) * 1000000
Range("B36") = b1
b2 = ((Ma) / (3.141592654 * D2 * c2m * Dens2)) * 1000000
Range("B37") = b2
b4 = b2
Range("B47") = b4
b5 = b2
Range("B48") = b5
Tabla 1. (Continuación)
Pseudocódigo
b6 ← 1.2 * b2
A1 ← 1000000 * Ma / (Dens1 * c1m)
Dc ← raíz((D1 ^ 2) - (4 * A1 / 3.141592654))
Lc ← 0.45 * D2
GR ← (h2 - h1) / (h05 - h01)
Cpotencia ← Yu / (u2 ^ 2 / 2000)
Ecompresor ← Ys / Yu
Erodete ← (h2s - h1) / (h2 - h1)
h4 ← h2
Edifusor ← (h5s - h4) / (h5 - h4)
Rmin ← ((D5 / 2) + b6)
Si beta2 < 90 Entonces
Rmax ← ((D5 / 2) + b6) + (0.5 * D5)
Sino_Si beta2 = 90 Entonces
Rmax ← ((D5 / 2) + b6) + (0.3 * D5)
Lenguaje Visual Basic Application
b6 = 1.2 * b2
Range("B49") = b6
'Diámetro del cubo
A1 = 1000000 * Ma / (Dens1 * c1m)
Dc = Sqr((D1 ^ 2) - (4 * A1 / 3.141592654))
Range("B53") = Dc
'Longitud del cubo
Lc = 0.45 * D2
Range("B54") = Lc
'Grado de reacción
GR = (h2 - h1) / (h05 - h01)
'Coeficiente de potencia
Cpotencia = Yu / (u2 ^ 2 / 2000)
'Eficiencia de la etapa de compresión
Ecompresor = Ys / Yu
Range("M26") = Ecompresor
'Eficiencia del rodete
Erodete = (h2s - h1) / (h2 - h1)
Range("M27") = Erodete
'Eficiencia del difusor
h4 = h2
Edifusor = (h5s - h4) / (h5 - h4)
Range("M28") = Edifusor
'Diseño carcasa
'Radio mínimo de la voluta
Rmin = ((D5 / 2) + b6)
Range("B84") = Rmin
'Radio máximo de la voluta
If beta2 < 90 Then
Rmax = ((D5 / 2) + b6) + (0.5 * D5)
ElseIf beta2 = 90 Then
Rmax = ((D5 / 2) + b6) + (0.3 * D5)
Tabla 1. (Continuación)
Pseudocódigo
Sino
Lenguaje Visual Basic Application
Else
Rmax = ((D5 / 2) + b6) + (0.62 * D5)
End If
Range("B85") = Rmax
Rmax ← ((D5 / 2) + b6) + (0.62 * D5)
Fin_Si
'Constante de la espiral logarítmica
Kespiral = 360 / (Log(Rmax / Rmin) / (Log(10)))
Range("B86") = Kespiral
Kespiral ← 360 / (Log(Rmax / Rmin) / (Log(10)))
A01 ← (3.141592654 / 4) * ((Rmax - Rmin) ^ 2)
'Área de salida de la carcasa
A01 = (3.141592654 / 4) * ((Rmax - Rmin) ^ 2)
Range("B26") = A01
Etotalc ← 0.8
Pac ← 1000 * (Ma * Ysc) / (Etotalc)
Tc ← ((60 * Pac) / (2 * 3.141592654 * nc))
Ss ← 20
dprevioc ← 1000 * ((16 * Tc) / (3.141592654 *
1000000 * Ss)) ^ (1 / 3)
L rodete_Rotor ← 1.6 * d2
MultiPage1.Visible ← Verdadero
Fin_Si
Fin
'Diámetro previo de la sección del árbol que soporta el compresor
'Se toma la eficiencia total del compresor como:
Etotalc = 0.8
'Potencia de accionamiento en Watt
Pac = 1000 * (Ma * Ysc) / (Etotalc)
'Torque transmitido por el árbol
Tc = ((60 * Pac) / (2 * 3.141592654 * nc))
'Esfuerzo cortante máximo admisible para el árbol en MPa
Ss = 20
'Diámetro previo en mm
dprevioc = 1000 * ((16 * Tc) / (3.141592654 * 1000000 * Ss)) ^ (1 / 3)
Range("B55") = dprevioc
'Distancia entre el rodete y el rotor
Range("B81") = 1.6 * d2
'Para mostrar el formulario multipagina
MultiPage1.Visible = True
End If
End Sub
DIAGRAMA DE FLUJO PARA LA ETAPA DE
EXPANSIÓN
El turbocompresor consta en su etapa de expansión de un rotor, un distribuidor de
entrada con álabes y una carcasa. En la figura 1 se muestran numeradas las
estaciones concernientes para esta etapa, la cual concuerda con los subíndices
empleados para cada variable del diagrama de flujo.
Figura 1. Numeración de las estaciones de la etapa de expansión, con base al
cual se define el diagrama de flujo.
La secuencia establecida en el siguiente diagrama de flujo (ver figura 2) sintetiza
en gran parte la metodología y las consideraciones expuestas en el capítulo 4
sobre el diseño de turbinas radiales, su ejecución permite el cálculo de los
parámetros geométricos y térmicos de la etapa de expansión del turbocompresor.
Figura 2. Diagrama de flujo para la etapa de expansión.
START
3
1
Figura 2. (Continuación)
1
7
2
4
Figura 2. (Continuación)
3
2
5
4
Figura 2. (Continuación)
5
6
Figura 2. (Continuación)
7
6
8
Figura 2. (Continuación)
8
9
Figura 2. (Continuación)
9
STOP
ALGORITMO DE CÁLCULO ETAPA DE
EXPANSIÓN
Tabla 1. Módulo base para determinar las características principales de la etapa de expansión.
Pseudocódigo
Lenguaje Visual Basic Application
Programa: dimensionamiento geométrico de la etapa
de expansión, y cálculo de los parámetros
termodinámicos de los gases de combustión.
Entorno: A01t, A1t, A2t, Act, T1t, P1, Dens1t, h1t,
c1t, T2t, P2t, Dens2t, h2t, c2t, T5t, P5t, Dens5t, h5t,
c5t, c4t, u4t, w4t, c4mt, c4ut, w4ut, alfa4t, beta4t,
u5t, w5t, c5mt, beta5t , Yst, Yut, Yit, yiescalt, Eturb,
Erot, Edist, Mgasest, Ns, CQt, CPt, Cpotenciat, GRt,
rprotort, rpdistribuidort, RMezcla, Dseda, Rgasest
son números corrientes
Zrotort, Zdistribuidort son números reales,
Comprobar, P1a son números variantes por defecto
Dim A01t As Currency, A1t As Currency, A2t As Currency, Act As
Currency, T1t As Currency, P1 As Currency, Dens1t As Currency, h1t
As Currency, c1t As Currency, T2t As Currency, P2t As Currency,
Dens2t As Currency, h2t As Currency, c2t As Currency, T5t As
Currency, P5t As Currency, Dens5t As Currency, h5t As Currency, c5t
As Currency, c4t As Currency, u4t As Currency, w4t As Currency, c4mt
As Currency, c4ut As Currency, w4ut As Currency, alfa4t As Currency,
beta4t As Currency, u5t As Currency, w5t As Currency, c5mt As
Currency, beta5t As Currency, Yst As Currency, Yut As Currency, Yit
As Currency, yiescalt As Currency, Eturb As Currency, Erot As
Currency, Edist As Currency, Mgasest As Currency, Ns As Currency,
CQt As Currency, CPt As Currency, Cpotenciat As Currency, GRt As
Currency, rprotort As Currency, rpdistribuidort As Currency, RMezcla
Función CpGases(Temperatura) es un número doble As Currency, Dseda As Currency, Rgasest As Currency, Zrotort As
Integer, Zdistribuidort As Integer, Comprobar, P1a
CpGases ← ((Range("I10")) * (0.40159441 +
0.00200673361 * Temperatura - 0.00000196595303 'Funciones empleadas en el algoritmo
* Temperatura ^ 2 + 4.04211052E-10 * Temperatura 'Determinación del Cp de la mezcla de gases
Function CpGases(Temperatura) As Double
^ 3 + 1.46725948E-12 * Temperatura ^ 4 1.60209189E-15 * Temperatura ^ 5 + 5.22234075E- CpGases = ((Range("I10")) * (0.40159441 + 0.00200673361 *
19 * Temperatura ^ 6)) + ((Range("I11")) * 1.8723) + Temperatura - 0.00000196595303 * Temperatura ^ 2 + 4.04211052E((Range("I12")) * (0.974232551 + 0.000873771816 * 10 * Temperatura ^ 3 + 1.46725948E-12 * Temperatura ^ 4 Temperatura - 0.00000449546695 * Temperatura ^ 2 1.60209189E-15 * Temperatura ^ 5 + 5.22234075E-19 * Temperatura
+ 1.08865491E-08 * Temperatura ^ 3 - 1.2707702E- ^ 6)) + ((Range("I11")) * 1.8723) + ((Range("I12")) * (0.974232551 +
0.000873771816 * Temperatura - 0.00000449546695 * Temperatura ^
11 * Temperatura ^ 4 + 7.3119086E-15 *
2 + 1.08865491E-08 * Temperatura ^ 3 - 1.2707702E-11 *
Temperatura ^ 5 - 1.67626929E-18 * Temperatura ^
6)) + ((Range("I13")) * (1.03595197 - 0.00123445832 Temperatura ^ 4 + 7.3119086E-15 * Temperatura ^ 5 - 1.67626929E* Temperatura + 0.00000387478218 * Temperatura ^ 18 * Temperatura ^ 6)) + ((Range("I13")) * (1.03595197 0.00123445832 * Temperatura + 0.00000387478218 * Temperatura ^
2 - 3.75858913E-09 * Temperatura ^ 3 +
1.66098913E-13 * Temperatura ^ 4 + 1.80786113E- 2 - 3.75858913E-09 * Temperatura ^ 3 + 1.66098913E-13 *
Temperatura ^ 4 + 1.80786113E-15 * Temperatura ^ 5 - 8.01644553E15 * Temperatura ^ 5 - 8.01644553E-19 *
19 * Temperatura ^ 6))
Temperatura ^ 6))
End Function
Fin_Función
Tabla 1. (Continuación)
Pseudocódigo
Función CvGases(Temperatura) es un número doble
CvGases ← ((Range("I10")) * (0.261451872 +
0.0014142937 * Temperatura + 0.000000851812201
* Temperatura ^ 2 - 6.34287315E-09 * Temperatura
^ 3 + 1.01056211E-11 * Temperatura ^ 4 7.24811086E-15 * Temperatura ^ 5 + 2.00279738E18 * Temperatura ^ 6)) + ((Range("I11")) * 1.4108) +
((Range("I12")) * (0.613022582 + 0.00163480215 *
Temperatura - 0.0000080525749 * Temperatura ^ 2
+ 1.93800536E-08 * Temperatura ^ 3 2.37280698E-11 * Temperatura ^ 4 + 1.47203508E14 * Temperatura ^ 5 - 3.69758594E-18 *
Temperatura ^ 6)) + ((Range("I13")) * (0.738405784 0.000776528127 * Temperatura +
0.00000167568295 * Temperatura ^ 2 +
1.5690697E-09 * Temperatura ^ 3 - 6.72337629E-12
* Temperatura ^ 4 + 6.34087681E-15 * Temperatura
^ 5 - 1.99412167E-18 * Temperatura ^ 6))
Fin_Función
Function EntalpiaGases(Temperatura) As Double
EntalpiaGases← (((Range("H10")) * (668.926417 +
19.4157845 * Temperatura + 0.0391518896 *
Temperatura ^ 2 - 0.0000244313569 * Temperatura
^ 3 + 1.02363111E-08 * Temperatura ^ 4 2.55233288E-12 * Temperatura ^ 5 + 2.81992292E16 * Temperatura ^ 6)) + ((Range("H11")) *
(46.3367205 + 33.0749178 * Temperatura 0.00197392347 * Temperatura ^ 2 +
0.00000732811558 * Temperatura ^ 3 3.09349789E-09 * Temperatura ^ 4 + 5.32995492E13 * Temperatura ^ 5 - 2.95739048E-17 *
Temperatura ^ 6)) + ((Range("H12")) * (-306.215486
Lenguaje Visual Basic Application
'Determinación del Cv de la mezcla de gases
Function CvGases(Temperatura) As Double
CvGases = ((Range("I10")) * (0.261451872 + 0.0014142937 *
Temperatura + 0.000000851812201 * Temperatura ^ 2 6.34287315E-09 * Temperatura ^ 3 + 1.01056211E-11 * Temperatura
^ 4 - 7.24811086E-15 * Temperatura ^ 5 + 2.00279738E-18 *
Temperatura ^ 6)) + ((Range("I11")) * 1.4108) + ((Range("I12")) *
(0.613022582 + 0.00163480215 * Temperatura - 0.0000080525749 *
Temperatura ^ 2 + 1.93800536E-08 * Temperatura ^ 3 2.37280698E-11 * Temperatura ^ 4 + 1.47203508E-14 * Temperatura
^ 5 - 3.69758594E-18 * Temperatura ^ 6)) + ((Range("I13")) *
(0.738405784 - 0.000776528127 * Temperatura + 0.00000167568295
* Temperatura ^ 2 + 1.5690697E-09 * Temperatura ^ 3 6.72337629E-12 * Temperatura ^ 4 + 6.34087681E-15 * Temperatura
^ 5 - 1.99412167E-18 * Temperatura ^ 6))
End Function
'Entalpía de la mezcla de gases en función de la temperatura
Function EntalpiaGases(Temperatura) As Double
EntalpiaGases = (((Range("H10")) * (668.926417 + 19.4157845 *
Temperatura + 0.0391518896 * Temperatura ^ 2 - 0.0000244313569 *
Temperatura ^ 3 + 1.02363111E-08 * Temperatura ^ 4 2.55233288E-12 * Temperatura ^ 5 + 2.81992292E-16 * Temperatura
^ 6)) + ((Range("H11")) * (46.3367205 + 33.0749178 * Temperatura 0.00197392347 * Temperatura ^ 2 + 0.00000732811558 *
Temperatura ^ 3 - 3.09349789E-09 * Temperatura ^ 4 +
5.32995492E-13 * Temperatura ^ 5 - 2.95739048E-17 * Temperatura
^ 6)) + ((Range("H12")) * (-306.215486 + 32.081102 * Temperatura 0.0107053117 * Temperatura ^ 2 + 0.0000164775467 * Temperatura
^ 3 - 1.00328486E-08 * Temperatura ^ 4 + 2.96271784E-12 *
Temperatura ^ 5 - 3.48825079E-16 * Temperatura ^ 6)) +
((Range("H13")) * (137.619799 + 28.7305687 * Temperatura 0.00357186649 * Temperatura ^ 2 + 0.0000142690674 * Temperatura
Tabla 1. (Continuación)
Pseudocódigo
+ 32.081102 * Temperatura - 0.0107053117 *
Temperatura ^ 2 + 0.0000164775467 * Temperatura
^ 3 - 1.00328486E-08 * Temperatura ^ 4 +
2.96271784E-12 * Temperatura ^ 5 - 3.48825079E16 * Temperatura ^ 6)) + ((Range("H13")) *
(137.619799 + 28.7305687 * Temperatura 0.00357186649 * Temperatura ^ 2 +
0.0000142690674 * Temperatura ^ 3 - 1.20243491E08 * Temperatura ^ 4 + 4.48280076E-12 *
Temperatura ^ 5 - 6.35125599E-16 * Temperatura ^
6))) / (Range("C2"))
Fin_Función
Inicio
Leer rdt1, rvt1, alfa4t1
Si rdt1 ← "" o rvt1 ← "" o alfa4t1 ← "" Entonces
**Las comillas ("") representan un espacio vacío
Escribir "Falta por lo menos un parámetro de
entrada"
Sino_Si rdt1 ← No es un número o rvt1 ← No es un
número o alfa4t1 ← No es un número Entonces
Escribir " Son valores numéricos los que debe
introducir "
Sino_Si rdt1 < 2 o rdt1 > 2.5 Entonces
Escribir ("La relación de diámetros debe estar entre
[2-2.5]")
Sino_Si rvt1 < 0.75 o rvt1 > 0.85 Entonces
Escribir ("La relación de velocidades debe estar
entre [0.75-0.85]")
Lenguaje Visual Basic Application
^ 3 - 1.20243491E-08 * Temperatura ^ 4 + 4.48280076E-12 *
Temperatura ^ 5 - 6.35125599E-16 * Temperatura ^ 6))) /
(Range("C2"))
End Function
Private Sub CALCULAR_Turbina_Click()
Sheets("Mezcla").Activate
If rdt1.Text = "" Or rvt1.Text = "" Or alfa4t1.Text = "" Then
MsgBox ("Falta por lo menos un parámetro de entrada")
ElseIf IsNumeric(rdt1.Text) = False Or IsNumeric(rvt1.Text) = False
Or IsNumeric(alfa4t1.Text) = False Then
MsgBox ("Son valores numericos los que debe introducir")
'Para la relación de diámetros
ElseIf ((Val(rdt1.Text)) < 2) Or ((Val(rdt1.Text)) > 2.5) Then
MsgBox ("La relación de diámetros debe estar entre [2-2.5]")
'Para la relación de velocidades
ElseIf ((Val(rvt1.Text)) < 0.75) Or ((Val(rvt1.Text)) > 0.85) Then
MsgBox ("La relación de velocidades debe estar entre [0.75-0.85]")
'Para el ángulo de entrada de la corriente de flujo alfa 4
ElseIf ((Val(alfa4t1.Text)) < 52) Or ((Val(alfa4t1.Text)) > 83) Then
MsgBox ("Alfa 4 debe estar comprendido entre [52°-85°]")
Else
'Diámetro exterior del rotor
d4t = Range("B35")
'Relación de diámetros
rdt = Val(rdt1.Text)
Tabla 1. (Continuación)
Pseudocódigo
Sino_Si alfa4t1 < 52 o alfa4t1 > 83 Entonces
Escribir "Alfa 4 debe estar comprendido entre [52°85”
Sino
d4t ← Range("B35")
rdt ← Val(rdt1.Text)
D5t←d4t / rdt
d1t ← 1.65 * d4t
D2t ← 1.12 * d4t
D3t ← d4t + 0.5
Dct ← 0.4 * D5t
r01t ← 0.75 * d1t
r1t ← d1t / 2
Lct ← 0.4 * d4t
u4t ← 3.141592654 * d4t * n / 60000
rvt ← Val(rvt1.Text)
c4ut ← rvt * u4t
Lenguaje Visual Basic Application
'Otras dimensiones
D5t = d4t / rdt
Range("B61") = D5t
d1t = 1.65 * d4t
Range("B73") = d1t
D2t = 1.12 * d4t
Range("B72") = D2t
D3t = d4t + 0.5
Range("B71") = D3t
Dct = 0.4 * D5t
Range("B78") = Dct
r01t = 0.75 * d1t
r1t = d1t / 2
n = Range("B29")
'Longitud del cubo
Lct = 0.4 * d4t
Range("B79") = Lct
'Velocidades
u4t = 3.141592654 * d4t * n / 60000
rvt = Val(rvt1.Text)
c4ut = rvt * u4t
'Número de alabes del rotor
Zrotort = ((3.141592654 * d4t) / (2 * (1 - rvt) * (d4t - D5t)))
Range("B69") = Zrotort
'Ángulo salida del distribuidor alfa4
alfa4t = Val(alfa4t1.Text)
Range("B67") = alfa4t
alfa2t = alfa4t
Range("B76") = alfa2t
alfat4 = alfa4t
c4t = c4ut / Cos((90 - alfa4t) * 3.141592654 / 180)
c4mt = Sqr(c4t ^ 2 - c4ut ^ 2)
Tabla 1. (Continuación)
Pseudocódigo
Zrotort← ((3.141592654 * d4t) / (2 * (1 - rvt) * (d4t D5t)))
alfa4t ← Val(alfa4t1.Text)
c4t ← c4ut / Cos((90 - alfa4t) * 3.141592654 / 180)
c4mt ← Sqr(c4t ^ 2 - c4ut ^ 2)
w4ut ← u4t - c4ut
beta4t ← Atn(w4ut / c4mt) * (180 / 3.141592654)
w4t ← Sqr(c4mt ^ 2 + w4ut ^ 2)
u5t ← 3.141592654 * D5t * n / 60000
c5mt ← c4mt
c5t ← c5mt
beta5t ← Atn(u5t / c5t) * (180 / 3.141592654)
w5t ← Sqr(c5t ^ 2 + u5t ^ 2)
alfa5t ← 0
A01t ← 1.2 * (r1t ^ 2)
V ← Range("F13")
nmotor ← Range("F16")
RMezcla ← Range("F2")
T1t ← Range("F15") + 273.15
Mgasest ← Range("F17") + Range("F18")
c1mt ← c4mt
Comprobar ← veradero
P1a ← Range("O7") + 10 '
Inicio_Bucle_externo
Inicio_Bucle_interno
Mientras
P1a >= Range("O7") + 10
P1a ←P1a + 1
Dens1t ← P1a / (RMezcla * (T1t))
Lenguaje Visual Basic Application
w4ut = u4t - c4ut
beta4t = Atn(w4ut / c4mt) * (180 / 3.141592654)
Range("B68") = beta4t
w4t = Sqr(c4mt ^ 2 + w4ut ^ 2)
'Salida del rotor
u5t = 3.141592654 * D5t * n / 60000
c5mt = c4mt
c5t = c5mt
beta5t = Atn(u5t / c5t) * (180 / 3.141592654)
Range("B66") = beta5t
w5t = Sqr(c5t ^ 2 + u5t ^ 2)
alfa5t = 0
Range("B65") = alfa5t
'Área de la sección de entrada a la voluta
A01t = 1.2 * (r1t ^ 2)
Range("B27") = A01t
'Parametros de entrada del motor
V = Range("F13")
nmotor = Range("F16")
RMezcla = Range("F2")
T1t = Range("F15") + 273.15
'Flujo masico de los gases de combustión [kg/s]
Mgasest = Range("F17") + Range("F18")
'Ancho del distribuidor a la entrada
c1mt = c4mt
Comprobar = True: P1a = Range("O7") + 10 ' Inicializa variables.
Do ' Bucle externo.
Do While P1a >= Range("O7") + 10 ' Bucle interno.
P1a = P1a + 1 ' Incrementa el contador.
Dens1t = P1a / (RMezcla * (T1t))
Tabla 1. (Continuación)
Pseudocódigo
Comprobar ← verdadero
b1t ← 1000000 * (Mgasest) / (3.141592654 * d1t *
c1mt * Dens1t)
Inicio_Bucle_externo
Inicio_Bucle_interno
Mientras
b1t >← 1000000 * (Mgasest) / (3.141592654 * d1t *
c1mt * Dens1t)
b1t ← b1t + 0.2
b2t ← b1t
b4t ← b1t
c1t ← (V * nmotor * 3.141592654 / 60) / (A01t) *
((Sqr(A01t ^ 2 + (2 * 3.141592654 * r01t * b1t) ^ 2)) /
(2 * 3.141592654 * r1t * b1t))
Zdistribuidort ← 12
v1t ← 1 / Dens1t
A1t ← (3.141592654 * d1t * b1t) / Zdistribuidort
Cp1t ← CpGases(T1t)
Cv1t ← CvGases(T1t)
k1t ← Cp1t / Cv1t
A2t ← ((3.141592654 * d1t * b1t) / (Zdistribuidort *
v1t)) * c1t * (Cos((90 - alfa4t) * 3.141592654 / 180) /
c4ut) * (((P1a * v1t ^ k1t) / (RMezcla * (T1t + (1 /
(2000 * Cp1t)) * (c1t ^ 2 - c4t ^ 2))))) ^ (1 / (k1t - 1))
Lenguaje Visual Basic Application
Comprobar = True: b1t = 1000000 * (Mgasest) / (3.141592654 * d1t *
c1mt * Dens1t) ' Inicializa variables.
Do ' Bucle externo.
Do While b1t >= 1000000 * (Mgasest) / (3.141592654 * d1t * c1mt *
Dens1t) ' Bucle interno.
b1t = b1t + 0.2 ' Incrementa el contador.
Range("B75") = b1t
b2t = b1t
Range("B74") = b2t
b4t = b1t
Range("B64") = b4t
'Velocidad de Salida de los gases de combustión
c1t = (V * nmotor * 3.141592654 / 60) / (A01t) * ((Sqr(A01t ^ 2 + (2 *
3.141592654 * r01t * b1t) ^ 2)) / (2 * 3.141592654 * r1t * b1t))
'Número de álabes del distribuidor, siendo 12 el número óptimo
Zdistribuidort = 12
Range("B77") = Zdistribuidort
Zdistribuidort1 = Zdistribuidort
v1t = 1 / Dens1t
'Área por canal a la entrada del distribuidor
A1t = (3.141592654 * d1t * b1t) / Zdistribuidort
'Cálculo de Cp, Cv y K de la mezcla en T1
Cp1t = CpGases(T1t)
Cv1t = CvGases(T1t)
k1t = Cp1t / Cv1t
'Área por canal a la salida del distribuidor
A2t = ((3.141592654 * d1t * b1t) / (Zdistribuidort * v1t)) * c1t *
(Cos((90 - alfa4t) * 3.141592654 / 180) / c4ut) * (((P1a * v1t ^ k1t) /
(RMezcla * (T1t + (1 / (2000 * Cp1t)) * (c1t ^ 2 - c4t ^ 2))))) ^ (1 / (k1t 1))
Tabla 1. (Continuación)
Pseudocódigo
Act ← ((c1t * 3.141592654 * d1t * b1t) /
(Zdistribuidort)) * (2 / (k1t + 1)) ^ (1 / (1 - k1t)) * 1 /
(Sqr(c1t ^ 2 + ((2 * k1t / (k1t + 1)) * 1000 * P1a *
v1t)))
v2t ← (((P1a * v1t ^ k1t) / (RMezcla * ((T1t) + (1 /
(2000 * Cp1t)) * (c1t ^ 2 - c4t ^ 2))))) ^ (1 / (k1t - 1))
Dens2t ← 1 / v2t
dens3t1 ← Dens2t
dens4t ← Dens2t
b4t ← 1000000 * (Mgasest) / (3.141592654 * d4t *
c4mt * Dens2t)
Si (b1t <= b4t + 0.2) y (b1t >= b4t - 0.2) Entonces
Comprobar ← Falso
Salir_Bucle_interno
Fin_Si
Salir_Bucle_externo
h1t ← EntalpiaGases(T1t)
h01t ← h1t + c1t ^ 2 / 2000
P01t ← P1a + Dens1t * c1t ^ 2 / 2000
h02t ← h01t
c2t ← c4t
Lenguaje Visual Basic Application
'Área critica por canal a la salida del distribuidor
Act = ((c1t * 3.141592654 * d1t * b1t) / (Zdistribuidort)) * (2 / (k1t + 1))
^ (1 / (1 - k1t)) * 1 / (Sqr(c1t ^ 2 + ((2 * k1t / (k1t + 1)) * 1000 * P1a *
v1t)))
'Volumen específico y densidad en 2
v2t = (((P1a * v1t ^ k1t) / (RMezcla * ((T1t) + (1 / (2000 * Cp1t)) * (c1t
^ 2 - c4t ^ 2))))) ^ (1 / (k1t - 1))
Dens2t = 1 / v2t
dens3t1 = Dens2t
dens4t = Dens2t
b4t = 1000000 * (Mgasest) / (3.141592654 * d4t * c4mt * Dens2t)
If (b1t <= b4t + 0.2) And (b1t >= b4t - 0.2) Then ' Si la condición es
verdadera.
Comprobar = False ' Establece el valor a False.
Exit Do ' Sale del bucle interno.
End If
Loop
Loop Until Comprobar = False ' Sale inmediatamente del bucle
externo.
'Entalpía de la mezcla en el estado 1
h1t = EntalpiaGases(T1t)
Range("N48") = h1t
'Entalpía total de la mezcla en el estado 1
h01t = h1t + c1t ^ 2 / 2000
Range("C12") = h01t
'Presión total de la mezcla en el estado 1
P01t = P1a + Dens1t * c1t ^ 2 / 2000
Range("O47") = P01t
'Entalpía total de la mezcla en el estado 2
h02t = h01t
'Entalpía total de la mezcla en el estado 1
c2t = c4
Tabla 1. (Continuación)
Pseudocódigo
h2t ← h02t - c2t ^ 2 / 2000
Range("I6") ← h2t
SolverOk SetCell: ←"$A$9", MaxMinVal: ←3,
ValueOf: ←"0", _
ByChange: ←"$H$6"
SolverSolve UserFinish: ← verdadero
T2t ← Range("H6")
Dseda ← 1 - (0.63 * 3.141592654 / Zrotort)
Factordeincidencia ← Dseda
SolverOk SetCell: ←"$A$12", MaxMinVal: ←3,
ValueOf: ←"0", _
ByChange: ←"$B$12"
SolverSolve UserFinish: ← verdadero
T02t ← Range("B12")
Yut ← c4ut * u4t / 1000
Yit ← Yut
h05t ← h01t - Yut
Range("C15") ← h05t
SolverOk SetCell: ←"$A$15", MaxMinVal: ←3,
ValueOf: ←"0", _
ByChange: ←"$B$15"
SolverSolve UserFinish: ← verdadero
T05t ← Range("B15")
Ecompresor ← Range("M26")
Eturbinat ← Ecompresor + 0.02
Lenguaje Visual Basic Application
h2t = h02t - c2t ^ 2 / 2000
'Temperatura de la mezcla en el estado 2
Range("I6") = h2t
SolverOk SetCell:="$A$9", MaxMinVal:=3, ValueOf:="0", _
ByChange:="$H$6"
SolverSolve UserFinish:=True
T2t = Range("H6")
'Factor de incidencia del ángulo de entrada de flujo al rotor
Dseda = 1 - (0.63 * 3.141592654 / Zrotort)
Factordeincidencia = Dseda
'Temperatura de la mezcla en el estado 02, T02=T01
SolverOk SetCell:="$A$12", MaxMinVal:=3, ValueOf:="0", _
ByChange:="$B$12"
SolverSolve UserFinish:=True
T02t = Range("B12")
'Salto periférico en la etapa de expansión
Yut = c4ut * u4t / 1000
'Salto interno
Yit = Yut
'Entalpía total de la mezcla en el estado 5
h05t = h01t - Yut
'Temperatura total de la mezcla en el estado 5
Range("C15") = h05t
SolverOk SetCell:="$A$15", MaxMinVal:=3, ValueOf:="0", _
ByChange:="$B$15"
SolverSolve UserFinish:=True
T05t = Range("B15")
'La eficiencia del escalonamiento de expansión se toma 2% superior
al del escalonamiento de compresión
Ecompresor = Range("M26")
Eturbinat = Ecompresor + 0.02
Range("M64") = Eturbina
Tabla 1. (Continuación)
Pseudocódigo
Eturb ← Eturbinat
Yst ← Yut / Eturbinat
yiescalt ← Yst - Yit
h05sst ← h01t - Yst
SolverOk SetCell: ←"$A$18", MaxMinVal: ←3,
ValueOf: ←"0", _
ByChange: ←"$B$18"
SolverSolve UserFinish: ←verdadero
T05sst ← Range("B18")
h5t = h05t - c5t ^ 2 / 2000
Range("C21") ← h5t
SolverOk SetCell: ←"$A$21", MaxMinVal: ←3,
ValueOf: ←"0", _
ByChange: ←"$B$21"
SolverSolve UserFinish: ← verdadero
T5t ← Range("B21")
T5sst ← T05sst - T05t + T5t
h5sst ← EntalpiaGases(T5sst)
Cp5sst ← CpGases(T5sst)
Cv5sst ← CvGases(T5sst)
k5sst ← Cp5sst / Cv5sst
Lenguaje Visual Basic Application
Eturb = Eturbinat
'Salto adiabático e isoentrópico total del escalonamiento de expansión
Yst = Yut / Eturbinat
'Perdidas internas en la turbina
yiescalt = Yst - Yit
'Entalpía en el estado 05ss
h05sst = h01t - Yst
'Temperatura de la mezcla en el estado 05ss
Range("C18") = h05sst
SolverOk SetCell:="$A$18", MaxMinVal:=3, ValueOf:="0", _
ByChange:="$B$18"
SolverSolve UserFinish:=True
T05sst = Range("B18")
'Entalpía de la mezcla en el estado 5
h5t = h05t - c5t ^ 2 / 2000
'Temperatura de la mezcla en el estado 5
Range("C21") = h5t
SolverOk SetCell:="$A$21", MaxMinVal:=3, ValueOf:="0", _
ByChange:="$B$21"
SolverSolve UserFinish:=True
T5t = Range("B21")
'Temperatura en el estado 5ss (ver diagrama h-s)
T5sst = T05sst - T05t + T5t
Range("M51") = T5sst - 273.15
'Entalpía de la mezcla en el estado 5ss
h5sst = EntalpiaGases(T5sst)
Range("N51") = h5sst
'Cálculo de Cp, Cv y K de la mezcla en T5ss
Cp5sst = CpGases(T5sst)
Cv5sst = CvGases(T5sst)
k5sst = Cp5sst / Cv5sst
Tabla 1. (Continuación)
Pseudocódigo
kt ← ((1 * k1t) / 2) + ((1 * k5sst) / 2)
rpt ← (T1t / T5sst) ^ (kt / (kt - 1))
Si (P1a <= (Range("O7") * rpt) + 1) y (P1a >=
(Range("O7") * rpt) - 1) Entonces
Comprobar ← Falso
Salir_Bucle_interno
Fin_Si
Salir_Bucle_externo
Si A2t < A1t y A2t > Act Entonces
P1 ← P1a
P5t ← P1 / rpt
P2t ← Dens2t * (RMezcla * (T2t))
rpdistribuidort ← P1 / P2t
rprotort ← P2t / P5t
Cp2t ← CpGases(T2t)
Cv2t ← CvGases(T2t)
k2t ← Cp2t / Cv2t
kt2 ← ((Cp1t + Cp2t) / 2) / ((Cv1t + Cv2t) / 2)
T2st ← T1t * (P2t / P1) ^ ((k1t - 1) / k1t)
Lenguaje Visual Basic Application
'Relacion de expansion Total
kt = ((1 * k1t) / 2) + ((1 * k5sst) / 2)
rpt = (T1t / T5sst) ^ (kt / (kt - 1))
If (P1a <= (Range("O7") * rpt) + 1) And (P1a >= (Range("O7") * rpt) 1) Then ' Si la condición es verdadera.
Comprobar = False ' Establece el valor a False.
Exit Do ' Sale del bucle interno.
End If
Loop
Loop Until Comprobar = False ' Sale inmediatamente del bucle
externo.
If A2t < A1t And A2t > Act Then
P1 = P1a
Range("O48") = P1
P5t = P1 / rpt
Range("O56") = P5t
'Presión en el estado 2
P2t = Dens2t * (RMezcla * (T2t))
Range("O53") = P2t
'Relación de expansion en el distribuidor
rpdistribuidort = P1 / P2t
'Relación de expansion en el rotor
rprotort = P2t / P5t
'Cálculo de Cp, Cv y K de la mezcla en T2
Cp2t = CpGases(T2t)
Cv2t = CvGases(T2t)
k2t = Cp2t / Cv2t
'Temperatura de la mezcla en el estado 2s
kt2 = ((Cp1t + Cp2t) / 2) / ((Cv1t + Cv2t) / 2)
T2st = T1t * (P2t / P1) ^ ((k1t - 1) / k1t)
Range("M49") = T2st - 273.15
Tabla 1. (Continuación)
Pseudocódigo
h2st ← EntalpiaGases(T2st)
Cp5t ← CpGases(T5t)
Cv5t ← CvGases(T5t)
k5t ← Cp5t / Cv5t
kt3 ← ((Cp2t + Cp5t) / 2) / ((Cv2t + Cv5t) / 2)
T5st ← T2t * (P5t / P2t) ^ ((k2t - 1) / k2t)
h5st ← EntalpiaGases(T5st)
T05st ← T05t - T5t + T5st
h05st ← EntalpiaGases(T05st)
Dens5t ← P5t / (RMezcla * (T5t))
b5t ← 1000000 * (Mgasest) / (3.141592654 * D5t *
c5mt * Dens5t)
Rgasest ← Range("F2")
P05t ← P5t + Dens5t * c5t ^ 2 / 2000
P02t ← P2t + Dens2t * c2t ^ 2 / 2000
Lenguaje Visual Basic Application
'Entalpía de la mezcla en el estado 2s
h2st = EntalpiaGases(T2st)
Range("N49") = h2st
'Cálculo de Cp, Cv y K de la mezcla en T5
Cp5t = CpGases(T5t)
Cv5t = CvGases(T5t)
k5t = Cp5t / Cv5t
'Temperatura de la mezcla en el estado T5s
kt3 = ((Cp2t + Cp5t) / 2) / ((Cv2t + Cv5t) / 2)
T5st = T2t * (P5t / P2t) ^ ((k2t - 1) / k2t)
Range("M55") = T5st - 273.15
'Entalpía de la mezcla en el estado 5s
h5st = EntalpiaGases(T5st)
Range("N55") = h5st
'Temperatura en el estado 05s (ver diagrama h-s)
T05st = T05t - T5t + T5st
Range("M54") = T05st - 273.15
'Entalpía de la mezcla en el estado 05s
h05st = EntalpiaGases(T05st)
Range("N54") = h05st
'Densidad de la mezcla en el estado 5
Dens5t = P5t / (RMezcla * (T5t))
b5t = 1000000 * (Mgasest) / (3.141592654 * D5t * c5mt * Dens5t)
Range("B63") = b5t
'Constante de los gases de escape
Rgasest = Range("F2")
'Presión total en el estado 5
P05t = P5t + Dens5t * c5t ^ 2 / 2000
Range("O57") = P05t
'Presión total en el estado 2
P02t = P2t + Dens2t * c2t ^ 2 / 2000
Range("O52") = P02t
Tabla 1. (Continuación)
Pseudocódigo
CQt ← (4 * Mgasest / Dens5t) / (3.141592654 * ((d4t
/ 1000) ^ 2) * u4t)
CPt ← Yst / (u4t ^ 2 / 2000)
Cpotenciat ← Yut / (u4t ^ 2 / 2000)
h4t ← h2t
GRt ← (h4t - h5t) / (h01t - h05t)
Ns ← (n / 60) * ((Mgasest / dens4t) ^ (1 / 2)) * ((Yst *
1000) ^ (-3 / 4))
Erotort ← (h4t - h5t) / (h4t - h5st)
Edistribuidort ← (h1t - h2t) / (h1t - h2st)
Sino
Escribir ("Debe reasumir Alfa 4")
Fin_Si
Rmint ← r1t
Rmaxt ← d1t
Kespiralt ← 360 / (Log(Rmaxt / Rmint) / (Log(10)))
Lenguaje Visual Basic Application
'Coeficiente de Caudal
CQt = (4 * Mgasest / Dens5t) / (3.141592654 * ((d4t / 1000) ^ 2) * u4t)
'Coeficiente de Presión
CPt = Yst / (u4t ^ 2 / 2000)
'Coeficiente de Potencia
Cpotenciat = Yut / (u4t ^ 2 / 2000)
'Grado de reacción
h4t = h2t
GRt = (h4t - h5t) / (h01t - h05t)
'Número específico de revoluciones del escalonamiento
Ns = (n / 60) * ((Mgasest / dens4t) ^ (1 / 2)) * ((Yst * 1000) ^ (-3 / 4))
'Eficiencia del rotor
Erotort = (h4t - h5t) / (h4t - h5st)
Range("M65") = Erotort
'Eficiencia del Distribuidor
Edistribuidort = (h1t - h2t) / (h1t - h2st)
Range("M66") = Edistribuidort
Else
MsgBox ("Debe reasumir Alfa 4")
End If
'Diseño carcasa
'Radio mínimo de la voluta
Rmint = r1t
Range("B130") = Rmint
'Radio máximo de la voluta
Rmaxt = d1t
Range("B131") = Rmaxt
'Constante de la espiral logarítmica
Kespiralt = 360 / (Log(Rmaxt / Rmint) / (Log(10)))
Range("B132") = Kespiralt
'Diámetro previo de la sección del árbol que soporta la turbina
'Se toma la eficiencia total de la turbina como:
Tabla 1. (Continuación)
Pseudocódigo
Etotalt ← 0.8
Pat ← 1000 * Mgasest * Yst * Etotalt
Tt ← ((60 * Pat) / (2 * 3.141592654 * n))
Ss ←20
dpreviot ← 1000 * ((16 * Tt) / (3.141592654 *
1000000 * Ss)) ^ (1 / 3)
MultiPage1.Visible ← Verdadero
Lenguaje Visual Basic Application
Etotalt = 0.8
'Potencia de accionamiento en Watt
Pat = 1000 * Mgasest * Yst * Etotalt
'Torque transmitido por el árbol
Tt = ((60 * Pat) / (2 * 3.141592654 * n))
Range("B30") = Tt
'Esfuerzo cortante máximo admisible para el árbol en MPa
Ss = 20
'Diámetro previo en mm
dpreviot = 1000 * ((16 * Tt) / (3.141592654 * 1000000 * Ss)) ^ (1 / 3)
Range("B80") = dpreviot
'Para mostrar el formulario multipágina
MultiPage1.Visible = True
Fin_Si
Fin
End If
End Sub
Interfaz de programación entre Microsoft®
Office Excel® y SolidWorks®
Rodete
Sub Prototipo_Rodete_Compresor()
'Se exportan en este módulo las dimensiones obtenidas del rodete del compresor
con su prototipo en SolidWorks
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Set swApp = GetObject(, "SldWorks.Application.21")
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Compresión\Rodete Compresor.SLDPRT", 1, 0, "", longstatus, longwarnings
Dim myDimension As Object
'Longitud del cubo (Lc)
Set myDimension = Part.Parameter("D1@Croquis1_Compresor")
myDimension.SystemValue = Excel.Range("B35") / 1000
'Diámetro del cubo (Dc)
Set myDimension = Part.Parameter("D4@Croquis1_Compresor")
myDimension.SystemValue = Excel.Range("B34") / 1000
'Radio interno (R1=D1/2)
Set myDimension = Part.Parameter("D1@Perfil Vertical Compresor")
myDimension.SystemValue = Excel.Range("B15") / 2000
'Diámetro externo (D2)
Set myDimension = Part.Parameter("D2@Croquis1_Compresor")
myDimension.SystemValue = Excel.Range("B16") / 1000
'Diámetro del árbol
Set myDimension = Part.Parameter("D1@Croquis4_Compresor")
myDimension.SystemValue = Excel.Range("B36") / 1000
'Ancho del álabe a la salida (b2)
Set myDimension = Part.Parameter("D2@Perfil Horizontal Compresor")
myDimension.SystemValue = Excel.Range("B18") / 1000
'Número de álabes
Set myDimension = Part.Parameter("D1@MatrizC1_Compresor")
myDimension.SystemValue = Excel.Range("B23")
'Ángulo de flujo a la entrada (Beta1)
Set myDimension = Part.Parameter("D1@Guia3_Compresor")
myDimension.SystemValue = Excel.Range("B20") * 3.141592654 / 180
'Ángulo de flujo a la salida (Beta2)
Set myDimension = Part.Parameter("D2@Guia3_Compresor")
myDimension.SystemValue = Excel.Range("B22") * 3.141592654 / 180
boolstatus = Part.EditRebuild3()
boolstatus = Part.ForceRebuild3(True)
Part.ShowNamedView2 "*Isométrica", 7
Part.ViewZoomtofit2
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Compresión\Rodete Compresor.SLDDRW", 3, 0, "", longstatus, longwarnings)
End Sub
Difusor
Sub Prototipo_Difusor_con_álabes()
'Se exportan en este módulo las dimensiones obtenidas del difusor con su
prototipo en SolidWorks
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Set swApp = GetObject(, "SldWorks.Application.21")
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Compresión\Difusor con Álabes.SLDPRT", 1, 0, "", longstatus, longwarnings)
Dim myDimension As Object
'Diámetro exterior (D5)
Set myDimension = Part.Parameter("D1@Croquis1_Difusor")
myDimension.SystemValue = Excel.Range("B27") / 1000
'Diámetro de la raíz del álabe (D4)
Set myDimension = Part.Parameter("D2@Croquis2_Difusor")
myDimension.SystemValue = Excel.Range("B26") / 1000
'Ángulo de flujo a la salida (alfa5)
Set myDimension = Part.Parameter("D3@Croquis2_Difusor")
myDimension.SystemValue = Excel.Range("B32") * 3.141592654 / 180
'Ángulo de referencia
Set myDimension = Part.Parameter("D4@Croquis2_Difusor")
myDimension.SystemValue = (Excel.Range("B31") + Excel.Range("B32")) *
3.141592654 / 180
'Ángulo de flujo a la entrada (alfa4)
Set myDimension = Part.Parameter("D5@Croquis2_Difusor")
myDimension.SystemValue = Excel.Range("B31") * 3.141592654 / 180
'Ancho del álabe (b5)
Set myDimension = Part.Parameter("D1@Saliente-Extruir2_Difusor")
myDimension.SystemValue = Excel.Range("B29") / 1000
'Altura del álabe a la salida (b6)
Set myDimension = Part.Parameter("D1@Saliente-Extruir3_Difusor")
myDimension.SystemValue = Excel.Range("B30") / 1000
'Número de álabes
Set myDimension = Part.Parameter("D1@MatrizC1_Difusor")
myDimension.SystemValue = Excel.Range("B33")
'Diámetro interior (D3)
Set myDimension = Part.Parameter("D1@Croquis4_Difusor")
myDimension.SystemValue = Excel.Range("B25") / 1000
'Diámetro soporte
Set myDimension = Part.Parameter("D1@Croquis5_Difusor")
myDimension.SystemValue = (Excel.Range("B27") + (2 * Excel.Range("B30")) + 8)
/ 1000
'Diámetro del árbol
Set myDimension = Part.Parameter("D1@Croquis6_Difusor")
myDimension.SystemValue = Excel.Range("B36") / 1000
boolstatus = Part.EditRebuild3()
boolstatus = Part.ForceRebuild3(True)
Part.ShowNamedView2 "*Isométrica", 7
Part.ViewZoomtofit2
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Compresión\Difusor con Álabes.SLDDRW", 3, 0, "", longstatus, longwarnings)
End Sub
Carcasa compresor
Sub Prototipo_Carcasa_Compresor()
'Se exportan en este módulo las dimensiones obtenidas de la carcasa del
Compresor con su prototipo en SolidWorks
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Set swApp = GetObject(, "SldWorks.Application.21")
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Compresión\Carcasa Compresor.SLDPRT", 1, 0, "", longstatus, longwarnings)
Dim myDimension As Object
'Escalar el modelo original
Set Part = swApp.ActiveDoc
Dim myFeature As Object
Escala = ((Excel.Range("B27") + (2 * Excel.Range("B30"))) / 200)
Set myFeature = Part.FeatureManager.InsertScale(0, True, Escala, Escala,
Escala)
'Ubicación del plano 4
Set myDimension = Part.Parameter("D1@Plano4_Carcasa_Compresor")
myDimension.SystemValue = ((((Excel.Range("B29")) / 2) + 4) / 1000) / Escala
boolstatus = Part.EditRebuild3()
'Extrusión
Set myDimension = Part.Parameter("D2@Saliente-Extruir3_Carcasa_Compresor")
myDimension.SystemValue = ((((Excel.Range("B29")) / 2) + 4) / 1000) / Escala
'Sección para que encaje el difusor de 5 mm
Set myDimension = Part.Parameter("D2@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = (5 / 1000) / Escala
'Sección para que entre el difusor
Set myDimension = Part.Parameter("D10@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = ((Excel.Range("B27") + (2 * Excel.Range("B30")) +
1) / 1000) / Escala
'Ancho para el difusor de 6 mm
Set myDimension = Part.Parameter("D1@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = (6 / 1000) / Escala
'Sección 1 para que entre el rodete
Set myDimension = Part.Parameter("D6@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = ((Excel.Range("B15") + 8) / 1000) / Escala
'Sección 2 para que entre el rodete
Set myDimension = Part.Parameter("D4@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = ((Excel.Range("B16") + 8) / 1000) / Escala
'Longitud para que encaje el cubo
Set myDimension = Part.Parameter("D5@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = (Excel.Range("B35") / 1000) / Escala
'Ancho de corte generado
Set myDimension = Part.Parameter("D3@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = ((((Excel.Range("B29"))) + 1) / 1000) / Escala
'Referencia 1 (10 mm)
Set myDimension = Part.Parameter("D12@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = (10 / 1000) / Escala
'Referencia 2 (8 mm)
Set myDimension = Part.Parameter("D9@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = (8 / 1000) / Escala
'Referencia 3 (20 mm)
Set myDimension = Part.Parameter("D8@Croquis7_Carcasa_Compresor")
myDimension.SystemValue = (20 / 1000) / Escala
boolstatus = Part.EditRebuild3()
boolstatus = Part.ForceRebuild3(True)
Part.ShowNamedView2 "*Isométrica", 7
Part.ViewZoomtofit2
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Compresión\Carcasa Compresor.SLDDRW", 3, 0, "", longstatus, longwarnings)
End Sub
Rotor
Sub Prototipo_Rotor_Turbina()
'Se exportan en este módulo las dimensiones obtenidas del rotor de la turbina con
su prototipo en SolidWorks
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Set swApp = GetObject(, "SldWorks.Application.21")
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Expansión\Rotor Turbina.SLDPRT", 1, 0, "", longstatus, longwarnings)
Dim myDimension As Object
'Longitud del cubo (Lc)
Set myDimension = Part.Parameter("D1@Croquis1_Turbina")
myDimension.SystemValue = Excel.Range("D33") / 1000
'Diámetro del cubo (Dc)
Set myDimension = Part.Parameter("D4@Croquis1_Turbina")
myDimension.SystemValue = Excel.Range("D32") / 1000
'Radio interno (r5=d5/2)
Set myDimension = Part.Parameter("D1@Perfil Vertical Turbina")
myDimension.SystemValue = Excel.Range("D15") / 2000
'Diámetro externo (d4)
Set myDimension = Part.Parameter("D2@Croquis1_Turbina")
myDimension.SystemValue = Excel.Range("D16") / 1000
'Diámetro del árbol
Set myDimension = Part.Parameter("D1@Croquis4_Turbina")
myDimension.SystemValue = Excel.Range("D34") / 1000
'Ancho del álabe a la entrada (b4)
Set myDimension = Part.Parameter("D2@Perfil Horizontal Turbina")
myDimension.SystemValue = Excel.Range("D18") / 1000
'Número de álabes
Set myDimension = Part.Parameter("D1@MatrizC1_Turbina")
myDimension.SystemValue = Excel.Range("D23")
'Ángulo de flujo a la entrada (Beta4)
Set myDimension = Part.Parameter("D2@Guia3_Turbina")
myDimension.SystemValue = Excel.Range("D22") * 3.141592654 / 180
'Ángulo de flujo a la salida (Beta5)
Set myDimension = Part.Parameter("D1@Guia3_Turbina")
myDimension.SystemValue = Excel.Range("D20") * 3.141592654 / 180
boolstatus = Part.EditRebuild3()
boolstatus = Part.ForceRebuild3(True)
Part.ShowNamedView2 "*Isométrica", 7
Part.ViewZoomtofit2
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Expansión\Rotor Turbina.SLDDRW", 3, 0, "", longstatus, longwarnings)
End Sub
Distribuidor de entrada
Sub Prototipo_Distribuidor_de_entrada()
'Se exportan en este módulo las dimensiones obtenidas del distribuidor con su
prototipo en SolidWorks
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Set swApp = GetObject(, "SldWorks.Application.21")
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Expansión\Distribuidor de entrada.SLDPRT", 1, 0, "", longstatus, longwarnings)
Dim myDimension As Object
'Diámetro exterior (d1)
Set myDimension = Part.Parameter("D1@Croquis1_Distribuidor")
myDimension.SystemValue = Excel.Range("D27") / 1000
'Diámetro de la raíz del álabe (d2)
Set myDimension = Part.Parameter("D1@Croquis2_Distribuidor")
myDimension.SystemValue = Excel.Range("D26") / 1000
'Ángulo de flujo a la salida (alfa2)
Set myDimension = Part.Parameter("D2@Croquis2_Distribuidor")
myDimension.SystemValue = Excel.Range("D30") * 3.141592654 / 180
'Ancho del álabe (b1)
Set myDimension = Part.Parameter("D1@Saliente-Extruir2_Distribuidor")
myDimension.SystemValue = Excel.Range("D29") / 1000
'Número de álabes
Set myDimension = Part.Parameter("D1@MatrizC1_Distribuidor")
myDimension.SystemValue = Excel.Range("D31")
'Diámetro interior (d3)
Set myDimension = Part.Parameter("D1@Croquis3_Distribuidor")
myDimension.SystemValue = Excel.Range("D25") / 1000
'Diámetro del árbol
Set myDimension = Part.Parameter("D1@Croquis4_Distribuidor")
myDimension.SystemValue = Excel.Range("D34") / 1000
boolstatus = Part.EditRebuild3()
boolstatus = Part.ForceRebuild3(True)
Part.ShowNamedView2 "*Isométrica", 7
Part.ViewZoomtofit2
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Expansión\Distribuidor de entrada.SLDDRW", 3, 0, "", longstatus, longwarnings)
End Sub
Carcasa turbina
Sub Prototipo_Carcasa_Turbina()
'Se exportan en este módulo las dimensiones obtenidas de la carcasa de la
Turbina con su prototipo en SolidWorks
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Set swApp = GetObject(, "SldWorks.Application.21")
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Expansión\Carcasa Turbina.SLDPRT", 1, 0, "", longstatus, longwarnings)
Dim myDimension As Object
'Escalar el modelo original
Dim myFeature As Object
Escala = ((Excel.Range("D27")) / 200)
Set myFeature = Part.FeatureManager.InsertScale(0, True, Escala, Escala,
Escala)
'Ubicación del plano 5
Set myDimension = Part.Parameter("D1@Plano5_Carcasa_Turbina")
myDimension.SystemValue = (((Excel.Range("D29")) / 2) + 4) / 1000 / Escala
boolstatus = Part.EditRebuild3()
'Extrusión
Set myDimension = Part.Parameter("D2@Saliente-Extruir3_Carcasa_Turbina")
myDimension.SystemValue = (((Excel.Range("D29")) / 2) + 4) / 1000 / Escala
'Sección para que encaje el distribuidor de 5 mm
Set myDimension = Part.Parameter("D2@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (5 / 1000) / Escala
'Sección para que entre el distribuidor
Set myDimension = Part.Parameter("D5@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (Excel.Range("D27") + 1) / 1000 / Escala
'Ancho para el distribuidor de 6 mm
Set myDimension = Part.Parameter("D1@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (6 / 1000) / Escala
'Sección 1 para que entre el rotor
Set myDimension = Part.Parameter("D10@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (Excel.Range("D15") + 8) / 1000 / Escala
'Sección 2 para que entre el rotor
Set myDimension = Part.Parameter("D6@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (Excel.Range("D16") + 8) / 1000 / Escala
'Longitud para que encaje el cubo
Set myDimension = Part.Parameter("D7@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = Excel.Range("D33") / 1000 / Escala
'Ancho de corte generado
Set myDimension = Part.Parameter("D4@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (((Excel.Range("D29"))) + 1) / 1000 / Escala
'Referencia 1 (10 mm)
Set myDimension = Part.Parameter("D12@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (10 / 1000) / Escala
'Referencia 2 (8 mm)
Set myDimension = Part.Parameter("D13@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (8 / 1000) / Escala
'Referencia 3 (15 mm)
Set myDimension = Part.Parameter("D11@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (15 / 1000) / Escala
'Referencia 4 (3 mm)
Set myDimension = Part.Parameter("D14@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (3 / 1000) / Escala
'Referencia 5 (20 mm)
Set myDimension = Part.Parameter("D8@Croquis9_Carcasa_Turbina")
myDimension.SystemValue = (20 / 1000) / Escala
boolstatus = Part.EditRebuild3()
boolstatus = Part.ForceRebuild3(True)
Part.ShowNamedView2 "*Isométrica", 7
Part.ViewZoomtofit2
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Etapa de
Expansión\Carcasa Turbina.SLDDRW", 3, 0, "", longstatus, longwarnings)
End Sub
Árbol turbocompresor
Sub Árbol()
' Árbol Macro
'Se exportan en este módulo las dimensiones obtenidas para el árbol del
turbocompresor a su prototipo en SolidWorks
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dec = Range("B36")
Det = Range("D34")
If Dec >= Det Then
Descalon = Dec + 6
Else
Descalon = Det + 6
End If
Set swApp = GetObject(, "SldWorks.Application.21")
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Árbol\Árbol
Turbocompresor.SLDPRT", 1, 0, "", longstatus, longwarnings)
Dim myDimension As Object
'Longitud entre rodete y rotor Set myDimension =
Part.Parameter("D1@Croquis1_Arbol")
myDimension.SystemValue = Excel.Range("D35") / 1000
'Longitud extremo compresor
Set myDimension = Part.Parameter("D4@Croquis1_Arbol")
myDimension.SystemValue = (Excel.Range("B35") + 15) / 1000
'Longitud extremo turbina
Set myDimension = Part.Parameter("D5@Croquis1_Arbol")
myDimension.SystemValue = (Excel.Range("D33") + 15) / 1000
'Diámetro del extremo del árbol que sostiene el compresor
Set myDimension = Part.Parameter("D2@Croquis1_Arbol")
myDimension.SystemValue = Excel.Range("B36") / 1000
'Diámetro del extremo del árbol que sostiene la turbina
Set myDimension = Part.Parameter("D3@Croquis1_Arbol")
myDimension.SystemValue = Excel.Range("D34") / 1000
'Diámetro del escalón restante
Set myDimension = Part.Parameter("D6@Croquis1_Arbol")
myDimension.SystemValue = Descalon / 1000
boolstatus = Part.EditRebuild3()
boolstatus = Part.ForceRebuild3(True)
Part.ShowNamedView2 "*Isométrica", 7
Part.ViewZoomtofit2
Set Part =
swApp.OpenDoc6("C:\Users\Estudiante\Desktop\Turbocompresor\Árbol\Árbol
Turbocompresor.SLDDRW", 3, 0, "", longstatus, longwarnings)
End Sub
Resultados aplicación
Figura 1. Características del motor a turboalimentar.
Figura 2. Características para dimensionar la etapa de compresión.
Figura 3. Parámetros termodinámicos en la etapa de compresión.
Figura 4. Triángulos de velocidad en la admisión y descarga del rodete.
Figura 5. Potencias, pérdidas y eficiencias en la etapa de compresión.
Figura 6. Dimensiones rodete y difusor.
Figura 7. Dimensiones carcasa etapa de compresión.
Figura 8. Diagrama h-s etapa de compresión.
Figura 9. Características para dimensionar la etapa de expansión.
Figura 10. Parámetros termodinámicos en la etapa de expansión.
Figura 11. Triángulos de velocidad en la admisión y descarga del rotor.
Figura 12. Potencias, pérdidas y eficiencias en la etapa de expansión.
Figura 13. Dimensiones rotor y distribuidor.
Figura 14. Dimensiones carcasa etapa de expansión.
Figura 15. Diagrama h-s etapa de expansión.
A
A
SI NO SE INDICA LO CONTRARIO:
LAS COTAS SE EXPRESAN EN MM
ACABADO SUPERFICIAL:
TOLERANCIAS:
LINEAL:
ANGULAR:
NOMBRE
REBARBAR Y
ROMPER ARISTAS
VIVAS
ACABADO:
FIRMA
FECHA
NO CAMBIE LA ESCALA
REVISIÓN
TÍTULO:
Carcasa Compresor
DIBUJ.
VERIF.
APROB.
FABR.
SECCIÓN A-A
ESCALA 1 : 2
CALID.
MATERIAL:
A3
N.º DE DIBUJO
A. aluminio 7075-T6
PESO:
ESCALA:1:1
HOJA 1 DE 1
A
A
SI NO SE INDICA LO CONTRARIO:
LAS COTAS SE EXPRESAN EN MM
ACABADO SUPERFICIAL:
TOLERANCIAS:
LINEAL:
ANGULAR:
NOMBRE
REBARBAR Y
ROMPER ARISTAS
VIVAS
ACABADO:
FIRMA
FECHA
NO CAMBIE LA ESCALA
REVISIÓN
TÍTULO:
Carcasa Turbina
DIBUJ.
VERIF.
APROB.
FABR.
SECCIÓN A-A
ESCALA 1 : 2
CALID.
MATERIAL:
A3
N.º DE DIBUJO
Acero aleado 1.5810
PESO:
ESCALA:1:1
HOJA 1 DE 1
5,60
2
3
133,90
R66,45
R64,45
84,11
76,96
7,01
3
10,67
SI NO SE INDICA LO CONTRARIO:
LAS COTAS SE EXPRESAN EN MM
ACABADO SUPERFICIAL:
TOLERANCIAS:
LINEAL:
ANGULAR:
NOMBRE
REBARBAR Y
ROMPER ARISTAS
VIVAS
ACABADO:
FIRMA
FECHA
NO CAMBIE LA ESCALA
REVISIÓN
TÍTULO:
Difusor con Álabes
DIBUJ.
VERIF.
APROB.
FABR.
CALID.
MATERIAL:
A3
N.º DE DIBUJO
A. aluminio 7075-T6
PESO:
ESCALA:1:1
HOJA 1 DE 1
3
R63,08
70°
R2
85,64
8,30
3
10,46
6
SI NO SE INDICA LO CONTRARIO:
LAS COTAS SE EXPRESAN EN MM
ACABADO SUPERFICIAL:
TOLERANCIAS:
LINEAL:
ANGULAR:
NOMBRE
REBARBAR Y
ROMPER ARISTAS
VIVAS
ACABADO:
FIRMA
FECHA
NO CAMBIE LA ESCALA
REVISIÓN
TÍTULO:
Distribuidor de entrada
DIBUJ.
VERIF.
APROB.
FABR.
CALID.
MATERIAL:
A3
N.º DE DIBUJO
Acero aleado 1.5810
PESO:
ESCALA:1:1
HOJA 1 DE 1
4,65
2
20,25
34,41
76,46
5
47,55
3
7,01
SI NO SE INDICA LO CONTRARIO:
LAS COTAS SE EXPRESAN EN MM
ACABADO SUPERFICIAL:
TOLERANCIAS:
LINEAL:
ANGULAR:
NOMBRE
REBARBAR Y
ROMPER ARISTAS
VIVAS
ACABADO:
FIRMA
FECHA
NO CAMBIE LA ESCALA
REVISIÓN
TÍTULO:
Rodete Compresor
DIBUJ.
VERIF.
APROB.
FABR.
CALID.
MATERIAL:
A3
N.º DE DIBUJO
A. aluminio 7075-T6
PESO:
ESCALA:1:1
HOJA 1 DE 1
10,46
2
13,90
30,59
76,46
5
54
3
8,30
SI NO SE INDICA LO CONTRARIO:
LAS COTAS SE EXPRESAN EN MM
ACABADO SUPERFICIAL:
TOLERANCIAS:
LINEAL:
ANGULAR:
NOMBRE
REBARBAR Y
ROMPER ARISTAS
VIVAS
ACABADO:
FIRMA
FECHA
NO CAMBIE LA ESCALA
REVISIÓN
TÍTULO:
Rotor Turbina
DIBUJ.
VERIF.
APROB.
FABR.
CALID.
MATERIAL:
A3
N.º DE DIBUJO
Acero aleado 1.5810
PESO:
ESCALA:1:1
HOJA 1 DE 1
20,30
14,30
10
49,41
45,59
122,34
7,01
8,30
217,34
SI NO SE INDICA LO CONTRARIO:
LAS COTAS SE EXPRESAN EN MM
ACABADO SUPERFICIAL:
TOLERANCIAS:
LINEAL:
ANGULAR:
NOMBRE
REBARBAR Y
ROMPER ARISTAS
VIVAS
ACABADO:
FIRMA
FECHA
NO CAMBIE LA ESCALA
REVISIÓN
TÍTULO:
Árbol Turbocompresor
DIBUJ.
VERIF.
APROB.
FABR.
CALID.
MATERIAL:
A3
N.º DE DIBUJO
Acero AISI 4340
PESO:
ESCALA:1:1
HOJA 1 DE 1
Combustible
X
Y
CXHY
Mproductos
12
26
28,71763154
PCI [kJ/kg]
43200
AC
R [kJ/kg.K]
20,9744
0,28952
a0
a1
a2
a3
a4
a5
a6
T2 [K]
h2 [kJ/kg]
-155,4923216
30,81906063
-0,004816474
1,16546E-05
-7,57818E-09
2,29635E-12
-2,74874E-16
665,626179
712,110
Gas
CO2
H20
N2
O2
Σ
Fracción molar
Fracción masa
0,09242
0,10013
0,75045
0,05700
1,00000
0,14164
0,06281
0,73204
0,06351
1,00000
Función
MOTOR
2,47348E-07
Función
T02=T01 [K]
h01=h02 [kJ/kg]
2,42646E-07
706,3595502
759,160
Función
T05 [K]
h05 [kJ/kg]
2,2578E-07
615,8546492
655,290
Función
T05ss [K]
h05ss [kJ/kg]
2,20396E-07
599,9255377
637,260
Función
T5 [K]
h5 [kJ/kg]
2,24223E-07
610,9936894
649,780
Yscomp [kJ/kg]
Ysturb [kJ/kg]
49,180
119,180
A01c [mm^2]
A01t [mm^2]
2583,01
4775,32
nTurbocompresor
90000,0000
2,2443
Torque
DIMENSIONES
Etapa de Compresión
WMáx. motor
Exceso de aire
Cilindrada
Efic. mel motor
Tescape [°C]
nmotor
Maire [kg/s]
Mcomb [kg/s]
Condiciones
locales
162,0
0,40
12000,0
0,38
406,5
1000,0
0,20698
0,00987
Tatm [°C]
Patm [kPa]
25
101,325
Rodete
D1 [mm]
D2 [mm]
b1 [mm]
b2 [mm]
α1 [°]
β1 [°]
α2 [°]
β2 [°]
Zrodete
Difusor
D3 [mm]
D4 [mm]
D5 [mm]
b4 [mm]
b5 [mm]
b6 [mm]
α4 [°]
α5 [°]
Zdifusor [-]
Dc [mm]
Lc [mm]
De [mm]
47,55
76,46
9,73
4,67
90,00
30,00
34,02
37,49
15
76,96
84,11
114,70
4,67
4,67
5,60
37,02
38,00
25
20,25
34,41
7,01
DIMENSIONES
Etapa de Expansión
Rotor
d5 [mm]
d4 [mm]
b5 [mm]
b4 [mm]
34,76
76,46
33,21
10,46
α5 [°]
β5 [°]
α4 [°]
β4 [°]
Zrotor [-]
Distribuidor
d3 [mm]
d2 [mm]
d1 [mm]
b2 [mm]
b1 [mm]
α2 [°]
Zdistribuidor [-]
dc [mm]
Lc [mm]
de [mm]
Longitud [mm]
76,96
85,64
126,17
10,46
10,46
70,00
12
13,90
30,59
8,30
122,34
r0=RMín [mm]
RMáx [mm]
k [°]
62,9504
120,2984
1279,9498
0,00
57,36
70,00
34,48
14
θMáx [°]
θMín [°]
360
0
Carcasa Compresor
Corrdenadas Polares
Coordenadas cartesianas
rθ [mm]
Theta (θ) [°]
x [mm]
Y [mm]
0
62,95
0,00
-62,95
10
64,09
-11,13
-63,12
20
65,26
-22,32
-61,32
30
66,44
-33,22
-57,54
40
67,65
-43,48
-51,82
50
68,88
-52,76
-44,27
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
320
330
340
350
360
70,13
71,40
72,69
74,01
75,36
76,73
78,12
79,54
80,98
82,45
83,95
85,47
87,02
88,60
90,21
91,85
93,51
95,21
96,94
98,70
100,49
102,32
104,17
106,06
107,99
109,95
111,95
113,98
116,05
118,15
120,30
-60,73
-67,09
-71,59
-74,01
-74,21
-72,10
-67,65
-60,93
-52,05
-41,23
-28,71
-14,84
0,00
15,39
30,85
45,92
60,11
72,94
83,95
92,75
98,97
102,32
102,59
99,67
93,52
84,23
71,96
56,99
39,69
20,52
0,00
-35,06
-24,42
-12,62
0,00
13,09
26,24
39,06
51,12
62,03
71,40
78,88
84,17
87,02
87,26
84,77
79,54
71,64
61,20
48,47
33,76
17,45
0,00
-18,09
-36,28
-53,99
-70,67
-85,76
-98,71
-109,05
-116,36
-120,30
r0=RMín [mm]
RMáx [mm]
k [°]
63,0827
126,1655
1195,8941
θMáx [°]
θMín [°]
360
0
Carcasa Turbina
Corrdenadas Polares
Coordenadas cartesianas
rγ [mm]
Gamma (γ) [°]
x [mm]
Y [mm]
0
63,08
0,00
63,08
10
64,31
11,17
63,33
20
65,56
22,42
61,61
30
66,83
33,42
57,88
40
68,13
43,80
52,19
50
69,46
53,21
44,65
60
70,81
61,32
35,40
70
72,18
67,83
24,69
80
73,59
72,47
12,78
90
75,02
75,02
0,00
100
76,48
75,31
-13,28
110
77,96
73,26
-26,67
120
79,48
68,83
-39,74
130
81,02
62,07
-52,08
140
82,60
53,09
-63,27
150
84,21
42,10
-72,92
160
85,84
29,36
-80,67
170
87,51
15,20
-86,18
180
89,21
0,00
-89,21
190
90,95
-15,79
-89,57
200
92,71
-31,71
-87,12
210
94,52
-47,26
-81,85
220
96,35
-61,94
-73,81
230
98,23
-75,25
-63,14
240
100,14
-86,72
-50,07
250
260
270
280
290
300
310
320
330
340
350
360
102,08
104,07
106,09
108,15
110,26
112,40
114,59
116,81
119,08
121,40
123,76
126,17
-95,93
-102,49
-106,09
-106,51
-103,61
-97,34
-87,78
-75,09
-59,54
-41,52
-21,49
0,00
-34,91
-18,07
0,00
18,78
37,71
56,20
73,65
89,48
103,13
114,08
121,88
126,17
Etapa de Compresión
Estado
0r
1s
1r
01r
2s, 3s, 4s
5ss
05ss
02s, 03s, 04s
2r, 3r, 4r
5s
05s
02r, 03r, 04r
5r
05r
Etapa de Compresión
Temperatura [°C] Entalpia [kJ/kg]
25,000
298,340
16,490
289,800
16,660
289,970
25,000
298,340
50,886
324,345
64,078
337,623
73,894
347,513
80,550
354,223
57,334
330,833
70,782
344,377
80,550
354,223
83,734
357,440
73,970
347,590
83,734
357,440
Eficiencias
Escalonamiento
0,8321
Rodete
0,8412
Difusor
0,8084
Presión [kPa]
101,325
91,560
91,560
100,770
135,325
155,650
172,143
177,230
135,325
155,650
172,143
177,230
155,650
172,143
Etapa de Expansión
Estado
01r
1
2s, 3s, 4s
05ss
5ss
02r, 03r, 04r
2r, 3r, 4r
05s
5s
5r
05r
0
Etapa de Expansión
Temperatura [°C] Entalpia [kJ/kg]
433,210
759,160
406,453
728,200
392,365
711,982
326,776
637,260
321,910
631,773
433,210
759,160
392,476
712,110
327,430
638,004
322,573
632,516
337,844
649,780
342,705
655,290
25,000
298,340
Eficiencias
Escalonamiento
0,8521
Presión [kPa]
195,968
169,330
155,910
103,980
100,840
193,980
155,910
103,980
100,840
100,840
103,980
101,325
Rotor
Distribuidor
0,7830
0,9924
Carcasa Compresor
100
50
0
-80
-60
-40
-20
0
20
Eje Y
-100
-50
-100
-150
Eje X
40
60
80
100
120
Carcasa Turbina
200
150
100
Eje Y
50
0
-150
-100
-50
0
-50
-100
Eje X
-150
50
100
Eje X
-150
Informe de resultados dimensionales obtenidos del módulo TurboMecTR 1.0
TurboMecTR 1.0
DIMENSIONES
Etapa de Compresión
Etapa de Expansión
Rodete
Rotor
D1 [mm]
d5 [mm]
47,55
34,76
D2 [mm]
d4 [mm]
76,46
76,46
b1 [mm]
b5 [mm]
9,73
33,21
b2 [mm]
b4 [mm]
4,67
10,46
α5 [°]
α1 [°]
90,00
0,00
β1 [°]
β
5
[°]
30,00
57,36
α2 [°]
α4 [°]
34,02
70,00
β2 [°]
β4 [°]
37,49
34,48
Zrodete [-]
Zrotor [-]
15,00
14,00
Difusor
Distribuidor
D3 [mm]
d3 [mm]
76,96
76,96
D4 [mm]
d2 [mm]
84,11
85,64
D5 [mm]
d1 [mm]
114,70
126,17
b4 [mm]
b
2
[mm]
4,67
10,46
b5 [mm]
b1 [mm]
4,67
10,46
b6 [mm]
α2 [°]
5,60
70,00
α4 [°]
Zdistribuidor [-]
37,02
12,00
α5 [°]
dc [mm]
38,00
13,90
Zdifusor [-]
L
C
[mm]
25,00
30,59
Prototipos
Etapa de compresión
Etapa de expansión
Árbol
Dc [mm]
LC [mm]
De [mm]
20,25
34,41
7,01
de [mm]
Lrodete→rotor
[mm]
8,30
122,34
1.0
Árbol
TurboMecTR 1.0
Pasos
1
2
3
Descargar