Skip to content

Commit 17e241d

Browse files
committed
updated pysam battery to use baseclass and removed battery_baseclass
1 parent f7cebbc commit 17e241d

File tree

7 files changed

+79
-257
lines changed

7 files changed

+79
-257
lines changed

h2integrate/control/test/test_heuristic_controllers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ def test_heuristic_load_following_battery_dispatch(
368368
with subtests.test("Check battery_electricity"):
369369
assert (
370370
pytest.approx(expected_battery_electricity)
371-
== prob.get_val("battery.battery_electricity_out", units="kW")[0:24]
371+
== prob.get_val("battery.storage_electricity_out", units="kW")[0:24]
372372
)
373373

374374
with subtests.test("Check SOC"):
@@ -424,7 +424,7 @@ def test_heuristic_load_following_battery_dispatch(
424424
with subtests.test("Check battery_electricity for min SOC"):
425425
assert (
426426
pytest.approx(expected_battery_electricity)
427-
== prob.get_val("battery.battery_electricity_out", units="kW")[:5]
427+
== prob.get_val("battery.storage_electricity_out", units="kW")[:5]
428428
)
429429

430430
with subtests.test("Check SOC for min SOC"):
@@ -488,7 +488,7 @@ def test_heuristic_load_following_battery_dispatch(
488488
with subtests.test("Check battery_electricity for max SOC"):
489489
assert (
490490
pytest.approx(expected_battery_electricity, abs=abs_tol, rel=rel_tol)
491-
== prob.get_val("battery.battery_electricity_out", units="kW")[:5]
491+
== prob.get_val("battery.storage_electricity_out", units="kW")[:5]
492492
)
493493

494494
with subtests.test("Check SOC for max SOC"):
@@ -747,7 +747,7 @@ def test_heuristic_load_following_battery_dispatch_change_capacities(
747747
with subtests.test("Check battery_electricity"):
748748
assert (
749749
pytest.approx(expected_battery_electricity)
750-
== prob.get_val("battery.battery_electricity_out", units="kW")[0:24]
750+
== prob.get_val("battery.storage_electricity_out", units="kW")[0:24]
751751
)
752752

753753
with subtests.test("Check SOC"):

h2integrate/control/test/test_multistorage_pyomo_openloop_control.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -305,13 +305,13 @@ def test_battery_openloop(subtests, plant_config):
305305

306306
with subtests.test("Battery: Expected charge"):
307307
np.testing.assert_allclose(
308-
prob.get_val("battery.battery_electricity_charge", units="kW")[:24],
308+
prob.get_val("battery.storage_electricity_charge", units="kW")[:24],
309309
bat_expected_charge,
310310
rtol=1e-6,
311311
)
312312
with subtests.test("Battery: Expected discharge"):
313313
np.testing.assert_allclose(
314-
prob.get_val("battery.battery_electricity_discharge", units="kW")[:24],
314+
prob.get_val("battery.storage_electricity_discharge", units="kW")[:24],
315315
bat_expected_discharge,
316316
rtol=1e-6,
317317
)
@@ -381,13 +381,13 @@ def test_battery_pyo(subtests, plant_config):
381381

382382
with subtests.test("Battery: Expected charge"):
383383
np.testing.assert_allclose(
384-
prob.get_val("battery.battery_electricity_charge", units="kW")[:24],
384+
prob.get_val("battery.storage_electricity_charge", units="kW")[:24],
385385
bat_expected_charge,
386386
rtol=1e-6,
387387
)
388388
with subtests.test("Battery: Expected discharge"):
389389
np.testing.assert_allclose(
390-
prob.get_val("battery.battery_electricity_discharge", units="kW")[:24],
390+
prob.get_val("battery.storage_electricity_discharge", units="kW")[:24],
391391
bat_expected_discharge,
392392
rtol=1e-6,
393393
)
@@ -508,13 +508,13 @@ def test_both_pyomo_controllers(subtests, plant_config):
508508

509509
with subtests.test("Battery: Expected charge"):
510510
np.testing.assert_allclose(
511-
prob.get_val("battery.battery_electricity_charge", units="kW")[:24],
511+
prob.get_val("battery.storage_electricity_charge", units="kW")[:24],
512512
bat_expected_charge,
513513
rtol=1e-6,
514514
)
515515
with subtests.test("Battery: Expected discharge"):
516516
np.testing.assert_allclose(
517-
prob.get_val("battery.battery_electricity_discharge", units="kW")[:24],
517+
prob.get_val("battery.storage_electricity_discharge", units="kW")[:24],
518518
bat_expected_discharge,
519519
rtol=1e-6,
520520
)
@@ -586,13 +586,13 @@ def test_both_openloop_controllers(subtests, plant_config):
586586

587587
with subtests.test("Battery: Expected charge"):
588588
np.testing.assert_allclose(
589-
prob.get_val("battery.battery_electricity_charge", units="kW")[:24],
589+
prob.get_val("battery.storage_electricity_charge", units="kW")[:24],
590590
bat_expected_charge,
591591
rtol=1e-6,
592592
)
593593
with subtests.test("Battery: Expected discharge"):
594594
np.testing.assert_allclose(
595-
prob.get_val("battery.battery_electricity_discharge", units="kW")[:24],
595+
prob.get_val("battery.storage_electricity_discharge", units="kW")[:24],
596596
bat_expected_discharge,
597597
rtol=1e-6,
598598
)
@@ -668,13 +668,13 @@ def test_h2s_pyomo_battery_openloop(subtests, plant_config):
668668

669669
with subtests.test("Battery: Expected charge"):
670670
np.testing.assert_allclose(
671-
prob.get_val("battery.battery_electricity_charge", units="kW")[:24],
671+
prob.get_val("battery.storage_electricity_charge", units="kW")[:24],
672672
bat_expected_charge,
673673
rtol=1e-6,
674674
)
675675
with subtests.test("Battery: Expected discharge"):
676676
np.testing.assert_allclose(
677-
prob.get_val("battery.battery_electricity_discharge", units="kW")[:24],
677+
prob.get_val("battery.storage_electricity_discharge", units="kW")[:24],
678678
bat_expected_discharge,
679679
rtol=1e-6,
680680
)
@@ -765,13 +765,13 @@ def test_battery_pyomo_h2s_openloop(subtests, plant_config):
765765

766766
with subtests.test("Battery: Expected charge"):
767767
np.testing.assert_allclose(
768-
prob.get_val("battery.battery_electricity_charge", units="kW")[:24],
768+
prob.get_val("battery.storage_electricity_charge", units="kW")[:24],
769769
bat_expected_charge,
770770
rtol=1e-6,
771771
)
772772
with subtests.test("Battery: Expected discharge"):
773773
np.testing.assert_allclose(
774-
prob.get_val("battery.battery_electricity_discharge", units="kW")[:24],
774+
prob.get_val("battery.storage_electricity_discharge", units="kW")[:24],
775775
bat_expected_discharge,
776776
rtol=1e-6,
777777
)

h2integrate/control/test/test_openloop_storage_integration.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ def test_pysam_battery_with_demand_openloop(plant_config, storage_perf_params, s
263263
)
264264
with subtests.test("Expected discharge"):
265265
np.testing.assert_allclose(
266-
prob.get_val("battery.battery_electricity_discharge", units="kW"),
266+
prob.get_val("battery.storage_electricity_discharge", units="kW"),
267267
expected_discharge,
268268
rtol=1e-6,
269269
)
@@ -298,7 +298,7 @@ def test_pysam_battery_with_demand_openloop(plant_config, storage_perf_params, s
298298
)
299299
with subtests.test("Expected charge"):
300300
np.testing.assert_allclose(
301-
prob.get_val("battery.battery_electricity_charge", units="kW"),
301+
prob.get_val("battery.storage_electricity_charge", units="kW"),
302302
expected_charge,
303303
rtol=1e-6,
304304
)
@@ -380,7 +380,7 @@ def test_pysam_battery_with_simple_openloop(plant_config, storage_perf_params, s
380380
)
381381
with subtests.test("Expected discharge"):
382382
np.testing.assert_allclose(
383-
prob.get_val("battery.battery_electricity_discharge", units="kW"),
383+
prob.get_val("battery.storage_electricity_discharge", units="kW"),
384384
expected_discharge,
385385
rtol=1e-6,
386386
)
@@ -415,7 +415,7 @@ def test_pysam_battery_with_simple_openloop(plant_config, storage_perf_params, s
415415
)
416416
with subtests.test("Expected charge"):
417417
np.testing.assert_allclose(
418-
prob.get_val("battery.battery_electricity_charge", units="kW"),
418+
prob.get_val("battery.storage_electricity_charge", units="kW"),
419419
expected_charge,
420420
rtol=1e-6,
421421
)

h2integrate/control/test/test_optimal_controllers.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -227,16 +227,16 @@ def test_min_operating_cost_load_following_battery_dispatch(
227227

228228
# Test that discharge is always positive
229229
with subtests.test("Discharge is always positive"):
230-
assert np.all(prob.get_val("battery.battery_electricity_discharge") >= 0)
230+
assert np.all(prob.get_val("battery.storage_electricity_discharge") >= 0)
231231
with subtests.test("Charge is always negative"):
232-
assert np.all(prob.get_val("battery.battery_electricity_charge") <= 0)
232+
assert np.all(prob.get_val("battery.storage_electricity_charge") <= 0)
233233
# Set rtol lower b/c the values are in kW
234234
with subtests.test("Charge + Discharge == battery_electricity_out"):
235-
charge_plus_discharge = prob.get_val("battery.battery_electricity_charge") + prob.get_val(
236-
"battery.battery_electricity_discharge"
235+
charge_plus_discharge = prob.get_val("battery.storage_electricity_charge") + prob.get_val(
236+
"battery.storage_electricity_discharge"
237237
)
238238
np.testing.assert_allclose(
239-
charge_plus_discharge, prob.get_val("battery_electricity_out"), rtol=1e-2
239+
charge_plus_discharge, prob.get_val("storage_electricity_out"), rtol=1e-2
240240
)
241241
with subtests.test("Initial SOC is correct"):
242242
assert pytest.approx(prob.model.get_val("battery.SOC")[0], rel=1e-2) == 50
@@ -255,25 +255,25 @@ def test_min_operating_cost_load_following_battery_dispatch(
255255

256256
with subtests.test("SOC increases when charging"):
257257
assert np.all(
258-
prob.get_val("battery.battery_electricity_charge", units="kW")[indx_soc_increase] <= 0
258+
prob.get_val("battery.storage_electricity_charge", units="kW")[indx_soc_increase] <= 0
259259
)
260260
assert np.all(
261-
prob.get_val("battery.battery_electricity_charge", units="kW")[indx_soc_decrease] == 0
261+
prob.get_val("battery.storage_electricity_charge", units="kW")[indx_soc_decrease] == 0
262262
)
263263
assert np.all(
264-
prob.get_val("battery.battery_electricity_charge", units="kW")[indx_soc_same] == 0
264+
prob.get_val("battery.storage_electricity_charge", units="kW")[indx_soc_same] == 0
265265
)
266266

267267
with subtests.test("SOC decreases when discharging"):
268268
assert np.all(
269-
prob.get_val("battery.battery_electricity_discharge", units="kW")[indx_soc_decrease] > 0
269+
prob.get_val("battery.storage_electricity_discharge", units="kW")[indx_soc_decrease] > 0
270270
)
271271
assert np.all(
272-
prob.get_val("battery.battery_electricity_discharge", units="kW")[indx_soc_increase]
272+
prob.get_val("battery.storage_electricity_discharge", units="kW")[indx_soc_increase]
273273
== 0
274274
)
275275
assert np.all(
276-
prob.get_val("battery.battery_electricity_discharge", units="kW")[indx_soc_same] == 0
276+
prob.get_val("battery.storage_electricity_discharge", units="kW")[indx_soc_same] == 0
277277
)
278278

279279
with subtests.test("Max SOC <= Max storage percent"):
@@ -284,28 +284,28 @@ def test_min_operating_cost_load_following_battery_dispatch(
284284

285285
with subtests.test("Charge never exceeds charge rate"):
286286
assert (
287-
prob.get_val("battery.battery_electricity_charge", units="kW").min() >= -1 * charge_rate
287+
prob.get_val("battery.storage_electricity_charge", units="kW").min() >= -1 * charge_rate
288288
)
289289

290290
with subtests.test("Discharge never exceeds discharge rate"):
291291
assert (
292-
prob.get_val("battery.battery_electricity_discharge", units="kW").max()
292+
prob.get_val("battery.storage_electricity_discharge", units="kW").max()
293293
<= discharge_rate
294294
)
295295

296296
with subtests.test("Discharge never exceeds demand"):
297297
assert np.all(
298-
prob.get_val("battery.battery_electricity_discharge", units="kW").max() <= demand_in
298+
prob.get_val("battery.storage_electricity_discharge", units="kW").max() <= demand_in
299299
)
300300

301301
with subtests.test("Sometimes discharges"):
302302
assert any(
303-
k > 1e-3 for k in prob.get_val("battery.battery_electricity_discharge", units="kW")
303+
k > 1e-3 for k in prob.get_val("battery.storage_electricity_discharge", units="kW")
304304
)
305305

306306
with subtests.test("Sometimes charges"):
307307
assert any(
308-
k < -1e-3 for k in prob.get_val("battery.battery_electricity_charge", units="kW")
308+
k < -1e-3 for k in prob.get_val("battery.storage_electricity_charge", units="kW")
309309
)
310310

311311
with subtests.test("Cumulative charge/discharge does not exceed storage capacity"):
@@ -315,15 +315,15 @@ def test_min_operating_cost_load_following_battery_dispatch(
315315
with subtests.test("Expected discharge from hour 10-30"):
316316
expected_discharge = np.concat([np.zeros(8), np.ones(8) * 5000, np.zeros(4)])
317317
np.testing.assert_allclose(
318-
prob.get_val("battery.battery_electricity_discharge", units="kW")[0:20],
318+
prob.get_val("battery.storage_electricity_discharge", units="kW")[0:20],
319319
expected_discharge,
320320
rtol=1e-2,
321321
)
322322

323323
with subtests.test("Expected charge hour 0-24"):
324324
expected_charge = -1 * np.concat([np.zeros(16), np.ones(8) * 4000])
325325
np.testing.assert_allclose(
326-
prob.get_val("battery.battery_electricity_charge", units="kW")[0:24],
326+
prob.get_val("battery.storage_electricity_charge", units="kW")[0:24],
327327
expected_charge,
328328
rtol=1e-2,
329329
)

h2integrate/storage/battery/battery_baseclass.py

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)