Simulation des elektronischen Fahrpedals im BMW i3

Das elektronische Fahrpedal ist Teil des Regelkreises zur Querführung in Kraftfahrzeugen. Es ermittelt permanent die Pedalstellung und gibt diese Führungsgröße an das Motorsteuergerät weiter, dessen Aufgabe darin besteht, eine dem Leistungswunsch des Fahrers entsprechende Stellgröße an die Regelstrecke zu übergeben. Im Verbrennungsmotor setzt sich das Stellglied aus den Drosselelementen des Ottomotors bzw. den Einspritzelementen des Dieselmotors zusammen, wohingegen im Elektrofahrzeug durch ein leistungselektronisches Stellglied (AC/DC-Wandler) die Gleichspannung der Hochvoltbatterie in eine n-phasige Wechselspannung für die Traktionsmaschine umgeformt wird.

Ziel dieses Projektes ist die Simulation des elektronischen Fahrpedals eines BMW i3 durch ein elektronisches Steuergerät mit Anbindung an den CAN-Bus bzw. mit Anbindung an das ROS-Framework.

[accordion]

[acc_item title=“Analyse des Fahrpedals“]

Die aktuelle Fahrpedalstellung wird zum Zwecke der Redundanz durch 2 Sensoren ermittelt und als analoges Spannungssignal übertragen. Es ergibt sich somit die dargestellte lineare Spannungskennlinie des elektronischen Fahrpedals. Die Ruhespannungen liegen bei 0,726 V für Spannungssignal 1 bzw. 0,363 V für Spannungssignal 2 und steigen bei maximaler Pedalbetätigung auf 4 V bzw. 2 V an. In Abhängigkeit der Pedalstellung x ergeben sich somit folgende Gleichungen:

[latexpage]
\begin{align*}
f(x)_{S1}=0,03274x+0,726\,[V] \\
f(x)_{S2}=0,01637x+0,363\,[V]
\end{align*}
[/acc_item]

[acc_item title=“Entwicklung des Steuergerätes“]

Erzeugen der Signalspannung
Die meisten kleineren Mikrocontroller sind nicht in der Lage analoge Spannungen auszugeben. Es gibt jedoch die Möglichkeit ein pulsweitenmoduliertes Signal (PWM) zu generieren und dieses anschließend durch eine nachgeschaltete Kombination aus Widerstand und Kondensator (Tiefpass) glätten zu lassen. Als nachteilig erweist sich jedoch die Tatsache, dass die Dimensionierung der Bauteile von der zu glättenden Spannung abhängt, welche sich jedoch dynamisch im Stellbereich der Gleichungen f(x)_S1 und f(x)_S2 ändert. Somit sind Oberwellen im geglätteten Spannungsverlauf nicht gänzlich ausgeschlossen. Eine weitere Alternative ist der Aufbau eines Widerstandsnetzwerkes, welches durch die freien Ports des Mikrocontrollers angesteuert wird. Die Genauigkeit hängt von der Anzahl der verwendeten Pins ab. Bspw. ergibt sich bei der Nutzung eines gesamten Ports eine Auflösung von 8 Bit (255 Werte). Da diese Auflösung sehr gering ist, stellt eine bessere Alternative die Nutzung eines externen Digital-Analog-Converters (DAC) dar, welcher über das Serial Peripheral Interface (SPI) des Mikrocontrollers angesteuert wird. Um die maximale Ausgangsspannung flexibel auszulegen und nicht auf 5 V zu begrenzen, wird die durch den MCP4922 erzeugte Spannung durch einen Operationsverstärker (OPV), welcher als nichtinvertierender Verstärker verschaltet ist nochmals erhöht.

Einlesen der Signalspannung

Um analoge Spannungen einzulesen, können die analogen Eingangspins des Mikrocontrollers genutzt werden. Zu beachten ist hier, dass die eingelesene Spannung zwischen 0 V und 5 V liegen muss. Zur Erweiterung dieses Bereiches auf den doppelten Spannungsbereich, kann wie in der nächsten Abbildung dargestellt ein einfacherer Spannungsteiler vorgeschaltet werden, welcher jede Eingangsspannung halbiert.

Signalumschaltung

Der Fahrer muss zu jedem Zeitpunkt die Möglichkeit haben, dass Steuergerät automatisiert oder manuell zu überstimmen. Um dieser Anforderung gerecht zu werden, muss eine Umschaltung zwischen Fahrpedal und Steuergerät stattfinden, welche im stromlosen Zustand die Verbindung zwischen Fahrzeug und Fahrpedal herstellt. Wie in folgender Abbildung dargestellt, kann dies mithilfe eines 2-Wechsler SMD-Signalrelais realisiert werden.

[/acc_item]

[acc_item title=“Inbetriebnahme“]

Die Programmierung des Mikrocontrollers erfolgt unter der integrierten Entwicklungsumgebung Atmel Studio 7 in C mithilfe des Programmier und On-Chip-Debuggers Atmel-ICE über die JTAG-Schnittstelle. Die wesentliche Aufgabe des Hauptprogrammes besteht darin, die CAN-Botschaften mit den Informationen der Fahrpedalstellung zyklisch zu versenden, die CAN-Botschaften für die Steuerung des Fahrpedals einzulesen und den DAC entsprechend der hinterlegten Fahrpedal-Kennlinie anzusteuern. Weiterhin erfolgt hier die Prüfung auf Abbruchbedingungen, welche bspw. durch den Fahrer bei laufender Simulation oder durch eine entsprechende CAN-Botschaft ausgelöst werden kann.

Mittels rqt_graph wird die ROS-interne Kommunikation deutlich.

    Die /socketcan_bridge ist die Verbindung zum CAN-Netzwerk. Sie kann Nachrichten senden (/sent_messages) oder empfangen (/received_messages).
    Durch den /ros_drivepedal_node werden die CAN-Botschaften verarbeitet und die Informationen des elektronischen Fahrpedals extrahiert.
    Das topic /drivepedal enthält die Informationen der aktuellen Fahrpedalposition in Volt und Prozent.
    /cmd_vel wird verwendet um die gewünschte Fahrpedalstellung an /ros_drivepedal_node und weiterhin an die /socketcan\_bridge zu übermitteln.

[GDC_row]
[GDC_column size=“half“]

[/GDC_column]
[GDC_column size=“half“]

[/GDC_column]
[/GDC_row]

[/acc_item]

[/accordion]