ship.gms : Structural Optimization

Description

```This model designs a vertically corrugated transverse bulkhead of an
oil tanker. The objective is to design for minimum weight and
meet stress, moment of inertia and plate thickness constraints.
```

Small Model of Type : NLP

Category : GAMS Model library

Main file : ship.gms

``````\$title Structural Optimization (SHIP,SEQ=22)

\$onText
This model designs a vertically corrugated transverse bulkhead of an
oil tanker. The objective is to design for minimum weight and
meet stress, moment of inertia and plate thickness constraints.

Bracken, J, and McCormick, G P, Chapter 6. In Selected Applications of
Nonlinear Programming. John Wiley and Sons, New York, 1968.

Keywords: nonlinear programming, ship construction, bulkhead designment, engineering
\$offText

Set s 'bulkhead sections' / top, middle, bottom /;

Alias (s,sp);

Scalar
gam      'specific gravity of water (kg cm-3)' / .001  /
sig      'maximum bending stress    (kg cm-2)' / 1200  /
dnv      'det norske veritas factor'           / 3.9   /
ca       'corrosion allowance            (cm)' / na    /
e        'flange effectiveness'                / na    /
ha       'height above panel             (cm)' / 250   /
gamsteel 'specific weight of steel'            / .0078 /
width    'width of panel                  (m)' / na    /
tlow     'lower bound on t               (cm)' / na    /;

Parameter
h(s)     'height at the middle of panel  (cm)'
hb(s)    'height at the base of panel    (cm)'
k1(s)    'constant number one'
k2(s)    'constant number two'
l(s)     'length of panel                (cm)' / top 495, middle 385, bottom 315 /;

hb(s) = ha + sum(sp\$(ord(sp) <= ord(s)), l(sp));
h(s)  = hb(s) - l(s)/2;
k1(s) = gam*h(s)*l(s)*l(s)/12/sig;
k2(s) = dnv*1.05e-4*sqrt(hb(s));

display l, h, hb, k1, k2;

* the reference does not contain values for the parameters
* e, width, ca, and t.lo. from reported optimal solutions and
* using constraints stress and inertia a value for e can be calculated.
* the width is only a scaling constant and is set to 500. ca is assumed
* to be .2 and the lower bound of 1.05 on t was read out from solution values.

e     = .8;
width = 500;
ca    = .2;
tlow  = 1.05;

Variable
z(s)       'module               (cm3)'
t(s)       'plate thickness       (cm)'
wl         'width of flange       (cm)'
lw         'length of web         (cm)'
d          'depth of corrugation  (cm)'
wc         'width of corrugation  (cm)'
w          'weight of structure (tons)'

Equation
zdef(s)    'module definition                (cm3)'
wdef       'width of corrugation - definition (cm)'
stress(s)  'bending stress               (kg cm-2)'
inertia(s) 'moment of inertia                (cm4)'
platew(s)  'plate thickness - width of flange (cm)'
platel(s)  'plate thickness - length of web   (cm)'
geom       'geometric constraint              (cm)'
weight     'total weight of structure       (tons)';

zdef(s)..    z(s) =e= d*t(s)*(lw/3+wl*e)/2;

wdef..       wc   =e= wl + sqrt(lw*lw-d*d);

stress(s)..  z(s) =g= k1(s)*wc;

inertia(s).. z(s)*d/2 =g= 2.2*(k1(s)*wc)**(4/3);

platew(s)..  t(s) =g= k2(s)*wl + ca;

platel(s)..  t(s) =g= k2(s)*lw + ca;

geom..       lw   =g= d;

weight..     w    =e= gamsteel*width*(wl+lw)*sum(s, t(s)*l(s))/wc/1000;

t.lo(s)       = tlow;
t.l("top")    = 1.2;
t.l("middle") = 1.2;
t.l("bottom") = 1.3;
wl.l = 45.8;
lw.l = 43.2;
d.l  = 30.5;
wc.l = wl.l + sqrt(lw.l**2-d.l**2);
display wc.l;

z.l(s) = d.l*t.l(s)*(lw.l/3+wl.l*e)/2;
display z.l;

wc.lo = 1;

Model ship 'structural design of bulkhead' / all /;

solve ship minimizing w using nlp;
``````
GAMS Development Corp.
GAMS Software GmbH

General Information and Sales
U.S. (+1) 202 342-0180
Europe: (+49) 221 949-9170