Skip to content

Lower bound for the capacity constraints #1159

Open
@gnawin

Description

@gnawin

Description

Problem

Consider an example for a producer connected to two other assets. In Tulipa, we would connect them directly,

flowchart LR
    A["Producer (Production)"] -- "Flow 1" --> C["Another asset"]
    A["Producer (Production)"] -- "Flow 2" --> D["Another asset"]
Loading

For the case when the producer just sends flows to other assets (note the arrows of the flows), we have
$Flow1 \ge 0$
$Flow2 \ge 0$
This is fine as we cover this.

However, Flow 1 or Flow 2 can be transport flows, then their signs become free (note the arrows of the flows).

flowchart LR
    A["Producer (Production)"] <-- "Flow 1" --> C["Another asset"]
    A["Producer (Production)"] <-- "Flow 2" --> D["Another asset"]
Loading

In non-Tulipa way, we are essentially modeling this case:

flowchart LR
    A["Producer"] -- "Production" --> B["Node"]
    B <-- "Flow 1" --> C["Another asset"]
    B <-- "Flow 2" --> D["Another asset"]
Loading

The node balance is:
$Production = Flow 1 + Flow 2$

And both sides have to be non-negative:
$Production \ge 0 $
$Flow 1 + Flow 2 \ge 0$

Proposal

Currently in Tulipa, we do not have this enforcement $Flow 1 + Flow 2 \ge 0$ yet. This lower bound should apply to producers, storage, and conversion, if at least one of the flows is transport flows

  • sum of outgoing flows for producer
  • sum of incoming flows, sum of outgoing flows for storage
  • sum of incoming flows, sum of outgoing flows for conversion

Implementation

Add lower bound to the capacity constraints, under the condition that at least one of the flows is transport flows. We may need a tag somewhere for the incoming/outgoing flow expression, and if that tag is true, we apply the lower bound.

Can you help?

Yes

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions