SlidingDftPhaseEstimator 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.177 -- Release Build+c429d1804aca100dff8e0245d2fd366feebed6ae
public sealed class SlidingDftPhaseEstimator : IPhaseEstimator
Inheritance
Object    SlidingDftPhaseEstimator
Implements
IPhaseEstimator

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 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.

Constructors

SlidingDftPhaseEstimator Initializes a new instance of the SlidingDftPhaseEstimator 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 (VA, VB, VC, IA, IB, IC) 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.
DefaultMaxGapFillSamples Default maximum gap (in samples) filled by phase-continued synthesis before resynchronizing. A negative value means "auto" (one full analysis window).
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