Description
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"]
For the case when the producer just sends flows to other assets (note the arrows of the flows), we have
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"]
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"]
The node balance is:
And both sides have to be non-negative:
Proposal
Currently in Tulipa, we do not have this enforcement
- 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