3-Phase Winding Current Balance Solver
TPSolver accepts 3-phase currents and voltages feeding into
a 3-phase motor and computes the consequent winding currents, assuming
the motor is wired in a delta configuration. Estimates of
dissipation and horsepower
are also computed. Efficiency and Power Factor can be
provided to (hopefully) improve the accuracy of the results. By
observing the relative magnitudes of the winding currents, the user can
evaluate the balance of a 3-phase circuit, using the
results to tune the system.
TPSolver uses an algorithm proposed by Bob
A summary of my implementation follows.
TSolver assumes a cartesian coordinate system where the x,y and z axes
represent the AC, BC and AB winding currents. Given
the simultaneous equations relating the phase currents to winding
currents and the 3-phase currents as the target, tpsolver begins
traversing bounding boxes, finding the points that when substituted
into the equations, produce results closest to the target. By
viewing the winding currents as cartesian points, "closeness" is
convieniently defined as 3-dimensional distance.
Rather than exhaustively searching one large box to find the
solution, tpsolver takes a stepwise approach. The length of each
axis of the box is divided into a small number of steps. Each
step of each axis provides one of the 3 coordinates for a test
computation, allowing tpsolver to coarsely and quickly sample the
bounding box. The four points yielding results closest to the
target are saved. Once the steps of all 3 axes are traversed,
the set of closest points is examined to compute a new, smaller
bounding box. The algorithm then repeats the sampling with the
new box, producing four new closest points. The cycle repeats
until a point is found yielding results close enough to the target
values. By progressively
decreasing the volume of the box, the algorithm converges on the target.
The user sets the starting length of the 3 axes and the number of steps
per axis. Since the algorithm converges very quickly, the
following settings are suggested;
- solve axis length of 10^6 or more
- solve steps of 40
- solution threshold of .001 or smaller
Increasing the step count tends to decrease the number of bounding
increases the time required to sample each one.
Current Version: 1.6, 1/23/2005
x86 Linux executable
Mac OS X (not yet)
(Unfortunately the executables tend to be rather large because the
Lispworks compiler generates statically linked executables. On
the other hand, this avoids the potential of shared library version
Copy the executable to a convienient location, the desktop or your home
directory is fine. Invoke by whatever means you choose.
Although there are no preference settings as such, upon exit, tpsolver
always stores the current
values of the data entry fields into a text file located in the user's
directory. The next time tpsolver is invoked, the previously
saved values are retrieved and loaded into their respective
fields. The tpsolver version number is also stored to the file,
so upgrades to the
software will use previously saved values in a reasonable manner.
If efficiency and/or power factor are not known, supply .8 and 1
Fill in values as desired, then press Solve. If desired, press
Stop to cancel the solver. Once the computation is finished,
various results are shown on the Parameters page and a graphic is
generated on the Results page. Sanity checks of the various
parameters are not exhaustive, more will be added as the program
TPSolver is released via the GNU GPL Version 2. Please refer to http://www.gnu.org/licenses/gpl.html
I developed TPSolver in Lispworks
4.3.7 on x86 Linux. x86 Linux executables are compiled by
myself, versions for other operating systems are compiled by Lispworks
users kind enough to compile the source for me. Although the
algorithm is written using portable Common Lisp,
the GUI interface library is specific to Lispworks.
Should you wish to experiment with the source code, demo versions of
Lispworks are available for a variety of platforms and
should capable of running TPSolver without any trouble.