Convergence and Settings
DSE uses a nonlinear least squares solver with iterative updates to state variables (voltages). At each iteration, residuals (measured minus calculated values) are computed and weighted. The solution progresses until one of the following occurs:
Converged by Residual: The total residual norm is less than the configured minimum residual (DSE_MIN_RESIDUAL).
Converged by Step Size: The update step (change in state/voltage) is smaller than the configured minimum step size (DSE_MIN_STEP).
Maximum Iterations Reached: The number of iterations reaches the configured maximum without meeting a convergence criterion (DSE_MAX_ITER).
Note: A result with this may still be good, because often the residual converged (flat-lined) but the individual steps are just above the cutoff.
Solve Error or Model Error: The solver detects a numerical failure or an inconsistency in the model.
The configured weights can also influence the convergence. We allow globally defined defaults for all measurement types:
DSE_WEIGHT_KW: Default relative and absolute error for KW measurements. Larger errors reduce weight with the absolute error forming a ceiling or floor for values. Relative error allows measurements of the same type (particularly across phases of the same device) to have comparable influence.
DSE_WEIGHT_KVAR: Default relative and absolute error for KVAR measurements.
DSE_WEIGHT_AMPS: Default relative and absolute error for Amps measurements.
DSE_WEIGHT_KV: Default relative and absolute error for voltage magnitude (kV) measurements.
DSE_WEIGHT_ANGLE: Default relative and absolute error for angle measurements.
DSE_PSEUDO_WEIGHT: Default errors for pseudo measurements (for example, loads/gens/caps where direct telemetry is unavailable). These stabilize the solution when SCADA coverage is sparse; increasing these values reduces their influence if they dominate the fit.
DSE_ZEROINJ_WEIGHT: Error used for zero injection nodes (expected injection is zero). Increasing this value reduces the weight of the zero-injection constraint if it is too restrictive for your model.
Setting DSE_WEIGHT_KW/KVAR/AMPS/KV/ANGLE toward zero increases the match between DSE and Power flow with zero leading to a solution that is a near perfect match. Setting DSE_PSEUDO_WEIGHT/ DSE_ZEROINJ_WEIGHT toward zero reduce the influence of traditional power flow behavior, with a value of zero leading to a basic least squares fit on measurements alone leading to non-sensical results at non-measured devices.
Tuning Guidance
If solutions frequently end with MAX_ITERATION:
Relax minResidual slightly (looser target i.e., bigger number) or increase maxIterations modestly.
Relax minStepSize. Enabling DSE debug level 2 will show each iteration’s dx which this is checked against.
Reduce the influence of clearly noisy measurements by increasing their Relative/Absolute Error.
Ensure pseudo and zero-injection errors are balanced: too small may over-constrain; too large may under-constrain the system.
If solutions converge too early with insufficient fit quality:
Decrease minStepSize and/or minResidual to require tighter convergence.
Reduce overly large default errors on key, trusted measurements to increase their influence.
Configuration (Administration Users)
The following SRS rules need to be configured using the Configuration Assistant to control Distribution State Estimation (DSE) behavior.
Rule: DSE Max Iterations (DSE_MAX_ITER)
rule_value_integer_1: Maximum nonlinear iterations (integer >= 0). Default: 100.
 
Rule: DSE Minimum Step (DSE_MIN_STEP)
rule_value_2: Minimum step size tolerance (PU). Default: 1e-8. Must be > 0.
 
Rule: DSE Minimum Residual (DSE_MIN_RESIDUAL)
rule_value_2: Minimum residual norm. Default: 1e-6. Must be > 0.
 
Rule: DSE Bad Data PVal (DSE_BADDATA_PVAL)
rule_value_2: Chi-squared test p-value threshold (0 < p < 1). Default: 0.95.
 
Rule: DSE Bad Data Residual Tolerance (DSE_BADDATA_RES_TOL)
rule_value_2: Normalized residual tolerance (z-score). Default: 3. Must be > 0.
 
Rule: DSE Default Weight KW (DSE_WEIGHT_KW)
rule_value_1: Absolute error (%). Default: 0.5.
rule_value_2: Relative error (%). Default: 1.
 
Rule: DSE Default Weight KVAR (DSE_WEIGHT_KVAR)
rule_value_1: Absolute error (%). Default: 0.5.
rule_value_2: Relative error (%). Default: 3.
 
Rule: DSE Default Weight Amps (DSE_WEIGHT_AMPS)
rule_value_1: Absolute error (%). Default: 0.2.
rule_value_2: Relative error (%). Default: 3.
 
Rule: DSE Default Weight KV (DSE_WEIGHT_KV)
rule_value_1: Absolute error (%). Default: 0.05.
rule_value_2: Relative error (%). Default: 0.5.
 
Rule: DSE Default Weight Angle (DSE_WEIGHT_ANGLE)
rule_value_1: Absolute error (%). Default: 0.01.
rule_value_2: Relative error (%). Default: 25.
 
Rule: DSE Pseudo Measurement Weight (DSE_PSEUDO_WEIGHT)
rule_value_1: Absolute error (%). Default: 1.
rule_value_2: Relative error (%). Default: 50.
 
Rule: DSE Zero Injection Constraint (DSE_ZEROINJ_WEIGHT)
rule_value_2: Absolute error (%) for zero-injection constraint. Default: 0.1.
 
Rule: DSE Force Normalized Residuals (DSE_ALWAYS_COMPUTE_NORM_RES)
rule_value_integer_1: Enable: 0 - No, 1 - Yes. Default: 0.
Notes:
Setting relative/absolute error to 0 disables that measurement type (weight = 0).
Use conservative adjustments to percent inputs; larger values reduce measurement influence.
Zero-injection error that is too small can cause instability; too large can weaken observability.