24 : R(c->getDoubleValue(
"scheduler",
"thermalResistance"))
25 , C(c->getDoubleValue(
"scheduler",
"thermalCapacitance"))
26 , temperatureHistory(
Utils::Record(c,
"temperature"))
27 , energyHistory(
Utils::Record(c,
"energy"))
28 , endTime(c->getDoubleValue(
"scheduler",
"runningTime"))
29 , recordingTimeRatio(c->getDoubleValue(
"scheduler",
"onlyLogTempAfterRatio"))
31 logTemperature = c->getBoolValue(
"scheduler",
"logTemperature",
false);
32 logEnergy = c->getBoolValue(
"scheduler",
"logEnergy",
false);
33 std::cerr <<
"temperature and aging model initialized\n";
38 ,
double taskPowerCoeff
51 power = params->
power;
71 void SimpleTemperatureModel::computeAndLog()
74 double timeInterval = currentTime - previousTime;
75 previousTime = currentTime;
77 T = (T0 - A)*exp(-timeInterval/(R*C)) + A;
83 temperatureHistory.
add(currentTime, T);
87 energyHistory.
add(currentTime, power);
double updateTemperature(double timeInterval, struct PowerParams *params, double taskPowerCoeff, double freq) override
SimpleTemperatureModel(std::shared_ptr< Utils::Configuration > conf)
void printToFile(std::string folder) const
void add(double time, double element)
double getTemperature() override
void printEnergyHistory(std::string filename) override
void printTemperatureHistory(std::string filename) override