00001 00010 #ifndef _clotheswasher_H 00011 #define _clotheswasher_H 00012 00013 #include "residential.h" 00014 #include "residential_enduse.h" 00015 00016 class clotheswasher : public residential_enduse 00017 { 00018 public: 00019 double circuit_split; 00020 double motor_power; 00021 double enduse_demand; 00022 double enduse_queue; 00023 double cycle_duration; 00024 double cycle_time; 00025 double state_time; 00026 double stall_voltage; 00027 double start_voltage; 00028 complex stall_impedance; 00029 double trip_delay; 00030 double reset_delay; 00031 double heat_fraction; 00032 TIMESTAMP time_state; 00033 bool starttime; 00034 typedef enum { 00035 STOPPED=0, 00036 RUNNING=1, 00037 STALLED=2, 00038 TRIPPED=3, 00039 PREWASH=4, 00040 WASH=5, 00041 SPIN1=6, 00042 SPIN2=7, 00043 SPIN3=8, 00044 SPIN4=9 00045 }; 00046 enumeration state; 00047 00048 public: 00049 static CLASS *oclass, *pclass; 00050 static clotheswasher *defaults; 00051 00052 double Is_on; 00053 00054 bool new_running_state; 00055 bool critical_cycle; 00056 double clothesWasherPower; 00057 double normal_perc; 00058 double perm_press_perc; 00059 00060 double NORMAL_PREWASH_POWER; 00061 double NORMAL_WASH_POWER; 00062 double NORMAL_SPIN_LOW_POWER; 00063 double NORMAL_SPIN_MEDIUM_POWER; 00064 double NORMAL_SPIN_HIGH_POWER; 00065 double NORMAL_SMALLWASH_POWER; 00066 00067 double NORMAL_PREWASH_ENERGY; 00068 double NORMAL_WASH_ENERGY; 00069 double NORMAL_SPIN_LOW_ENERGY; 00070 double NORMAL_SPIN_MEDIUM_ENERGY; 00071 double NORMAL_SPIN_HIGH_ENERGY; 00072 double NORMAL_SMALLWASH_ENERGY; 00073 00074 double PERMPRESS_PREWASH_POWER; 00075 double PERMPRESS_WASH_POWER; 00076 double PERMPRESS_SPIN_LOW_POWER; 00077 double PERMPRESS_SPIN_MEDIUM_POWER; 00078 double PERMPRESS_SPIN_HIGH_POWER; 00079 double PERMPRESS_SMALLWASH_POWER; 00080 00081 double PERMPRESS_PREWASH_ENERGY; 00082 double PERMPRESS_WASH_ENERGY; 00083 double PERMPRESS_SPIN_LOW_ENERGY; 00084 double PERMPRESS_SPIN_MEDIUM_ENERGY; 00085 double PERMPRESS_SPIN_HIGH_ENERGY; 00086 double PERMPRESS_SMALLWASH_ENERGY; 00087 00088 double GENTLE_PREWASH_POWER; 00089 double GENTLE_WASH_POWER; 00090 double GENTLE_SPIN_LOW_POWER; 00091 double GENTLE_SPIN_MEDIUM_POWER; 00092 double GENTLE_SPIN_HIGH_POWER; 00093 double GENTLE_SMALLWASH_POWER; 00094 00095 double GENTLE_PREWASH_ENERGY; 00096 double GENTLE_WASH_ENERGY; 00097 double GENTLE_SPIN_LOW_ENERGY; 00098 double GENTLE_SPIN_MEDIUM_ENERGY; 00099 double GENTLE_SPIN_HIGH_ENERGY; 00100 double GENTLE_SMALLWASH_ENERGY; 00101 00102 double queue_min; 00103 double queue_max; 00104 00105 double clotheswasher_run_prob; 00106 00107 enum { SPIN_LOW=0, 00108 SPIN_MEDIUM=1, 00109 SPIN_HIGH=2, 00110 SPIN_WASH=3, 00111 SMALLWASH=4, 00112 }; 00113 enumeration spin_mode; 00114 00115 enum { NORMAL=0, 00116 PERM_PRESS=1, 00117 GENTLE=2, 00118 }; 00119 enumeration wash_mode; 00120 00121 clotheswasher(MODULE *module); 00122 ~clotheswasher(); 00123 int create(); 00124 int init(OBJECT *parent); 00125 int isa(char *classname); 00126 TIMESTAMP presync(TIMESTAMP t0, TIMESTAMP t1); 00127 TIMESTAMP sync(TIMESTAMP t0, TIMESTAMP t1); 00128 double update_state(double dt); 00129 00130 }; 00131 00132 #endif // _clotheswasher_H 00133