00001
00009 #ifndef _windturb_dg_H
00010 #define _windturb_dg_H
00011
00012
00013 #include <stdarg.h>
00014 #include "generators.h"
00015
00016 class windturb_dg : public gld_object
00017 {
00018 private:
00019
00020 complex AMx[3][3];
00021 complex invAMx[3][3];
00022 complex IndTPMat[2][2];
00023 complex Vapu;
00024 complex Vbpu;
00025 complex Vcpu;
00026 complex Iapu;
00027 complex Ibpu;
00028 complex Icpu;
00029 double air_dens;
00030 double Ridealgas;
00031 double Molar;
00032 double std_air_temp;
00033 double std_air_press;
00034 gld_property *pCircuit_V[3];
00035 gld_property *pLine_I[3];
00036 complex value_Circuit_V[3];
00037 complex value_Line_I[3];
00038 bool parent_is_valid;
00039
00040 gld_property *pPress;
00041 gld_property *pTemp;
00042 gld_property *pWS;
00043
00044 double value_Press;
00045 double value_Temp;
00046 double value_WS;
00047 bool climate_is_valid;
00048
00049 protected:
00050
00051
00052 public:
00053
00054 set phases;
00056 complex power_A;
00057 complex power_B;
00058 complex power_C;
00059
00060 enum {OFFLINE=1, ONLINE};
00061 enumeration Gen_status;
00062 enum {INDUCTION=1, SYNCHRONOUS, USER_TYPE};
00063 enumeration Gen_type;
00064 enum {CONSTANTE=1, CONSTANTP, CONSTANTPQ};
00065 enumeration Gen_mode;
00066 enum {GENERIC_SYNCH_SMALL, GENERIC_SYNCH_MID,GENERIC_SYNCH_LARGE, GENERIC_IND_SMALL, GENERIC_IND_MID, GENERIC_IND_LARGE, USER_DEFINED, VESTAS_V82, GE_25MW, BERGEY_10kW};
00067 enumeration Turbine_Model;
00068 enum {GENERAL_LARGE, GENERAL_MID,GENERAL_SMALL,MANUF_TABLE, CALCULATED, USER_SPECIFY};
00069 enumeration CP_Data;
00070
00071 double blade_diam;
00072 double turbine_height;
00073 double roughness_l;
00074 double ref_height;
00075 double Cp;
00076
00077 int64 time_advance;
00078
00079 double avg_ws;
00080 double cut_in_ws;
00081 double cut_out_ws;
00082 double Cp_max;
00083 double ws_maxcp;
00084 double Cp_rated;
00085 double ws_rated;
00086
00087 double q;
00088
00089 double Pconv;
00090 double GenElecEff;
00091
00092 unsigned int *n;
00093
00094 complex voltage_A;
00095 complex voltage_B;
00096 complex voltage_C;
00097 complex current_A;
00098 complex current_B;
00099 complex current_C;
00100 double store_last_current;
00101
00102 double TotalRealPow;
00103 double TotalReacPow;
00104
00105 double Rated_VA;
00106 double Rated_V;
00107 double WSadj;
00108 double Wind_Speed;
00109
00110
00111 complex EfA;
00112 complex EfB;
00113 complex EfC;
00114 double Rs;
00115 double Xs;
00116 double Rg;
00117 double Xg;
00118 double Max_Ef;
00119 double Min_Ef;
00120 double Max_P;
00121 double Min_P;
00122 double Max_Q;
00123 double Min_Q;
00124 double pf;
00125
00126
00127 complex Vrotor_A;
00128 complex Vrotor_B;
00129 complex Vrotor_C;
00130 complex Irotor_A;
00131 complex Irotor_B;
00132 complex Irotor_C;
00133 double Rst;
00134 double Xst;
00135 double Rr;
00136 double Xr;
00137 double Rc;
00138 double Xm;
00139 double Max_Vrotor;
00140 double Min_Vrotor;
00141
00142 public:
00143
00144 windturb_dg(MODULE *module);
00145 int create(void);
00146 int init(OBJECT *parent);
00147 int init_climate(void);
00148 TIMESTAMP presync(TIMESTAMP t0, TIMESTAMP t1);
00149 TIMESTAMP sync(TIMESTAMP t0, TIMESTAMP t1);
00150 TIMESTAMP postsync(TIMESTAMP t0, TIMESTAMP t1);
00151
00152 gld_property *map_complex_value(OBJECT *obj, char *name);
00153 gld_property *map_double_value(OBJECT *obj, char *name);
00154 void push_complex_powerflow_values(void);
00155
00156 public:
00157 static CLASS *oclass;
00158 static windturb_dg *defaults;
00159 static CLASS *pclass;
00160 };
00161 #endif