Maximize the area of the valve opening for one rotation of a convex cam with constraints on the curvature and on the radius of the cam.
The formulation of this problem is due to Anitescu and Serban [1].
We assume that the shape of the cam is circular
over an angle of
of its circumference, with radius
.
The design variables
,
,
represent the radius of the cam at equally spaced angles distributed
over an angle of
.
We maximize the area of the valve opening by maximizing
| Variables | |
| Constraints | |
| Bounds | |
| Linear equality constraints | 0 |
| Linear inequality constraints | n + 1 |
| Nonlinear equality constraints | 0 |
| Nonlinear inequality constraints | |
|
Nonzeros in
|
0 |
|
Nonzeros in |
|
We follow [1] and use
and
for the bounds on
,
in the area of the valve, and
in the curvature constraint.
Since the optimal cam shape is symmetric,
we consider only half of the design angle. The problem was
originally [1] formulated for the full angle of
.
Results for the AMPL implementation
are summarized in Table 4.2.
We use a starting guess
of
.
The cam shape for
appears in Figure 4.1.
We note that the number of active constraints increases with
up to a threshold of
, after
which increasing
does not change the optimal solution.
| Solver | |
|
|
|
| LANCELOT | 44.02 s | 188.24 s | 939.51 s | 1877.47 s |
|
|
4.30178e+00 |
4.35538e+00 |
4.45009e+00 |
4.85693e+00 |
|
|
4.50980e-06 |
5.14160e-06 |
3.22620e-06 |
4.50740e-06 |
| iterations | 330 | 482 | 765 | 797 |
| LOQO | 0.8 s | 2.37 s | 3.82 s | 15.49 s |
|
|
4.28414e+00 | 4.27850e+00 | 4.27568e+00 | 4.27427e+00 |
|
|
2.0e-12 | 2.7e-13 | 1.5e-12 | 4.8e-13 |
| iterations | 78 | 129 | 91 | 161 |
| MINOS | 0.83 s | 1.3 s | 4.46 s | 21.41 s |
|
|
4.28414e+00 | 4.27850e+00 | 4.27567e+00 |
4.27426e+00 |
|
|
4.4e-16 | 1.4e-14 | 9.3e-14 |
3.1e-13 |
| iterations | 9 | 7 | 13 | 16 |
| SNOPT | 0.58 s | 1.8 s | 6.49 s | 25.12 s |
|
|
4.28414e+00 | 4.27340e+00 | 4.27022e+00 | 4.23739e+00 |
|
|
1.3e-15 | 1.8e-07 | 2.3e-06 | 6.2e-07 |
| iterations | 6 | 4 | 4 | 5 |
|
|
||||
LANCELOT
stops prematurely with the message
step got too small for
; and
its solution for
, while showing the best value,
violates the problem constraints to an extent obvious in a
graph of the solution. MINOS quits for
because
the current point cannot be improved.