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

PSSE Parser: incorrect impedance when NOMVX is 0.0 #912

Closed
frederikgeth opened this issue May 28, 2024 · 6 comments
Closed

PSSE Parser: incorrect impedance when NOMVX is 0.0 #912

frederikgeth opened this issue May 28, 2024 · 6 comments
Labels

Comments

@frederikgeth
Copy link
Collaborator

Ran into this bug with @hei06j while parsing 3-winding transformers from PSSE.

Per the PSSE Manual on NOMV1, NOMV2, NOMV3:

The nominal (rated) winding one voltage in kV, or zero to indicate that nominal winding one voltage is to be taken as the base voltage of bus "I". NOMV1 is used only in converting magnetizing data between per unit admittance values and physical units when CM is 2. NOMV1 = 0.0 by default.

If that happens, the transformer impedances get accidentally set to 0 here

br_r *= (transformer["NOMV1"]^2 / _get_bus_value(transformer["I"], "base_kv", pm_data)^2) * (pm_data["baseMVA"] / transformer["SBASE1-2"])
br_x *= (transformer["NOMV1"]^2 / _get_bus_value(transformer["I"], "base_kv", pm_data)^2) * (pm_data["baseMVA"] / transformer["SBASE1-2"])

This should be replaced with something like

if transformer["NOMV1"] == 0.0
  br_r *= (pm_data["baseMVA"] / transformer["SBASE1-2"])
  br_x *= (pm_data["baseMVA"] / transformer["SBASE1-2"])
else
  br_r *= (transformer["NOMV1"]^2 / _get_bus_value(transformer["I"], "base_kv", pm_data)^2) * (pm_data["baseMVA"] / transformer["SBASE1-2"])
  br_x *= (transformer["NOMV1"]^2 / _get_bus_value(transformer["I"], "base_kv", pm_data)^2) * (pm_data["baseMVA"] / transformer["SBASE1-2"])
end
@frederikgeth
Copy link
Collaborator Author

frederikgeth commented May 28, 2024

Just saw Jay's issue and I think it is the same underlying issue, #888, which ran into this problem for branches, not (3-winding) transformers 2-winding transformers

Note that with r and x both effectively becoming zero none of the bus injection model type formulations will work, and instead converge to an infeasible point.

For those finding this issue before a fix: manually edit your raw file and set the nomv values to the appropriate ones

@frederikgeth
Copy link
Collaborator Author

Ok, also noticing this being the problem in #897

@ccoffrin
Copy link
Member

Can you adapt one of the test network datasets to exhibit the issue so that we can make a test for this?

@frederikgeth
Copy link
Collaborator Author

We have a MWE with PSSE baseline results, @hei06j started preparing a PR. Hopefully we can get it out today before flying to PSCC.

@ccoffrin
Copy link
Member

ccoffrin commented Jul 6, 2024

Has this been addressed by #919?

@hei06j
Copy link
Contributor

hei06j commented Jul 7, 2024

Yes.

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

No branches or pull requests

3 participants