<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Zero Cross Engineering</title>
<link>https://zerocross.dev/</link>
<atom:link href="https://zerocross.dev/index.xml" rel="self" type="application/rss+xml"/>
<description>An applied engineering notebook on power system transients, power quality and inverter control, by Facundo Dimotta.</description>
<generator>quarto-1.10.18</generator>
<lastBuildDate>Thu, 27 Aug 2026 03:00:00 GMT</lastBuildDate>
<item>
  <title>Closing the Voltage Loop With a PR Controller: Filter Resonance, Finite Gain and Non-Linear Loads</title>
  <dc:creator>Facundo Dimotta</dc:creator>
  <link>https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/</link>
  <description><![CDATA[ 





<section id="the-question" class="level2">
<h2 class="anchored" data-anchor-id="the-question">The question</h2>
<p>A proportional-resonant (PR) controller is the textbook choice to regulate a sinusoidal voltage: it is supposed to deliver zero steady-state error at the fundamental. In this model, however, the output settles at <strong>89 % of the reference</strong>, and under a rectifier load the waveform <strong>flattens at the top</strong>.</p>
<p>Neither effect is a numerical artifact. Both follow directly from the model parameters, and both can be predicted with a two-line calculation.</p>
</section>
<section id="model" class="level2">
<h2 class="anchored" data-anchor-id="model">Model</h2>
<p>A single-phase full-bridge IGBT inverter, fed from an ideal DC link, drives an LC filter with a resistor across the capacitor (Figure&nbsp;1). The output voltage is compared with a 50 Hz reference; the error goes through a PR controller, is normalized by 1/311, limited to ±1 and fed to the PWM generator. Two breakers connect a non-linear load (diode bridge with a capacitive DC stage) at 0.2 s and a linear series RLC load at 0.4 s.</p>
<div id="fig-model" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-model-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/fig-model.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-model-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: Simulink model. Top: inverter, LC filter and the two switched loads. Bottom: voltage loop with the PR controller, normalization and saturation feeding the PWM generator.
</figcaption>
</figure>
</div>
<table class="zc-params caption-top table">
<caption>Model parameters.</caption>
<colgroup>
<col style="width: 50%">
<col style="width: 50%">
</colgroup>
<thead>
<tr class="header">
<th>Element</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>DC link</td>
<td>350 V (ideal source)</td>
</tr>
<tr class="even">
<td>Filter</td>
<td>L = 2 mH, C = 1000 µF, R = 100 Ω across C</td>
</tr>
<tr class="odd">
<td>Filter resonance</td>
<td><em>f</em><sub>r</sub> ≈ 112.5 Hz, Q ≈ 71</td>
</tr>
<tr class="even">
<td>Carrier frequency</td>
<td>1620 Hz</td>
</tr>
<tr class="odd">
<td>Reference</td>
<td>311 V peak, 50 Hz (220 V RMS)</td>
</tr>
<tr class="even">
<td>PR controller</td>
<td><em>K</em><sub>p</sub> = 1, <em>K</em><sub>r</sub> = 5, <em>ω</em><sub>c</sub> = 10 rad/s, tuned at 50 Hz</td>
</tr>
<tr class="odd">
<td>Modulator limit</td>
<td>±1 after normalization by 1/311</td>
</tr>
<tr class="even">
<td>Non-linear load (0.2 s)</td>
<td>diode bridge, 1000 µF, 10 Ω</td>
</tr>
<tr class="odd">
<td>Linear load (0.4 s)</td>
<td>series RLC: 2 mH, 150 µF</td>
</tr>
<tr class="even">
<td>Simulation</td>
<td>discrete, 1 µs step</td>
</tr>
</tbody>
</table>
<p>The resonance frequency and quality factor of the filter are</p>
<p><img src="https://latex.codecogs.com/png.latex?%0Af_r%20=%20%5Cfrac%7B1%7D%7B2%5Cpi%5Csqrt%7BLC%7D%7D%20%5Capprox%20112.5%5C%20%5Ctext%7BHz%7D%0A"></p>
<p><img src="https://latex.codecogs.com/png.latex?%0AQ%20=%20R%5Csqrt%7B%5Cfrac%7BC%7D%7BL%7D%7D%20%5Capprox%2071%0A"></p>
<p>The resonance sits only 2.25 times above the fundamental. That single fact explains most of what follows.</p>
</section>
<section id="results" class="level2">
<h2 class="anchored" data-anchor-id="results">Results</h2>
<section id="open-loop-saturation-plus-resonance" class="level3">
<h3 class="anchored" data-anchor-id="open-loop-saturation-plus-resonance">Open loop: saturation plus resonance</h3>
<p>With the feedback disconnected, the reference goes straight through the controller. At 50 Hz the PR gain is <em>K</em><sub>p</sub> + <em>K</em><sub>r</sub> = 6, so the modulator is driven six times beyond its limit and the inverter produces an almost square voltage (Figure&nbsp;2, top). Its fundamental is about <img src="https://latex.codecogs.com/png.latex?%5Ctfrac%7B4%7D%7B%5Cpi%7D%5Ccdot%20350%20%5Capprox%20446"> V. Because 50 Hz is close to the filter resonance, the filter amplifies it by</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%7CH(f_1)%7C%20%5Capprox%20%5Cfrac%7B1%7D%7B1-(f_1/f_r)%5E2%7D%20=%201.25,%0A"></p>
<p>which predicts a fundamental of about 555 V. The simulation gives <strong>575 V</strong>, with peaks of about 660 V and a THD of 20 %.</p>
<div id="fig-open-vs-closed" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-open-vs-closed-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/fig-open-vs-closed.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-open-vs-closed-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: Output voltage with the feedback disconnected (top) and connected (bottom), before any load is connected. Dashed lines: ±311 V reference.
</figcaption>
</figure>
</div>
</section>
<section id="closed-loop-89-of-the-reference" class="level3">
<h3 class="anchored" data-anchor-id="closed-loop-89-of-the-reference">Closed loop: 89 % of the reference</h3>
<p>With the loop closed, the resonance is gone within four cycles and the waveform is clean (THD 0.4 %). But the fundamental settles at <strong>278 V</strong>, not 311 V.</p>
<p>The cause is the <em>non-ideal</em> PR controller. The ideal PR has infinite gain at the fundamental; this one, with the damping term <em>ω</em><sub>c</sub>, has a finite gain <em>K</em><sub>r</sub> = 5. The loop gain at 50 Hz is then</p>
<p><img src="https://latex.codecogs.com/png.latex?%0AT(f_1)%20=%20V_%7Bdc%7D%5C,%7CH(f_1)%7C%5C,%5Cfrac%7BK_p+K_r%7D%7B311%7D%20=%20350%20%5Ccdot%201.25%20%5Ccdot%20%5Cfrac%7B6%7D%7B311%7D%20%5Capprox%208.4%0A"></p>
<p>and the closed-loop gain at the fundamental is</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cfrac%7BV_1%7D%7BV_%7Bref%7D%7D%20=%20%5Cfrac%7BT%7D%7B1+T%7D%20%5Capprox%200.894%20,%0A"></p>
<p>that is, 278 V. The simulation matches this value exactly. The modulator is not the limit: its input never exceeds 0.77, below the saturation limit of 1.</p>
</section>
<section id="load-steps-flat-topping" class="level3">
<h3 class="anchored" data-anchor-id="load-steps-flat-topping">Load steps: flat-topping</h3>
<p>The rectifier draws current only near the voltage peaks, and the controller, tuned only at 50 Hz, does not correct the resulting harmonics. The voltage flattens at the top (Figure&nbsp;3): THD rises to 9.7 % with the rectifier, and to 16.5 % when the RLC load is added. The fundamental stays at 278–279 V throughout.</p>
<div id="fig-closed-loop-events" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-closed-loop-events-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/fig-closed-loop-events.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-closed-loop-events-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: Closed loop. Top: output voltage over the whole simulation. Bottom: one cycle of each stage against the reference, with the fundamental V₁ and THD of each stage.
</figcaption>
</figure>
</div>
<p>Almost all the distortion is third harmonic (Figure&nbsp;4): about 9.5 % of the fundamental with the rectifier and about 16.4 % with both loads.</p>
<div id="fig-spectrum" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-spectrum-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/fig-spectrum.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-spectrum-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: Harmonic content of the output voltage in each stage, as a percentage of the fundamental.
</figcaption>
</figure>
</div>
</section>
<section id="does-the-loop-reject-the-harmonics-no-it-amplifies-them" class="level3">
<h3 class="anchored" data-anchor-id="does-the-loop-reject-the-harmonics-no-it-amplifies-them">Does the loop reject the harmonics? No: it amplifies them</h3>
<p>A fair way to answer this is to compare the closed loop with a <em>true</em> open loop: no feedback, no resonant term, and a fixed modulation index (0.638) that gives the same 278 V fundamental. With the rectifier connected, the open loop has a THD of 4.0 %; the closed loop, 9.7 %. The third harmonic grows from 3.8 % to 9.5 % of the fundamental (Figure&nbsp;5).</p>
<div id="fig-open-vs-closed-harmonics" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-open-vs-closed-harmonics-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/fig-open-vs-closed-harmonics.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-open-vs-closed-harmonics-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;5: Output voltage harmonics with the rectifier load (0.3–0.4 s): true open loop with the same fundamental, and PR closed loop.
</figcaption>
</figure>
</div>
<p>The loop gain explains why. Above the filter resonance (112.5 Hz), the LC filter inverts the phase of the signal. At the third harmonic the loop gain becomes negative, <em>T</em>(3<em>f</em><sub>1</sub>) ≈ −1.46, so the proportional feedback turns into positive feedback. The sensitivity function, which tells how much the loop multiplies a disturbance, is greater than one at every characteristic harmonic:</p>
<table class="zc-params caption-top table">
<caption>Loop gain and sensitivity at the fundamental and at the characteristic harmonics, from the model parameters.</caption>
<thead>
<tr class="header">
<th>Harmonic</th>
<th>Loop gain <em>T</em></th>
<th>|1/(1+<em>T</em>)|</th>
<th>Effect of the loop</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>1st (50 Hz)</td>
<td>8.41</td>
<td>0.11</td>
<td>reduces the error to 11 %</td>
</tr>
<tr class="even">
<td>3rd (150 Hz)</td>
<td>−1.46</td>
<td>2.10</td>
<td>amplifies about 2×</td>
</tr>
<tr class="odd">
<td>5th (250 Hz)</td>
<td>−0.29</td>
<td>1.40</td>
<td>amplifies</td>
</tr>
<tr class="even">
<td>7th (350 Hz)</td>
<td>−0.13</td>
<td>1.15</td>
<td>amplifies slightly</td>
</tr>
</tbody>
</table>
<p>The simulation agrees: the third-harmonic voltage per ampere of third-harmonic load current is 2.3 times higher in closed loop than in open loop. In this design, then, the loop neither damps the harmonics nor compensates them. Note also that for a single-phase rectifier the dominant harmonic is the third, not the 5th and 7th typical of three-phase bridges.</p>
<p>The DC voltage of the rectifier load follows the flattened peak (Figure&nbsp;6): it jumps to about 360 V at connection, when the discharged capacitor charges through the filter, and settles at about 236 V with both loads.</p>
<div id="fig-loads" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-loads-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/fig-loads.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-loads-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;6: Top: DC voltage of the rectifier load. Bottom: load currents. Vertical lines mark the connection of each load.
</figcaption>
</figure>
</div>
</section>
</section>
<section id="discussion" class="level2">
<h2 class="anchored" data-anchor-id="discussion">Discussion</h2>
<ul>
<li><strong>Place the filter resonance well away from the fundamental.</strong> Here it sits at 2.25 × <em>f</em><sub>1</sub>, where it amplifies the fundamental and any low-order harmonic, and falls inside the bandwidth the controller has to handle. A common design guideline places it roughly between 10 × <em>f</em><sub>1</sub> and half the switching frequency. With the same inductor, that means a much smaller capacitor.</li>
<li><strong>A non-ideal PR does not guarantee zero error.</strong> Its gain at the fundamental is finite and sets the steady-state error, as the calculation above shows. Raising <em>K</em><sub>r</sub> or reducing <em>ω</em><sub>c</sub> brings the output closer to the reference, at the cost of stability margin and sensitivity to frequency deviations.</li>
<li><strong>Non-linear loads need harmonic control, and a filter that allows it.</strong> A PR tuned only at 50 Hz does not compensate the harmonics; with the resonance below the third harmonic, this loop amplifies them. The usual remedy is to add resonant terms at the 3rd, 5th and 7th harmonics, but those terms only work if the loop keeps enough phase margin at those frequencies, which again depends on where the filter resonance sits.</li>
<li><strong>This is voltage control, not active damping.</strong> The closed loop suppresses the open-loop oscillation, but active damping usually refers to specific techniques, such as capacitor-current feedback or a virtual resistor, that add damping to the LC resonance itself. That is a natural next step for this model.</li>
</ul>
</section>
<section id="limitations" class="level2">
<h2 class="anchored" data-anchor-id="limitations">Limitations</h2>
<ul>
<li>The DC link is an ideal source; a real one would sag during the load steps.</li>
<li>Switches are ideal and there is no dead time.</li>
<li>The carrier frequency (27 × 60 Hz) and some powergui settings come from a 60 Hz template. They do not change the conclusions, but a revised model should use values chosen for a 50 Hz system.</li>
</ul>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>Revision history
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<p><strong>2026-09-22.</strong> Rewritten after re-running the model and extracting its parameters:</p>
<ul>
<li><strong>Figures regenerated</strong> from the simulation data instead of scope screenshots.</li>
<li><strong>The cause of the reduced amplitude was corrected.</strong> The original version attributed the ~240 V peak to the DC-link and modulation limits. An intermediate revision attributed it to controller saturation. Both were wrong: the controller output never exceeds 0.77. The 89 % amplitude comes from the finite gain of the non-ideal PR controller, and the ~240 V flat top from the non-linear load.</li>
<li><strong>Added the filter resonance</strong> (112.5 Hz), which the original did not report, and the calculations that reproduce the simulated values.</li>
<li><strong>Added the open-loop vs closed-loop harmonic comparison</strong>, following a question from readers on LinkedIn about whether the loop rejects the rectifier harmonics. It does not: in this design it amplifies them.</li>
<li>The system had been called a solid-state transformer (SST); it is a single-phase inverter with an LC filter.</li>
<li>“Active damping” was used for the PR voltage loop; clarified what the term usually means.</li>
</ul>
</div>
</div>
</div>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{dimotta2026,
  author = {Dimotta, Facundo},
  title = {Closing the {Voltage} {Loop} {With} a {PR} {Controller:}
    {Filter} {Resonance,} {Finite} {Gain} and {Non-Linear} {Loads}},
  date = {2026-08-27},
  url = {https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-dimotta2026" class="csl-entry quarto-appendix-citeas">
Dimotta, Facundo. 2026. <span>“Closing the Voltage Loop With a PR
Controller: Filter Resonance, Finite Gain and Non-Linear Loads.”</span>
August 27. <a href="https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/">https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/</a>.
</div></div></section></div> ]]></description>
  <category>Simulink</category>
  <category>control</category>
  <category>power electronics</category>
  <category>inverters</category>
  <category>power quality</category>
  <guid>https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/</guid>
  <pubDate>Thu, 27 Aug 2026 03:00:00 GMT</pubDate>
  <media:content url="https://zerocross.dev/posts/2026-08-27-pr-voltage-control-single-phase-inverter/fig-closed-loop-events.png" medium="image" type="image/png" height="97" width="144"/>
</item>
<item>
  <title>Why an Unloaded Inverter Rings at 500 Hz, and Why It Doesn’t Stop</title>
  <dc:creator>Facundo Dimotta</dc:creator>
  <link>https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/</link>
  <description><![CDATA[ 





<section id="the-question" class="level2">
<h2 class="anchored" data-anchor-id="the-question">The question</h2>
<p>Inverter-based resources (IBR) such as battery storage and PV connect through an output filter. In this model, the inverter runs without load for half a second before a resistor is connected. During that half second the output voltage oscillates at about 500 Hz with peaks of ±640 V, and the oscillation barely decays. Where does it come from, and why does it last?</p>
<p>This is an <strong>uncompensated baseline</strong>: open-loop modulation and an undamped filter. It is not a general property of inverters operating at low power. Real converters include damping and control precisely to avoid this, and the <a href="../../posts/2026-08-27-pr-voltage-control-single-phase-inverter/index.html">next study</a> closes the voltage loop.</p>
</section>
<section id="model" class="level2">
<h2 class="anchored" data-anchor-id="model">Model</h2>
<p>A full bridge fed from 350 V DC is driven by bipolar sinusoidal PWM with a 20 kHz carrier and a modulation index of 1 (Figure&nbsp;1). Its output goes through an inductor, an ideal 1:1 transformer and a second inductor to a 30 µF capacitor. A 10 Ω load is connected at 0.5 s.</p>
<div id="fig-schematic" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-schematic-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/fig-schematic.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-schematic-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: ATPDraw model: full bridge, ideal 1:1 transformer, LC filter and switched resistive load.
</figcaption>
</figure>
</div>
<table class="zc-params caption-top table">
<caption>Model parameters.</caption>
<colgroup>
<col style="width: 50%">
<col style="width: 50%">
</colgroup>
<thead>
<tr class="header">
<th>Element</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>DC source</td>
<td>350 V</td>
</tr>
<tr class="even">
<td>Modulation</td>
<td>bipolar SPWM, 20 kHz triangular carrier, m = 1</td>
</tr>
<tr class="odd">
<td>Filter</td>
<td>2.35 mH (primary) + 1 mH (secondary) = 3.35 mH; C = 30 µF</td>
</tr>
<tr class="even">
<td>Parasitic damping</td>
<td>15 kΩ and 35.25 kΩ across the inductors; 2.5 mΩ in series with C</td>
</tr>
<tr class="odd">
<td>Load</td>
<td>10 Ω, connected at 0.5 s</td>
</tr>
<tr class="even">
<td>Simulation</td>
<td>1 µs step, 1 s</td>
</tr>
</tbody>
</table>
</section>
<section id="results" class="level2">
<h2 class="anchored" data-anchor-id="results">Results</h2>
<section id="the-resonance" class="level3">
<h3 class="anchored" data-anchor-id="the-resonance">The resonance</h3>
<p>The filter resonance and its characteristic impedance are</p>
<p><img src="https://latex.codecogs.com/png.latex?%0Af_r%20=%20%5Cfrac%7B1%7D%7B2%5Cpi%5Csqrt%7BLC%7D%7D%20%5Capprox%20502%5C%20%5Ctext%7BHz%7D%0A"></p>
<p><img src="https://latex.codecogs.com/png.latex?%0AZ_0%20=%20%5Csqrt%7B%5Cfrac%7BL%7D%7BC%7D%7D%20%5Capprox%2010.6%5C%20%5COmega%20.%0A"></p>
<p>The spectrum of the capacitor voltage without load has exactly two components: the 50 Hz fundamental and a line at 502 Hz (Figure&nbsp;2). The oscillation is the filter’s free response, excited when the inverter starts at <em>t</em> = 0 with the filter discharged. The 20 kHz switching is 40 times above the resonance and the filter attenuates it strongly.</p>
<div id="fig-spectrum" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-spectrum-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/fig-spectrum.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-spectrum-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: Spectrum of the capacitor voltage without load (0–0.5 s). The only component besides the fundamental is the filter resonance.
</figcaption>
</figure>
</div>
</section>
<section id="why-it-doesnt-stop" class="level3">
<h3 class="anchored" data-anchor-id="why-it-doesnt-stop">Why it doesn’t stop</h3>
<p>The only damping comes from the parasitic elements. Referred to a series resistance at 502 Hz they add up to about 4.7 mΩ, which gives</p>
<p><img src="https://latex.codecogs.com/png.latex?%0AQ%20=%20%5Cfrac%7BZ_0%7D%7BR%7D%20%5Capprox%202200,%0A%5Cqquad%0A%5Ctau%20=%20%5Cfrac%7B2L%7D%7BR%7D%20%5Capprox%201.4%5C%20%5Ctext%7Bs%7D.%0A"></p>
<p>With a time constant of 1.4 s, the oscillation should lose about a quarter of its amplitude in 0.4 s. The simulation agrees: the 502 Hz component falls from 289 V to 223 V between the first and the fifth 100 ms window (Figure&nbsp;3).</p>
<div id="fig-voltage-overview" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-voltage-overview-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/fig-voltage-overview.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-voltage-overview-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: Voltage across the filter capacitor over the whole simulation. The 10 Ω load is connected at 0.5 s.
</figcaption>
</figure>
</div>
</section>
<section id="what-the-load-does" class="level3">
<h3 class="anchored" data-anchor-id="what-the-load-does">What the load does</h3>
<p>Connecting 10 Ω across the capacitor lowers the quality factor to about <em>R</em>/<em>Z</em><sub>0</sub> ≈ 0.95. The oscillation is gone within a cycle, and the output settles at <strong>335 V</strong> peak with a THD of <strong>1.6 %</strong> (Figure&nbsp;4). The peaks flatten slightly because with <em>m</em> = 1 the sine reaches the carrier peak.</p>
<div id="fig-cycles" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-cycles-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/fig-cycles.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-cycles-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: Two cycles of the capacitor voltage without load (left) and with the 10 Ω load (right).
</figcaption>
</figure>
</div>
</section>
</section>
<section id="discussion" class="level2">
<h2 class="anchored" data-anchor-id="discussion">Discussion</h2>
<p>The severe behavior is not caused by operating at no load. It is the response of an uncompensated converter-filter system: an LC with almost no damping, excited by the start-up and with no control acting on it. Real converters avoid it with some combination of:</p>
<ul>
<li><strong>passive damping</strong>, a resistor in the filter branch, at the cost of losses;</li>
<li><strong>active damping</strong>, usually feedback of the capacitor current or a virtual resistor in the control;</li>
<li><strong>soft start</strong>, ramping the voltage up instead of applying it at once;</li>
<li><strong>closed-loop control</strong> of the output voltage;</li>
<li>and, when grid-connected, the damping provided by the grid impedance and other loads.</li>
</ul>
<p>Which one is needed, and how much, depends on the filter design, the control and the strength of the grid.</p>
</section>
<section id="limitations" class="level2">
<h2 class="anchored" data-anchor-id="limitations">Limitations</h2>
<ul>
<li>Open-loop modulation, ideal DC source and ideal switches.</li>
<li>The ideal transformer does not model magnetizing current or saturation.</li>
<li>The result depends on the start-up conditions: a different starting angle or a soft start changes the initial amplitude of the oscillation, not its frequency or decay.</li>
</ul>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>Revision history
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<p><strong>2026-09-23.</strong> Rewritten, following comments on LinkedIn that pointed out that the resonance reflects the filter and control design rather than a general limitation of inverter-based resources:</p>
<ul>
<li>The system had been described as a solid-state transformer (SST). It is a full-bridge inverter with a low-frequency transformer and an LC filter.</li>
<li>The oscillation was attributed to the switching harmonics. It is the free response of the filter, excited by the start-up; the resonance frequency (502 Hz), the quality factor and the decay time are now calculated from the model.</li>
<li>The carrier offset (0.94) left the triangular carrier off-center and produced a small DC component; the carrier is now centered with unit amplitude.</li>
<li>Figures regenerated from the simulation data.</li>
</ul>
</div>
</div>
</div>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{dimotta2026,
  author = {Dimotta, Facundo},
  title = {Why an {Unloaded} {Inverter} {Rings} at 500 {Hz,} and {Why}
    {It} {Doesn’t} {Stop}},
  date = {2026-05-29},
  url = {https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-dimotta2026" class="csl-entry quarto-appendix-citeas">
Dimotta, Facundo. 2026. <span>“Why an Unloaded Inverter Rings at 500 Hz,
and Why It Doesn’t Stop.”</span> May 29. <a href="https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/">https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/</a>.
</div></div></section></div> ]]></description>
  <category>ATPDraw</category>
  <category>EMT</category>
  <category>power electronics</category>
  <category>inverters</category>
  <guid>https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/</guid>
  <pubDate>Fri, 29 May 2026 03:00:00 GMT</pubDate>
  <media:content url="https://zerocross.dev/posts/2026-05-29-lc-filter-resonance-no-load/fig-cycles.png" medium="image" type="image/png" height="58" width="144"/>
</item>
<item>
  <title>The Return Path: What Flows in the Neutral With a Single-Phase Rectifier</title>
  <dc:creator>Facundo Dimotta</dc:creator>
  <link>https://zerocross.dev/posts/2026-03-17-neutral-return-path/</link>
  <description><![CDATA[ 





<section id="the-question" class="level2">
<h2 class="anchored" data-anchor-id="the-question">The question</h2>
<p>In textbook models the neutral is an ideal reference node. In a real LV network it is a conductor with its own impedance, and it carries two different things: the imbalance of the fundamental currents and the zero-sequence harmonics injected by non-linear loads. This study separates the two with one rectifier load and a phase transfer.</p>
</section>
<section id="model" class="level2">
<h2 class="anchored" data-anchor-id="model">Model</h2>
<p>A three-phase source with a grounded star feeds three phases through a weak LV line (Figure&nbsp;1). Each phase has an R-L load; a single-phase rectifier is connected to phase B and returns to ground through an explicit neutral impedance <em>Z</em><sub>N</sub>. At 0.20 s phase B opens, and at 0.21 s its node is tied to phase A.</p>
<div id="fig-topology" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-topology-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-03-17-neutral-return-path/fig-topology.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-topology-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: ATPDraw model: source with grounded star, two line sections per phase, R-L loads, and the rectifier on phase B returning through Z_N.
</figcaption>
</figure>
</div>
<table class="zc-params caption-top table">
<caption>Model parameters.</caption>
<colgroup>
<col style="width: 50%">
<col style="width: 50%">
</colgroup>
<thead>
<tr class="header">
<th>Element</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Source</td>
<td>220 V RMS phase (311 V peak), star grounded</td>
</tr>
<tr class="even">
<td>Line</td>
<td>two sections of 2 Ω + 1 mH per phase (4 Ω + 2 mH in total)</td>
</tr>
<tr class="odd">
<td>Loads</td>
<td>50 Ω + 10 mH per phase (5.8 A peak)</td>
</tr>
<tr class="even">
<td>Rectifier</td>
<td>full bridge, fed through 2 Ω; DC: 1 Ω, 1000 µF, 50 Ω</td>
</tr>
<tr class="odd">
<td>Neutral impedance <em>Z</em><sub>N</sub></td>
<td>1 Ω, in the return of the rectifier</td>
</tr>
<tr class="even">
<td>Transfer</td>
<td>phase B opens at 0.20 s; its node is tied to phase A at 0.21 s</td>
</tr>
<tr class="odd">
<td>Simulation</td>
<td>1 µs step, 0.4 s</td>
</tr>
</tbody>
</table>
</section>
<section id="results" class="level2">
<h2 class="anchored" data-anchor-id="results">Results</h2>
<section id="with-the-rectifier-on-phase-b" class="level3">
<h3 class="anchored" data-anchor-id="with-the-rectifier-on-phase-b">With the rectifier on phase B</h3>
<p>The three R-L loads are balanced, so their currents cancel in the neutral. What remains is the rectifier current: the neutral carries <strong>6.9 A</strong> of fundamental and <strong>3.8 A</strong> of third harmonic, a THD of 57 % (Figure&nbsp;2, left). The third harmonic is more than half of the fundamental.</p>
<div id="fig-currents" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-currents-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-03-17-neutral-return-path/fig-currents.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-currents-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: Phase and neutral currents, one cycle with the rectifier on phase B (left) and one after the transfer to phase A (right).
</figcaption>
</figure>
</div>
</section>
<section id="after-the-transfer-to-phase-a" class="level3">
<h3 class="anchored" data-anchor-id="after-the-transfer-to-phase-a">After the transfer to phase A</h3>
<p>Phase A now feeds its own load, the load of the B node and the rectifier; phase B carries nothing. The imbalance raises the neutral fundamental to <strong>15.6 A</strong>, while the third harmonic stays at <strong>3.6 A</strong>, because it still comes from the same single rectifier (Figure&nbsp;3). The THD drops to 23 %, not because there is less harmonic current, but because the fundamental grew.</p>
<div id="fig-neutral-spectrum" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-neutral-spectrum-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-03-17-neutral-return-path/fig-neutral-spectrum.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-neutral-spectrum-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: Neutral current spectrum with the rectifier on phase B, and after the transfer to phase A.
</figcaption>
</figure>
</div>
</section>
<section id="voltage-at-the-load" class="level3">
<h3 class="anchored" data-anchor-id="voltage-at-the-load">Voltage at the load</h3>
<p>With 4 Ω of line per phase, the node that feeds the rectifier drops to <strong>285 V</strong> peak (fundamental) against 299 V at a node with only the R-L load, and shows a voltage THD of <strong>2.8 %</strong>, almost all third harmonic (Figure&nbsp;4). The rectifier return current, about 12 A peak, also raises the voltage across <em>Z</em><sub>N</sub> to about 12 V peak.</p>
<div id="fig-node-voltage" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-node-voltage-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-03-17-neutral-return-path/fig-node-voltage.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-node-voltage-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: Voltage at the rectifier node and at the node of phase C, one cycle before the transfer.
</figcaption>
</figure>
</div>
</section>
</section>
<section id="discussion" class="level2">
<h2 class="anchored" data-anchor-id="discussion">Discussion</h2>
<ul>
<li><strong>The neutral carries two different currents.</strong> The fundamental component depends on how balanced the phases are; the triplen harmonics depend on the non-linear loads. A transfer that worsens the balance can multiply the first without changing the second, as in this case.</li>
<li><strong>Triplen harmonics add up in the neutral.</strong> Third harmonics from loads on different phases are in phase with each other, so they add instead of cancelling. With a single rectifier, the neutral simply carries all of its third harmonic. With one rectifier per phase, the neutral third harmonic would be about three times larger even with perfectly balanced loads. That is the natural next case to simulate.</li>
<li><strong>Neutral point displacement needs a weak neutral.</strong> In this model the source star is solidly grounded and the loads return directly to ground, so the star point does not move. Studying displacement and overvoltages on lightly loaded phases requires modeling the neutral conductor itself, with its impedance, along the feeder.</li>
</ul>
</section>
<section id="limitations" class="level2">
<h2 class="anchored" data-anchor-id="limitations">Limitations</h2>
<ul>
<li>The neutral impedance is modeled only in the rectifier return; the R-L loads return directly to ground.</li>
<li>At <em>t</em> = 0 the neutral current shows a 3.1 kA spike lasting a single time step (1 µs). It is an initialization artifact (the DC capacitor starts charged while the rest of the circuit starts at zero) and is excluded from the analysis.</li>
<li>One rectifier; no interaction between several non-linear loads.</li>
</ul>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>Revision history
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<p><strong>2026-09-23.</strong> Model updated and publication rewritten:</p>
<ul>
<li>The “linear” loads were series RLC branches with 5 µF, which made them capacitive; they are now R-L.</li>
<li>Node labels were crossed with respect to the sources; corrected.</li>
<li>The 3 kA spike was previously described first as a real inrush and later as the energization of a discharged capacitor. It lasts one time step and is an initialization artifact.</li>
<li>Neutral point displacement and flat-topping were described as results; the model does not show them. They are now discussed as the subject of a future case.</li>
<li>Figures regenerated from the simulation data.</li>
</ul>
</div>
</div>
</div>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{dimotta2026,
  author = {Dimotta, Facundo},
  title = {The {Return} {Path:} {What} {Flows} in the {Neutral} {With} a
    {Single-Phase} {Rectifier}},
  date = {2026-03-17},
  url = {https://zerocross.dev/posts/2026-03-17-neutral-return-path/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-dimotta2026" class="csl-entry quarto-appendix-citeas">
Dimotta, Facundo. 2026. <span>“The Return Path: What Flows in the
Neutral With a Single-Phase Rectifier.”</span> March 17. <a href="https://zerocross.dev/posts/2026-03-17-neutral-return-path/">https://zerocross.dev/posts/2026-03-17-neutral-return-path/</a>.
</div></div></section></div> ]]></description>
  <category>ATPDraw</category>
  <category>EMT</category>
  <category>power quality</category>
  <category>LV distribution</category>
  <guid>https://zerocross.dev/posts/2026-03-17-neutral-return-path/</guid>
  <pubDate>Tue, 17 Mar 2026 03:00:00 GMT</pubDate>
  <media:content url="https://zerocross.dev/posts/2026-03-17-neutral-return-path/fig-currents.png" medium="image" type="image/png" height="63" width="144"/>
</item>
<item>
  <title>Transferring a Non-Linear Load Between Phases in a LV Network</title>
  <dc:creator>Facundo Dimotta</dc:creator>
  <link>https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/</link>
  <description><![CDATA[ 





<section id="the-question" class="level2">
<h2 class="anchored" data-anchor-id="the-question">The question</h2>
<p>Single-phase loads are often moved between phases to rebalance a LV feeder, and some devices do it automatically. When the load is a rectifier with a capacitive DC bus, as most electronic loads are, two questions come up: how much does it distort the network, and what does the transfer itself do to the load?</p>
</section>
<section id="model" class="level2">
<h2 class="anchored" data-anchor-id="model">Model</h2>
<p>The network is a typical urban LV supply (Figure&nbsp;1): a 13.2 kV source, a 315 kVA Dyn transformer, 200 m of aluminium cable, and a LV bus with one R-L load per phase. A single-phase full-bridge rectifier with a capacitive DC stage is connected to phase A. At 0.60 s the phase-A switch opens and, at 0.61 s, a transfer switch connects the node to phase B.</p>
<div id="fig-topology" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-topology-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/fig-topology.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-topology-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: Simplified diagram. The MV source, transformer and cable are drawn as a single line; the LV bus is drawn per phase.
</figcaption>
</figure>
</div>
<table class="zc-params caption-top table">
<caption>Model parameters.</caption>
<colgroup>
<col style="width: 50%">
<col style="width: 50%">
</colgroup>
<thead>
<tr class="header">
<th>Element</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>MV source</td>
<td>13.2 kV line-to-line, ideal</td>
</tr>
<tr class="even">
<td>Transformer</td>
<td>315 kVA, Dyn, 13.2/0.4 kV, <em>u</em><sub>k</sub> = 4 % (R = 6.6 mΩ, L = 0.061 mH referred to LV)</td>
</tr>
<tr class="odd">
<td>Cable</td>
<td>200 m, Al 3×95 mm²: 0.064 Ω + 0.051 mH per phase (positive sequence)</td>
</tr>
<tr class="even">
<td>Linear loads</td>
<td>20 Ω + 50 mH per phase (12.2 A peak, about 1.5 kW each)</td>
</tr>
<tr class="odd">
<td>Rectifier</td>
<td>single-phase full bridge, 1000 µF, 50 Ω (about 1.5 kW)</td>
</tr>
<tr class="even">
<td>Transfer</td>
<td>phase A opens at 0.60 s; tie to phase B closes at 0.61 s</td>
</tr>
<tr class="odd">
<td>Simulation</td>
<td>1 µs step, 1 s</td>
</tr>
</tbody>
</table>
</section>
<section id="results" class="level2">
<h2 class="anchored" data-anchor-id="results">Results</h2>
<section id="harmonic-content" class="level3">
<h3 class="anchored" data-anchor-id="harmonic-content">Harmonic content</h3>
<p>The rectifier only draws current near the voltage peaks. The current of phase A has a fundamental of 21.1 A plus 9.0 A of third, 6.2 A of fifth and 3.2 A of seventh harmonic: a THD of <strong>55 %</strong> (Figure&nbsp;2, Figure&nbsp;3).</p>
<p>The voltage barely notices. At the LV bus the voltage THD is <strong>0.7 %</strong>: with a 315 kVA transformer and 200 m of cable, the network is stiff and the harmonic currents produce small voltage drops.</p>
<div id="fig-phase-currents" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-phase-currents-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/fig-phase-currents.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-phase-currents-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: Phase currents at the LV bus, one cycle before and one after the transfer.
</figcaption>
</figure>
</div>
<p>After the transfer, phase B carries its own load plus the transferred one: its current rises from 12.2 A to <strong>32.6 A</strong> (fundamental) with a THD of 35 %, and phase A drops to zero.</p>
<div id="fig-current-spectrum" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-current-spectrum-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/fig-current-spectrum.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-current-spectrum-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: Harmonic content of the current in the phase that feeds the rectifier, before (phase A) and after (phase B) the transfer.
</figcaption>
</figure>
</div>
</section>
<section id="the-transfer-itself" class="level3">
<h3 class="anchored" data-anchor-id="the-transfer-itself">The transfer itself</h3>
<p>Two details of the transfer only show up in the simulation (Figure&nbsp;4):</p>
<ul>
<li><strong>The switch does not open at 0.60 s.</strong> Like a real breaker, the ATP switch interrupts at the next current zero, which comes at 608.8 ms. The load is left without supply for only <strong>1.2 ms</strong>.</li>
<li><strong>What hurts the load is the phase jump, not the interruption.</strong> At 0.61 s the node reconnects to a voltage shifted by −120°. The DC capacitor, which only recharges when the supply voltage exceeds its own, keeps discharging until phase B’s voltage catches up. The DC bus falls from its normal 255–295 V ripple to <strong>227 V</strong> at 616 ms. The first recharge then draws a 52 A peak from phase B, against 45 A in steady state.</li>
</ul>
<div id="fig-transfer" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-transfer-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/fig-transfer.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-transfer-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: The transfer event. Shaded: time without supply. Top: voltage at the transferred load node. Middle: currents of phases A and B. Bottom: DC voltage of the rectifier load.
</figcaption>
</figure>
</div>
</section>
</section>
<section id="discussion" class="level2">
<h2 class="anchored" data-anchor-id="discussion">Discussion</h2>
<ul>
<li><strong>For capacitor-input loads, the reconnection instant matters more than the speed.</strong> Interrupting at current zero, as any breaker or static switch does, is clean. The dip comes from reconnecting to a voltage that is, at that instant, below the DC bus voltage. Choosing the reconnection instant, for example when the target phase is near its peak, would reduce both the dip and the inrush.</li>
<li><strong>The load moves its harmonics with it.</strong> In a stiff network the voltage hardly changes, but the current of the receiving phase nearly triples in this case. Automatic phase balancing has to consider both the fundamental and the harmonic content of what it moves.</li>
</ul>
</section>
<section id="limitations" class="level2">
<h2 class="anchored" data-anchor-id="limitations">Limitations</h2>
<ul>
<li>The MV source is ideal and the cable is modeled with positive-sequence parameters only.</li>
<li>Switches are ideal: they open at current zero, with no arc.</li>
<li>During the 1.2 ms without supply, the isolated node shows numerical ringing in the voltage trace; it does not affect the rest of the results.</li>
<li>One rectifier and one transfer event; aggregate effects of many loads were not studied.</li>
</ul>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>Revision history
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<p><strong>2026-09-23.</strong> Model rebuilt and publication rewritten:</p>
<ul>
<li>The previous model had no source or line impedance, fed the rectifier through a 5 µF series capacitor that limited it to about 80 W, and used series RLC branches with 5 µF as “linear” loads, which made them capacitive. It now uses a transformer, a cable and R-L loads with realistic values.</li>
<li>The previous text described a 10 ms dead time. ATP opens switches at current zero, so the actual interruption is 1.2 ms; the DC dip comes from the phase jump.</li>
<li>“Microsecond-level control” and “SST” (for <em>solid-state technology</em>) were removed.</li>
<li>Figures regenerated from the simulation data.</li>
</ul>
</div>
</div>
</div>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{dimotta2026,
  author = {Dimotta, Facundo},
  title = {Transferring a {Non-Linear} {Load} {Between} {Phases} in a
    {LV} {Network}},
  date = {2026-03-10},
  url = {https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-dimotta2026" class="csl-entry quarto-appendix-citeas">
Dimotta, Facundo. 2026. <span>“Transferring a Non-Linear Load Between
Phases in a LV Network.”</span> March 10. <a href="https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/">https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/</a>.
</div></div></section></div> ]]></description>
  <category>ATPDraw</category>
  <category>EMT</category>
  <category>power quality</category>
  <category>LV distribution</category>
  <guid>https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/</guid>
  <pubDate>Tue, 10 Mar 2026 03:00:00 GMT</pubDate>
  <media:content url="https://zerocross.dev/posts/2026-03-10-non-linear-load-phase-transfer/fig-transfer.png" medium="image" type="image/png" height="101" width="144"/>
</item>
</channel>
</rss>
