Optimierung Mittels Genetischen Algorythmen

Embed Size (px)

Citation preview

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    1/10

    CAD-FEM Users Meeting Schweiz 2000

    Structural Optimization Tool using Genetic Algorithms and Ansys

    Roman Gatzi Marion Uebersax Oliver Konig

    June 2000

    Abstract

    When it comes to solving nonconvex, discontin-

    uous, or discrete problems in Structural Opti-mization (e.g. maximizing first eigenfrequencyof a structure), the use of computationally ex-pensive Genetic Algorithms (GAs) gets inter-esting. GAs are stochastic optimization algo-rithms based on natural selection and genet-ics. In contrast to traditional gradient-basedmethods, GAs work on populations of solutionswhich evolve typically over hundreds of genera-tions. A tool is presented, which applies GAsto solve typical problems in structural optimiza-

    tion, integrating ANSYS on a UPF (User Pro-grammable Features) level to evaluate the objec-tive function (fitness values of GA individuals).To overcome efficiency limits, the method is im-plemented for parallel evaluations on a worksta-tion cluster. The performance of the softwaretool is shown by two real world applications, thefrequency optimization of a complex machine-tool frame and the weight minimization of a fuelcell plate.

    1 Introduction

    In the past, the intuition and experience of engi-neers played the key role in designing structures.Recent years have seen the development of nu-merical tools, which provide conceptual designsfor a given design space and specified boundaryconditions. The aim of these tools is to supportthe intuition and the experience of an engineer.

    Structural Analysis Group, Alusuisse Road & Rail

    AG, Buckhauserstr. 11, CH-8048 ZurichCenter of Structure Technologies, Institute of Me-

    chanical Systems, CLA E18, ETH Zentrum, CH-8092

    Zurich

    Most of this tools are based on gradient meth-ods, which work well and very efficient for contin-uous and convex objective functions as e.g. com-

    pliance minimization. An example for a highlyefficient gradient based method is the topologyoptimization method using homogenization in-troduced by Bendse and Kikuchi [2], as it isimplemented in ANSYS.

    The motivation to develop the presented Ge-netic Algorithm (GA) based tool in the opti-mization group at the Institute of MechanicalSystems (IMES@ETHZ), comes from the ongo-ing PhD project of Marion Uebersax [8]. Shedevelops methods to optimize the dynamic be-

    haviour of machine tools. There it is interest-ing to compare the efficient but sensible gradi-ent based methods with a more robust GeneticAlgorithm based approach. Another motivationlays in the diploma thesis of Oliver Konig [6]where a Genetic Algorithm tool was developedto optimize multi-material structures. This GAprocedure used an own FE code to evaluate theobjective functions.

    These two projects led to the diploma thesis of

    Roman Gatzi [3] with the goal to extend the ex-isting GA procedure to a general purpose Struc-tural Optimization tool as it is presented in thispaper. To be able to easily adapt the tool for allkind of Structural Optimization problems, AN-SYS is integrated to evaluate the objective func-tions.

    The paper is organized as follows. In Section 2the basic concepts of Genetic Algorithms areoutlined by a simple example and it is shownhow they can be used in Structural Optimiza-

    tion. Section 3 describes the optimization tooldeveloped, focused on the integration of ANSYSinto the GA procedure. The performance of the

    1

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    2/10

    algorithms is shown in Section 4 and 5, wheretwo real world structures are optimized for com-pletely different objectives.

    2 Genetic Algorithms

    Genetic Algorithms can be described as searchalgorithms based on the mechanics of natural se-lection and natural genetics. They belong to acategory of stochastic search methods, with anadditional strength that randomized search isconducted in those regions of the design spacewhich offer the most significant potential for

    gain. The primary references on the topic areHollands Adaption in Natural and ArtificialSystems (referenced in [4]) and the book fromGoldberg [4]. With focus to structural optimiza-tion, the paper [5] by Hajela gives a good intro-duction.

    GAs are not severely limited by discontinuousdesign spaces like techniques derived from math-ematical programming principles. On the otherside there is usually a stiff computational require-ment associated with the use of GAs. There-

    fore genetic algorithms represent a good solu-tion approach for design problems where stan-dard mathematical programming techniques areinefficient. The main advantages of GAs can beformulated as follows:

    GAs do not require function derivatives.

    GAs proceed from several points in the de-sign space, this makes it more likely to findglobal optima.

    GAs work on a coding of the design vari-ables. This allows them to work in designspaces consisting of a mix of continuous, dis-crete, and integer variables.

    2.1 The Concept of

    Genetic Algorithms

    The concept of GAs is introduced in this sec-tion. The explanations are closely related to thebook of D. Goldberg and therefore referencedonly once [4]. The Genetic Algorithm is step

    by step applied to the following example:

    Maximize f(x) = x2, x [0, 31] (1)

    Coding. The first step in solving an optimiza-tion problem with genetic algorithms is the cod-ing of the design variables. The design variables

    need to be coded as a finite-length string overa finite alphabet. For the example above, x iscoded as a binary unsigned integer of length 5.It can thus take on numbers between 0 (00000)and 31 (11111).

    Initialization. Since genetic algorithms do notstart only from a single point in the design space,but from a population, the initial set has to becreated at random. Table 1 reflects the fitnessfunction (objective function) evaluated for each

    chromosome (each string), with a population size4 (strings 1 to 4).

    Str. Initial Fitness CountNo. Pop. x f(x) pselect

    1 01101 13 169 0.14 12 11000 24 576 0.49 23 01000 8 64 0.05 04 10011 19 361 0.31 1

    Total 1170 1.00 4

    Table 1: Sample Problem: Initial Population andReproduction

    Reproduction. Reproduction is the first GAoperator to apply to the population. It is a pro-cess in which individual strings are copied ac-cording to their fitness function values. Thismeans strings with a higher value have a higherprobability of contributing one or more offspringin the next generation. A simple way to imple-ment this operator is the weighted roulette wheel

    method. The offsprings are allocated a value us-ing a roulette wheel with slots sized accordingto the percentage of fitness. For example string1 is given 14.4 % of the roulette wheel. All theoffsprings can be generated with a simple spinof the wheel. Once a string has been selectedfor reproduction, an exact replica of the string ismade. This string is then entered into a matingpool, a tentative new population, to be used bythe next genetic operator. See tables 1 and 2 forthe sample problem.

    Crossover. After reproduction, simplecrossover proceeds in two steps. First, members

    2

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    3/10

    of the newly reproduced strings in the matingpool are mated at random. Second, each pair ofstrings undergoes crossover as follows: an integer

    position k along the string is selected uniformlyat random between 1 and l 1, where l is thestring length. Two new strings are created byswapping all characters between position k + 1and l inclusively. For example consider string 1and 2 from the mating pool in Table 2 for k = 4:

    A1 = 0110|1 = A1 = 01100

    A2 = 1100|0 = A2 = 11001 (2)

    Table 2 shows the new population and its fitness

    values after crossover.Pool Mate/

    Str. after X-over New FitnessNo. Repr. Site Pop. x f(x)

    1 0110|1 2/4 01100 12 1442 1100|0 1/4 11001 25 6253 11|000 4/2 11011 27 7294 10|011 3/2 10000 16 256

    Table 2: Sample Problem Crossover and NewFitness Values

    Mutation. Mutation is the last operator for asimple genetic algorithm. Mutation is the occa-sional random alteration of the value of a stringposition. For binary strings this simply meanschanging a 1 to 0 or inverse. For the sampleproblem the probability of mutation is assumedto be 0.001. With 20 transferred bit positionsthere should be 20 0.001 = 0.02 bits to un-dergo mutation during a given generation. Thisindicates that no bits undergo mutation for this

    probability value.

    The mutation operator finishes one cycle of a ge-netic algorithm. For the sample problem the newgeneration can be found in Table 2. The processstarts again by evaluating the fitness values foreach chromosome. Notice how both average andmaximal performance improved in the new pop-ulation.

    In the following some additional GA featureswhich are used in the project are briefly intro-

    duced: Elitist Strategy. This strategy ensures that

    the best individuals stay in the population.

    Overlapping Populations. The pool of indi-viduals before reproduction consists of a GAwith overlapping populations in the previ-ous population and a specific amount of new

    individuals. The worst individuals of theentire pool are removed in order to returnthe population to its original size. Sinceonly part of the population is generated, thisstrategy saves computation time.

    2.2 Parameters in Genetic Search

    The initiation of genetic search requires specifi-cation of some key parameters:

    Population Size: popsize. The number of

    strings processed in each generation. Typ-ical size for structural optimization prob-lems: 25 125.

    Number of Generations: ngen. Usually avalue in the hundreds is needed to make surethat the solution has time to converge.

    Crossover Probability: pcross. Values rang-ing from 0.6 to 0.9 have been used in nu-merical experiments with very satisfactoryresults.

    Mutation Probability: pmut. Probability

    values between 0.005 and 0.05 produce ingeneral good results.

    Overlapping Gap: prepl. The overlap pa-rameter specifies how many percent of thepopulation is created new for each genera-tion. A typical value is 0.5.

    2.3 Using Genetic Algorithms in

    Structural Optimization

    To apply Genetic Algorithms to Structural Op-

    timization problems two main aspects have to beconsidered.

    Discretization and Coding of the Design

    Variables. Any kind of chromosome used as arepresentation of the design variables in GAs isdiscrete. Therefore, the design variables have tobe discretized and a mapping from the designdomain to a chromosome has to be defined.

    Example: If plate thicknesses of a sheet metalstructure shall be optimized, the design variables

    would be a discrete set of thicknesses (probablyrepresented by real constant sets in a FE model).An individual of the GA would then consist of

    3

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    4/10

    a string of integer numbers, where each integervalue denotes a certain sheet thickness.

    Evaluating the Fitness Function. A GAneeds a function which determines the fitness ofeach individual in a population. In a structuraloptimization this function often includes a Fi-nite Element Analysis. For a typical GA evalu-ation, the fitness has to be computed for thou-sands of individuals. Therefore it is imperativethat the FE evaluations have to be fast and wellintegrated in the GA environment.

    For the example of the sheet metal structure, atypical objective would be to maximize stiffness

    of the structure subject to a given weight.

    3 Optimization Tool

    The structural optimization tool developed inthis project is based on the parallel Genetic Al-gorithm library PGAPack by David Levine (Ar-gonne National Laboratory). It provides all theneeded GA functionalities and allows to run theoptimization in a parallel master-slave process

    on a workstation-cluster. The FEA package AN-SYS is used to evaluate fitness functions of theGA as well as for pre- and postprocessing of theFE models.

    Figure 1 shows the detailed optimization pro-cedure, without parallelization.

    As the flow chart already indicates, the mainchallenge in making this optimization tool workwas to set up all the connections between GA,ANSYS and parallel evaluations. In the follow-

    ing important aspects of this work are described.

    3.1 Parallel Evaluation of the Fitness

    Function

    A typical GA run needs thousands of fitness eval-uations, which include in this project always aFE evaluation of the structure to be optimized.This fact makes it very interesting to use the par-allel capabilities of the PGA library. Using theMPI library (Message Passing Inteface) it allows

    to distribute the fitness evaluations and there-fore the FE-evaluations on a workstation cluster.The parallelization is implemented in a master-

    Figure 1: GA Procedure Using ANSYS for Fit-ness Evaluation

    slave hierarchy. The master process controls theGA and distributes the individuals of each gen-eration to different slave machines to evaluate

    their fitness values.

    3.2 Fitness Evaluations Using ANSYS

    ANSYS was chosen to evaluate the fitness func-tions of the individuals (structures) because ofthe following reasons.

    ANSYS as Subroutine. ANSYS allows it tobe included as a subroutine in a Fortran pro-gram like the PGA main program.

    Flexibility. The use of ANSYS to evaluatefitness functions allows to optimize for everyobjective ANSYS can evaluate. This makesthe optimization tool very powerful.

    4

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    5/10

    Pre- and Postprocessing. ANSYS providescomfortable Pre- and Postprocessors whichallow to easily create the discrete optimiza-tion models and display the optimization re-

    sults.

    ANSYS as Subroutine. In the following themain concepts of using ANSYS in a Fortran pro-gram are described. ANSYS can be called in aFortran program as shown by the following codefragments. In addition it is shown how to readin the optimization model stored in a traditionalANSYS input file.

    c Include ANSYS Defs

    #include "ansysdef.inc"

    #include "impcom.inc"

    ...

    c Initialization of ANSYS

    cmd = START_OF_USER

    where = mainan(cmd)

    ...

    c Read input file of the

    c optimization model and pass it to ANSYS

    10 open(4, file=optmodel.inp)

    read(4, (a), end=999) cmd

    where = mainan(cmd)

    go to 10

    999 continue

    close(4)

    Communicating between ANSYS and For-

    tran programs. Once ANSYS is initializedthere are mainly two ways to exchange data andcommands between ANSYS and the Fortran-GA program. One can issue standard APDLcommands (Ansys Parametric Design Language)as shown in the next code fragment where thedatabase is saved.

    cmd = SAVE,BEST_INDIVIDS,db

    where = mainan(cmd)

    The other possibility is to directly issue UPFcommands (User Programmable Features) inFortran. This native ANSYS interface allowsfaster access to the ANSYS database. The fol-lowing line shows how pressure can be appliedon element faces.

    call eprput(elem,face,8,pres)

    Compilation. To finally compile the main op-timization program, the Makefile ANSCUSTOMhas to be modified in order to link all necessary

    libraries from PGA and MPI. With the createdexecutable the master process of the GA opti-mization can be started. The master then starts

    all the slave processes on the specified worksta-tion cluster.

    4 Eigenfrequency Optimization

    of a Machine Tool

    One of our current projects, at the center of tech-nologies of the ETH Zurich, is the developmentof methods to optimize the dynamic behavior ofmachine tools [8]. The Figure 2 shows a machine

    tool of the company MIKRON Agno which mustbe optimized in order to maximize its fundamen-tal frequency. The response of a structure to dy-namic loading depends on the eigenfrequencies ofthe structure. Excessive vibrations occur whenthe frequency of the dynamic loading is too closeto one of the eigenfrequencies of the structure.The problem is significant for machine tools be-cause the vibrations influence the accuracy andthe surface quality of the product. They alsodecrease the lifetime of the machine and of the

    cutting tools. They also affect the productivityand the operator comfort. In this section we de-scribe the use of genetic algorithms to maximizethe fundamental frequency of a complex struc-ture.

    Figure 2: Machine Tool MIKRON

    4.1 Problem Description

    Objective and Constraints. The objectivefunction is to maximize the fundamental fre-quency of the structure by varying the thickness

    5

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    6/10

    of the shell elements. The optimization is sub-ject to a weight constraint: The new structureshould not be heavier than the original one.

    Maximize : f1(tel) (3)

    Subjectto : w wo (4)

    Discrete Design Space. The model shown onthe Figure 3 is used as start design for the geneticalgorithm. This topology design was the resultof a previous optimization procedure [9].

    Figure 3: Discretization of the structure

    The rotationally symmetric structure is dis-

    cretized with approximately 5200 elements. Theframe of the machine is modeled with 5032 2D-Shell elements. Additionally, 32 mass elementsof 250 kg fixed on the structure with 128 1D-rigid elements are used to represent the process-ing units. We used a rather coarse mesh in orderto reduce the time required per evaluation. Forthe boundary conditions, the machine is fixed atthe bottom where neither translation nor rota-tion of the knots is allowed. The steel machineis 2500 mm high and has a diameter of 3125 mm.

    4.2 GA Coding and Fitness Function

    Coding of the Design Variables. Due tothe symmetry of the machine, only one 16th ofthe structure is used as design space. This halfsector is divided into 78 zones defining the de-sign variables. Instead of modifying each ele-ment, the GA only changes the thickness of thesezones. The genetic algorithm can choose the op-timal thickness between 50%, 75%, 100%, 125%

    or 150% of original one. Each design variablecan then take five different values, representingthese ratio. An integer string with 78 alleles is

    used to code the set of design variables of theGA. The number of possible solutions can thenbe determined with:

    Nsolutions = 578 3.3 1054 (5)

    Fitness Function. The objective function de-fined above has to be translated into a fitnessfunction including the objective and the weightconstraints. For the formulation of the uncon-strained fitness function (6), the fundamentalfrequency is normalized in order to scale themaximum fitness value to 1000. In order to re-spect the weight constraint, the penalty function

    (7) is defined which is only active when the con-straint is violated. This results in the final fitnessfunction given by the expression (8).

    score =f1

    scorenorm(6)

    penalty =

    (wwo)

    wofor w wo

    0 for w < wo(7)

    F = (1penalty) score (8)

    4.3 Results

    The fundamental frequency of the optimized ma-chine is 73 % higher that of the initial structure.Additionally, the total weight decreases to 4.5tons, resulting in a structure 22 % lighter. Thefigure 4 shows the evolution of the fitness of thebest variant as well as the average value of apopulation during the optimization.

    Figure 4: Evolution of the fundamental fre-quency

    The figure 5 shows the relative element thicknesschanges compared to the initial structure, wherered means a change of +50 % and blue a change

    6

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    7/10

    of50 %. This shows the tendency to concen-trate the mass at the bottom of the structure,and to make the top lighter.

    Figure 5: Relative Thickness Modification of the

    Shell

    4.4 Discussion

    The problem optimized in this work is to be con-sidered as an academic example and was doneto test the new developed optimization method.The results cannot be directly used for the in-dustrial applications since the stiffness is not in-cluded in the fitness function. This will be con-sidered in future work by extending the methodto multi-objective problems.

    5 Weight Minimization of a

    Fuel Cell End Plate

    In this section the performance of the developedoptimization tool is shown by a second applica-tion. The weight of an end plate of a fuel cellstack is minimized.

    The work was initiated by Martin Ruge who isinvolved in a project [7] to develop fuel cell stacksto power automotive vehicles. Figure 6 shows thegeneral setup of such a fuel cell stack. A stackconsists of 125 bipolar plates (dark brown) totransport and distribute all the different fluids.2 end plates (brown) and 8 bolts hold the struc-ture together and guarantee a constant pressuredistribution on the bipolar plates.

    5.1 Problem Description

    Objective and Constraints. The weight ofsuch an end plate is minimized subject to a

    Figure 6: Assembly of a Fuel Cell Stack

    stress constraint and a manufacturing constraint(plate is produced by milling). This objective isimportant to increase the power density (powerper weight) of a fuel cell stack. In a secondoptimization procedure (described in [1]), thebottom surface of the weight minimized struc-ture can independently be modified to guaranteeconstant pressure distribution on the fuel cells.

    Discrete Design Space. A quarter model ofthe design space has been modeled in ANSYS,using SOLID95 elements. This is shown in Fig-ure 7, with grey non-design elements (minimumthickness of the plate), red elements for the boltareas and orange elements for the design spacewhich can be modified. The coarse mesh waschosen to keep computation times in affordablelimits.

    Figure 7: Discrete Design Space of a QuarterModel

    Boundary Conditions. The end plates areloaded on the bottom surface by the specified

    7

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    8/10

    pressure of the fuel cells. The reaction forces,hold through the 8 bolts, are also applied aspressures on the bolt contact faces. This ensures

    an equal distribution of the forces on both boltsand does not restrict the rotation of the boltareas. In addition, symmetry conditions areapplied and one single node of the design spaceis fixed to locate the model in space.

    Material. Due to cost considerations, the endplates are built in aluminum. This leads with asafety factor of SF = 1.5, to a stress constraintof max 280

    Nmm2

    .

    5.2 GA Coding and Fitness Function

    After modeling the FE-model in ANSYS, thenext step is to build the optimization model forthe Genetic Algorithm. This includes the codingof the design variables and the implementationof a fitness function.

    Coding of the Design Variables. In order toautomatically introduce the manufacturing con-straint, an integer string is chosen to represent

    the element height. This means that an integervalue, which can take the values from 0 to 5, rep-resents the thickness of each element tower inthe design space.

    For the value 0 only the grey element is active,while the value 5 represents all 6 elements overthe height.

    There are 325 element towers in the designspace (orange). In addition the two hollow cylin-ders around the bolts are allowed to vary as well,adding two design variables to the set. This

    means that an integer string of length 327 repre-sents the set of design variables or an individualof the GA. The number of possible solutions canthen be determined with:

    Nsolutions = 6327 10254 (9)

    The largeness of this number explains the effortswhich were put into keeping the mesh coarseand evaluating the GA in parallel!

    The Fitness Function. Genetic Algorithmsrequire that for each design one single value canbe determined which describes the fitness of that

    particular solution. This fitness value F is de-fined as a weighted combination from the objec-tive weight minimization and the constraint on

    the maximal allowable stress:

    F = c1 Vactive + c2 Vstress2high

    where

    Vactive = Volume of the actual solution

    Vstress2high = Volume of elements with

    mises 280 N/mm2

    c1, c2 = Constants (10)

    The value of c1 is chosen such that if

    Vstress2high = 0, F represents the active vol-ume in percent of the design space volume.The constant c2 was adjusted that way, that arelatively small overstressed volume significantlyincreases the fitness value.

    5.3 Results of Numerical Optimiza-

    tion

    The GA optimization tool is run for 1500 gener-ations with a population size of 100 on 17 DEC

    Alpha workstations. This corresponds with app.75000 ANSYS FE-evaluations and takes about8 h. Figure 8 shows the best individual everfound for the above configuration. The stressconstraint for this design is fully observed. Onecan see that a rib topology has evolved, over-layed by the stochastic variations of the GeneticAlgorithms.

    Figure 8: Resulting Design of GA optimization

    8

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    9/10

    5.4 Interpretation and Final Design

    Following the traditional steps of using struc-tural optimization in product development, theLEGO like result has to be transformed backto CAD. The interpretation was done by J orgEvertz from TRIBECRAFT AG and resulted inthe rib-structure shown in Figures 9 and 10.

    The new design of the fuel cell end plate resultsin a weight saving of about 30% by a loadincrease of 80% compared to the plate whichhas been used up to now.

    Figure 9: Possible Interpretation of theOptimization Results by Jorg Evertz(TRIBECRAFT AG)

    Figure 10: Design of the Optimized End Plateby Jorg Evertz (TRIBECRAFT AG)

    6 Conclusion

    This paper has presented a tool developed tooptimize structures for a large range of objec-tives. The optimization method uses genetic al-

    gorithms which can be described as stochasticsearch algorithms, based on the mechanics ofnatural selection and natural genetics.

    ANSYS is integrated in this tool and is used assolver. This provides flexibility since it is so pos-sible to optimize any objective function that AN-

    SYS can evaluate. However, this work showedthat the integration of ANSYS in other programsresults in a relatively difficult handling.

    In order to reduce the processing time, thistool was implemented with MPI (Message Pass-ing Interface), which allows to evaluate the struc-tures in a workstation-cluster.

    The performance of the algorithms and of thetool is shown in two real world applicationswhere structures are optimized for completelydifferent objectives. The use of parallel evalu-

    ation reduces considerably the time needed forstructural optimization based on genetic algo-rithms. However, the size of the design spaceis still a limitating factor for the complexity ofthe structure which could be optimized .

    Further investigations should be done to al-low multi-objective optimization of mechanicalstructures and to keep on reducing the time forprocessing the evaluation.

    9

  • 7/31/2019 Optimierung Mittels Genetischen Algorythmen

    10/10

    References

    [1] Stefan Camenzind and Matthias Gunthart. Entwickeln einer elastisch verformbaren Endplatte

    fur Brennstoffzellenstapel. Term project, Lightweight Structures and Ropeways,ETH Zurich,1999.

    [2] Martin P. Bendse. Optimization of Structural Topology, Shape and Material. Springer-Verlag,1995.

    [3] Roman Gatzi. A method to optimize modal frequencies using genetic algorithms. Diplomathesis, Institute of Mechanical Systems, ETH Zurich / Clemson University, 2000.

    [4] David E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning.Addison-Wesley Publishing Company, Inc., 1989.

    [5] Prabhat Hajela. Stochastic search in structural optimization: Genetic algorithms and simulatedannealing. In Structural Optimization: Status and Promise, volume 150, pages 611637. Progressin Astronautics and Aeronautics, 1992.

    [6] Oliver Konig. Application of genetic algorithms in the design of multimaterial structures man-ufactured in rapid prototyping. Diploma thesis, Institute of Mechanical Systems, ETH Zurich,(exchange program at Clemson University, SC), 1999.

    [7] Martin Ruge et al. Fuel cell project. Paul Scherrer Institut and Institute of Mechanical Systemsat the ETH Zurich, http://www.psi.ch/fuelcell .

    [8] Marion Uebersax. Methods to optimize the dynamic behaviour of machine tools. OngoingDissertation at the Institute of Mechanical Systems, ETH Zurich.

    [9] Marion Uebersax. Heuristic optimization to improve the dynamic behaviour of the new mikronmachine tool pgii. Technical report, Task of the Research Project (CTI No. 3673.1) of theInstitute of Mechanical Systems (ETH Zurich) with the industrial partner Mikron AG, 1998.

    10