State-Estimation Configuration

YAML pathTypeDefaultAllowed valuesMeaningUse whenAvoid whenPerformance impactInteractions
state_estimation.enabledBooltruetrue, falseEnables SE stage.Measurement-driven workflows.No measurement model/data.Extra nonlinear solve pass.update_net, PF start source.
state_estimation.methodSymbol/StringwlswlsState-estimation algorithm.Standard weighted least squares.Unsupported methods.Fixed current implementation.Validation rejects unsupported values.
state_estimation.tolFloat641e-6positive realSE convergence tolerance on the state step. The default sits AT the finite-difference noise floor (jac_eps), not below it: a tighter value is unreachable and the run clamps it with a log line.Default.Below jac_eps (unreachable).Tighter means more iterations.max_iter, jac_eps.
state_estimation.max_iterInt30positive integerIteration cap for the SE solver; the service and the Web UI form use the same value. Measured need on large sets: 2 to 11 iterations.Default.Raising it to outlast a diverging run (it will not converge later either).Runtime upper bound.tol, observability quality.
state_estimation.flatstartBooltruetrue, falseStart estimator from synthetic flat state.No trusted historical/SCADA initial state.When measured/historical start exists.Low.update_net and PF start chain.
state_estimation.jac_epsFloat641e-6positive realJacobian perturbation epsilon (numeric terms).Numeric stability tuning.Extreme epsilon values.Low/medium sensitivity impact.tol and convergence behavior.
state_estimation.update_netBooltruetrue, falseWrite estimated state back to network.PF should consume SE result as start.Isolated SE experiments only.Low.Links SE output to PF input.
state_estimation.pmu_ref_offsetSymbol/Stringautoauto, offPMU angle (VaMeas) reference handling: auto estimates a common reference-angle offset α between the PMU time base and the slack reference as an additional state.PMU angles referenced to a GPS time base (default-safe: α ≈ 0 when bases coincide).PMU angles guaranteed slack-referenced and the extra state is unwanted.One extra state column.VaMeas measurements, runse! keyword pmuRefOffset.
state_estimation.imag_activation_iterationInt2positive integerFirst WLS iteration in which current-magnitude measurements (ImagMeas) enter the update step; earlier iterations run without them.Current measurements present (flat-start protection).No ImagMeas in the set (no effect).None without currents.ImagMeas rows, runse! keyword imagActivationIteration.
state_estimation.report_residual_correlationBoolfalsetrue, falseAdds residual-correlation columns (max abs k per measurement, warning above 1/sqrt(2)) to the bad-data report.Investigating simple-redundant measurement groups.Routine runs (extra dense matrix work).One dense m x m pass in diagnostics.validate_measurements keyword reportResidualCorrelation.
state_estimation.update_shuntsBoolfalsetrue, falseWrite estimated shunt susceptances back into the model (Shunt.y_pu_shunt/B_shunt) after a converged run.Accepting the estimated shunt operating point as the new model.Model data must stay authoritative (default: estimation never overwrites silently).None.Released shunts (setShuntEstimation!), runse! keyword updateShunts, SEResult.shuntEstimates.
state_estimation.update_tapsBoolfalsetrue, falseWrite the FIXED mechanical tap positions of released transformers back into the model (tap_ratio/phase_shift_deg) after a converged fixed run; frozen regulators keep their model value.Accepting the fixed tap positions as the new model state.Model data must stay authoritative (default: estimation never overwrites silently).None.Released taps (setTapEstimation!), runse! keyword updateTaps, SEResult.tapEstimates/tapFixation.
state_estimation.topology_precheckBooltruetrue, falseRun the advisory stage-1 topology pre-checks at the start of every estimation (validate_topology); findings warn and land in SEResult.topologyFindings, nothing is blocked.Always (the checks are linear and cheap).Fully trusted topology where even the warnings are noise.Negligible.Topology validation.
state_estimation.topology_open_flow_kFloat644.0positiveSigma multiple above which a measured flow over an OPEN element is a status contradiction.Default.Rarely changed.None.validate_topology.
state_estimation.topology_dead_flow_kFloat643.0positiveSigma multiple below which a closed branch's flow measurements read dead (fires only with a loaded neighbourhood).Default.Rarely changed.None.validate_topology.
state_estimation.topology_voltage_kFloat644.0positiveSigma multiple for the voltage disagreement across a closed link.Default.Rarely changed.None.validate_topology.
state_estimation.topology_kcl_kFloat644.0positiveSigma multiple for the node-balance check at completely measured nodes.Default.Rarely changed.None.validate_topology.
state_estimation.topology_cluster_minInt3positive integerMinimum surviving suspects at one station for the stage-2 :topology_error_suspected_at_station classification.Default.Very small nets (every station clusters trivially).None.runse_diagnostics, Topology validation.
state_estimation.robustBoolfalsetrue, falseDEPRECATED, alias for robust_mode = staged and read only while robust_mode is off; set robust_mode instead and never both. Two-stage robust R modification: residuals beyond 3 sigma get widened solve weights, beyond 6 sigma the gradient contribution is suppressed. Statistics stay on original sigmas.Online smoothing with sporadic gross errors.Identification workflows (use sequential elimination there).One weight pass per iteration.robust_start_iteration, SEResult.robustRows, sequential elimination.
state_estimation.robust_start_iterationInt3positive integerFirst WLS iteration with robust weight modification; earlier iterations solve unmodified.Residuals are meaningless before the state settles.Rarely changed.None.robust.
state_estimation.robust_modeSymbol:offoff, staged, replacementRobust solve-weight family: staged is the two-stage R modification with knees robust_k1/robust_k2; replacement pins rows with converged rn >= k_suppress to the fixed suppression_sigma. Statistics always stay on original sigmas.Choosing between smoothing families; replacement mirrors an EMS suppression list.Identification-only workflows.replacement adds bounded re-solve rounds on the converged state.robust (legacy alias for staged), robust_k1, robust_k2, k_suppress, suppression_sigma.
state_estimation.k_eliminateFloat643.0positiveElimination limit on the normalized residual rn = r/sqrt(Omega_ii) (API keyword normalizedThreshold): past it a row is removed from the estimate, not just down-weighted.Loosening or tightening the bad-data identification.Rarely changed below 3.None.max_eliminations, band test :high, Web UI warning when k_suppress < k_eliminate.
state_estimation.robust_k1Float643.0positive, <= robust_k2Lower knee of the staged modification, on the RAW ratio `t =r/sigma(NOT the normalized residualrnthatkeliminateandksuppressuse); weights are unchanged up tot = k1` and the tangential band starts continuously there.Adjusting the smoothing onset.Defaults reproduce the classic 3/6 behavior bitwise.
state_estimation.robust_k2Float646.0>= robust_k1Upper knee of the staged modification, on the same raw ratio `r/sigmaasrobustk1; beyond it the gradient contribution is suppressed (sigmamod =r/k1`).
state_estimation.k_suppressFloat644.0positiveDown-weight limit: rows whose CONVERGED normalized residual rn = r/sqrt(Omega_ii) reaches it get the fixed replacement sigma during the solve. Same scale as k_eliminate, so the two limits are directly comparable.Online suppression of known-bad telemetry.Identification (the row stays visible in statistics either way).Bounded re-solve rounds.robust_mode = replacement, suppression_sigma, Web UI warning when below k_eliminate.
state_estimation.suppression_sigmaFloat642000.0positiveThe fixed sigma a suppressed row gets during the solve, in the measurement's unit; statistics and reports keep the original sigma.Effectively removing a row's pull without deleting it.Values near the real sigma (then use staged).None.robust_mode = replacement, k_suppress.
state_estimation.max_eliminationsInt3>= 0Budget of the sequential elimination: at most this many rows are removed in one diagnostics run. Not a limit but a stop condition; 0 disables the elimination and leaves the diagnostics reporting only.Sets with several independent gross errors.Raising it to chase a :high that elimination cannot cure: past three removals the cause is usually a model or topology error, and stage 2 says so.Each increment costs one further estimation run.k_eliminate, stop reasons :max_eliminations and :no_localizable_suspect.
state_estimation.rank_tol_factorFloat6410.0positive realFD-aware rank tolerance factor: observability rank decisions use factor * jacEps * sigma_max instead of an eps-scale threshold.Always (FD Jacobians have an O(jacEps) error floor).Exact analytic Jacobians passed with explicit tol.None.jac_eps, observability entry points, notes = [:structural_islands].
state_estimation.ia_current_floor_AFloat6410.0positive realFallback for the IaMeas activity gate: a current-angle row is active only while the predicted current magnitude passes 3 * sigma of its paired ImagMeas, or 3 * this floor (ampere) when no magnitude is paired.Current-phasor sets without magnitude pairs.Full phasor pairs (the paired sigma wins automatically).None.ImagMeas value gate, imag_activation_iteration, diagnostics gating_notes.
state_estimation.takahashi_min_statesInt200positive integerState count from which the diagnostics compute Omega_ii via the sparse Takahashi selected inverse instead of the dense pinv (measured crossover near 130 to 150 states; 4.6x at 1800).Large systems (default).Never needed manually; K-matrix requests and guard failures use dense automatically.Diagnostics only, not the solve.report_residual_correlation, omega_path in the diagnostics result.
state_estimation.observability.enabledBooltruetrue, falseRun observability checks.SCADA/SE validation workflows.Fast-only runs where observability not needed.Small extra analysis cost.Diagnostics/output verbosity.