RollingPhaseEstimator Class

Represents a rolling six-phase estimator using a sliding DFT algorithm with optional smoothing.

Definition

Namespace: Gemstone.PhasorProtocols.SelCWS
Assembly: Gemstone.PhasorProtocols (in Gemstone.PhasorProtocols.dll) Version: 1.0.166 -- Release Build+4f9601ce2fc7721cafe5edaeacb540e40faa3f58
public sealed class RollingPhaseEstimator
Inheritance
Object    RollingPhaseEstimator

Remarks

This class implements a real-time phasor measurement algorithm suitable for power system applications. It uses a Sliding Discrete Fourier Transform (SDFT) approach to efficiently compute phasors at each sample with O(1) complexity.

Frequency estimation is performed by tracking the rate of change of phase angle from the reference channel (VA by default). The SDFT twiddle factor rotation removes the nominal bin frequency component, so residual phase changes between samples directly represent frequency deviation from nominal. The frequency and ROCOF outputs are smoothed using exponential moving average filters.

The algorithm is designed for nominal 50Hz or 60Hz systems sampled at 3000Hz, but can be configured for other sample rates.

Magnitude Output:
The magnitude output represents the RMS value of the fundamental frequency component. If input data is already normalized (per-unit values with peak ≈ 1.0), the output RMS magnitudes will be approximately 1/√2 ≈ 0.707 per unit. To obtain actual engineering units, multiply output magnitudes by the appropriate scaling factor (e.g., VT/CT ratios or nominal voltage/current values).

Constructors

RollingPhaseEstimator Initializes a new instance of the RollingPhaseEstimator class with independent input sample rate and output publish rate, plus smoothing expressed as time constants (τ).

Properties

IsReady Gets whether the estimator has filled its window and is producing valid estimates.
NominalFrequencyHz Gets the nominal frequency in Hz.
OutputRateHz Gets the configured output publish rate in Hz.
ReferenceChannel Gets the reference channel index used for frequency tracking (typically VA).
SampleRateHz Gets the configured sample rate in Hz.
TotalSamplesProcessed Gets the total number of samples processed.
WindowSamples Gets the number of samples in the analysis window.

Methods

EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Reset Resets the estimator to its initial state.
Step Push one interleaved sample-group (IA, IB, IC, VA, VB, VC) with its epoch nanoseconds.
ToStringReturns a string that represents the current object.
(Inherited from Object)

Fields

DefaultEnableIntervalAveraging Default value for determining if interval averaging is enabled.
DefaultEnablePublishEMA Default value for determining if EMA publishing is enabled.
DefaultPublishAnglesTauSeconds Default value for EMA time constant τ (seconds) published angles.
DefaultPublishFrequencyTauSeconds Default value for EMA time constant τ (seconds) published frequency.
DefaultPublishMagnitudesTauSeconds Default value for EMA time constant τ (seconds) published RMS magnitudes.
DefaultPublishRocofTauSeconds Default value for EMA time constant τ (seconds) published ROCOF.
DefaultRecalculationCycles Default value for number of recalculation cycles.
DefaultReferenceChannel Default value for reference channel.
DefaultSampleFrequencyTauSeconds Default value for EMA time constant τ (seconds) published for the internal per-sample frequency smoothing.
DefaultSampleRocofTauSeconds Default value for EMA time constant τ (seconds) published for the internal per-sample ROCOF smoothing.
DefaultTargetCycles Default value for number of target cycles.

See Also