[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: ScanTesla program -> Optimization



Original poster: Terry Fritz <teslalist@xxxxxxxxxxxxxxxxxxxxxxx>

Hi Marco,

At 06:34 AM 5/18/2005, you wrote:
Hi Terry, all,

Thanks a lot for your nice paper. It is very good to include in a
nutshell all what this ScanTesla stuff is about.
Now even I can figure it out :)

;-) It helps to sort of define the mess in a nice document.


> For a model of a Tesla coil, I think this is the "best" there
> is now (first
> figure):
>
> http://drsstc.com/~terrell/modeling/ScanTesla.pdf
>

I have been doing a number of times with problems like this. This is
called "optimization", "linear programming" or "hill-climbing" in a
multidimensional space. You have:

- a number of parameters (that's the multidimensional solution space)
- a number of constraints to be satisfied that bound the parameters
- a yield function to maximize (the output voltage, energy transfer,
whatever)

Typically you can't perform an exhaustive search over all possible
solutions (not in a lifetime). So here is the way it's usually done.

1. You write the required software to compute the yield function from
the problem parameters. That will be you LCC, Spice, whatever.
2. The engine that decides what is the "next step" in the trial series
is a different beast. Usually it can just use C, Basic, Pascal, but
surely not Pspice.

Now I give you two methods I have been using with success for this
engine:

A. Genetic algorithm.
Basically you start from a random population of solutions (i.e.
parameters sets), calculate the yield for each of them. Then some of
them will pass away (worse yield), some will mutate (randomly) and some
will cross-combine with each other.
The algorithm is quite easy to implement, works and it's also intuitive.

Using simply random numbers for the inputs could scan a lot of space ;-)) I had not thought of that *:-)



B. The simplex algorithm
There are many variations of this algorithm but basically you start
(again) from a random set of solutions and keep only the best 3 ones.
Using these 3 as the vertex of a triangle (in 3-D space) you literally
fold the triangle in the direction that gives the best yield. You can
visualize it as the triangle "climbing the hill" while folding on
itself, making its way to the top.

The simplex method is older than genetic algorithms. I personally prefer
genetic algorithms: they are also fun to program if you only have got
the time.

I suggest to search the net with these keywords. Literature abou them
can also easily to be found.

Thanks! I am still trying to get it to work at all right now but hopefully I will soon have it basically working. Once it is going, I can figure out the next step.


Cheers,

        Terry



Best Regards