You are on page 1of 5

AE 6170: Structural Optimization Project by Darshan Sarojini

The domain and load cases given is shown in Fig. 1.

Figure 1: Optimization problem


To perform topology optimization, a ground structure approach was chosen to generate the
truss. The generation of the ground structure was done by modifying a code from [1]. The code
first discretizes the domain into rectangular blocks. Next, it connects every node to every other
node. Finally redundant bars are eliminated. The ground structure is shown in Fig. 2a. The mesh
can be refined to increase the number of nodes, and correspondingly, the number of truss elements.
A refined ground structure is shown in Fig. 2b.
The refined ground structure has 35 nodes and 386 truss elements. This implies the number
of design variable (bar areas) is 386. If each bar element is subjected to tensile, compressive and
buckling stress constraints; and with two load cases, this results in 2316 constraints. To reduce
this, the KS constraint aggregation method [5] will be used. Using finite difference or complex step
method to approximate the sensitivities would drastically increase the computational time. Hence,
an adjoint method will be used.
Denoting the stress in each member as i and the bar areas Ai , a relaxed stress [2] parameter
is defined. Alternatively, another approach could have been used [3].
si =

Ai
i
0
Ai +  max

(1)

The optimization problem is given by


minimize
A

mass(A) = ALi

subject to Ku = f1
Ku = f2
cKStensile |f1 1
cKStensile |f2 1

(2)

cKScompressive |f1 1
cKScompressive |f2 1
cKSbuckling |f1 1
cKSbuckling |f2 1
data

P = 100kN, E = 70GP a, max = 400M P a, = 2700kg/m3 , = 0.95


1

(b) Fine mesh

(a) Coarse mesh

Figure 2: Unstructured triangular mesh


where the KS function, and its derivatives are given by
"N
#
X
1
cKS = m + ln
e(si m)

(3)

i=1

with m = max si , a =

PN

i=1 e

(si m)


cKS
1
Ai
E
= e(si m)
Bi

u tensile/compressive a
Ai +  max

cKS
1

E
= e(si m)
Bi u(e)

2
x tensile/compressive a
(Ai + ) max

cKS
1
1
E
= e(si m)
Bi
2 E(1 4 )

u buckling
a
Ai +  2
2 2

(5)


cKS
1
1
= e(si m)

x buckling
a
(Ai + )2

(7)

(4)

(6)

Li 12(1 )

E
2 E(1 4 )
L2i 12(1 2 )2

Bi u(e)

To validate the implementation of the adjoint method, the complex step method and finite
difference was used with varying step sizes. Fig. 3 shows the result. As seen the adjoint method
gives the sensitivities accurately.
When running the optimizer, a number of changes had to be made to ensure numerical stability.
1. The gradient of the mass is many orders of magnitude greater than the gradient of the
constraints. Hence, the optimizer was run using a low value of density (equal to ).
2. When eliminating bars, it had to be ensured that the resulting structure did not result in a
singular K matrix
3. The optimizer pushes some bars to the lower bound. When the verification code is run, a
small force on these bars will cause them to violate the buckling constraints. Hence, a script
was written to remove those bars
2

Figure 3: Relative error between gradient computed using adjoint and that computed by complex
step method and finite differences

(a) Truss structure when optimizer did not converge

(b) Truss structure when optimizer converged

Figure 4: Initial optimization runs


Changing changes the design space, whereas changing  changes the feasible space. Hence a
continuation method was adopted. This could be further refined using [4].
Select starting point x0 , = 5,  = 0.01
for j in range(3)
for i in range(6)
Set starting point xn = xn1
Run optimizer

 = 10
= 10
The optimizer was first run with very low number of iterations to check if it implemented
correctly and is giving sensible results. The resulting structure is shown in Fig. 4a. The optimizer
was then allowed to run fully. For the structure with 404 bars, the resulting optimum is shown in
Fig. 4b. It weighs 26.86 kg. The result was used to get a fair idea of which bars are load bearing
and which arent. The lower left, lower right and upper right bar elements do not bear any load.
Further, there is no reason to connect the two pinned nodes.

(a) Coarse mesh

(b) Fine mesh

Figure 5: Unstructured triangular mesh

(a) Truss design 1

(b) Truss design 1

(c) Truss design 3

(d) Truss design 4

Figure 6: Truss designs tested


Next, an unstructured triangular mesh was used to generate the truss structure. Like with the
structured rectangular mesh, the mesh can be refined. Fig. 5 shows the resulting truss structure
for coarse mesh 5a and fine mesh 5b.
A couple of truss structures were tried to obtain the lowest mass one. Fig. 6 shows a few designs
tested.
The truss was run again through the optimizer, this time giving an initial guess with many bar
areas close to zero. Since the problem is non-convex, multiple starting points were used. The
structure with the lowest mass obtained and satisfying all the constraints is seen in Fig. 7. This
truss weighs 20.63 kg and satisfies all the constraints.
As seen in Fig. 7, further refinements could be made. They could have been eliminated to

Figure 7: Optimized truss


reduce the mass further. A more rigorous method would have been to write a code which analyses
the stresses in the structure when both loads are applied, decides which bars to remove; and
iteratively re-optimizes till the mass cannot reduce further. However, time constraints prevented
this implementation.

References
[1] Zegard, Toms, and Glaucio H. Paulino. GRANDGround structure based topology optimization
for arbitrary 2D domains using MATLAB. Structural and Multidisciplinary Optimization 50.5
(2014): 861-882.
[2] Stolpe, M., and K. Svanberg. On the trajectories of the epsilon-relaxation approach for stressconstrained truss topology optimization.. Structural and multidisciplinary optimization 21.2
(2001): 140-151.
[3] Bruggi, Matteo. On an alternative approach to stress constraints relaxation in topology optimization.. Structural and multidisciplinary optimization 36.2 (2008): 125-141.
[4] Poon, Nicholas MK, and Joaquim RRA Martins. An adaptive approach to constraint aggregation
using adjoint sensitivity analysis.. Structural and Multidisciplinary Optimization 34.1 (2007):
61-73.
[5] Kennedy, Graeme J., and Jason E. Hicken. Improved constraint-aggregation methods.. Computer
Methods in Applied Mechanics and Engineering 289 (2015): 332-354.

You might also like