GenXProject / GenX.jl

GenX: a configurable power system capacity expansion model for studying low-carbon energy futures. More details at : https://genx.mit.edu
https://genxproject.github.io/GenX.jl/
GNU General Public License v2.0
266 stars 113 forks source link

Forward and reverse ratings for transmission lines #614

Open Nick-Maurer opened 7 months ago

Nick-Maurer commented 7 months ago

Wondering if it'd be useful to include a feature to model forward and reverse ratings for transmission lines. If I understand correctly, currently transmission capacity can only be equal in both directions. I'm not sure if this would be useful in other systems but in AUS, we have inter-state connectors that have vastly different forward and reverse ratings.

Another option, perhaps simpler, would be to allow one-way or unidirectional transmission. This would mean you could effectively model a forward and reverse line as two seperate lines with different capacities.

sambuddhac commented 7 months ago

Thanks @Nick-Maurer for the issue and the feature request. It would be a very simple feature to code. However, I am tagging here @JesseJenkins and @dharik13 for their comment on if we would like to have it on our forthcoming version or not. Or, if we would like to have it as a user-defined option. In either case, I can go ahead, put up a PR (unless you already have one).

Nick-Maurer commented 7 months ago

@sambuddhac Sounds good. I haven't implemented anything yet on my end, but can support if needed.

dharik13 commented 7 months ago

@Nick-Maurer thanks - this is a very good suggestion. We have previously discussed introducing dynamic line ratings for transmission lines (i.e. transmission line capacity may be different for each operating period) and this could be extended to have asymmetric transmission line capacities. If you feel like modeling one or both of these items, let us know and we would be happy to assist with implementation and troubleshooting.

JesseJenkins commented 7 months ago

Yes we discussed this recently and I believe @filippopecci is going to try to work on this as part of our implementation of DC OPF which is coming in v0.4 package. @Nick-Maurer if you want to contribute, please let him know.

Nick-Maurer commented 6 months ago

@JesseJenkins, @dharik13 - Thanks. I'll reach out to @filippopecci and see where things are at.

wrgunther commented 5 months ago

I was just discussing this with Dharik, and figured I would share my two cents. We have the same issue of directional line limits in NY, most acutely for HVDC lines but also for AC interfaces. To provide an illustration p37 in https://www.nysrc.org/wp-content/uploads/2023/12/2024-IRM-Study-Report-Appendices-12-8-2023.pdf contains directional limits under emergency conditions. Separate from individual line limits, there can also be interface limits across multiple lines.

Nick-Maurer commented 5 months ago

@wrgunther great to see this would be useful elsewhere too. I've just implemented some simple changes to model forward and reverse ratings in operational mode only (i.e. no network expansion) and it seems to work well. I'd like to generalise it to work across all GenX modes and hopefully it could be integrated into a future release...

JesseJenkins commented 2 months ago

@Nick-Maurer are you working on this feature? Would you like to submit a PR for incorporation into v0.4.1?

Nick-Maurer commented 2 months ago

@JesseJenkins I haven't implemented anything beyond operational mode (as per my comment above). It's on my to do list and would love to get it done. What's your timeline looking like for v0.4.1?

joe-lane commented 1 month ago

@JesseJenkins We're close to having this ready. Would you like us to proceed with a PR...? Maybe some discussion needed on how to parameterise the expansion limits & expansion cost equation. Our approach is very flexible, but we haven't reviewed how others think this should be implemented.

joe-lane commented 1 month ago

@sambuddhac @filippopecci Given it's been a while since @Nick-Maurer initiated this, can I just confirm whether or not you or someone else has already taken on this task...? If so, we'll wait patiently. If not, we'll proceed to finalise a PR.

sambuddhac commented 1 month ago

Hey @joe-lane , please finalize and send us a PR. Please also include the automated tests for your contribution in the PR, if you can. We will review and test it. Thanks Joe.

JesseJenkins commented 20 hours ago

I think all we need to do to implement the asymmetric flow constraints is to modify these existing constraints:

    @constraints(EP, begin
        cMaxFlow_out[l=1:L, t=1:T], vFLOW[l,t] <= eAvail_Trans_Cap[l]
        cMaxFlow_in[l=1:L, t=1:T], vFLOW[l,t] >= -eAvail_Trans_Cap[l]
    end)

Such that we replace vFLOW with vTAUX_NEG and vTAUX_POS for the respective directions and eAvail_Trans_Cap with a new eAvail_Trans_Cap_Pos and eAvail_Trans_Cap_Neg indicating capacity for the two directions.

The main thing that is still unclear is whether adding X MW of new capacity has a symmetrica effect on maximum flows in both directions. In reality, this is not the case, but I dont know how else to handle transmission expansion right now.

JesseJenkins commented 20 hours ago

Suggestion: also add flag for each transmission path that indicates if the line is unidirectional. If set to 1, then the line has vTAUX_NEG set to == 0. This would allow someone to specify expansion lines that only contribute to one direction if they want to (or use for unidirectional HVDC lines).