bearing.gms : Hydrostatic Thrust Bearing Design for a Turbogenerator

**Description**

The objective of this problem is to minimize the power loss during the operation of a hydrostatic thrust bearing subject to a number of constraints.

**References**

- Siddall, J N, Optimal Engineering Design: Principles and Applications. Marcel Dekker, New York, 1982.
- Deb, K, and Goyal, M, Optimizing Engineering Designs Using a Combined Genetic Search. In Bäck, T, Ed, Proceedings of the Seventh International Conference on Genetic Algorithms. 1997, pp. 521-528.
- Coello Coello, C A, Treating Constraints as Objectives for Single-Objective Evolutionary Optimization. Engineering Optimization 32, 3 (2000), 275-308.

**Small Model of Type :** NLP

**Category :** GAMS Model library

**Main file :** bearing.gms

$title Hydrostatic Thrust Bearing Design for a Turbogenerator (BEARING,SEQ=202) $ontext The objective of this problem is to minimize the power loss during the operation of a hydrostatic thrust bearing subject to a number of constraints. Siddall, J N, Optimal Engineering Design. Marcel Dekker, New York, 1982. Deb, K, and Goyal, M, Optimizing Engineering Designs Using a Combined Genetic Search. In Back, T, Ed, Proceedings of the Seventh International Conference on Genetic Algorithms. 1997, pp. 521-528. Coello Coello, C A, Treating Constraints as Objectives for Single-Objective Evolutionary Optimization. Engineering Optimization 32 (2000), 275-308. $offtext variables R 'bearing step radius (in.)' R0 'recess radius (in.)' mu 'oil viscosity in reynolds, (lb sec/in.)' Q 'flow rate of oil (in.^3/sec)' PL 'power loss (in. lb/sec)' P0 'inlet pressure (psi gauge)' Ef 'power loss due to friction (in. lb/sec)' Ep 'pumping energy (in. lb/sec)' h 'film thickness (in.)' delta_t 'temperature rise (degr F)' t 'temperature (degr F)' W 'weight (lb)' tmp1 'temp variable: log(R/R0)' tmp2 'temp variable: R^2-R0^2' ; equations power_loss 'objective function' pumping_energy 'included pump efficiency' friction 'friction loss' temp_rise 'temperature rise of the oil passing through the bearing' inlet_pressure 'relation between inlet pressure and flow rate' load_capacity 'load-carrying capacity' oil_viscosity 'oil viscosity is a function of temperature' temperature 'T is mean of ambient and oil outlet temperatures' radius 'inner radius should be the smallest' limit1 'limit exit loss to 0.1% of the pressure drop' limit2 'avoid surface damage in case of pressure loss' temp1 'calculation of tmp1' temp2 'calculation of tmp2' ; scalars gamma 'weight density of oil (lb/in^3)' / 0.0307 / C 'specific heat of oil (Btu/lb degr F)' / 0.5 / N 'angular speed of shaft (rpm)' / 750 / Ws 'thrust load (lb)' / 101000 / Pmax 'maximum inlet pressure (psi)' / 1000 / delta_t_max 'maximum temp change (degr F)' / 50 / hmin 'minimum film thickness (in)' / 0.001 / g 'gravitational constant (in/s^2)' / 386.4 / taf 'ambient temperature (degr F)' / 100.0 / P1 'outlet pressure, atmospheric (psi gauge)' / 0 / pump_efficiency '70% efficiency' / 0.7 / pi / 3.1415927 / ; table oil_constants(*,*) various oil grades C1 n 'SAE 5' 10.85 -3.91 'SAE 10' 10.45 -3.72 'SAE 20' 10.04 -3.55 'SAE 30' 9.88 -3.48 'SAE 40' 9.83 -3.46 'SAE 50' 9.82 -3.44 ; parameters C1 'c factor for given oil grade' cn 'n factor for given oil grade' gr 'specific gravity of oil' tar 'ambient temperature (degr R)' ; * calculate or extract parameters C1 = oil_constants('SAE 20','C1'); cn = oil_constants('SAE 20','n'); gr = gamma/0.0361111; tar = 459.7 + taf; * model restrictions * P0 <= pmax * h >= hmin * delta_t <= delta_t_max * w >= Ws P0.up = pmax; h.lo = hmin; delta_t.up = delta_t_max; w.lo = Ws; * bounds to keep variables in reasonable ranges Ep.lo = 1; Ef.lo = 1; P0.lo = 1; R.lo = 1; R.up= 16; R0.lo=1; R0.up=16; Q.lo=1; Q.up=16; mu.lo=1.0e-6; mu.up=16.0e-6; t.lo = 100; * variable scaling mu.scale = 1.0e-6; h.scale = hmin; W.scale = Ws; PL.scale = 1.0e4; Ep.scale = 1.0e4; Ef.scale = 1.0e4; * bounds to prevent multiplication by zero tmp1.lo = 0.0001; tmp2.lo = 0.01; * initial point * some NLP solvers need a good starting point * for this problem. R.L=6; R0.L=5; mu.L=0.000006; Q.L=3; P0.L=1000.0000; Ef.L=16000; Ep.L=3000; h.L=0.001; delta_t.L=50; t.L=600; W.L=101000; power_loss.. PL =e= Ep + Ef; pumping_energy.. Ep =e= Q*(P0-P1)/pump_efficiency; * friction.. Ef =e= sqr(2*pi*N/60) * [(2*pi*mu)/h] * (r**4 - r0**4)/4; * is reformulated into: friction.. Ef*h =e= sqr(2*pi*N/60) * [(2*pi*mu)] * (r**4 - r0**4)/4; * temp_rise.. delta_t =e= Ef / (12 * 778 * Q * gamma * C); * is reformulated into: temp_rise.. delta_t * (12 * 778 * Q * gamma * C) =e= Ef; * load_capacity.. W =e= [ (pi*P0)/2 ] * tmp2/tmp1; * is reformulated into: load_capacity.. W * tmp1 =e= [ (pi*P0)/2 ] * tmp2; * inlet_pressure.. P0 =e= (6*mu*Q)/(pi*h**3) * tmp1; * is reformulated into: inlet_pressure.. P0 * (pi*h**3) =e= (6*mu*Q) * tmp1; oil_viscosity.. log10(8.112e6 * mu + 0.8) =e= (T**cn) * (10**C1); temperature.. T =e= 560 + delta_t / 2; radius.. R =g= R0; limit1.. gamma * sqr(Q) =l= 0.001 * g * sqr(2*pi*R*h) * P0; limit2.. W =l= 5000 * pi * tmp2; temp1.. tmp1 =e= log(R) - log(R0); temp2.. tmp2 =e= sqr(R) - sqr(R0); model m /all/; m.scaleopt = 1; solve m minimizing pl using nlp;