.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/aerodynamics/wings/plot_04_glauert_fourier_lifting_line.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_aerodynamics_wings_plot_04_glauert_fourier_lifting_line.py: Glauert's Fourier solution of the lifting line for any planform (1926) ====================================================================== Prandtl's lifting-line equation is an integro-differential equation for the spanwise circulation. In *The Elements of Aerofoil and Airscrew Theory* (1926) Hermann Glauert solved it for any planform. He wrote the circulation as a Fourier sine series in :math:`\theta`, with :math:`y = -\tfrac b2\cos\theta`, and enforced the equation at as many stations as there are terms (:func:`~engineeringkit.aerodynamics.lifting_line`). The first coefficient fixes the lift and the others add induced drag, so the span efficiency is :math:`e = 1/(1 + \delta)` with :math:`\delta = \sum_{n>1} nA_n^2/A_1^2`. This example recovers the elliptic optimum exactly, then sweeps the taper ratio of straight wings to reproduce Glauert's induced-drag factor :math:`\delta`. .. GENERATED FROM PYTHON SOURCE LINES 19-26 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from engineeringkit.aerodynamics import finite_wing_cl, lifting_line b, alpha = 10.0, np.radians(5.0) .. GENERATED FROM PYTHON SOURCE LINES 27-29 The elliptic wing has uniform downwash and e = 1 ------------------------------------------------ .. GENERATED FROM PYTHON SOURCE LINES 29-35 .. code-block:: Python elliptic = lifting_line(b, lambda y: 1.2 * np.sqrt(1 - (2 * y / b) ** 2), alpha) print(f"elliptic: AR = {elliptic.aspect_ratio:.2f}, CL = {elliptic.CL:.4f}, e = {elliptic.span_efficiency:.6f}") assert np.isclose(elliptic.span_efficiency, 1.0) assert np.isclose(elliptic.CL, finite_wing_cl(alpha, elliptic.aspect_ratio)) .. rst-class:: sphx-glr-script-out .. code-block:: none elliptic: AR = 10.61, CL = 0.4613, e = 1.000000 .. GENERATED FROM PYTHON SOURCE LINES 36-43 Taper ratio and Glauert's delta ------------------------------- For a fixed aspect ratio of 8, a straight tapered wing with tip-to-root chord ratio :math:`\lambda` near 0.4 loads almost elliptically. A rectangular wing (:math:`\lambda = 1`) wastes about 6% and a pointed one (:math:`\lambda = 0`) far more. .. GENERATED FROM PYTHON SOURCE LINES 43-69 .. code-block:: Python AR = 8.0 taper = np.linspace(0.0, 1.0, 41) delta = [] for lam in taper: root = 2 * b / (AR * (1 + lam)) wing = lifting_line(b, lambda y, r=root, t=lam: r * (1 - (1 - t) * np.abs(2 * y / b)), alpha, n_terms=60) delta.append(1 / wing.span_efficiency - 1) delta = np.array(delta) best = taper[np.argmin(delta)] print(f"AR = 8: delta = {delta[-1]:.4f} rectangular, minimum {delta.min():.4f} at taper ratio {best:.3f}") assert 0.25 < best < 0.45 and delta.min() < 0.02 fig, axes = plt.subplots(1, 2, figsize=(10, 4)) axes[0].plot(taper, delta) axes[0].set(xlabel=r"taper ratio $\lambda = c_t/c_r$", ylabel=r"induced-drag factor $\delta$", title="AR = 8 straight wings") for lam in (1.0, 0.35, 0.0): root = 2 * b / (AR * (1 + lam)) wing = lifting_line(b, lambda y, r=root, t=lam: r * (1 - (1 - t) * np.abs(2 * y / b)), alpha, n_terms=60) axes[1].plot(2 * wing.y / b, wing.cl / wing.CL, label=rf"$\lambda$ = {lam:g}") axes[1].axhline(1, color="gray", ls="--", lw=0.8) axes[1].set(xlabel="$2y/b$", ylabel="$c_l / C_L$", title="Section lift: where each wing stalls first") axes[1].legend() fig.tight_layout() plt.show() .. image-sg:: /api/gallery/aerodynamics/wings/images/sphx_glr_plot_04_glauert_fourier_lifting_line_001.png :alt: AR = 8 straight wings, Section lift: where each wing stalls first :srcset: /api/gallery/aerodynamics/wings/images/sphx_glr_plot_04_glauert_fourier_lifting_line_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none AR = 8: delta = 0.0676 rectangular, minimum 0.0126 at taper ratio 0.375 .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.212 seconds) .. _sphx_glr_download_api_gallery_aerodynamics_wings_plot_04_glauert_fourier_lifting_line.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/aerodynamics/wings/plot_04_glauert_fourier_lifting_line.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_04_glauert_fourier_lifting_line.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_04_glauert_fourier_lifting_line.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_04_glauert_fourier_lifting_line.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_