Breakthrough-Energy / REISE.jl

Renewable Energy Integration Simulation Engine
https://breakthrough-energy.github.io/docs/
MIT License
30 stars 22 forks source link

Capture line loss #181

Open BainanXia opened 2 years ago

BainanXia commented 2 years ago

:rocket:

Describe the workflow you want to enable

I wish I could configure loss of transmission lines (ac & dc) in the optimization formulation. In the current implementation, transmission lines are lossless which sometimes limits our capability of modeling components in practice, especially when trying to come up with equivalent sub-system without inducing new components.

Describe your proposed implementation, if applicable

We will need to add constraints in model.jl by reading loss0 and loss1 fields from the branch table (both ac & dc). Note that the current data structure is inherited from MatPower. We could either follow their convention or not.

Additional context

We are also considering adding a new component called link which is supposed to be more general to be capable to capture losses in both transmission and energy conversion. link will be useful in hydrogen and CCUS modeling as well.

FabianHofmann commented 2 years ago

From reading and trying to understand the code, I think that multiplying the branch_map with the line efficiencies at the outgoing bus created here https://github.com/Breakthrough-Energy/REISE.jl/blob/2a691045b088893c619814ec8a728e9cdd33660d/src/model.jl#L33 and used here https://github.com/Breakthrough-Energy/REISE.jl/blob/2a691045b088893c619814ec8a728e9cdd33660d/src/model.jl#L219 could already be sufficient. For the analogous constraint in PyPSA, this is the only place where the line efficiencies are considered. Note however in order to keep it linear, the efficiency losses are only applied to one direction.