SynchroPMU
C implementation of the Phasor Measurement Unit Estimator based on the Iterative Interpolated DFT Synchrophasor Estimation Algorithm
Loading...
Searching...
No Matches
pmu_estimator.h
Go to the documentation of this file.
1
21#ifndef PMU_ESTIMATOR_H
22#define PMU_ESTIMATOR_H
23
24// #define NUM_CHANLS 1
25
26#ifdef __cplusplus
27extern "C"
28{
29#endif
30
31#include <stdio.h>
32#include "func_stubs.h"
33
35#define CONFIG_FROM_INI 1
37#define CONFIG_FROM_STRUCT 0
38
61
69 typedef struct
70 {
74 } phasor;
75
83 typedef struct
84 {
87 } pmu_frame;
88
112
129
148
156 typedef struct
157 {
158 float_p freq_old[NUM_CHANLS];
159 float_p thresholds[3];
160 float_p low_pass_coeff[3];
161 float_p delay_line[NUM_CHANLS][2];
164
183
205 int pmu_init(pmu_context *ctx, void *cfg, bool_p config_from_ini);
206
232 int pmu_estimate(pmu_context *ctx, float_p *in_signal_windows, float_p mid_fracsec, pmu_frame *out_frame);
233
250 int pmu_deinit(pmu_context *ctx);
251
265 int pmu_dump_frame(pmu_frame *frame, FILE *stream);
266
267#ifdef __cplusplus
268}
269#endif
270
271#endif /* PMU_ESTIMATOR_H */
Function and type stubs for PMU estimator.
#define complex_p
Complex number type stub (default: _Complex)
Definition func_stubs.h:59
#define float_p
Floating-point type stub (default: float)
Definition func_stubs.h:56
#define bool_p
Boolean type stub (default: _Bool)
Definition func_stubs.h:65
#define uint_p
Unsigned integer type stub (default: unsigned int)
Definition func_stubs.h:62
#define NUM_CHANLS
Number of channels to process (can be defined at compile time)
Definition pmu_estimator.c:46
struct pmu_context pmu_context
int pmu_deinit(pmu_context *ctx)
Deinitialize and free resources of PMU estimator instance.
Definition pmu_estimator.c:386
int pmu_init(pmu_context *ctx, void *cfg, bool_p config_from_ini)
Initialize a PMU estimator instance.
Definition pmu_estimator.c:204
int pmu_estimate(pmu_context *ctx, float_p *in_signal_windows, float_p mid_fracsec, pmu_frame *out_frame)
Estimate synchrophasor, frequency, and ROCOF from input signal.
Definition pmu_estimator.c:282
int pmu_dump_frame(pmu_frame *frame, FILE *stream)
Print PMU frame data to output stream.
Definition pmu_estimator.c:418
Precomputed constants for Hanning window Fourier Transform.
Definition pmu_estimator.h:138
float_p C1
Definition pmu_estimator.h:140
float_p inv_norm_factor
Definition pmu_estimator.h:146
float_p C4
Definition pmu_estimator.h:143
float_p complex_p C6
Definition pmu_estimator.h:145
float_p C3
Definition pmu_estimator.h:142
float_p C0
Definition pmu_estimator.h:139
float_p complex_p C5
Definition pmu_estimator.h:144
float_p C2
Definition pmu_estimator.h:141
Dynamically allocated internal buffers.
Definition pmu_estimator.h:122
float_p complex_p * Xf
Definition pmu_estimator.h:123
float_p complex_p * dftbins
Definition pmu_estimator.h:125
float_p complex_p * Xi
Definition pmu_estimator.h:124
float_p * hann_window
Definition pmu_estimator.h:126
State variables for ROCOF (Rate of Change of Frequency) estimation.
Definition pmu_estimator.h:157
Internal parameters for synchrophasor estimation.
Definition pmu_estimator.h:97
bool_p iter_eipdft_enabled
Definition pmu_estimator.h:106
phasor phasor
Definition pmu_estimator.h:110
uint_p Q
Definition pmu_estimator.h:105
uint_p fs
Definition pmu_estimator.h:102
float_p interf_trig
Definition pmu_estimator.h:107
float_p df
Definition pmu_estimator.h:108
uint_p P
Definition pmu_estimator.h:104
uint_p frame_rate
Definition pmu_estimator.h:101
uint_p win_len
Definition pmu_estimator.h:98
uint_p f0
Definition pmu_estimator.h:100
float_p norm_factor
Definition pmu_estimator.h:109
uint_p n_cycles
Definition pmu_estimator.h:99
uint_p n_bins
Definition pmu_estimator.h:103
Configuration structure for the PMU estimator.
Definition pmu_estimator.h:48
uint_p frame_rate
Definition pmu_estimator.h:51
uint_p n_bins
Definition pmu_estimator.h:53
uint_p f0
Definition pmu_estimator.h:50
uint_p P
Definition pmu_estimator.h:54
bool_p iter_eipdft
Definition pmu_estimator.h:56
uint_p Q
Definition pmu_estimator.h:55
uint_p fs
Definition pmu_estimator.h:52
uint_p n_cycles
Definition pmu_estimator.h:49
float_p interf_trig
Definition pmu_estimator.h:57
Represents a synchrophasor (complex voltage/current measurement)
Definition pmu_estimator.h:70
float_p ph
Definition pmu_estimator.h:72
float_p freq
Definition pmu_estimator.h:73
float_p amp
Definition pmu_estimator.h:71
PMU estimator context structure.
Definition pmu_estimator.h:176
InternalBuffers buff_params
Definition pmu_estimator.h:178
bool_p pmu_initialized
Definition pmu_estimator.h:181
RocoFEstimationStates rocof_params
Definition pmu_estimator.h:180
SynchrophasorEstimatorParams synch_params
Definition pmu_estimator.h:177
HanningTransformConstants hann_params
Definition pmu_estimator.h:179
Complete PMU output frame.
Definition pmu_estimator.h:84
phasor synchrophasor
Definition pmu_estimator.h:85
float_p rocof
Definition pmu_estimator.h:86