Global performance of turbomachinery

Global performance of turbomachinery (expressed in thermodynamic mean values, \(\displaystyle X_o\) standing for values of the outlet plane, and \(\displaystyle X_i\) standing for values of the inlet plane.

Mass flow rate: \(\displaystyle Q = \int \rho V dS\)

Total-to-total pressure ratio: \(\displaystyle \Pi = \frac{Pt_o}{Pt_i}\)

Isentropic efficiency:

compressor - \(\displaystyle \eta_{is} = \frac{\Pi^{\frac{\gamma-1}{\gamma}}-1}{\frac{Tt_o}{Tt_i}-1}\) turbine - \(\displaystyle \eta_{is} = \frac{\frac{Tt_o}{Tt_i}-1}{\Pi^{\frac{\gamma-1}{\gamma}}-1}\)

Polytropic efficiency:

compressor - \(\displaystyle \eta_{pol} = \frac{\frac{\log(\frac{Ps_o}{Ps_i})}{\log(\frac{\rho_o}{\rho_i})}*(\gamma-1)}{\gamma*(\frac{\log(\frac{Ps_o}{Ps_i})}{\log(\frac{\rho_o}{\rho_i})}-1)}\) turbine - \(\displaystyle \eta_{pol} = \frac{\gamma*(\frac{\log(\frac{\rho_o}{\rho_i})}{\log(\frac{Ps_o}{Ps_i})}-1)}{\frac{\log(\frac{\rho_o}{\rho_i})}{\log(\frac{Ps_o}{Ps_i})}*(\gamma-1)}\)

The specific gas constant is hard-coded: Rgaz = 287.053 [J/kg/K].

The Heat capacity ratio is hard-coded: gamma = 1.4 [-].

Parameters

  • inlet_base: Base

    The inlet base used for global performance.

  • outlet_base: Base

    The outlet base used for global performance.

  • coordinates: list(str)

    The variable names that define the set of coordinates. If no value is given, the default coordinate system of the base is used (see Base.coordinate_names).

  • type: str

    Type of turbomachine (turbine, compressor, CROR).

  • avg_type: str in [‘surface’, ‘massflowrate’], default= massflowrate

    Type of space averaging.

  • conservative: list(str), default= [‘rho’, ‘rhou’, ‘rhov’, ‘rhow’, ‘rhoE’]

    Names of conservative variables. example: [‘ro’, ‘rovx’, ‘rovy’, ‘rovz’, ‘roE’]

Postconditions

The treatment returns a dictionary with variables Q, eta_is, eta_pol, and Pi.

  • Q:

    mass-flow rate at the outlet plane,

  • eta_is

    Isentropic efficiency.

  • eta_pol

    Polytropic efficiency.

  • Pi

    Total-to-total pressure ratio.

Main functions

class antares.treatment.turbomachine.TreatmentTurboGlobalPerfo.TreatmentTurboGlobalPerfo
execute()

Compute the global performance of a turbomachine.

Returns:

a dictionary with variables Q, eta_is, eta_pol, and Pi

Return type:

dict(str, float)

Variables:
  • Q – mass-flow rate at the outlet plane,

  • eta_is – isentropic efficiency,

  • eta_pol – polytropic efficiency,

  • Pi – total-to-total pressure ratio

Example

import os

if not os.path.isdir('OUTPUT'):
    os.makedirs('OUTPUT')

import matplotlib.pyplot as plt
import numpy as np

import antares

x_inlet, x_outlet = -0.07, 0.15

perfos = np.empty((1, 4))

R = antares.Reader('bin_tp')
R['filename'] = os.path.join('..', 'data', 'ROTOR37', 'rotor37.plt')
data = R.read()

data.set_computer_model('internal')

data.coordinate_names = ['x', 'y', 'z']

T = antares.Treatment('cut')
T['origin'] = (float(x_inlet), 0., 5.0)
T['type'] = 'plane'
T['normal'] = (1.0, 0.0, 0.0)
T['base'] = data
inlet_plane = T.execute()
inlet_plane.rel_to_abs(omega=-1.7999965e+03, angle=0.0)

T = antares.Treatment('cut')
T['origin'] = (float(x_outlet), 0., 5.0)
T['type'] = 'plane'
T['normal'] = (1.0, 0.0, 0.0)
T['base'] = data
outlet_plane = T.execute()
outlet_plane.rel_to_abs(omega=-1.7999965e+03, angle=0.0)

print(inlet_plane[0][0])
print(outlet_plane[0][0])
T = antares.Treatment('turboglobalperfo')
T['inlet_base'] = inlet_plane
T['outlet_base'] = outlet_plane
T['avg_type'] = 'massflowrate'
T['type'] = 'compressor'
T['coordinates'] = ['x', 'y', 'z']
T['conservative'] = ['ro', 'rovx', 'rovy', 'rovz', 'roE']
test = T.execute()
print(test)

perfos[0, 0] = -test['Q']*36
perfos[0, 1] = test['Pi']
perfos[0, 2] = test['eta_is']
perfos[0, 3] = test['eta_pol']

plt.figure()
plt.plot(perfos[:, 0], perfos[:, 1], 'D', label='MBS')
plt.xlabel(r'$\dot{m}\; [kg.s^{-1}]$', fontsize=22)
plt.ylabel(r'$\Pi$', fontsize=22)
plt.grid(True)
plt.legend(loc='best')
plt.tight_layout()
plt.savefig(os.path.join('OUTPUT', 'ex_Pi.png'), format='png')
# plt.show()

plt.figure()
plt.plot(perfos[:, 0], perfos[:, 2], 'D', label='MBS')
plt.xlabel(r'$\dot{m}\; [kg.s^{-1}]$', fontsize=22)
plt.ylabel(r'$\eta_{is}$', fontsize=22)
plt.grid(True)
plt.legend(loc='best')
plt.tight_layout()
plt.savefig(os.path.join('OUTPUT', 'ex_eta_is.png'), format='png')
# plt.show()

plt.figure()
plt.plot(perfos[:, 0], perfos[:, 2], 'D', label='MBS')
plt.xlabel(r'$\dot{m}\; [kg.s^{-1}]$', fontsize=22)
plt.ylabel(r'$\eta_{pol}$', fontsize=22)
plt.grid(True)
plt.legend(loc='best')
plt.tight_layout()
plt.savefig(os.path.join('OUTPUT', 'ex_eta_pol.png'), format='png')
# plt.show()