.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/fluid_engineering/pumps/plot_02_euler_turbine_equation.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_fluid_engineering_pumps_plot_02_euler_turbine_equation.py: Euler's turbine equation (1754) =============================== Leonhard Euler, studying Segner's reaction water wheel at the Berlin academy, wrote the torque of a rotor as the change in the angular momentum of the water passing through it. Multiplied by the speed, it gives the head a pump adds or a turbine takes, :math:`H = (u_2V_{t2} - u_1V_{t1})/g` (:func:`~engineeringkit.fluid_engineering.euler_turbomachine_head`). This example draws the ideal head of a centrifugal impeller for backward, radial and forward blades, and shows that the head scales with the square of the speed, the affinity law (:func:`~engineeringkit.fluid_engineering.affinity_laws`). .. GENERATED FROM PYTHON SOURCE LINES 18-23 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from engineeringkit.fluid_engineering import affinity_laws, euler_turbomachine_head .. GENERATED FROM PYTHON SOURCE LINES 24-32 The outlet velocity triangle ---------------------------- Water leaves an impeller of radius :math:`r_2` and width :math:`b_2` with radial speed :math:`V_{r2} = Q/(2\pi r_2 b_2)`. Relative to the blade it leaves at the blade angle :math:`\beta_2`, so its swirl is :math:`V_{t2} = u_2 - V_{r2}\cot\beta_2`. With no swirl at the inlet, the ideal head falls linearly with flow for backward-curved blades. .. GENERATED FROM PYTHON SOURCE LINES 32-49 .. code-block:: Python r2, b2, rpm = 0.15, 0.02, 1750 omega = rpm * 2 * np.pi / 60 u2 = omega * r2 Q = np.linspace(0, 0.08, 50) V_r2 = Q / (2 * np.pi * r2 * b2) fig, ax = plt.subplots(figsize=(6, 4)) heads = {} for label, beta in [("backward, β₂ = 25°", 25), ("radial, β₂ = 90°", 90), ("forward, β₂ = 140°", 140)]: heads[beta] = euler_turbomachine_head(u2, u2 - V_r2 / np.tan(np.radians(beta))) ax.plot(Q * 1000, heads[beta], label=label) ax.set(xlabel="flow [L/s]", ylabel="ideal head [m]", title=f"Euler head of an impeller at {rpm} rpm") ax.legend() fig.tight_layout() print(f"shut-off head u2^2/g = {heads[25][0]:.1f} m for every blade angle") .. image-sg:: /api/gallery/fluid_engineering/pumps/images/sphx_glr_plot_02_euler_turbine_equation_001.png :alt: Euler head of an impeller at 1750 rpm :srcset: /api/gallery/fluid_engineering/pumps/images/sphx_glr_plot_02_euler_turbine_equation_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none shut-off head u2^2/g = 77.1 m for every blade angle .. GENERATED FROM PYTHON SOURCE LINES 50-58 Backward blades are used in practice: their head falls with flow, so the pump is stable on its system curve and its power does not run away. The head at twice the speed --------------------------- At the same flow coefficient, the velocity triangle keeps its shape and every speed doubles, so the head goes up four times. .. GENERATED FROM PYTHON SOURCE LINES 58-70 .. code-block:: Python Q_bep, H_bep = 0.04, float(np.interp(0.04, Q, heads[25])) Q2, H2, _ = affinity_laws(Q_bep, H_bep, 0.0, 2.0) V_r2_fast = Q2 / (2 * np.pi * r2 * b2) H2_euler = euler_turbomachine_head(2 * u2, 2 * u2 - V_r2_fast / np.tan(np.radians(25))) print(f"at 2x speed: affinity law {H2:.1f} m, Euler {H2_euler:.1f} m") assert np.allclose([heads[25][0], heads[90][0], heads[140][0]], u2**2 / 9.80665) assert np.allclose(heads[90], heads[90][0]) and np.all(np.diff(heads[25]) < 0) and np.all(np.diff(heads[140]) > 0) assert np.isclose(H2, H2_euler) plt.show() .. rst-class:: sphx-glr-script-out .. code-block:: none at 2x speed: affinity law 257.2 m, Euler 257.2 m .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.087 seconds) .. _sphx_glr_download_api_gallery_fluid_engineering_pumps_plot_02_euler_turbine_equation.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/fluid_engineering/pumps/plot_02_euler_turbine_equation.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_02_euler_turbine_equation.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_02_euler_turbine_equation.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_02_euler_turbine_equation.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_