Erstellen eines benutzerdefinierten BLDC-Motor-Controllers für zuverlässige Leistung

Hintergrund und Motivation

Anfangs waren wir auf die vorinstallierten Elektronische Drehzahlregler (ESCs), die unseren Platooning-Demonstrator begleiteten, der kleine Hobby-RC-Autos verwendet, in unseren kontinuierlichen Bemühungen, seine Leistung zu entwickeln und zu verbessern. Durch die Verwendung eines PWM-Signals wurden diese ESCs mit den Motoren der Autos verbunden und ermöglichten so eine grundlegende Steuerung. Sie hatten jedoch erhebliche Nachteile, darunter eine instabile Geschwindigkeitsregelung und wenig ESC-Feedback. Diese Mängel veranlassten uns, einen benutzerdefinierten Motorcontroller zu entwickeln, der unseren speziellen Anforderungen entspricht.

Probleme mit aktuellen ESCs

Die Hauptprobleme der vorinstallierten ESCs bestanden in:

Das Fehlen von Informationen über die Motordrehzahl oder Fehlerzustände durch die ESCs erschwerte die Diagnose von Problemen wie dem Überstromschutz, der Fehler nur durch eine blinkende LED signalisierte.
Die Geschwindigkeitsregelung war unregelmäßig und änderte sich, wenn sich die Batteriespannung änderte. Für unser Szenario, in dem es sehr wichtig war, eine konstante Geschwindigkeit beizubehalten, war diese Inkonsistenz inakzeptabel.
Nach einem Absturz wird das notwendige menschliche Ein- und Ausschalten der ESCs zurückgesetzt, wodurch die Effizienz und Automatisierung unseres Systems beeinträchtigt wird.

Benutzerdefiniertes BLDC-Motorsteuerungsdesign

Um diese Schwierigkeiten zu lösen, begannen wir mit dem Bau unseres eigenen ESC mit den folgenden Hauptmerkmalen:

Drehzahlregelung: Möglichkeit zur autonomen Regelung der Motordrehzahl.
Ermöglicht Echtzeit-Feedback und Steuerung über eine serielle Schnittstelle in bidirektionale Kommunikation.
Fehler werden automatisch erkannt, gemeldet und behoben unter Fehlerberichterstattung und -behandlung.
Regelt optional die Lenkservofunktion des Fahrzeugs, entsprechend der Kompatibilität mit Steering Control.

Technisch-methodischer Ansatz

Software

Wir haben die SimpleFOC-Bibliothek verwendet, bekannt für starke BLDC-Motorsteuerung Kapazität. SimpleFOC verwendet feldorientierte Steuerungstechniken (FOC), um unter anderem Geschwindigkeit, Winkel und Drehmoment zu ermöglichen. Um die genaue Kontrolle über den Motor zu behalten, interagiert diese Bibliothek mit Sensoren wie Drehgebern und Hallsensoren.

Hardware

Der weltweite Halbleitermangel beschränkte unsere Hardwareauswahl, daher entschieden wir uns für den Trinamic TMC6140 IC, der auch bei Verfügbarkeitsproblemen notwendige Funktionen wie Stromüberwachung und Kurzschlusserkennung bietet. Aufgrund seiner Verarbeitungskapazität und Verfügbarkeit haben wir ihn mit einem STM32-Mikrocontroller kombiniert, der über das Arduino-Framework programmierbar ist.

Entwicklungsprozess

Wir haben den Controller-Prototyp auf Steckplatinen mithilfe von Entwicklungsplatinen für TMC6140 und STM32 erstellt und so den Aufbau iterativ verbessert.
Von Steckbrettern bis hin zu maßgeschneiderten Leiterplatten haben wir für das Design KiCAD verwendet und dabei gründliche Erdungs- und Stromverteilungstechniken eingesetzt, um Spannungsspitzen zu reduzieren.
Nach der Hardwarevalidierung haben wir einen ROS2-Knoten erstellt, um den Motorcontroller in unsere aktuelle Softwareumgebung einzubinden und so eine einwandfreie Steuerung und Rückmeldung innerhalb des Platooning-Demonstrators zu ermöglichen.

Schlussfolgerungen und Ergebnisse

Durch iteratives Design und gründliche Tests haben wir effektiv einen maßgeschneiderten BLDC-Motorcontroller entwickelt, der unsere speziellen Anforderungen erfüllt. Dieser neue Controller hat die Zuverlässigkeit und Leistung unserer Platooning-Demonstration erheblich verbessert, indem er eine konsistente Geschwindigkeitskontrolle, umfassende Feedbacksysteme und eine starke Fehlerbehandlung bietet.

Wir möchten die Bemühungen der größeren Community zur Entwicklung anspruchsvoller Motorsteuerungssysteme unterstützen, indem wir unsere Hardware-Designs und Software öffentlich veröffentlichen. Dieses Projekt unterstreicht die Notwendigkeit einer Open-Source-Zusammenarbeit sowie maßgeschneiderter Lösungen zur Bewältigung bestimmter technischer Schwierigkeiten.