Robust Controller Design Using Multi-Objective Optimization Power Management DesignLine
Robust Controller Design Using Multi-Objective Optimization Power Management DesignLine
Site Search:
The theory
Many computational software tools available contain optimization functions. The algorithm may be thought of
intuitively as minimizing the difference between the solution of the function that describes the system, and the
desired outcome. The problem may be represented mathematically as:
Minimize χ,ξ,
ξ such that:
c(x) ≤ 0
c eq(x) = 0
Ax ≤ b
Aeqx = beq
lb ≤ x ≤ up
The problem formulation above may be thought of intuitively as a minimization problem that has some degree
of slackness given by the term weight • ξ. Slackness may be thought of as the degree of over or
underachievement of the goal. The amount of slackness depends on entries in the "weight" vector. If a goal
must be achieved exactly, one may set the weight for that objective function equal to zero. The constraints
may be thought of as the feasible region for solutions to the problem. For example, resistors and capacitors
cannot have negative values. Therefore, if x is a vector that represents resistors and capacitors in a circuit,
one may set the lower bound (lb) constraint equal to zero.
One popular algorithm that is used to solve constrained multi-objective optimization problems is sequential
quadratic programming (SQP)[1]. The SQP algorithm may be thought of as a modified form of Newton's
method and converges in relatively few iterations. This algorithm is implemented in MATLAB's fgoalattain
function and simplifies the development of an optimization routine.
Software implementation
The SQP algorithm implemented in MATLAB's fgoalattain function has input arguments that include the
function to be optimized, initial values, goals, goal weights, constraints, and a variety of options to display the
goal attainment progress or exit condition. To implement the function "fgoalattain" in MATLAB, the following
form may be used:
[x, fval, attainfactor] = fgoalattain(fun, x0, goal, weight, A, b, Aeq, beq, lb, ub, nonlcon, options)
Using a controller design example, the input argument fun is a MATLAB function that may return parameters
such as overshoot, rise time, and some measure of robustness of a closed loop switchmode power supply.
The input argument x0 are the initial controller values and may be calculated using standard rules of thumb [2]
. The weights may be chosen according to the relative importance of the design goals. For equal weighting of
the design goals, set the variable weight equal to absolute value of the goal vector. If a weight is set equal to
zero it will be treated as a hard constraint and the solver will prioritize that goal.
The input arguments A, b, Aeq, beq, lb, up, and nonlcon are constraints as described in the previous section.
The values for the constraints depend on the design space the designer is able to work within. If a constraint is
to be ignored, a set of braces "[]" may be entered in its place. The input argument options allows several
internal parameters of the solver to be printed to the command window. Using this feature can be useful to
check the progress of a particular computation.
For illustrative purposes, consider the following simple example, where the goals are pole locations. Let a
system be described by the transfer function:
Let the design goal be to have the system poles at s = –1 rps, –10 rps, and –100 rps. This may be done using
the following code:
function a = root_loc
After the program executes the code above, the following appears in the MATLAB command window:
a = 1000.00000002537
fval = -100.000000000003
-9.99999999996868
-1.00000000002847
attainfactor = 3.77294549557555e-013
Here we see that the program terminated because it could not make significant headway in performing
additional iterations. Note that very small attainment factors indicate that the goals are almost exactly met.
Beyond that consideration, positive values indicate underachievement; and negative values indicate
overachievement. In this case, the design objectives were met for all practical purposes.
For more information on the function fgoalattain, refer to The Mathworks website (www.mathworks.com). To
see the MATLAB code that implements the fgoalattain algorithm, simply type "type fgoalattain" at the MATLAB
command line prompt.
Design example
As an example of how powerful this approach can be, assume a buck regulator with type 2 controller is to be
designed with the following specifications:
The controller must also be robust, having gain and phase margins on the order of 10 dB, and 53 degrees,
respectively.
Let's use the National Semiconductor LM2657, an adjustable 200-to-500 kHz sychronous buck regulator. It's a
dual-channel voltage-mode controlled type for high-current applications. The LM2657 requires only n-channel
FETs for both the upper and lower positions of each stage. It has the following parameters and operating
conditions:
Assume that the transient performance is of greater importance than robustness and is weighted
appropriately. A multi-objective optimization routine that incorporates the disc margin measure of gain and
phase margin (i.e., disk margin is a measure of robustness based on the Nyquist plot and a disc centered at
the point –1, 0) is then executed. The routine generates the following numbers:
It then calculates the component values: R2 = 42.3 kilohms, R3 = 7.52 kilohms, C2 = 2.36 pF, C3 = 1.99 nF
The loop gain, and system transient response are shown in figures 2 and 3, respectively.
Note that the design goals have been underachieved. At this point the designer may choose to either try
meeting the goals using type 3 compensation, reconsider the importance and therefore the weights of the
given specifications, or simply accept the given design. Typically, the designer will accept the results of an
initial paper design since the measured results invariably deviate from those calculated.
Summary
Given a set of requirements, the variables in a system model may be adjusted to meet those requirements
using multi-objective optimization. The MATLAB function fgoalattain faciliates this optimization. Applications of
such routines are far reaching and may be extended to any area of power electronics.
References
[1] Gembicki, F.W., "Vector Optimization for Control with Performance and Parameter Sensitivity Indices,"
Ph.D. Dissertation, Case Western Reserve Univ., Cleveland, OH 1974
[2] Steenis, Joel, "Compensating Voltage Mode Buck Regulators," Power Management Designline 2006
TechOnline Communities
TechOnline | Audio DesignLine | Automotive DesignLine | CommsDesign | Digital TV DesignLine | DSP DesignLine | EDA DesignLine |
eeProductCenter
Industrial Control DesignLine | Mobile Handset DesignLine | Planet Analog | Power Management DesignLine
Programmable Logic DesignLine | RF DesignLine | Video/Imaging DesignLine | Wireless Net DesignLine
EE Times
United States | Asia | China | Europe | France | Germany | India | Japan | Korea | Taiwan | United Kingdom
All materials on this site Copyright © 2008 TechInsights, a Division of United Business Media LLC. All rights reserved.
Privacy Statement | Your California Privacy Rights | Terms of Service