Speed : Optimal Design of a Speed Reducer of Minimal Weight for a Small Propeller-Type Aircraft Engine

Reference

  • Neculai Andrei, Nonlinear Optimization Applications Using the GAMS Technology,Springer Optimization and Its Applications, Model Speed (5.2) in chapter Applications of Mechanical Engineering , 2013

Category : GAMS NOA library


Mainfile : speed.gms

$Ontext
Minimization of the weight of a speed reducer.
The weight of the speed reducer is to be minimized subject to constraints
on bending stress of the gear teeth, surface stress, transverse deflections
of the shafts and stresses in the shaft.

Datseris, P., Weight minimization of a speed reducer by heuristic
and decomposition technique. Mechanism and Machine Theory, vol.17, 1982,
pp. 255-262.

Aguirre, A.H., Munoz Zavala, A.E., Villa Diharce, E., Botello Rionada, S.,
COPSO: Constrained optimization via PSO algorithm. Comunicacion Tecnica
No I-07-04/22-02-2007. Center for Research in Mathematics (CIMAT), Mexico.
$Offtext

Variables x1, x2, x3, x4, x5, x6, x7,  obj;

Equations g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g;

* Objective function to be minimized:

g.. obj =e= 0.7854*x1*POWER(x2,2)*(3.3333*POWER(x3,2) + 14.9334*x3 -
            43.0934) - 1.508*x1*(POWER(x6,2)+POWER(X7,2)) +
            7.4777*(POWER(x6,3)+POWER(x7,3))+
            0.7854*(x4*POWER(x6,2)+x5*POWER(x7,2));

* Constraints:

g1.. 27/(x1*POWER(x2,2)*x3) - 1 =l= 0;

g2.. 397.5/(x1*POWER(x2,2)*POWER(x3,2)) - 1 =l= 0;

g3.. (1.93*POWER(x4,3))/(x2*x3*POWER(x6,4)) - 1 =l= 0;

g4.. (1.93*POWER(x5,3))/(x2*x3*POWER(x7,4)) - 1 =l= 0;

g5.. (sqrt(POWER((745*x4)/(x2*x3),2)+16900000))/(110*POWER(x6,3)) - 1 =l= 0;

g6.. (sqrt(POWER((745*x5)/(x2*x3),2)+15750000))/(85*POWER(x7,3)) - 1 =l= 0;

g7.. (x2*x3)/40 - 1 =l= 0;

g8.. (5*x2)/x1 - 1 =l= 0;

g9.. x1/(12*x2) - 1 =l= 0;

g10.. (1.5*x6 + 1.9)/x4 - 1 =l= 0;

g11.. (1.1*x7 + 1.9)/x5 - 1 =l= 0;

* Bounds on variables

x1.lo = 2.6;     x1.up = 3.6;
x2.lo = 0.7;     x2.up = 0.8;
x3.lo =  17;     x3.up =  28;
x4.lo = 7.3;     x4.up = 8.3;
x5.lo = 7.8;     x5.up = 8.3;
x6.lo = 2.9;     x6.up = 3.9;
x7.lo = 5.0;     x7.up = 5.5;

Model speed /all/;

$iftheni x%mode%==xbook
$onecho >bench.opt
  solvers conopt knitro minos snopt
$offecho
speed.optfile=1;
option nlp=bench
$endif

Solve speed minimizing obj using nlp;
* End speed