.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/thermodynamics/cycles/plot_09_brayton_regeneration_intercooling.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via JupyterLite. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_thermodynamics_cycles_plot_09_brayton_regeneration_intercooling.py: Brayton's cycle with regeneration, intercooling and reheat (1872) ================================================================= A simple gas turbine throws its hot exhaust away and spends much of its turbine work on the compressor. A regenerator heats the compressed air with the exhaust. Splitting the compression with intercoolers and the expansion with reheaters moves both towards isothermal processes. With many stages and a perfect regenerator the cycle becomes Ericsson's, whose efficiency is Carnot's (:func:`~engineeringkit.thermodynamics.brayton_cycle`). .. GENERATED FROM PYTHON SOURCE LINES 14-19 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from engineeringkit.thermodynamics import brayton_cycle, brayton_efficiency, carnot_efficiency .. GENERATED FROM PYTHON SOURCE LINES 20-25 A gas turbine with imperfect components --------------------------------------- Air at 300 K, turbine inlet 1300 K, pressure ratio 8, an 80% compressor and an 85% turbine (the cold-air-standard form of Çengel and Boles's Example 9-6). .. GENERATED FROM PYTHON SOURCE LINES 25-45 .. code-block:: Python simple = brayton_cycle(8.0, 300.0, 1300.0, compressor_efficiency=0.8, turbine_efficiency=0.85) regenerated = brayton_cycle(8.0, 300.0, 1300.0, compressor_efficiency=0.8, turbine_efficiency=0.85, regenerator_effectiveness=0.8) print(f"ideal {brayton_efficiency(8.0):.3f}; with losses {simple.efficiency:.3f}, back-work ratio {simple.back_work_ratio:.2f}") print(f"80% effective regenerator: {regenerated.efficiency:.3f}, saving {regenerated.heat_regenerated / 1e3:.0f} kJ/kg of fuel heat") assert regenerated.efficiency > simple.efficiency and np.isclose(regenerated.net_work, simple.net_work) staged = brayton_cycle( 8.0, 300.0, 1300.0, compressor_efficiency=0.8, turbine_efficiency=0.85, regenerator_effectiveness=0.8, compressor_stages=2, turbine_stages=2, ) print(f"two-stage compression and expansion with regeneration: {staged.efficiency:.3f}") fig, ax = staged.plot() .. image-sg:: /api/gallery/thermodynamics/cycles/images/sphx_glr_plot_09_brayton_regeneration_intercooling_001.png :alt: Brayton cycle, η = 45.0% :srcset: /api/gallery/thermodynamics/cycles/images/sphx_glr_plot_09_brayton_regeneration_intercooling_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none ideal 0.448; with losses 0.274, back-work ratio 0.61 80% effective regenerator: 0.356, saving 161 kJ/kg of fuel heat two-stage compression and expansion with regeneration: 0.450 .. GENERATED FROM PYTHON SOURCE LINES 46-51 Towards Ericsson and Carnot --------------------------- With ideal components and a perfect regenerator, more stages close the gap to Carnot's bound between 300 K and 1300 K. .. GENERATED FROM PYTHON SOURCE LINES 51-63 .. code-block:: Python stages = [1, 2, 3, 5, 10, 30, 100] etas = [brayton_cycle(8.0, 300.0, 1300.0, regenerator_effectiveness=1.0, compressor_stages=n, turbine_stages=n).efficiency for n in stages] fig, ax = plt.subplots(figsize=(6, 3.5)) ax.semilogx(stages, etas, "o-", label="ideal, perfect regenerator") ax.axhline(carnot_efficiency(1300.0, 300.0), color="gray", ls=":", label="Carnot (Ericsson limit)") ax.set(xlabel="stages of compression and of expansion", ylabel="efficiency", title="Intercooling and reheat, pressure ratio 8") ax.legend() fig.tight_layout() assert np.all(np.diff(etas) > 0) and carnot_efficiency(1300.0, 300.0) - etas[-1] < 0.01 plt.show() .. image-sg:: /api/gallery/thermodynamics/cycles/images/sphx_glr_plot_09_brayton_regeneration_intercooling_002.png :alt: Intercooling and reheat, pressure ratio 8 :srcset: /api/gallery/thermodynamics/cycles/images/sphx_glr_plot_09_brayton_regeneration_intercooling_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.230 seconds) .. _sphx_glr_download_api_gallery_thermodynamics_cycles_plot_09_brayton_regeneration_intercooling.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../../../lite/lab/index.html?path=api/gallery/thermodynamics/cycles/plot_09_brayton_regeneration_intercooling.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_09_brayton_regeneration_intercooling.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_09_brayton_regeneration_intercooling.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_09_brayton_regeneration_intercooling.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_