public sealed class SlidingDftPhaseEstimator : IPhaseEstimatorPublic NotInheritable Class SlidingDftPhaseEstimator
Implements IPhaseEstimatorpublic ref class SlidingDftPhaseEstimator sealed : IPhaseEstimatorGemstone.PhasorProtocols.SelCWS.SlidingDftPhaseEstimator = function();
Type.createClass(
'Gemstone.PhasorProtocols.SelCWS.SlidingDftPhaseEstimator',
null,
Gemstone.PhasorProtocols.SelCWS.IPhaseEstimator);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.
| SlidingDftPhaseEstimator | Initializes a new instance of the SlidingDftPhaseEstimator class with independent input sample rate and output publish rate, plus smoothing expressed as time constants (τ). |
| 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. |
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
| GetHashCode | Serves as the default hash function. (Inherited from Object) |
| GetType | Gets 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. |
| ToString | Returns a string that represents the current object. (Inherited from Object) |
| 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. |