import pandas as pd def build_model(shop): starttime=pd.Timestamp("2024-02-01 00:00:00") endtime=pd.Timestamp("2024-02-02 00:00:00") shop.set_time_resolution(starttime=starttime, endtime=endtime, timeunit="hour") rsv1=shop.model.reservoir.add_object("Reservoir1") rsv1.hrl.set(100) rsv1.lrl.set(90) rsv1.max_vol.set(5) rsv1.vol_head.set(pd.Series([90,100,101],index=[0,5,6])) rsv2=shop.model.reservoir.add_object("Reservoir2") rsv2.hrl.set(110) rsv2.lrl.set(95) rsv2.max_vol.set(10) rsv2.vol_head.set(pd.Series([95,110,111],index=[0,10,11])) plant1=shop.model.plant.add_object("Plant1") plant1.main_loss.set([0.0]) plant1.penstock_loss.set([0.0001]) p1g1=shop.model.generator.add_object("P1G1") p1g1.connect_to(plant1) p1g1.penstock.set(1) p1g1.p_min.set(40) p1g1.p_nom.set(100) p1g1.p_max.set(100) p1g1.gen_eff_curve.set(pd.Series([95,98], index=[0,100])) p1g1.turb_eff_curves.set([pd.Series([80,95,90],index=[1,90,100],name=90),pd.Series([82,98,92],index=[1,92,101],name=100)]) tunnel1=shop.model.tunnel.add_object("Tunnel1") tunnel1.loss_factor.set(0.0001) tunnel1.start_height.set(90) tunnel1.end_height.set(90) tunnel2=shop.model.tunnel.add_object("Tunnel2") tunnel2.loss_factor.set(0.0005) tunnel2.start_height.set(95) tunnel2.end_height.set(90) tunnel_main=shop.model.tunnel.add_object("Tunnel_main") tunnel_main.loss_factor.set(0.0002) tunnel_main.start_height.set(90) tunnel_main.end_height.set(0) rsv1.connect_to(tunnel1) rsv2.connect_to(tunnel2) tunnel1.connect_to(tunnel_main) tunnel2.connect_to(tunnel_main) tunnel_main.connect_to(plant1) rsv1.start_head.set(97) rsv2.start_head.set(97.5) rsv1.energy_value_input.set(31.7) rsv2.energy_value_input.set(31.7) da=shop.model.market.add_object('1') da.sale_price.set(39.99) da.buy_price.set(40.01) da.max_sale.set(9999) da.max_buy.set(9999) def run_model(shop): shop.start_sim([],5) shop.set_code("incremental",[]) shop.start_sim([],5)