Resonance scan
Full-spectrum |Z(f)| sweep with resonance points, the harmonics that land near a resonance, the valid frequency band and the async/partial status — lazy loaded, computed only when you ask for it.
Select or create a scheme to open this page
Not computed — press Run
Lazy: nothing runs until you press the button. The engine locates resonances with a coarse grid and then refines locally (scanPolicy=coarse+refine — never a full fine sweep), answers in ≤3 s and caches the result by fingerprint, so pressing the button again sends 0 requests.
About the resonance scan
This page sweeps the driving-point impedance |Z(f)| of the network to find where it resonates. The study is "resonance-scan": engines/resonance.js performs an adaptive full-spectrum sweep (a 10 Hz coarse pass locates peaks and valleys, then each peak and valley is refined to 1 Hz inside ±20 Hz; up to 20 peaks, at most 1500 points, each point solving a small matrix by LU and back-substitution without rebuilding the topology), while engines/harmonic-scan.js keeps the lighter default policy — analytical location h0 = √(Ssc/Qc), a 50 Hz grid, then 5 Hz refinement around each extreme. The result is the |Z(f)| curve, the resonance points, the harmonic orders that fall near a resonance, the valid frequency band and a risk grade. The card is lazy: it is a study that runs only when you press Run, long sweeps go through the asynchronous task channel, and the answer is cached by scheme fingerprint.
A capacitor bank in parallel with the system inductance resonates near h0, and at that order the network amplifies harmonic current and voltage instead of absorbing it. That amplification is the classic reason capacitor banks burn, fuses blow and sensitive equipment trips — and it is invisible in a single-order THD number. Sweeping |Z(f)| shows where the danger sits, so the detuning reactor (which places the branch series resonance at 1/√p) can be chosen to move the parallel resonance away from the dominant orders, and it is the check that the volt-VAR and filter pages re-use before they accept a capacitor step.
Input: external Ssc, the system harmonic reactance X1 (the same single source as the harmonic study), the total capacitor kvar including cable charging reactive power, the series detuning percentage, the capacitor quality factor Qcap (default 50), the topology with cable earth capacitance, and the sweep range and step → chain: Z_sys(h) = j·h·X1 for the system, Z_branch(h) = R_b + j·(h·X_L − X_C/h) for a capacitor branch with X_C = U²/Q, X_L = p·X_C and R_b = (X_C + X_L)/Qcap, and Z_bus(h) = Z_sys(h) ∥ Z_branch(h) with any filter branches in parallel as well → the driving-point impedance is solved frequency by frequency and its extremes are the resonance points → each resonance point is compared with the dominant orders (5 and 7, the two largest components of the nonlinear spectrum) and a risk flag is raised when a resonance has moved towards them → output: the |Z(f)| curve, resonance points, the harmonics that land nearby, the valid range (50 to 2500 Hz) and the risk grade. Linkage: capacitor kvar or Ssc change h0 directly; cable length and section add charging susceptance and can create a second resonance; adding 6% detuning puts the branch series resonance near 4.08 (1/√0.06), which is exactly why it avoids the 5th; and a filter branch added on the filters page enters this same Z(h) model, so filter design and resonance risk move together. Approximations, all disclosed: damping uses R_ac(f) = R_dc·(1 + 0.02·√(f/50)), an IEC 60287 order-of-magnitude simplification of skin effect, with all reactances proportional to frequency; loads are represented as R + j·hX to earth; inverter-connected sources (PV, storage, UPS, wind) are current sources and are deliberately not counted as parallel low-impedance paths; above 2.5 kHz the transformer has no winding capacitance so the result is not valid.
Engine study resonance-scan (lazy). Long sweeps go through the async task channel; the card keeps its own fingerprint cache, so a repeat press sends no request.