Die Zahl der elektrisch angetriebenen Fahrzeuge in Deutschland steigt. Aufgrund der vergleichsweise geringen Reichweiten von Elektrofahrzeugen in Bezug auf Verbrennungsmotoren bedarf es in einem Elektroauto einer zuverlässigen Angabe der Restreichweite. Eine besondere Problematik obliegt dabei dem Zwiespalt zwischen der Dynamik und dem Komfort eines solchen Systems.
Im Rahmen dieser Arbeit werden zwei verschiedene Fahrzeugtypen, welche sich vor allem durch ihre Leistung und den jeweils verbauten Batterietyp unterscheiden, objektorientiert implementiert. Zudem wird ein bestehendes Modell zur Restreichweitenschätzung analysiert und weiterentwickelt. Durch abschließende Simulationen unter variierenden Parametersätzen werden Aussagen über die Echtzeittauglichkeit der Restreichweitenschätzung getätigt, sowie Unterschiede zwischen beiden Modellen dargestellt.
Inhaltsverzeichnis
Formelzeichen
Einleitung
1 Grundlagen
1.1 Entwicklungsmethode zur Modellierung der Elektrofahrzeuge
1.2 Physikalische Grundlagen
1.2.1 Beschleunigungswiderstand
1.2.2 Rollreibungswiderstand
1.2.3 Steigungswiderstand
1.2.4 Aerodynamischer Widerstand
1.3 Versuchsfahrzeuge
1.3.1 E-Polo
1.3.2 Nissan Leaf
1.4 Batteriemodelle
1.4.1 Innenwiderstandsmodell (ZEBRA Batterie)
1.4.2 RC-Modell (Li-Ionen Akkumulator)
1.5 Programmiertechnische Grundlagen
1.5.1 Einführung in die Entwicklungsumgebung Matlab
1.5.2 Objektorientierte Programmierung
1.5.3 Vorteile und Nachteile der objektorientierten Programmierung
2 Implementierung des Fahrzeugmodells
2.1 Klassenstruktur
2.2 Implementierung der Fahrzeugkomponenten
2.2.1 Kräftebilanz
2.2.2 Drehmomentumwandlung
2.2.3 Motorblock
2.3 Implementierung der Batteriemodelle
2.3.1 ZEBRA – Batterie
2.3.2 Li-Ionen Akkumulator
2.4 Vorstellung der Restreichweitenschätzung
3 Simulationen und Verifikation des Fahrzeugmodells
3.1 Simulation verschiedener Streckenprofile
3.1.1 Artemis Fahrzyklus
3.1.2 Teststrecke Köln – Dortmund
3.1.3 Teststrecke Köln – Dortmund mit Steigungsprofil
3.2 Auswirkungen der Rekuperation
3.2.1 Artemis Fahrzyklus
3.2.2 Teststrecke Köln – Dortmund
3.3 Restreichweitenschätzung anhand der Teststrecke Köln – Dortmund
3.4 Gegenüberstellung der Ergebnisse zwischen objektorientierter Programmierung und Simulink
3.4.1 E – Polo
3.4.2 Nissan Leaf
3.4.3 Restreichweitenschätzung
4 Zusammenfassung und Ausblick
5 Literaturverzeichnis
Abbildungsverzeichnis
Anhang
Formelzeichen
Überblick
Die Zahl der elektrisch angetriebenen Fahrzeuge in Deutschland steigt. Aufgrund der vergleichsweise geringen Reichweiten von Elektrofahrzeugen in Bezug auf Verbrennungsmotoren bedarf es in einem Elektroauto einer zuverlässigen Angabe der Restreichweite. Eine besondere Problematik obliegt dabei dem Zwiespalt zwischen der Dynamik und dem Komfort eines solchen Systems.
Im Rahmen dieser Arbeit werden zwei verschiedene Fahrzeugtypen, welche sich vor allem durch ihre Leistung und den jeweils verbauten Batterietyp unterscheiden, objektorientiert implementiert. Zudem wird ein bestehendes Modell zur Restreichweitenschätzung analysiert und weiterentwickelt. Durch abschließende Simulationen unter variierenden Parametersätzen werden Aussagen über die Echtzeittauglichkeit der Restreichweitenschätzung getätigt, sowie Unterschiede zwischen beiden Modellen dargestellt.
Einleitung
Die ersten Elektroautos gab es bereits vor der Erfindung des Verbrennungsmotors gegen Ende des 19. Jahrhunderts (1). Allerdings setzte sich damals der Verbrenner, aufgrund seiner höheren Reichweite und der geringen Aussicht auf Fortschritt in der Entwicklung der Elektromobilität, durch. Der Klimawandel, Ölknappheit, CO2 Emissionen, […] und technische Innovationen im Bereich der Elektromobilität ließen die Forschung Ende des 20. Jahrhunderts wieder aufleben. Aufgrund von umweltbezogenen und kostenbezogenen Vorteilen des Elektroautos hat sich die Bundesregierung zum Ziel gesetzt, bis 2020 eine Million Elektroautos auf deutsche Straßen zu bringen. Aktuell sind etwa 14.000 rein elektrisch betriebene Fahrzeuge und 90.000 Hybridfahrzeuge, in Summe also 104.000 Fahrzeuge mit Elektroantrieb in Deutschland angemeldet (2). Um dieses Ziel zu erreichen, werden Käufer von Elektrofahrzeugen für 10 Jahre von der Steuer befreit und durch weitere Zuschüsse von etwa einer Milliarde Euro die Forschung gefördert (3). Zwar bieten elektrisch angetriebene Fahrzeuge einige Vorteile hinsichtlich ihrer Betriebskosten (~1,50 € / 100 km), Umweltfreundlichkeit, […] – allerdings stehen diesen mindestens ebenso große Probleme gegenüber. Schwere Batterien mit geringer Lebensdauer im Vergleich zu Verbrennungsmotoren, eine Ladezeit im Bereich von mehreren Stunden gegenüber der geringen Reichweite von nur wenigen hundert Kilometern. Vor allem aber hohe Anschaffungskosten bereits im Kleinwagensektor halten viele potentielle Kunden trotz Bezuschussungen von einem Kauf ab.
Daher ist für Käufer eines Elektrofahrzeugs eine möglichst genaue, aber ebenso dynamische Prognose der Restreichweite nötig, um zuvor genannte Probleme zu minimieren. Eine besondere Problematik obliegt hierbei dem Zwiespalt zwischen Komfort und Dynamik einer solchen Anwendung. Während aus technischer Sicht eine möglichst genaue Prognose zu jedem Zeitpunkt das Ziel sein muss, darf der Komfort für den Anwender nicht verloren gehen.
Ziel dieser Bachelorarbeit ist die Umsetzung eines bestehenden Simulink Modells eines Elektrofahrzeugs in objektorientierten Code. Dies bietet vor allem in der späteren Anwendung im Auto große Vorteile, da diese oftmals auf Mikroprozessoren stattfindet. Auf weitere Vorteile, sowie Nachteile, wird im Rahmen dieser Arbeit näher eingegangen. Zunächst wird das Fahrzeugmodell objektorientiert implementiert, indem die einzelnen Komponenten des Antriebsstranges als Klassenobjekte realisiert werden. Dies wird anhand von zwei Versuchsfahrzeugen durchgeführt. Dazu dient zum einen ein VW E-Polo 9N3, welcher durch die Technische Universität Dortmund auf einen elektrischen Antrieb umgerüstet wurde. Zum andern wird das Fahrzeugmodell eines Nissan Leaf mit serienmäßigem Elektroantrieb implementiert. Die Kenndaten der Fahrzeuge sind aus Tabelle 1.1 in Kapitel 1.3 zu entnehmen. Dazu werden in Kapitel 1 einige physikalische Grundlagen wiederholt, sowie das bestehende Fahrzeugmodell vorgestellt (4). Des Weiteren wird eine kurze Einführung in die programmiertechnischen Grundlagen der objektorientierten Programmierung gegeben. Kapitel 2 zeigt im Anschluss die Implementierung der Elektrofahrzeuge als Klassenmodell. In diesem Zusammenhang wird auf die einzelnen Komponenten des Antriebsstrangs und deren objektorientierte Realisierung eingegangen. Ein besonderes Augenmerk liegt dabei auf der Implementierung zweier Batteriemodelle, zum einen der ZEBRA-Batterie des E-Polo und zum anderen des Li-Ionen Akkumulators des serienmäßigen Nissan Leaf. Anschließend werden einige Simulationen mit beiden Versuchsfahrzeugen unter verschiedenen Rahmenbedingungen durchgeführt, um einen Vergleich zwischen beiden Modellen zu ermöglichen. Zudem wird, basierend auf den Simulationsergebnissen einer vorangegangenen Masterarbeit (4), das verbesserte objektorientierte Modell validiert und verifiziert.
Abschließend werden die Ergebnisse der Arbeit zusammenfassend dargestellt und ein Ausblick auf künftige Arbeiten ermöglicht.
1 Grundlagen
1.1 Entwicklungsmethode zur Modellierung der Elektrofahrzeuge
Die Simulation von elektrisch angetriebenen Fahrzeugen, beziehungsweise ihrer Komponenten, kann auf Basis verschiedener Modelle durchgeführt werden. Grundsätzlich lässt sich zwischen zwei unterschiedlichen Methoden unterscheiden – der „Ursache-Effekt-Methode“ und der „Effekt-Ursache-Methode“. Bei ersterer stimmt die Richtung der Simulation mit der Richtung des positiven Leistungsflusses (Abbildung 1.1) überein. Die Simulation wird basierend auf dem Verhalten des Fahrers, beispielsweise einer Pedalstellung, durchgeführt. Der größte Vorteil dieser Methode liegt in der Mitberücksichtigung des Fahrerverhaltens. Aufgrund von zahlreichen Regelalgorithmen kann hierdurch jedoch eine sehr hohe Laufzeit der Simulation die Folge sein.
Die Simulationen in dieser Arbeit werden ausgehend von Fahrprofilen stattfinden, deshalb wird die Effekt-Ursache-Methode zur Implementierung verwendet. Dabei findet die Simulation entgegen des positiven Leistungsflusses statt. Ausgehend von einem Fahrprofil werden die Kräfte und Momente an den unterschiedlichen Komponenten des Elektrofahrzeugs berechnet. Durch Betrachtung der einzelnen Komponenten als Blackbox können diese einzeln durch physikalische Gleichungen modelliert werden. Die Kraftanforderung, beziehungsweise Drehmomentenanforderung, an den Motor wird mittels Look-Up-Tabellen in eine Leistungsanforderung an die Batterie umgewandelt.
Abbildung 1.1: Effekt - Ursache - Methode (5)
Abbildung in dieser Leseprobe nicht enthalten
1.2 Physikalische Grundlagen
In diesem Abschnitt werden einige physikalische Grundlagen zur Modellierung eines Elektrofahrzeugs wiederholt. Dabei wird vor allem auf die Fahrdynamik und die damit einhergehenden Kräfte eingegangen. Der Fokus liegt hierbei auf vier Widerstandskräften in Fahrzeuglängsrichtung:
Die von der Antriebskraft zu überwindende Gesamtkraft ergibt sich durch Addition der Teilkräfte: Auf die vier Teilkräfte wird in den folgenden Abschnitten näher eingegangen.
1.2.1 Beschleunigungswiderstand
Der Beschleunigungswiderstand muss überwunden werden, um die Geschwindigkeit eines Fahrzeugs zu ändern. Somit tritt diese Kraft nicht in stationären Betriebspunkten, zum Beispiel bei Fahrten mit konstanter Geschwindigkeit, auf. Wird lediglich die translatorische Bewegung des Fahrzeugs betrachtet, so ergibt sich der Beschleunigungswiderstand zu:
Elektromotoren können sowohl im Motorbetrieb, als auch im Generatorbetrieb arbeiten. Dadurch kann durch die Verzögerung eines Bremsvorgangs Energie aufgenommen werden, indem generatorisch gebremst wird. Die zum Laden der Batterie generatorisch erzeugte Leistung wird dabei gleichzeitig als Fahrwiderstandskraft zur Verzögerung genutzt.
1.2.2 Rollreibungswiderstand
Der Rollreibungswiderstand wirkt während der Fahrt entgegen der Fahrtrichtung. Laut (6) wirkt der Rollreibungswiderstand, sofern entweder ein starres Rad auf einer deformierbaren Unterlage, oder ein verformbares Rad auf einer starren Unterlage abrollt. Zusätzlich fließen, abhängig von der Beschaffenheit der Straße und der verwendeten Materialien bei der Reifenherstellung, Adhäsionskräfte zwischen Reifen und Straße mit in die Berechnung des Rollreibungswiderstands ein. Im Rahmen dieser Bachelorarbeit wird zu Vereinfachungszwecken ein konstanter Untergrund angenommen. Weiterhin werden alle weiteren Einflüsse zu einem konstanten Rollreibungskoeffizienten zusammengefasst. Unter Berücksichtigung der oben genannten Vereinfachungen lässt sich der Rollreibungswiderstand in Abhängigkeit der Normalkraft darstellen. Der Rollreibungswiderstand greift entgegengesetzt der Fahrtrichtung an und ist proportional zur Normalkraft, welche senkrecht zum Boden wirkt.
Der Rollreibungskoeffizient wird je nach Beschaffenheit der Straße gewählt. Auf Asphaltstraßen liegt dieser bei etwa 0.025, auf Pflasterstraße bei 0.04.
Zusätzlich zum Rollreibungswiderstand tritt eine Haftreibung, beziehungsweise Gleitreibung, auf. Da im Rahmen dieser Arbeit vereinfacht nur ein konstanter, trockener Untergrund angenommen wird, kann diese vernachlässigt werden.
1.2.3 Steigungswiderstand
Der Steigungswiderstand eines Fahrzeugs ergibt sich durch jene Kraft, die überwunden werden muss, um eine Steigung [°] zu überwinden. Die Steigung a bildet die prozentuale Änderung der Höhe gegenüber der zurückgelegten Strecke ab. Wird beispielsweise auf einer Strecke von 100 m ein Höhenunterschied von 20 m überwunden, so ergibt sich eine prozentuale Steigung von a = 20 % (Abbildung 1.2).
Abbildung 1.2: Steigungswinkel
Abbildung in dieser Leseprobe nicht enthalten
Nach (7) ergibt sich der Steigungswiderstand durch folgende Gleichung:
In Gleichung (1.4) ist zu erkennen, dass ein Steigungswinkel in Grad in die Gleichung einfließt, im Straßenverkehr allerdings Steigungen üblicherweise in Prozent gegeben sind. Die Umrechnung erfolgt nach folgender Formel:
Die Variable a stellt hierbei die Steigung in Prozent dar. Geht ein negativer Steigungswinkel in die Berechnung ein, so wird der Steigungswiderstand zu einer Antriebskraft, welche reduzierend in die Kräftebilanz einfließt.
1.2.4 Aerodynamischer Widerstand
Der Aerodynamische Fahrwiderstand wird in zwei Teilwiderstandskräfte unterteilt. Die erste Teilkraft berücksichtigt die Anströmung des Fahrzeugs durch Seitenwinde. Die zweite Teilkraft bezieht sich auf die Anströmung des Fahrzeugs in Fahrzeuglängsrichtung. Im Rahmen dieser Ausarbeitung wird lediglich letzteres betrachtet. Der Aerodynamische Widerstand setzt sich aus dem Staudruck, der angeströmten Fläche A und einer Luftwiderstandskonstante zusammen. Somit ergibt sich folgender Zusammenhang (8):
Die Luftdichte kann für komplexere Betrachtungen in Abhängigkeit der Umgebungstemperatur, dem Umgebungsluftdruck und einer Gaskonstante des umgebenden Mediums dargestellt werden. In dieser Ausarbeitung wird die Luftdichte konstant als = 1.2041 kg/m³ angenommen. Der Luftwiderstandsbeiwert wird in dieser Arbeit auf = 0.32 festgelegt (9). Dabei ist zu beachten, dass es sich um einen Durchschnittswert handelt und dieser in detaillierteren Simulationen, aufgrund verschiedener Fahrzeugtypen, variieren kann.
1.3 Versuchsfahrzeuge
Im Rahmen dieser Bachelorarbeit wird die Implementierung am Beispiel von zwei Fahrzeugen durchgeführt.
Tabelle 1.1: Technische Daten der Versuchsfahrzeuge
Abbildung in dieser Leseprobe nicht enthalten
1.3.1 E-Polo
Zum einen wird ein VW Polo 9N3, welcher durch eine Projektgruppe des Arbeitsgebiets Bordsysteme an der Technischen Universität Dortmund auf elektrischen Antrieb umgebaut wurde, implementiert. Als Traktionsbatterie dient diesem eine ZEBRA-Batterie mit einem Energiegehalt von 21,2 kWh und einer Nennspannung von 278 V. Die Reichweite des E-Polo wird mit 100 – 150 km angegeben, bei einer Maximalgeschwindigkeit von 120 km/h. Weitere Kenndaten des Polos sind Tabelle 1.1 zu entnehmen.
1.3.2 Nissan Leaf
Des Weiteren dient ein Nissan Leaf als Grundlage für die Implementierung. Dieser wird seit 2012 in Deutschland als Fahrzeug der Kompaktklasse zum Verkauf angeboten. Er ist mit einem Li-Ionen Akkumulator als Traktionsbatterie mit einem Energiegehalt von 24 kWh und einer Nennspannung von etwa 360 V ausgerüstet. Laut Hersteller liegt der durchschnittliche Verbrauch bei 12,4 kWh/100 km. Seine Leistung ist mit 80 kW mehr als viermal so hoch wie die des E-Polo und mittels „Eco-Modus“ verbrauchsoptimierend drosselbar. Mit 140 km/h ist der Nissan Leaf etwas schneller, kommt aber trotzdem laut Herstellerangabe mit 160 km Reichweite ein wenig weiter als der E-Polo. Auch hier sind weitere Kenndaten Tabelle 1.1 zu entnehmen.
1.4 Batteriemodelle
1.4.1 Innenwiderstandsmodell (ZEBRA Batterie)
Die Implementierung einer Batterie über das Innenwiderstandsmodell (Abbildung 1.3) ist die einfachste Möglichkeit zur Modellierung. Dabei liegt an der Gleichspannungsquelle die SoC-abhängige Leerlaufspannung der Batterie an. Durch den ebenfalls vom Ladezustand abhängigen Innenwiderstand werden innere Verluste, beispielsweise thermische Verluste, der Batterie abgebildet. Mit dem zweiten Kirchhoffschen Gesetz ergibt sich die Batteriespannung zu:
Das Ersatzschaltbild ist in Abbildung 1.3 dargestellt.
Abbildung 1.3: Ersatzschaltbild Innenwiderstandsmodell (10)
Abbildung in dieser Leseprobe nicht enthalten
1.4.2 RC-Modell (Li-Ionen Akkumulator)
Das RC-Modell (Abbildung 1.4) bietet im Vergleich zum Innenwiderstandsmodell die Möglichkeit einer detaillierteren Darstellung von Batterieverlusten. Neben thermischen Verlusten können ebenfalls die Oberflächeneffekte, sowie Ladeverluste und Entladeverluste einer Batterie modelliert werden. Thermische Verluste werden über den Widerstand berücksichtigt. Über die Kapazität und den Widerstand werden Ladeverluste beziehungsweise Entladeverluste der Batterie modelliert. Dabei stellt die Kapazität die Fähigkeit der Batterie dar, Ladungen zu speichern und abzugeben. Die Oberflächeneffekte der Batterie werden durch die Kapazität und den Widerstand dargestellt. Dabei gilt >> . Folgend das Ersatzschaltbild dieser Anordnung.
Abbildung 1.4: Ersatzschaltbild RC-Modell (11)
Abbildung in dieser Leseprobe nicht enthalten
Das Verhalten des Systems wird durch folgendes Gleichungssystem bestimmt:
1.5 Programmiertechnische Grundlagen
In diesem Kapitel werden die Grundlagen der objektorientierten Programmierung, sowie dessen Vorteile und Nachteile aufgezeigt. Weiterhin wird eine kurze Einführung in die Entwicklungsumgebung Matlab gegeben, mit welcher die Aufgabenstellung umgesetzt wurde.
1.5.1 Einführung in die Entwicklungsumgebung Matlab
Die plattformunabhängige Software Matlab, kurz für Matrix Laboratory, dient vorrangig der numerischen Lösung mathematischer Probleme. Wie der Name bereits verrät, wurde Matlab zum Rechnen mit Matrizen optimiert. Technische Probleme lassen sich durch eine vergleichsweise unkomplizierte Syntax in Matlab schneller lösen, als mit anderen Programmiersprachen, wie zum Beispiel C oder C++. Die Software kann zudem durch weitere Toolboxen auf unterschiedliche Anwendungsgebiete erweitert werden. Weiterhin bietet Matlab die Möglichkeit, Ergebnisse vergleichsweise einfach visuell darzustellen.
Ähnlich zu komplexeren Programmiersprachen, wie beispielsweise C++, bietet auch Matlab die Möglichkeit der objektorientierten Programmierung über die Nutzung von Klassenobjekten. Dadurch können die Komponenten eines Fahrzeugmodells modular aufgebaut werden. Es ist möglich, bestimmte Variablen und Funktionen dem Anwender unzugänglich zu halten, sodass diese vor unbeabsichtigten Änderungen geschützt sind. Durch das Setzen von Zugriffsregeln können Variablen und Funktionen zusätzlich vor Änderungen geschützt werden. Indem bestimmte Schnittstellen zwischen einzelnen Objekten festgelegt werden, kann deren Kommunikation exakt vorgegeben werden. Im Folgenden wird das Konzept der objektorientierten Programmierung näher betrachtet, sowie Vorteile und Nachteile, vor allem gegenüber der Matlab Toolbox Simulink, aufgezeigt.
1.5.2 Objektorientierte Programmierung
In der objektorientierten Programmierung werden in einer Klasse die grundlegenden Eigenschaften und Funktionalitäten einer Instanz festgelegt, nicht jedoch das exakte Aussehen. Das detaillierte Aussehen einer einzelnen Instanz wird definiert, während diese aus der Klasse erzeugt wird. Eine Klasse stellt einen eigenen Datentyp dar, Instanzen dieser Klasse besitzen somit alle denselben Datentyp. Am Beispiel eines Fahrzeugs legt die Klasse beispielsweise das Gewicht, die Anzahl der Reifen und die Anzahl der Türen als konstant fest. Weitere Eigenschaften werden entweder beim Anlegen einer neuen Instanz zwingend benötigt (dependent) und müssen dem Konstruktor übergeben werden, oder können optional gesetzt werden. Wird nun eine Instanz dieses Datentyps abgeleitet, können spezifische Eigenschaften, wie Farbe, Leistung, oder andere, festgelegt werden. In der Klasse als konstant festgelegte Eigenschaften müssen nicht erneut zugewiesen werden. Spezifische Eigenschaften gelten nur für die jeweilige Instanz. Ein Beispiel einer Klasse ist in Abbildung 1.5 dargestellt. Des Weiteren können in einer Klasse Methoden implementiert werden, welche das Verhalten abgeleiteter Instanzen bestimmen. Zusätzlich können Eigenschaften, sowie Methoden, der Klasse vor ungewolltem oder unbefugtem Zugriff geschützt werden. Methoden werden immer auf genau eine Instanz des Datentyps angewandt. Um beispielsweise einen Vergleich zwischen zwei Instanzen desselben Datentyps zu ziehen, so muss eine Methode implementiert werden, welcher eine zusätzliche Instanz dieses Datentyps übergeben wird (12). Weiterhin bietet die objektorientierte Programmierung die Möglichkeit der Vererbung. Dabei übernehmen Objekte, welche aus einer Basisklasse abgeleitet werden, deren Eigenschaften, sodass diese nicht erneut definiert werden müssen. Dies führt vor allem bei komplexeren Modellen zu einer immensen Zeitersparnis. Zudem können komplexe Vorgänge, zum Beispiel die Simulation eines Elektrofahrzeugs, in beliebig kleine Teilsysteme geteilt und einzeln zusammengesetzt werden. Im Rahmen dieser Bachelorarbeit wurde beispielsweise ein Elektroauto in vier einzelne Systeme zerlegt (Abbildung 2.1). Ein großer Vorteil liegt dabei in der gedanklichen Abstraktion großer Prozesse. Weiterhin können einzelne Systeme oftmals getauscht werden, ohne andere Klassen zu verändern. Durch die Vererbung ergibt sich eine klare Struktur.
Abbildung 1.5: Beispielklasse (13)
Abbildung in dieser Leseprobe nicht enthalten
1.5.3 Vorteile und Nachteile der objektorientierten Programmierung
In diesem Abschnitt wird auf einige Vorteile, sowie Nachteile der objektorientierten Programmierung eingegangen.
Ein großer Vorteil ist die Abstraktion. Durch die Möglichkeit einzelne Komponenten modular aufzubauen sind Anwender in der Lage, auch komplexere Vorgänge durch eine klare Struktur nachzuvollziehen. Weiterhin bietet der modulare Aufbau eines Prozesses als Klassenstruktur den Vorteil, dass einzelne Module (Klassen) einfach austauschbar sind, teilweise ohne andere Klassen zu verändern. Wird beispielsweise eine andere Batterie verbaut, so kann das Objekt Batterie durch ein Modell der neuen Batterie ersetzt werden, ohne eine Neuprogrammierung aller anderen Objekte. Dadurch ergibt sich eine hohe Dynamik in der objektorientierten Programmierung. Durch den modularen Aufbau eines Modells können zudem Daten gekapselt werden, um Implementierungsdetails vor ungewollter Veränderung zu schützen. Hierzu können bestimmte Schnittstellen zwischen den einzelnen Objekten festgelegt werden. Nur über diese Schnittstellen können Daten zwischen den Objekten ausgetauscht werden. Zwar ist der Implementierungsaufwand zu Beginn eines objektorientierten Projekts vergleichsweise hoch, durch die Möglichkeit der Vererbung können allerdings aus der Basisklasse weitere Objekte mit denselben Eigenschaften abgeleitet werden, ohne diese erneut zu schreiben. Ein weiterer Vorteil ergibt sich durch die Möglichkeit Methoden zu erzeugen, durch welche bestimmte Eigenschaften einer Instanz neu initialisiert werden können. Als Folge dessen muss keine neue Instanz angelegt werden, wenn sich nur wenige Parameter ändern. Auf diese Weise können auch Eigenschaften ausgelesen werden.
Vergleicht man die objektorientierte Programmierung mit der Matlab Toolbox Simulink, so lassen sich einige Nachteile erkennen. Während in Simulink ein klarer Kontrollfluss durch Kapselung zu Blöcken visualisiert werden kann, ist dieser in der objektorientierten Programmierung vor allem bei komplexen Vorgängen nicht klar aus der Codestruktur zu erkennen. Einen großen Nachteil gegenüber Simulink stellt das Auslesen aus Kennlinien dar. Während in Simulink mit sogenannten Look-Up-Tables gearbeitet werden kann, muss in Matlab mit einer Reihe boolescher Operationen und Vergleichen gearbeitet werden (Abbildung 2.4). Dies ist erheblich fehleranfälliger. Ein weiteres Beispiel ist die Realisierung einer Signalrückführung. Diese kann in Simulink durch eine einzelne Verbindung realisiert werden, während der Solver die Funktionalität sicherstellt. Dahingegen ist das Signal in Matlab erst verfügbar, wenn es berechnet wurde. Zudem benötigt Simulink keine manuelle Eingabe von Startwerten für Systeme. Diese werden ebenfalls durch den Solver mit Default Werten belegt. Daraus folgt, dass vor allem elektrische Modelle – wie eine Batterie – erheblich einfacher in Simulink implementiert werden können. Trotz einiger Vorteile von Simulink in der Benutzerfreundlichkeit wurde im Rahmen dieser Bachelorarbeit die objektorientierte Programmierung gewählt. Diese hat eine deutlich geringere Laufzeit als Simulink und kann zudem ohne großen Mehraufwand als Software für Systeme realisiert werden. Zudem können Subtypen eines Systems geändert werden und alle weiteren Komponenten profitieren direkt davon. Weiterhin löst sich die Problemstellung durch objektorientierten Code von Simulink ab, sodass das Programm erheblich einfacher in andere Programmiersprachen übersetzt werden kann. Der größte Vorteil liegt allerdings in der späteren Anwendung. Eine Reichweitenschätzung wird im Fahrzeug auf Mikroprozessoren laufen, sodass sich eine Realisierung mittels Simulink dort sehr ineffizient auswirken würde.
[...]
-
-
-
-
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. -
-
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.