# How to implement Y-Δ conversion?

There seems no built-in support for Y-Δ conversion (electrical engineering). Any idea on how to implement this function?

• Please expand the question to include a description of the Y-Δ conversion (or a link to one) and an example problem to apply it to. It would also be good to include your own implementation attempt - otherwise it can appear as if you've made no effort to tackle the problem yourself. – Simon Woods Dec 5 '15 at 12:13
• If the network is represented as a graph then you may use the YTYGraphTransforms package. – C. E. Dec 6 '15 at 3:49

You can write your own functions to perform the transformations. Below I show two functions using the transformations shown here.

The function D2Y is for converting Delta network to Y shaped network. It takes the three resistor value as its arguments and gives out the corresponding value for Y network. Similarly Y2D does the other way round.

 D2Y[ra_, rb_, rc_] :=
1/(Total[{ra, rb, rc}])*Times @@@ Reverse@Subsets[{ra, rb, rc}, {2}]

Y2D[r1_, r2_, r3_] :=
Total[Times @@@ Subsets[{r1, r2, r3}, {2}]]*(1/{r1, r2, r3})


You can use the function as follows:

 D2Y[10, 20, 30]

(*{10, 5, 10/3}*)

Y2D[10, 20, 30]

(*{110, 55, 110/3}*)

• Compact versions for fun: D2Y = ##/{##}/(+##)&; Y2D = Tr[##/{##}]/{##}&; – Simon Woods Dec 5 '15 at 14:25

and more in detail

g1 = 1/(1/R13 + 1/(R12 + R23)) == R10 + R30;
g2 = 1/(1/R12 + 1/(R13 + R23)) == R10 + R20;
g3 = 1/(1/R23 + 1/(R12 + R13)) == R20 + R30;


Delta network

Solve[{g1, g2, g3}, {R12, R13, R23}]


Y shaped network

Solve[{g1, g2, g3}, {R10, R20, R30}]