示例#1
0
        private MicroGridBattery GetMicroGridBattery(List <DateTime> evListDate, int pattern, int number, string order, double storageCapacity) //マイクログリッドのバッテリ(EV・蓄電池)クラス生成
        {
            //引数
            //evListDate : EVデータセットの日付(総研41台は2016/01/20・常盤台キャンパス559台であれば2016/11/04を指定)
            //pattern : 旧クエリにおけるデータセットパターン(0.8kWh~6.8kWhランダムは"0"・実データは"50")
            //number : EV台数
            //order : 充給電EVの優先度(ORDER BY句)
            //storageCapacity : 据え置き蓄電池の容量

            MicroGridBattery MGB = new MicroGridBattery();

            //旧クエリ
            //もともとはTRIPS_TESTに対してクエリを投げていたが
            //500台ログはYNU_Tripsテーブルに挿入したため変更
            //もし旧データ(41台・2016年夏のLeaf実験データ)等を使用する場合は
            //旧クエリに変更する(pattern = 0 or 50)

            #region 旧クエリ
            //クエリでデータセットに条件をつけること(例:往路の消費の多い車10件、帰りの遅い車20件)
            //string query = "SELECT TOP " + number + " CarID, OutEndTime, HomeStartTime, OutEnergy, HomeEnergy " + "\r\n";
            //query += "FROM TRIPS_TEST " + "\r\n";
            //query += "WHERE Date in ('" + evListDate[0].ToShortDateString() + "'";
            //for (int i = 1; i < evListDate.Count; i++)
            //{
            //    query += ",'" + evListDate[i].ToShortDateString() + "'";
            //}
            //query += ") \r\n";
            //query += "AND EnergyPatternID = " + pattern + " " + "\r\n";
            //query +=
            //query += "\r\n";
            #endregion

            //新クエリ
            //引数に指定された台数を引数に指定された条件だけ抽出するクエリ

            #region 新クエリ
            string query = "SELECT TOP " + number + " CarID, OutEndTime, HomeStartTime, OutEnergy, HomeEnergy " + Environment.NewLine;
            query += "FROM YNU_Trips " + Environment.NewLine;
            query += "WHERE Date in ('" + evListDate[0].ToShortDateString() + "'";
            for (int i = 1; i < evListDate.Count; i++)
            {
                query += ",'" + evListDate[i].ToShortDateString() + "'";
            }
            query += ") " + Environment.NewLine;
            query += order + Environment.NewLine;
            #endregion

            int            carID;
            EVBattery      ev;
            StorageBattery sb;
            DateTime       arrive, departure;
            double         outEnergy, homeEnergy;

            //StorageBatteryは引数に容量[kWh]を指定
            sb = new StorageBattery(storageCapacity);
            //MicroGridBatteryの構成要素としてAdd
            MGB.AddStorage(sb);

            try
            {
                sqlConnection1.Open();
                SqlCommand    cmd    = new SqlCommand(query, sqlConnection1);
                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    carID      = (int)reader[0];
                    arrive     = (DateTime)reader[1];
                    departure  = (DateTime)reader[2];
                    outEnergy  = (double)reader[3];
                    homeEnergy = (double)reader[4];

                    //EVBatteryはCarID, 到着時間, 出発時間, outwardの消費エネルギー, homewardの消費エネルギーを引数に持つ
                    ev = new EVBattery(carID, arrive, departure, outEnergy, homeEnergy);
                    //MicroGridBatteryの構成要素としてAdd
                    MGB.AddEV(ev);
                }
            }
            catch (Exception)
            {
            }

            finally
            {
                sqlConnection1.Close();
            }

            return(MGB);
        }
示例#2
0
 public void AddStorage(StorageBattery Storage)
 {
     storageList.Add(Storage);
 }