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