Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    b-jesse
    @b-jesse

    I want to model a demand response technique like load shift. However, the available load that can be shifted is time-dependent.
    As an example:
    Company 1 cannot shift load between 0 and 8 am,
    between 8 am and 12 pm, it can shift 4 MW
    between 12 and 4 pm, it can shift 6 MW
    between 4 and 8 pm, it can shift 3 MW
    and between 8 pm and 0 am it can shift 1 MW.

    But in my model, there are many more different possible states. So I don't want to model all possible states as a separate technology.

    12 replies
    Andrea B.
    @abart89

    Hi @All! I have used calliope in the past to analyze planning questions but now I am considering it for its operational mode for scenario analysis in existing districts.

    In particular, I'd like to test how systems of given sizes/design behave under different load curves and environmental conditions. For these reasons, I had some doubts regarding how the receding horizon in the operational mode works, with its two parameters horizon and window.

    To understand if I got it correctly: the energy systems "see" parameters for #horizon timesteps in advance (e.g reading them from the external files provided) and the dispatch variables for #window timesteps are computed, then the horizon recedes for #window timesteps? Basically an optimization over the window horizon's timesteps

    Thanks in advance!

    jalomim
    @jalomim
    image.png
    image.png
    image.png
    image.png

    Hi @All!
    I have started using Calliope very recently and I am using it to support a DSO supporting a local DSO in planning the development of their electric and thermal grids. Just as described in the documentation for "demand_share_per_timestep_decision" (https://calliope.readthedocs.io/en/stable/user/advanced_constraints.html) I would am trying to use this constraint to make sure the relative share of heating technologies supplying the low temperature (ltheat) demand in different locations is consistent.
    When I use the "group_share" constraint the model runs smoothly but does not provide the per time-step capabilities, however the "group_constraint" fails.

    For example, I have defined the constraints of the Air-to-Water Heat Pump as in the attached snapshots:
    I would be very grateful if you could please give me a hint as to why I am having this error (and why it is seems to be considering diesel when I specify the technology AWHP and the carrier (ltheat) ?

    3 replies
    AdamEaCSIII
    @AdamEaCSIII
    Hi all, a simple question:
    Is there an easy way for a supply to have multiple carriers as outputs?
    I want to model photovoltaic thermal hybrid collectors (PVT) which output both electricity and heat.
    I can do this by combining a supply with a conversion tech with a unique carrier, but I was hoping to avoid this.
    I suppose it can also be done using the Pyomo backend, but I have no experience there yet.
    What would you recommend?
    Thanks!
    1 reply
    b-jesse
    @b-jesse

    Hello again.
    I have a question about the group_constraints:
    My group_constraint looks something like this

    group_constraints:
        elc_prod_region1:
            locs: ['region1']
            carrier_prod_min:
                ELC: 10000000

    I thought so I can force that region1 must be generated at least 10000000 units of electricity. However, I get the following error message

    [2021-04-16 16:00:00] WARNING Warning: Possible issues found during model processing:
     * Unrecognised group constraint `carrier_prod_min`in group `elc_prod_region1` will be ignored - possibly a misspelling?
    
    Error in print_warning_and_raise_errors:
    Errors during model processing:
     * Invalid carrier tier found at group_constraints.elc_prod_region1.carrier_prod_min_ELC. Only `carrier_`+ [`in`, `out`, `in_2`, `out_2`, `in_3`, `out_3`] is valid.

    So I changed my code to this:

    group_constraints:
        elc_prod_region1:
            locs: ['region1']
            carrier_prod_min:
                carrier_out:
                     ELC: 10000000

    The model is now running, but I am not sure if it will really do what I want. I'm afraid that the constraint only considers technologies that have an input and only the output ELC. So supply, supply_plus, and conversion_plus are ignored. Has anyone already had experience with this and can tell me if this constraint as I have it now takes into account all power generating techniques. I have the constraint from here:
    https://calliope.readthedocs.io/en/stable/user/advanced_constraints.html#group-constraints

    Thanks, everybody

    3 replies
    lblabr
    @lblabr
    are there big difference betwee sense mode minimize and maximize ? the calculation time for minimize is something about 10s with maximize still runs since minutes > 15
    and ongoing
    what informtions you may need to help (model, timeseries, ???) ?
    19 replies
    DEickholt
    @DEickholt

    Hi everyone,

    I am currently looking at different open-source energy modelling tools with the goal of designing minigrids (small stand-alone energy grids without a connection to the main grid). A lot of tools should theoretically work for this purpose, but do not support it explicitly. Therefore, the selection is difficult.

    The long-term goal is to implement e-mobility and vehicle-to-grid options as well. This will be used to analyse possible synergies between new minigrids and e-mobility in rural African villages.

    Since you are all experienced with Calliope already i would really appreciate a short opinion whether you think it is the right tool for this job. If you have any other suggestions I would appreciate those as well.

    Thank you very much and best regards.

    3 replies
    AdamEaCSIII
    @AdamEaCSIII

    Hi everyone,
    I am trying to prevent a conversion tech from operating on certain hours of the year using both the 'energy_prod' and 'energy_con' constraints and a time series csv file. Running it doesn't show any errors, but it does not seem to be constrained properly as it is operating at the times it should be disabled. I tried using 0 and 1 as well as TRUE and FALSE in the csv, but both don't seem to constrain it.
    If anyone has any pointers of what may be going on, I'd really appreciate it.

    The conversion tech looks something like this:

    e_x_conversion:
    essentials:
    name: e-x conversion
    color: '#65AFC5'
    parent: conversion
    carrier_in: electricity
    carrier_out: x
    constraints:
    energy_cap_max: 22
    energy_prod: file=Y:(path).csv:column
    energy_con: file=Y:(path).csv:column

    3 replies
    Francesco Lombardi
    @FLomb

    Hi everyone,

    I am currently looking at different open-source energy modelling tools with the goal of designing minigrids (small stand-alone energy grids without a connection to the main grid). A lot of tools should theoretically work for this purpose, but do not support it explicitly. Therefore, the selection is difficult.

    The long-term goal is to implement e-mobility and vehicle-to-grid options as well. This will be used to analyse possible synergies between new minigrids and e-mobility in rural African villages.

    Since you are all experienced with Calliope already i would really appreciate a short opinion whether you think it is the right tool for this job. If you have any other suggestions I would appreciate those as well.

    Thank you very much and best regards.

    Hi @DEickholt , yes I think Calliope is particularly suited for this kind of job, more so than other options, because it was conceived originally precisely to be easily adaptable to multiple scales, including the local scale. On the Calliope model gallery you can see some examples of district-scale systems, and some more are available in the list of publications. I have myself used it in the past to model a district-scale energy system, for which Calliope allowed me to have a lot more versatility than other commercial software I used in the past

    6 replies
    Francesco Lombardi
    @FLomb

    Hi everyone,
    I am trying to prevent a conversion tech from operating on certain hours of the year using both the 'energy_prod' and 'energy_con' constraints and a time series csv file. Running it doesn't show any errors, but it does not seem to be constrained properly as it is operating at the times it should be disabled. I tried using 0 and 1 as well as TRUE and FALSE in the csv, but both don't seem to constrain it.
    If anyone has any pointers of what may be going on, I'd really appreciate it.

    The conversion tech looks something like this:

    e_x_conversion:
    essentials:
    name: e-x conversion
    color: '#65AFC5'
    parent: conversion
    carrier_in: electricity
    carrier_out: x
    constraints:
    energy_cap_max: 22
    energy_prod: file=Y:(path).csv:column
    energy_con: file=Y:(path).csv:column

    hi, never tried myself to constrain simultaneously consumption and production, so not sure, I should try; but what are you exactly trying to model? that could help figuring out if there are other/better options anyway

    Rodrigo Amaro e Silva
    @ramaroesilva
    lightly off-topic, open position for MSc graduates on exploring calliope for a EU project (@FLomb and @luzgui involved)
    http://www.eracareers.pt/opportunities/index.aspx?task=global&jobId=134543
    2 replies
    FAYDI
    @FAYDI
    Hi,
    I am a new user of calliope and I would like to know, if possible, which transmission I have to choose for special gas (oxygen or hydrogen) from a conversion_plus tech to storage tech.
    Many thanks !!
    Francesco Lombardi
    @FLomb
    Hi @FAYDI, I would say there is only one archetype of transmission technology, which is then free for you to customise at your need. For instance, you can impose transmission capacity limits, transmission costs and/or a transmission efficiency which are tailored to your specific type of transmission (i.e. a pipeline for specific types of gases). Does this answer your question?
    FAYDI
    @FAYDI
    Hi @FLomb, thank you for your answer! So, is it just like heat_pipes but customized for a specific gas distribution ?
    Rodrigo Amaro e Silva
    @ramaroesilva
    Exactly @FAYDI. For me, the beauty of calliope is its extreme flexibility
    While the customization implies some work for the modeller, the freedom entailed is great
    FAYDI
    @FAYDI
    Thanks!! Yes, indeed, this flexibility allows to do a very interessting combination of technologies. It's really great
    FAYDI
    @FAYDI
    Hi, I have another question if somebody could help. Is it possible to force a technology to supply or convert the carrier in specific time (for example during the night) ?
    n-stolz
    @n-stolz

    Hi everyone,
    I am trying to model the European energy-system using the euro-calliope model. In my project I will run a model in planning mode, followed by a run in "operate mode" with the capacity obtained by the planning run.
    Unfortunately I am running into a pretty annoying issue when trying to run the model in operation mode. The model does not run, as it is unfeasible. Saving the model as a .lp file, I discovered that the issue comes from this biofuel constraint in Italy:

    c_e_balance_supply_plus_constraint(ITAbiofuel_2016_01_01_00_0000):
    +1 carrier_prod(ITA
    biofuelelectricity_2016_01_01_00_00_00)
    -1 resource_con(ITA
    biofuel_2016_01_01_00_00_00)
    +1 storage(ITA__biofuel_2016_01_01_00_00_00)
    = 2058

    I don't know why 2058 is the constraint here, it is zero for all other timesteps of this technology and all other loc_techs.

    If I remove biofuel from Italy, the constraint of biofuel in Slovenia (which was 0 when biofuel was allowed in Italy) changes and makes the model unfeasible again. This time the constraint making the model unfeasible is:

    c_e_balance_supply_plus_constraint(SVNbiofuel_2016_01_02_12_0000):
    +1 carrier_prod(SVN
    biofuelelectricity_2016_01_02_12_00_00)
    -1 resource_con(SVN
    biofuel_2016_01_02_12_00_00)
    +1 storage(SVN__biofuel_2016_01_02_12_00_00)
    = 2932.8656850801376

    After removing biofuel from Slovenia, however, the model runs and produces an output.

    My first thought was that there seems to be an issue with the biofuel technology class or the way I link the constraints to the planning part of the model. But there is still biofuel capacity in other countries which is used in the operation mode and all links between the two models are automized, so the way constraints are implemented must be exactly the same for Italy and Slovenia compared to other locations.

    I hope I described my issue in an comprehensible way, if not please let me know.

    Is this issue familiar to anyone? Does anyone know were I could change anything to not run into this problem?
    I am very confused, because there are 34 locations and around 14 technologies that work and the issue only arises at these two instances.

    I would be incredibly grateful if anyone could give me a hint what is going wrong!

    Many thanks!!

    Francesco Lombardi
    @FLomb

    Hi, I have another question if somebody could help. Is it possible to force a technology to supply or convert the carrier in specific time (for example during the night) ?

    @FAYDI yes, that's possible, particularly for supply techs. You could, for instance, set the resource of the technology as a time series (rather than 'inf', if you have a dispatchable supply plant). The time series should then have: resource = a very high value, or inf, during daylight hours; resource = 0 otherwise

    Rodrigo Amaro e Silva
    @ramaroesilva
    @n-stolz, can't you get the outputs you're looking for from the first "planning" run?personally, I have no experience with the "operation" mode.
    n-stolz
    @n-stolz
    @ramaroesilva I need the production time series and unmet demand time series for every location. Can I get that from the planning run?
    Rodrigo Amaro e Silva
    @ramaroesilva
    yes, I'm sure of this. take a look at the documentation on how to store calliope outputs as .csv or .nc (netcdf)
    n-stolz
    @n-stolz
    @ramaroesilva Thank you very much, I found what I was looking for in the planning model!
    yannick van til
    @Yannickvtil
    Schermafbeelding 2021-06-29 om 09.39.55.png
    Also submitted as an issue on the github:
    Incorrect storage behavior when using operate mode,
    When I use operate mode with a prespecified tech/loc capacity configuration, the storage "creates" capacity whenever it needs it.
    This seems odd to me since unmet demand is turned ON, meaning that whenever it can't meet demand, it should just create unmet demand instead of an infeasible amount of new storage capacity. (only happens in operate mode),
    Has anyone else experienced this problem?
    Peter
    @peterklein11_twitter
    Hi All. New user here. I have a MIP problem for a mix of solar PV, wind and storage, as I can only install a fixed number of 5 wind units. I am currently using CBC as the solver, but the solution is getting a bit slow and I wanted to try adjusting the mipgap. Adjusting mipgap=0.05 under the solver options didn't seem to change the solution time at all. It seems CBC expects ratioGap or allowableGap as the solver option? How would I implement this in the YAML model file? Providing ratioGap=0.05 didn't seem to do anything either
    2 replies
    FAYDI
    @FAYDI
    Hi everyone, I would like to know if it is possible to introduce a number of cycle of technology instead of lifetime. My second question is about the degradation and the cost of replacement. Is it possible to take into account these parameters in the lcoe ? Thank you so much for your answers.
    1 reply
    Francesco Lombardi
    @FLomb
    hi @FAYDI. I would say that no, atm having an explicit number of cycles as a substitute of lifetime is not possible. There are ways to take into account battery (I guess you have in mind a battery here?) cycles in an approximate way in an LP model. For an example check this out, although it's not Calliope-based
    the same reference provides some insights about options for degradation/cost of replacement. Generally speaking, all of this is a bit hard to take into account in LP form; slightly better in MILP form, possibly
    FAYDI
    @FAYDI
    Ok, I see, many thanks @FLomb
    MatthieuJacobs
    @MatthieuJacobs
    Hi, I have a question regarding the definition of resources for which potentials are typically estimated on a yearly basis, such as biomass for example. Is there a way to set an annual resource potential in Calliope, or should I find a way to set a custom constraint linking the availability in consecutive periods? At the moment the annual resource is considered to be hourly, which obviously doesn't make sense. I also don't really want to just divide the potential by the number of timesteps as this reduces the potential in combination with intermittent resources. Has anyone faced this issue?
    1 reply
    jgwagenfeld
    @jgwagenfeld
    Maybe you can use the group constraint carrier_prod_max for the set of techs/locations you wanne set the upper limit?
    1 reply
    MatthieuJacobs
    @MatthieuJacobs
    @jgwagenfeld this seems to work! Thanks
    Hardy Hosseini
    @hardy.hosseini_gitlab
    Hi All, I am a new user of Calliope. Just wondering is there any training course for this software?
    Francesco Lombardi
    @FLomb
    Hi @hardy.hosseini_gitlab , the documentation includes some tutorials (https://calliope.readthedocs.io/en/stable/user/tutorials.html), have you already seen those?
    2 replies
    MartKret
    @MartKret
    Hi, I am currently trying to implement various things in Calliope. I was wondering if anyone has ever implemented demand side management in Calliope? My attempts to implement DSM as a storage were not so successful, because various parameters, like storage duration or number of possible storage operations are missing. Does anyone of you have experience with this and can possibly help me? Thanks.
    Francesco Lombardi
    @FLomb
    The maximum "storage time" was removed since Calliope 0.6.0, but was there before. Not sure why it was removed, but I guess it was not particularly meaningful for normal storage techs; you could maybe bring it back to life for DSM? as far as the "number of possible storage operations", what do you mean? how many "times per day" can the storage be charged/discharged? If so, I think there's no such option at the moment; you could implement it, but it would turn the problem into a MILP one - which is ok, but harder to solve
    4 replies
    Lingkangjin
    @Lingkangjin
    image.png
    Lingkangjin
    @Lingkangjin
    Hello everyone, I am new to Calliope and currently I am doing some cases by my own (running with Calliope 0.6.7 in plan mode); I have a doubt about the conversion technologies, moreover regarding the "energy_cap_max" constraint, I have seen that if this constraint is set, as results the size of the technology will be equal the maximum value, however, if this constraint is removed, the size of the technology will be calculated by Calliope and can be lower (or higher) than the maximum size. So I wonder how can I set the upper limit without defining the tech size.
    7 replies