00001
00008 #ifndef _PW_LOAD_H_
00009 #define _PW_LOAD_H_
00010
00011 #include "gridlabd.h"
00012 #include "network.h"
00013
00014 #ifdef HAVE_POWERWORLD
00015 #ifndef PWX64
00016
00017 #include <iostream>
00018
00019 class pw_model;
00020
00021 class pw_load : public gld_object {
00022 public:
00023 pw_load(MODULE *module);
00024
00025 static CLASS *oclass;
00026 static pw_load *defaults;
00027 int create();
00028 int init(OBJECT *parent);
00029 TIMESTAMP presync(TIMESTAMP t1);
00030 TIMESTAMP sync(TIMESTAMP t1);
00031 TIMESTAMP postsync(TIMESTAMP t1);
00032 int isa(char *classname);
00033
00034 public:
00035
00036 GL_ATOMIC(int32, powerworld_bus_num);
00037 GL_STRING(char1024, powerworld_load_id);
00038 GL_ATOMIC(double, power_threshold);
00039 GL_ATOMIC(double, power_diff);
00040 GL_ATOMIC(complex, load_power);
00041 GL_ATOMIC(complex, load_impedance);
00042 GL_ATOMIC(complex, load_current);
00043 GL_ATOMIC(complex, last_load_power);
00044 GL_ATOMIC(complex, last_load_impedance);
00045 GL_ATOMIC(complex, last_load_current);
00046
00047
00048 GL_ATOMIC(double, load_voltage_mag);
00049 GL_ATOMIC(complex, load_voltage);
00050 GL_ATOMIC(double, pw_load_mw);
00051 GL_ATOMIC(complex, pw_load_mva);
00052 GL_ATOMIC(double, bus_nom_volt);
00053 GL_ATOMIC(double, bus_volt_angle);
00054 private:
00055 pw_model *cModel;
00056
00057 int get_powerworld_nomvolt();
00058 int get_powerworld_busangle();
00059 int get_powerworld_voltage();
00060 int post_powerworld_current();
00061 };
00062 #endif // PWX64
00063 #endif // HAVE_POWERWORLD
00064 #endif // _PW_LOAD_H_
00065
00066