Global performance of turbomachinery

Global performance of turbomachinery (expressed in thermodynamic mean values, Xo standing for values of the outlet plane, and Xi standing for values of the inlet plane.

Mass flow rate: Q=ρVdS

Total-to-total pressure ratio: Π=PtoPti

Isentropic efficiency:

compressor - ηis=Πγ1γ1TtoTti1 turbine - ηis=TtoTti1Πγ1γ1

Polytropic efficiency:

compressor - ηpol=log(PsoPsi)log(ρoρi)(γ1)γ(log(PsoPsi)log(ρoρi)1) turbine - ηpol=γ(log(ρoρi)log(PsoPsi)1)log(ρoρi)log(PsoPsi)(γ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()