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

Modeling the Neutral Conductor #26

Closed
ccoffrin opened this issue May 4, 2018 · 9 comments · Fixed by #356
Closed

Modeling the Neutral Conductor #26

ccoffrin opened this issue May 4, 2018 · 9 comments · Fixed by #356
Labels
Category: Data Models Data Models Category: Formulations Network Formulation Type: Enhancement New feature or request
Milestone

Comments

@ccoffrin
Copy link
Member

ccoffrin commented May 4, 2018

Discuss how to best support this.

@ccoffrin ccoffrin changed the title Modeling the Neutral Modeling the Neutral Conductor May 4, 2018
@bluejuniper
Copy link

Don't know the context, but I'll bite. It is common practice to equivalence out the neutral conductor with kron reduction. The powerflow solution is the same including losses, but you will lose the ability to apply thermal limits to the neutral conductor. Underground lines usually have a coaxial wire or foil neutral surrounding the phase conductor. Sometimes underground lines have a separate neutral cable. It's a tricky problem , I'm not sure what the best solution is.

@ccoffrin
Copy link
Member Author

ccoffrin commented May 4, 2018

Great good to know. The context is that this came up in a discussion with @frederikgeth. Probably next week we will have a call to discuss this and other points in more detail. I'll loop you in on that.

@frederikgeth
Copy link
Collaborator

The main thing going forward is making it possible to define branch series impedance and shunt admittance matrices of any size between 2x2 (e.g. explicit single phase + neutral) up to 5x5 (3 phases + explicit neutral + earth). If that flexibility is there, it should not be to hard to support neutral conductor voltage rise, grounding impedance, single-phase branches and other things at a later stage.

Dropping some related references:
[1] Urquhart, A. J. (2016). Accuracy of Low Voltage Distribution Network Modelling. Loughborough University. Download
[2] Kersting, W. H. (2004). The computation of neutral and dirt currents and power losses. IEEE PES Power Systems Conference and Exposition, 2004., 1, 213–218. https://doi.org/10.1109/PSCE.2004.1397573
[3] Ciric, R. M., Feltrin, A. P., & Ochoa, L. F. (2003). Power flow in four-wire distribution networks - general approach. IEEE Trans. Power Syst., 18(4), 1283–1290.

@ccoffrin
Copy link
Member Author

Off the top of my head I don't see any reason why the internal data format would support these cases, the primary question for me is if the formulation will need to be modified. @frederikgeth can you try playing around with some proof of concept examples in a fork? Say with simplistic 3-5 bus examples?

If you run into issues we can brainstorm good solutions.

@frederikgeth
Copy link
Collaborator

I haven't tested this specifically, but ran into a related issue when trying to implement a formulation in line with [1], i.e. the size of variable_branch_flow(pm, ph=h). As this variable is defined as the outer product of the voltage vector with the complex conjugate of the current vector, this matrix variable requires n^2 scalar variables to represent it. For power-voltage formulations, in the nodal balance constraint kcl_shunt only the diagonal of this matrix is used, and for AC NLP formulations it is also sufficient to only consider the diagonal power flow constraints. However, for other formulations, you may need to model the off-diagonal elements explicitly. For instance, eq. (10e) in [1].

[1] Gan, L., & Low, S. H. (2014). Convex relaxations and linear approximation for optimal power flow in multiphase radial networks. In PSSC (pp. 1–9). Wroclaw, Poland. https://doi.org/10.1109/PSCC.2014.7038399

@ccoffrin
Copy link
Member Author

In this case you can try defining a new PowerModel type and overload the branch variable and constraints to include all of the extra variables you need. It will probably be good to organize the type hierarchy so this distinction happens towards the top becouse many formulation variants will exist in both settings.

@frederikgeth
Copy link
Collaborator

Ok, that sounds like a reasonable approach. I'll have to see a bit what I can prioritize next week.

I think modeling the off-diagonal elements in S_ij is going to be useful in developing a power-voltage formulation with an explicit model for the neutral/earth (e.g. corresponding to Fig 9-2 in [1])

[1] Urquhart, A. J. (2016). Accuracy of Low Voltage Distribution Network Modelling. Loughborough University.

@frederikgeth
Copy link
Collaborator

Let's talk a bit about where/how the information of the configuration of the branches is stored. Commonly, a 3x3 matrix for the branch (series) impedance. However, what kind of conductor configuration this represents can not be unambiguously derived from the size. This information currently isn't stored in the data dict, even though OpenDSS files may include it.

E.g. a 3x3 series impedance matrix may represent a 4-conductor 3-phase + N multiple-earthed neutral configuration (through Kron's reduction applied to the 4x4 primitive), or it may represent a 3-conductor 3-phase line.

For both cases, the mathematical model is identical, however, you may need additional post-processing to derive the neutral conductor current for the four-conductor case. But currently, this information isn't in the multiphase data dict, so that's harder to do.

Would it make sense to store this in a MultiPhaseImpedanceMatrix <: MultiPhaseMatrix? Which then stores the original data, and whether this includes an explicit model for the phases, ground and neutral. Then you can have methods, e.g. kronsreduction operate unambiguously to convert a 4x4 representation to a 3x3. You can also define methods to get rid of phases which are absent.

Finally, going towards modelling 4x4 line impedance explicitly, I feel that the phase index may be better named to the conductor index. E.g. with an explicit neutral representation, at all grid nodes you also define KCL for the neutral conductor current, even though it isn't a phase.

@ccoffrin
Copy link
Member Author

ccoffrin commented Jul 4, 2018

Concerning the name conductor vs phase, when this was last discussed, it was decided that logically these objects represent conductors but the term phase was more intuitive for novice users.
I am open to both options and lets discuss the pros and cons of switching to conductor on Thursday.

Concerning the conductor parameters, by default I would load everything in its most detailed form. Hence, br_r and br_x would be 4x4, if that is what is specified in the original data file. Then we can have a network data transformation function that transforms a 4-conductor 3-phase + N into a 3-phase equivalent model.

@pseudocubic pseudocubic added Type: Enhancement New feature or request Category: Formulations Network Formulation Category: Data Models Data Models labels Nov 27, 2018
@pseudocubic pseudocubic added this to the v0.10.0 milestone Feb 12, 2020
@pseudocubic pseudocubic modified the milestones: v0.10.0, v0.10.2 Dec 10, 2020
@pseudocubic pseudocubic linked a pull request Sep 30, 2021 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Data Models Data Models Category: Formulations Network Formulation Type: Enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants