Benutzer-Werkzeuge

Webseiten-Werkzeuge


elektrotechnik:barmalcontroller:foccontroller

Barmal FOC Controller X2.x + X4.x (12 und 24 Fets)

Allgemeines

Mein Ziel war einen FOC Kontroller zu bauen, der völlig „offen“ ist. D.h. es sollen alle Motorrelevanten Parameter via PC frei programmierbar sein und zwar innerhalb von paar „Klicks“ und am besten über eine grafische Oberfläche. Der Kontroller sollte durch die freie Parametrierbarkeit universell alle sensorbehafteten BLDC-Motoren bedienen können und sollte dem Anwender freie Wahl lassen wie er den Motor betreiben möchte.

Entstanden ist der X2.x und X4.x, mit 12 und 24 Fets der relativ klein aber doch robust und Stromstark ist. Die Software wird ständig verbessert und bearbeitet um die Performance zu optimieren.

Technische Daten:

Für Sensorbehaftete Motoren (3-digitale Hallsensoren, mit 60°/120° Versatz).

  • Rotorlagegeber: Digital-Hallsensor.
  • Spannungsbereich: 24V – 90V.
  • Strom Akku: 24-48V – 50A, 48V-84V – 40A* (kurzzeitig 3 x Imax!).
  • Strom Phase: 150A*.
  • Strom Reku: in Vorbereitung.
  • Eigenstromverbrauch: 80mA.
  • Kommutierungsart: FOC, Sinus mit SVM.
  • Max. Rückwärtsspannung ca: 90V (einstellbar, in Vorbereitung).
  • Leiterplattengröße: 119 x 88 mm (Multilayer).
  • Gesamtgröße mit Kühlkörper: 120 x 94 x 32 mm (Alugehäuse).
  • Gewicht: xxxg ohne und xxxg mit Gehäuse.
  • Schnittstelle: Seriell (RS232).
  • Update: Ja, via RS232.
  • Anschlüsse: Sollwert analog 0…5V
  • Freigabe
  • Bremse
  • Drehrichtung
  • Lüfteranschluss (optional, Temperaturgeregelt) 24V/0,5A
  • Hall A (digital)
  • Hall B (digital)
  • Hall C (digital)

Der Kontroller ist mit dem Bootloader ausgestattet, was eine schnelle und unkomplizierte Softwareupdate oder auch individuelle Anpassung via RS232 Schnittstelle ermöglicht.

Hardware X2.x

Parametriersoftware

Einstellbare Parameter:

Ausgabe-Informationen:
  • Speed: zeigt aktuelle Motordrehzahl.
  • U batt: Akkuspannung.
  • I Accu: Akkustrom
  • I Ph A, B, C: Motorstrom, Phase A, B und C (RMS).
  • Hall A, B, C: Hallsensor-Zustände (0 oder 1). Das kann z.B. als schnelle Diagnose des Hallsensor-Zustandes benutzt werden.
  • Autoset. (siehe bitte „Erstinbetriebnahme“). Die Funktion passt den Kontroller automatisch an den Motor an.
  • ⇒A⇒B⇒C mit dem Button werden Softwareseitig die Hallsensoren vertauscht. Diese Funktion erleichtert die Erstinbetriebnahme, wo die richtige Zuordnung den Hallsensoren zu den Motorphasen nicht bekannt ist. Der Button hat 12 mögliche Kombinationen um die richtige Hallzuordnung zu den Motorphasen zu finden. D.h. der Motor mit den Hallsensoren kann beliebig an Kontroller angeschlossen werden und die passende Konfiguration wird per Knopfdruck gefunden.

Vorgehensweise: Motor und Kontroller verbinden, Parametriersoftware starten. Sollwert leicht aufdrehen, damit der Motor eine Bewegung zeigt. Falls der Motor zuckt den Knopf nacheinander durchdrücken bis er anfängt sich leise und mit kleiner Stromaufnahme zu drehen. Sobald die richtige Konfiguration gefunden wurde, kann diese gespeichert werden.

  • „Hall Korr“ (Hallkorrektur) ist eine Funktion zur Verbesserung der Laufeigenschaften des Motors. Da die meisten Motoren eine mehr oder weniger ausgeprägte Toleranz in der Sensorplatzierung haben (Position der Halls zueinander und deren Ausrichtung zum Stator), ermöglicht diese Funktion diese Toleranzen softwareseitig zu minimieren. Es stehen 4 Stufen zur Verfügung In jeder Stufe wird der Versatz/Fehler anders behandelt/berechnet und wirkt sich unterschiedlich auf unterschiedliche Motoren aus. Auswahl der Korrektur muss deshalb erprobt werden.

Drehzahl und Abschaltspannung:

  • Motor n max: Hier soll die maximale Motordrehzahl eingestellt werden, die der Motor bei gewünschter Spannung erreichen kann. Drehzahl max wird bis 500Upm in 10-er Schritten und ab 500Upm in 100-er Schritten hoch/runter gesetzt.
  • U batt cut off HV/LV: Hier wird die obere und untere (Akku)Spannungsabschaltgrenze definiert, bei der der Motor abschaltet.

Parameter – Zeit(Time):

  • Ramp: Hochlauframpe nach dem Einschalten des Kontrollers (im Bereich 100 – 1000ms).

Bitte beachten: Die Hochlauframpe muss exakt mit den Kp und Ki-Regelparameter an jeweiligen Motor und entsprechende Anwendung abgestimmt werden um dessen einwandfreie Funktionalität zu erreichen. Z.B. bei einer zu lang eingestellten Hochlauframpe, zu klein gewählten Kp und Ki-Parameter und kleiner Blockierabschaltzeit wird der Motor möglicherweise überhaupt nicht starten können, denn die Elektronik erkennt keine Bewegung des Rotors und springt anschließend in die Abschaltautomatik.

  • Analog gilt das für den Betrieb mit der Blockierabschaltung.
  • l/r: Umschaltpause zwischen Links und Rechtslauf (im Bereich 100 – 5000ms),
  • t-off: Abschaltzeit im Blockierfall (im Bereich 100 – 10000ms). Nach Ansprechen wird ein Neustart erforderlich um die Funktion zu deaktivieren.

Startparameter:

  • l/r: hier wird Links oder Rechtslauf definiert, geändert werden.
  • Br: Brake (Bremse. Es handelt sich hier um die Kurzschlussbremse). Die Kurzschlussbremse schließt beim Aktivieren die Motorphasen kurz um eine Bremswirkung zu erreichen.

Bei 0 ist die Bremse inaktiv und nach dem Einschalten ist die Funktion inaktiv. Um die Bremse zu aktivieren muss der Eingang des Kontrollers „Br“ gegen Masse geschaltet werden.

Bei 1 werden die Phasen kurzgeschlossen und nach dem Einschalten bremst der Motor. Um die Bremse zu lösen muss der Eingang des Kontrollers „Br“ gegen Masse geschaltet werden.

  • Fr: (Enable/Freigabe). Motorfreigabe.

Bei 0 ist die Freigabe inaktiv und nach dem Einschalten ist die Funktion inaktiv. Um die Bremse zu aktivieren muss der Eingang des Kontrollers „Br“ gegen Masse geschaltet werden.

Bei 1 werden die Phasen kurzgeschlossen und nach dem Einschalten bremst der Motor. Um die Bremse zu lösen muss der Eingang des Kontrollers „Br“ gegen Masse geschaltet werden.

  • Re aus: keine Funktion.
  • FOC / Square: keine Funktion.
  • n-Delay: (Sollwertverzögerung. Damit wird eine Verzögerte Reaktion des Gasgriffes erzwungen um z.B. das sofortige Losfahren bei zufällig betätigtem Gasgriff zu vermeiden)
  • Tempomat: Beim Wert 0 ist Tempomat inaktiv. Wert 1 bis 60 entspricht der Zeit in Sekunden, in der Die Funktion aktiviert wird. D.h. bei einem Wert von bspw. 5 ist die Tempomatfunktion aktiviert und der Gasgriff wird permanent überwacht. Sobald innerhalb der eingestellten Zeit keine nennenswerte Veränderung am Gasgriff erkannt wurde, speichert der Kontroller die Aktuelle Position des Gasgriffes und die Drehzahl wird vom Kontroller vorgegeben. Danach kann der Gasgriff losgelassen werden. Um die Funktion zu deaktivieren muss der Gasgriff wieder auf Maximum bewegt oder einer der Eingänge: En oder Br betätigt werden.
  • I motor drive: Hier wird der maximaler Motorstrom in Ampere eingestellt. Es ist der tatsächliche Phasenstrom, der beim Fahren durch die Wicklung fließt.
  • I motor recu: in Vorbereitung.
  • Motor Magnet: hier muss die Rotormagnet-Anzahl parametriert werden. Es ist äußerst wichtig die Magnetanzahl des Motors zu definieren, um die Enwandfreie Funktion des Kontrollers zu definieren. Magnetanzahl: 4 bis 60.
  • Angle (Phase) Offset left / right:

Diese Einstellung gilt nur für die Sinuskommutierung und ist für beide Rotorlagegeber gültig (Analog und Digitalhall). Da die meisten Motoren eine gewisse Toleranz in der Hallsensor-Positionierung aufweisen, wurde diese Option hinzugefügt um diese per Software auszugleichen und optimale Motorlaufeigenschaften zu garantieren. Mit dem Offset wird der Motor-Nullpunkt definiert, in dem der Motor in beiden Richtungen identische Laufeigenschaften definiert (Stromaufnahme und Drehzahl). Der Bereich beträgt 1 bis 360° für beide Drehrichtungen. Die Winkelkorrektur muss empirisch ermittelt werden in dem der Motor zwischen links und rechts umgeschaltet und Offset solange hinzugefügt wird bis der Motor entweder auf den Strom oder der blockkommutierten Drehzahl sich einpendelt (siehe auch Erstinbetriebnahme).

  • I Accu Drive: Hier wird der maximale Akkustrom definiert, der beim Fahren aus dem Akku entnommen wird.
  • I Accu Recu: in Vorbereitung.
  • Throttle max / min:

Achtung! Der Kontroller ist mit einem analogen Sollwerteingang für den Spannungsbereich von 0…5V ausgestattet. Die meisten Sollwertgeber (Gasgriff, Daumengas) sind mit Hanngeber ausgestattet, die eine Spannung im Bereich von ca. 1 bis 4V liefern. Falls ein Gasgriff / Daumengas dieses Typs an Kontroller angeschlossen wird und der parametrierter Eingangsbereich zwischen 0…5V liegt, wird die am Eingang angelegte Spannung von ca. 1V als Minimum erkannt und der Motor wird drehen.

Hier kann die Gasgriff / Daumengas Soll-Eigangsspannung angepasst werden. Das bedeutet, der Sollwerteingang kann im oberen und unterem Bereich z.B. auf den Gasgriff angepasst werden. Der Sollwert liegt im Normalfall im Bereich 0….5V. Falls aber die Sollwertvorgabe im Bereich 1…4V liegen soll, so kann der Wert hier angepasst / verändert werden, damit der Motor im ganzen Drehzahlbereich drehen kann. Mit den Tasten + / - können beide Werte für den oberen und unteren Bereich angepasst werden. Diese Einstellung wird im EEPROM abgespeichert. Die schematische Darstellung sieht wie folgt aus:

Sollwertvorgabe in V ⇒ |0————-1———— 4 ————5|

Motordrehzahl in % ⇒ |0——————————————100|

Sollwertvorgabe in V ⇒ |0————-1————- 4 ————5|

Motordrehzahl in % ⇒ |————— 0 ———– 100 ————–|

  • Id (Field): keine Funktion.
  • Id Kp: Regelparameter Kp (Proportional) für die Feldkomponente (Feldbildenden Strom).
  • Id Ki: Regelparameter Ki (Integral) für die Feldkomponente (Feldbildenden Strom).
  • Iq (Current): keine Funktion.
  • Iq Kp: Regelparameter Kp (Proportional) für den Drehmomentbildenden Strom.
  • Iq Ki: Regelparameter Ki (Integral) für den Drehmomentbildenden Strom.

Die Startparameter: Startrichtung, Freigabe, Bremse haben Zustand 0 oder 1, beispielsweise:

für die Freigabe:

  • 0 ⇒ nach dem Einschalten der Elektronik ist der Motor freigegeben und dreht, solange bis die Klemme „Freigabe“ gegen Gnd. geschaltet wird.

für die Freigabe:

  • 1 ⇒ nach dem Einschalten der Elektronik ist der Motor nicht freigegeben und dreht nicht, solange bis die Klemme „Freigabe“ gegen Gnd. geschaltet wird.

für die Bremse:

  • 0 ⇒ nach dem Einschalten der Elektronik dreht der Motor, solange bis die Klemme „Bremse“ gegen Gnd. geschaltet wird.

für die Bremse:

  • 1 ⇒ nach dem Einschalten der Elektronik bremst der Motor und dreht nicht, solange bis die Klemme „Bremse“ gegen Gnd. geschaltet wird.

Analog sind weitere Parameter zu verstehen.

Erstinbetriebnahme.

1. Kontroller mit Motor verbinden. Belegung der einzelnen Motorlitzen ist nicht relevant. Es muss jedoch beachtet werden, die Motorphasen mit Sensorlitzen nicht zu vertauschen.

2. Gasgriff / Potentiometer anschliessen und auf 0 drehen/stellen.

3. Serielle Schnittstelle am Kontroller entweder direkt oder über einen RS232ó USB-Konverter verbinden.

4. Sobald alle Verbindungen Ordnungsgemäß hergestellt sind (Achtung Kurzschlussgefahr!) kann der Kontroller mit einer Stromquelle verbunden werden. Dazu sollte, insbesondere bei einer Erstinbetriebnahme ein Stromgeregeltes Netzteil verwendet werden. Die Stromgrenze sollte nicht größer als 3…4A und Spannung von 24…36V sein.

5. Parametrierprogramm am PC starten, entsprechend Portnummer wählen und Knopf „Port öffnen“ drücken.

6. Alles Einschalten. Kurz danach sollten alle Standardparameter des Kontrollers im Programm sichtbar werden.

Bitte unbedingt darauf achten den Motor zu befestigen / fest einzuspannen!

Der Kontroller kann entweder manuell oder mithilfe der Autoset-Funktion an Motor parametriert werden.

Manuelle Parametrierung.

Schritte 1 bis 6 durchgeführt. 1. Gasgriff / Poti solange drehen, bis der Motor sich anfängt zu drehen / bewegen. An der Position Gasgriff / Poti blockieren um die Motorbewegung beobachten zu können.

2. Wert für Id Ki auf 0 stellen.

3. Falls der Motor nicht dreht, Button Ha⇒Hb⇒Hc solange durchklicken bis der Motor eine (auch erst mal schwere) Bewegung zeigt und anfängt zu drehen.

4. Knopf „Phse offset left“ oder „Phse offset right” durchklicken. Dabei den aufgenommenen Strom (Phasen wie auch Akkustrom) beobachten und den Offset-Wert solange (in Richtung Motorstrom-Minimum) verstellen bis der Motor gleichmäßig läuft und dabei Minimum an Strom verbraucht. Mit dem Offset für links oder rechts kann so Motorstrom –Minima gefunden werden um einen optimalen Motoroffset zu gewährleisten. Offsetsuche soll für beide Drehrichtungen durchgeführt werden!

5. Sobald die Strom-Minima für Links sowie Rechtslauf gefunden wurden, sollten die Parameter gespeichert werden.

6. Testlauf durchführen und anschließend Id Ki parametrieren.

Automatische Parametrierung.

Um den Motor zu parametrieren kann die Funktion Autoset benutzt werden. In dem Fall muss der Knopf „Autoset“ gedrückt werden. Kurz danach fängt der Motor an sich langsam zu drehen und es folgt die automatische Suche der Hallsensor-Konfiguration. Sobald die richtige Hall-Reihenfolge gefunden wurde, beschleunigt und dreht der Motor in beide Richtungen. Dabei kann der Motor merkwürdige Geräusche generieren. Gleichzeitig kann beobachtet werden wie der Phasen Offset für beide Drehrichtungen geändert wird. Sobald dieser Vorgang endet, bleibt der Motor stehen und die Parameter sollen gespeichert werden.

Bitte beachten, jeder Motor hat andere Eigenschaften und Beriebscharakteristika. Daher ist es ratsam die Autoset-Funktion zu überprüfen.

Dies kann wie folgt vorgenommen werden: Nach dem die Autoset-Routine beendet wurde bleiben die Parameter für:

  • Iq Kp ⇒
  • Iq Ki ⇒
  • Id Kp ⇒
  • Id Ki ⇒
  • Phasenstrom ⇒
  • Akkustrom ⇒

standardmäßig erhalten.

Um die Einstellungen zu überprüfen sollte der Wert für den Feldstrom-Regelparameter Id Ki auf 0 gestellt werden. Den Motor laufen lassen und entweder auf dem Strommesser extern oder an der Ausgabe am PC den Phasenstrom mit Akkustrom beobachten. Falls der Motor deutlich mehr Strom zieht wie vorher (bei der Einstellung Id Ki = xx) sollte der Phasenoffset für Links oder Rechtsrichtung geändert werden. Dabei solange den Offset durchklicken, bis der Motorstrom/Akkustrom sein Minima erreicht hat.

Dies sollte für beide Richtungen durchgeführt werden!

Nachdem die Parametrierung erfolgreich beendet wurde, kann anschließend der Testlauch erfolgen. Dabei ist zu beachten, dass der Motor sich im Freilauf befindet und beim Drehen im Leerlauf nicht zu viel Strom verbraucht. Ggfs. Nachjustierung durchführen und Parameter speichern.

Parameter Iq / Id. Stamdadrmäßig wird der Kontroller mit den o.g. Parameter zum Testen ausgeliefert. Diese Sollten jedoch im Zielsystem (Fahrzeug) empirisch ermittelt werden.

Parameter Iq mit den Regelkoeffizienten Kp und Ki: Beide Parameter Kp und Ki sind für den Drehmomentbildenden Strom zuständig und sind auch entsprechend am Fahrzeug nach Wunsch zur Regelgeschwindigkeit und Dynamik einzustellen. Kp ist der Proportionalfaktor und Ki der Integral. Kp regelt schnell aus. Das bedeutet, je größer der Wert ist, desto schneller reagiert der Motor auf die Regelabweichung. Kp hinterlässt jedoch eine bleibende Regeldifferenz. Ki ist langsamer, dafür aber genauer und er gleicht die vom Kp hinterlassene Regeldifferenz vollständig aus.

Vor dem Parametrieren vergewissern Sie sich dass der Phasen-Offset richtig eingestellt ist und der Motor Minima an Strom zieht!

Um die Parameter einzustellen Poti / Gasgriff auf Maximum stellen, danach kann grob der Kp-Wert auf beispielsweise 2000 parametriert werden. Werte zwischenspeichern. Danach Ki von 0 solange hochstellen bis merklich keine Drehzahlerhöhung stattfindet. Danach Werte für das Feld Id mit den Regelparameter Kp und Ki verstellen und ggf. auch korrigieren.

Feld-Stromparameter Kp und Ki werden simultan mit den Parametern für Iq verstellt. Um diese nachträglich zu verändern müssen entsprechende Knöpfe betätigt werden.

Hardwarebeschreibung:

Die Elektronik hat Hardwareseitig Steuereingänge für: · Kurzschlussbremse, Schließer auf Gnd. · Freigabe, Schließer auf Gnd. · Drehrichtung, Schließer auf Gnd. · Sollwerteingang 0 – 5V. · Hilfsspannung 12V, 10mA.

Sowie Ausgänge für: · Lüfteranschluss (optional) 24V, 0,5A max. · Serielle Schnittstelle RS232

elektrotechnik/barmalcontroller/foccontroller.txt · Zuletzt geändert: 2019/05/02 18:36 (Externe Bearbeitung)