Forum: Analoge Elektronik und Schaltungstechnik Kennlinie vom Hallsensor- Gaspedal ändern


von Björn H. (misterminit1978)


Lesenswert?

Hallo zusammen,

ich habe mir für mein privates Gelände ein kleines E-Auto gebaut.
Funktioniert alles sehr gut soweit, bis auf die lineare Kennlinie des 
Gaspedals. Diese möchte ich so gestallten, dass sie erst schwächer 
ansteigt und zum am Ende stärker. Zur not auch logarithmisch.

Wenn mein Gaspedal nun, wie ich es bei der Bestellung angenommen habe, 
ein Poti gewesen wäre, hätte ich dieses einfach über einen parallelen 
Widerstand gelöst. Nun habe ich aber ein Gaspedal mit Hallsensor (49E)

Hat hier jemand eine Idee, wie ich dieses Problem, relativ einfach, 
gelöst bekomme?

Vielen Dank,
Björn

von Wolfgang (Gast)


Lesenswert?

Björn H. schrieb:
> Hat hier jemand eine Idee, wie ich dieses Problem, relativ einfach,
> gelöst bekomme?

Einfachheit liegt im Auge des Betrachters.

Über welche elektrischen Größe wird denn die Geschwindigkeit deines 
E-Auto gesteuert?

von Programmierer (Gast)


Lesenswert?

Wolfgang schrieb:
> Über welche elektrischen Größe wird denn die Geschwindigkeit deines
> E-Auto gesteuert?

Die Geschwindigkeit regelt (nicht nur steuert) normalerweise der Fahrer, 
oder gff. ein Tempomat. Der Motorcontroller regelt die elektrische 
Leistung (die mehr oder weniger linear zu Drehzahl * Drehmoment = 
mechanische Leistung ist), und die Sollgröße kommt vom Gaspedal. Beim 
Tempomaten gibt das Gaspedal die maximale Leistung vor.

Durch das Gaspedal eine Geschwindigkeit vorzugeben ist eine ganz 
schlechte Idee - stell dir vor das Auto blockiert weil ein Bordstein vor 
den Rädern ist oder irgendwas klemmt; wenn man dann das Pedal auch nur 
ein winziges Bisschen betätigt, gibt der Motorcontroller volle Leistung 
um mit maximaler Kraft die Blockade zu überwinden und die (geringe) 
Sollgeschwindigkeit zu erreichen. Das kann nur schief gehen. Daher 
regelt man die Leistung, was dann sehr ähnlich zum Verhalten eines 
Verbrenners ist, wo das Pedal die Luftzufuhr vorgibt.

Björn H. schrieb:
> Hat hier jemand eine Idee, wie ich dieses Problem, relativ einfach,
> gelöst bekomme?

Was hast du denn für einen Motorcontroller?

von tuctuc (Gast)


Lesenswert?

Hallo Biörn

ich habe diese Aufgabe bei einem E-Bike mittels einem 
dazwischengeschalteten Arduino Nano gelöst.
Vorteil: im Gegensatz zu Hardwarelösungen ist man dabei sehr flexibel, 
kann bei Probefahrten die bekömmlichste Kurve wählen, oder sogar 
definitiv für verschiedene Fahrprofile umschaltbar machen.
Hinweis: Wegen Besonderheiten meines Controllers (hoher Phasenstrom) 
wurde die kubische Funktion so ausgelegt, dass dabei das Gassignal auf 
3.3 V begrenzt wird.

https://www.pedelecforum.de/forum/index.php?threads/speedped-motorfahrrad-nur-in-der-schweiz-zugelassen-mit-s-pedelec-vergleichbar.9827/post-1162899

von Auch Karl, ein anderer (Gast)


Lesenswert?

Programmierer schrieb:
> Durch das Gaspedal eine Geschwindigkeit vorzugeben ist eine ganz
> schlechte Idee
Stimmt.

Programmierer schrieb:
> Daher regelt man die Leistung
Oh je. Sicher nicht.
Der Fahrerwunsch wird auf die ein oder andere Art in einen 
Drehmomentwunsch umgerechnet, das für den Fahrer schließlich als 
Zugkraft spürbar wird. Im einfachsten Fall z.b. mit einem  Kennfeld über 
Gaspedal und Drehzahl.

Björn H. schrieb:
> Hat hier jemand eine Idee, wie ich dieses Problem, relativ einfach,
> gelöst bekomme?

Das kommt auf deine Kenntnisse an und auf die Schnittstellen der 
Peripherie.

Das Pedal wird 0.5 bis 4.5 Volt machen oder was ähnliches. Problemlos 
mit einem Mikrocontroller einzulesen. Dann suchst du dir eben einen 
Controller mit passendem Ausgang für den Motorcontroller und so lange 
das die einzige Aufgabe ist reicht ein sehr simples Programm.
Bei der Möglichkeit kannst du gleich eine rudimentäre Diagnose einbauen 
und immer schön einen notaus Pilz in Hardware
Have fun.

von Björn H. (misterminit1978)


Lesenswert?

Hallo zusammen,

zur Beruhigung, es handelt sich um ein 450W Elektromomil, das 10 km/h 
schafft.

Das Gaspedal (der Hallsensor) bekommt vom Steuergerät 5V und gibt 0,5V 
bis 4,5V, als Steuerspannung linear zur Betätigung des Pedals zurück.
Nun hätte ich gerne die Kennlinie des Pedals geändert.
Die Peripherie können wir außer acht lassen, das Steuergerät benötigt ja 
nur eine Spannung zwischen 0 und 4,5V und steuert dann den 24V Motor.

Ich würde auch den Sensor tauschen, doch mir ist keiner bekannt, der 
logarithmisch funktioniert.

Gruß,
Björn

von Auch Karl, ein anderer (Gast)


Lesenswert?

Björn H. schrieb:
> zur Beruhigung, es handelt sich um ein 450W Elektromomil, das 10 km/h
> schafft.
Schade ;-)

Da du das im Analog Bereich postest, fällt ein Controller aus?
Logarithmieren kann man auch mit OPVs. Oder auch eine zweiteilige 
Kennlinie, quasi einen Knick, in der Kennlinie erzeugen.

von Björn H. (misterminit1978)


Lesenswert?

Hallo zusammen,

nein, ein Controller muss nicht ausfallen. Ich dachte nur es gibt eine 
einfachere Lösung und ich habe noch nie einen benutzt.

Funktioniert es mit dem Arduino Nano?
Wenn der programmiert ist, benötige ich nichts Weiteres, oder?

Dann kann man auch noch einen Softstart programmieren, oder?
Ich meine damit, dass die Spannung immer zu dem Wert läuft und nicht 
plötzlich voll Power gibt.

Ich habe mir die Software mal installiert. Kann jedoch nur VBasic 
programmieren und damit komme ich hier nicht weit.

Wie muss denn der Code lauten? Ich hoffe ich mache euch nicht zu viel 
Arbeit....

Gruß,
Björn

: Bearbeitet durch User
von Auch Karl, ein anderer (Gast)


Lesenswert?

Björn H. schrieb:
> nein, ein Controller muss nicht ausfallen. Ich dachte nur es gibt eine
> einfachere Lösung und ich habe noch nie einen benutzt.
>
> Funktioniert es mit dem Arduino Nano?
> Wenn der programmiert ist, benötige ich nichts Weiteres, oder?
Daher die Frage nach der Peripherie. Wenn der Motorcontroller auch eine 
analoge Spannung haben will brauchst du eine D/A Wandlung, und das hat 
der Arduino soweit ich weiß nur per pwm. Kann sein, dass das nicht 
schnell genug ist, aber ich weiß es nicht.

von Wolfgang (Gast)


Lesenswert?

Auch Karl, ein anderer schrieb:
> Daher die Frage nach der Peripherie. Wenn der Motorcontroller auch eine
> analoge Spannung haben will brauchst du eine D/A Wandlung, und das hat
> der Arduino soweit ich weiß nur per pwm. Kann sein, dass das nicht
> schnell genug ist, aber ich weiß es nicht.

Das PWM-Signal vom Arduino wird standardmäßig mit rund 500Hz. Selbst 
wenn man das durch einen Tiefpass mit 50Hz Grenzfrequenz schickt, sollte 
das doch noch für ein paar flotte Sprünge reichen. Oder wie schnell 
bewegt sich der Gasfuß?

von Thomas (kosmos)


Lesenswert?

D/A-Wandlung kann man auch durch ein Widerstandsnetzwerk machen.

von Anja (Gast)


Lesenswert?

Wolfgang schrieb:
> Oder wie schnell bewegt sich der Gasfuß?

Falsche Frage. Die Frage ist doch wie schnell tastet das Steuergerät ab 
(alle 1ms oder alle 10 ms) und wie stabil (<1% oder <0.1%) muss das 
Signal zwischen den Abtastungen sein. Ich fürchte 500 Hz PWM reicht bei 
weitem nicht aus.

Björn H. schrieb:
> bis auf die lineare Kennlinie des
> Gaspedals. Diese möchte ich so gestallten, dass sie erst schwächer
> ansteigt und zum am Ende stärker. Zur not auch logarithmisch.

Hmm, im Normalfall hat man erst mal einen Totbereich beim Gaspedal um 
die mechanischen und elektrischen Toleranzen (auch über Temperatur und 
Alterung) auszugleichen. Es wäre ja blöd wenn man die Leerlaufstellung 
aus Toleranzgründen nur bei manchen Potis/Steuergeräten erreicht.

In meinen Augen ist es sinnvoller das Problem über ein Kennfeld 
innerhalb des Steuergerätes zu lösen. (da wo der prozentuale Potiwert in 
ein Drehmoment gewandelt wird).

Gruß Anja

Beitrag #6389013 wurde vom Autor gelöscht.
von Maik (Gast)


Lesenswert?

Björn H. schrieb:

> Wie muss denn der Code lauten? Ich hoffe ich mache euch nicht zu viel
> Arbeit....

Abstrakt:

Wert mit Analogeingang einlesen, mit deiner gewünschten 
Logarithmusfunktion verrechnen und als PWM wieder ausgeben. Die PWM, wie 
weiter oben erwähnt, über einen RC-Tiefpass mit ca. 50Hz Grenzfrequenz 
glätten. Da der RC Tiefpass nicht sehr belastbar ist sollte noch ein 
Leitungstreiber / Impedanzwandler in Form einer 1:1 Verstärkung per OPV 
als Spannungsfolger ran - damit dann in deinen Motorcontroller.

Läuft bei mir so schon ewig in einem elektrifizierten Kinderauto.

von Björn H. (misterminit1978)


Lesenswert?

Hallo,
vielen Dank für die zahlreichen Antworten. Nur leider komme ich meiner 
Lösung nicht näher.

Hat jemand eine Idee wie ich die Spannung gewandelt bekomme? Eventuell 
mit OPV?
Oder tatsächlich mit dem Arduino Nano?

Ich kann das Steuergerät nicht umprogrammieren. Laßt uns bitte über 
praktische Lösungen sprechen, auch wenn diese nicht perfekt sind.

Danke,
Björn

von Maxe (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal ein analoger Versuch. Die Kennlinie, die ich in etwa erwarten 
würde, ist ebenfalls im Anhang dargestellt. Der Bereich B kann auch 
anders aussehen, vermutlich ist die Kurve dort nicht linear.

Der Bereich A ergibt sich durch den Spannungsteiler aus R1 und R2, in 
diesem Bereich sperrt der Transistor, bzw. beide. Ist die Zenerspannung 
und die Diodenspannung überschritten, aber T2 noch nicht voll 
durchgesteuert, so befindet man sich im Bereich B der Kennlinie. Die 
Steilheit der Kennlinie hängt dann vom Basisvorwiderstand Rb ab. Im 
Bereich C ist der Transistor T2 voll durchgesteuert, dann gilt etwa UA = 
UE - 0,7V. T2 könnte man evtl auch als FET ausführen, dann würden die 
0,7V nicht abfallen. Man bräuchte dann zusätzlich einen Widerstand 
zwischen Gate und UE. Das könnte dann sogar eine schön steigende Kurve 
geben.

Keine Ahnung, ob das so funktionieren würde. War jetzt nur mal eine 
Überlegung, bin auch nur Hobbyist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.