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