.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/mechanical_engineering/machine_elements/plot_01_coulomb_power_screw.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_mechanical_engineering_machine_elements_plot_01_coulomb_power_screw.py: Coulomb's friction and the power screw (1785) ============================================= Charles-Augustin de Coulomb's prize memoir *Théorie des machines simples* (1781, published 1785) measured sliding friction and found it proportional to the normal load and nearly independent of contact area and speed: :math:`F = \mu N`. A screw thread is an inclined plane wrapped round a cylinder. Unwrapping one turn gives a slope of lead angle :math:`\tan\lambda = L/(\pi d_m)`, and Coulomb's law on that slope gives the torque to raise a load, :math:`T = \tfrac12 W d_m\tan(\phi + \lambda)` with :math:`\tan\phi = \mu` (:func:`~engineeringkit.mechanical_engineering.screw_torque_raise`). The example solves the force balance on the unwrapped thread directly and shows why a self-locking screw is always less than 50% efficient. .. GENERATED FROM PYTHON SOURCE LINES 19-24 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from engineeringkit.mechanical_engineering import screw_torque_raise .. GENERATED FROM PYTHON SOURCE LINES 25-32 The unwrapped thread -------------------- A block carrying the axial load :math:`W` is pushed up a slope :math:`\lambda` by a horizontal force :math:`P`, the thread force at the mean radius. Balance along and normal to the slope, with friction :math:`\mu N` opposing the motion, is linear in :math:`P` and :math:`N`. .. GENERATED FROM PYTHON SOURCE LINES 32-43 .. code-block:: Python W, dm, lead = 20e3, 0.032, 0.006 lam = np.arctan(lead / (np.pi * dm)) for mu in (0.0, 0.08, 0.15): A = np.array([[np.cos(lam), -mu], [-np.sin(lam), 1.0]]) P, N = np.linalg.solve(A, [W * np.sin(lam), W * np.cos(lam)]) T = screw_torque_raise(W, dm, lead, mu) print(f"mu = {mu:.2f}: force balance T = {P * dm / 2:7.3f} N m, formula T = {T:7.3f} N m") assert np.isclose(P * dm / 2, T) assert np.isclose(2 * np.pi * screw_torque_raise(W, dm, lead, 0.0), W * lead) .. rst-class:: sphx-glr-script-out .. code-block:: none mu = 0.00: force balance T = 19.099 N m, formula T = 19.099 N m mu = 0.08: force balance T = 44.913 N m, formula T = 44.913 N m mu = 0.15: force balance T = 67.705 N m, formula T = 67.705 N m .. GENERATED FROM PYTHON SOURCE LINES 44-51 Efficiency and self-locking --------------------------- Efficiency is the lifting work per turn over the input work, :math:`\eta = W L / (2\pi T) = \tan\lambda / \tan(\phi + \lambda)`. A screw holds its load without a brake when :math:`\phi \ge \lambda`; at that limit :math:`\eta = (1 - \tan^2\lambda)/2`, below one half. .. GENERATED FROM PYTHON SOURCE LINES 51-69 .. code-block:: Python leads = np.linspace(0.5e-3, 40e-3, 200) fig, ax = plt.subplots(figsize=(6, 3.8)) for mu in (0.08, 0.15, 0.25): eta = W * leads / (2 * np.pi * screw_torque_raise(W, dm, leads, mu)) locking = np.tan(np.arctan(leads / (np.pi * dm))) <= mu ax.plot(np.degrees(np.arctan(leads / (np.pi * dm))), eta, label=f"mu = {mu}") assert np.all(eta[locking] < 0.5) ax.axhline(0.5, color="k", ls=":") ax.set(xlabel="lead angle [deg]", ylabel="efficiency", title="Square-thread power screw") ax.legend() fig.tight_layout() limit = W * lead / (2 * np.pi * screw_torque_raise(W, dm, lead, np.tan(lam))) print(f"lead angle {np.degrees(lam):.2f} deg; efficiency at the self-locking limit {limit:.4f}") assert np.isclose(limit, (1 - np.tan(lam) ** 2) / 2) plt.show() .. image-sg:: /api/gallery/mechanical_engineering/machine_elements/images/sphx_glr_plot_01_coulomb_power_screw_001.png :alt: Square-thread power screw :srcset: /api/gallery/mechanical_engineering/machine_elements/images/sphx_glr_plot_01_coulomb_power_screw_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none lead angle 3.42 deg; efficiency at the self-locking limit 0.4982 .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.030 seconds) .. _sphx_glr_download_api_gallery_mechanical_engineering_machine_elements_plot_01_coulomb_power_screw.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/mechanical_engineering/machine_elements/plot_01_coulomb_power_screw.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_01_coulomb_power_screw.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_01_coulomb_power_screw.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_01_coulomb_power_screw.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_