Breakthroughs in Electrical Engineering#
“The force of the current in a galvanic circuit is directly as the sum of all the tensions, and inversely as the entire reduced length of the circuit.” – Georg Simon Ohm, 1827
Circuit theory began as a branch of physics, with Ohm’s wires and
Kirchhoff’s junctions. The telegraph, the electric light and the telephone
then turned it into engineering: equivalent circuits, impedance and the
transmission line were invented by telegraph and power engineers to answer
practical questions, and electronics and the power grid added amplifiers,
semiconductors, machines and stability. The entries trace the ideas behind
engineeringkit.electrical_engineering, from a thermocouple and a
galvanometer to a digital computer solving the power grid. Each links to the
implementing function and to a gallery example devoted to it.
1827 – Ohm’s Law#
Georg Simon Ohm, a schoolteacher in Cologne, replaced unsteady voltaic piles with a thermocouple and measured the current through brass wires of different lengths with a torsion galvanometer. His readings fitted \(X = a/(b + x)\), an “exciting force” divided by the resistance of the wire plus that of the rest of the circuit. Die galvanische Kette (1827) framed the result by analogy with Fourier’s heat flow and was received coldly in Germany, until the Royal Society awarded Ohm its Copley Medal in 1841. In modern form, \(V = IR\), and resistances add in series while conductances add in parallel.
Implementation: engineeringkit.electrical_engineering.ohms_law(),
engineeringkit.electrical_engineering.series_resistance() and
engineeringkit.electrical_engineering.parallel_resistance(). The
example rebuilds Ohm’s experiment and recovers the source EMF and internal
resistance from the readings.
References: G. S. Ohm, Die galvanische Kette, mathematisch bearbeitet (Berlin: T. H. Riemann, 1827).
c. 1840 – Jacobi’s Maximum Power Theorem#
Moritz Hermann von Jacobi built some of the first practical electric motors in St Petersburg, one of which drove a boat on the Neva in 1839. Asking how to get the most power from his batteries, he found that a source of EMF \(V\) and internal resistance \(R_s\) delivers the most power, \(V^2/4R_s\), to a load equal to its own resistance. The result is often misread as a recipe for efficiency: at the match half the power is lost inside the source. Power systems therefore run far from the match, while radio receivers and amplifiers, where the signal matters more than the energy, are matched deliberately.
Implementation: engineeringkit.electrical_engineering.maximum_power_transfer().
The example sweeps the load and plots the delivered power against the
efficiency.
References: M. H. Jacobi’s motor experiments of 1837-1840; for a modern statement see C. K. Alexander and M. N. O. Sadiku, Fundamentals of Electric Circuits (New York: McGraw-Hill), ch. 4.
1843 – Wheatstone’s Bridge#
Samuel Hunter Christie described the circuit in 1833. Charles Wheatstone credited him and made it the standard instrument for measuring resistance in his 1843 Bakerian lecture. Two voltage dividers are connected across one source and a galvanometer joins their midpoints. When \(R_1/R_2 = R_3/R_4\) the galvanometer reads zero, whatever the source voltage. A null needs no calibrated meter, only calibrated resistors, so the bridge measured resistances, and later capacitances and inductances, more accurately than any deflection instrument.
Implementation: engineeringkit.electrical_engineering.wheatstone_balanced().
The example balances a bridge against an unknown resistor, using nodal
analysis for the galvanometer current.
References: C. Wheatstone, “An account of several new instruments and processes for determining the constants of a voltaic circuit,” Phil. Trans. R. Soc. 133 (1843) 303-327.
1845 – Kirchhoff’s Circuit Laws and Nodal Analysis#
Gustav Kirchhoff, then a 21-year-old student of Franz Neumann in Königsberg, ended a paper on current flow in a plane conductor with two laws for networks of wires: the currents meeting at a junction sum to zero, and around any closed loop the EMFs equal the sum of the resistance drops. In 1847 he showed how many independent equations a network gives, an early result in graph theory. Writing the current law at every node gives the linear system \(G\mathbf{v} = \mathbf{i}\). With one extra row per voltage source (modified nodal analysis, 1975), it is how SPICE and every circuit simulator still work.
Implementation: engineeringkit.electrical_engineering.nodal_analysis(),
returning a NodalResult.
The example solves a two-source ladder, checks both laws and verifies
superposition.
References: G. Kirchhoff, “Ueber den Durchgang eines elektrischen Stromes durch eine Ebene, insbesondere durch eine kreisförmige,” Ann. Phys. 64 (1845) 497-514; C.-W. Ho, A. E. Ruehli and P. A. Brennan, “The modified nodal approach to network analysis,” IEEE Trans. Circuits Syst. 22 (1975) 504-509.
Kirchhoff’s circuit laws and nodal analysis (1845)
1851 – Helmholtz’s Inductive Current Rise#
Faraday’s induction meant that a coil opposes any change of its own current, so switching a battery onto it cannot set up Ohm’s current at once. Hermann Helmholtz, then measuring the speed of nerve impulses in Königsberg, needed to know how long such induced currents last. In 1851 he gave their law: in a circuit of resistance \(R\) and self-induction \(L\) the current approaches \(V/R\) as \(1 - e^{-Rt/L}\), and on opening it dies away with the same time constant \(L/R\). He confirmed it with a pendulum interrupter that broke the circuit at chosen instants. The exponential rise and decay is the first-order transient of every relay coil, solenoid and motor winding.
Implementation: engineeringkit.electrical_engineering.rl_current()
and engineeringkit.electrical_engineering.rl_time_constant(). The
example switches a relay coil on and off and checks that the supplied
energy is dissipated or stored as \(\tfrac12 Li^2\).
References: H. Helmholtz, “Ueber die Dauer und den Verlauf der durch Stromesschwankungen inducirten elektrischen Ströme,” Ann. Phys. 83 (1851) 505-540.
1853 – Kelvin’s Oscillatory Discharge: the Second-Order RLC Circuit#
Felix Savary in 1827 and Joseph Henry in 1842 found that a Leyden jar discharged through a coil magnetised steel needles now one way, now the other, as if the current reversed. William Thomson, later Lord Kelvin, gave the explanation in 1853. A capacitance discharging through a resistance and an inductance obeys a second-order equation, and its discharge is a single surge when \(R > 2\sqrt{L/C}\) but an oscillation of period close to \(2\pi\sqrt{LC}\) when the resistance is smaller. Feddersen’s photographs of the spark (1857-1862) showed the oscillation, and Hertz used it in 1887 to make radio waves. The over-, critically and underdamped step responses of the series RLC circuit are Thomson’s three cases.
Implementation: engineeringkit.electrical_engineering.rlc_damping()
and engineeringkit.electrical_engineering.rlc_step_voltage(). The
example plots the three regimes and checks the ringing period and the
exponential decay of the underdamped response.
References: W. Thomson, “On transient electric currents,” Phil. Mag. 5 (1853) 393-405.
Kelvin’s oscillatory discharge and the RLC step response (1853)
1855 – Kelvin’s Telegraph Cable and the RC Time Constant#
Faraday had noticed that a submarine cable, a copper core in gutta-percha under seawater, behaves like a long capacitor. William Thomson, later Lord Kelvin, worked out the consequence. With inductance neglected, the cable obeys a diffusion equation like Fourier’s heat equation: a pulse arrives smeared out, over a time proportional to \(rc\,\ell^2\). This law of squares set the signalling speed of the first transatlantic cables. Its building block is one resistor charging one capacitor, which approaches the source voltage as \(1 - e^{-t/RC}\).
Implementation: engineeringkit.electrical_engineering.rc_time_constant(),
engineeringkit.electrical_engineering.rc_charging_voltage() and
engineeringkit.electrical_engineering.rl_time_constant(). The example
checks one RC section, then chains sections into a cable and recovers the
law of squares.
References: W. Thomson, “On the theory of the electric telegraph,” Proc. R. Soc. London 7 (1855) 382-399.
Kelvin’s telegraph cable and the RC time constant (1855)
1876-1887 – Heaviside’s Telegrapher’s Equations and the Distortionless Line#
Oliver Heaviside, a former telegraph operator who taught himself mathematics, kept all four constants of a line: series resistance and inductance, shunt conductance and capacitance per unit length. The resulting telegrapher’s equations carry waves that decay and travel according to \(\gamma = \sqrt{(R + j\omega L)(G + j\omega C)}\). In 1887 he showed that if \(R/L = G/C\) every frequency is attenuated equally and travels at the same speed, so signals arrive undistorted. Telephone cables had far too little inductance. The Post Office ignored him, but Pupin’s and Campbell’s loading coils (1899-1900) added the missing inductance and made long-distance telephony work.
Implementation: engineeringkit.electrical_engineering.propagation_constant(),
engineeringkit.electrical_engineering.distortionless_condition(),
engineeringkit.electrical_engineering.transmission_line_z0() and
engineeringkit.electrical_engineering.transmission_line_velocity().
The example compares attenuation, velocity and a received pulse for an
unloaded and a distortionless line.
References: O. Heaviside, “On the extra current,” Phil. Mag. 2 (1876) 135-145; O. Heaviside, “Electromagnetic induction and its propagation,” The Electrician (1887), reprinted in Electrical Papers, vol. 2 (London: Macmillan, 1892).
Heaviside’s telegrapher’s equations and the distortionless line (1876-1887)
1883 – Thévenin’s Equivalent Circuit#
Léon Charles Thévenin, an engineer of the French Postes et Télégraphes, proved that any network of EMFs and resistances, seen from two of its terminals, acts as a single EMF in series with a single resistance. Hermann von Helmholtz had stated the result in 1853, but it was Thévenin’s paper that engineers read. The EMF is the open-circuit voltage. The resistance is the open-circuit voltage divided by the short-circuit current, or equally the resistance seen with every source zeroed. The theorem lets an engineer analyse what is connected to a network without solving the network again for each load.
Implementation: engineeringkit.electrical_engineering.thevenin_from_source(),
with engineeringkit.electrical_engineering.nodal_analysis() for the
open- and short-circuit tests. The example reduces a two-source network and
checks the equivalent for every load.
References: L. Thévenin, “Extension de la loi d’Ohm aux circuits électromoteurs complexes,” Annales Télégraphiques 10 (1883) 222-224.
1886 – Stanley’s Transformer#
Gaulard and Gibbs’s “secondary generator” and the closed-core transformer of Zipernowsky, Bláthy and Déri (1885) showed that AC voltage could be changed with coils on iron. William Stanley, for George Westinghouse, connected the primaries in parallel across the line and in March 1886 lit Great Barrington, Massachusetts, stepping 500 V down to 100 V at each building. An ideal transformer scales voltage by the turns ratio, current by its inverse and impedance by its square. Because line loss falls as the square of the transmission voltage, the transformer won the “war of the currents” for AC.
Implementation: engineeringkit.electrical_engineering.transformer_secondary().
The example checks the power and impedance transformation and the
\(1/V^2\) line loss.
References: W. Stanley, “Induction-coil,” U.S. Patent 349,611 (1886).
1886 – The Hopkinsons’ Dynamo Theory and the DC Machine#
Early dynamos were designed by trial and error. John Hopkinson introduced their characteristic, the EMF against field current at constant speed, in 1879, and in 1886 he and his brother Edward showed how to predict it from the iron’s magnetic circuit before the machine was built. Underneath both is the armature equation of every DC machine: an EMF \(E = k\Phi\omega\) proportional to flux and speed, behind the armature resistance, and a torque \(k\Phi I_a\). Run as a motor on a fixed voltage it slows in a straight line as the load torque rises, and driven above its no-load speed it becomes a generator. The Royal Society’s referee called the paper the link between the theory of magnetism and dynamo design.
Implementation: engineeringkit.electrical_engineering.dc_motor_torque()
and engineeringkit.electrical_engineering.dc_motor_speed(). The
example draws the torque-speed lines and checks the power balance.
References: J. Hopkinson and E. Hopkinson, “Dynamo-electric machinery,” Phil. Trans. R. Soc. 177 (1886) 331.
1888 – Tesla’s Polyphase System#
Nikola Tesla’s lecture to the AIEE described motors driven by currents displaced in phase. Together they produce a rotating magnetic field that turns an induction motor with no commutator or brushes. Westinghouse bought the patents. Mikhail Dolivo-Dobrovolsky chose three phases for the Lauffen-Frankfurt line of 1891. A balanced three-phase load draws constant instantaneous power, \(\sqrt3 V_L I_L\cos\phi\), so generators and motors run without torque pulsation, and the three return currents cancel, so three wires do the work of six.
Implementation: engineeringkit.electrical_engineering.three_phase_power().
The example checks the constant total power, the zero neutral current and
the rotating field.
References: N. Tesla, “A new system of alternate current motors and transformers,” Trans. AIEE 5 (1888) 308-327.
1893 – Steinmetz’s Phasors and Complex Impedance#
Charles Proteus Steinmetz, at the International Electrical Congress in Chicago, showed that a sinusoid \(A\cos(\omega t + \phi)\) can be carried as the complex number \(Ae^{j\phi}\). Differentiation becomes multiplication by \(j\omega\), so an inductor is the impedance \(j\omega L\) and a capacitor \(1/j\omega C\). The differential equations of an AC circuit become Ohm’s and Kirchhoff’s laws with complex numbers. Steinmetz’s method, taught at General Electric and in his textbooks, made AC design routine.
Implementation: engineeringkit.electrical_engineering.inductor_impedance(),
engineeringkit.electrical_engineering.capacitor_impedance(),
engineeringkit.electrical_engineering.series_rlc_impedance(),
engineeringkit.electrical_engineering.phasor() and
engineeringkit.electrical_engineering.polar(), drawn with
engineeringkit.electrical_engineering.visualizers.plot_phasors(). The
example solves a series RLC circuit by phasors and checks it against a
time-domain simulation.
References: C. P. Steinmetz, “Complex quantities and their use in electrical engineering,” Proc. International Electrical Congress, Chicago 1893 (New York: AIEE, 1894) 33-74.
1897 – Lodge’s Syntonic Tuning: Series Resonance#
Spark transmitters radiated over a wide band, so every receiver heard every station. Oliver Lodge’s patent put an adjustable inductance in series with the antenna capacitance at both ends of the link, tuning transmitter and receiver to the same frequency, \(f_0 = 1/2\pi\sqrt{LC}\). At resonance the reactances cancel and only the resistance limits the current. The sharpness of the peak is the quality factor \(Q = \sqrt{L/C}/R\), and the half-power bandwidth is \(f_0/Q\). Marconi’s company bought the patent in 1912.
Implementation: engineeringkit.electrical_engineering.resonance_frequency()
and SeriesRLC (its
impedance, quality_factor and step_response). The example
measures the bandwidth and the rejection of a neighbouring station.
References: O. J. Lodge, “Improvements in syntonized telegraphy without line wires,” British Patent 11,575 (1897).
1897 – Steinmetz’s Induction Motor Equivalent Circuit#
Tesla’s induction motor had no connection to its rotor, so designers could not calculate it. Charles Proteus Steinmetz treated it as a transformer whose secondary winding is the rotor, shorted through a resistance \(R_2/s\) that grows as the slip \(s\) between the rotating field and the rotor falls. The power absorbed in \(R_2/s\) is the power crossing the air gap, and the torque follows from it. The resulting torque-speed curve rises to a breakdown torque that does not depend on the rotor resistance, which only sets the slip where it occurs. Wound-rotor motors exploit this by adding resistance to start at full torque. The “Steinmetz circuit” remains the textbook model of the motor that drives most of the world’s machinery.
Implementation: engineeringkit.electrical_engineering.induction_motor_torque()
and engineeringkit.electrical_engineering.induction_motor_breakdown().
The example draws the torque-speed curve of a four-pole motor and moves its
breakdown torque to standstill.
References: C. P. Steinmetz, “The alternating current induction motor,” Trans. AIEE 14 (1897) 183-217. The citation was checked against bibliographies of Steinmetz’s work, not a copy of the paper.
Steinmetz’s induction motor equivalent circuit (1897)
1918 – Fortescue’s Symmetrical Components#
Charles LeGeyt Fortescue of Westinghouse showed that any three phasors are the sum of three balanced sets: zero sequence (three equal phasors), positive sequence (rotation a-b-c) and negative sequence (a-c-b). In a symmetrical network the three sequences do not interact, so an unbalanced problem splits into three single-phase ones. His 114-page paper became the basis of fault analysis and protective relaying. A single line-to-ground fault, for instance, connects the three sequence networks in series.
Implementation: engineeringkit.electrical_engineering.symmetrical_components(),
engineeringkit.electrical_engineering.phase_components() and
engineeringkit.electrical_engineering.fault_currents(). The example
decomposes an unbalanced set, computes a line-to-ground fault and compares
the four fault types.
References: C. L. Fortescue, “Method of symmetrical co-ordinates applied to the solution of polyphase networks,” Trans. AIEE 37 (1918) 1027-1140.
1926 – Norton’s Equivalent Circuit#
Edward Lawry Norton of Bell Labs, in an internal memorandum on filter design, and Hans Ferdinand Mayer of Siemens, in a paper on the vacuum-tube amplifier, gave the dual of Thévenin’s theorem in the same year. A linear two-terminal network also acts as a current source \(V_{th}/R_{th}\) in parallel with the same resistance. Converting between the two forms (a source transformation) is a standard hand-analysis step, and the Norton form suits devices such as transistors that behave more like current sources.
Implementation: engineeringkit.electrical_engineering.norton_from_thevenin().
The example checks that the two forms are indistinguishable at the
terminals and combines two batteries in parallel.
References: E. L. Norton, “Design of finite networks for uniform frequency characteristic,” Bell Laboratories Technical Report TM26-0-1860 (1926); H. F. Mayer, “Ueber das Ersatzschema der Verstärkerröhre,” Telegraphen- und Fernsprech-Technik 15 (1926) 335-337.
1926 – Swing Curves and the Equal-Area Criterion#
Long lines brought a new failure: after a fault, the generators at the two ends could swing apart and fall out of step. Engineers at Westinghouse, R. D. Evans and C. F. Wagner among them, computed the rotor angle against time by integrating the swing equation \((2H/\omega_s)\ddot\delta = P_m - P_{max}\sin\delta\) step by step, by hand. For one machine against an infinite bus there is a shortcut. The kinetic energy the rotor gains while the fault holds the electrical power down must be given back after clearing, before the angle passes the unstable equilibrium. Equating the accelerating and decelerating areas under the power-angle curves gives the critical clearing angle without any integration. The criterion still sets the clearing times that protection must meet.
Implementation: engineeringkit.electrical_engineering.swing_response(),
returning a SwingResult,
engineeringkit.electrical_engineering.equal_area_clearing_angle()
and engineeringkit.electrical_engineering.critical_clearing_time().
The example finds the critical clearing time from the swing curves and
checks it against the equal-area angle.
References: R. D. Evans and C. F. Wagner, “Studies of transmission stability,” Trans. AIEE 45 (1926); E. W. Kimbark, Power System Stability, vol. 1 (New York: Wiley, 1948). The 1926 paper could not be checked while writing this entry: the attribution and date follow the power-system stability textbooks.
1927 – Budeanu’s Reactive Power and the Power Factor#
When the current lags the voltage, energy flows back and forth each half cycle without doing work, yet still loads the cables. Constantin Budeanu of Bucharest named this reactive power, \(Q = VI\sin\phi\), measured in vars, a unit the IEC adopted in 1930. Real power \(P = VI\cos\phi\), the apparent power \(S^2 = P^2 + Q^2\) and the power factor \(P/S\) became the vocabulary of tariffs and power-factor correction. For distorted waveforms Budeanu summed \(Q\) over harmonics and called the remainder distortion power. That definition is still debated, and IEEE 1459 (2000) replaced it.
Implementation: engineeringkit.electrical_engineering.real_power(),
engineeringkit.electrical_engineering.reactive_power(),
engineeringkit.electrical_engineering.power_factor() and
engineeringkit.electrical_engineering.rms_sine(). The example
recovers the power triangle from waveforms and computes the distortion
power of a harmonic-rich load.
References: C. I. Budeanu, Puissances réactives et fictives (Bucharest: Institut National Roumain pour l’Étude de l’Aménagement et de l’Utilisation des Sources d’Énergie, 1927).
Budeanu’s reactive power and the power factor (1927)
1939 – Smith’s Chart#
Phillip Hagar Smith of Bell Labs plotted the reflection coefficient \(\Gamma = (Z_L - Z_0)/(Z_L + Z_0)\) in the unit disc. Over it he drew circles of constant normalised resistance and arcs of constant reactance. Moving along a lossless line only rotates \(\Gamma\) about the centre at constant standing-wave ratio, so input impedances, standing waves and matching networks could be read off a sheet of paper instead of worked out with a slide rule. The chart outlived the slide rule: every vector network analyser still displays it.
Implementation: engineeringkit.electrical_engineering.reflection_coefficient(),
engineeringkit.electrical_engineering.standing_wave_ratio() and
engineeringkit.electrical_engineering.input_impedance(), drawn with
engineeringkit.electrical_engineering.visualizers.plot_smith_chart().
The example designs a single-stub match.
References: P. H. Smith, “Transmission line calculator,” Electronics 12 (January 1939) 29-31.
1947 – Ragazzini’s Operational Amplifier#
Wartime gun directors and the analog computers that followed them solved differential equations with high-gain DC amplifiers wrapped in feedback. John Ragazzini, Robert Randall and Frederick Russell of Columbia University analysed these circuits in 1947 and called them operational amplifiers, because each performed one mathematical operation. With enough gain the feedback holds the inverting input at a virtual ground, so the output depends only on the feedback network: a ratio of resistors scales, a feedback capacitor integrates. Integrated circuits made the op amp a cheap building block in the 1960s, and the same ideal-amplifier analysis is still the first circuit students learn after Ohm and Kirchhoff.
Implementation: engineeringkit.electrical_engineering.inverting_amplifier_gain(),
engineeringkit.electrical_engineering.noninverting_amplifier_gain()
and engineeringkit.electrical_engineering.op_amp_integrator(). The
example compares ideal and finite-gain amplifiers and builds an analog
computer that solves \(\ddot y = -\omega^2 y\).
References: J. R. Ragazzini, R. H. Randall and F. A. Russell, “Analysis of problems in dynamics by electronic circuits,” Proc. IRE 35 (1947) 444-452.
1949 – Shockley’s Diode Equation#
William Shockley of Bell Labs explained the p-n junction a year after the point-contact transistor. Minority carriers injected across the junction diffuse away and recombine, at a rate that grows as \(e^{qv/kT}\) with the applied voltage, so the current is \(i = I_S\left(e^{v/V_T} - 1\right)\), with \(V_T = kT/q\) about 26 mV at room temperature. The equation explains why a diode conducts one way, why its forward voltage rises about 60 mV per decade of current and falls with temperature, and it is the basis of the junction transistor model in the same paper. In a circuit the diode’s exponential meets the straight load line of the resistor in series with it at the operating point.
Implementation: engineeringkit.electrical_engineering.shockley_diode_current(),
engineeringkit.electrical_engineering.thermal_voltage() and
engineeringkit.electrical_engineering.diode_operating_point(). The
example solves a load line and checks the slope per decade and the
temperature coefficient.
References: W. Shockley, “The theory of p-n junctions in semiconductors and p-n junction transistors,” Bell Syst. Tech. J. 28 (1949) 435-489.
Shockley’s diode equation and the load line (1949)
1956 – Ward and Hale’s Digital Load Flow#
Power companies had studied their grids on AC network analysers, scale models built from resistors, inductors and capacitors. J. B. Ward and H. W. Hale of American Gas and Electric published the first practical digital method. They described the network by its bus admittance matrix and improved each bus voltage in turn from the power specified there, an iteration now called Gauss-Seidel. It needs little memory but converges slowly. Over-relaxation helps, and Newton-Raphson methods with sparse matrices replaced it in the 1960s.
Implementation: engineeringkit.electrical_engineering.admittance_matrix()
and engineeringkit.electrical_engineering.gauss_seidel_load_flow(),
returning a LoadFlowResult.
The example solves a five-bus network and checks it against SciPy’s
nonlinear solver.
References: J. B. Ward and H. W. Hale, “Digital computer solution of power-flow problems,” Trans. AIEE Part III 75 (1956) 398-404.
1967 – Tinney and Hart’s Newton-Raphson Load Flow#
Gauss-Seidel load flow converged slowly, and on large or heavily loaded networks not at all. Newton’s method converges quadratically, but its Jacobian has as many entries as the square of the number of buses, too many for the computers of the 1960s. William Tinney and Clifford Hart of the Bonneville Power Administration noticed that the Jacobian of a power network is almost all zeros. With the buses ordered so that its factorization stays sparse, a Newton step costs little more than a Gauss-Seidel sweep, and five steps solve the problem. Generator buses that hold their voltage magnitude (PV buses) are handled naturally. Newton- Raphson has been the standard power flow method since.
Implementation: engineeringkit.electrical_engineering.newton_raphson_load_flow(),
returning a LoadFlowResult.
The example solves a five-bus network with a generator bus and compares the
convergence with Gauss-Seidel.
References: W. F. Tinney and C. E. Hart, “Power flow solution by Newton’s method,” IEEE Trans. Power App. Syst. PAS-86 (1967) 1449-1460.