Anda di halaman 1dari 13

Industry Sector RTD Thematic Area Date Deliverable Nr

Product and System 8.10.2003 1


Optimization

GENERAL PURPOSE FEA VS SINGLE PURPOSE DESIGN


OPTIMISATION

DELIVERABLE PART 1---PSO RTD

Professor Grant Steven


University of Durham
Grant.steven@durham.ac.uk

FENET THEMATIC NETWORK


1
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
1 Introduction

The current state of computational mechanics for the design analysis of engineering
products has reached a stage where there are about six large general-purpose FEA codes
that do 98% of all the analysis in the world. Over the years such codes have added
capabilities and features at a fast rate and, either, because of changing hardware or user
requirements, these codes will continue to grow in capability. Clearly, if there are 20 or 100
users who want/demand a certain feature, then the developer will respond. Then if a
competitor is seen to be offering more then this may also trigger the inclusion of features.
If lots of users wanted to be able to calculate the torsion-bending constant of an arbitrary
cross section; or they wanted to stress-strain curves and failure criterion for carbon nano-
tubes then these would be in the codes.

All this increasing generality means, for any single user, there is that a lot of the
functionality that is not used. Because they work on a need-to-know basis there are many
areas of a large FEA system that to a specific user are un-necessary. Other bits can not be
avoided. How many of us know how to use foot-notes in Microsoft Word.

As opposed to this ever increasing capability and competency in FEA codes is the product
performance specification within most engineering companies. Most often a design team is
focused on a single product, be they 3rd tier in the automotive industry making vacuum cans
for braking systems, or bicycle frames, or artificial hips. This means that the team know a
lot about a single product and what they expect from it and what all the performance issues
are. In other words they only want to achieve one very specific goal. This goal will mean
improvements in the performance in some way. Sporting equipment is an obvious
example, the tennis racquet that has a 5% increase in coefficient or restitution will win over
one that does not.

Thus in this situation, what an organization needs from its product design improvement
software is a very specific outcome and, to my mind, this then needs a very specific code to
do this. Having researched structural optimization techniques for the last 14 years and
undertaken many commercial analysis and design FEA projects the author considers, that
the current software being developed for general purpose structural and design optimization
is following the same route as FEA and trying to be as general purpose as possible. Thus
the user of such software is faced not only with a large choice of settings but, even harder
to resolve, a large choice of different methods to attack the optimization problem, each with
its own constraints and special tuning features.

This situation is analogous to a period in FEA history when the analyst would spend a lot of
time exploring a problem with different element types and densities. Modern software with
parallel and sparse solvers and good mesh generators has eliminated most of this
computational exploration.

This paper puts the argument that what is needed for product optimization within any
organization is a specific code that targets only the products and processes of the
organization. Thus there is a need for a pre-pre-processor which only targets the specific
task in hand and a post-post processor for the FEA that extracts the specific performance
parameter, like max stress or stiffness etc. Thus the GUIs in the pre-pre processor should
only have the variable data for the single product and the steering parameters that fit the
product. This GUI then launches the FEA, the model can be built from the GUI or may

FENET THEMATIC NETWORK


2
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
have been built beforehand, this depends on what is being undertaken. The FEA is
generally launched from this Customized code and then the FEA output is processed to the
specific requirements and finally decisions made. As we know most design exploration
and optimization is very iterative or involved the extraction of semi-analytic sensitivities or
even more expensive computational derivatives.

Such iterations can be handles automatically and the special code need only report the
results. Often this involves a change in the design and the ability of the FEA code to do
CAD to FEA to CAD transfer becomes and issue.

A survey of the members of the FENET EU funded network revealed as expected, that all
commercial companies who used FEA did so for the main purpose on improving their
products in some way. This desire led them to use some form of product improvement
process. From the responses to the survey it was clear that there were as many processes
for product improvement as there were products. Indeed it appears to this author that
whilst FEA is a very definite process based on the unchanging laws of mechanics and that
the users only choice is which FEA package to use, the range of processes for Product and
System Optimization (PSO) is very wide, from simple Design of Experiment (DOE) and
Response Surface Analysis (RSA) through complex probabilistic methods to even more
complex mathematical programming techniques for topology optimization.

One of the questions in the survey related to whither organizations used a variety of
methods for PSO and they all responded that this was the case. Also, most the
respondents used in-house expertise and software to optimize their own products and
processes. Some also used commercially available products like Optistruct fro Altair and
BossQuatro from Samcef.

From all the comments in the survey it is clear to this author that companies want to have
internal optimization processes that suit their product and indeed it could be said that these
internal processes contribute to the success of their products. Such a competitive edge
means that they place significant value of the optimization processes and would not share
them. I conclude, partially from this that, because each product is unique to its producers,
then the tools to optimize that product or process must also be unique to that production
company. Therefore it is more important to give the company the tools to develop
algorithms and processes that best suit them than to try to develop a very general purpose
programme that suits nobody.

It is this authors opinion that the major Computational Mechanics software houses have
begun to recognise this and are making available what are generically called Application
Programming Interfaces (API) that allow the user to, in this instance, write the code they
want for their product and process in the computer language of their choice for the
hardware of their choice.

What are APIs


An API allows the software developers within any design and analysis organization to
interact with the FEA code via an external computer program. This provides the capability
to completely bypass the whole FEA pre- and post processor and the FEA analysis engine.
Thus the developer can write code to perform specialised functions that are currently not
available within the main FEA code itself.

FENET THEMATIC NETWORK


3
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
The words Application Programming Interface (API), which is now becoming a generally
understood process, can be defined as follows:

The Application is the existing commercial FEA code (including pre-


processing, post-processing and solving functionality).
The Interface is a Win32 DLL file called FEAcode.DLL. DLL stands for
Dynamic Link Library and basically is itself a computer program. However, a
DLL cannot run by itself like a program (which usually has the extension
EXE) instead, the DLL provides functions to perform specific tasks, which
can be executed by calling them from an external computer program.
Programming refers to the fact that the connection to the FEA is made via an
external computer program instead of the more common interaction between
a user and the FEA Graphical User Interface (GUI). A programmer can
develop a program that executes FEA functions by calling the functions
provided by the API.

Any computer program written, generally in a Windows supported computer language, can
utilise the FEA APIs, provided the program is configured to dynamically load Windows DLL
files and uses standard Windows calling conventions. It is possible to achieve this in
languages such as C, C++, Pascal, Delphi, Visual Basic, FORTRAN, and so on. The choice
of language used will largely depend upon the programmers experience and preference
rather than any specific performance or compatibility issues. For example, the Strand7 API
itself is written using Delphi.

In simple terms, the API allows you to incorporate the commercial FEA code within your
own programs. A list of the important activities that it is desirable of an API to do is:

Directly create new FEA model files from scratch.


Modify existing FEA model files.
Execute the FEA solvers.
Extract and process the results of a solution.

Although these functions can be performed by using the commercial FEA codes GUI
directly, and data can be transferred between the FEA code and other applications via text-
based import/export functions, copy-paste, etc, such an approach can require a significant
amount of additional data processing or repetitive, manual procedures when the same
operation is to be performed many times. The API approach provides a totally transparent
way of interacting with the FEA codes data and repetitive tasks can be easily automated.
Importantly, if the format of the FEA codes data files changes, such changes are fully
absorbed by the API so that no changes to the external programs are required to use a
more up-to-date version of FEA code or the API.

In general an APIs capability will appeal to a wide range of users including:

Third-party software developers wishing to develop applications that require


FEA for some part of the application. Typical examples might include design
software, optimisation software, or software for post-processing FEA results.
FEA users who wish to process their FEA results in ways that are currently
not supported by the FEA post-processing environment, or to automatically
generate reports in highly customised formats.

FENET THEMATIC NETWORK


4
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
FEA users who wish to create FEA models in a parametric manner or in a
manner that lends itself to automated creation via a series of steps.
FEA users who wish to exchange FEA data to and from other applications.
Users of other analysis software without pre and post processing capabilities
who wish to use the powerful features of the FEA pre and post processor but
perform their own analysis. For example, a simple FEA API program could
open a FEA data file, export the data in the format required by the other
analysis software and launch the analysis. Upon completion, the results of
the analysis could be configured as contour files for contouring within the
FEA code.
Researchers conducting research into areas that require FEA somewhere in
the process. For example, stochastic analysis of structures usually requires
the solution of a large sample of models with some statistical spread in
parameters. The API can be used to easily develop a program to run all
these solutions, collate the results and produce a report.

What can APIs do for PSO


The PSO agenda has two distinct remits, for the P=product part the optimization criteria are
often more clear and easier to describe mechanically and mathematically. Those for the
process optimization part are often much more qualitative but with some quantifiable
ingredients like time to produce a product or cost to produce. This authors research and
technical background is in the area of structural optimization I shall restrict my comments to
the product area.

In structural optimization there can still be many goals for the design-

Is the design the stiffest for the material used


Is the design the strongest for the material used
Does it have the longest life for the material used
Does it have the least mass for the desired dynamic behaviour
Does it have the least mass for the desired buckling behaviour

These goals may not be the same for each part of a complex structure such as an aircraft.
Alternatively they may all apply but to varying degrees in various locations on the structure.
It may also be the case that manufacturing constraints will be present such as machine tool
access, or radius of milling cutter.

With access to all the data for an FEA model to change or to generate and access to all the
load and constraint specification it is a simple matter to generate any perturbation to this
and study its effect. Such perturbations can be random or structured. Thus sensitivity
information for a mathematical programming optimization can be generated or single design
point data for a genetic algorithm (GA) data string or a fitness result for a Monte Carlo
reliability study generated.

Some simple examples


Example 1 ----- Thin plate cantilever, in-plane bending due to tip load

FENET THEMATIC NETWORK


5
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
In this example the API code has been instructed only to change the thickness of the plate
elements that constitute a cantilever beam. Because the bending moment is linear, then if
only the plate thickness can vary but the depth is constant, then the theoretical solution is a
cantilever of linearly varying thickness. The API code looks at the sensitivity of each
element property to a small change in its thickness and its effect on the total strain energy
of the structure (dU/dt). These sensitivities have their mean and standard deviation
calculated and a change in thickness of every element is accorded in proportion to the
sensitive range. The maximum sensitivity get the maximum change and the minimum
sensitivity gets the minimum change. It is an easy task in the API code to define the range
of max to min percent change prior to compiling the code. This paper makes the argument
that it is a lot easier to change the source code according to the local demands upon the
optimization than to code in every possible combination according to the specific needs of
an individual industry or company.

Figure 1 below, charts the progress of the optimization in two ways, firstly the specific strain
energy (strain energy times volume divided by initial value) is charted relative to the initial
design value. A descending chart, as is the case in Figure 1 shows that either the strain
energy is descending (ie. Stiffness increasing) for a constant volume, or the volume is
descending for the same strain energy or it is a combination of both these desirable
outcomes. The API code could be instructed to control either extreme of tale the mid path.
Regardless the design is better as can be clearly seen in Figure 1. Secondly the mean
sensitivity and the standard deviation of all sensitivities is also shown in Figure 1. As the
optimum beam shape is approached the mean value becomes constant and the standard
deviation becomes zero. This indicates two things; the design is less sensitive to thickness
changes in any component and that there is no point in changing one thickness because it
will only increase the standard deviation which will take the design away from the optimum.
This could be called a robust design situation. Also the mean sensitivity going to its lowest
value also indicated that the design achieved is least sensitive to any design change. In
other words the effect of a thickness change in any element has the lowest effect on the
stiffness.

Figure 1 ::: Stiffness based structural optimization of cantilever plate with variable plate thickness.

FENET THEMATIC NETWORK


6
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
Figure 2 ::: Plate thickness optimization fro cantilever, linear variation in thickness discernable.

Figure 2 simply shows the in-plane loaded cantilever after the optimization run and the
linear variation is thickness can be seen.

Example 2 ----- Thin plate cantilever, out-of-plane bending due to tip load

This is the same model as Example 1 but now with out-of-plane tip loading. Figure 3 below
charts the progress of the optimization

FENET THEMATIC NETWORK


7
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
Figure 3 ::: Stiffness based structural optimization of cantilever plate with variable plate thickness,
out-of-plane tip load.
From Figure 3 it is seen that again the specific strain energy plateaus as does the mean
sensitivity whilst the standard deviation of the sensitivities goes to zero. This is all very
much as expected. Figure 4 below shows the optimized thickness beam in the bent
position. A plot of the middle thicknesses fits over the theoretical parabolic profile for the
beam.

Figure 4 ::: Plate thickness optimization for cantilever, quadratic variation in thickness discernable.

FENET THEMATIC NETWORK


8
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
Example 3 ----- Storage container with internal hydrostatic load stacking load.

A third example of thickness optimization involves a polythene injected moulded storage


container. It has an 800mm square base with diagonal stiffening, and is 700mm high with
grid stiffening. The initial thickness of all material is 10mm. For this initial design the
distorted view of of the container is shown in Figure 5 below. There is loading due to
water up to the hand grips, plus a rim loading due to stacking two identical and full
containers above.

Figure 5 shows that despite the stiffening the predominant distortions are bulging of the
sides and the base. Figure 6 shows the path of the evolving improved design and it can be
seen that the strain energy is decreasing as are the sensitivities. At a specific strain energy
of about 0.25 the iterations are stopped and the structural shape is reproduced in Figure 7.

Figure 5 ::: Plate thickness optimization for polythene storage container, initial design with all
thickness of 10mm.

FENET THEMATIC NETWORK


9
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
Figure 6 ::: Plate thickness optimization for storage contained showing stabilization of mean
sensitivity and ongoing improvement in performance.

From Figure 7 it is seen that this optimization process has not gone in the desired direction
and that to achieve reduced strain energy the side wall of the container has been gradually
increased to over 30mm. As is well known, for bending, the benefits of simple increasing
thickness are cubed and therefore this outcome is understandable. The contained is
heavier but a lot stiffer.

In the authors opinion a better sensitivity on which to base the increase or decrease of plate
thickness would be the change in energy for the change in the volume of the material of
plate type j, ie (dU/dV j). This has yet to be explored. Also to have a buckling constraint
might also add to the fidelity of the optimized design It would also be simple to have a lot
more stiffeners in the original design and have any un-needed ones diminish to zero
thickness. Mush can be done to tune the API code to suit a particular design

FENET THEMATIC NETWORK


10
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
Figure 7 ::: Plate thickness optimization for cantilever, quadratic variation in thickness discernable.

Example 4 ------ 2D Topology Optimization

Since 1992 the author has published a series of papers which demonstrate the simplicity of
evolutionary structural topology optimization. The following example is the result of a few
hours of coding and then model construction and then a few minutes of processor time on
the current breed of laptop computers with processor speeds in the range of 1 to 2 GHz.
The example is the standard benchmarking situation of the 2D Michell truss on fixed
supports. Figure 8 below shows the final topology and can be seen to be quite fine in
detail. This has been achieved using two levels on mesh refinement that with the API
software in a simple matter of stopping the evolution at a certain volume ratio, say 40% of
original, deleting the eliminated elements and then doing a global refinement. Then the API
is run again and the stopping, elimination, refinement undertaken again. The resulting
topology after 10 minutes of effort is shown in Figure 8 below. This is followed by Figure 9
that shows the refinement stages fro one symmetric half of the solution domain.

FENET THEMATIC NETWORK


11
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
Figure 8 ::: 2D topology optimization of Michell like truss structure on fixed supports with central
load.

Figure 9 :::: Underlying meshes that have been eliminated during the adaptive ESO process using the API
code.

The topology in Figure 8 has all the correct characteristics for the Michell truss and passes
the benchmark tests applied to it.

The following few lines of Pascal coding are the core of the API code. The rest of the code
is basic book-keeping of opening the STRAND7 files, examining the stress results, deciding
to eliminate an element then resolving and going round again. A few illustrative lines of the
code are shown below to demonstrate the simplicity of the ESO algorithm and the use of
APIs do generate problem and product specific code.

FENET THEMATIC NETWORK


12
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME
NumRemoved:=0;
for i:=1 to PlateTotal do begin
//Get Plate Prop Number
St7GetElementProperty(1,tyPLATE,i,PropNum);
if PropNum <> 1 then begin (Plate Prop=1=not there)
//Get Plate Von Mises Stress

St7GetPlateResult(1,rtPlateStress,stCOMBINED,i,1,AtCent
roid,ipPlateMidPlane,NumPoints,NumColumns,PlateRes);
reject:=RR*maxval;
if PlateRes[3]<Reject then begin (PlateRes[3]=Von Mises)
St7CloseResultFile(1);
St7SetElementProperty(1,tyPLATE,i,1);
//ModelDetails.Lines.Add(Format('Following Plate
removed %4d',[i]));
NumRemoved:=NumRemoved+1;
end;
end;

This code may be simple to read or otherwise. It simply looks at an elements Von Mises
stress, determines that it is less than the current Rejection Ratio and then switches its
property to 1, which means its material modulus is 0.000001 times that of the desired
material.

This is just one simple illustration of APIs applied in the area of topology optimization,
because the user has control of the source code then a large variety of adaptations can be
applied, such as non-design regions, nibbling from edge only to give shape optimization
and so on.

Concluding Remarks

This brief manuscript has endeavoured to show how an engineer can develop code in
whatever language (Visual Basic / C / Pascal / Fortan) to achieve the local goals of the
organization in terms of its product and system optimization. These gaols fro improved
products are very localized and so are difficult for a general purpose code to encompass.
Even more importantly if the company need to change to capabilities of the PSO code then
the API environment makes this a very easy task and there is not danger of legacy code
since updating API is easy as is adding new capabilities. The FEA code developer totally
is responsible for the DLL models that link to the FEA executable and therefore any API
code will remain fixed through whatever version changes occur with the FEA code.

In the work of this paper the STRAND7 FEA code from G+D Computing (STRAND7.com)
has been used and the API environment and all DLL linking code are supplied as part of the
STRAND7 environment.

Thus to this author the use of API environments overcomes many of the difficulties with
large general purpose optimization codes as it give the power and control to the local
company not a remote developer.

FENET THEMATIC NETWORK


13
COMPETITIVE AND SUSTAINABLE GROWTH
(GROWTH) PROGRAMME

Anda mungkin juga menyukai