There seems no built-in support for Y-Δ conversion (electrical engineering). Any idea on how to implement this function?
-
5$\begingroup$ 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. $\endgroup$– Simon WoodsDec 5, 2015 at 12:13
-
$\begingroup$ If the network is represented as a graph then you may use the YTYGraphTransforms package. $\endgroup$– C. E.Dec 6, 2015 at 3:49
2 Answers
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}*)
-
3$\begingroup$ Compact versions for fun:
D2Y = ##/{##}/(+##)&; Y2D = Tr[##/{##}]/{##}&;
$\endgroup$ Dec 5, 2015 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}]