00001
00002
00003
00004
00005
00006 #ifndef _RESIDENTIAL_H
00007 #define _RESIDENTIAL_H
00008
00009 #include "gridlabd.h"
00010 #include "lock.h"
00011 #include "module.h"
00012
00013
00014 #define RHOWATER (62.4) // lb/cf
00015 #define CFPGAL (0.133681) // cf/gal
00016 #define GALPCF (7.4805195) // gal/cf
00017 #define CWATER (0.9994) // BTU/lb/F
00018 #define BTUPHPW (3.4120) // BTUPH/W
00019 #define BTUPHPKW (1e3 * 3.4120) // BTUPH/kW
00020 #define KWPBTUPH (1e-3/BTUPHPW) // kW/BTUPH
00021 #define MWPBTUPH (1e-6/BTUPHPW) // MW/BTUPH
00022 #define ROUNDOFF 1e-6 // numerical accuracy for zero in float comparisons
00023
00024 const double pi = 3.1415926535897931;
00025 const double Cp = 1;
00026
00027
00028 #define AEQ(A,B,C) (fabs(A-B)<C)
00029 #define ANE(A,B,C) (fabs(A-B)>=C)
00030 #define ALT(A,B,C) (A<=B+C)
00031 #define AGT(Ak,B,C) (A>=B-C)
00032
00033 #define MAX(A,B) ((A)>(B)?(A):(B))
00034 #define MIN(A,B) ((A)<(B)?(A):(B))
00035
00036 typedef enum { BRK_OPEN=0,
00037 BRK_CLOSED=1,
00038 BRK_FAULT=-1,
00039 } BREAKERSTATUS;
00040 typedef enum { X12=0,
00041 X23=1,
00042 X13=2,
00043 } CIRCUITTYPE;
00044
00045 typedef struct s_circuit {
00046 CIRCUITTYPE type;
00047 enduse *pLoad;
00048 complex *pV;
00049 double max_amps;
00050 int id;
00051 BREAKERSTATUS status;
00052 TIMESTAMP reclose;
00053 unsigned short tripsleft;
00054 struct s_circuit *next;
00055
00056 } CIRCUIT;
00057
00058 typedef struct s_panel {
00059 double max_amps;
00060 BREAKERSTATUS status;
00061 TIMESTAMP reclose;
00062 CIRCUIT *circuits;
00063 } PANEL;
00064
00065 typedef CIRCUIT *(*ATTACHFUNCTION)(OBJECT *, enduse *, double , int is220);
00066
00067 typedef enum {HORIZONTAL, NORTH, NORTH_EAST, EAST, SOUTH_EAST, SOUTH, SOUTH_WEST, WEST, NORTH_WEST,N_SOLAR_SURFACES} ORIENTATION;
00068
00069 #endif
00070