Skip to main content

Electrochemical Impedance Spectroscopy

Explore the physics of impedance, equivalent circuits and frequency response through a guided interactive laboratory.
VIRTUAL LABORATORY / SIMULATOR 01

Electrochemical Impedance Spectroscopy

Explore how a simple electrochemical equivalent circuit responds to an alternating-current perturbation. Adjust the circuit parameters and observe the Nyquist and Bode plots update immediately.

Z(ω) = Rs + [ 1/Rct + jωCdl ]−1
Interactive EIS simulatorChange the circuit parameters and watch the Nyquist and Bode plots recalculate in real time.
Open simulator
<aside class="eis-panel" id="eis-controls">
  <div class="eis-panel-head"><small>LIVE SIMULATOR CONTROLS</small><h2>Adjust circuit parameters</h2><span class="eis-engine-status" id="eis-engine-status" role="status" aria-live="polite">Loading interactive model…</span></div>
  <div class="eis-controls">
    <div class="eis-control">
      <div class="eis-control-top"><label for="eis-rs">Solution / series resistance (Rₛ)</label><output id="eis-rs-out">20 Ω</output></div>
      <input id="eis-rs" type="range" min="0" max="200" step="1" value="20">
      <small>Ohmic contribution in series with the parallel branch.</small>
    </div>
    <div class="eis-control">
      <div class="eis-control-top"><label for="eis-rct">Charge-transfer resistance (Rct)</label><output id="eis-rct-out">500 Ω</output></div>
      <input id="eis-rct" type="range" min="10" max="2000" step="10" value="500">
      <small>Diameter of the ideal semicircle on the Nyquist plot.</small>
    </div>
    <div class="eis-control">
      <div class="eis-control-top"><label for="eis-cdl">Double-layer capacitance (Cdl)</label><output id="eis-cdl-out">10 µF</output></div>
      <input id="eis-cdl" type="range" min="0.1" max="100" step="0.1" value="10">
      <small>Capacitance of the ideal interfacial capacitor.</small>
    </div>
    <div class="eis-control">
      <div class="eis-control-top"><label for="eis-fmin">Minimum frequency</label><output id="eis-fmin-out">0.1 Hz</output></div>
      <input id="eis-fmin" type="range" min="-3" max="2" step="1" value="-1">
      <small>Logarithmic frequency sweep lower limit.</small>
    </div>
    <div class="eis-control">
      <div class="eis-control-top"><label for="eis-fmax">Maximum frequency</label><output id="eis-fmax-out">1 MHz</output></div>
      <input id="eis-fmax" type="range" min="2" max="7" step="1" value="6">
      <small>Logarithmic frequency sweep upper limit.</small>
    </div>
    <button class="eis-reset" id="eis-reset" type="button">Reset parameters</button>
    <div class="eis-error" id="eis-error" role="alert"></div>
  </div>
</aside>

<div class="eis-main">
  <section class="eis-circuit-card">
    <div class="eis-circuit-title"><strong>Equivalent circuit: Rₛ + (Rct ‖ Cdl)</strong><span>Ideal Randles-type model · no diffusion element</span></div>
    <svg class="eis-circuit-svg" viewBox="0 0 620 150" role="img" aria-label="Series resistor followed by parallel charge-transfer resistor and double-layer capacitor">
      <path class="wire" d="M25 74 H70 M125 74 H190 M190 74 V38 H245 M190 74 V112 H245 M300 38 H390 V74 H440 M300 112 H390 V74 M440 74 H490"/>
      <path class="component" d="M70 74 l8 -12 l12 24 l12 -24 l12 24 l11 -12"/>
      <path class="component" d="M245 38 l8 -10 l10 20 l10 -20 l10 20 l7 -10"/>
      <path class="component" d="M270 95 V129 M288 95 V129"/>
      <path class="wire" d="M245 112 H270 M288 112 H300 M270 95 V38 M288 129 V112"/>
      <circle class="node" cx="190" cy="74" r="3.5"/><circle class="node" cx="390" cy="74" r="3.5"/>
      <path class="wire" d="M490 74 H550"/>
      <text x="98" y="48" text-anchor="middle">Rₛ</text>
      <text x="273" y="15" text-anchor="middle">Rct</text>
      <text x="279" y="146" text-anchor="middle">Cdl</text>
      <text x="28" y="98">Input</text><text x="552" y="98">Output</text>
    </svg>
  </section>

  <div class="eis-metrics" aria-live="polite">
    <div class="eis-metric"><span>High-frequency intercept</span><strong id="eis-rinf">20 Ω</strong></div>
    <div class="eis-metric"><span>Low-frequency intercept</span><strong id="eis-rzero">520 Ω</strong></div>
    <div class="eis-metric"><span>Characteristic frequency</span><strong id="eis-fchar">31.8 Hz</strong></div>
    <div class="eis-metric"><span>Peak −Z″</span><strong id="eis-zpeak">250 Ω</strong></div>
  </div>

  <div class="eis-chart-grid">
    <section class="eis-chart">
      <div class="eis-chart-head"><strong>Nyquist plot</strong><span>−Z″ vs Z′</span></div>
      <svg id="eis-nyquist" viewBox="0 0 480 330" role="img" aria-label="Nyquist plot of real impedance against negative imaginary impedance"></svg>
      <p class="eis-chart-note">The ideal parallel Rct–Cdl branch produces a semicircle. The high-frequency intercept is Rₛ.</p>
    </section>
    <section class="eis-chart">
      <div class="eis-chart-head"><strong>Bode magnitude</strong><span>|Z| vs frequency</span></div>
      <svg id="eis-bode-mag" viewBox="0 0 480 330" role="img" aria-label="Bode magnitude plot"></svg>
      <p class="eis-chart-note">Magnitude is plotted on logarithmic axes against frequency.</p>
    </section>
    <section class="eis-chart">
      <div class="eis-chart-head"><strong>Bode phase</strong><span>Phase vs frequency</span></div>
      <svg id="eis-bode-phase" viewBox="0 0 480 330" role="img" aria-label="Bode phase plot"></svg>
      <p class="eis-chart-note">The ideal RC relaxation produces a phase minimum near the characteristic frequency.</p>
    </section>
    <section class="eis-chart">
      <div class="eis-chart-head"><strong>Frequency response</strong><span>Selected sweep</span></div>
      <div class="eis-reference">
        <div>Angular frequency: <b>ω = 2πf</b></div>
        <div>Time constant: <b>τ = Rct Cdl</b></div>
        <div>Characteristic frequency: <b>f₀ = 1/(2πτ)</b></div>
        <div>Capacitive impedance: <b>ZC = 1/(jωCdl)</b></div>
        <p class="eis-reference-note">Move the frequency limits to inspect a narrower or wider region of the response.</p>
      </div>
    </section>
  </div>
</div>

What happens when Rct increases?

The Nyquist semicircle becomes wider because its diameter equals Rct in this ideal model. The low-frequency real-axis intercept moves to higher impedance, while the high-frequency intercept remains set by Rs.

What happens when Cdl increases?

The characteristic frequency decreases because f₀ = 1/(2πRctCdl). The semicircle width does not change, but its frequency position shifts toward lower frequencies.

Model scope: This is an ideal, noise-free Rₛ + (Rct ‖ Cdl) model. It does not include a constant-phase element (CPE), Warburg diffusion, inductance, distributed relaxation times, electrode geometry, or instrument artefacts. Real ceramic and electrochemical systems may require more complex equivalent circuits. Simulated curves are not experimental data.