-
Gebiet der Erfindung
-
Die Erfindung betrifft ein Verfahren zum synchronen Positionieren von mindestens zwei bürstenlosen Elektromotoren und einen bürstenlosen Elektromotor zur Durchführung des Verfahrens.
-
Stand der Technik
-
In kinematischen Systemen, bei denen aus Stabilitätsgründen eine Achse synchron von zwei Seiten (z. B. mittels zwei Getrieben) angetrieben werden muss (Beispiel: Elektrische Sitzverstellungen, Spoilerantriebe, Schiebdächer, Verdecke sowie zahlreiche non-automotive Applikationen) und die Getriebe synchron bewegt werden müssen, damit sich die mechanische Konstruktion nicht verspannt, ist es bekannt einen Elektromotor zu verwenden, dessen Welle über mechanische Kopplung mit den beiden Getrieben bzw. Enden der angetrieben Achse verbunden ist. Dies kann z. B. über eine durchgeführte Motorwelle und flexible Wellen zu den Getrieben oder einem Motor am ersten Getriebe und Schubstangen zum zweiten Getriebe erreicht werden.
-
Der mechanische Aufwand eines solchen gekoppelten Getriebes bedeutet hohe Wirkungsgradverluste des Systems (ca. 30%) in den Wellen und relativ hohes Gewicht der Gesamtkonstruktion. Außerdem kann der Bereich zwischen den beiden Getrieben nicht für andere Applikationen genutzt werden, da hier die Verbindungswellen bzw. Schubstangen angeordnet sind (Beispiel Sitzverstellung: Die Getriebe befinden sich außen und der Motor sitzt zwischen den Getrieben im Komfortbereich des Kunden, z. B. unter dem Sitzpolster). Der Raum für den Antriebsmotor muss bei der Konstruktion berücksichtigt werden (dickere Polster, klobigere Optik). Die mechanische Konstruktion zur Anbindung der relativ weit vom Motor entfernten Getriebe an eine Welle birgt außerdem unerwünschte Geräuschentwicklung.
-
Es ist denkbar, zur Lösung des Problems Servomotoren einzusetzen, die mittels eines externen Steuergeräts synchron angesteuert und positioniert werden. Für die meisten Anwendungsfälle ist ein solcher Servoantrieb jedoch zu aufwändig und teuer.
-
Offenbarung der Erfindung
-
Es ist die Aufgabe der Erfindung, ein Verfahren zum synchronen Positionieren von mindestens zwei bürstenlosen Elektromotoren und einen entsprechenden Elektromotor zur Durchführung des Verfahrens anzugeben, wobei die Motoren sich in einem engen Toleranzbereich synchron zueinander bewegen sollen, ohne dass eine mechanische Verbindung besteht und ohne dass ein externes Steuergerät die Bewegungen der einzelnen Motoren koordiniert.
-
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren gemäß den Merkmalen des Patentanspruchs 1 gelöst. Ein geeigneter Elektromotor zur Durchführung des Verfahrens ist im Anspruch 9 angegeben.
-
Bevorzugte Ausgestaltungen und weitere vorteilhafte Merkmale der Erfindung sind Gegenstand der abhängigen Ansprüche.
-
Es ist ein Verfahren zum synchronen Positionieren von mindestens zwei bürstenlosen Elektromotoren beschrieben, wobei jeder Motor eine eigene elektronische Motorsteuerung mit einem Drehzahlregler besitzt. Das Verfahren umfasst die Schritte Verbinden der Motoren über eine an der Motorsteuerung vorhandene Datenschnittstelle, zählen der Anzahl der Kommutierungen jedes Motors durch die jeweilige Motorsteuerung zur Bestimmung der aktuellen Motorposition jedes Motors, übermitteln von Daten über die aktuellen Motorpositionen zwischen den Motoren über die Datenschnittstelle, verwenden eines Positionsreglers in jeder Motorsteuerung, wobei der Positionsregler dem Drehzahlregler jedes Motors überlagert ist und aktiv in die Drehzahlvorgaben des jeweiligen Motors eingreift, berechnen eines Positionsunterschieds der aktuellen Motorpositionen der Motoren als Eingangsgröße des jeweiligen Positionsreglers der Motoren, und ausregeln des aktuellen Positionsunterschieds bis auf einen vorgegebenen Positionsunterschied durch den Positionsregler jedes Motors, indem die Drehzahlvorgabe mindestens eines Motors verändert wird.
-
Die Erfindung beruht auf dem Einsatz von zwei getrennten elektronisch kommutierten Motoren ohne mechanische Kopplung zum Antrieb, beispielsweise einer gemeinsamen Achse. Dadurch wird der Antrieb relativ klein und hat ein geringeres Gewicht im Vergleich zu einem Motor mit mechanischer Kopplung über flexible Wellen oder Schubstangen. Ferner verbessert sich der Wirkungsgrad erheblich, und die Geräuschentwicklung des Gesamtsystems wird stark reduziert.
-
Die Motoren können jeweils direkt an ein eigenes Getriebe gekoppelt sein. Die Getriebe sind mit der anzutreibenden Achse verbunden. Über eine Datenschnittstelle, welche die Motorsteuerungen der Motoren miteinander verbindet, werden die Motoren untereinander synchronisiert. Als Datenschnittstelle können bekannte, vorzugsweise serielle Schnittstellen und Bussysteme, wie beispielsweise LIN (Local Interconnect Network), SENT (Single Edge Nibble Transmission), PSI5 (Peripheral Sensor Interface 5), SPI (Serial Peripheral Interface) verwendet werden. Es können auch serielle Bussysteme, wie z. B. CAN (Controller Area Network) verwendet werden. Entscheidend für die Einsetzbarkeit des Systems ist ein enger Toleranzbereich des Synchronisierungsfehlers in allen denkbaren Szenarien. Wenn beispielsweise einer der beiden Motoren blockiert, darf sich die mechanische Konstruktion nicht verspannen.
-
Die Erfindung bezieht sich auf die Art und Weise der Regelung der Motoren zum Erreichen der Synchronität über eine Datenschnittstelle, vorzugsweise eine serielle Schnittstelle (im günstigsten Fall mit nur einer Verbindungsleitung). Initiator sind dabei lediglich die beiden Motoren, es wird keine externe Steuereinheit benötigt. Die Schnittstelle des Gesamtsystems zur „Außenwelt” kann wie ein einzelner Motor betrachtet werden. Dieses System ist robust gegen einseitige mechanische Mehrbelastungen, mechanische Asymmetrien der beiden Antriebsseiten, Blockierung nur eines Motors und regelt auch ein bereits verspanntes System in ein synchrones System aus. Es zeichnet sich durch geringes Gewicht, hohen Wirkungsgrad und geringe Geräuschentwicklung aus.
-
Jeder Motor besitzt eine integrierte elektronische Motorsteuerung zur Bewerkstelligung der Kommutierung. Die Motorsteuerungen der Motoren werden über eine (oder mehrere) Signalleitungen miteinander verbunden. Die Motorsteuerung jedes Motors zählt die Kommutierungen ihres Motors mit und verwendet diese als Positionsinformation. Beide Motoren werden unabhängig voneinander drehzahlgeregelt. Dem Drehzahlregler jedes Motors ist ein Positionsregler überlagert, der aktiv in die Drehzahlvorgaben des jeweiligen Motors eingreift. Der Datenaustausch zwischen den Motorsteuerungen der Motoren erfolgt dabei über das verwendete serielle Datenprotokoll. Die Eingangsgröße des Positionsreglers ist der Positionsunterschied des jeweiligen Motors zum am weitesten zurückliegenden Motor des Systems. Der Positionsregler versucht, diesen Positionsunterschied zu Null auszuregeln. Ist ein Erhalt der Synchronität nicht möglich (z. B. Blockierung nur eines Motors) wird die Drehzahl der anderen Motoren hochdynamisch reduziert, so dass eine maximale Asynchronität nicht überschritten wird. Die Besonderheit dieser Art der Ansteuerung ist, dass der Regelalgorithmus auf eine Drehzahlabsenkung (durch z. B. Lastwechsel) eines beliebigen Motors des Systems mit einer Reduktion der jeweils anderen Drehzahlen reagieren kann, ohne dass die Drehzahlen der Motoren ins Schwingen geraten oder immer weiter sinken. Ist das System schon beim Start der Motoren mechanisch verspannt, startet zunächst nur derjenige Motor, der den größten Weg aufzuholen hat, der jeweils nächste Motor hängt sich dann dynamisch ein, so dass die gemeinsam angetriebene Achse synchron weiter verfährt.
-
Eine Initialisierung der durch die elektronisch synchronisierten Motoren gebildeten „elektronischen Achse” kann z. B. über eine strombegrenzte Fahrt in einen mechanischen Anschlag erfolgen. Im Anschlag werden die Motoren dann auf die identische Position initialisiert. Das System bleibt synchron über seine gesamte Lebensdauer, wenn die Positionen der Motoren in einem nicht flüchtigen Speicher abgelegt werden. Die Synchronisationsgenauigkeiten liegen beispielsweise bei bis zu weniger als einer mechanischen Umdrehung im Normalbetrieb und bis zu ca. 10 mechanischen Umdrehungen der Motorwelle im Extremfall (z. B. ein Motor wird schlagartig blockiert, der andere kann frei verfahren).
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt eine vereinfachte Darstellung des erfindungsgemäßen Systems mit zwei Motoren.
-
2 vereinfachtes Blockschaltbild der über die serielle Schnittstelle verbundenen Motorsteuerungen des in 1 dargestellten Systems.
-
3 vereinfachtes Blockschaltbild des erfindungsgemäßen Systems mit mehreren Motoren.
-
4 Schema des Positionsreglers
-
Beschreibung von bevorzugten Ausführungsbeispielen der Erfindung
-
1 zeigt eine vereinfachte Darstellung des erfindungsgemäßen Systems. Das System umfasst beispielsweise eine mechanische Achse 30, die von zwei Motor-Getriebeeinheiten synchron angetrieben wird. Ein erster Motor 10 wirkt über ein Getriebe 12 auf ein Ende der Achse 30, und ein zweiter Motor 110 wirkt über ein Getriebe 112 auf das andere Ende der Achse 30. Die Motoren 10, 110 sind vorzugsweise bürstenlose und elektronisch kommutierte Gleichstrommotoren und werden beispielsweise über eine gemeinsame Versorgungsspannung 32 mit Strom versorgt. Erfindungsgemäß sind die vorzugsweise in die Motoren 10, 110 integrierten elektronischen Motorsteuerungen über eine Datenschnittstelle 16, 116, vorzugsweise eine serielle Schnittstelle, miteinander verbunden und können über diese Datenschnittstelle 16, 116 Daten austauschen. Über die serielle Datenschnittstelle 16, 116 tauschen die beiden Motoren 10, 110 insbesondere Positionsdaten über ihre aktuellen Motorpositionen aus. Diese Positionsdaten werden dazu verwendet, um einen Positionsunterschied zwischen den Motoren 10, 110 zu erkennen und auszuregeln, indem die Drehzahl von mindestens einem Motor 10, 110 dynamisch verändert wird, so lange, bis der aktuelle Positionsunterschied der Motoren 10, 110 einen vorgegebenen Wert unterschreitet bzw. sich innerhalb eines zulässigen Intervalls befindet.
-
2 zeigt ein vereinfachtes Blockschaltbild der über die seriellen Schnittstellen 16, 116 verbundenen Motorsteuerungen 14, 114 der beiden Motoren 10, 110.
-
Jedem Motor 10, 110 ist eine eigene Motorsteuerung 14, 114 zugeordnet. Der Aufbau der Motoren 10, 110 und der Motorsteuerungen 14, 114 sind identisch und werden nachfolgend am Beispiel des Motors 10 und der Motorsteuerung 14 beschrieben. Die Motorsteuerung 14 ist wie folgt aufgebaut: Ein Drehzahlregler 18 regelt in Form eines Regelkreises die Drehzahl des Motors 10. Der Motor 10 befindet sich in der Regelstrecke des Drehzahlreglers 18 und wird durch eine Stellgröße u1, beispielsweise die Versorgungsspannung des Motors, angesteuert. Dem Drehzahlregler 18 ist ein Positionsregler 22 überlagert, der aktiv in die Drehzahlvorgabe n(pre)1 des Motors eingreift. Die Führungsgröße, also der Sollwert des Drehzahlreglers, wird durch die vom Positionsregler 22 ausgegebene Solldrehzahl n(pre)1 gegeben und dem Summenpunkt 20 zugeführt. Von diesem Signal n(pre)1 wird am Summenpunkt 20 eine Regelgröße, also der Istwert n(act)1 der Drehzahl abgezogen. Der Wert n(act)1 ist die aktuelle Motordrehzahl, die vom Motor abgegriffen wird. Aus den Signalen n(pre)1 und n(act)1 wird im Summenpunkt 20 eine Regelabweichung e(n)1 erzeugt, also ein Drehzahlfehler, der dem Drehzahlregler 18 zugeführt wird. Der Drehzahlregler 18 errechnet nun unter Berücksichtigung der dynamischen Eigenschaften der Regelstrecke aus der Regelabweichung e(n)1 die entsprechende Stellgröße u1. Neben dem Istwert für die aktuelle Drehzahl n(act)1 wird am Motor auch die aktuelle Motorposition pos(act)1 abgegriffen. Die aktuelle Drehzahl n(act)1 des Motors 10 und die aktuelle Motorposition pos(act)1 können z. B. mittels Sensoren (Hallsensoren) abgegriffen werden, oder aus der Gegeninduktionsspannung (Gegen-EMK) der Motorwicklungen abgeleitet werden. Die aktuelle Motorposition pos(act)1 entspricht dabei beispielsweise der Anzahl der insgesamt durchgeführten Kommutierungen. Diese aktuelle Motorposition pos(act)1 wird als Regelgröße dem Summenpunkt 24 des Positionsreglers 22 und der Minimumsbestimmung 26 zugeführt. Außerdem wird der Minimumsbestimmung 26 die aktuelle Position pos(act)2 des zweiten Motors 110, die über die serielle Schnittstelle 16b empfangen wird, zugeführt. Das Ergebnis der Minimumsbestimmung 26 ist die Position pos(act)min des in seiner Position am weitesten zurückliegenden Motors. Dies kann auch der Motor 10 selbst sein. Die Regelabweichung, die im Summenpunkt 24 erzeugt wird, entspricht dem Positionsfehler, also dem Positionsunterschied e(pos)1 zwischen der Position pos(act)1 des ersten Motors 10 und der Position pos(act)min des am weitesten zurückliegenden Motors. Der Positionsunterschied e(pos)1 wird dem Positionsregler 22 zugeführt, welcher daraus die Stellgröße generiert, die der Drehzahlvorgabe n(pre)1 entspricht, die als Führungsgröße für den Drehzahlregler 18 dient. Zusätzlich wird dem Positionsregler 22 die Systemnenndrehzahl n(sys) zugeführt, die die Solldrehzahl des Systems vorgibt.
-
Die Motorsteuerung 114 des zweiten Motors 110 arbeitet in derselben Weise und umfasst dieselben Komponenten, wie die Motorsteuerung 14 des Motors 10. Jede Motorsteuerung 14, 114 umfasst eine serielle Schnittstelle 16 bzw. 116, mit einem Sendezweig 16a bzw. 116a und einem Empfangszweig 16b bzw. 116b. Vom Motor 10 wird die aktuelle Motorposition pos(act)1 abgegriffen und über die serielle Schnittstelle 16a an den Empfänger 116b der Motorsteuerung 114 des jeweils anderen Motors 110 gesendet. Entsprechend wird vom Motor 110 die aktuelle Motorposition pos(act)2 abgegriffen und über die serielle Schnittstelle 116a an den Empfänger 16b der Motorsteuerung 14 des jeweils anderen Motors 10 gesendet. Beispielsweise wertet die Motorsteuerung 14 des ersten Motors 10 die aktuelle Position pos(act)2 des zweiten Motors 110 aus und vergleicht diese zur Minimumbildung mit der aktuellen Position pos(act)1 des eigenen Motors 10, während die Motorsteuerung 114 des zweiten Motors 110 die aktuelle Position pos(act)1 des ersten Motors 10 auswertet und diese mit der aktuellen Position pos(act)2 des ihr zugeordneten Motors 110 vergleicht.
-
Der Positionsregelkreis, der in 4 dargestellt ist, umfasst eine Übertragungsfunktion, bei der zwei Fälle unterschieden werden, die für beide Motorsteuerungen 14 bzw. 114 identisch abgearbeitet werden.
-
Der Positionsregelkreis wirkt auf den von ihm zu regelnden Motor, erhält aber auch eine Positionsinformation von dem anderen Motor. Im ersten Fall wird der jeweilige Positionsunterschied e(pos) des jeweiligen Motors mit einem vorgegebenen maximalen Positionsunterschied verglichen, der hier Accuracy genannt ist. Ist e(pos) größer als Accuracy, was bedeutet, dass die Motorposition des zu regelnden Motors der Motorposition des anderen Motors vorauseilt, so gibt der Positionsregler ein Signal n(pre) als Führungsgröße für den nachfolgenden Drehzahlregler, das geringer als die vorgegebene Nenndrehzahl n(sys) des Gesamtsystems ist. D. h. der Drehzahlregler erhält das Signal, den zu regelnden Motor bezüglich des anderen Motors zu bremsen.
-
Im zweiten Fall wird geprüft, ob der Wert des Positionsunterschiedes e(pos) kleiner ist als Accuracy. Ist dies der Fall, so ist der aktuelle Positionsunterschied der beiden Motoren kleiner als der zulässige Positionsunterschied (Accuracy) und die Führungsgröße für die Drehzahlvorgabe n(pre) kann um einen festen Wert bis hin zur Nenndrehzahl des Systems n(sys) gesteigert werden. Der zu regelnde Motor wird somit in vorgegebenen Stufen auf die System-Nenndrehzahl n(sys) beschleunigt.
-
Der beschriebene Positionsregelungsalgorithmus der Fälle 1 und 2 wird von beiden Motorsteuerungen ständig abgearbeitet. Die aktuellen Motorpositionen pos(act)1 und pos(act)2 werden ständig über die serielle Schnittstellen 16 bzw. 116 an die jeweilige andere Motorsteuerung übertragen. Der Positionsunterschied e(pos) kann dabei nie kleiner 0 werden, da bei der Berechnung von e(pos) mit dem Minimum aller im System vorhandenen Positionen verglichen wird. Dies kann auch der Motor selbst sein. In diesem Fall wäre e(pos) dann genau 0.
-
Im Wesentlichen beruht die Regelung darauf, dass bei einem Positionsunterschied e(pos) der beiden Motoren innerhalb des Toleranzbereiches zwischen 0 und Accuracy die Motoren auf die gewünschte Systemdrehzahl n(sys) beschleunigt werden. Ist der Positionsunterschied e(pos) größer als der zulässige Wert Accuracy, so wird der jeweils vorauseilende Motor abgebremst, während der nacheilende Motor mit normaler Drehzahl weiter beschleunigt wird.
-
3 zeigt ein vereinfachtes Blockschaltbild des erfindungsgemäßen Systems für drei oder mehr Motoren. Im Beispiel sind drei Motoren 10, 110, 210 mit jeweiliger Motorsteuerung 14, 114, 214 dargestellt. Die beiden Motoren 10 und 110 mit der jeweiligen Motorsteuerung 14, 114 entsprechen der in 2 dargestellten Konfiguration. Zusätzlich ist ein weiterer Motor 210 mit entsprechender Motorsteuerung 214 vorhanden, der ebenfalls über einen Drehzahlregler 218, einen Positionsregler 222, und eine serielle Schnittstelle 216a, 216b verfügt, und identisch zu der Motorsteuerung 14 ausgebildet ist. Die Motorsteuerung 214 arbeitet auf dieselbe Weise, wie es im Zusammenhang mit 2 beschrieben wurde.
-
Im Unterschied zu 2 sind bei 3 die jeweiligen seriellen Schnittstellen der Motorsteuerungen 14, 114, 214 sowohl sendeseitig 16a, 116a, 216a als auch empfangsseitig 16b, 116b, 216b über einen seriellen Datenbus 34 miteinander verbunden und können über diesen Datenbus 34 kommunizieren und Positionsdaten austauschen. Dabei kommt es nicht auf die Ausgestaltung der Signalübertragung an. Diese kann sowohl kabelgebunden als auch durch drahtlose Signalübertragung erfolgen (z. B. WLAN, Bluetooth). Die Regelung der drei Positionsregler 22, 122, 222 und die Behandlung der Fälle 1 und 2 erfolgt in gleicher Weise wie in Zusammenhang mit 2 beschrieben. Für jeden Motor 10, 110, 210 werden am jeweiligen Summenpunkt 24, 124, 224 des Positionsreglers 22, 122, 222 die aktuellen Motorpositionen pos(act) aller drei Motoren 10, 110, 210 zusammengeführt und miteinander verglichen. Es wird dann ermittelt, welcher Motor der letzte, also der „langsamste” Motor ist, der den beiden anderen Motoren nacheilt. Es wird eine Position pos(act)min ermittelt, welche das Minimum aller aktuellen Motorpositionen pos(act) der Motoren 10, 110, 210 darstellt: Pos(act)min = min {pos(act)1...n}, für i, j, k ∊ (1...n).
-
Anhand der berechneten minimalen aktuellen Motorposition pos(act)min wird dann der Positionsunterschied e(pos) für den jeweiligen Motor berechnet aus e(pos) = pos(act) – pos(act)min (= die aktuelle Motorposition minus die minimale Motorposition). Die aktuelle Motorposition pos(act) des zu regelnden Motors wird mit der minimalen Motorposition, d. h. der Motorposition des am weitesten nacheilenden Motors verglichen und daraus der Positionsunterschied e(pos) für die Positionsregelung gebildet.
-
Der Positionsregelkreis arbeitet wie es in 4 dargestellt ist. Es werden die in 4 erläuterten Fälle 1 und 2 unterschieden. Im Fall 1, d. h. wenn der zu regelnde Motor den anderen Motoren vorauseilt, wird die Drehzahlvorgabe n(pre)x des zu regelnden Motors verringert und der Motor wird gebremst. Im Fall 2, wenn die Position e(pos)x des aktuellen Motors innerhalb des Toleranzbereiches zwischen 0 und Accuracy liegt, wird die vorgegebene Drehzahl n(pre)x um einen festen Wert bis hin zur Nenndrehzahl n(sys) gesteigert und der Motor beschleunigt.
-
Bezugszeichenliste
-
- 10, 110, 210
- Motor
- 12, 112
- Getriebe
- 14, 114, 214
- Motorsteuerung
- 16, 116, 216
- Schnittstelle
- 16a, 116a, 216a
- Schnittstelle (senden)
- 16b, 116b, 216b
- Schnittstelle (empfangen)
- 18, 118, 218
- Drehzahlregler
- 20, 120, 220
- Summenpunkt
- 22, 122, 222
- Positionsregler
- 24, 124, 224
- Summenpunkt
- 26, 126, 226
- Minimumsbestimmung
- 30
- Achse
- 32
- Versorgungsspannung
- 34
- Universeller serieller Datenbus, z. B. LIN, CAN, PSI5, SPI, WLAN, Bluetooth
- M
- Motor
- x
- Index des betrachteten Motors
- n
- Anzahl der Motoren im System
- i, j, k
- beliebige Indizes zwischen 1 und n
- pos(act)x
- aktuelle Position Motor x
- pos(act)min
- Position des am weitesten zurückliegenden Motors
- n(act)x
- aktuelle Drehzahl Motor x
- n(sys)
- Solldrehzahl des Gesamtsystems
- n(pre)x
- Drehzahlvorgabe Motor x
- e(pos)x
- Positionsunterschied Motor x
- e(n)x
- Drehzahlfehler Motor x
- ux
- Motorspannung des Motors x (z. B. PWM)
- Accuracy
- vorgegebener Positionsunterschied