Structural Optimization
TomSym implementation of GAMS Example (SHIP,SEQ=22)
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.
% s: bulkhead sections (top, middle, bottom) toms 3x1 s gam = 0.001; % specific gravity of water sig = 1200; % maximum bending stress dnv = 3.9; % det norske veritas factor ha = 250; % height above panel gamsteel = .0078; % specific weight of steel % Length of panel l = [495; 385; 315]; % Height at the base of panel hb = ha+sum(full(spdiags(repmat(l',3,1),[0 1 2],3,3)))'; % Height at the middle of panel h = hb - l/2; % Constant number one k1 = gam*h.*l.*l/12/sig; % Constant number two k2 = dnv*1.05e-4*sqrt(hb); e = 0.8; width = 500; ca = 0.2; tlow = 1.05; toms 3x1 z t % module, plate thickness % width of flange, length of web, depth of corrugation, width of % corrugation, weight of structure toms wl lw d wc w % Module definition eq1 = {z == d*t*(lw/3+wl*e)/2}; % Width of corrugation - definition eq2 = {(wc-wl)^2 == lw^2 - d^2}; % Bending stress eq3 = {z >= k1*wc}; % Moment of inertia eq4 = {z*d/2 >= 2.2*(k1*wc).^(4/3)}; % Plate thickness - width of flange eq5 = {t >= k2*wl + ca}; % Plate thickness - length of web eq6 = {t >= k2*lw + ca}; % Geometric constraint eq7 = {lw >= d}; % Total weight of structure obj = gamsteel*width*(wl+lw)*sum(t.*l)/wc/1000; % Bound on t cbnd = {t >= tlow}; % Starting point x0 = {t == [1.2;1.2;1.3]; wl == 45.8; lw == 43.2 d == 30.5; wc == wl+sqrt(lw^2-d^2) z == d*t*(lw/3+wl*e)/2}; cons = {cbnd; eq1; eq2; eq3; eq4; eq5; eq6; eq7}; solution = ezsolve(obj,cons,x0);
Problem type appears to be: con ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Problem 1 f_k 5.540914709534572300 sum(|constr|) 0.000000000717364057 f(x_k) + sum(|constr|) 5.540914710251936300 f(x_0) 6.658577357100706500 Solver: snopt. EXIT=0. INFORM=1. SNOPT 7.2-5 NLP code Optimality conditions satisfied FuncEv 16 GradEv 14 ConstrEv 14 ConJacEv 14 Iter 13 MinorIter 19 CPU time: 0.031250 sec. Elapsed time: 0.031000 sec.