Esempio n. 1
0
        static double[] computeWeight(int id)
        {
            List <double> capacity       = new List <double>();
            List <double> ghi            = new List <double>();
            List <double> enviromentTemp = new List <double>();
            DateTime      timeToGet;

            timeToGet = Convert.ToDateTime(QuerrySql.getMaxTimeHistory(id).Rows[0]["Time"]);
            foreach (DataRow row in QuerrySql.getHistoryByTime(id, timeToGet.AddDays(-1), timeToGet).Rows) //get data from previous 24 hours
            {
                capacity.Add(Convert.ToDouble(row["Capacity"]));
                ghi.Add(Convert.ToDouble(row["Ghi"]));
                enviromentTemp.Add(Convert.ToDouble(row["EnviromentTemp"]));
            }
            double[] result = new double[3];
            result = multi_linear_regression(ghi.ToArray(), enviromentTemp.ToArray(), capacity.ToArray());                                                //compute weight
            Console.WriteLine("Cost is: " + cost_function(ghi.ToArray(), enviromentTemp.ToArray(), capacity.ToArray(), result[0], result[1], result[2])); //compute cost
            if (QuerrySql.getForeCast(id).Rows.Count == 0)
            {
                insertForeCast(timeToGet.AddSeconds(1), timeToGet.AddHours(6), id, result[0], result[1], result[2]);//Compute forecast from Now to 6 hous later
            }
            else
            {
                DateTime temp = Convert.ToDateTime(QuerrySql.getMaxTimeForecast(id).Rows[0]["Time"]);
                insertForeCast(temp.AddSeconds(1), DateTime.Now.AddHours(6), id, result[0], result[1], result[2]);//Compute forecast 5 minutes later from the last forecast
            }
            return(result);
        }
Esempio n. 2
0
 private void Timer_Elapsed(object sender, ElapsedEventArgs e)
 {
     if (QuerrySql.getMaxTimeHistory(362).Rows[0]["Time"].ToString().Equals(""))
     {
         insertHistory(DateTime.Now.AddDays(-1), DateTime.Now, 362); //insert Data from previous day until now
     }
     else
     {
         insertHistory(Convert.ToDateTime(QuerrySql.getMaxTimeHistory(362).Rows[0]["Time"]).AddSeconds(1), DateTime.Now, 362); //insert data from last time inserted until now
     }
     computeWeight(362);                                                                                                       //362 is idNhaMay
 }