Weltweit waren 1997 über 480 Millionen Autos in Betrieb, mit stark steigender Tendenz. Angesichts des Trends zu immer üppiger ausgestatteten und dadurch schwereren Fahrzeugen auf der einen Seite und der Problematik der Ressourcenknappheit und des Umweltschutzes andererseits scheint eine Gewichtsreduktion dringend geboten. Die Fahrzeugkarosserie besitzt den größten Einfluss auf die Sicherheit der Insassen und hat mit 25%-30% (ohne Glas und Stoßfänger) den größten Anteil am Gesamtgewicht eines Automobils. Sie ist daher ein lohnendes Ziel um sowohl Steifigkeit als auch Gewicht zu optimieren.
Evolutionäre Algorithmen simulieren das Prinzip der Evolution (Weitergabe des Erbguts über Generationen, Mutation, Selektion etc.) und sind gut geeignet, komplexe mehrdimensionale Probleme zu lösen bzw. eine hinreichend gute Lösung zu ermitteln. Im Falle von mehreren berücksichtigten Zielgrößen gibt es in den seltensten Fällen eine Lösung, die alle Repräsentationen in allen Kriterien dominiert. Stattdessen existieren meistens mehrere Pareto-optimale Lösungen, unter denen der Benutzer anhängig von seinen Präferenzen eine Entscheidung trifft. Im Rahmen dieses Praktikums soll nun überprüft werden, inwieweit dieser Lösungsansatz auf Konstruktionsprobleme des Automobilbaus angewendet werden kann und ob dieses Verfahren Vorteile gegenüber den "klassischen" Konstruktionsmethoden aufweist.
Inhaltsverzeichnis
Abbildungsverzeichnis
Tabellenverzeichnis
1. Einleitung
1.1 Zielsetzung
1.2 Überblick
1.3 Grundlagen der Evolutionären Algorithmen
1.4 Grundlagen der Finite-Elemente-Methode (FEM)
2. Verwendete Komponenten
2.1 Modellbildung mit GiD 7.2
2.2 Bewertung mit Impact 0.5.2b
2.3 Evolvierung mit ECJ 12
2.4 Eigene Komponenten
2.5 Veränderte Impact-Komponenten
3. Durchgeführte Experimente
3.1 Genetischer Algorithmus mit direkter Repräsentation
3.2 Genetischer Algorithmus mit Polynomrepräsentation
3.3 Evolutionsstrategie mit Spiegelung
3.4 Evolutionsstrategie mit Spline-Interpolation
3.5 Evolutionsstrategie mit gewölbtem Werkstück
3.6 Evolutionsstrategie mit Mutationsschrittweitenregulierung
3.7 Alternative Materialien
3.8 Mehrzieloptimierung
4. Fazit
4.1 Zusammenfassung der Ergebnisse
4.2 Ausblick
Literaturverzeichnis
Abbildungsverzeichnis
Abbildung 1: Prototyp des Versuchsbleches
Abbildung 2: Spannungs-Dehnungs-Diagramm
Abbildung 3a: Entwicklung der Fitness bei Genetischem Algorithmus
Abbildung 3b: Repräsentationen der besten Individuen bei Gen. Algorithmus
Abbildung 4a: Entwicklung der Fitness bei Evolutionsstrategien
Abbildung 4b: Repräsentationen der besten Individuen bei Evolutionsstrategien
Abbildung 5a: Entwicklung der Fitness bei Wölbung
Abbildung 5b: Repräsentationen der besten Individuen bei Wölbung
Abbildung 6a: Entwicklung der Fitness bei Mutationsschrittweitenregulierung
Abbildung 6b: Repräsentationen der besten Individuen bei MSR
Abbildung 7: Entwicklung der Mutationsschrittweiten
Abbildung 8a: Entwicklung der Fitness bei Aluminium
Abbildung 8b: Repräsentationen der besten Individuen bei Aluminium
Abbildung 9: Repräsentationen ausgew. Individuen bei Mehrzieloptimierung
Abbildung 10: Pareto-Rand bei Mehrzieloptimierung
Tabellenverzeichnis
Tabelle 1: Ergebnis-Tabelle der Evolutionsstrategien
Tabelle 2: Ergebnis-Tabelle der restlichen Versuche
1. Einleitung
1.1 Zielsetzung
Weltweit waren 1997 über 480 Millionen Autos in Betrieb, mit stark steigender Tendenz (ANSELM (1997), S. 19). Angesichts des Trends zu immer üppiger ausgestatteten und dadurch schwereren Fahrzeugen auf der einen Seite und der Problematik der Ressourcenknappheit und des Umweltschutzes andererseits scheint eine Gewichtsreduktion dringend geboten. Die Fahrzeugkarosserie besitzt den größten Einfluss auf die Sicherheit der Insassen und hat mit 25%-30% (ohne Glas und Stoßfänger) den größten Anteil am Gesamtgewicht eines Automobils (ebd., S. 151). Sie ist daher ein lohnendes Ziel um sowohl Steifigkeit als auch Gewicht zu optimieren. Nach ANSELM (1997, S. 147) ist eine Gewichtsreduktion um 10% bei Anwendung von „Wachstumssimulationen“ möglich, jedoch ist nicht ganz klar, ob er sich hierbei konkret auf Evolutionäre Algorithmen bezieht.
Evolutionäre Algorithmen simulieren das Prinzip der Evolution (Weitergabe des Erbguts über Generationen, Mutation, Selektion etc.) und sind gut geeignet, komplexe mehrdimensionale Probleme zu lösen bzw. eine hinreichend gute Lösung zu ermitteln. Im Falle von mehreren berücksichtigten Zielgrößen gibt es in den seltensten Fällen eine Lösung, die alle Repräsentationen in allen Kriterien dominiert. Stattdessen existieren meistens mehrere pareto-optimale Lösungen, unter denen der Benutzer anhängig von seinen Präferenzen eine Entscheidung trifft.
Im Rahmen dieses Praktikums soll nun überprüft werden, inwieweit dieser Lösungsansatz auf Konstruktionsprobleme des Automobilbaus angewendet werden kann und ob dieses Verfahren Vorteile gegenüber den "klassischen" Konstruktionsmethoden aufweist. Dabei ist es nicht der Anspruch dieses Praktikums, tatsächlich praxisrelevante Ergebnisse zu produzieren. Dies wäre aufgrund der komplexen Problemstellung und Modellbildung zu umfangreich. Es handelt sich vielmehr um eine Machbarkeitsstudie, die untersuchen soll, welche Softwarepakete hierfür verfügbar sind und wie diese miteinander gekoppelt werden können. Deshalb soll zunächst an dem einfachen Modell eines zweidimensionalen Metallstreifens überprüft werden, welche Formen bzw. Materialdickeverteilungen die besten Steifigkeitseigenschaften bei gleichzeitig möglichst geringem Gewicht aufweisen.
1.2 Überblick
Der Einsatz von Evolutionären Algorithmen im Bereich der Konstruktion bzw. der Ingenieurswissenschaften wurde von vielen Arbeiten in verschiedensten Bereichen untersucht und beweist die Leistungsfähigkeit dieser Optimierungsform. So untersuchte z.B. SASAKI (2002) die Form des Flügels eines zukünftigen Überschallflugzeugs. Ziel der Optimierung war eine Minimierung des Überschallknalls bei gleichzeitig möglichst geringem Luftwiderstand. EBNER (2003b) verglich die Evolvierbarkeit von Szenen-Graphen in den 3D-Beschreibungssprachen OpenInventor und VRML am Beispiel der Effizienz von Rotorblättern.
Im Bereich des Automobilbaus sollen zwei Arbeiten erwähnt werden. KANAZAKI (2002) variierte mit Hilfe von Evolutionären Algorithmen Zusammenschlüsse und Rohrdurchmesser eines Abgaskrümmers. Durch eine Mehrzieloptimierung konnte sowohl eine bessere Katalysatorleistung durch eine höhere Abgastemperatur als auch eine höhere Motorenleistung erreicht werden. Die Untersuchung von YOSHIMURA (2003) konzentriert sich auf die Betrachtung des Querschnitts von Fahrzeugrahmen. Auch hier soll eine möglichst große Steifigkeit bei möglichst geringem Gewicht erreicht werden unter Verwendung eines genetischen Algorithmus. Jedoch werden die Individuen nicht mittels Finite-Elemente-Methode bewertet, sondern durch analytische Methoden. Dies ermöglicht einerseits eine sehr schnelle Berechnung (212 Sek. auf einem Pentium 2,4 GHz für 160.000 Bewertungen), andererseits bleibt eine derartige Analyse sehr einfachen Formen vorbehalten.
1.3 Grundlagen der Evolutionären Algorithmen
Durch Evolutionäre Algorithmen wird das Prinzip der Fortpflanzung von Lebewesen simuliert. Eine Population besteht wie in der Realität aus vielen Individuen, die jeweils eine Lösung des „Problems“ darstellen. Was dieses Problem im Einzelfall ist, legt der Anwender durch die sogenannte Fitnessfunktion fest. Diese bestimmt die relevanten Größen, an denen ein Individuum gemessen wird. Analog zur Natur werden die Informationen eines Individuums in seinem Genom gespeichert. Um die Fitnessfunktion zu maximieren bzw. minimieren stehen die genetischen Operatoren Mutation, Crossover und Selektion zur Verfügung. Bei der Selektion wird je nach Verfahren gemäß Darwins Gesetz („Survival of the fittest“) ein gewisser Anteil der besten Individuen entweder zufällig oder deterministisch zu den Eltern der nächsten Generation. Die restlichen Individuen werden verworfen. Der Crossover bezeichnet den Austausch von Teilen des Erbguts zwischen zwei Eltern bei der Erzeugung eines neuen Individuums (EBNER (2003a)).
Grundsätzlich werden zwei Verfahren unterschieden. Bei einem Genetischen Algorithmus wird ein Individuum durch einen Bit-String kodiert, d.h. jedes Bit entspricht einem Gen. Andere Datentypen werden in die binäre Darstellungsweise überführt. Mit einer vom Anwender festgelegten Mutationswahrscheinlichkeit wird ein Gen „gekippt“, d.h. sein Wert wird von „0“ auf „1“ gesetzt oder umgekehrt. Ein anderes Konzept liegt bei den Evolutionsstrategien vor. Hier wird die Anzahl der zu selektierenden Individuen (µ) und die von jedem selektierten Individuum zu erzeugende Anzahl von Nachkommen (λ) von vorneherein festgelegt. Die Mutationen erfolgen kugelförmig, d.h. standardnormalverteilt mit einem Erwartungswert von 0 und einer Varianz von 1 / n je Gen, sodass der Zufallsvektor im Mittel die Länge 1 hat (EBNER (2003a)).
Die Verwendung dieser Verfahren in den durchgeführten Experimenten wird in Kapitel 3 näher beschrieben.
1.4 Grundlagen der Finite-Elemente-Methode (FEM)
Nachdem in den 40er bis 60er Jahren viele neue Methoden zur Lösung von Differentialgleichungen entwickelt wurden, erschien 1967 das erste Buch über FEM (KLEIN (1990), S. 2). Zusammen mit der Rechenleistung von Personalcomputern entwickelte sich die FEM schnell weiter, sodass sie seit den 80er Jahren zur Lösung von Problemen im Ingenieursbereich eingesetzt werden konnte. Das Prinzip der FEM beruht auf der Zerlegung einer komplexen Struktur in viele finite, also endlich große Elemente, deren physikalischen Eigenschaften bekannt sind. Durch die Verknüpfung der Elemente entsteht ein lineares Gleichungssystem, das numerisch gelöst wird (KUNOW (1998), S. 4). Ursprünglich in der Luft- und Raumfahrtindustrie eingesetzt, breitete sich die Nutzung schnell auf die Automobilindustrie aus. Die Anwendungsbereiche beschränken sich inzwischen nicht nur auf die Simulation von Materialverformung und -belastung; durch spezielle Pakete sind ebenso Strömungs- simulationen, Akustiksimulationen, Wärmeleitungssimulationen und Simulationen von elektrostatischen und elektromagnetischen Feldern möglich (ebd., S. 2f.). Die FEM für Festigkeitsprobleme lässt sich in vier Kategorien unterteilen (KLEIN (1990), S. 9). Die lineare Elastostatik ist geeignet für reversible, linear-elastische Verformungen. Außerdem darf die Verformung nur klein sein, damit die Kräfte als am unverformten Bauteil wirkend betrachtet werden können (STEINBUCH (1998), S. 76). In der nichtlinearen Elastostatik sind auch Belastungen über den linear- elastischen Bereich eines Materials hinaus möglich; es treten dann dauerhafte, plastische Verformungen oder sogar bei zu großer Belastung Materialrisse auf. In diesem Modell wird mit dem Inkrementalverfahren gearbeitet. Das bedeutet, dass ausgehend von einer bekannten Lösung iterativ in kleinen Zeitschritten solange neue Lösungen berechnet werden, bis das Ergebnis hinreichend exakt ist (KUNOW (1998), S. 226)
Beide Modelle können um den dynamischen Aspekt erweitert werden, d.h. Verschiebungen sind dann nicht nur orts- sondern auch zeitabhängig (KLEIN (1990), S. 188). Die lineare und nichtlineare Elastodynamik ermöglichen somit Untersuchungen von z.B. Eigenschwingungen und erzwungenen Schwingungen.
Auf die mathematisch-physikalische Begründung der Finite-Elemente-Methode wird an dieser Stelle verzichtet. Der interessierte Leser findet zu diesem Thema zahlreiche Literatur, z.B. KUNOW (1998), KLEIN (1990) oder STEINBUCH (1998).
2. Verwendete Komponenten
2.1 Modellbildung mit GiD 7.2
Bei GiD 7.2 handelt es sich um einen Pre- und Postprozessor. Preprocessing bedeutet, dass GiD verschiedene geometrische Formen zur Verfügung stellt, um ein zwei- oder dreidimensionales Modell zu erstellen. Durch das Anwenden von Operationen (Drehen, Duplizieren, Extrudieren, Verknüpfen u.a.) auf simple Formen können so beliebig komplexe Gebilde entstehen. Nachdem die geometrische Form feststeht, muss eine Gitterstruktur (englisch: mesh) für das Modell festgelegt werden. Dazu muss zunächst der Elementtyp gewählt werden (z.B. Dreiecks-, Vierecks-, Balken-, oder Pyramidenelement). Anschließend wird die Genauigkeit des Gitters über die Anzahl der zu verwendenden Knotenpunkte bestimmt. Die einzelnen Knotenpunkte werden nun gemäß der Elementvorgabe miteinander verknüpft. Bei Bedarf können besonders interessierende Regionen markiert werden, in denen die Gitterdichte dann vom Gittergenerator auf Kosten der Genauigkeit in anderen Regionen automatisch erhöht wird. Dabei ist zu beachten, dass ein feineres Gitter die realen Verhältnisse exakter abbildet, dies jedoch mit einem überproportionalen Anstieg der Rechenzeit erkauft werden muss. Bevor die Weitergabe des Modells an das FEM-Programm erfolgen kann, muss die Art des Export-Filters (in diesem Falle „Impact“) festgelegt und die sogenannten Randbedingungen bestimmt werden. Unter Randbedingungen versteht man die Zuordnungen von Geschwindigkeiten, Beschleunigungen und Krafteinwirkungen zu einzelnen Knoten. Die akademische, kostenfreie Version von GiD unterstützt 700 2D-Elemente oder 3000 3D-Elemente, was für die Zwecke dieses Praktikums ausreichend war. Soll jedoch ein komplexeres Teil eines Automobils untersucht werden, dürfte diese Grenze schnell überschritten werden. Bereits das von Audi zur Verfügung gestellte Modell eines einfachen Schalters (im STL-Format) besteht aus 1752 3D-Elementen.
Das Postprocessing ist für die Auswertung der Daten nach der FEM-Berechnung des Modells zuständig. In dieser Arbeit wurde für die Berechnung das Programm Impact (siehe Kapitel 2.2) verwendet. Die von diesem generierte Ergebnisdatei (Dateiendung: „.res“) kann von GiD gelesen und als Sequenz mit farblicher Visualisierung der Spannungen und Verschiebungen abgespielt werden.
Abbildung in dieser Leseprobe nicht enthalten
Abb. 1: Prototyp des Versuchsbleches (54 Knoten, 53 Elemente, Breite: 200, Höhe: variabel, hier 10)
Um die Verformung eines Bleches unter Krafteinwirkung untersuchen zu können, wurde ein zweidimensionales Modell entwickelt, welches einer Querschnitts- betrachtung entspricht, die Höhe entspricht also der Blechdicke. Dieses Modell besitzt eine Breite von 200 Einheiten und eine Höhe von 10 Einheiten, wobei diese später durch den Evolutionären Algorithmus variiert wird. Die Vernetzung wurde automatisch erstellt unter der Vorgabe, 54 Knotenpunkte zu verwenden. Die 53 Dreieckselemente wurden gleichmäßig über die Fläche verteile; in der Mitte befindet sich ein Balkenelement (siehe Abbildung 1). Die Randbedingungen (englisch: constraints) wurden wie folgt festgelegt: Der untere linke Knoten (Koordinate (0; 0), Knoten-Nr. 1) und der untere rechte Knoten (Koordinate (200; 0), Knoten-Nr. 53) wurden fixiert, d.h. es darf weder eine Geschwindigkeit noch eine Beschleunigung in einer der drei Dimensionen auftreten. Alle restlichen Punkte wurden in der X-Y- Ebene fixiert, sodass es sich um ein zweidimensionales Berechnungsmodell handelt. Auf den mittleren Knoten der X-Achse (Knoten-Nr. 27) wirkt eine Kraft (englisch: load) von 50 Einheiten ein, was einem simulierten Stoß von unten entspricht.
Versuche zeigten, dass die Eigenschaften dieses Modells sich nur unwesentlich von denen eines feiner vernetzten Modells unterscheiden. Durch den Evolutionären Algorithmus wird das Modell sehr oft (ca. 800-900 Mal in jedem durchgeführten Experiment) dem Berechnungsvorgang unterworfen, daher wurde versucht, die Anzahl der Elemente möglichst gering zu halten, um Rechenzeit einzusparen. Eine geringe Dicke des Modells (getestet: Höhe 2) führte zu unerwünschten Ergebnissen.
Der Export aus GiD (Files Export Calculation File) erzeugt eine .in-Datei, welche bei Bedarf mit einem Texteditor angepasst und von Impact eingelesen werden kann.
2.2 Bewertung mit Impact 0.5.2b
Zunächst wurde die Verwendung der „Open Dynamics Engine“ (ODE) in Betracht gezogen, um die Krafteinwirkung auf ein Testobjekt zu untersuchen (verwendet in EBNER (2003b)). Es handelt sich hierbei um eine Simulation physikalischer Vorgänge, d.h. es werden die Beschleunigungen, Geschwindigkeiten und Kräfte der einzelnen (eventuell miteinander verbundenen) Objekte berechnet. Da sich jedoch mit diesen dynamisch unveränderlichen Objekten keine Materialverformungen simulieren ließen, wurde von einer Verwendung abgesehen.
Das nächste auf seine Eignung untersuchte Programmpaket war das von INRIA und SDTools entwickelte OpenFEM, welches ein Zusatzmodul zu Matlab und Scilab ist. Es stellte sich jedoch heraus, dass es für die Zwecke dieses Praktikums ungeeignet war, da es lediglich lineare, also reversible Materialverformungen simulieren kann. Außerdem hätte sich eine Anbindung an das Evolvierungsprorgamm aufgrund der Matlab-spezifischen Programmierung schwierig gestaltet.
Bei der weiteren Suche nach einer geeigneten, kostenfreien FEM-Software entpuppte sich Impact als geeigneter Kandidat. Bei Impact handelt es sich um ein Open-Source-Projekt, das in Java geschrieben wird. Nach Aussage der Entwickler ist es das Ziel, eine möglichst einfach zu benutzende Finite-Elemente-Software mit explizitem Zeitschrittalgorithmus zu schreiben. Die Programmierung in Java bringt zwar leichte Performanceverluste mit sich, hat aber dafür Vorteile im Bereich der Objektorientierung und der Portabilität (IMPACT (2005)). Im Bereich der Finite- Elemente-Methode ist Impact der nichtlinearen Elastodynamik (siehe Kapitel 1.4) zuzuordnen, d.h. es sind Simulationen von großflächigen, plastischen Verformungen möglich.
Impact besteht aus drei Komponenten, die den jeweiligen Bearbeitungsschritten zugeordnet sind. Der Preprozessor dient der Modellbildung. Dieser Bearbeitungsschritt ist jedoch mit dem in Kapitel 2.1 beschriebenen GiD wesentlich komfortabler und einfacher zu bewältigen. Das Ergebnis der Modellbildung ist in beiden Fällen die sogenannte Problemdatei (Endung: .in). Diese beinhaltet alle Informationen, die für die Berechnung des Modells notwendig sind. Dazu gehören Betrachtungszeitraum, Koordinaten der Knotenpunkte, Elemente und ihre Bezugspunkte, verwendete Materialien, Restriktionen und einwirkende Kräfte. Mit dem Prozessor wird nun die eigentliche Berechnung durchgeführt. Zu den in der Problemdatei spezifizierten Zeitpunkten wird der Status des Modells (Verschiebungen und Spannungen an den einzelnen Punkten) ausgegeben. Alle Zwischen- und Endergebnisse werden in die Ergebnisdatei (Endung: .res) geschrieben und können entweder mit dem Postprozessor von Impact oder alternativ von GiD visualisiert werden.
Jedes durch den Evolutionären Algorithmus evolvierte Individuum stellte eine eigene Repräsentation des Metallstreifens dar, wobei das Genom die Blechdicke des Metallstreifens an allen Knotenpunkten der höher gelegenen Ebene (siehe Abbildung 1) oder an gewissen Stützstellen codiert. Die simulierte Verformung mit Impact diente dazu, den maximalen Wert der Verformung und das Gewicht der Repräsentation zu ermitteln. Je geringer das Gewicht und die Verformung ausfielen, desto besser wurde ein Individuum bewertet.
In der verwendeten Version 0.5.2b war es leider nicht möglich, ein mit GiD erzeugtes dreidimensionales Modell zu berechnen. Da GiD standardmäßig das sogenannte Tetrahedra-Objekt (pyramidenförmig) benutzt, um dreidimensionale Strukturen zu zerlegen und ein solches Element nicht in Impact existierte, war ein Export nicht möglich. Seit der Mitte März verfügbaren Version 0.5.4 von Impact ist dieses Element jedoch vorhanden.
Die zu verwendenden Materialien werden in der Problemdatei nicht explizit angegeben, sondern über ihre physikalischen Eigenschaften bestimmt. Im Falle der elastischen (reversiblen) Verformung ist die Angabe der Materialdichte, der Querkontraktion und des Elastizitätsmoduls notwendig. Sollen Verformungen im nichtlinearen Bereich berücksichtigt werden, muss zusätzlich die Dehngrenze und der Verlauf des Spannung-Dehnungs-Diagramms festgelegt werden. Diese Größen sollen nun kurz erläutert werden:
(Material-)Dichte
(englisch: density) Diese besitzt das Formelzeichen ρ (griechisch: rho) und ist definiert als das Verhältnis von Masse zu Volumen. Die SI-Einheit der Dichte ist kg/m3, üblich sind auch Angaben in g/cm3 oder g/Liter.
Typische Werte: ρ = 7800 kg/m3 (Stahl), ρ = 2700 kg/m3 (Aluminium)
Querkontraktion
Die Querkontraktionszahl ν (griechisch: nu) oder Poisson-Konstante bezeichnet den negativen Proportionalitätsfaktor, mit dem sich der Probendurchmesser verringert, wenn sich die Probe aufgrund einer Zugkraft verlängert. Aufgrund ihrer Definition ist sie dimensionslos (WHITE (1999), S. 288). Formel: ν = - (ΔD / D) / (ΔL / L) [D = Durchmesser, L = Länge] Typische Werte: 0,3 (Stahl), 0,33 (Aluminium)
Elastizitätsmodul
Bei geringer Krafteinwirkung verhält sich die Dehnung ε (griechisch: epsilon) einer Probe proportional zur Zugspannung σ (griechisch: sigma). Es gilt E = σ / ε im linear elastischen Bereich (siehe Abb. 2), wobei E als Elastizitätsmodul oder Young’s Modulus bezeichnet wird. Je größer der Wert ist, desto steifer ist das Material, d.h. es setzt seiner Verformung einen größeren Widerstand entgegen
(WHITE (1999), S. 287).
Typische Werte: 190.000 bis 210.000 N/mm (Stahl), 54.000 bis 70.000 N/mm (Al.)
Dehngrenze
(englisch: yield strength oder yield stress) Die Dehngrenze gibt an, wie stark eine Probe gedehnt werden kann, ohne dass sich eine plastische Verformung ergibt (siehe Abb. 2). Wird diese überschritten, kehrt das Material nicht in seine ursprüngliche Form zurück. Sie wird bestimmt als die Spannung, bei der sich eine Probenverlängerung von 0,2% ergibt (WHITE (1999), S. 288). Impact erwartet für elastoplastische Materialien die Angabe der Dehngrenze und einer
Abbildung in dieser Leseprobe nicht enthalten
Abb. 2: Spannungs-Dehnungsdiagramm (WHITE (1999), S. 288)
Steigung im plastischen Bereich („plastic modulus“) oder einer durch Koordinaten (Dehnung; Spannung) festgelegten linear interpolierten Kurve, wobei die plastische Dehnung für die erste Koordinate 0 beträgt (IMPACT (2005), Users Manual).
Typische Werte: 235 bis 1000 N/mmung 1: Prototyp des Versuchsbleches
Abbildung 2: Spannungs-Dehnungs-Diagramm
Abbildung 3a: Entwicklung der Fitness bei Genetischem Algorithmus
Abbildung 3b: Repräsentationen der besten Individuen bei Gen. Algorithmus
Abbildung 4a: Entwicklung der Fitness bei Evolutionsstrategien
Abbildung 4b: Repräsentationen der besten Individuen bei Evolutionsstrategien
Abbildung 5a: Entwicklung der Fitness bei Wölbung
Abbildung 5b: Repräsentationen der besten Individuen bei Wölbung
Abbildung 6a: Entwicklung der Fitness bei Mutationsschrittweitenregulierung
Abbildung 6b: Repräsentationen der besten Individuen bei MSR
Abbildung 7: Entwicklung der Mutationsschrittweiten
Abbildung 8a: Entwicklung der Fitness bei Aluminium
Abbildung 8b: Repräsentationen der besten Individuen bei Aluminium
Abbildung 9: Repräsentationen ausgew. Individuen bei Mehrzieloptimierung
Abbildung 10: Pareto-Rand bei Mehrzieloptimierung
Tabellenverzeichnis
Tabelle 1: Ergebnis-Tabelle der Evolutionsstrategien
Tabelle 2: Ergebnis-Tabelle der restlichen Versuche
1. Einleitung
1.1 Zielsetzung
Weltweit (Stahl), 110 bis 480 N/mm (Aluminium)
2.3 Evolvierung mit ECJ 12
ECJ ist ein ebenfalls in Java geschriebenes Programmpaket zur evolutionären Problemlösung. Der Quellcode ist frei verfügbar und beherrscht Genetische Algorithmen, Genetische Programmierung, Subpopulationen, mehrere Selektionsmechanismen, Checkpointing und Multithreading. Auch Evolutionsstrategien werden zur Verfügung gestellt, jedoch nicht in dem üblichen, benötigten Umfang. Daher mussten die Mutationsschrittweitenregelung und die standardnormalverteilten Mutationen manuell implementiert werden (siehe Kapitel 2.4).
ECJ ist so angelegt, dass alle relevanten Informationen über den Problemtyp in einer Parameterdatei abgelegt werden. Diese kann über mehrere Ebenen vererbt werden, so dass auf der Benutzerebene nur die von den Standardeinstellungen abweichenden Parameter eingestellt werden müssen. Es sind auch Parameterübergaben auf Kommandozeilenbasis möglich, diese besitzen die höchste Priorität. Um Namensmehrdeutigkeiten zu vermeiden, wird empfohlen, für jedes Projekt einen eigenen Ordner im „ec“-Ordner anzulegen. Dieser Empfehlung wurde gefolgt; alle verwendeten Parameter- und Java-Dateien befinden sich im Ordner „/ec/praktikum“. Aufgerufen wird der Evolvierungsvorgang mit dem Befehl „java ec.Evolve -file Datei.params“, wobei „Datei“ die zu verwendende Parameterdatei bezeichnet. Diese muss wiederum einen Verweis auf eine Java-Datei beinhalten, in der die Bewertung der Individuen anhand einer Fitnessfunktion durchgeführt wird. Um die Eigenschaften des Metallstreifens zu bewerten, wurde aus dieser Datei heraus unter Zuhilfenahme anderer Klassen eine Instanz des Impact-Prozessors gestartet und die zurückübermittelten Werte der Verformung und des Gewichts in die Fitnessfunktion eingesetzt (siehe Kapitel 2.4).
Standardmäßig wird in der Datei „out.stat“ das beste Individuum jeder Generation, dessen Fitness und dessen Genom ausgegeben. Es können vom Benutzer jedoch beliebige andere Statistikdateien angelegt werden, die anschließend leichter weiterzuverarbeiten sind.
Ein kompletter Lauf des Evolutionären Algorithmus mit 800 Individuen-Bewertungen dauerte auf einem Pentium IV mit 3 GHz Taktfrequenz ca. zwei Stunden. Dabei ist zu beachten, dass das verwendete, zweidimensionale Modell nur einfachsten Ansprüchen genügt. Sollen quantitativ verwertbare Ergebnisse erzeugt oder kompliziertere Werkstücke evolviert werden, dürfte sich der Rechenaufwand schnell vervielfachen.
2.4 Eigene Komponenten
Um die einzelnen Problemdateien (diese bewerten die Individuen) klein und übersichtlich zu halten, wurden möglichst viele Funktionen ausgelagert und in anderen Klassen zusammengefasst. Außerdem war es nötig, gewisse Klassen von ECJ mit eigenen, erweiterten Klassen zu überlagern. Alle hier erläuterten Klassen befinden sich im Ordner „/ec/praktikum“. Es folgen die selbst programmierten bzw. für die Zwecke dieses Praktikums angepassten Komponenten in alphabetischer Reihenfolge:
PraktikumHelper.java
Dies ist lediglich eine Hilfsklasse, die gelegentlich benötigt wird. Die erste Funktion ist die Erzeugung von Referenzbalken konstanter Dicke. Durch Variation der Dicke können Balken gleicher Masse oder Verformung ermittelt werden (siehe Kapitel 3). Die zweite Aufgabe ist die Berechnung der Y-Koordinaten der Modellknoten der oberen Ebene aus gegebenen Spline-Stützpunkten. Die Ergebnisse werden in eine Textdatei geschrieben, so dass sie leicht von Excel importiert werden können.
PraktikumIndividual.java
Diese Klasse erbt von der ECJ-Klasse DoubleVectorIndividual und erweitert sie um die Fließkommavariable „msw“, was für Mutationsschrittweite steht. In ECJ muss jedes Individuum einer Klasse angehören, die anzeigt, welchen Datentyp das Genom besitzt. Außer im ersten durchgeführten Experiment wurde für alle Versuche ein Genom vom Typ „Double“ verwendet. Die Erweiterung wurde notwendig, da ECJ keine Mutationsschrittweite bietet, diese jedoch große Effizienzgewinne verspricht. Die Mutationsschrittweite ist nun Eigenschaft eines jeden Individuums.
[...]
-
-
-
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X.