Asignatura: Vehículos aeroespaciales
Departamento: Ciencia y Tecnología de Materiales y Fluidos
Centro: Escuela Universitaria Politécnica de Teruel
Profesor: Adrián Navas Montilla
import numpy as np
import matplotlib.pyplot as plt
# Datos de partida
r = 8.0 # Relación de compresión V1/V2
T_entrada = 300.0 # K
P_entrada = 1e5 # Pa
q_in = 800e3 # J/kg, calor añadido (específico)
Vd = 0.20 #m^3, cilindrada unitaria
nc = 4 #numero de cilindros
N = 1200 #rpm
# Propiedades
gamma = 1.4 # Razón de calores específicos (cp/cv) para aire
R = 287.0 # J/(kg·K), constante del gas aire
cv = R / (gamma - 1)
cp = gamma * cv
# --- Volumenes ---
V2=Vd/(r-1) # volumen en PMS, en función de Vd y r (datos)
V1=V2*r # volumen en PMI
V3=V2
V4=V1
# Estado 1
T1 = T_entrada
P1 = P_entrada
m = P1*V1 / (R*T1) #masa de aire en el cilindro (constante, sistema cerrado). Se calcula con ley gases ideales
# --- Proceso 1 -> 2 : compresión adiabática ---
T2 = T1 * r**(gamma - 1)
P2 = P1 * r**gamma
# --- Proceso 2 -> 3 : adición de calor ---
T3 = T2 + q_in / cv #se expresa en función de q_in
P3 = P2 * (T3 / T2)
q23 = cv * (T3 - T2)
# --- Proceso 3 -> 4 : expansión adiabática ---
T4 = T3 * (1 / r)**(gamma - 1)
P4 = P3 * (1 / r)**gamma
# --- Proceso 4 -> 1 : rechazo de calor ---
q41 = cv * (T1 - T4)
# Calores y eficiencia (1º principio de la termodinamica aplicado al ciclo)
q_in = q23
q_out = - q41
w_net = q_in - q_out
eta0 = w_net/q_in #eficiencia, expresión general
eta = 1 - 1 / (r**(gamma - 1))#eficiencia ciclo ideal aire estandar gas perfecto
# Representación P-V
V_comp = np.linspace(V1, V2, 100)
P_comp = P1 * (V1**gamma) / (V_comp**gamma)
V_exp = np.linspace(V3, V4, 100)
P_exp = P3 * (V3**gamma) / (V_exp**gamma)
plt.figure(figsize=(7,5))
plt.plot(V_comp, P_comp, 'b', label='Compresión 1-2')
plt.plot([V2,V3], [P2,P3], 'r', label='Combustión 2-3')
plt.plot(V_exp, P_exp, 'g', label='Expansión 3-4')
plt.plot([V4,V1], [P4,P1], 'orange', label='Escape 4-1')
plt.xlabel('Volumen (m^3)')
plt.ylabel('Presión (Pa)')
plt.title('Ciclo Otto Ideal - Diagrama P-V')
plt.legend()
plt.grid(True)
plt.show()
# --- Resultados numéricos ---
print(f"Eficiencia térmica η = {eta:.3f}")
print(f"Trabajo neto específico = {w_net/1000:.2f} kJ/kg")
print(f"Temperaturas (K): T1={T1:.1f}, T2={T2:.1f}, T3={T3:.1f}, T4={T4:.1f}")
print(f"Presiones (bar): P1={P1/1e5:.2f}, P2={P2/1e5:.2f}, P3={P3/1e5:.2f}, P4={P4/1e5:.2f}")
Eficiencia térmica η = 0.565 Trabajo neto específico = 451.78 kJ/kg Temperaturas (K): T1=300.0, T2=689.2, T3=1804.2, T4=785.3 Presiones (bar): P1=1.00, P2=18.38, P3=48.11, P4=2.62