Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    FinChrisite
    @FinChrisite
    image.png
    Rodrigo Amaro e Silva
    @ramaroesilva
    So, from my experience that usually means that something (usually not money) is blocking the hydrogen from reaching its consumption point(s).
    Just to confirm, the public repo you shared here is the one I should look at, right?
    lblabr
    @lblabr

    image.png

    wich scenario is relevant ? in your model you have two transmission techs for region1-2,region2:

    lblabr
    @lblabr
    moving the electrolysis to the location with OSW and removing transmission for hydrogen results in that picture
    image.png
    in the way around shouldn't be the hydrogen demand in region1-2: ??
    image.png
    moving the hydrogen demand
    FinChrisite
    @FinChrisite
    Hi, the link that was causing the problem was the hydrogen pipes between region1-2 and region 2. After looking over it with my supervisor we found the efficiency per distance constraint was effectively making the pipe useless (because of thr long distance). We removed the constraint and it now works as hoped. Thabk you so much for taking a look at the model!
    Rodrigo Amaro e Silva
    @ramaroesilva
    @FinChrisite, great! keep up the good work :-)
    FinChrisite
    @FinChrisite
    I also think i have found a bug in the software, I am not sure if you are aware but the "one_way" transmission constraint doesn't seem to work
    Rodrigo Amaro e Silva
    @ramaroesilva
    I've used it before and it does work (at least in version 0.65). what I found out and has already been identified by the main developers, is that one-way is not compatible with transmission costs
    FinChrisite
    @FinChrisite
    Ahh interesting!
    Rodrigo Amaro e Silva
    @ramaroesilva
    @lblabr, what's happening here is that your confusing installed capacity with operation power (as both are in Watt).
    energy_cap_max/min/equals only address how many kW are installed for a given technology in a given location. that's where my previous comment came from.
    in your case, you have a 11 kW battery (rated capacity, fixed value), which can only operate at power levels >= 2.4 kW (power operation, which varies in time) and <= its rated capacity.
    This is a pertinent question, which I have yet to address in my projects.
    I looked at the per-tech constraints and couldn't find what you're looking for (which does not mean it is not there)
    lblabr
    @lblabr

    in your case, you have a 11 kW battery (rated capacity, fixed value), which can only operate at power levels >= 2.4 kW (power operation, which varies in time) and <= its rated capacity.

    what do you mean with rated capacity, the capacity of the battery is 13,1kWh

    so charging may operate at a power level 2.4kW ... 11kW, charging duration the 13,1kWh depends an Charging level
    Rodrigo Amaro e Silva
    @ramaroesilva
    you're right, I meant "rated power".
    lblabr
    @lblabr
    okay, understud the contraints have a mor or less universal meaning depending on tec
    tech ?
    Rodrigo Amaro e Silva
    @ramaroesilva
    so energy_cap_max/min/equal refers to allowed rated power, not operation power
    28 replies
    lblabr
    @lblabr
    okay
    should we open a thread ?
    Rodrigo Amaro e Silva
    @ramaroesilva
    also, for clarification, installed capacity can refer to the rated power of a generator (which I understand that for batteries is confusing)
    lblabr
    @lblabr
    could we discuss in theread ? pls look to your message with replies
    Rodrigo Amaro e Silva
    @ramaroesilva
    ok. just to conclude the "naming" topic, for calliope nomenclature you have:
    • energy_cap: in kW (the battery rated power)
    • storage_cap: in kWh (the battery capacity)
    lblabr
    @lblabr
    you are right
    lblabr
    @lblabr
    image.png
    Rodrigo Amaro e Silva
    @ramaroesilva
    @lblabr, if you have fixed your issue could you write a short text here explaining again your problem and how you fixed it?
    lblabr
    @lblabr
    this way is already descibed at github and also a way with a group contraint is mentioned
    Rodrigo Amaro e Silva
    @ramaroesilva
    @lblabr could you add that information to your github issues and close them (if both are already addressed)? thanks!
    Mark Geiger
    @MarkGeiger_gitlab

    Hi there,

    my names Mark, I am new here. Currently, I am about to finalize my research proposal for my PhD, for which I will at some point create an energy system model. Which is why I stumbled upon calliope.

    So far I still did not understand what calliope is really doing. I get that I can build my model (regions, demands for power / electricity, supply / energy production and transmission lines). But what is the part of the solver? What does it solve?

    Thanks!

    10 replies
    Graeme Hawker
    @GraemeHawker

    Hi everyone, I'm trying to update my old models to the latest functionality and I'm a little confused over how 'export' now works. Let's say I have some excess free power available in a model (e.g. some wind power that is beyond what is required to meet the demand in the model), and I want to be able to convert this spare energy into another carrier which has an external value. For the sake of an example, we have a machine which converts power into magic beans which are worth $1000/kWh of beans. I could state this as follows:

    magic_bean_maker:
            essentials:
                name: 'Magic bean maker'
                color: '#3B61E3'
                parent: conversion
                carrier_in: power
                carrier_out: magic_beans
                export_carrier: magic_beans
            constraints:
                energy_eff: 1.0
                lifetime: 25
            costs:
                monetary:
                    interest_rate: 0.10
                    energy_cap: 0  # USD per kW
                    om_con: 0
                    export: -1000

    However, when I put this into a model with energy_cap_equals: 1000 at a location with free power, despite there being no cost to producing beans and a clear negative cost to exporting them, no beans are produced. Is this because there is no demand for beans defined anywhere in the model, and the framework can only optimise for carriers with a demand?

    Graeme Hawker
    @GraemeHawker
    Minimal(ish) example model for the Missing Bean Problem: https://github.com/GraemeHawker/calliope_examples/tree/main/model_1
    Rodrigo Amaro e Silva
    @ramaroesilva
    I've configured exportation the same way you did for a PV generator (i.e. without having to conver its carrier) and it worked.
    I'll try to take a look at your repo later this week :-)
    Graeme Hawker
    @GraemeHawker
    Thanks rodrigo, yes it works as expected for a supply tech with a demand for the same carrier, but not in this conversion case. Working through the code I think this is because if a carrier does not have a demand in the model then it is not included in the pyomo problem construction? (I appreciate doing otherwise could lead to unbounded problems) If I create proxy demand/supply techs to effectively hack the same thing (ie there is a demand for the export carrier at least as great as the maximum output, and a competing unconstrained supply tech with om_con at what would be the export price) then this comes to the expected solution - but this is not a desirable way of doing it because it skews all the cost results.
    AdamEaCSIII
    @AdamEaCSIII

    Hi everyone,
    I am hoping to model electric vehicles (EV) as storage . I was trying to do so by using a storage technology with storage_cap_max being input as a time-series representing whether the electric parking spot is occupied or not:

    battery:
        essentials:
            name: 'Battery storage'
            color: '#3B61E3'
            parent: storage
            carrier: electricity
        constraints:
            energy_cap_max: 22  # kW
            storage_cap_max: df=EV_max_charge:EV_0

    However, it does not seem to work, ignoring the max capacity.

    In other words, is it possible to input storage_cap_max as a time-series?
    Or is there a better way to do this?

    Cheers!

    Rodrigo Amaro e Silva
    @ramaroesilva
    hi @AdamEaCSIII
    as far as I know, both energy_cap and storage_cap cannot be modelled as timeseries
    take a look at "file_allowed" to understand which parameters allow for timeseries
    https://calliope.readthedocs.io/en/stable/user/config_defaults.html#config-reference-model
    Rodrigo Amaro e Silva
    @ramaroesilva
    something that I thought on was to model availability with one of the efficiency parameters (directly in the storage or in a link connecting the storage to the rest of the grid)
    where available time periods have efficiency = 1 and 0 for the remainder
    if you have pre-defined values for the energy_cap and storage_cap of the EV, define them explicitly in the yaml.
    otherwise, leave it empty so that calliope optimizes those parameters