00001
00002
00003
00004 #ifndef _PQLOAD_H
00005 #define _PQLOAD_H
00006
00007 #include "load.h"
00008
00009 typedef struct s_schedule_list {
00010 struct s_schedule_list *next;
00011 int moh_start, moh_end;
00012 int hod_start, hod_end;
00013 int dom_start, dom_end;
00014 int dow_start, dow_end;
00015 int moy_start, moy_end;
00016 double scale;
00017 } SCHED_LIST;
00018
00019 SCHED_LIST *new_slist();
00020 int delete_slist(SCHED_LIST *);
00021
00022 class pqload : public load
00023 {
00024 public:
00025 static CLASS *oclass;
00026 static CLASS *pclass;
00027 static pqload *defaults;
00028 static double zero_F;
00029 public:
00030 enum {LC_UNKNOWN=0, LC_RESIDENTIAL, LC_COMMERCIAL, LC_INDUSTRIAL, LC_AGRICULTURAL} load_class;
00031 double imped_p[6];
00032 double imped_q[6];
00033 double current_m[6];
00034 double current_a[6];
00035 double power_p[6];
00036 double power_q[6];
00037 double input[6];
00038 double output[6];
00039 complex kZ, kI, kP;
00040
00041 char1024 schedule;
00042 OBJECT *weather;
00043 PROPERTY *temperature, *humidity, *solar, *wind, *rain;
00044 double temp_nom;
00045
00046 SCHED_LIST *sched;
00047 TIMESTAMP sched_until;
00048
00049 int create(void);
00050
00051 int build_sched(char *, SCHED_LIST *);
00052 pqload(MODULE *mod);
00053 int init(OBJECT *parent);
00054 TIMESTAMP presync(TIMESTAMP t0);
00055 TIMESTAMP sync(TIMESTAMP t0);
00056 inline pqload(CLASS *cl = oclass) : load(cl){};
00057 int isa(char *classname);
00058 };
00059
00060 #endif // _LOAD_H
00061