Engineering and Design Tools - TSOC 302 and TSOC 303 - 6. Optimisation

6.1 Introduction
Design involves compromises between a whole range of requirements and design variables. An optimisation process is a way of achieving a design which against some requirement(s) can be said to be the best compromise. It should be noted that this requires that all aspects can be quantified. Certain requirements, such as aesthetic appeal, can not be quantified in a simple manner and may have to be considered either prior to or after an optimisation process. For example if a panel of potential purchasers were against a particular design, there would probably be little point going to the trouble of producing an optimised version.

The development of the digital computer and design software means that it is now feasible to attempt optimisation of a whole range of problems.
The optimisation process requires the formulation of an objective function U, such as weight or cost (which is to be minimised) in terms of independent variables (design variables) such as structural dimensions eg section thickness, subject to a number of constraints (such as maximum permitted stress, lowest modal frequency, etc.) which may be expressed as inequalities or as equalities. This is often written as:

U = f(x1, x2, x3, ... xn)

subject to constraints:

gj (x) = gj (x1, x2, x3,.. xn) = to or greater than 0

6.2 Methods of Optimisation

6.2.1 Analytical Methods These include differentiation, variational methods and the use of Lgrange multipliers and are suitable only for simple problems - which can be described by a function that can be differentiated.

The first derivative is determined, dU / dx equated to zero and the values of the independent variable x determined. The second derivative d 2U / d x 2 is found and depending on its value at the points where the first derivative was zero, this indicates:

a local minimum (if d2U / d x2 is + ve)

a local maximum (if d2U / d x2 is - ve) or

a point of inflection (if d2U / d x2 = 0)

6.2.2 Numerical Methods These are based on a range of search methods which usually involve a large number of trial solutions which means significant computer time is often required.
Strategies of varying the interval during searching are often adopted to improve the search efficiency.

The mathematics package 'MATLAB' has iterative algorithms for finding the minimum value of a function of one or more variables between specified limits. As an iterative process is used, an initial guess is required. How critical this initial guess is depends upon the nature of the function.

Linear Programming - is a technique that can be used with a linear objective function subjected to linear constraints. If there are only a few unknowns these problems can be solved graphically, where there are a large number of unknowns, the 'simplex' method may be used to find a solution.

Example - suppose it is required to find the maximum value of the function:

U(x) = 2 x 1 + 3 x 2

subject to the following constraints:

2 x 1 + x 2 must be less than or = 35

x 1 + 2 x 2 must be less than or equal to 48

x 1 + x 2 must be less than or equal to 25

Additionally x 1 and x 2 must be greater than or equal to 0

This can be solved graphically as shown in the diagram below, the shaded area is within the permitted zone. The maximum value will be either at 1 of the 'corners' (where 2 constraints 'cross') or along a line connecting 2 of them.

To find the maximum value of the function permitted, the value of the function at each 'corner' must be evaluated (most can probably be eliminated by inspection), this is done below.

The intersection points of the constraints are found by writing the constraints in the form of equations = to zero and equating them - point B is found by solving:

x 1 + 2 x 2 - 48 = x 1 + x 2 - 25

Point x and y values Function value, U(x) =
A (0, 24) 72
B (2, 23) 73
C (10, 15) 65
D (17.5, 0) 35

The maximum value of the function, 73, occurs at point B.

This same problem has been solved using MATLAB, the program input and solution is shown below. Note that as MATLAB is only able to find a minimum, the function is re-written as the negative of the original.
>> f= [-2; -3]
f =

2
3

>> A=[2 1


1 2
1 1]

A =

2 1
1 2
1 1

>> b=[35; 48; 25];
>> lb=zeros(2,1);
>> [x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb);

Optimization terminated successfully.

>> x, lambda.ineqlin, lambda.lower

x =

2.0000
23.0000

ans =

0.0000
1.0000
1.0000

ans =

1.0e-008 *

0.0865
0.1387


>>

Graphical solution to linear programming optimisation example:

References

Return to module introduction

David J Grieve, 31st July 2002.