Optimizing

One of Eclipse's most powerful and important features involves automatically tuning circuit parameters and User Variables to minimize the difference between the desired and actual circuit performance. This difference is expressed in the form of an error function which is implicitly determined by the methods, weights and goals you specify before optimization begins. Optimization is not a substitute for thinking but rather a tool for refining a design that reasonably approximates a desired set of criteria.

optimize.tif (6628 bytes)

Methods

There are two optimization methods available within Eclipse each having its own advantages and disadvantages. Careful use of these methods will lead to optimal circuit performance.

GRADIENT - The gradient method has the advantage of rapid convergence to the minima. The disadvantage is that a local rather than global minima may be found depending upon the initial values of the tunable parameters. This method first determines the sensitivity of the error function relative to each of the tunable parameters. These sensitivities collectively form a search gradient. Eclipse then searches in the negative direction of this gradient until the error has reached its minimum value. If the error is not below the specified threshold a new search direction is determined and the search begins again. One gradient-search process constitutes a single iteration. Many solutions of the circuit may be required for a single iteration. The procedure will cease when

  • the error falls below the threshold
  • the maximum number of iterations has been reached
  • insignificant progress is being made

RANDOM - This method, as the name implies, randomly selects a value uniformly distributed between the upper and lower bounds supplied for each parameter. These values are then used to determine the current error. If this error is less than the previous error, then the tuneable parameters are updated with the randomly generated values. Otherwise, a new set of random values is generated and evaluated. As long as the range of possible input parameters encompasses the global minimum, the random search method avoids any local minima; however, unless enough iterations are performed, there is no guarantee that any set of values will be found which improve the error. The random search method is most effective when the error is relatively large.