00001
00002
00003
00004 #ifndef _REGULATORCONFIGURATION_H
00005 #define _REGULATORCONFIGURATION_H
00006
00007 #include "powerflow.h"
00008 #include "powerflow_library.h"
00009
00010 class regulator_configuration : public powerflow_library
00011 {
00012 public:
00013 typedef enum {
00014 WYE_WYE=1,
00015 OPEN_DELTA_ABBC,
00016 OPEN_DELTA_BCAC,
00017 OPEN_DELTA_CABA,
00018 CLOSED_DELTA,
00019 CONNECT_TYPE_MAX
00020 } connect_type_enum;
00021
00022 typedef enum {
00023 MANUAL=1,
00024 OUTPUT_VOLTAGE=2,
00025 REMOTE_NODE=3,
00026 LINE_DROP_COMP=4
00027 } Control_enum;
00028
00029 typedef enum {
00030 INDIVIDUAL=1,
00031 BANK=2
00032 } control_level_enum;
00033
00034 typedef enum {
00035 A = 1,
00036 B
00037 } Type_enum;
00038
00039 typedef enum {
00040 LOCK_NONE = 0,
00041 LOCK_NEUTRAL=1,
00042 LOCK_CURRENT=2
00043 }reverse_flow_control_enum;
00044
00045
00046
00047 enumeration Control;
00048 enumeration control_level;
00049 enumeration Type;
00050 enumeration connect_type;
00051 enumeration reverse_flow_control;
00052
00053
00054 inline const char *get_name(void) const { static char tmp[64]; OBJECT *obj=OBJECTHDR(this); return obj->name?obj->name:(sprintf(tmp,"%s:%d",obj->oclass->name,obj->id)>0?tmp:"(unknown)");};
00055
00056 inline unsigned int get_id(void) const {return OBJECTHDR(this)->id;};
00057
00058 double band_center;
00059 double band_width;
00060 double dwell_time;
00061 double time_delay;
00062 int16 raise_taps;
00063 int16 lower_taps;
00064 double CT_ratio;
00065 double PT_ratio;
00066 double ldc_R_V[3];
00067 double ldc_X_V[3];
00068 set CT_phase;
00069 set PT_phase;
00070 double regulation;
00071 int16 tap_pos[3];
00072
00073 #define ldc_R_V_A ldc_R_V[0] // R for each phase
00074 #define ldc_R_V_B ldc_R_V[1]
00075 #define ldc_R_V_C ldc_R_V[2]
00076 #define ldc_X_V_A ldc_X_V[0] // X for each phase
00077 #define ldc_X_V_B ldc_X_V[1]
00078 #define ldc_X_V_C ldc_X_V[2]
00079 #define tap_posA tap_pos[0] // tap_pos of phase A
00080 #define tap_posB tap_pos[1] // tap_pos of phase B
00081 #define tap_posC tap_pos[2] // tap_pos of phase C
00082
00083 public:
00084 static CLASS *oclass;
00085 static CLASS *pclass;
00086 regulator_configuration(MODULE *mod);
00087 inline regulator_configuration(CLASS *cl=oclass):powerflow_library(cl){};
00088 int create(void);
00089 int init(OBJECT *parent);
00090 int isa(char *classname);
00091 };
00092
00093
00094 #endif // _REGULATORCONFIGURATION_H