00001 #include "GridWise.h"
00002 #include <iostream>
00003 using namespace std;
00004 using namespace adevs;
00005
00006
00007
00008 const double GridFriendlySensor::trip_freq = -0.05;
00009 const double GridFriendlySensor::hys_freq = 1E-2;
00010
00011 GridFriendlySensor::GridFriendlySensor(GridFriendlyLoad* actuator):
00012 Sensor(Sensor::STATE_TR,actuator),
00013 BusID(actuator->getBusID()),
00014 tripped(false)
00015 {
00016 }
00017
00018 void GridFriendlySensor::trip(ElectricalSensorInterface* evars)
00019 {
00020 tripped = !tripped;
00021 }
00022
00023 double GridFriendlySensor::distFromTrip(ElectricalSensorInterface* evars)
00024 {
00025 double cur_freq = 60.0*evars->getBusFreq(BusID);
00026
00027 if (tripped)
00028 {
00029
00030 if (cur_freq > (trip_freq+hys_freq)) return 0.0;
00031
00032 else return cur_freq-(trip_freq+hys_freq);
00033 }
00034
00035 else
00036 {
00037
00038 if (cur_freq < trip_freq) return 0.0;
00039 else return cur_freq-trip_freq;
00040 }
00041 }