A simple EV (ex. 52)

Overview

The relevant section of the top-level YAML looks like this:

components:
  # ... other stuff ...

  # NOTE: This could be a `Unit` instead, to allow more complex behaviours.
  # This assumes a rated power of "40 kW" and only allows charging while the EV is actually connected.
  charger:
    type: Connection
    node_from: grid
    node_to: ev
    loss: 0.05
    lb: 0
    ub: 40.0 * connected@data

  ev:
    type: Node
    carrier: electricity
    has_state: true
    state_lb: 0
    state_ub: 100

  ev_demand:
    type: Profile
    carrier: electricity
    node_from: ev
    value: demand@data

This models the EV as a storage that is sometimes connected to the grid - if it is, with a maximum power of 40 kW. The EV has a state of charge that can vary between 0 and 100 kWh. The demand of the EV is given by the ev_demand profile and taken out of the storage. Check the config file as well as the data file for more details.

Running the example

First, import iesopt.

import iesopt

Then, create a local copy of the IESopt example.

config = iesopt.make_example("52_simple_ev", "opt")
INFO:iesopt:Data folder for examples does not exist; creating it, and copying contents
INFO:iesopt:Creating example ('52_simple_ev') at: 'opt/52_simple_ev.iesopt.yaml'
INFO:iesopt:Set write permissions for example ('opt/52_simple_ev.iesopt.yaml'), and data folder ('opt/files')

Finally, run the model and observe some results.

model = iesopt.run(config, config={"general.verbosity.core": "error"})

model.results.to_pandas().query(
    "component == 'ev' and field == 'state' and mode == 'primal'"
)
snapshot component fieldtype field value mode
169 t1 ev var state 55.0 primal
170 t2 ev var state 55.0 primal
171 t3 ev var state 55.0 primal
172 t4 ev var state 55.0 primal
173 t5 ev var state 55.0 primal
174 t6 ev var state 55.0 primal
175 t7 ev var state 55.0 primal
176 t8 ev var state 50.0 primal
177 t9 ev var state 45.0 primal
178 t10 ev var state 40.0 primal
179 t11 ev var state 35.0 primal
180 t12 ev var state 30.0 primal
181 t13 ev var state 25.0 primal
182 t14 ev var state 20.0 primal
183 t15 ev var state 15.0 primal
184 t16 ev var state 10.0 primal
185 t17 ev var state 5.0 primal
186 t18 ev var state -0.0 primal
187 t19 ev var state 17.0 primal
188 t20 ev var state 17.0 primal
189 t21 ev var state 17.0 primal
190 t22 ev var state 17.0 primal
191 t23 ev var state 17.0 primal
192 t24 ev var state 17.0 primal