Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PowerFlows.jl unified develop branch #53

Draft
wants to merge 122 commits into
base: main
Choose a base branch
from
Draft

Conversation

GabrielKS
Copy link
Contributor

@GabrielKS GabrielKS commented Nov 5, 2024

The hrgks/psse_exporter_psy4 branch has become a unified develop-type branch for lots of new PowerFlows.jl functionality. It now contains the PSS/E exporter implementation as well as some new power flow implementations from @rbolgaryn. Pull requests include:

  1. PSSE Exporter Part 1: Add Tests and Formalize Exporter Implementation #42
  2. PSSE Exporter Part 2: Integrate with PowerSimulations #48
  3. Feature/nr_pf_solver #54
  4. Fix bug 74: enforcing reactive power limits for AC power flow #76
  5. Modify PowerFlowData fields for multi-period AC PF #78
  6. Implement power flow-specific (re)active power limits proxies #79

plus some more commits only in this branch.

HaleyRoss and others added 30 commits August 13, 2024 10:58
@GabrielKS GabrielKS changed the title PSSE Exporter Sync-up PowerFlows.jl unified develop branch Jan 16, 2025
@GabrielKS GabrielKS linked an issue Jan 16, 2025 that may be closed by this pull request
@jd-lara
Copy link
Member

jd-lara commented Jan 20, 2025

@GabrielKS bump PSY and PNM versions in this PR for the tests to pass

add field "converged" to PowerFlowData, return NaN when not converged
@GabrielKS
Copy link
Contributor Author

@GabrielKS bump PSY and PNM versions in this PR for the tests to pass

Done. Tests pass at #83 but tests will fail again here because #82 depends on NREL-Sienna/PowerNetworkMatrices.jl#95.

SBASE = PSY.get_base_power(exporter.system)
REV = 33
XFRRAT = 0
NXFRAT = 1 # TODO why?
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jd-lara what should we have for this?

ZONE = PSSE_DEFAULT # defaults to zone's area
PL, QL, IP, IQ, YP, YQ = _psse_get_load_data(exporter, load)
OWNER = PSSE_DEFAULT # defaults to bus's owner
SCALE = PSSE_DEFAULT # TODO reconsider
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jd-lara should our loads be marked as scalable?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no, we don't need that for our exporter/models

Comment on lines +192 to +193
Yft = SparseArrays.sparse([1:length(fb); 1:length(fb)], [fb; tb], [y11; y12], length(fb), length(buses))
Ytf = SparseArrays.sparse([1:length(tb); 1:length(tb)], [tb; fb], [y22; y21], length(tb), length(buses))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[JuliaFormatter] reported by reviewdog 🐶

Suggested change
Yft = SparseArrays.sparse([1:length(fb); 1:length(fb)], [fb; tb], [y11; y12], length(fb), length(buses))
Ytf = SparseArrays.sparse([1:length(tb); 1:length(tb)], [tb; fb], [y22; y21], length(tb), length(buses))
Yft = SparseArrays.sparse(
[1:length(fb); 1:length(fb)],
[fb; tb],
[y11; y12],
length(fb),
length(buses),
)
Ytf = SparseArrays.sparse(
[1:length(tb); 1:length(tb)],
[tb; fb],
[y22; y21],
length(tb),
length(buses),
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Performance Improvements PSSe Exporter
5 participants