# Solve for phase-to-neutral voltage in terms of phase-to-phase voltage

EQVan
TL;DR Summary
I know how to solve for phase-to-phase voltages in an unbalanced AC circuit, strictly in terms of phase-to-neutral voltages. I need the inverse -- how to solve for phase-to-neutral voltages in terms of phase-to-phase voltages.
First a disclaimer: I am neither an electrical engineer nor a mathematician. I am a programmer. As part of a simulator project, I've been asked to solve a particular problem -- and I'm in over my head.

Given an unbalanced 3-phase AC circuit, I have learned that I can solve for the phase-to-phase voltages strictly in terms of phase-to-neutral voltages. The formulas are:

Vab = √((|Van|-|Vbn|cos(120°))² + (|Vbn|sin(120°))²)
Vbc = √((|Vbn|-|Vcn|cos(120°))² + (|Vcn|sin(120°))²)
Vca = √((|Vcn|-|Van|cos(120°))² + (|Van|sin(120°))²)
where:
Vab is the phase A to phase B voltage, and
Vbc is the phase B to phase C voltage, and
Vca is the phase C to phase A voltage, and
Van is the phase A to neutral voltage, and
Vbn is the phase B to neutral voltage, and
Vcn is the phase C to neutral voltage.

I have tested these formulas and they seem to give me the correct answers. But what I need is the inverse:

Van = formula in terms of Vab, Vbc and/or Vca

I have tried to do the algebra using the 3 formulae above to solve for Van, and it's just beyond me.

I know of the simple formula:
Vpn = Vpp / √3
but this seems to assume that all the phase-to-phase voltages are the same, an assumption I am not allowed to make.

Are there any electrical engineers out there who would be willing and able to give me a hand with this?

Last edited:

Welcome to PF.

Imagine a triangle with sides having the length of the three unbalanced p-p voltages. Now place a neutral point somewhere inside the triangle, where the lengths from neutral to the three phases are the n-p voltages.

The challenge is to find the neutral point given only three p-p voltages. That will require assumptions. What do you know about the system? You might assume that the phases are at exactly 120°.

You might draw a circle related to the triangle and select the centre as neutral.
https://en.wikipedia.org/wiki/Triangle#Points,_lines,_and_circles_associated_with_a_triangle

• • sophiecentaur and Klystron
EQVan
Hi... Thank you for your response. Unfortunately I'm too ignorant for it to be of much help. Even without understanding *why* following your suggestion will give me the information I need, I don't know enough to implement it. I do assume the phase angles to be each 120°, but I have no idea what the criteria for selecting the center point might be, nor how the lines drawn from the center should meet the enclosing triangle... at the centers of their sides? Perpendicularly? At the vertices?

My best guess, looking at the article you cited, is that the orthocenter is the correct center point, and that the lengths of the altitudes give the needed voltages. I base this on my assumption that the magnitudes of the phase-to-neutral voltages should be proportional to the magnitudes of the associated phase-to-phase voltages, but given my ignorance of how the values relate, it really is no more than a guess.

If I understood those two things I think I could probably figure out a solution, and I will do so if needs be, but frankly, I was hoping some electrical engineer could just give me the formulas for performing the computation. The three formulas I posted seem to be standard methods, probably out of some textbook somewhere... I imagine the inverse formulas are too.

Last edited:
You made the assumption that the phase angles were 120° when converting Vnp phasors to Vpp voltages. You must stick to that assumption when writing a reciprocal transform, so you can reverse or test without accumulating an error of assumption.

Can you use complex numbers for phasors, or vector computation?

The numerical process is as follows;
1. Triangle solution. Draw the triangle with edges of length Vpp. Find the x,y coordinates of each corner. To do that place one phase (phasor) at the origin, the second on the +x axis , and compute the third by intersection of two circles where radii are Vpp. (Do you need that code?).

2. Compute the resection of those phasor points using Cassini's method with all angles of the 120° special case. The resection point is the relative coordinates of neutral. (Example code follows).

3. Subtract neutral from all phases to place the neutral at the origin. Find each Vnp by pythagoras.

Here is Cassini's method for 120°.
Code:
Sub resection(_ ' by Cassini's method
Byval xa As Double, Byval you As Double,_ ' a(x,y) the first phasor
Byval xb As Double, Byval yb As Double,_ ' b(x,y) second phasor
Byval xc As Double, Byval yc As Double,_ ' c(x,y) third phasor
Byref xp As Double, Byref yp As Double ) ' p(x,y) the resection is neutral
Const As Double k = 1 / Tan(Atn(1) * 8 / 3) ' Cotan(120 deg)
Dim As Double x1, y1, x2, y2, rs, sf
x1 = xa + (yc - ya) * k ' position of subsidiary points
y1 = you + (xa - xc) * k
x2 = xb + (yb - yc) * k
y2 = yb + (xc - xb) * k
rs = (x2 - x1) / (y2 - y1) ' reciprocal slope
sf = rs + 1/rs ' slope function
xp = (xc*rs + x1/rs + yc - y1) / sf ' result is coordinates of neutral
yp = (y1*rs + yc/rs + xc - x1) / sf
End Sub

• • jedishrfu and berkeman
EQVan
Thank you very much for this clarification!
1. No, I think I will have no trouble finding the coordinates of the third point.
2. I will have to study the code you sent me to understand Cassini's method, but your code looks easy to follow -- thank you again.
3. I can certainly translate the neutral point to the origin. The Vpn for each phase is represented by the line from the neutral point to where? The vertices of the triangle?

The Vpn for each phase is represented by the line from the neutral point to where? The vertices of the triangle?
Yes.

Since the algorithm is simple vector geometry, there may be an elegant simplification or two. Please post them here as you find them.

To test the algorithm, I threw together old bits of code, and it works.

The Cassini method I gave you came from optimising a communications - transport network, so it assumes, and only handles the optimum 120° situation.

Here is the code, there and back.
Code:
'========================================================
' solve 3PH neutral to phase and phase to phase voltages
'========================================================
' phases, are phasors of length nu, nv and nw
' first find phase to phase voltages uv, vw, wu
Dim As Double nu = 220, nv = 230, nw = 240 ' example data
'--------------------------------------------------------
' find phasor x,y coordinates
Dim As Double ux, uy, vx, vy, wx, wy
Dim As Double Cos30 = Sqr( 3 / 4 ) ' +30° = 120° - 90°
Dim As Double Sin30 = 0.5
ux = nu ' nu is on the +x axis, angle zero
uy = 0
vx = nv * -Sin30 ' at +120°
vy = nv * +Cos30
wx = nw * -Sin30 ' at +240° = -120°
wy = nw * -Cos30
'--------------------------------------------------------
Dim As Double dx, dy, uv, vw, wu ' compute phase to phase voltages
dx = ux - vx
dy = uy - vy
uv = Sqr( dx*dx + dy*dy )
dx = vx - wx
dy = vy - wy
vw = Sqr( dx*dx + dy*dy )
dx = wx - ux
dy = wy - uy
wu = Sqr( dx*dx + dy*dy )
'--------------------------------------------------------
Print " Neutral to phase voltages given. "
Print Using " star ####.### ####.### ####.###"; nu; nv; nw
Print
Print " Phase to phase voltages computed. "
Print Using " delta ####.### ####.### ####.###"; uv; vw; wu
'========================================================
' now reverse the process, ( without cheating )
'========================================================
' given phase to phase voltages uv, vw and wu,
' find the neutral to phase voltages Pu, Pv and Pw
' first redraw the triangle with assumed coordinates
Ux = 0 ' u at the origin
Uy = 0
Vx = uv ' v on the +x axis
Vy = 0
Wx = ( uv*uv - vw*vw + wu*wu ) / ( 2 * uv )
Dim As Double temp = wu*wu - wx*wx
If temp < 0 Then ' should not happen
Print
Print " Voltages are impossible at 120 degree phase. "
Print
Sleep
Stop
End If
Wy = Sqr( temp )
'--------------------------------------------------------
' now we have assumed coordinates of phasors U, V and W
Print
Print " Triangle vertex coordinates."
Print Using " U ####.### ####.### "; Ux; Uy
Print Using " v ####.### ####.### "; Vx; Vy
Print Using " W ####.### ####.### "; Wx; Wy
Print
'========================================================
' Given three known points, compute Cassini's resection to find
' the point where the angles subtended are all 120°
Dim As Double Nx, Ny ' find these neutral coordinates
Const As Double k = 1 / Tan( Atn(1) * 8 / 3) ' Cotan( 120 deg )
Dim As Double x1, y1, x2, y2, rs, sf
x1 = Ux + (Wy - Uy) * k ' position of two subsidiary points
y1 = Uy + (Ux - Wx) * k
x2 = Vx + (Vy - Wy) * k
y2 = Vy + (Wx - Vx) * k
rs = (x2 - x1) / (y2 - y1) ' reciprocal slope
sf = rs + 1/rs ' slope function
Nx = (Wx*rs + x1/rs + Wy - y1) / sf
Ny = (y1*rs + Wy/rs + Wx - x1) / sf ' neutral coordinates
'========================================================
' translate the phasor constellation to place relative neutral at the origin
Ux -= Nx
Uy -= Ny
Vx -= Nx
Vy -= Ny
Wx -= Nx
Wy -= Ny
Dim As Double Pu, Pv, Pw ' phase voltages are length of phasors
PU = Sqr( Ux*Ux + Uy*Uy )
PV = Sqr( Vx*Vx + Vy*Vy )
PW = Sqr( Wx*Wx + Wy*Wy )
Print Using " Results ####.###### ####.###### ####.###### "; Pu; Pv; Pw
Print Using " Input check ####.###### ####.###### ####.###### "; nu; nv; nw
Print Using " Abs error ####.##^^^^ ####.##^^^^ ####.##^^^^ "; Pu-nu; Pv-nv; Pw-nw
'========================================================
' example
' Neutral to phase voltages given.
' star 220.000 230.000 240.000
'
' Phase to phase voltages computed.
' delta 389.744 407.063 398.497
'
' Triangle vertex coordinates.
' U 0.000 0.000
' v 389.744 0.000
' W 186.020 352.415
'
' Results 220.000000 230.000000 240.000000
' Input check 220.000000 230.000000 240.000000
' Abs error 284.22E-16 -568.43E-16 0.00E+00
'
Sleep
'========================================================

EQVan
Thank you very much for the time and thought you put into answering this question for me. I think there is very little doubt that I would not have been able to discover it for myself -- certainly not in the time available. I have studied your code in great detail, and although Cassini's method strained me, I think I understand it all. The only thing I don't really understand is why, given a triangle whose sides represent the phase-to-phase voltages of a 3-phase AC circuit, should the orthocenter represent the neutral point in the first place.

I have looked for a "solved" button or some way to formally acknowledge your assistance, but I guess this forum doesn't have any such. Nevertheless, thank you again for your help!

Last edited:
• berkeman
The only thing I don't really understand is why, given a triangle whose sides represent the phase-to-phase voltages of a 3-phase AC circuit, should the orthocenter represent the neutral point in the first place.
You must have faith.

The phasors rotate once per cycle, while maintaining a mutual 120° separation. The triangle is therefore rotating. The Y coordinate of each phasor represents the sine wave voltage of that phase over time.
For a balanced system, as one phasor passes the +x axis, rising through zero volts, the difference in the Y values for the other two phases is the phase-phase line voltage = the length of that side of the triangle. The Sqrt( 3 ) relationship comes from the geometry of the equilateral triangle.

You started with 4 points on the diagram, being 3 phases and the neutral. You converted star to delta, eliminating the neutral, leaving 3 points, which was easy. The difficulty comes in recovering the neutral reference point in an unbalanced system. That required an assumption, namely that the phases were exactly 120°.

It find the geometry interesting. I would like a neater way to find the [orthocentre neutral] than the 120° resection which I hurriedly grabbed 40 years ago to solve the problem. I am now considering Thales' Theorem, where a 90° right angle triangle is drawn in a semicircle, with the hypotenuse on the diameter. What happens when it is a 120° triangle? What is the curve, and how much of a segment is needed to contain the triangle?
https://en.wikipedia.org/wiki/Thales's_theorem

Last edited:
• berkeman
EQVan
That is a remarkably clear explanation; I not only understand it, but I now understand why you called the vertices of the triangle "phasors".

I found a chapter of an online textbook here which, on page 322, proposes a somewhat simpler method of finding the orthocenter. I implemented it, and it seems to check out. It avoids the rs of 0.0 when the voltage triangle has sides BC and CA the same length.

(Edit: I realized that it has its own slope calculation, and it can go to infinity.)

Last edited:
I doubt that the neutral is at the "orthocentre" of the triangle.
I believe some other point from the Encyclopedia of Triangle Centers must satisfy the mutual 120° angle subtended between vertices.

Edit:
The point required is the Fermat point of a triangle, also called the Torricelli point or Fermat–Torricelli point, or X(13).
https://en.wikipedia.org/wiki/Fermat_point

Last edited:
• berkeman and anorlunda
EQVan
For some reason I latched on to the idea that the neutral point was the orthocenter of the triangle; I can't recall now how I decided that.

I have gone back in and studied your code even more, including the part up to line 28, which I didn't really look at closely, thinking I already knew that bit, and I now understand a good deal about the nature of the neutral point. I also went over and looked at the Fermat point, curious as to why Fermat was interested in a point where all the triangle's vertices were 120° apart. If I understand correctly, he was looking for no such thing -- he was looking for the point where the combined distances to the vertices was minimized. Is that truly what the neutral point is? How do you know?

This last week and a half has been a real learning experience. I certainly can't claim to be an expert, but I now have a much firmer grasp on the behaviour of 3-phase circuits than I have ever had before. My simulator project is such that, for 3-phase circuits in a wye configuration, with phases at 120°, I can change pretty much anything and have everything else automatically recompute itself, which was the goal. Thank you so much for your assistance!

• berkeman
For some reason I latched on to the idea that the neutral point was the orthocenter of the triangle; I can't recall now how I decided that.
It is easy to latch onto the wrong centre, because there are over two thousand centres catalogued, and they all seem to coincide for an equilateral triangle. I note that the Fermat point is unluckily the 13'th in the catalogue.

I have gone back in and studied your code even more, including the part up to line 28, which I didn't really look at closely, thinking I already knew that bit, and I now understand a good deal about the nature of the neutral point.
I wrote out the code in full, up to line 28, because I needed reliable test data to check the reciprocal algorithm. Closing the loop numerically is the only way to be certain. I believe you are now also able to do the same. To test the orthocentre I substituted orthocentre code for the resection to see what would happen. It was close, but incorrect and did not cut the mustard.

I also went over and looked at the Fermat point, curious as to why Fermat was interested in a point where all the triangle's vertices were 120° apart. If I understand correctly, he was looking for no such thing -- he was looking for the point where the combined distances to the vertices was minimized. Is that truly what the neutral point is? How do you know?
I was introducing a new node into a network, to minimise the total connection length, when I noticed that the subtended angles were always 120°. I then used the resection to solve that numerical positioning problem. Since then the internet has appeared, along with the math forum here, so I could ask and find that the point was called the Fermat point. I had originally reached the same point as Fermat, but independently, and somewhat later.

The idea that the Fermat point arises from potential or tension in an ideal 3 phase network is interesting. I had originally noticed an analogy with Lami's Theorem and the triangle of forces.
https://en.wikipedia.org/wiki/Lami's_theorem
But those forces were in variable directions. No matter what, it must be the assumed “120° phase” that is critical in the solution of the unbalanced three phase system.

This last week and a half has been a real learning experience.
I am still enjoying this numerical holiday, up a mathematical valley, to revisit a shrine to Fermat. It certainly beats air travel in the time of Covid.
Last month I returned to my exploration of the golden ratio, (unrelated to the golden triangle), when I visited the Fibonacci sphere.
http://extremelearning.com.au/evenly-distributing-points-on-a-sphere/

Thank you so much for your assistance!
Thank you for the incentive.

Gold Member
In a general pedantic sense, this problem is actually much more complicated, an in fact not completely defined enough for an exact solution. You and @Baluncore have imposed the assumption that the 3 phase to neutral voltages maintain a 120o phase difference. This, in practice, is a good assumption, it is almost always true. But theoretically phase imbalance can also be caused by a phase shift.

I think the right way to think about this is to consider the system as 3 phase to neutral voltage sources each with a given phase and amplitude. Then each line to line voltages are found by subtracting the two relevant phase to neutral sources. How ground and neutral are treated is a different subject, they should be the same, but aren't always. Delta systems will sometimes ground one of the phases, which can create issues for some systems (We would proscribe this configuration for our 3 phase lasers).

So, for three sources, each with a phase and amplitude, you have 6 numbers to characterize the system (degrees of freedom). But phase is relative, so one phase you can specify arbitrarily. Now you only need 5 numbers., but you are only given three. This is where the assumption that the amplitude is more likely to change (by a lot) than the phases.

This is why, back in the day, when I needed to deal with line balance questions (or, in our case, 50/60Hz, 150/180Hz, or 300/360Hz noise in our system), I would ask the field service engineers to measure 6 voltages for me: 3 line to line voltages, and 3 line to ground voltages (our system didn't connect to neutral). With these 6 numbers you can accurately model the balance and grounding of the AC source.

• anorlunda and Baluncore
Thales' Theorem gives us 90° triangles at the circumference, with the hypotenuse on the diameter. If the hypotenuse is placed on a chord positioned at half the radius, then the angle formed at the arc is 120°. We can find the centre of that arc by vector rotation of an edge of the phase triangle through 30°, while reducing the length. The complex number needed for that transform is; T = ( 1/2, 1/√12 ).

Code:
' v2d = vector, 2 dimensional = point coordinate = complex number
' convert phase-phase voltages uv, vw, wu into U, V, W and N
' construct a triangle of phases
Dim As Integer result ' status of the circle intersection
Dim As v2d U, V, W, N, scrap ' three phases, neutral and a scrap bin
U = Type( 0, 0 ) ' phasor U must start at the origin for the following code
V = Type( uv, 0 ) ' phasor V is on +x axis
result = circles_intersections( U, wu, V, vw, W, scrap ) ' find W on the LHS of U to V
If result = 0 Then Print " Impossible input voltages." : Sleep : Stop
' Neutral is Fermat's point
Dim As v2d Cuv, Cwu ' centre of the uv and wu circles
Dim As Double Ruv, Rwu ' radii of same
' generalising Thales' theorem, for 120°, hypotenuse lies on a chord at r/2
' T is vector to transform a triangle edge to the centre of circle
Dim As v2d T = Type( 0.5, 1 / ( Sqr( 12 ) ) )
Cuv = V * Conj( T ) ' take advantage of U being at origin, to avoid translation
pw = Radius( W - N )