Optimal Design of a Compliant Rear Mountain Bike Suspension

Optimal Design of a Compliant
Rear Mountain Bike Suspension
Semester Project Final Report
ME 558 Discrete Optimization
Submitted 7/13/2017
OPTICYCLE
JAMES T. ALLISON
MICHAEL S. CHERRY
ZACHARY A. KREINER
Abstract
The objective of this project was to determine a novel topology for a compliant rear
mountain bike suspension by employing discrete and continuous design optimization
methods. The mathematical model we have developed accounts for horizontal and
vertical loading on the wheel hub, the path the rear wheel hub travels while in motion, the
total horizontal and vertical displacement of the hub, and the volume of the suspension.
For simplicity, we began with a nine-node mesh representing the possible design space,
but then increased the mesh resolution, demonstrating the scalability of our parametric
model. The final model is a sixteen-node, undirected graph where the elements
connecting the nodes indicate the possible orientation of beams that compose the rear
suspension. We have designed and built a custom MATLAB code to analyze this space
and minimize a multi-objective function consisting of the path error with respect to a
circular path about the bottom bracket, the suspension volume, and the horizontal
displacement. Using this optimization program, a Pareto surface was then generated to
illustrate the tradeoffs between the multiple objectives. With this code, we have been
successful in determining an optimal topology that is lightweight, very stiff in the
horizontal direction, and closely follows the desired path.
Table of Contents
Problem Statement .............................................................................................................. 2
Design Model .......................................................................................................... 3
Mathematical Model ........................................................................................................... 5
Definition of Design Variables ............................................................................... 5
Definition of Constraints......................................................................................... 6
Definition of the Objective Functions..................................................................... 6
Optimization Method .......................................................................................................... 7
Optimization Model Description .......................................................................... 11
Optimization Results and Discussion of Results .............................................................. 13
Conclusions ....................................................................................................................... 18
References ......................................................................................................................... 19
Appendix A: Optimization Code Structure....................................................................... 20
Appendix B: The MATLAB Optimization Code ................................................................ 21
1
Problem Statement
In today’s mountain bike market, the rigid rear triangle seen in bicycles for generations
has been widely replaced by a rear suspension to provide a smoother ride while trailriding and increased control on rough terrain. This trend towards high-performance
cycles has substantially increased the cost of the mountain bikes due to the assembly
costs and part manufacture inherent with rigid-link mechanisms. Much work has been
done in developing advanced models for full suspension mountain bikes [1,2,3], most of
which focus on rigid-link mechanisms. Team OptiCycle proposed that a novel compliant
mechanism could be designed to replace these rigid-link rear suspensions in a simple and
cost-effective manner with a compliant suspension. The rear triangle of a mountain bike
(See Figure 1, below) has many product requirements that work against one another,
making it an excellent choice for an optimization problem that implements compliant
mechanisms. These requirements are as follows:






The compliant suspension should attach rigidly to a given seat tube geometry.
The suspension should be lightweight.
The suspension should be reliable, i.e.- exhibits a high fatigue life, high corrosion
resistance, and high strength.
The hub should travel a prescribed path while under both horizontal and vertical
forces, as well as torsion.
The dynamic response of the rear suspension should enhance mountain bike control
and comfort.
Finally, the ergonomics and aesthetics of the suspension should be considered.
Figure 1: A diagram indicating which section of the mountain bike will be modeled for
the creation of a novel compliant mechanism
Seat tube
Rear triangle – to be
replaced by compliant
suspension
Rear hub
Vertical
direction
Bottom Bracket
Horizontal direction
2
These requirements provide an ideal topology optimization problem due to the
conflicting nature many of them have with one another. Mountain bikes are used under
extremely rough conditions, making strength a key component in any design, yet the
carrying weight of the bike should be as low as possible, making heavy and overly strong
components infeasible. Also, the suspension has to be stiff enough to restrain the forces
induced during normal use, while at the same time it must be compliant enough to
provide the correct amount of deflection under a prescribed force. These inverse
relationships increase the difficulty of building a suspension, and necessitate the aid of
computer optimization to find an acceptable design.
While each of the considerations is important in the design of a compliant rear mountain
bike suspension, many of them were beyond the scope of the project. In this light several
simplifying assumptions were made. For this initial problem, dynamic effects, fatigue,
buckling, and stress have been ignored. These are acceptable assumptions to make,
because they are intimately related to the stresses inside the geometry, and stress is
typically ignored during the topology optimization stage for compliant mechanisms [4].
To further simplify the problem, we assumed the problem was two-dimensional, with a
uniform depth. This means that torsion and lateral rigidity (stiffness out-of-plane under
torsion about the seat tube) will also be ignored. In the beginning, aesthetics and
ergonomics were also ignored, but as possible topologies were proposed later, they would
again be considered based on the opinion of the team members. One final simplification
is to constrain the material to 4130 steel, removing a degree of freedom from the model.
With these considerations removed, the problem was formulated with three objective
functions and one constraint. First, the path accuracy would be measured and minimized
against a circular path using a sum squared error approach. Second, the volume would be
minimized, as well as the deflection in the horizontal direction under a substantial
horizontal load, as is the case for braking. The single constraint was that any considered
topology should deflect 5cm under a maximum force of 2400N, the force of an average
rider under 3gs where g is the acceleration of gravity (9.8 m/s2). This would ensure that
the suspension would have the correct deflection during trail-riding. More deflection was
not considered because it would send the system into the non-linear region, increasing the
computational time by as much as 2000 times.
Design Model
With this formulation, the design space was set up as a grid of nodes connected by
elements indicating the possible paths the suspension could travel from the rear hub to the
seat tube, and the initial nine-node, eighteen-element space used to replace the rear
triangle can be seen below in Figure 2. Each element in the space can be turned on or
off, changing the design. Once our design method worked on this simple mesh, we
planned to refine the mesh until the design model approximated a continuous design
space, allowing for complex designs such as curves and tapered beams. Discrete
optimization is ideal for such a formulation, because it allows for the simple addition or
removal of these elements. The problem would also include continuous optimization in
the form of the thickness of the elements.
3
Height of the
seat tube
Rear wheel
hub node
Angle of the seat
tube from vertical
Length of the system from the bottom
bracket to the rear wheel hub
Figure 2: The initial design space, a nine-node, eighteen-element system
One challenge presented by this design model was system connectivity. For a design to
be valid, the rear wheel hub must be physically attached to the seat tube at least at one
point. A disconnected, invalid design can be seen in Figure 3, below. Such disconnected
designs were dealt with in two different fashions which will be explained later.
Figure 3: A disconnected, invalid design
Height of the
seat tube
Angle of the seat
tube from vertical
Rear wheel hub is in
no way connected to
the seat tube.
Length of the system from the bottom
bracket to the rear wheel hub
4
Mathematical Model
The model, design objectives, constraints, and variables can now be presented formally in
negative null form:
Definition of Design Variables
The variable x is a binary vector. When the element based design model is used, each
element of x represents the existence of the corresponding element within a design. (0 →
doesn’t exist, 1 → does exist). This allows for direct design modification by adding or
removing elements. When the path based method is used, each element of x instead
describes the existence of a singly connected path. This allows for indirect design
modification by adding or removing paths. One advantage of the path based method is it
guarantees connectivity of the design, whereas the element method does not.
Beams with equal depth and thickness were used to describe all the elements in each
design. The continuous scalar variable t indicates this value. (All beams had the same
depth and thickness.) In future work, a vector t could be used instead to allow each of the
elements to have a different thickness.
The weighting parameter wi is necessary for the optimization model, and is not a true
design variable. It will be described in detail in the definition of the objective function.
5
Definition of Constraints
The only explicit constraint for our optimization model is an equality constraint that
requires the maximum vertical deflection attained by each design (δmax) when subjected
to a prescribed force is equal to the target deflection (δtarget). If the deflection is too low,
the design won’t have the correct stiffness, and if the deflection is too high, the design
will travel into the non-linear range, invalidating our computer model. The FEA code
designed by our team varies the thickness of all the beams until a value is found that
meets this equality constraint for a particular design topology. Because only one
thickness value will meet the constraint for a particular design, discrete choices are
imposed. In addition, because of this equality constraint, t may be viewed as a dependent
variable, rather than an independent design variable. The only true independent design
variable is x .
Other discrete constraints are imposed implicitly. x corresponds to the existence of
elements in the predefined design space. An element outside of the design space cannot
be selected. This implicit constraint imposes discrete design variable options.
Definition of the Objective Functions
We have set up this design problem with three objectives to be minimized; the path error,
the volume, and the horizontal deflection. These objectives ensure the optimal design
will have the necessary specifications for a rear frame and suspension with respect to the
scope of this project.
It was desired that the hub of the rear wheel should travel in a circular path about the
bottom bracket of the mountain bike. This circular path ensures no force feedback
through the chain when the suspension is active, and reduces suspension bobbing
resulting from pedaling forces. Each design was placed under five load steps, and the
position of each point was evaluated against a circular path. The sum squared error of
these evaluations was used as the first objective function to be minimized.
For optimal suspension performance, the mass of the design should be as small as
possible. Since mass is proportional to system volume, volume was used as the second
objective function to be minimized. The length of all the existing elements was found,
and multiplied by the square of the uniform thickness to calculate the system volume.
The horizontal deflection is the longitudinal movement of the rear wheel hub (parallel or
antiparallel to the direction of motion) that occurs when longitudinal forces are applied to
the rear wheel (braking or acceleration). The horizontal deflection was used as the third
objective function to be minimized. It should be small because as the hub moves
horizontally, the length of the wheelbase changes, and results in poor handling.
Since three objective functions are used, an approach must be used to convert the three
objective functions to a single value, since a vector cannot be minimized. Two popular
methods are to either create a composite objective function by summing the weighted
values of the individual objective functions, or by choosing an objective function, and
6
converting the remaining objective functions to constraints. We chose to use the former
method. wi is a weighting parameter used to vary the importance of each of the objective
function values. wi is continuous, and is determined using a normalization method to
ensure each set of wi values results in a unique optimal design. A collection of these
different optimal designs found using different weighting factors can be used to generate
a Pareto surface that will be described later.
Optimization Method
The nature of the problem undertaken requires the use of a heuristic algorithm. There is
no continuous counterpart to the topology optimization problem. In the approach used in
this project, the existence of each element in the node matrix is easily represented as a
single binary number. The string of all the binary numbers then completely describes the
topology of the structure, or design. This type of binary representation lends itself well to
using a genetic algorithm (GA) for optimization. The other alternative we considered
was simulated annealing (SA). In general it seems that SA requires a much larger
number of calls to the analysis function than required by a GA. The analysis function
consists primarily of assembling the stiffness matrix for the specified topology, and
applying various force loads, returning the resulting displacements. This function
required approximately 0.4 seconds to execute, and thus was a limiting factor in our
choice of optimization methods and parameters.
As mentioned previously, a unique challenge faced in this topology optimization was
maintaining connectivity between the rear hub where the wheel is mounted, and the seat
tube on the rigid frame. Two techniques were addressed to handle this problem, the path
and the element methods for determining element existence. The path method guarantees
connectivity by considering each possible connected path from the rear hub node to the
nodes of the seat tube as a design variable. The element method considered each possible
element connecting two nodes to be the design variables, and therefore does not ensure
connectivity.
In order to use a path method, each possible path from the rear hub to the seat tube
needed to be enumerated. This was accomplished by creating the adjacency matrix for a
given mesh, and running a modified one-to-some depth-first search algorithm to find all
possible paths and store them in a matrix. (See Figure 4)
7
Figure 4: The path method builds the suspension from combinations of paths
Path taken
Possible paths
Compound path can only be found by
combining paths from pathmake.m
For a 3x3 node mesh, there were 113 possible paths, and thus the optimization required
113 binary design variables, representing the existence of each path in the specified
design. Before running the analysis function, an additional step was required in which
the set of existing paths was decoded into the existing elements by taking the union of all
the elements in the existing paths for a single design. Figure 5, below shows one
optimized 3x3 design space.
Figure 5: The optimal 3x3 topology found by the element method
Vertical Location (in)
Notice the extremely
dense nature of the design
(only 4 elements left out)
*The red lines indicate the
locations of the elements
over several load steps.
Horizontal Location (in)
8
A problem faced with this path method was densification of the designs in the population.
Any more than four or five existing paths resulted in a truss structure with very few if any
elements missing from the mesh. This problem was furthered by mutation and crossover,
because changing just one design variable could drastically alter the topology. Such
drastic changes made convergence on a global optimum difficult, if not impossible.
Another problem with the path method was its lack of scalability. The resolution of the
mesh must be increased if a viable compliant rear suspension is to be found, but to
increase the mesh to 4x4, the binary existence variables increase to 20,596. This is far
too many to be optimized with a genetic algorithm, so we had to find a different method.
To solve these problems, an element method for determining element existence was
devised. This method solved the problem of densification because each design variable
only indicated one element in the space, rather than an entire path in the space. This way,
mutations and crossovers would change the topologies less drastically, enabling
convergence on a global optimum. The optimal 3x3 design found with the element
method can be seen in Figure 6, below.
Figure 6: The optimal 3x3 mesh found by the element method
Vertical Location (in)
The element method converges on
a less dense mesh and the optimal
topology has a 25% better
fitness value.
*The red lines indicate the
locations of the elements
over several load steps.
Horizontal Location (in)
The issue of scalability was also addressed by the element method. With each binary
existence variable indicating only one element, the number of variables for a 3x3 mesh
was reduced from 113 to 18, and for the 4x4 case it dropped to only 39 from 20,596. The
element method, however, does not ensure connectivity like the path method. Because of
9
this a check for connectivity had to be added. This is a simple check that will be
described later. Despite the necessity of this check, and due to its scalability and ability
to converge, we chose to continue the suspension project with the element method.
Once the decision had been made to use a genetic algorithm along with finite element
analysis, we had to create an optimization routine in which we could implement them.
Figure 7 illustrates the 4 methods we originally considered for our routine.
Figure 7: An illustration of the four solution methods considered
1)
MATLAB
GA implementation
2)
3)
4)
MATLAB
Control interface
GA implementation
Excel
Control interface
Ansys
FEA
Excel
Control interface
GA implementaion
Ansys
FEA
Ansys
FEA
MATLAB
Control interface
GA implementation
FEA
Choice 2) was our original approach. We were successful in creating an Excel
spreadsheet that generated input files for ANSYS, given geometric parameters and
element existence. ANSYS then performed FEA on the design, and passed back
performance values to Excel. We were pleased with the convenient interface, and the
sophisticated analysis done by ANSYS. However, the ANSYS runs were slow, and we
soon realized too slow to be used with a GA in a reasonable amount of time. Therefore,
we decided to sacrifice some convenience and some analytical precision for
computational speed, and use approach 4) instead.
To implement 4), we wrote a custom FEA code to analyze our designs. Nothing was
included in the code not required for analyzing designs within our design space
definition, which resulted in relatively fast evaluations and low computation time. The
10
code that we developed can be accessed through the link found in Appendix B, and the
functionality of the code used as our optimization routine is explained below.
Optimization Model Description
Appendix A outlines the structure of the optimization model developed for this project.
Six primary functions were coded in-house, along with several auxiliary functions. In
addition, functions were used from the MATLAB Genetic Algorithm Toolbox [5] and the
MATLAB Nonlinear Finite Element Toolbox [6]. The optimization model has three main
components: the custom finite element analysis, the genetic algorithm implementation,
and the assembly of the Pareto set. The following is an overview of these three
components.
The finite element analysis is implemented by the functions meshmake2.m, and FEA1.m.
meshmake2.m takes as an argument the binary vector x that fully defines the design
topology to be analyzed. A mesh is then generated that defines the design in a form that
can be used by FEA1.m to perform the required analyses (i.e. nodal coordinates and
beam element locations). This mesh is passed to FEA1.m. FEA1.m first performs a
continuous optimization on the variable t (the uniform beam thickness) to ensure the
equality constraint is met, i.e. the proper thickness is found to ensure the actual maximum
suspension deflection matches the desired deflection when under the given maximum
load condition. With this value for t, FEA1.m then calculates the deformed shape of the
suspension for five vertical load steps. The position of the node representing the rear
wheel hub is compared to a circular path, and the sum squared error (sse) is calculated
and used as an indication of path accuracy (objective function f 1  x  ). An sse value of
zero corresponds to a perfectly circular path. Using the value of t, and the calculated
lengths of each beam element used in the design, the system volume (proportional to
system mass) is found, and used as objective function f 2  x  . Finally, a large horizontal
force is applied to the hub node, and the corresponding displacement is used as f 3  x  . It


is desired to minimize this value. The vector f 1  x  f 2  x  f 3  x  is returned to
meshmake1.m, which then returns it to the genetic algorithm implementation.
The genetic algorithm is implemented by the functions SGA.m and OBFUN1.m. SGA.m
generates a random initial population of designs, and uses meshmake2.m and FEA1.m to
find the three objective function values of each design in the population. The prescribed
weight for each of the objective functions is then used to compute a single composite
objective function f  x  (or fitness) for each design in the population. The fitness values
are ranked, and genetic operations are used to develop a new population for the next
generation. The user can specify the probability of crossover and mutation, the population
size, the maximum number of generations, and the generation gap.
The function OBJFUN1.m is an interface between the genetic algorithm and the finite
element analysis. Given an entire population of designs, OBJFUN1.m sequentially passes
individual designs to meshmake2.m, which returns the corresponding objective function
values. OBJFUN1.m then assembles a matrix that contains the objective function values
11
for every design in a population for a particular generation. This matrix is passed up to
SGA.m.
After SGA.m has collected the objective function values and determined the
corresponding fitness values for each design in a population, it selects and stores the best
design from that population. After the maximum number of generations is reached, the
best design from all generations is found and returned. This generally is the best design
from the last generation if the genetic algorithm parameters were tuned properly.
As the code was developed, it was discovered that the genetic algorithm occasionally
generated a zero element design, which then caused the entire program to fail. Checks
were implemented into meshmake2.m for this condition. If a zero element design was
generated, a rather large fitness value was returned. This allowed the genetic algorithm to
operate normally, while preventing the code from failing. Other checks had to be
implemented as well, and after careful attention to robustness, a model was developed
that could handle any given design without failing. This was important so that the model
could run extensive models reliably without concern that it would fail sometime during
the middle of the run.
The above describes how the model finds the best design given a particular set of
weighting factors. Now it is left to explore what happens as these weighting factors are
varied. This will enable the quantification of tradeoffs between the objective functions,
which frequently are conflicting in design optimization problems. The function pareto.m
generates appropriate values of weighting factors, passes them to SGA.m, which then
returns the best design given those weighting factors. The best design represents a point
on the Pareto, or efficient surface. The user can specify how many points are obtained by
pareto.m. Once all points have been found, interpolation is performed between the points
to generate an approximation of a portion of the Pareto surface for the design
optimization problem. This surface is useful for both visualizing and quantifying the
tradeoffs present in the optimization problem. A design point may be manually selected
from the surface, using intuition and a feeling for what objective functions are most
important, or statistical methods may be used to select a point from the surface. The two
statistical methods used in this project were minimizing the maximum variation, and
minimizing the summed variation. In addition, a Pareto surface may be incorporated into
a profit model using market and other criteria to select a best design. In this case a single
optimum may be available.
Both the path and the element methods for dealing with connectivity were implemented
in the optimization model. Both versions are available in the zip file obtained by going to
the link in Appendix B. Changes had to be made throughout the model to convert from
the path method to the element method. The only function not altered was pareto.m.
Using the path method, a matrix containing all of the singly connected paths was
generated by a function pathmake.m, which was called by SGA.m. SGA.m used binary
vectors to describe each design that had as many variables as there were paths in the path
matrix. For example, if paths 1, 18, 49, and 111 contained a 1 in their respective bits in
the binary design vector, the corresponding design was a union of paths 1, 18, 49, and
12
111. meshmake2.m was written such that these paths were converted to element
existence, and then knowing what elements existed, the mesh for FEA1.m could be
generated. Because the design consisted of a union of connected paths, it was guaranteed
to be connected.
The optimization model was converted to an element based method when it discovered
that finer meshes using the path method quickly became unwieldy, requiring very large
numbers of design variables, even for a simple 4 node by 4 node mesh. Using the element
method, the binary design vector in SGA.m corresponded directly to the existence of
elements in the design. Because of random element selection, connectivity was in no way
guaranteed. A simple solution was to recognize that a disconnected design produced a
singular stiffness matrix for the finite element analysis. A check for singularity of the
stiffness matrix was implemented in FEA1.m. If the stiffness matrix was singular, the
function was terminated, and a large value was returned for each of the objective
functions (just as in the zero element design check described above). The scaling up to a
4 by 4 node mesh was successful, and in the future all that will be required to go to a
more refined mesh is to provide the appropriate adjacency matrix in meshmake2.m, and
change the number of variables in SGA.m to match the number of elements. The scaling
up of our model from a 3x3 to a 4x4 mesh demonstrates the scalability and parametric
nature of our code.
Optimization Results and Discussion of Results
Numerous optimization trials were conducted to determine the best possible topology for
the rear suspension. The most comprehensive set of results for the 4x4 case was a 97
point Pareto surface that took 5 days to run. A Pareto surface represents the trade-off
between the multiple objective functions. Each point on the surface represents an optimal
design, but with different weighting constants. The “global optimum” can be chosen in
many different ways. For this project, the designs with the minimum maximum variance
and the minimum summed variance were chosen and compared. The specified two
points are shown in Figure 8 below.
13
Figure 8: The Pareto Surface of 97 different optimization trials, each with a unique set of
weighting constants for the objective functions.
Point chosen by
min(max(variance))
Point chosen by
min(sum(variance))
Horizontal
Deflection
(in)
2
Path Error (in )
Volume (in3)
Figure 8 shows the surface of optimal designs from which the two best designs were
chosen using differing statistical methods.
The variance is the variation from the lowest objective function value for each of the
three objective functions and is merely a way of normalizing the multiple objectives. The
maximum variance for a design is the largest of its three normalized objective function
values, and the summed variance is then self-explanatory. The optimal design for the
min(max(variance)) was the design that had the lowest maximum variance. Likewise, the
optimal design for the min(sum(variance)) was the one with the lowest summed variance.
The two designs described herein are presented below in Figure 9.
14
Figure 9: The two topologies statistically determined from the Pareto Surface.
min(max(variance)) method
min(sum(variance)) method*
*This method provides a more aesthetically
pleasing and ergonomically sound topology.
Figure 9 shows the two designs that were found by using statistical methods for choosing
the best design from the 97 optimal points.
While Figures Y and Z illustrate there are different statistical methods for choosing a
point on the Pareto surface, human intuition was used to make the final decision, as is the
case in almost all design projects. The factors considered in this decision were aesthetics
and ergonomics, which had previously been neglected. Using these criteria Team
OptiCycle chose the design obtained from the min(sum(variance)) method as the
preferred “global optimum.” The term “global optimum” has been used with quotes
because a heuristic algorithm does not guarantee that there are no neighboring designs
with a better fitness, unlike a continuous optimization algorithm. The GA does, however,
increase the probability of exploring the entire design space, and therefore instills greater
confidence that the optimum is global and has not converged prematurely on a local
optimum.
Another important feature to notice from the Pareto surface is the tradeoff between the
different objective functions. There is a distinct curve between the axes representing the
path error and horizontal deflection, but relatively no slope when either one is compared
to the volume axis (see Figure 10 below). In other words, the optimization method was
insensitive to the weight on the volume objective. We believe this can be explained by
the way the equality constraint was formulated. During the analysis function call for
each design in the population, the thickness was optimized as a continuous variable until
the maximum vertical deflection was the pre-specified 5cm. For a given topology, the
length of all beams is fixed because the nodes were not allowed to move, and the
thickness is mandated by the desired deflection. The volume is simply calculated as the
15
sum of each beams length multiplied by the thickness squared (square cross-section
assumed). Therefore, although the volume was an objective function, it was overconstrained and the Pareto surface plots below were the result.
Volume
Long. Deflection
Figure 10. Pareto surface displaying lack of tradeoff between Volume and Longitudinal
Deflection and Volume and Path Error.
Volume
Path Error
With the optimal design chosen, ANSYS was used to verify the performance and
evaluate the stresses. The results of this can be seen below in Figures 11 and 12.
Figure 11: Axial stress results from ANSYS
Largest axial stress is
134 GPa in compression
16
Figure 12: Bending stress results from ANSYS
Largest bending
stress is 1.6 GPa
in tension
Figures 11 and 12 show that in both cases the maximum stress is far higher than yield for
any material.
The maximum deflection and path of travel were within 2.5% of the behavior predicted
by the MATLAB analysis function. This provided well-needed validation of the model
used for optimization. However, while validating the accuracy of the model, it was
discovered that the stresses required to obtain the predicted performance are well beyond
any material’s ultimate strength. The high axial stresses are related to the type of model
used for the FEA analysis, which are further related to the computation time required for
optimization. A linear analysis was used to model the deflection under a vertical force.
The desired path of travel was circular, but a cantilever beam under a vertical force, for
example, does not result in any horizontal deflection. Thus, the only way to obtain the
desired deflection was to induce axial strain. If a non-linear analysis had been used,
bending would have contributed to the horizontal deflection required in a circular path.
However, non-linear analysis is much more computationally expensive (2000X for the
nlfet code used). For a GA with multiple thousand analysis function evaluations
required, this was not deemed feasible. The stress problem can be further ameliorated
through the implementation of a stress constraint for yield and buckling. This would also
increase the computation time, but would provide a more realistic model.
17
Conclusions
A topology optimization routine was performed for a fully compliant rear mountain bike
suspension design. A suspension design was successfully found based on the objectives
considered. Namely, the error from the desired deflection path, the design volume, and
the horizontal deflection were minimized subject to an equality constraint on the
maximum vertical deflection. While a design was found that fulfills all of the
requirements evaluated, further advances to the complexity of the model are required to
obtain a more realistic result. This includes allowing each segment of the design
topology to vary continuously in thickness, introducing stress constraints for yield,
fatigue and buckling, and switching from linear to non-linear analysis. Other possible
suggestions for improvement would be to include damping for dynamic performance,
evaluating different materials, allowing the node locations to vary continuously, and
analyzing 3-dimensional effects such as torsion. These changes would drastically
increase the computation time but would result in a functional prototype design.
18
References
[1]
Good, C. and J. McPhee, 2000. “Dynamics of mountain bicycles with rear
suspensions: design optimization.” Sports Engineering, Vol 3, pp 49-55.
[2]
Titlestad, J.K. et al., 2003. “Numerical and Experimental Simulation of Mountain
Bike Suspension Systems Subject to Regular Impact Excitation.” Materials
Science Forum, Vols. 440-441, pp. 111-118.
[3]
Sasaki, K. et al. “Path Analysis. A Bicycle Rear Suspension Analysis Method.”
http://www.mtbcomprador.com/pa/english/ accessed on 10/1/03.
[4]
Hetrick, J.A., 1999. “An Energy Efficiency Approach for Unified Topological
and Dimensional Synthesis of Compliant Mechanisms.” Ph.D. Thesis, University
of Michigan, Ann Arbor.
[5]
The Matlab Genetic Algorithm Toolbox, http://www.shef.ac.uk/%7Egaipp/gatoolbox/intro_paper_1.pdf (from IEE Colloquium on Applied Control Techniques
Using MATLAB, Digest No. 1995/014, 26 Jan, 1995)
[6]
The Matlab Non-Linear Finite Element Toolbox (NLFET),
http://cvs.sourceforge.net/viewcvs.py/nlfet/nlfet/ written by Roberts, M., accessed
on 10/1/03.
19
Appendix A: Optimization Code Structure


pareto.m

Generates weight values
Calls SGA to assemble set of optimal
designs.
Selects best design according to statistical
criteria
 w1 
w 
 2
 w3 
x*
     
f1 x* f 2 x* f 3 x* x*

Implements genetic algorithm to find best
design topology for a given set of weights.
SGA.m
  
 x1 
 
 
x 
 n
 f x f12 x f x 
13
 11





 f n1 x f n 2 x f n 3 x 


  

OBJFUN1.m
Assembles matrix containing objective
function values for each individual in a
population.
  
x
f1 x , f 2 x , f 3 x

Generates a mesh for finite element analysis
given a design.
meshmake2.m
t
FEA mesh

FEA1.m

  
f1 x , f 2 x , f 3 x
Determines beam thickness required to meet
maximum displacement equality constraint.
Uses FEA to calculate all three objective
function values.
20
Appendix B: The MATLAB Optimization Code
The full optimization model may be obtained by going to the following link and clicking
on OptiCycle_code.zip.
http://www-personal.umich.edu/~jtalliso/Research/
The forests of America thank you.
21