@@ -867,7 +867,7 @@ TEST_F(AutoBTMTest_lib_battery_dispatch, DispatchAutoBTMGridOutagePeakShavingDai
867867 // Battery will discharge as much as possible for the outage, charge when PV is available, then discharge when load increases at 7 pm
868868 std::vector<double > expectedPower = { 52.1 , 52.1 , 52.1 , 52.1 , 39.4 , 3.7 , // 0 - 5
869869 0 , -48 , -48 , -48 , -48 , -48 , // Able to charge when SOC at 0, 6- 11
870- -48 , -48 , -48 , -48.0 , -11 , 0 , // 12 - 17
870+ -48 , -48 , -48 , -48.0 , -48 , - 38.57 , // 12 - 17
871871 0 , 52.1 , 52.1 , 52.1 , 52.1 , 52.1 , // 18 - 23
872872 52.1 , 52.1 , 52.1 , 52.1 };
873873
@@ -938,7 +938,7 @@ TEST_F(AutoBTMTest_lib_battery_dispatch, DispatchAutoBTMGridOutageWithAvailabili
938938 std::vector<double > expectedPower = { 52.1 , 52.1 , 52.1 , 52.1 , 39.4 , 3.7 ,
939939 0 , 0 , 0 , 0 , 0 , 0 ,
940940 0 , -48 , -48 , -48.0 , -48.0 , -48.0 ,
941- 0 , 52.1 , 52.1 , 52.28 , 52.48 , 27.6 };
941+ 0 , 52.22 , 52.34 , 52.28 , 4.47 , 0 };
942942
943943 std::vector<double > expectedCritLoadUnmet = { 0 , 0 , 0 , 0 , 12.19 , 46.46 ,
944944 50 , 50 , 50 , 50 , 50 , 50 , // Losses below prevent any crit load from being met in hrs 6 - 12 while battery is discharged
@@ -1085,7 +1085,7 @@ TEST_F(AutoBTMTest_lib_battery_dispatch, DispatchAutoBTMGridOutageWithInverterLo
10851085 // Battery will discharge as much as possible for the outage, charge when PV is available, then discharge when load increases at 7 pm
10861086 std::vector<double > expectedPower = { 52.1 , 52.1 , 52.1 , 52.1 , 39.4 , 3.7 ,
10871087 0 , -48 , -48 , -48 , -48 , -48 ,
1088- -48 , -48 , -48 , -48.0 , -11 , 0 ,
1088+ -48 , -48 , -48 , -48.0 , -48 , - 38.57 ,
10891089 0 , 52.16 , 52.16 , 52.16 , 52.16 , 52.16 , 52.16 , };
10901090
10911091 std::vector<double > expectedCritLoadUnmet = { 50 , 50 , 50 , 50 , 50 , 50 , // Losses below prevent any crit load from being met in first hours
@@ -1206,20 +1206,20 @@ TEST_F(AutoBTMTest_lib_battery_dispatch, DispatchAutoBTMGridOutagePeakShavingEmp
12061206 SOC = batteryModel->SOC ();
12071207 }
12081208
1209- EXPECT_NEAR (batteryModel->SOC (), 100 , 0.01 );
1210- EXPECT_EQ (h, 17 );
1209+ EXPECT_NEAR (batteryModel->SOC (), 96.67 , 0.01 );
1210+ EXPECT_EQ (h, 18 );
12111211
12121212 // Show that the battery can discharge above max SOC after outage
1213- batteryPower->powerLoad = 680 ;
1213+ batteryPower->powerLoad = 670 ;
12141214 batteryPower->powerSystem = 0 ;
12151215 batteryPower->isOutageStep = false ;
12161216 batteryPower->powerCritLoad = 14 ;
1217- dispatchAutoBTM->dispatch (0 , h, 0 );
1217+ dispatchAutoBTM->dispatch (0 , h- 1 , 0 );
12181218 h++;
12191219
1220- EXPECT_NEAR (batteryPower->powerBatteryDC , 12.84 , 0.5 ) << " error in expected at hour " << h;
1220+ EXPECT_NEAR (batteryPower->powerBatteryDC , 2.08 , 0.5 ) << " error in expected at hour " << h;
12211221
1222- EXPECT_NEAR (batteryModel->SOC (), 95 , 0.01 );
1222+ EXPECT_NEAR (batteryModel->SOC (), 96.31 , 0.01 );
12231223
12241224 // Battery cannot charge above max SOC
12251225 batteryPower->powerLoad = 700 ;
@@ -1327,7 +1327,7 @@ TEST_F(AutoBTMTest_lib_battery_dispatch, DispatchAutoBTMGridOutageRetailRAteEmpt
13271327 SOC = batteryModel->SOC ();
13281328 }
13291329
1330- EXPECT_NEAR (batteryModel->SOC (), 100 , 0.01 );
1330+ EXPECT_NEAR (batteryModel->SOC (), 96.67 , 0.01 );
13311331 EXPECT_EQ (h, 18 );
13321332
13331333 // Show that the battery can discharge above max SOC after outage
@@ -1338,9 +1338,9 @@ TEST_F(AutoBTMTest_lib_battery_dispatch, DispatchAutoBTMGridOutageRetailRAteEmpt
13381338 dispatchAutoBTM->dispatch (0 , h, 0 );
13391339 h++;
13401340
1341- EXPECT_NEAR (batteryPower->powerBatteryDC , 14.6 , 0.5 ) << " error in expected at hour " << h;
1341+ EXPECT_NEAR (batteryPower->powerBatteryDC , 9.80 , 0.5 ) << " error in expected at hour " << h;
13421342
1343- EXPECT_NEAR (batteryModel->SOC (), 95 , 0.01 );
1343+ EXPECT_NEAR (batteryModel->SOC (), 94.93 , 0.01 );
13441344
13451345 // Battery cannot charge above max SOC
13461346 batteryPower->powerLoad = 700 ;
@@ -1450,20 +1450,20 @@ TEST_F(AutoBTMTest_lib_battery_dispatch, DispatchAutoBTMGridOutageCustomEmptyAnd
14501450 SOC = batteryModel->SOC ();
14511451 }
14521452
1453- EXPECT_NEAR (batteryModel->SOC (), 100 , 0.01 );
1453+ EXPECT_NEAR (batteryModel->SOC (), 96.67 , 0.01 );
14541454 EXPECT_EQ (h, 17 );
14551455
14561456 // Show that the battery can discharge above max SOC after outage
1457- batteryPower->powerLoad = 700 ;
1457+ batteryPower->powerLoad = 8 ;
14581458 batteryPower->powerSystem = 0 ;
14591459 batteryPower->isOutageStep = false ;
1460- batteryPower->powerCritLoad = 50 ;
1460+ batteryPower->powerCritLoad = 8 ;
14611461 dispatchAutoBTM->dispatch (0 , h, 0 );
14621462 h++;
14631463
1464- EXPECT_NEAR (batteryPower->powerBatteryDC , 14.8 , 0.5 ) << " error in expected at hour " << h;
1464+ EXPECT_NEAR (batteryPower->powerBatteryDC , 9.45 , 0.5 ) << " error in expected at hour " << h;
14651465
1466- EXPECT_NEAR (batteryModel->SOC (), 95 , 0.01 );
1466+ EXPECT_NEAR (batteryModel->SOC (), 95.01 , 0.01 );
14671467
14681468 // Battery cannot charge above max SOC
14691469 batteryPower->powerLoad = 700 ;
@@ -1716,7 +1716,7 @@ TEST_F(AutoBTMTest_lib_battery_dispatch, DispatchAutoBTMGridOutageWithBatteryAva
17161716 std::vector<double > expectedPower = { 0 , 0 , 0 , 0 , 0 , 0 ,
17171717 52.1 , 52.1 , 52.1 , 52.1 , 39.4 , 3.7 ,
17181718 0 , -48 , -48 , -48.0 , -48.0 , -48.0 ,
1719- 0 , 52.1 , 52.1 , 52.28 , 52.48 , 27.6 };
1719+ 0 , 52.22 , 52.34 , 52.28 , 4.46 , 0 };
17201720
17211721 std::vector<double > expectedCritLoadUnmet = { 50 , 50 , 50 , 50 , 50 , 50 , // Losses below prevent any crit load from being met in hrs 0 - 5 while battery is unavailable
17221722 0 , 0 , 0 , 0 , 12.2 , 46.5 , // Battery meets losses until it runs out of SOC
0 commit comments