Harmonics & THD
Harmonic spectrum (order-by-order current/voltage distortion), the four-standard comparison (IEEE 519 / IEC 61000 / GB/T 14549 / ER G5/5), the converter-level harmonic power flow with node/branch detail, and the spectrum chart. Nothing is computed until you press Run.
Select or create a scheme to open this page
Not computed — press Run
Not computed — press Run
Not computed — press Run
Node admittance harmonic flow: each order solved, giving per-node THDu, per-order amplitude ratios and harmonic losses per branch.
About harmonics and THD
This page shows the harmonic distortion of the scheme in two independent ways. The classic study "harmonics" (engines/studies.js) works order by order on a single busbar with series impedance drop and rms / vector superposition, and prints the per-order content, THDu and THDi together with a four-standard limit comparison taken from engines/harmonic-limits.js (IEEE 519, IEC 61000-2-2 with IEC/TR 61000-3-6 planning levels, GB/T 14549-1993, and the optional ER G5/5). The converter-level product studyOptions.enableHarmonicFlow (engines/harmonic-flow.js) does a real harmonic-domain power flow: for each order h from 2 to hMax (default 25, ceiling 50) the frequency-corrected admittance matrix Y_h is assembled and solved as Y_h·U_h = I_h, giving a per-node voltage spectrum, per-branch harmonic currents and harmonic losses, a per-node THDu and a cross-check against the superposition result.
Harmonic distortion is what decides whether a passive filter or a detuned reactor has to be bought, and it is a grid-connection acceptance item: an over-limit THDu is a reason for the utility to refuse the connection, and an amplified order is what actually destroys capacitor banks and causes nuisance tripping. Working out the per-order table rather than a single THD number is what lets the reader see which order violates which standard, at which node, and whether the network is amplifying it (the network resonance rather than the load spectrum being the cause).
Input: transformer Sn and uk, load kW and cos φ, the nonlinear load spectrum, cable section / length and earth capacitance, capacitor bank kvar and detuning, external Ssc → chain: the fundamental current I1 is obtained, then the per-order source current I_h from the spectrum, then two parallel routes. Route one (superposition): single-busbar series impedance drop with rms / vector addition gives THDu and THDi. Route two (harmonic domain): every element is corrected for frequency — X_h = h·X1; R_h = R1·(1 + kSkin·√h + kEddy·h²) with kSkin default 0.02 (the same value as the resonance scan) and kEddy default 0 = switched off; cable B_h = h·B_50; a capacitor or filter branch uses Z_h = R_b·k_skin(h) + j·(h·X_L − X_C/h) with X_C = U²/Q, X_L = p·X_C and R_b = (X_C+X_L)/Qcap — then Y_h is built from the same network assembly as the resonance scan and solved, giving per-node U_h and per-node THDu = √(Σ U_h²)/U1, per-branch harmonic currents and Σ|I_b,h|²·R_b,h harmonic loss → the limit comparison runs on the single source harmonic-limits.js → output: the per-order table, per-node THDu, harmonic loss, the list of exceeded items and the crossCheck against the superposition method. Linkage: capacitor kvar changes the resonant order h0 = √(Ssc/Qc) and therefore the amplification of each order; the series detuning p sets the branch series resonance at 1/√p; cable section and length change both the earth-capacitance charging reactive power and the harmonic impedance, moving the resonance point; the transformer uk changes X1 and hence h0. Approximations, all disclosed: harmonic sources are ideal current sources and do not enter Y_h; no core saturation, no interharmonics, no time domain; the spectra are engineering typical values per industry; above 2.5 kHz (h > 50) the transformer model has no winding capacitance so the result is not valid; an amplification ratio above 20 is treated as non-physical and the order is set to null and flagged instead of printing a wild value.
Every number comes from the engine study (harmonics / harmonicFlow). Opening this page sends no engine request; results are cached by scheme fingerprint, so pressing Run twice sends nothing the second time.