.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/electrical_engineering/machines/plot_01_hopkinson_dynamo.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_electrical_engineering_machines_plot_01_hopkinson_dynamo.py: The Hopkinsons' dynamo and the DC machine (1886) ================================================ John Hopkinson introduced the *characteristic curve* of a dynamo, its EMF against field current at constant speed, in 1879, and with his brother Edward showed in 1886 how to predict it from the magnetic circuit of the iron. Underneath both lies the armature equation of every DC machine: an EMF :math:`E = k\Phi\omega` proportional to flux and speed, behind the armature resistance :math:`R_a`, with torque :math:`T = k\Phi I_a`. As a motor on a fixed supply the torque-speed curve is then a straight line from the stall torque to the no-load speed (:func:`~engineeringkit.electrical_engineering.dc_motor_torque`, :func:`~engineeringkit.electrical_engineering.dc_motor_speed`); driven faster than that the same machine generates. This example draws the torque-speed lines for three armature voltages and checks the power balance at an operating point. .. GENERATED FROM PYTHON SOURCE LINES 21-26 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from engineeringkit.electrical_engineering import dc_motor_speed, dc_motor_torque .. GENERATED FROM PYTHON SOURCE LINES 27-31 Torque-speed lines ------------------ A 240 V, 0.4 ohm armature with :math:`k\Phi = 2.2` V s/rad. .. GENERATED FROM PYTHON SOURCE LINES 31-41 .. code-block:: Python Ra, kphi = 0.4, 2.2 omega = np.linspace(0, 130, 200) fig, ax = plt.subplots(figsize=(7, 3.8)) for V in (120.0, 180.0, 240.0): T = dc_motor_torque(V, Ra, kphi, omega) ax.plot(omega, T, label=f"V = {V:.0f} V") print(f"V = {V:.0f} V: no-load speed {V / kphi:.1f} rad/s, stall torque {kphi * V / Ra:.0f} N m") assert dc_motor_torque(240.0, Ra, kphi, 240.0 / kphi) == 0 .. image-sg:: /api/gallery/electrical_engineering/machines/images/sphx_glr_plot_01_hopkinson_dynamo_001.png :alt: plot 01 hopkinson dynamo :srcset: /api/gallery/electrical_engineering/machines/images/sphx_glr_plot_01_hopkinson_dynamo_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none V = 120 V: no-load speed 54.5 rad/s, stall torque 660 N m V = 180 V: no-load speed 81.8 rad/s, stall torque 990 N m V = 240 V: no-load speed 109.1 rad/s, stall torque 1320 N m .. GENERATED FROM PYTHON SOURCE LINES 42-47 Power balance at a load ----------------------- Electrical input = copper loss + mechanical output, since :math:`VI_a = I_a^2R_a + EI_a` and :math:`EI_a = T\omega`. .. GENERATED FROM PYTHON SOURCE LINES 47-55 .. code-block:: Python V, T_load = 240.0, 150.0 w = dc_motor_speed(V, Ra, kphi, T_load) Ia = T_load / kphi p_in, p_copper, p_out = V * Ia, Ia**2 * Ra, T_load * w print(f"at {T_load:.0f} N m: speed {w:.2f} rad/s ({w * 60 / (2 * np.pi):.0f} rpm), efficiency {p_out / p_in:.1%}") assert np.isclose(p_in, p_copper + p_out) .. rst-class:: sphx-glr-script-out .. code-block:: none at 150 N m: speed 96.69 rad/s (923 rpm), efficiency 88.6% .. GENERATED FROM PYTHON SOURCE LINES 56-61 Generating ---------- Above the no-load speed the EMF exceeds the supply, the current and torque reverse, and the machine returns power to the supply. .. GENERATED FROM PYTHON SOURCE LINES 61-71 .. code-block:: Python assert dc_motor_torque(V, Ra, kphi, 1.1 * V / kphi) < 0 ax.axhline(0, color="gray", lw=0.6) ax.plot(w, T_load, "ko") ax.set(xlabel="speed [rad/s]", ylabel="torque [N m]", title="Separately excited DC machine") ax.legend(fontsize="small") fig.tight_layout() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.045 seconds) .. _sphx_glr_download_api_gallery_electrical_engineering_machines_plot_01_hopkinson_dynamo.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/electrical_engineering/machines/plot_01_hopkinson_dynamo.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_01_hopkinson_dynamo.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_01_hopkinson_dynamo.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_01_hopkinson_dynamo.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_