Die
Erfindung betrifft ein Verfahren und eine Anordnung zur Kommutierung
eines elektronisch kommutierten Motors.The
The invention relates to a method and an arrangement for commutation
an electronically commutated motor.
Beim
Betrieb von elektronisch kommutierten Motoren (ECM) können bei
der Kommutierung Unsymmetrien auftreten, welche den Wirkungsgrad
beeinflussen. Die Gründe
hierfür
kann man unterscheiden in statische Einflüsse und dynamische Einflüsse.At the
Operation of electronically commutated motors (ECM) may be included
the commutation imbalances occur, which increases the efficiency
influence. The reasons
therefor
one can distinguish between static influences and dynamic influences.
Beispiele
für statische
Einflüsse
sind Hallsensoren (oder sonstige Sensoren für die Rotorstellung), welche
ungenau angeordnet sind; Permanentmagnete des Rotors, die unsymmetrisch
magnetisiert oder montiert sind; Streuflüsse im Stator; Unsymmetrien
des Motorstroms.Examples
for static
influences
are Hall sensors (or other sensors for the rotor position), which
are arranged inaccurately; Permanent magnets of the rotor, the unbalanced
magnetized or mounted; Leakage flux in the stator; asymmetries
of the motor current.
Beispiele
für dynamische
Einflüsse
sind Drehzahlschwankungen durch externe Einflüsse, insbesondere Temperaturänderungen;
Rotorschwingungen; Softwarejitter. Darunter versteht man kleine Zeitdifferenzen
bei der Ausführung
von Befehlen, die meist nur wenige Mikrosekunden betragen und zufallsbedingt
auftreten, also nicht beeinflussbar sind.Examples
for dynamic
influences
are speed fluctuations due to external influences, in particular temperature changes;
Rotor vibration; Softwarejitter. By this one understands small time differences
in the execution
of commands, which are usually only a few microseconds and random
occur, so are not influenced.
Es
ist eine Aufgabe der Erfindung, ein neues Verfahren und eine neue
Anordnung zur Kommutierung eines elektronisch kommutierten Motors
bereit zu stellen.It
It is an object of the invention, a new method and a new one
Arrangement for commutating an electronically commutated motor
to provide.
Diese
Aufgabe wird durch ein Verfahren nach Anspruch 1 und einen elektronisch
kommutierten Motor nach Anspruch 20 gelöst.These
The object is achieved by a method according to claim 1 and an electronic
Commutated motor according to claim 20 solved.
Der
Erfindung liegt die Erkenntnis zugrunde, dass statische und dynamische
Einflüsse,
also z.B. Fertigungstoleranzen bei der Herstellung eines ECM, sowie gewisse
Randbedingungen und Betriebsparameter, zu Unsymmetrien des Motorstroms
führen können. Ein
Grundgedanke der Erfindung besteht nun darin, den Motorstrom eines
ECM durch eine individualisierte Kommutierung derart zu beeinflussen, dass
diese Unsymmetrien reduziert werden und somit der Wirkungsgrad des
ECM verbessert wird. Die Erfindung ist hierbei nicht auf einen bestimmten
Motorentyp beschränkt.Of the
The invention is based on the finding that static and dynamic
influences,
ie e.g. Manufacturing tolerances in the manufacture of an ECM, as well as certain
Boundary conditions and operating parameters, to asymmetries of the motor current
being able to lead. One
The basic idea of the invention is now to reduce the motor current
To influence ECM by an individualized commutation such that
these asymmetries are reduced and thus the efficiency of the
ECM is improved. The invention is not limited to a particular
Motor type limited.
Insbesondere
wird die Aufgabe der vorliegenden Erfindung durch ein Verfahren
gemäß Anspruch
1 gelöst.
Dementsprechend wird eine Unsymmetrie im Motorstrom durch Bestimmung
einer Abweichung ermittelt, welche eine Änderung des Motorstroms während der
Drehung des Rotors des ECM angibt. In Abhängigkeit von der ermittelten
Abweichung wird ein Offset-Wert ermittelt, der dazu geeignet ist,
einen vorgegebenen Zeitpunkt für
eine Kommutierung des Stators des ECM bei der Drehung des Rotors
zu beeinflussen, um eine Symmetrierung des Motorstroms zu bewirken.Especially
The object of the present invention is achieved by a method
according to claim
1 solved.
Accordingly, an imbalance in the motor current is determined by determination
determines a deviation, which is a change of the motor current during the
Rotation of the rotor of the ECM indicates. Depending on the determined
Deviation, an offset value is determined which is suitable
a given time for
a commutation of the stator of the ECM during the rotation of the rotor
to influence, in order to effect a symmetrization of the motor current.
Auf
diese Weise können
Unsymmetrien des Motorstroms eines ECM bei laufendem Motor korrigiert
werden. Somit kann auf aufwändige
Verfahren zur Kompensation von Fertigungstoleranzen nach der Herstellung
verzichtet werden, und ungünstige Randbedingungen
und Betriebsparameter können einfach
und schnell ausgeglichen werden. Beispielsweise kann anstelle eines
gebräuchlichen
Wuchtens in eine Tasche des Rotors das billigere und schnellere
Fräswuchten
bei den Rotoren solcher ECM verwendet werden, da auch ein nicht
optimales Fräsergebnis
im Betrieb des ECM durch die erfindungsgemäße Stromsymmetrierung kompensiert
wird.On
this way you can
Imbalances of the motor current of an ECM corrected with the engine running
become. Thus can on elaborate
Method for compensating manufacturing tolerances after production
be waived, and unfavorable boundary conditions
and operating parameters can be simple
and be compensated quickly. For example, instead of a
common
Weighing into a pocket of the rotor the cheaper and faster
Fräswuchten
used in the rotors of such ECM, as well as a not
optimal milling result
compensated during operation of the ECM by the current balancing according to the invention
becomes.
Die
Aufgabe der vorliegenden Erfindung wird ebenfalls durch einen ECM
gemäß Anspruch
20 gelöst.The
Object of the present invention is also by an ECM
according to claim
20 solved.
Weitere
Einzelheiten und vorteilhafte Weiterbildungen der Erfindung ergeben
sich aus den im Folgenden beschriebenen und in den Zeichnungen dargestellten
Ausführungsbeispielen.
Es zeigt:Further
Details and advantageous developments of the invention result
from those described below and illustrated in the drawings
Embodiments.
It shows:
1 ein
vereinfachtes Schaltbild einer Vorrichtung zur Symmetrierung des
Motorstroms eines ECM gemäß einer
bevorzugten Ausführungsform
der Erfindung, 1 2 is a simplified circuit diagram of an apparatus for balancing the motor current of an ECM according to a preferred embodiment of the invention;
2 eine
schematische Darstellung eines Verfahrens zur Kommutierung des ECM
von 1 gemäß einer
Ausführungsform
der Erfindung, 2 a schematic representation of a method for commutation of the ECM of 1 according to an embodiment of the invention,
3A eine
schematische Darstellung des Motorstroms des ECM der 1 bei
einer Frühkommutierung,
aber ohne Symmetrierung der Ströme, 3A a schematic representation of the motor current of the ECM the 1 at an early commutation, but without balancing the currents,
3B eine
schematische Darstellung des Motorstroms des ECM von 1 bei
einer Kommutierung gemäß einer
Ausführungsform
der Erfindung, also mit symmetrierten Strömen, 3B a schematic representation of the motor current of the ECM of 1 in a commutation according to an embodiment of the invention, ie with balanced currents,
4 ein
Flussdiagramm eines Verfahrens zur Stromsymmetrierung des Motorstroms
des ECM von 1 gemäß einer Ausführungsform
der Erfindung, 4 a flowchart of a method for current balancing of the motor current of the ECM of 1 according to an embodiment of the invention,
5 eine
schematische Darstellung des Ablaufs eines erfindungsgemäßen Verfahrens
zur Stromsymmetrierung des Motorstroms des ECM von 1 gemäß einer
Ausführungsform
der Erfindung, 5 a schematic representation of the sequence of a method according to the invention for the current balancing of the motor current of the ECM of 1 according to an embodiment of the invention,
6 ein
Flussdiagramm eines Verfahrens zur Durchführung einer Interrupt Service
Routine gemäß einer
Ausführungsform
der Erfindung, 6 a flowchart of a method for performing an interrupt service routine according to an embodiment of the invention,
7 ein
Flussdiagramm eines Verfahrens zur Bestimmung eines Kommutierungs-Offsets gemäß einer
Ausführungsform
der Erfindung, und 7 a flowchart of a method for determining a commutation offset according to an embodiment of the invention, and
8 ein
Flussdiagramm eines Verfahrens zur Durchführung einer Frühkommutierung
gemäß einer
Ausführungsform
der Erfindung. 8th a flowchart of a method for performing an early commutation according to an embodiment of the invention.
1 zeigt
ein vereinfachtes Schaltbild, welches die prinzipielle Funktionsweise
einer Vorrichtung 100 zum Betrieb eines ECM 120 gemäß der vorliegenden
Erfindung illustriert. Die Vorrichtung 100 ist dazu ausgebildet,
durch eine geeignete Kommutierung des ECM 120 eine Symmetrierung
der im Motor fließenden
Ströme
zu bewirken zu bewirken, wie sie z.B. in 3A ohne
Symmetrierung und in 3B mit Symmetrierung dargestellt
sind. 1 shows a simplified circuit diagram showing the basic operation of a device 100 to operate an ECM 120 illustrated in accordance with the present invention. The device 100 is designed by a suitable commutation of the ECM 120 to effect a symmetrization of the currents flowing in the motor, as in eg 3A without symmetrization and in 3B are shown with symmetrization.
Der
ECM 120 hat einen Rotor 124 und einen Stator 125 mit
mindestens einem Strang 126. Der Rotor 124 ist
beispielhaft als permanentmagnetischer Rotor mit zwei Magnetpolpaaren,
also vier Magnetpolen 183, 186, 188, 189,
dargestellt. Alternativ kann der Rotor 124 durch Zuführung von
Strom erregt werden, so dass auf Permanentmagnete verzichtet werden
kann. Der Stator 125 ist einsträngig dargestellt, d.h. mit
einem einzigen Strang (Phase) 126. Ebenso wäre auch
eine andere Strangzahl möglich.
Der Strang 126 hat zwei Anschlüsse U und V, über die
er mit der Endstufe 122 verbunden ist. Als einsträngiger Motor
wird gewöhnlich
ein Motor mit einem Reluktanz-Hilfsmoment verwendet, damit sich der
Rotor beim Einschalten in einer Drehstellung befindet, aus der er
sicher starten kann.The ECM 120 has a rotor 124 and a stator 125 with at least one strand 126 , The rotor 124 is exemplary as a permanent magnetic rotor with two magnetic pole pairs, so four magnetic poles 183 . 186 . 188 . 189 represented. Alternatively, the rotor 124 be energized by supplying current, so that can be dispensed with permanent magnets. The stator 125 is shown as single-stranded, ie with a single strand (phase) 126 , Likewise, another strand number would be possible. The strand 126 has two ports U and V, over which it connects to the power amp 122 connected is. As a single-stranded motor, a motor with a reluctance auxiliary torque is usually used to allow the rotor to be in a rotational position when it is turned on, from which it can safely start.
Die
Endstufe 122 dient zur Beeinflussung des Motorstroms im
Strang 126 und ist beispielhaft als Vollbrückenschaltung
mit vier Halbleiterschaltern 192, 194, 196, 198 ausgebildet.
Die Halbleiterschalter 192, 194 sind mit dem Anschluss
U des Strangs 126 verbunden und bilden eine erste Halbbrücke. Der Anschluss
V des Strangs 126 ist mit den Halbleiterschaltern 196, 198 verbunden,
welche eine zweite Halbbrücke
bilden.The final stage 122 serves to influence the motor current in the string 126 and is exemplary as a full bridge circuit with four semiconductor switches 192 . 194 . 196 . 198 educated. The semiconductor switches 192 . 194 are with the U terminal of the strand 126 connected and form a first half bridge. The connection V of the strand 126 is with the semiconductor switches 196 . 198 connected, which form a second half-bridge.
Eingangsseitig
ist die Endstufe 122 mit einer Versorgungsspannung +UB verbunden. Ausgangsseitig ist die Endstufe 122 mit
einem Knotenpunkt 160 verbunden. Dieser ist über einen
Fußpunktwiderstand 150 mit
Masse (GND) und über
eine Leitung 165 mit einer Steuerung 130 (μC) verbunden.
Der Fußpunktwiderstand 150 dient
zur Messung des Motorstroms I_MEAS. Hierzu wird eine dem Motorstrom I_MEAS
proportionale Spannung UI_MEAS am Fußpunktwiderstand 150 abgegriffen
und einem A/D-Wandler 132 der Steuerung 130 zugeführt, welche
daraus einen Wert für
den Motorstrom I_MEAS ermittelt.Input side is the power amplifier 122 connected to a supply voltage + U B. The output side is the power amplifier 122 with a node 160 connected. This is about a footpoint resistance 150 with ground (GND) and via a line 165 with a controller 130 (μC) connected. The base point resistance 150 is used to measure the motor current I_MEAS. For this purpose, a voltage U I_MEAS proportional to the motor current I_MEAS is applied at the base point resistance 150 tapped and an A / D converter 132 the controller 130 supplied, which determines therefrom a value for the motor current I_MEAS.
Die
Steuerung 130 ist eingangsseitig mit mindestens einem Rotorstellungssensor 140 verbunden
und erhält
von diesem ein Rotorstellungssignal 182 (HALL). Die Steuerung 130 erzeugt
Kommutierungssignale 184 (HSL, HSR, LSL, LSR) für die Endstufe 122 in
Abhängigkeit
vom Rotorstellungssignal 182. Die Kommutierungssignale 184 werden
den Halbleiterschaltern 192, 194, 196, 198 zugeführt, und bewirken
dort Kommutierungsvorgänge.
Diese liegen jeweils im Bereich der Stellen, an denen der Rotorstellungssensor 140 einen
Polwechsel des Rotormagneten 124 erfasst. In 2 sind
diese Stellen mit 261, 262, 263, 264 bezeichnet.
Wie man sieht, liegt z.B. der Kommutierungsvorgang 252 etwas
vor der Stelle 262, an der sich das Hallsignal 182 ändert und dadurch
einen Polwechsel anzeigt, also eine bestimmte Drehstellung des Rotors 124.The control 130 is input side with at least one rotor position sensor 140 connected and receives from this a rotor position signal 182 (HALL). The control 130 generates commutation signals 184 (HSL, HSR, LSL, LSR) for the power amplifier 122 depending on the rotor position signal 182 , The commutation signals 184 become the semiconductor switches 192 . 194 . 196 . 198 supplied, and cause there Kommutierungsvorgänge. These lie in each case in the area where the rotor position sensor 140 a pole change of the rotor magnet 124 detected. In 2 are these posts with 261 . 262 . 263 . 264 designated. As you can see, for example, the commutation process 252 something in front of the place 262 , at which the Hall signal 182 changes and thereby indicates a pole change, so a certain rotational position of the rotor 124 ,
Gemäß einer
bevorzugten Ausführungsform der
Erfindung ist die Steuerung 130 dazu ausgebildet, die Kommutierungssignale 184 für die Endstufe 122 unter
Verwendung einer Steuerroutine 176 (ADVANCE_COMMUT) derart
zu erzeugen, dass eine Frühkommutierung
des ECM 120 mit einem so genannten Zündwinkel, welcher die Phasenlage
der Kommutierung beschreibt, bewirkt wird. Unter dem „Zündwinkel" versteht man den
Beginn der Kommutierung, die bei einer Frühkommutierung nicht zum Zeitpunkt
einer Änderung
des Rotorstellungssignals, sondern zeitlich versetzt hierzu erfolgt.
Ein Vorgabe-Zündwinkel
wird z.B. bei einer Kalibrierung des ECM 120, beispielsweise
einer Selbstkalibrierung, als Default-Zündwinkel
bestimmt und von der Steuerung 130 in einem Speicher 131 gespeichert.
(Der Begriff „Zündwinkel" ist wegen seiner
Anschaulichkeit aus der Automobiltechnik übernommen worden, obwohl bei
einem Elektromotor nichts „gezündet" wird.) Bei einem
Motor 120, der im Betrieb eine etwa konstante Drehzahl
hat, kann dieser Winkel in Form einer Vorgabezeit T_Default gespeichert
werden.According to a preferred embodiment of the invention, the controller 130 adapted to the commutation signals 184 for the final stage 122 using a control routine 176 (ADVANCE_COMMUT) such that an early commutation of the ECM 120 with a so-called ignition angle, which describes the phase position of the commutation, is effected. The "ignition angle" is understood to mean the beginning of the commutation, which does not take place at an early commutation at the time of a change in the rotor position signal but at a time offset from it 120 , For example, a self-calibration, determined as the default ignition angle and the controller 130 in a store 131 saved. (The term "ignition angle" has been adopted because of its vividness in the automotive industry, although nothing is "ignited" in an electric motor.) In an engine 120 , which has an approximately constant speed in operation, this angle can be stored in the form of a default time T_Default.
Für jeden
Kommutierungsvorgang der Endstufe 122 bestimmt die Steuerung 130 unter
Verwendung einer Steuerroutine 178 (I_SYM) geeignete Offset-Werte
zur individuellen Modifikation des Zündwinkels für jeden Polwechsel. Somit kann
die Kommutierung bei jeder Änderung 261, 262, 263, 264 des Rotorstellungssignals 182 bzw.
jedem Polwechsel am Rotorstellungssensor 140 mit einem
separaten, individuellen Zündwinkel
erfolgen, welcher unter Verwendung eines entsprechenden, zugeordneten
Offset-Wertes aus dem Vorgabe-Zündwinkel
ermittelt wird, vgl. S810 in 8. Dies
ermöglicht
eine Ansteuerung der Halbleiterschalter 192 bis 198 der
Endstufe 122 derart, dass über geeignete Ein- bzw. Ausschaltzeiten
eine Symmetrierung des Motorstroms erreicht wird, wie ein Vergleich
von 3A (ohne Symmetrierung) mit 3B (mit
Symmetrierung) zeigt.For each commutation process of the power amplifier 122 determines the control 130 using a control routine 178 (I_SYM) suitable offset values for the individual modification of the ignition angle for each pole change. Thus, the commutation at each change 261 . 262 . 263 . 264 the rotor position signal 182 or each pole change on the rotor position sensor 140 take place with a separate, individual ignition angle, which is determined using a corresponding, assigned offset value from the default ignition angle, cf. S810 in 8th , This allows a control of the semiconductor switches 192 to 198 the power amplifier 122 in such a way that a symmetrization of the motor current is achieved via suitable on or off times, such as a comparison of 3A (without symmetrization) with 3B (with symmetry) shows.
Wie 1 zeigt,
hat die Steuereinheit 130 eine Einheit 150, mit
der ein Augenblickswert I_MEAS(HCnt) gemessen, digitalisiert und über eine Leitung 151 dem
Softwaremodul 178 (I_SYM) zugeführt wird.As 1 shows, the control unit has 130 one unity 150 , with which an instantaneous value I_MEAS (HCnt) is measured, digitized and transmitted via a line 151 the software module 178 (I_SYM) is supplied.
Das
Modul 178 erhält
auch von einem Modul 152 (ISR_HALL) über eine Leitung 153 ein
digitalisiertes Signal HCnt, welches anzeigt, in welchem Drehstellungsbereich
sich der Rotor 124 befindet.The module 178 also receives from a module 152 (ISR_HALL) over a line 153 a digitized signal HCnt indicating in which rotational position range the rotor 124 located.
Hierzu
folgendes: Beim Ausführungsbeispiel hat
der Rotormagnet 124 vier Pole 183, 186, 188, 189.
Wenn also das Signal 182 einen Nordpol anzeigt, kann dies
bedeuten, dass dem Sensor 140 der Nordpol 183 oder
der Nordpol 186 gegenüberliegt.For this, the following: In the embodiment, the rotor magnet 124 four poles 183 . 186 . 188 . 189 , So if the signal 182 indicating a north pole, this may mean that the sensor 140 the North Pole 183 or the North Pole 186 opposite.
Um
die Rotorstellung für
das Modul 152 eindeutig zu machen, hat dieses einen Zähler 155 HCnt, der
bei laufendem Motor ständig
die Pole des Rotors 124 in der Folge (1)-(2)-(3)-(4)-(1)-(2)-(3)-(4)-(1)
... zählt,
d.h. die Steuereinheit 130 weiß dann, dass der gemessene
Strom I_MEAS(1) der Strom ist, der gemessen wurde, während sich
der Rotor 124 im Bereich (1) befindet, ebenso dass I_MEAS(2) der
Strom ist, der gemessen wurde, während
sich der Rotor 124 im Bereich (2) befindet, etc. Allgemein ausgedrückt bedeutet
also
I_MEAS(HCnt) den Strom, der gemessen wurde, während sich
der Rotor 124 im aktuellen Rotorbereich HCnt befindet,
also z.B. im Bereich (4), und
I_MEAS(HCnt-1) bedeutet analog
den Strom, der gemessen wurde, während
sich der Strom im vorhergehenden Rotorbereich (HCnt-1) befand, also
z.B. im Bereich (3), wobei die Bereiche (wegen der Drehung des
Rotors 124) im Betrieb ständig durchlaufen werden.To the rotor position for the module 152 To make it clear, this one has a counter 155 HCnt, with the engine running constantly the poles of the rotor 124 in the sequence (1) - (2) - (3) - (4) - (1) - (2) - (3) - (4) - (1) ... counts, ie the control unit 130 then knows that the measured current I_MEAS (1) is the current measured while the rotor 124 is in region (1), so that I_MEAS (2) is the current that was measured while the rotor 124 was running in the range (2), etc. Generally speaking, means
I_MEAS (HCnt) the current that was measured while the rotor was spinning 124 is in the current rotor area HCnt, that is, for example, in the area (4), and
I_MEAS (HCnt-1) analogously means the current that was measured while the current was in the preceding rotor region (HCnt-1), ie in the region ( 3 ), the areas (due to the rotation of the rotor 124 ) are constantly run during operation.
Das
Modul 178 (I_SYM) erhält
beim Ausführungsbeispiel
zwei Stromsignale, die mit
I_MEAS(HCnt)
und mit
I_MEAS(HCnt-1)
bezeichnet
werden, also den Strom, der im aktuellen Rotorbereich HCnt gemessen
wurde, und den Strom, der im vorhergehenden Rotorbereich (HCnt-1)
gemessen wurde. Das ist in 7 in den
Schritten S720 und S730 dargestellt. Dort werden diese Ströme fortlaufend
miteinander verglichen. Bei einem idealen Motor sollten sie gleich
groß sein.
Im Modul 178 (I_SYM) werden die Zündwinkel für den Rotorbereich (1), für den Rotorbereich
(2), für
den Rotorbereich (3) und für
den Rotorbereich (4) fortlaufend optimiert, um diesem Ideal gleich
großer
Ströme
möglichst
nahe zu kommen. Dies wird nachfolgend beschrieben. Diese Optimierung
findet also im Normalfall fortlaufend statt, d.h. wenn sich z.B.
die Temperatur des Motors ändert, ändern sich
auch die Zündwinkel
für alle
vier Bereiche (1), (2), (3) und (4), aber die Werte für die Zündwinkel
werden sich im Normalfall voneinander unterscheiden, um einen optimierten Motor
zu erhalten.The module 178 (I_SYM) receives in the embodiment of two current signals with
I_MEAS (HCnt)
and with
I_MEAS (HCnt-1)
that is, the current measured in the current rotor region HCnt and the current measured in the preceding rotor region (HCnt-1). Is in 7 in steps S720 and S730. There, these streams are continuously compared. For an ideal engine, they should be the same size. In the module 178 (I_SYM) the firing angles for the rotor area (1), for the rotor area (2), for the rotor area (3) and for the rotor area (4) are continuously optimized in order to come as close as possible to the ideal of equal currents. This will be described below. Normally, this optimization takes place continuously, ie if, for example, the temperature of the engine changes, the ignition angles for all four ranges (1), (2), (3) and (4), but the values for the ignition angles, also change will normally differ from each other to get an optimized engine.
Die
Funktionsweise der Vorrichtung 100 zur Kommutierung des
ECM 120 mit individuellen Zündwinkeln wird unter Bezugnahme
auf 2 weiter beschrieben.The operation of the device 100 for commutation of the ECM 120 with individual ignition angles is with reference to 2 further described.
2 zeigt
ein Ablaufdiagramm 200 eines Verfahrens zur Kommutierung
des ECM 120 gemäß einer
bevorzugten Ausführungsform
der Erfindung. Das Ablaufdiagramm 200 zeigt oben das vom
Rotorstellungssensor 140 erzeugte Rotorstellungssignal 182,
und es zeigt in seinem unteren Teil die von der Steuerung 130 erzeugten
Kommutierungssignale 184, die in der gleichen Weise wie
in 1 mit HSR, LSL, HSL und LSR bezeichnet sind. Man
erkennt, dass bei diesem Beispiel die Kommutierungssignale gegenüber dem
Rotorstellungssignal 182 unterschiedlich stark in der Phase
verschoben sind, d.h. für
jedes Hallsegment ist die Phasenverschiebung anders. Die Erfindung
befasst sich mit der Optimierung dieser unterschiedlichen Phasenverschiebungen. 2 shows a flowchart 200 a method for commutating the ECM 120 according to a preferred embodiment of the invention. The flowchart 200 shows the top of the rotor position sensor 140 generated rotor position signal 182 , and it shows in its lower part that of the controller 130 generated commutation signals 184 in the same way as in 1 with HSR, LSL, HSL and LSR are designated. It can be seen that in this example the commutation signals are opposite to the rotor position signal 182 Different phase shifts are different, ie the phase shift is different for each Hall segment. The invention deals with the optimization of these different phase shifts.
Das
Rotorstellungssignal 182 ist für eine komplette mechanische
Umdrehung des Rotors 124 mit den vier Magnetpolen 183, 186, 188, 189 dargestellt
und hat vier unterschiedliche, als Hallsegmente (1) bis (4) gekennzeichnete
Bereiche 212, 214, 216, 218.
Jeder dieser Bereiche 212, 214, 216, 218 wird von
der Steuerung 130 unter Verwendung der Variablen HCnt einem
bestimmten Pol des Rotors 124 zugeordnet. Wie oben beschrieben,
ist bei diesem Beispiel der Rotor 124 vierpolig. Deshalb
ist HCnt = (Cnt mod 4) + 1, wobei Cnt eine Ganzzahl mit Cnt ≥ 0 ist, welche bei
Inbetriebnahme des ECM 120 an einer beliebigen Drehstellung
des Rotors 124 zu Cnt = 0 gesetzt wird und anschließend im
Betrieb des ECM 120 bei jedem Polwechsel um 1 inkrementiert
wird. Somit kann die Variable HCnt die ganzzahligen Werte (1) bis
(4) annehmen, sodass das Rotorstellungssignal 182 zu jedem
beliebigen Zeitpunkt im Betrieb der Vorrichtung 100 von 1 einem
bestimmten Pol zugeordnet werden kann. Wie 2 zeigt,
wird dem Bereich 212 ein erster Pol (HCnt = (1)), dem Bereich 214 ein
zweiter Pol (HCnt = (2)), dem Bereich 216 ein dritter Pol
(HCnt = (3)) und dem Bereich 218 ein vierter Pol (HCnt
= (4)) des Rotors 124 zugeordnet. Hierbei entspricht der
erste Pol beispielsweise dem Pol 188, der zweite Pol dem
Pol 186, der dritte Pol dem Pol 189 und der vierte
Pol dem Pol 183 des Rotors 124 von 1.
Diese Zuordnung ändert
sich gewöhnlich,
wenn der Motor ausgeschaltet war und wieder eingeschaltet wird.The rotor position signal 182 is for a complete mechanical rotation of the rotor 124 with the four magnetic poles 183 . 186 . 188 . 189 and has four different, as Hall segments (1) to (4) marked areas 212 . 214 . 216 . 218 , Each of these areas 212 . 214 . 216 . 218 is from the controller 130 using the variable HCnt a particular pole of the rotor 124 assigned. As described above, in this example, the rotor 124 four poles. Therefore, HCnt = (Cnt mod 4) + 1, where Cnt is an integer with Cnt ≥ 0, which is at start-up of the ECM 120 at any rotational position of the rotor 124 is set to Cnt = 0 and then in operation of the ECM 120 is incremented by 1 at each pole change. Thus, the variable HCnt can take the integer values (1) to (4), so that the rotor position signal 182 at any time in the operation of the device 100 from 1 can be assigned to a specific pole. As 2 shows is the area 212 a first pole (HCnt = (1)), the range 214 a second pole (HCnt = (2)), the area 216 a third pole (HCnt = (3)) and the area 218 a fourth pole (HCnt = (4)) of the rotor 124 assigned. Here, the first pole corresponds to the pole, for example 188 , the second pole to the pole 186 , the third pole to the pole 189 and the fourth pole to the pole 183 of the rotor 124 from 1 , This mapping usually changes when the engine is off and on again.
Jedes
der Kommutierungssignale 184 (HSR, LSL, HSL, LSR) ist in 2 als
ein separates Signal 232 bis 238 dargestellt,
welches den Zustand „HOCH" oder „NIEDRIG" annehmen kann. Das
Signal 232 zeigt das Kommutierungssignal HSR („High Side
Right") zur Ansteuerung
des Halbleiterschalters 196. Das Signal 234 zeigt
das Kommutierungssignal LSL („Low
Side Left") zur
Ansteuerung des Halbleiterschalters 194. Das Signal 236 zeigt
das Kommutierungssignal HSL („High
Side Left") zur
Ansteuerung des Halbleiterschalters 192. Das Signal 238 zeigt
das Kommutierungssignal LSR („Low
Side Right") zur
Ansteuerung des Halbleiterschalters 198.Each of the commutation signals 184 (HSR, LSL, HSL, LSR) is in 2 as a separate signal 232 to 238 which can assume the state "HIGH" or "LOW". The signal 232 shows the commutation signal HSR ("High Side Right") for driving the semiconductor switch 196 , The signal 234 shows the commutation signal LSL ("Low Side Left") for driving the semiconductor switch 194 , The signal 236 shows the commutation signal HSL ("High Side Left") to the control tion of the semiconductor switch 192 , The signal 238 shows the commutation signal LSR ("Low Side Right") for driving the semiconductor switch 198 ,
Für jede Kommutierung
werden die Kommutierungssignale 232 bis 238 derart
erzeugt, dass diejenigen von den Halbleiterschaltern 192 bis 198,
die im Augenblick eingeschaltet sind, ausgeschaltet werden, und
dass diejenigen von den Halbleiterschaltern 192 bis 198,
die ausgeschaltet sind, eingeschaltet werden.For each commutation, the commutation signals 232 to 238 generated such that those of the semiconductor switches 192 to 198 that are turned on at the moment, are turned off, and that those of the semiconductor switches 192 to 198 that are turned off, be turned on.
Beispielsweise
werden beim Übergang
vom Bereich 212 („Hallsegment
1") des ersten Pols
(HCnt = (1)) zum Bereich 214 („Hallsegment 2") des zweiten
Pols (HCnt = (2)) zunächst
an einem Zeitpunkt 250 die Kommutierungssignale 236 (HSL)
und 238 (LSR) von „HOCH" auf „NIEDRIG" gesetzt. Dadurch werden
die Halbleiterschalter 192 und 198 ausgeschaltet.
Nach einer so genannten „Kommutierungslücke" bzw. „Totzeit" 260 werden
die Kommutierungssignale 232 (HSR) und 234 (LSL)
dann zum Zeitpunkt 252 von „NIEDRIG" auf „HOCH" gesetzt. Dadurch werden die Halbleiterschalter 196 und 194 eingeschaltet.
Die Kommutierungslücke 260 definiert eine
minimale Zeitdauer zwischen den durchgeführten Aus- und Einschaltvorgängen, welche
erforderlich ist, um einen Brückenkurzschluss
in der Endstufe 122 zu vermeiden.For example, when transitioning from the area 212 ("Hall segment 1") of the first pole (HCnt = (1)) to the area 214 ( "Hall segment 2 ' ) of the second pole (HCnt = (2)) first at a time 250 the commutation signals 236 (HSL) and 238 (LSR) is set from "HIGH" to "LOW". This will cause the semiconductor switches 192 and 198 switched off. After a so-called "commutation gap" or "dead time" 260 become the commutation signals 232 (HSR) and 234 (LSL) then at the time 252 set from "LOW" to "HIGH". This will cause the semiconductor switches 196 and 194 switched on. The commutation gap 260 defines a minimum amount of time between the power cycles that are required to complete a bridge short in the final stage 122 to avoid.
Für den Fall,
dass ein Abbauen des Motorstroms wünschenswert ist, kann die Kommutierungslücke jedoch
auch ausreichend groß gewählt werden, um
ein „Kreisen" (Zirkulieren) des
Stromes durch den Strang 126 und die beiden Halbleiterschalter 194, 198 zu
ermöglichen,
damit dieser Strom mechanische Energie erzeugt, wenn sein Wert abnimmt.
Bei dieser Alternative sind dann die beiden Halbleiterschalter 192, 196 während der
Kommutierungslücke nicht
leitend.However, in the event that degradation of the motor current is desirable, the commutation gap can also be chosen to be large enough to "circulate" the current through the strand 126 and the two semiconductor switches 194 . 198 to allow this current to generate mechanical energy as its value decreases. In this alternative, then the two semiconductor switches 192 . 196 not conductive during the commutation gap.
Wie 2 zeigt,
werden oberhalb einer bestimmten Mindestdrehzahl bei Umschaltvorgängen der
Kommutierungssignale 232 bis 238 diejenigen der
Halbleiterschalter 192 bis 198, die eingeschaltet werden,
nicht zu Zeitpunkten eingeschaltet, an denen Polwechsel am Rotorstellungssensor 140 erfolgen.
(Diese Zeitpunkte sind mit 261, 262, 264, 266, 268 bezeichnet.)
Vielmehr werden die Einschaltvorgänge zeitlich verfrüht durchgeführt, d.h.
es handelt sich wie erläutert
um eine Frühkommutierung.As 2 shows are above a certain minimum speed during switching operations of the commutation signals 232 to 238 those of the semiconductor switches 192 to 198 that are turned on, not turned on at times when pole changes on the rotor position sensor 140 respectively. (These dates are with 261 . 262 . 264 . 266 . 268 Instead, the switch-on processes are carried out prematurely in terms of time, ie, as explained, this is an early commutation.
Beispielsweise
werden die Kommutierungssignale 232 (HSR) und 234 (LSL)
beim Polwechsel vom ersten Pol (HCnt = 1) zum zweiten Pol (HCnt
= 2) nicht zum Zeitpunkt 262 des Polwechsels von „NIEDRIG" auf „HOCH" umgeschaltet, sondern schon
zu einem früheren
Zeitpunkt 252, welcher um einen Zündwinkel 242 (AdvanceAngle_1)
vor diesem Zeitpunkt 262 liegt. Dieser Zündwinkel 242 ist
individuell für
diesen Polwechsel bestimmt, wie bei 4 bis 8 erläutert wird.
Analog hierzu wird für
jeden Polwechsel ein individueller Zündwinkel bestimmt. Gemäß 2 wird
hierbei für
den Polwechsel vom zweiten Pol (HCnt = 2) zum dritten Pol (HCnt
= 3) ein Zündwinkel 244 (AdvanceAngle_2),
für den
Polwechsel vom dritten Pol (HCnt = 3) zum vierten Pol (HCnt = 4)
ein Zündwinkel 246 (AdvanceAngle_3)
und für den
Polwechsel vom vierten Pol (HCnt = 4) zurück zum ersten Pol (HCnt = 1)
ein Zündwinkel 248 (AdvanceAngle_4)
bestimmt.For example, the commutation signals 232 (HSR) and 234 (LSL) at the pole change from the first pole (HCnt = 1) to the second pole (HCnt = 2) not at the time 262 the pole change from "LOW" to "HIGH" switched, but at an earlier date 252 , which is about a firing angle 242 (AdvanceAngle_1) before this time 262 lies. This ignition angle 242 is individually designed for this pole change, as in 4 to 8th is explained. Analogously, an individual ignition angle is determined for each pole change. According to 2 Here, for the pole change from the second pole (HCnt = 2) to the third pole (HCnt = 3) an ignition angle 244 (AdvanceAngle_2), for the pole change from the third pole (HCnt = 3) to the fourth pole (HCnt = 4) an ignition angle 246 (AdvanceAngle_3) and for the pole change from the fourth pole (HCnt = 4) back to the first pole (HCnt = 1) an ignition angle 248 (AdvanceAngle_4).
Die
individuellen Zündwinkel 242 bis 248,
die jeweils aus einem Vorgabe-Zündwinkel
(„Default-Zündwinkel") und einem individuellen
Offset-Wert bestehen, haben in 2 beispielhaft
unterschiedliche, durch unterschiedliche Offset-Werte erzielte Längen bzw.
Zeitdauern und dienen, wie oben erwähnt, zur Symmetrierung bzw.
zur Amplitudenangleichung des Motorstroms.The individual ignition angle 242 to 248 , each consisting of a default ignition angle ("default ignition angle") and an individual offset value have in 2 By way of example, different lengths or durations achieved by different offset values serve, as mentioned above, for balancing or for equalizing the amplitude of the motor current.
Um
zu bestimmen, ob der Motorstrom im Wesentlichen symmetrisch ist
bzw. wird, wird der Motorstrom I_MEAS jeweils nach einer vorgegebenen Zeitdauer
nach einer Änderung
des Rotorstellungssignals, also nach jedem Polwechsel am Rotorstellungssensor 140,
gemessen. Dementsprechend werden folgende Werte gemessen:
Für den 1.
Pol (HCnt = 1) zum Zeitpunkt 222 ein Motorstrom I_MEAS(1);
für den 2.
Pol (HCnt = 2) zum Zeitpunkt 224 ein Motorstrom I_MEAS(2);
für den 3.
Pol (HCnt = 3) zum Zeitpunkt 226 ein Motorstrom I_MEAS(3);
für den 4.
Pol (HCnt = 4) zum Zeitpunkt 228 ein Motorstrom I_MEAS(4).In order to determine whether the motor current is or becomes substantially symmetrical, the motor current I_MEAS is in each case after a predetermined period of time after a change in the rotor position signal, ie after each pole change at the rotor position sensor 140 , measured. Accordingly, the following values are measured:
For the 1st pole (HCnt = 1) at the time 222 a motor current I_MEAS (1);
for the 2nd pole (HCnt = 2) at the time 224 a motor current I_MEAS (2);
for the 3rd pole (HCnt = 3) at the time 226 a motor current I_MEAS (3);
for the 4th pole (HCnt = 4) at the time 228 a motor current I_MEAS (4).
Der
Strom I_MEAS wird gemessen, wenn nach einem Wechsel 261, 262, 264, 266 des
Rotorstellungssignals 182 eine vorgegebene Zeitspanne T_MEAS_I
abgelaufen ist, vgl. 5, wo diese Zeitspanne mit 502 bezeichnet
ist.The current I_MEAS is measured when after a change 261 . 262 . 264 . 266 the rotor position signal 182 a predetermined period T_MEAS_I has expired, cf. 5 where this time span is with 502 is designated.
Jeder
gemessene Motorstrom wird mit dem zuvor gemessenen Motorstrom verglichen,
um eine Abweichung von diesem zu ermitteln. Beispielsweise wird
der Motorstrom I_MEAS(2) mit dem Motorstrom I_MEAS(1) verglichen,
um eine Abweichung A(1)
= I_MEAS(2) – I_MEAS(1) (1)zu bestimmen.Each measured motor current is compared with the previously measured motor current to determine a deviation therefrom. For example, the motor current I_MEAS (2) is compared with the motor current I_MEAS (1) to a deviation A (1) = I_MEAS (2) - I_MEAS (1) (1) to determine.
Der
Motorstrom I_MEAS(3) wird mit dem Motorstrom I_MEAS(2) verglichen,
um eine Abweichung A(2)
= I_MEAS(3) – I_MEAS(2) (2)zu bestimmen,
usw.The motor current I_MEAS (3) is compared with the motor current I_MEAS (2) to a deviation A (2) = I_MEAS (3) - I_MEAS (2) (2) to determine, etc.
Dieser
Vergleich findet in der Steuerroutine I_SYMM (7)
statt, und der Vergleich ist dort im Schritt S730 dargestellt. Je
nach dem Resultat des Vergleichs wird entweder im Schritt S750 die
Zeit T_Offset(HCnt) um einen vorgegebenen Wert vergrößert, oder
sie wird im Schritt S770 um einen vorgegebenen Wert verkleinert.This comparison takes place in the control routine I_SYMM ( 7 ), and the comparison is shown there in step S730. Depending on the result of the comparison, the time T_Offset (HCnt) is either increased by a predetermined value in step S750, or it is reduced by a predetermined value in step S770.
Die
Tatsache, dass eine Abweichung A(n) ermittelt wurde, bewirkt also,
dass der Offset-Wert eines entsprechenden individuellen Zündwinkels – unter
Berücksichtigung
einer bereits erreichten Amplitudenangleichung – justiert, also nachgestellt,
wird. Bevorzugt wird der Offset-Wert des Zündwinkels 242 unter
Verwendung der Abweichung A(1) angepasst, der Offset-Wert des Zündwinkels 244 unter
Verwendung der Abweichung A(2) usw. Die Bestimmung geeigneter Offset-Werte und der individuellen
Zündwinkel 242 bis 248 wird
bei 4 bis 8 ausführlich beschrieben.The fact that a deviation A (n) has been determined thus has the effect that the offset value of a corresponding individual ignition angle is adjusted, that is to say readjusted, taking into account an already achieved amplitude equalization. The offset value of the ignition angle is preferred 242 adjusted using the deviation A (1), the offset value of the ignition angle 244 using deviation A (2), etc. Determining appropriate offset values and individual firing angles 242 to 248 is at 4 to 8th described in detail.
3A zeigt
eine Darstellung 300 eines beispielhaften Verlaufs eines
Motorstroms 320, der im Betrieb des ECM 120 bei
einer Frühkommutierung ohne
Symmetrierung der Ströme
gemessen wurde. Diese Frühkommutierung
wurde unter Verwendung eines Vorgabe-Zündwinkels durchgeführt, welcher
zu Beginn der Stromsymmetrierung bei allen Polwechseln als Zündwinkel 342, 344, 346, 348 verwendet wird,
da zu Beginn der Frühkommutierung
alle Offset-Werte auf Null gesetzt werden. 3A shows a representation 300 an exemplary course of a motor current 320 who is in operation of the ECM 120 was measured at an early commutation without symmetrization of the currents. This early commutation was performed using a default firing angle which, at the beginning of current balancing, is the firing angle for all pole changes 342 . 344 . 346 . 348 is used, since at the beginning of the early commutation all offset values are set to zero.
Bei
der Frühkommutierung
werden beispielsweise zum Zeitpunkt 350 (3A)
die Halbleiterschalter 192, 198 der Endstufe 122 ausgeschaltet, und
zum Zeitpunkt 352 werden die Halbleiterschalter 194, 196 eingeschaltet.
Zum Zeitpunkt 262 wird dann durch eine Änderung des Rotorstellungssignals 182 ein
Polwechsel erfasst, z.B. der Polwechsel vom ersten Pol (HCnt = 1)
zum zweiten Pol (HCnt = 2) gem. 2.At the Frühkommutierung example, at the time 350 ( 3A ) the semiconductor switches 192 . 198 the power amplifier 122 off, and at the time 352 become the semiconductor switches 194 . 196 switched on. At the time 262 is then by a change in the rotor position signal 182 detects a pole change, eg the pole change from the first pole (HCnt = 1) to the second pole (HCnt = 2) acc. 2 ,
Allerdings
treten bei der Verwendung des Default-Zündwinkels zur einheitlichen
Frühkommutierung
Unsymmetrien im Motorstrom 320 auf, wie das 3A zeigt.However, when using the default firing angle for uniform early commutation, imbalances in the motor current occur 320 on, like that 3A shows.
Wie
beschrieben, ist zur Stromsymmetrierung die Messung von Momentanwerten
für den
Motorstrom 320 erforderlich. Deshalb wird zum Zeitpunkt 222 (3A)
ein Momentanwert 322 für
den Motorstrom 320 gemessen, der den Motorstrom I_MEAS(1)
darstellt. Analog hierzu wird zum Zeitpunkt 224 ein Momentanwert 324 bestimmt,
der den Motorstrom I_MEAS(2) darstellt, usw. Wie 3A zeigt,
ist bei diesem Beispiel der Momentanwert 324 größer als
der Momentanwert 322. Somit kann eine Abweichung festgestellt
werden, die größer als
Null ist und zur Veränderung
des entsprechenden Offset-Wertes für den Zündwinkel führt, wie nachfolgend beschrieben
wird. Der Zündwinkel 342 kann
dann, wie bei 2 beschrieben, für jeden
Polwechsel durch einen jeweils zugeordneten Offset-Wert individualisiert
werden.As described, for the current balancing, the measurement of instantaneous values for the motor current 320 required. That's why at the time 222 ( 3A ) an instantaneous value 322 for the motor current 320 measured, which represents the motor current I_MEAS (1). Analogously, at the time 224 an instantaneous value 324 determined, which represents the motor current I_MEAS (2), etc. Like 3A shows, in this example, the instantaneous value 324 greater than the instantaneous value 322 , Thus, a deviation greater than zero may be detected, resulting in a change in the corresponding offset value for the firing angle, as described below. The ignition angle 342 then, as with 2 described, be individualized for each pole change by an associated offset value.
3B zeigt
die Darstellung 360 eines beispielhaften Verlaufs des Motorstroms 320 bei
einer Frühkommutierung
des ECM 120 unter Verwendung der individuellen Zündwinkel 242, 244, 246, 248 von 2.
Wie aus 3B ersichtlich, ist der Motorstrom 320 bei
dieser Art der Kommutierung im Wesentlichen symmetrisch, beispielsweise
hinsichtlich der Amplitude und/oder der Form. Dies führt zu einem
ruhigeren Motorlauf und zu einem besseren Wirkungsgrad. 3B shows the presentation 360 an exemplary course of the motor current 320 at an early commutation of the ECM 120 using the individual firing angle 242 . 244 . 246 . 248 from 2 , How out 3B can be seen, is the motor current 320 in this type of commutation is substantially symmetrical, for example, in terms of amplitude and / or shape. This leads to a quieter engine running and to a better efficiency.
4 zeigt
ein Flussdiagramm eines erfindungsgemäßen Verfahrens 400 zur
Kommutierung des ECM 120, welches von der Steuerung 130 von 1 durchgeführt wird.
Das Verfahren 400 (4) wird
bevorzugt als Hauptprogramm der Steuerung 130 in Form einer
Endlosschleife durchgeführt,
deren Ausführung
bei der Inbetriebnahme des ECM 120 nach einer Initialisierung
beginnt und nur bei einer Unterbrechung bzw. Beendigung des Betriebs
wieder endet. Die Initialisierung der Endlosschleife erfolgt in Schritt
S410, wobei die Steuerung 130 und ihre Ein- und Ausgänge, beispielsweise
der A/D-Wandler 132, initialisiert werden. 4 shows a flowchart of a method according to the invention 400 for commutation of the ECM 120 which is from the controller 130 from 1 is carried out. The procedure 400 ( 4 ) is preferred as the main program of the controller 130 executed in the form of an endless loop, whose execution during commissioning of the ECM 120 after an initialization begins and ends only at an interruption or termination of the operation again. The initialization of the endless loop is performed in step S410, wherein the controller 130 and their inputs and outputs, such as the A / D converter 132 , to be initialized.
In
Schritt S420 wird überprüft, ob ein
Funktionsbit FCT_I_SYM gesetzt ist, d.h. ob FCT_I_SYM = 1 ist. Falls
das der Fall ist, ist eine Stromsymmetrierung des Motorstroms angefordert.
In diesem Fall ruft das Hauptprogramm in Schritt S425 die Steuerroutine
I_SYM 178 von 1 auf. Eine beispielhafte Steuerroutine
I_SYM wird bei 7 beschrieben. Falls FCT_I_SYM
= 0 ist, d.h. dieses Funktionsbit ist nicht gesetzt, ist keine Stromsymmetrierung
angefordert und das Hauptprogramm fährt in Schritt S430 fort. Dies
ist bei niedrigen Drehzahlen der Fall.In step S420, it is checked whether a function bit FCT_I_SYM is set, that is, whether FCT_I_SYM = 1. If this is the case, current balancing of the motor current is required. In this case, the main program calls the control routine I_SYM in step S425 178 from 1 on. An exemplary control routine I_SYM is added 7 described. If FCT_I_SYM = 0, ie this function bit is not set, no current balancing is requested and the main program proceeds to step S430. This is the case at low speeds.
In
Schritt S430 wird überprüft, ob ein
Funktionsbit FCT_ADVANCE_COMMUT gesetzt ist. Falls FCT_ADVANCE_COMMUT
= 1 ist, ist eine Frühkommutierung
des Motorstroms angefordert. In diesem Fall ruft das Hauptprogramm
in Schritt S435 die Steuerroutine ADVANCE_COMMUT 176 von 1 auf. Eine
beispielhafte Steuerroutine ADVANCE_COMMUT wird bei 8 beschrieben. Falls FCT_ADVANCE_COMMUT
= 0 ist, d.h. dieses Funktionsbit ist nicht gesetzt, ist keine Frühkommutierung
angefordert und das Hauptprogramm fährt in Schritt S440 fort.In step S430, it is checked if a function bit FCT_ADVANCE_COMMUT is set. If FCT_ADVANCE_COMMUT = 1, an early commutation of the motor current is requested. In this case, the main program calls the control routine ADVANCE_COMMUT in step S435 176 from 1 on. An example control routine ADVANCE_COMMUT is included 8th described. If FCT_ADVANCE_COMMUT = 0, ie this function bit is not set, no early commutation is requested and the main program proceeds to step S440.
In
Schritt S440 werden andere erforderliche Steuerroutinen ausgeführt, z.B.
eine I/O-Routine, eine
Alarmroutine oder eine 250ms-Routine. Letzteres ist eine Funktion,
die alle 250 ms aufgerufen wird. Wenn der Motor blockiert ist, bestimmt
diese Routine, wie lange dem ECM 120 Strom zugeführt wird, um einen erneuten
Start zu versuchen, und wie lange anschließend der Strom abgeschaltet
wird, wenn der Startversuch nicht erfolgreich war. Anschließend kehrt
das Hauptprogramm zum Schritt S420 zurück.In step S440, other required control routines are executed, eg, an I / O routine, an alarm routine, or a 250ms routine. The latter is a function called every 250 ms. When the engine is stalled, this routine determines how long the ECM 120 power is supplied to try to restart and how long then the power is turned off if the attempt to start was unsuccessful. Subsequently, the main program returns to step S420.
Die
von dem Hauptprogramm (4) ausgeführte Endlosschleife wird bei
jeder Änderung
des Rotorstellungssignals 182 von 1 bzw. 2,
d.h. bei jedem Polwechsel am Rotorstellungssensor 140, von
einer Interrupt Service Routine in Schritt S480 (ISR_HALL) unterbrochen.
Die ISR_HALL wird durch ein Interrupt-Signal 490 (HALL-INTERRUPT)
ausgelöst,
welches z.B. bei jeder Änderung
des Rotorstellungssignals 182 erzeugt wird. Eine beispielhafte
Interrupt Service Routine ISR_HALL wird bei 6 beschrieben.Those of the main program ( 4 ) runs at each change of the rotor position signal 182 from 1 respectively. 2 , ie at each pole change on the rotor position sensor 140 , interrupted by an interrupt service routine in step S480 (ISR_HALL). The ISR_HALL is triggered by an interrupt signal 490 (HALL INTERRUPT) triggered, which, for example, at every change of the rotor position signal 182 is produced. An example ISR_HALL interrupt service routine is included 6 described.
Ein
beispielhafter erfindungsgemäßer Kommutierungsablauf
unter Verwendung des Hauptprogramms wird bei 5 beschrieben.An exemplary commutation process according to the invention using the main program is included 5 described.
5 zeigt
ein Ablaufdiagramm 500, welches den Ablauf des Hauptprogramms 400 von 4 in
der Vorrichtung 100 (1) gemäß einer Ausführungsform
der Erfindung illustriert. Das Ablaufdiagramm 500 umfasst
das Rotorstellungssignal 182 von 2 mit den
vier Hallsegmenten 212, 214, 216, 218,
welche zu den Zeitpunkten 261, 262, 264 bzw. 266 beginnen.
Ausgehend von den Zeitpunkten 261, 262, 264, 266 wird
in Bezug auf jeden Polwechsel des Rotors 124 des ECM 120 ein
individueller Kommutierungszeitpunkt bestimmt, wie weiter unten im
Detail beschrieben wird. 5 shows a flowchart 500 which is the flow of the main program 400 from 4 in the device 100 ( 1 ) according to an embodiment of the invention. The flowchart 500 includes the rotor position signal 182 from 2 with the four Hall segments 212 . 214 . 216 . 218 which at the times 261 . 262 . 264 respectively. 266 kick off. Starting from the times 261 . 262 . 264 . 266 is with respect to each pole change of the rotor 124 of the ECM 120 an individual commutation time is determined, as described in more detail below.
Wie 5 zeigt,
wird beim Übergang
vom Hallsegment 501 zum Hallsegment 212 im Zeitpunkt 261 eine
erste Änderung
des Rotorstellungssignals 182 erfasst, die durch einen
Polwechsel vom vierten Pol (HCnt = 4) zum ersten Pol (HCnt = 1)
bewirkt wird. Bei diesem Polwechsel wird einer Zeitvariablen t_HALL
der Zeitpunkt 261 zugewiesen und das HALL-INTERRUPT-Signal 490 wird
erzeugt, wodurch die Interrupt Service Routine ISR_HALL gemäß Schritt
S480 von 4 ausgelöst wird.As 5 shows, is at the transition from the Hall segment 501 to the Hall segment 212 at the time 261 a first change of the rotor position signal 182 detected by a pole change from the fourth pole (HCnt = 4) to the first pole (HCnt = 1) is effected. At this pole change, a time variable t_HALL becomes the time 261 assigned and the HALL INTERRUPT signal 490 is generated, whereby the interrupt service routine ISR_HALL according to step S480 of 4 is triggered.
In
der ISR_HALL (6) wird in S670 das Funktionsbit
FCT_I_SYM und in S680 das Funktionsbit FCT_ADVANCE_COMMUT zu 1 gesetzt,
wenn gemäß S640 die
Drehzahl des Rotors 124 eine vorgegebene Mindestdrehzahl
bzw. eine untere Grenzdrehzahl überschreitet,
die motorabhängig
z.B. bei 450 rpm liegt. Eine beispielhafte Interrupt Service Routine
ISR_HALL wird bei 6 beschrieben.In the ISR_HALL ( 6 ), the function bit FCT_I_SYM is set in S670, and the function bit FCT_ADVANCE_COMMUT is set to 1 in S680, if, according to S640, the speed of the rotor 124 exceeds a predetermined minimum speed or a lower limit speed, which is motor dependent, for example, at 450 rpm. An example ISR_HALL interrupt service routine is included 6 described.
Für die weitere
Beschreibung des Ablaufdiagramms 500 wird angenommen, dass
die Drehzahl des Rotors 124 zum Zeitpunkt 261 über der
unteren Grenzdrehzahl liegt und somit die Funktionsbits FCT_I_SYM
und FCT_ADVANCE_COMMUT in der ISR_HALL zu 1 gesetzt werden. Dementsprechend wird
nach Durchführung
der ISR_HALL gemäß Schritt
S425 des Hauptprogramms 400 (4) die Steuerroutine 178 (I_SYM)
und gemäß Schritt
S435 die Steuerroutine 176 (ADVANCE_COMMUT) aufgerufen.For further description of the flowchart 500 It is assumed that the speed of the rotor 124 at the time 261 is above the lower limit speed and thus the function bits FCT_I_SYM and FCT_ADVANCE_COMMUT are set to 1 in the ISR_HALL. Accordingly, after performing the ISR_HALL in step S425 of the main program 400 ( 4 ) the control routine 178 (I_SYM) and in step S435 the control routine 176 (ADVANCE_COMMUT).
Die
Steuerroutine 178 (I_SYM) wird, ausgehend vom Zeitpunkt
t_HALL, nach Ablauf einer vorgegebenen Wartezeit 502 (T_Meas_I)
aufgerufen. Eine beispielhafte Steuerroutine I_SYM wird bei 7 beschrieben.
In dieser Routine 178 wird im Schritt S720 der augenblickliche
Strom I_MEAS(HCnt) gemessen und digitalisiert.The control routine 178 (I_SYM) is, starting from the time t_HALL, after a predetermined waiting time 502 (T_Meas_I) is called. An exemplary control routine I_SYM is added 7 described. In this routine 178 In step S720, the instantaneous current I_MEAS (HCnt) is measured and digitized.
Die
Steuerroutine 176 (ADVANCE_COMMUT) wird, ebenfalls ausgehend vom
Zeitpunkt t_HALL, nach Ablauf einer vorgegebenen Zeitdauer 504 (T_Default
+ T_Offset(1)) aufgerufen. Hierbei ist T_Default ein Default-Wert
zur Einstellung des Zündwinkels
für die
Frühkommutierung, und
T_Offset(1) ist ein Kommutierungs-Offset zur Individualisierung des Default-Wertes
für den
Polwechsel vom ersten Pol (HCnt = 1) zum zweiten Pol (HCnt = 2).
(Der Wert T_Offset(1) wird vor Erreichen des Zeitpunkts 260 berechnet.)
Eine beispielhafte Steuerroutine ADVANCE_COMMUT wird bei 8 beschrieben.The control routine 176 (ADVANCE_COMMUT), also starting from the time t_HALL, after a predetermined period of time 504 (T_Default + T_Offset (1)) called. In this case, T_Default is a default value for setting the ignition angle for the early commutation, and T_Offset (1) is a commutation offset for individualizing the default value for the pole change from the first pole (HCnt = 1) to the second pole (HCnt = 2) , (The value T_Offset (1) will be reached before the time 260 An example control routine ADVANCE_COMMUT is included 8th described.
Der
in Bezug auf das erste Hallsegment 212 beschriebene Ablauf
wird anschließend
für jedes
der Hallsegmente 214, 216, 218 wiederholt.
Hierbei wird der Variablen t_HALL zu Beginn des zweiten Hallsegments 214 der
Zeitpunkt 262, zu Beginn des dritten Hallsegments 216 der
Zeitpunkt 264 und zu Beginn des vierten Hallsegments 218 der
Zeitpunkt 266 zugewiesen. Die vorgegebene Zeitdauer 504 wird
im zweiten Hallsegment 214 durch T_Default + T_Offset(2),
im dritten Hallsegment 216 durch T_Default + T_Offset(3)
und im vierten Hallsegment 218 durch T_Default + T_Offset(4)
festgelegt, wobei der entsprechende T Offset-Wert jeweils einen
Kommutierungs-Offset zur Individualisierung des Vorgabewertes für einen
entsprechenden Polwechsel festlegt.The one with respect to the first Hall segment 212 described procedure is then for each of the Hall segments 214 . 216 . 218 repeated. Here, the variable t_HALL at the beginning of the second Hall segment 214 point of time 262 , at the beginning of the third Hall segment 216 point of time 264 and at the beginning of the fourth Hall segment 218 point of time 266 assigned. The predetermined period of time 504 will be in the second hall segment 214 by T_Default + T_Offset (2), in the third Hall segment 216 by T_Default + T_Offset (3) and in the fourth Hall segment 218 determined by T_Default + T_Offset (4), wherein the corresponding T offset value in each case defines a commutation offset for individualizing the default value for a corresponding pole change.
Wie 5 zeigt,
werden die individuellen Kommutierungs-Offsets nach jeder mechanischen Umdrehung
des Rotors 124 aktualisiert. Somit wird der Zeitpunkt der
Frühkommutierung
für jeden
Polwechsel nach jeder Umdrehung des Rotors 124 in Abhängigkeit
von einer bereits erzielten Amplitudenangleichung des Motorstroms
bei den Bestromungsphasen des Strangs 126 aktualisiert.
Dies ermöglicht eine
iterative Symmetrierung des Motorstroms in den einzelnen Drehwinkelbereichen,
vgl. 3B, und damit eine Verbesserung des Wirkungsgrads
des ECM 120.As 5 shows, the individual commutation offsets after each mechanical revolution of the rotor 124 updated. Thus, the timing of the early commutation for each pole change after each revolution of the rotor 124 as a function of an already achieved amplitude equalization of the motor current during the energization phases of the string 126 updated. This allows an iterative symmetrization of the motor current in the individual rotation angle ranges, cf. 3B , and thus an improvement in the efficiency of the ECM 120 ,
6 zeigt
ein Flussdiagramm eines Verfahrens 600, mit dem die Interrupt
Service Routine (ISR_HALL), welche in Schritt S480 von 4 ausgeführt wird,
gemäß einer
bevorzugten Ausführungsform
der Erfindung realisiert wird. 6 shows a flowchart of a procedural proceedings 600 with which the interrupt service routine (ISR_HALL), which in step S480 of FIG 4 is executed, is realized according to a preferred embodiment of the invention.
Die
Routine ISR_HALL beginnt in Schritt S610, in dem ein aktueller Zeitpunkt
bzw. ein Momentanzeitwert t_Timer1 bestimmt wird. Der Wert t_Timer1
ist eine Zeitvariable, welche immer durch einen Momentanzeitwert
festlegt wird. Dieser Momentanzeitwert kann beispielsweise unter
Verwendung eines Zeitgebers ermittelt werden, welcher von der Steuerung 130 von 1 realisiert
wird. Der zu Beginn der Ausführung
der ISR_HALL ermittelte Momentanzeitwert t_Timer1 wird in Schritt
S610 der Variablen t HALL zugewiesen. Beispielsweise wird für den Fall,
dass als Momentanzeitwert t_Timer1 der Zeitpunkt 261 gem. 5 bestimmt
wird, dieser Zeitpunkt 261 der Variablen t_HALL zugewiesen.The routine ISR_HALL starts in step S610, in which a current time or a current time value t_Timer1 is determined. The value t_Timer1 is a time variable, which is always determined by an instantaneous value. This instantaneous value can be determined, for example, using a timer which is provided by the controller 130 from 1 is realized. The instantaneous value t_Timer1 determined at the beginning of the execution of the ISR_HALL is assigned to the variable t HALL in step S610. For example, if the instantaneous value t_Timer1 is the time 261 gem. 5 is determined, this time 261 assigned to the variable t_HALL.
In
Schritt S620 wird der Wert HCnt eines Hallsegment-Zählers, welcher
z.B. von der Steuerung 130 (1) realisiert
wird, inkrementiert. Der Wert HCnt des Hallsegment-Zählers dient zur Zuordnung eines
zu Beginn der Durchführung
der ISR_HALL erfassten Hallsegments zu einem entsprechenden Pol
des Rotors 124 von 1. Beispielsweise
erfolgt zum Zeitpunkt 261 der 5 der Polwechsel
vom vierten Pol zum ersten Pol des Rotors 124. Somit ist
vor dem Polwechsel HCnt = 4 und wird dementsprechend in Schritt
S620 von HCnt = 4 zu HCnt = 5 inkrementiert.In step S620, the value HCnt of a Hall segment counter, for example, from the controller 130 ( 1 ) is realized, incremented. The value HCnt of the Hall segment counter is used to assign a Hall segment detected at the beginning of the execution of the ISR_HALL to a corresponding pole of the rotor 124 from 1 , For example, at the time 261 of the 5 the pole change from the fourth pole to the first pole of the rotor 124 , Thus, before the pole change, HCnt = 4 and, accordingly, it is incremented from HCnt = 4 to HCnt = 5 in step S620.
In
dem in den 1 bis 5 dargestellten Ausführungsbeispiel
wird davon ausgegangen, dass der Rotor 124 vierpolig ist,
d.h. dass er vier Magnetpole 183, 186, 188, 189 hat.
Da jedem Pol ein bestimmtes Hallsegment zugewiesen wird, kann HCnt im
vorliegenden Beispiel nur ganzzahlige Werte von 1 bis 4 annehmen.
Deshalb wird in Schritt S630 überprüft, ob HCnt
= 5 ist. Falls HCnt kleiner als 5 ist, fährt die ISR_HALL in Schritt
S640 fort. Da im vorliegenden Beispiel HCnt = 5 ist, wird HCnt in
Schritt S632 zu HCnt = 1 gesetzt, bevor die ISR_HALL in Schritt S640
fortfährt.
Dadurch wird berücksichtigt,
dass das aktuelle Hallsegment durch Erfassung des ersten Pols am
Rotorstellungssensor 140 von 1 erzeugt wird.
Dementsprechend ergibt sich, dass bei der nächsten Kommutierung des Motorstroms
der Polwechsel vom ersten Pol zum zweiten Pol erfolgt. Der Zeitpunkt
dieser nächsten
Kommutierung ist gemäß 5 durch
die vorgegebene Zeitdauer 504 im ersten Hallsegment 212,
d.h. durch T_Default + T_Offset(1) festgelegt.In the in the 1 to 5 illustrated embodiment, it is assumed that the rotor 124 is four-pole, ie that it has four magnetic poles 183 . 186 . 188 . 189 Has. Since each pole is assigned a specific Hall segment, HCnt in the present example can only take integer values from 1 to 4. Therefore, in step S630, it is checked if HCnt = 5. If HCnt is less than 5, the ISR_HALL proceeds to step S640. Since HCnt = 5 in the present example, HCnt is set to HCnt = 1 in step S632 before the ISR_HALL proceeds to step S640. This takes into account that the current Hall segment by detecting the first pole on the rotor position sensor 140 from 1 is produced. Accordingly, it follows that at the next commutation of the motor current, the pole change takes place from the first pole to the second pole. The time of this next commutation is according to 5 by the predetermined time period 504 in the first Hall segment 212 ie defined by T_Default + T_Offset (1).
In
Schritt S640 wird bestimmt, ob die Drehzahl N des Rotors 124 über der
unteren Grenzdrehzahl Nmin liegt. Falls N ≤ Nmin ist, wird die nächste Kommutierung
des Motorstroms im Strang 126 von 1 in Schritt
S642 auf gebräuchliche
Art durchgeführt,
d.h. es erfolgt keine Frühkommutierung,
sondern die Kommutierung wird direkt durch das Hallsignal 182 gesteuert.
Falls bereits N > Nmin
ist, erfolgt bei der nächsten
Kommutierung eine Frühkommutierung
mit einem individuellen Zündwinkel,
und die ISR_HALL fährt
in Schritt S652 fort.In step S640, it is determined whether the rotational speed N of the rotor 124 above the lower limit speed Nmin. If N ≤ Nmin, the next commutation of the motor current will be in progress 126 from 1 in step S642 performed in the usual way, ie there is no early commutation, but the commutation is directly by the Hall signal 182 controlled. If already N> Nmin, an early commutation with an individual firing angle occurs at the next commutation, and the ISR_HALL proceeds to step S652.
In
Schritt S652 wird überprüft, ob HCnt
= 1 ist. Falls HCnt = 1 ist, fährt
die ISR_HALL in Schritt S662 fort. Ansonsten wird in Schritt S654 überprüft, ob HCnt
= 2 ist. Falls in Schritt S654 HCnt = 2 ist, fährt die ISR_HALL in Schritt
S664 fort. Ansonsten wird in Schritt S656 überprüft, ob HCnt = 3 ist. Falls Ja,
fährt die
ISR_HALL in Schritt S666 fort. Ansonsten wird in Schritt S658 überprüft, ob HCnt
= 4 ist. Falls in Schritt S658 bestimmt wird, dass HCnt = 4 ist, fährt die
ISR_HALL in Schritt S668 fort.In
Step S652 checks if HCnt
= 1. If HCnt = 1, moves
the ISR_HALL continues in step S662. Otherwise, it is checked in step S654 whether HCnt
= 2. If HCnt = 2 in step S654, ISR_HALL goes to step
S664 continues. Otherwise, it is checked in step S656 if HCnt = 3. If so,
she drives
ISR_HALL continues in step S666. Otherwise, it is checked in step S658 whether HCnt
= 4. If it is determined in step S658 that HCnt = 4, the
ISR_HALL continues in step S668.
In
Schritt S662 wird einem Kommutierungs-Offset T_Offset der Wert des
Kommutierungs-Offsets T_Offset(1) zur Beeinflussung des Default-Wertes
T_Default zugewiesen, um den Zeitpunkt der Frühkommutierung vor dem Polwechsel vom
ersten Pol zum zweiten Pol, welcher gem. 5 zum Zeitpunkt 262 erfolgt,
individuell zu verändern.
In Schritt S664 wird T_Offset der Wert T_Offset(2) zugewiesen, mit
dem der Zeitpunkt der Frühkommutierung
vor dem Polwechsel vom zweiten Pol zum dritten Pol, welcher gem. 5 zum
Zeitpunkt 264 erfolgt, individualisiert wird. In Schritt
S666 wird T Offset der Wert T_Offset(3) zugewiesen, mit dem der Zeitpunkt
der Frühkommutierung
vor dem Polwechsel vom dritten Pol zum vierten Pol, welcher gem. 5 zum
Zeitpunkt 266 erfolgt, individualisiert wird. In Schritt
S668 wird T Offset der Wert T_Offset(4) zugewiesen, mit dem der
Zeitpunkt der Frühkommutierung
vor dem Polwechsel vom vierten Pol zum ersten Pol, welcher gem. 5 zum
Zeitpunkt 261 erfolgt, individualisiert wird.In step S662, a commutation offset T_Offset is assigned the value of the commutation offset T_Offset (1) for influencing the default value T_Default in order to determine the time of the early commutation before the pole change from the first pole to the second pole, which acc. 5 at the time 262 done, to change individually. In step S664, the value T_Offset (2) is assigned to T_Offset, with which the time of the early commutation before the pole change from the second pole to the third pole, which gem. 5 at the time 264 done, is individualized. In step S666, the value T_Offset (3) is assigned to T Offset, with which the time of the early commutation before the pole change from the third pole to the fourth pole, which acc. 5 at the time 266 done, is individualized. In step S668, the value T_Offset (4) is assigned to T Offset, with which the time of the early commutation before the pole change from the fourth pole to the first pole, which acc. 5 at the time 261 done, is individualized.
In
Schritt S670 wird das Funktionsbit FCT_I_SYM zu 1 gesetzt, um das
Hauptprogramm von 4 zu veranlassen, in Schritt
S425 die Steuerroutine I_SYM auszuführen, um den jeweiligen zugewiesenen
Kommutierungs-Offset für
den Default-Wert des Zündwinkels
zu aktualisieren. Eine beispielhafte Steuerroutine I_SYM wird bei 7 beschrieben.In step S670, the function bit FCT_I_SYM is set to 1 to be the main program of 4 to cause in step S425 to execute the control routine I_SYM to update the respective assigned commutation offset for the default value of the ignition angle. An exemplary control routine I_SYM is added 7 described.
In
Schritt S680 wird das Funktionsbit FCT_ADVANCE_COMMUT auf 1 gesetzt,
um das Hauptprogramm von 4 zu veranlassen, in Schritt S435
die Steuerroutine ADVANCE_COMMUT auszuführen, um die Frühkommutierung
mit dem jeweils ermittelten, individuellen Zündwinkel zu bewirken. Eine
beispielhafte Steuerroutine ADVANCE_COMMUT wird bei 8 beschrieben.In step S680, the function bit FCT_ADVANCE_COMMUT is set to 1 to be the main program of 4 in step S435, execute the control routine ADVANCE_COMMUT to effect the early commutation with the respectively determined individual firing angle. An example control routine ADVANCE_COMMUT is included 8th described.
Die
ISR_HALL (6) wird dann in Schritt S690
beendet, und die Ausführung
des Hauptprogramms von 4 wird wieder aufgenommen.The ISR_HALL ( 6 ) is then terminated in step S690, and execution of the main pro grams of 4 will be resumed.
7 zeigt
ein Flussdiagramm eines Verfahrens 700, mit dem die Steuerroutine 178 (I_SYM)
von 1 gemäß einer
bevorzugten Ausführungsform der
Erfindung realisiert wird. Wie bei 4 beschrieben
ist, wird diese Steuerroutine I_SYM in Schritt S425 des Hauptprogramms
von 4 ausgeführt, wenn
das Funktionsbit FCT_I_SYM zu 1 gesetzt ist. 7 shows a flowchart of a method 700 with which the control routine 178 (I_SYM) of 1 is realized according to a preferred embodiment of the invention. As in 4 is described, this control routine I_SYM in step S425 of the main program of 4 executed when the function bit FCT_I_SYM is set to 1.
Die
Steuerroutine I_SYM beginnt mit Schritt S710, in dem (wie oben bei 6 beschrieben)
ein aktueller Zeitpunkt bzw. ein Momentanzeitwert für die Variable
t_Timer1 bestimmt wird, welcher mit einem Zeitwert verglichen wird,
der aus t HALL und der vorgegebenen Wartezeit T_Meas_I (5)
gebildet wird. Somit wird in Schritt S710 überprüft, ob in einem vorgegebenen
Hallsegment HCnt seit dem Polwechsel zum Zeitpunkt t HALL zu Beginn
dieses Hallsegments HCnt die vorgegebene Wartezeit T_Meas_I abgelaufen
ist. Falls die vorgegebene Wartezeit T_Meas_I noch nicht abgelaufen
ist (d.h. t_Timer1 ≤ t_HALL
+ T_Meas_I), endet die Steuerroutine in Schritt S790. Ansonsten
fährt die
Steuerroutine in Schritt S720 fort.The control routine I_SYM starts with step S710, in which (as in at 6 described) a current time or a momentary time value for the variable t_Timer1 is determined, which is compared with a time value consisting of t HALL and the predetermined waiting time T_Meas_I ( 5 ) is formed. Thus, it is checked in step S710 whether in a given Hall segment HCnt since the pole change at time t HALL at the beginning of this Hall segment HCnt the predetermined waiting time T_Meas_I has expired. If the predetermined waiting time T_Meas_I has not yet elapsed (ie t_Timer1 ≤ t_HALL + T_Meas_I), the control routine ends in step S790. Otherwise, the control routine continues in step S720.
In
Schritt S720 wird, wie bei 1 beschrieben,
eine Messung des Motorstroms I_MEAS durchgeführt. Hierbei wird für das aktuelle
Hallsegment HCnt der Motorstrom I_MEAS(HCnt) ermittelt, also z.B.
der Motorstrom I_MEAS(1) für
das Hallsegment 1, falls dieses aktuell ist.In step S720, as with 1 described a measurement of the motor current I_MEAS performed. In this case, the motor current I_MEAS (HCnt) is determined for the current Hall segment HCnt, that is, for example, the motor current I_MEAS (1) for the Hall segment 1, if this is current.
In
Schritt S730 wird der im aktuellen Hallsegment HCnt gemessene Motorstrom
I_MEAS(HCnt) mit dem im zuvor erfassten Hallsegment HCnt-1 gemessenen
Motorstrom I_MEAS(HCnt-1) verglichen. Hierbei wird eine Abweichung
des Motorstroms I_MEAS(HCnt) von dem Motorstrom I_MEAS(HCnt-1) bestimmt.
Falls diese Abweichung kleiner als Null ist, d.h. I_MEAS(HCnt) < I_MEAS(HCnt-1),
fährt die
Steuerroutine I_SYM in Schritt S760 fort. Sonst fährt sie
im Schritt S740 fort.In
Step S730 becomes the motor current measured in the current Hall segment HCnt
I_MEAS (HCnt) with the previously detected Hall segment HCnt-1 measured
Motor current I_MEAS (HCnt-1) compared. This is a deviation
of the motor current I_MEAS (HCnt) from the motor current I_MEAS (HCnt-1).
If this deviation is less than zero, i. I_MEAS (HCnt) <I_MEAS (HCnt-1),
she drives
Control routine I_SYM in step S760. Otherwise she drives
in step S740.
In
Schritt S760 wird bestimmt, ob der Kommutierungs-Offset T_Offset(HCnt-1)
größer als
ein vorgegebener unterer Grenzwert (hier Null) ist. Dieser untere
Grenzwert kann anwendungsspezifisch vorgegeben werden. Falls der
Kommutierungs-Offset T_Oftset(HCnt-1) größer als der untere Grenzwert ist,
wird T_Oftset(HCnt-1) in Schritt S770 bevorzugt um den Wert 1 dekrementiert,
bevor die Steuerroutine I_SYM in Schritt S780 fortfährt. Ansonsten
wird keine Dekrementierung des Kommutierungs-Offsets durchgeführt, so
dass die Steuerroutine I_SYM nach Schritt S760 in Schritt S780 fortfährt. Somit
kann vermieden werden, dass der untere Grenzwert für den Kommutierungs-Offset
T_Oftset(HCnt-1) durch die Dekrementierung in Schritt S770 unterschritten
wird (Vermeidung eines Underflow).In
Step S760 determines whether the commutation offset T_Offset (HCnt-1)
greater than
is a predetermined lower limit (here zero). This lower one
Limit can be specified application-specific. If the
Commutation offset T_Oftset (HCnt-1) is greater than the lower limit,
T_Oftset (HCnt-1) is preferably decremented by the value 1 in step S770,
before the control routine I_SYM continues in step S780. Otherwise
if no decrementation of the commutation offset is performed, then
the control routine I_SYM proceeds to step S780 after step S760. Consequently
can be avoided that the lower limit for the commutation offset
T_Oftset (HCnt-1) by decrementing in step S770 below
will (avoid an underflow).
In
Schritt S740 wird geprüft,
ob der Kommutierungs-Offset T_Offset(HCnt-1) größer als ein vorgegebener oberer
Grenzwert ist. Dieser obere Grenzwert kann anwendungsspezifisch
vorgegeben werden und ist in 7 beispielhaft
zu 200 gesetzt. Falls der Kommutierungs-Offset T_Offset(HCnt-1) nicht
größer ist
als der obere Grenzwert (d.h. T_Offset(HCnt-1) ≤ 200), wird T_Offset(HCnt-1)
in Schritt S750 bevorzugt um den Wert 1 inkrementiert, bevor die
Steuerroutine I_SYM in Schritt S780 fortfährt. Andernfalls wird keine
Inkrementierung des Kommutierungs-Offsets durchgeführt, sodass die Steuerroutine
I_SYM nach Schritt S740 in Schritt S780 fortfährt. So wird vermieden, dass
durch eine Inkrementierung im Schritt S750 der obere Grenzwert für den Kommutierungs-Offset
T_Oftset(HCnt-1) überschritten
wird, wodurch ein Overflow auftreten würde. Die Begrenzung des Kommutierungs-Offsets nach oben
und nach unten stellt sicher, dass dieser keine ungeeigneten Werte
annimmt.In step S740, it is checked whether the commutation offset T_Offset (HCnt-1) is greater than a predetermined upper limit value. This upper limit can be specified application-specific and is in 7 set to 200, for example. If the commutation offset T_Offset (HCnt-1) is not greater than the upper limit (ie, T_Offset (HCnt-1) ≤ 200), then T_Offset (HCnt-1) is incremented by the value 1 in step S750 before the control routine I_SYM continues in step S780. Otherwise, no incrementation of the commutation offset is performed so that the control routine I_SYM proceeds to step S780 after step S740. This avoids that the upper limit value for the commutation offset T_Oftset (HCnt-1) is exceeded by an incrementation in step S750, whereby an overflow would occur. Limiting the commutation offset up and down ensures that it does not take inappropriate values.
In
Schritt S780 wird das Funktionsbit FCT_I_SYM zu Null zurückgesetzt,
bevor die Steuerroutine I_SYM von 7 in Schritt
S790 endet und das Hauptprogramm von 4 wie oben
beschrieben bei Schritt S430 fortfährt. Dadurch, dass FCT_I_SYM
in S780 zurückgesetzt
wird, kann ein weiterer Aufruf der Steuerroutine I_SYM durch das Hauptprogramm
(4) bis zur nächsten
Ausführung
der ISR_HALL (6) verhindert werden. Somit
wird eine zweite oder weitere Inkrementierung oder Dekrementierung
ein und desselben Kommutierungs-Offsets innerhalb eines einzelnen
Hallsegments, d.h. vor Auftreten eines nächsten Polwechsels, verhindert.In step S780, the function bit FCT_I_SYM is reset to zero before the control routine I_SYM of 7 in step S790 ends and the main program of 4 as described above, proceeds to step S430. Because FCT_I_SYM is reset in S780, another call of the control routine I_SYM by the main program ( 4 ) until the next execution of ISR_HALL ( 6 ) be prevented. Thus, a second or further incrementing or decrementing one and the same commutation offset within a single Hall segment, ie before the occurrence of a next pole change, prevented.
Es
wird darauf hingewiesen, dass in der Steuerroutine I_SYM (7)
wie beschrieben im aktuellen Hallsegment HCnt der Kommutierungs-Offset T_Offset(HCnt-1)
aktualisiert wird. Dieser Kommutierungs-Offset dient zur Individualisierung
des Zündwinkels
beim Polwechsel vom Hallsegment HCnt-1 zum Hallsegment HCnt. Dementsprechend
wird der aktualisierte Kommutierungs-Offset T_Offset(HCnt-1) erst
nach einer im Wesentlichen vollständigen mechanischen Umdrehung
des Rotors 124 zur Individualisierung des Zündwinkels
bei der Frühkommutierung
vor dem nächsten
Auftreten dieses Polwechsels verwendet.It should be noted that in the control routine I_SYM ( 7 ) as described in the current Hall segment HCnt the commutation offset T_Offset (HCnt-1) is updated. This commutation offset is used to individualize the ignition angle during pole change from the Hall segment HCnt-1 to the Hall segment HCnt. Accordingly, the updated commutation offset T_Offset (HCnt-1) does not become effective until after a substantially complete mechanical revolution of the rotor 124 used for individualizing the ignition angle at the Frühkommutierung before the next occurrence of this pole change.
8 zeigt
ein Flussdiagramm eines Verfahrens 800, mit dem die Steuerroutine 176 (ADVANCE_COMMUT)
von 1 gemäß einer
bevorzugten Ausführungsform
der Erfindung realisiert wird. Wie oben bei 4 beschrieben,
wird diese Steuerroutine ADVANCE_COMMUT bevorzugt im Schritt S435
des Hauptprogramms (4) ausgeführt, wenn das Funktionsbit FCT_ADVANCE_COMMUT
= 1 ist. 8th shows a flowchart of a method 800 with which the control routine 176 (ADVANCE_COMMUT) from 1 is realized according to a preferred embodiment of the invention. As above 4 this control routine ADVANCE_COMMUT is preferred in step S435 of the main program ( 4 ) is executed when the function bit FCT_ADVANCE_COMMUT = 1.
Die
Routine ADVANCE_COMMUT beginnt mit Schritt S810, in dem, wie bei 6 beschrieben, ein
aktueller Zeitpunkt bzw. ein Momentanzeitwert für die Variable t_Timer1 bestimmt
wird, welcher mit einem Zeitwert verglichen wird, der aus t HALL,
dem Default-Wert T_Default für
den Zündwinkel
zur Frühkommutierung
und dem Kommutierungs-Offset T_Offset(HCnt) gebildet wird. Somit
wird in Schritt S810 überprüft, ob in
einem entsprechenden Hallsegment HCnt seit dem Polwechsel zum Zeitpunkt t_HALL
zu Beginn dieses Hallsegments HCnt die vorgegebene Zeitdauer T_Default
+ T_Offset(HCnt) bis zur Auslösung
der Frühkommutierung
abgelaufen ist. Falls die vorgegebene Zeitdauer noch nicht abgelaufen
ist (d.h. t_Timer1 ≤ t_HALL
+ T_Default + T_Offset(HCnt)), endet die Routine ADVANCE_COMMUT
in Schritt S840. Ansonsten fährt
die Routine in Schritt S820 fort.The routine ADVANCE_COMMUT begins with step S810 in which, as with 6 described, a current time or a momentary value for the variable t_Timer1 is determined, which is compared with a time value, which is formed from t HALL, the default value T_Default for the firing angle for early commutation and the commutation offset T_Offset (HCnt). Thus, it is checked in step S810 whether in a corresponding Hall segment HCnt since the pole change at the time t_HALL at the beginning of this Hall segment HCnt the predetermined time T_Default + T_Offset (HCnt) has expired until the initiation of the early commutation. If the predetermined period of time has not yet elapsed (ie, t_Timer1≤t_HALL + T_Default + T_Offset (HCnt)), the routine ADVANCE_COMMUT ends in step S840. Otherwise, the routine continues in step S820.
In
Schritt S820 wird der Motorstrom im Strang 126 wie oben
bei 2 beschrieben kommutiert. In Schritt S830 wird
dann das Funktionsbit FCT_ADVANCE_COMMUT zu FCT_ADVANCE_COMMUT =
0 zurückgesetzt,
bevor die Steuerroutine ADVANCE_COMMUT in Schritt S840 endet und
das Hauptprogramm von 4 wie oben beschrieben bei Schritt
S440 fortfährt.
Dadurch, dass FCT_ADVANCE_COMMUT in Schritt S830 zurückgesetzt
wird, kann ein weiterer Aufruf der Steuerroutine ADVANCE_COMMUT
durch das Hauptprogramm (4) bis zur nächsten Ausführung der Routine ISR_HALL
(6) verhindert werden. Somit wird eine zweite oder
weitere Kommutierung innerhalb eines einzelnen Hallsegments, d.h.
vor Auftreten des nächsten
Polwechsels, verhindert.In step S820, the motor current is stranded 126 as above at 2 described commutated. In step S830, the function bit FCT_ADVANCE_COMMUT is then reset to FCT_ADVANCE_COMMUT = 0 before the control routine ADVANCE_COMMUT ends in step S840 and the main program of 4 as described above, proceeds to step S440. By resetting FCT_ADVANCE_COMMUT in step S830, another call of the ADVANCE_COMMUT control routine by the main program (FIG. 4 ) until the next execution of routine ISR_HALL ( 6 ) be prevented. Thus, a second or further commutation within a single Hall segment, ie before the occurrence of the next pole change, prevented.
Erfindungsgemäß können Unsymmetrien
im Motorstrom des ECM 120 während des Betriebs unter Verwendung
geeigneter, individueller Zündwinkel mit
entsprechenden individuellen Kommutierungs-Offsets kompensiert werden,
wobei ungünstige
Randbedingungen und Betriebsparameter einfach und schnell ausgeglichen
werden.According to the invention, imbalances in the motor current of the ECM 120 be compensated for during operation using appropriate, individual firing angles with corresponding individual commutation offsets, whereby unfavorable boundary conditions and operating parameters are easily and quickly compensated.
Durch
die stufenweise Inkrementierung/Dekrementierung dieser individuellen
Kommutierungs-Offsets wird hierbei eine kontinuierliche Amplitudenangleichung
des Motorstroms in unterschiedlichen Bestromungsphasen erreicht,
d.h. dieser Vorgang erstreckt sich ggf. über eine größere Zahl von Umdrehungen des
Rotors 124, besonders nach dem Einschalten des Motors 120.Due to the stepwise incrementation / decrementation of these individual commutation offsets, a continuous amplitude equalization of the motor current in different energization phases is achieved, ie this process possibly extends over a larger number of revolutions of the rotor 124 , especially after switching on the engine 120 ,
Naturgemäß sind im
Rahmen der vorliegenden Erfindung vielfache Abwandlungen und Modifikationen
möglich.By nature are in the
Under the present invention multiple modifications and modifications
possible.
So
kann beispielsweise der Aufruf der Routine I_SYM 178 (7)
nach der Zeit T_Meas_I und/oder der Aufruf der Routine ADVANCE_COMMUT
(8) nach der Zeit T_Default + T_Offset(HCnt) durch
einen auf die entsprechende Zeit gesetzten Timer und ggf. einen durch
den Timer ausgelösten
Timer-Interrupt gesteuert werden. Dies vermeidet das wiederholte Überprüfen (Polling),
ob die entsprechende Zeit bereits abgelaufen ist (S710 in 7 und
S810 in 8).For example, calling the routine I_SYM 178 ( 7 ) after the time T_Meas_I and / or the call of the routine ADVANCE_COMMUT ( 8th ) after the time T_Default + T_Offset (HCnt) are controlled by a timer set to the appropriate time and possibly a timer interrupt triggered by the timer. This avoids repeated checking (polling) whether the corresponding time has already expired (S710 in 7 and S810 in 8th ).
Anstelle
der Addition eines individualisierenden Werts T_Offset(HCnt) zu
einem Grundwert T_Default kann auch für jeden Rotorpol eine Variable T_Commut(HCnt)
verwendet werden, wobei sämtliche
Werte T_Commut(HCnt) bei der Initialisierung bspw. auf den Wert
T_Default gesetzt werden. Die Symmetrierung erfolgt dann durch eine
Anpassung der jeweiligen Werte T_Commut(HCnt).Instead of
adding an individualizing value T_Offset (HCnt)
A basic value T_Default can also have a variable T_Commut (HCnt) for each rotor pole.
be used, with all
Values T_Commut (HCnt) during initialization eg to the value
T_Default be set. The symmetrization then takes place through a
Adaptation of the respective values T_Commut (HCnt).
Mit
dem erfindungsgemäßen Verfahren
kann eine Frühkommutierung
und/oder eine Spätkommutierung
durchgeführt
werden.With
the method according to the invention
can be an early commutation
and / or a late commutation
carried out
become.
Solche
und ähnliche
Modifikationen liegen im Rahmen des fachmännischen Handelns.Such
and similar
Modifications are within the scope of expert action.