Upload
others
View
16
Download
0
Embed Size (px)
Citation preview
DIAGRAMA DE FLUJO CARACTERÍSTICAS
PRINCIPALES DEL MOTOR
Figura 1. Diagrama de flujo características principales del motor.
1
START
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 Lenguaje Visual Basic Application
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
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 Lenguaje Visual Basic Application 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
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 Lenguaje Visual Basic Application 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
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 Lenguaje Visual Basic Application
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
'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 Lenguaje Visual Basic Application 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 "
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 Lenguaje Visual Basic Application 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
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 Lenguaje Visual Basic Application 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
'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 Lenguaje Visual Basic Application 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
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 Lenguaje Visual Basic Application 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
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 y térmicos de la etapa de compresión del
turbocompresor.
Figura 2. Diagrama de flujo para la etapa de compresión.
1
START
2
Figura 2. (Continuación)
1
3
2
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.12523733E-13 * 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 Lenguaje Visual Basic Application 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.69611962E-12 * 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.88572329E-15 * (Temperatura) ^ 5 + 1.49497119E-18 * (Temperatura) ^ 6 Fin_Función
'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 Lenguaje Visual Basic Application 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]")
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 Lenguaje Visual Basic Application 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)
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 Lenguaje Visual Basic Application h1asums ← h0 - ((h0 - h1asum) / Eadm) T1asums ← Temperatura(h1asums) - 273.15 katm ← k(T0 + 273.15) P1asum ← P0 / (((T0 + 273.15) / (T1asums + 273.15)) ^ ((katm) / (katm - 1))) dens1asum ← P1asum / (0.287 * (T1a + 273.15)) rp0 ← 0.516362598 - 0.0111730348 * (T0 + 273.15) + 0.0000992904876 * (T0 + 273.15) ^ 2 - 0.000000448195469 * (T0 + 273.15) ^ 3 + 1.37028207E-09 * (T0 + 273.15) ^ 4 - 1.85656226E-12 * (T0 + 273.15) ^ 5 + 1.09593166E-15 * (T0 + 273.15) ^ 6 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 - 0.435713688 * rpt ^ 6 - 273.15 h05ss ← Entalpia(T05ss + 273.15)
Ys ← h05ss - h00 Ma ← Range("F17") S ← 2.108 * (nc / 60) * ((Ma / dens1asum) ^ (1 / 2)) * ((Ys * 1000) ^ (-3 / 4))
'Entalpía en 1 isoentrópica h1asums = h0 - ((h0 - h1asum) / Val(Eadm.Text)) 'Temperatura en 1 isoentrópica T1asums = Temperatura(h1asums) - 273.15 'Relación de calores específicos a temperatura atmosférica katm = k(T0 + 273.15) 'Presión en 1 hallada a partir de T1 asumida P1asum = P0 / (((T0 + 273.15) / (T1asums + 273.15)) ^ ((katm) / (katm - 1))) 'Densidad hallada a partir de las suposiciones de presión y temperatura en 1 dens1asum = P1asum / (0.287 * (T1a + 273.15)) 'Relación de compresión para el aire a la temperatura atmosférica rp0 = 0.516362598 - 0.0111730348 * (T0 + 273.15) + 0.0000992904876 * ((T0 + 273.15) ^ 2) - 0.000000448195469 * ((T0 + 273.15) ^ 3) + 1.37028207E-09 * ((T0 + 273.15) ^ 4) - 1.85656226E-12 * ((T0 + 273.15) ^ 5) + 1.09593166E-15 * ((T0 + 273.15) ^ 6) 'Relación de compresión total rpt = rp0 * Val(rpcom.Text) T05ss = 130.848652 + 262.552298 * rpt - 199.883979 * rpt ^ 2 + 109.932445 * rpt ^ 3 - 35.7959869 * rpt ^ 4 + 6.18565872 * rpt ^ 5 - 0.435713688 * rpt ^ 6 - 273.15 Range("M13") = T05ss h05ss = Entalpia(T05ss + 273.15) Range("N13") = h05ss 'Salto adiabático e isoentrópico total del escalonamiento de compresión Ys = h05ss - h00 'Flujo de aire que entra al compresor Ma = Range("F17") 'Número específico de revoluciones del escalonamiento S = 2.108 * (nc / 60) * ((Ma / dens1asum) ^ (1 / 2)) * ((Ys * 1000) ^ (-3 / 4))
Tabla 1. (Continuación)
Pseudocódigo Lenguaje Visual Basic Application 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)
'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 Lenguaje Visual Basic Application 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)
'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 Lenguaje Visual Basic Application 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
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 Lenguaje Visual Basic Application 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
'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 Lenguaje Visual Basic Application 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)
'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 Lenguaje Visual Basic Application 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)
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 Lenguaje Visual Basic Application 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
'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 Lenguaje Visual Basic Application 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)
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 Lenguaje Visual Basic Application Sino Rmax ← ((D5 / 2) + b6) + (0.62 * D5) Fin_Si
Kespiral ← 360 / (Log(Rmax / Rmin) / (Log(10)))
A01 ← (3.141592654 / 4) * ((Rmax - Rmin) ^ 2) 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
Else Rmax = ((D5 / 2) + b6) + (0.62 * D5) End If Range("B85") = Rmax 'Constante de la espiral logarítmica Kespiral = 360 / (Log(Rmax / Rmin) / (Log(10))) Range("B86") = Kespiral 'Área de salida de la carcasa A01 = (3.141592654 / 4) * ((Rmax - Rmin) ^ 2) Range("B26") = A01 '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.
1
START
3
Figura 2. (Continuación)
1
2 47
Figura 2. (Continuación)
2
5
3 4
Figura 2. (Continuación)
5
6
Figura 2. (Continuación)
6
8
7
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 Función CpGases(Temperatura) es un número doble CpGases ← ((Range("I10")) * (0.40159441 + 0.00200673361 * Temperatura - 0.00000196595303 * Temperatura ^ 2 + 4.04211052E-10 * Temperatura ^ 3 + 1.46725948E-12 * Temperatura ^ 4 - 1.60209189E-15 * Temperatura ^ 5 + 5.22234075E-19 * Temperatura ^ 6)) + ((Range("I11")) * 1.8723) + ((Range("I12")) * (0.974232551 + 0.000873771816 * Temperatura - 0.00000449546695 * Temperatura ^ 2 + 1.08865491E-08 * Temperatura ^ 3 - 1.2707702E-11 * Temperatura ^ 4 + 7.3119086E-15 * Temperatura ^ 5 - 1.67626929E-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-15 * Temperatura ^ 5 - 8.01644553E-19 * Temperatura ^ 6)) Fin_Función
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 As Currency, Dseda As Currency, Rgasest As Currency, Zrotort As Integer, Zdistribuidort As Integer, Comprobar, P1a 'Funciones empleadas en el algoritmo 'Determinación del Cp de la mezcla de gases Function CpGases(Temperatura) As Double CpGases = ((Range("I10")) * (0.40159441 + 0.00200673361 * Temperatura - 0.00000196595303 * Temperatura ^ 2 + 4.04211052E-10 * Temperatura ^ 3 + 1.46725948E-12 * Temperatura ^ 4 - 1.60209189E-15 * Temperatura ^ 5 + 5.22234075E-19 * Temperatura ^ 6)) + ((Range("I11")) * 1.8723) + ((Range("I12")) * (0.974232551 + 0.000873771816 * Temperatura - 0.00000449546695 * Temperatura ^ 2 + 1.08865491E-08 * Temperatura ^ 3 - 1.2707702E-11 * Temperatura ^ 4 + 7.3119086E-15 * Temperatura ^ 5 - 1.67626929E-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-15 * Temperatura ^ 5 - 8.01644553E-19 * Temperatura ^ 6)) End Function
Tabla 1. (Continuación)
Pseudocódigo Lenguaje Visual Basic Application 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.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)) 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.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
'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 Lenguaje Visual Basic Application + 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 ^ 3 - 1.20243491E-08 * 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]")
^ 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 Lenguaje Visual Basic Application
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
'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 Lenguaje Visual Basic Application 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))
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 Lenguaje Visual Basic Application 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))
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 Lenguaje Visual Basic Application 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
'Á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 Lenguaje Visual Basic Application 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
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 Lenguaje Visual Basic Application 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
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 Lenguaje Visual Basic Application 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)
'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 Lenguaje Visual Basic Application 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
'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 Lenguaje Visual Basic Application
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)))
'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 Lenguaje Visual Basic Application
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 Fin_Si Fin
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 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.
AA
SECCIÓN A-A ESCALA 1 : 2 A. aluminio 7075-T6
Carcasa Compresor
PESO:
A3
HOJA 1 DE 1ESCALA:1:1
N.º DE DIBUJO
TÍTULO:
REVISIÓNNO CAMBIE LA ESCALA
MATERIAL:
FECHAFIRMANOMBRE
REBARBAR Y ROMPER ARISTAS VIVAS
ACABADO:SI NO SE INDICA LO CONTRARIO:LAS COTAS SE EXPRESAN EN MMACABADO SUPERFICIAL:TOLERANCIAS: LINEAL: ANGULAR:
CALID.
FABR.
APROB.
VERIF.
DIBUJ.
AA
SECCIÓN A-A ESCALA 1 : 2 Acero aleado 1.5810
Carcasa Turbina
PESO:
A3
HOJA 1 DE 1ESCALA:1:1
N.º DE DIBUJO
TÍTULO:
REVISIÓNNO CAMBIE LA ESCALA
MATERIAL:
FECHAFIRMANOMBRE
REBARBAR Y ROMPER ARISTAS VIVAS
ACABADO:SI NO SE INDICA LO CONTRARIO:LAS COTAS SE EXPRESAN EN MMACABADO SUPERFICIAL:TOLERANCIAS: LINEAL: ANGULAR:
CALID.
FABR.
APROB.
VERIF.
DIBUJ.
2
76,96
133,90
5,6
0
R64,45 R66,45
7,01
84,11
10,67
3
3
A. aluminio 7075-T6
Difusor con Álabes
PESO:
A3
HOJA 1 DE 1ESCALA:1:1
N.º DE DIBUJO
TÍTULO:
REVISIÓNNO CAMBIE LA ESCALA
MATERIAL:
FECHAFIRMANOMBRE
REBARBAR Y ROMPER ARISTAS VIVAS
ACABADO:SI NO SE INDICA LO CONTRARIO:LAS COTAS SE EXPRESAN EN MMACABADO SUPERFICIAL:TOLERANCIAS: LINEAL: ANGULAR:
CALID.
FABR.
APROB.
VERIF.
DIBUJ.
R63,08
8,30
R2
70°
85,64
10,46 6
3
3
Acero aleado 1.5810
Distribuidor de entrada
PESO:
A3
HOJA 1 DE 1ESCALA:1:1
N.º DE DIBUJO
TÍTULO:
REVISIÓNNO CAMBIE LA ESCALA
MATERIAL:
FECHAFIRMANOMBRE
REBARBAR Y ROMPER ARISTAS VIVAS
ACABADO:SI NO SE INDICA LO CONTRARIO:LAS COTAS SE EXPRESAN EN MMACABADO SUPERFICIAL:TOLERANCIAS: LINEAL: ANGULAR:
CALID.
FABR.
APROB.
VERIF.
DIBUJ.
76,46
20,25
7,01
47,55
2
4,6
5
34,41
3
5
A. aluminio 7075-T6
Rodete Compresor
PESO:
A3
HOJA 1 DE 1ESCALA:1:1
N.º DE DIBUJO
TÍTULO:
REVISIÓNNO CAMBIE LA ESCALA
MATERIAL:
FECHAFIRMANOMBRE
REBARBAR Y ROMPER ARISTAS VIVAS
ACABADO:SI NO SE INDICA LO CONTRARIO:LAS COTAS SE EXPRESAN EN MMACABADO SUPERFICIAL:TOLERANCIAS: LINEAL: ANGULAR:
CALID.
FABR.
APROB.
VERIF.
DIBUJ.
76,46 13,90
8,30 54
2
10,
46
30,59
3
5
Acero aleado 1.5810
Rotor Turbina
PESO:
A3
HOJA 1 DE 1ESCALA:1:1
N.º DE DIBUJO
TÍTULO:
REVISIÓNNO CAMBIE LA ESCALA
MATERIAL:
FECHAFIRMANOMBRE
REBARBAR Y ROMPER ARISTAS VIVAS
ACABADO:SI NO SE INDICA LO CONTRARIO:LAS COTAS SE EXPRESAN EN MMACABADO SUPERFICIAL:TOLERANCIAS: LINEAL: ANGULAR:
CALID.
FABR.
APROB.
VERIF.
DIBUJ.
20,30
14,30 7,01 8,30
49,41 45,59
10
217,34
122,34
Acero AISI 4340
Árbol Turbocompresor
PESO:
A3
HOJA 1 DE 1ESCALA:1:1
N.º DE DIBUJO
TÍTULO:
REVISIÓNNO CAMBIE LA ESCALA
MATERIAL:
FECHAFIRMANOMBRE
REBARBAR Y ROMPER ARISTAS VIVAS
ACABADO:SI NO SE INDICA LO CONTRARIO:LAS COTAS SE EXPRESAN EN MMACABADO SUPERFICIAL:TOLERANCIAS: LINEAL: ANGULAR:
CALID.
FABR.
APROB.
VERIF.
DIBUJ.
Combustible CXHY Mproductos PCI [kJ/kg] AC R [kJ/kg.K]
X 12 28,71763154 43200 20,9744 0,28952
Y 26
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
Función
2,47348E-07 Gas Fracción molar Fracción masa
CO2 0,09242 0,14164
Función T02=T01 [K] h01=h02 [kJ/kg] WMáx. motor 162,0 H20 0,10013 0,06281
2,42646E-07 706,3595502 759,160 Exceso de aire 0,40 N2 0,75045 0,73204
Cilindrada 12000,0 O2 0,05700 0,06351
Función T05 [K] h05 [kJ/kg] Efic. mel motor 0,38 Σ 1,00000 1,00000
2,2578E-07 615,8546492 655,290 Tescape [°C] 406,5
nmotor 1000,0
Función T05ss [K] h05ss [kJ/kg] Maire [kg/s] 0,20698
2,20396E-07 599,9255377 637,260 Mcomb [kg/s] 0,00987
Función T5 [K] h5 [kJ/kg]
2,24223E-07 610,9936894 649,780
Tatm [°C] 25
Yscomp [kJ/kg] 49,180 Patm [kPa] 101,325
Ysturb [kJ/kg] 119,180
A01c [mm^2] 2583,01
A01t [mm^2] 4775,32
nTurbocompresor 90000,0000
Torque 2,2443
MOTOR
Etapa de Compresión
DIMENSIONES
Condiciones
locales
Rodete
D1 [mm] 47,55
D2 [mm] 76,46
b1 [mm] 9,73
b2 [mm] 4,67
α1 [°] 90,00
β1 [°] 30,00
α2 [°] 34,02β2 [°] 37,49
Zrodete 15
Difusor
D3 [mm] 76,96
D4 [mm] 84,11
D5 [mm] 114,70
b4 [mm] 4,67
b5 [mm] 4,67
b6 [mm] 5,60
α4 [°] 37,02
α5 [°] 38,00
Zdifusor [-] 25
Dc [mm] 20,25
Lc [mm] 34,41De [mm] 7,01
Rotor
d5 [mm] 34,76
d4 [mm] 76,46
b5 [mm] 33,21
b4 [mm] 10,46
Etapa de Expansión
DIMENSIONES
α5 [°] 0,00
β5 [°] 57,36
α4 [°] 70,00
β4 [°] 34,48Zrotor [-] 14
Distribuidor
d3 [mm] 76,96
d2 [mm] 85,64
d1 [mm] 126,17
b2 [mm] 10,46
b1 [mm] 10,46
α2 [°] 70,00Zdistribuidor [-] 12
dc [mm] 13,90
Lc [mm] 30,59
de [mm] 8,30
Longitud [mm] 122,34
r0=RMín [mm] 62,9504 θMáx [°] 360
RMáx [mm] 120,2984 θMín [°] 0
k [°] 1279,9498
Theta (θ) [°] rθ [mm] 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
Carcasa Compresor
Corrdenadas Polares Coordenadas cartesianas
60 70,13 -60,73 -35,06
70 71,40 -67,09 -24,42
80 72,69 -71,59 -12,62
90 74,01 -74,01 0,00
100 75,36 -74,21 13,09
110 76,73 -72,10 26,24
120 78,12 -67,65 39,06
130 79,54 -60,93 51,12
140 80,98 -52,05 62,03
150 82,45 -41,23 71,40
160 83,95 -28,71 78,88
170 85,47 -14,84 84,17
180 87,02 0,00 87,02
190 88,60 15,39 87,26
200 90,21 30,85 84,77
210 91,85 45,92 79,54
220 93,51 60,11 71,64
230 95,21 72,94 61,20
240 96,94 83,95 48,47
250 98,70 92,75 33,76
260 100,49 98,97 17,45
270 102,32 102,32 0,00
280 104,17 102,59 -18,09
290 106,06 99,67 -36,28
300 107,99 93,52 -53,99
310 109,95 84,23 -70,67
320 111,95 71,96 -85,76
330 113,98 56,99 -98,71
340 116,05 39,69 -109,05
350 118,15 20,52 -116,36
360 120,30 0,00 -120,30
r0=RMín [mm] 63,0827 θMáx [°] 360
RMáx [mm] 126,1655 θMín [°] 0
k [°] 1195,8941
Gamma (γ) [°] rγ [mm] 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
Carcasa Turbina
Corrdenadas Polares Coordenadas cartesianas
250 102,08 -95,93 -34,91
260 104,07 -102,49 -18,07
270 106,09 -106,09 0,00
280 108,15 -106,51 18,78
290 110,26 -103,61 37,71
300 112,40 -97,34 56,20
310 114,59 -87,78 73,65
320 116,81 -75,09 89,48
330 119,08 -59,54 103,13
340 121,40 -41,52 114,08
350 123,76 -21,49 121,88
360 126,17 0,00 126,17
Estado Temperatura [°C] Entalpia [kJ/kg] Presión [kPa]
0r 25,000 298,340 101,325
1s 16,490 289,800 91,560
1r 16,660 289,970 91,560
01r 25,000 298,340 100,770
2s, 3s, 4s 50,886 324,345 135,325
5ss 64,078 337,623 155,650
05ss 73,894 347,513 172,143
02s, 03s, 04s 80,550 354,223 177,230
2r, 3r, 4r 57,334 330,833 135,325
5s 70,782 344,377 155,650
05s 80,550 354,223 172,143
02r, 03r, 04r 83,734 357,440 177,230
5r 73,970 347,590 155,650
05r 83,734 357,440 172,143
Escalonamiento 0,8321
Rodete 0,8412
Difusor 0,8084
Etapa de Compresión
Etapa de Compresión
Eficiencias
Estado Temperatura [°C] Entalpia [kJ/kg] Presión [kPa]
01r 433,210 759,160 195,968
1 406,453 728,200 169,330
2s, 3s, 4s 392,365 711,982 155,910
05ss 326,776 637,260 103,980
5ss 321,910 631,773 100,840
02r, 03r, 04r 433,210 759,160 193,980
2r, 3r, 4r 392,476 712,110 155,910
05s 327,430 638,004 103,9805s 322,573 632,516 100,840
5r 337,844 649,780 100,840
05r 342,705 655,290 103,980
0 25,000 298,340 101,325
Escalonamiento 0,8521
Eficiencias
Etapa de Expansión
Etapa de Expansión
Rotor 0,7830
Distribuidor 0,9924
50
100
Carcasa Compresor
-150
-100
-50
0
-100 -80 -60 -40 -20 0 20 40 60 80 100 120
Eje
Y
Eje X
-150
-100
-50
0
50
100
150
200
-150 -100 -50 0 50 100
Eje
Y
Eje X
Carcasa Turbina
-150Eje X
Rodete Rotor
D1 [mm] 47,55 d5 [mm] 34,76
D2 [mm] 76,46 d4 [mm] 76,46
b1 [mm] 9,73 b5 [mm] 33,21
b2 [mm] 4,67 b4 [mm] 10,46
α1 [°] 90,00 α5 [°] 0,00
β1 [°] 30,00 β5 [°] 57,36α2 [°] 34,02 α4 [°] 70,00
β2 [°] 37,49 β4 [°] 34,48Zrodete [-] 15,00 Zrotor [-] 14,00
Difusor Distribuidor
D3 [mm] 76,96 d3 [mm] 76,96
D4 [mm] 84,11 d2 [mm] 85,64
D5 [mm] 114,70 d1 [mm] 126,17
b4 [mm] 4,67 b2 [mm] 10,46b5 [mm] 4,67 b1 [mm] 10,46
b6 [mm] 5,60 α2 [°] 70,00
α4 [°] 37,02 Zdistribuidor [-] 12,00
α5 [°] 38,00 dc [mm] 13,90Zdifusor [-] 25,00 LC [mm] 30,59
Etapa de compresión Etapa de expansión
Prototipos
Informe de resultados dimensionales obtenidos del módulo TurboMecTR 1.0
DIMENSIONES
Etapa de Compresión Etapa de Expansión
Árbol
TurboMecTR 1.0
Dc [mm] 20,25 de [mm] 8,30
LC [mm] 34,41De [mm] 7,01
Lrodete→rotor
[mm]122,34
Prototipos
Informe de resultados dimensionales obtenidos del módulo TurboMecTR 1.0
Árbol
Pasos
1
2
3
TurboMecTR 1.0