.. 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_02_petroff_bearing.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_02_petroff_bearing.py: Petroff's law of bearing friction (1883) ======================================== Railway axle bearings of the 1880s ran on oil, and their friction did not behave like Coulomb's: it grew with speed and with the oil's viscosity, and it fell as the load rose. Nikolai Petroff (1883) explained this by treating the oil film as a thin layer sheared between the journal and its sleeve. With the journal centred, the shear stress is :math:`\mu\omega r/c` all round, so the friction torque is :math:`T = 2\pi\mu\omega r^3 L/c` (:func:`~engineeringkit.mechanical_engineering.petroff_friction_torque`) and the friction coefficient follows :math:`f = 2\pi^2 (\mu N/P)(r/c)`. The example checks Petroff's thin-film torque against the exact flow between concentric cylinders. .. GENERATED FROM PYTHON SOURCE LINES 18-23 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from engineeringkit.mechanical_engineering import petroff_friction_torque .. GENERATED FROM PYTHON SOURCE LINES 24-32 Thin film against exact Couette flow ------------------------------------ Between cylinders of radii :math:`r` and :math:`r + c` the exact viscous torque is :math:`4\pi\mu L\omega r^2 (r + c)^2 / ((r + c)^2 - r^2)`. The relative difference from Petroff's formula is about :math:`3c/2r`, so the thin-film model is good to a fraction of a percent at the usual :math:`c/r \approx 10^{-3}`. .. GENERATED FROM PYTHON SOURCE LINES 32-41 .. code-block:: Python viscosity, r, L, omega = 0.03, 0.025, 0.05, 2 * np.pi * 25 ratios = np.geomspace(1e-4, 0.3, 40) exact = np.array([4 * np.pi * viscosity * L * omega * r**2 * (r + c) ** 2 / ((r + c) ** 2 - r**2) for c in ratios * r]) petroff = petroff_friction_torque(viscosity, r, L, ratios * r, omega) error = np.abs(petroff / exact - 1) print(f"c/r = 1e-3: Petroff {petroff[np.searchsorted(ratios, 1e-3)]:.5f} N m, exact {exact[np.searchsorted(ratios, 1e-3)]:.5f} N m") assert np.all(np.diff(error) > 0) and np.allclose(error[:10], 1.5 * ratios[:10], rtol=1e-2) .. rst-class:: sphx-glr-script-out .. code-block:: none c/r = 1e-3: Petroff 0.78775 N m, exact 0.78914 N m .. GENERATED FROM PYTHON SOURCE LINES 42-48 The Petroff line ---------------- Divide the torque by load times radius. Plotted against the bearing characteristic :math:`\mu N/P`, every load and speed falls on one line of slope :math:`2\pi^2 r/c`. .. GENERATED FROM PYTHON SOURCE LINES 48-66 .. code-block:: Python c = 25e-6 loads = np.array([500.0, 1000.0, 2000.0]) speeds = np.linspace(5, 60, 12) fig, ax = plt.subplots(figsize=(6, 3.8)) for W in loads: P = W / (2 * r * L) f = petroff_friction_torque(viscosity, r, L, c, 2 * np.pi * speeds) / (W * r) characteristic = viscosity * speeds / P ax.plot(characteristic, f, "o", label=f"W = {W:.0f} N") assert np.allclose(f, 2 * np.pi**2 * characteristic * r / c) line = np.linspace(0, ax.get_xlim()[1], 2) ax.plot(line, 2 * np.pi**2 * line * r / c, "k--", lw=1, label="2 pi^2 (r/c) mu N / P") ax.set(xlabel="bearing characteristic mu N / P [-]", ylabel="friction coefficient f", title="Petroff's law") ax.legend() fig.tight_layout() plt.show() .. image-sg:: /api/gallery/mechanical_engineering/machine_elements/images/sphx_glr_plot_02_petroff_bearing_001.png :alt: Petroff's law :srcset: /api/gallery/mechanical_engineering/machine_elements/images/sphx_glr_plot_02_petroff_bearing_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.033 seconds) .. _sphx_glr_download_api_gallery_mechanical_engineering_machine_elements_plot_02_petroff_bearing.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_02_petroff_bearing.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_02_petroff_bearing.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_02_petroff_bearing.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_02_petroff_bearing.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_