00001
00009 #ifndef _THERMAL_STORAGE_H
00010 #define _THERMAL_STORAGE_H
00011
00012 #include "residential.h"
00013 #include "residential_enduse.h"
00014
00015 typedef enum {
00016 INTERNAL=0,
00017 EXTERNAL=1
00018 } THERMAL_SCHEDULE_TYPE;
00019
00020 class thermal_storage : public residential_enduse {
00021 public:
00022 double total_capacity;
00023 double stored_capacity;
00024 double recharge_power;
00025 double recharge_power_factor;
00026 double discharge_power;
00027 double discharge_power_factor;
00028 double discharge_rate;
00029 bool recharge;
00030 double recharge_time;
00031 double discharge_time;
00032 double state_of_charge;
00033 double k;
00034 double water_capacity;
00035 double surface_area;
00036 TIMESTAMP last_timestep;
00037 TIMESTAMP next_timestep;
00038
00039 gld_property *outside_temperature;
00040 gld_property *thermal_storage_available;
00041 gld_property *thermal_storage_active;
00042
00043 SCHEDULE *recharge_schedule_vals;
00044 SCHEDULE *discharge_schedule_vals;
00045
00046 enumeration recharge_schedule_type;
00047 enumeration discharge_schedule_type;
00048
00049 private:
00050 double *recharge_time_ptr;
00051 double *discharge_time_ptr;
00052
00053 public:
00054 static CLASS *oclass, *pclass;
00055 thermal_storage(MODULE *mod);
00056 int create(void);
00057 int init(OBJECT *parent);
00058 int isa(char *classname);
00059 TIMESTAMP sync(TIMESTAMP t0, TIMESTAMP t1);
00060
00061 };
00062
00063 #endif // _THERMAL_STORAGE_H
00064