Electronically commutated motor
Abstract
An electronically commutated motor has a rotor ( 108 ), a stator having a stator winding arrangement ( 102 ), and a full bridge circuit ( 137 ) for controlling the current (i<SUB>1</SUB>, i<SUB>2</SUB>) in the stator winding arrangement ( 102 ); in the full bridge circuit ( 137 ), first semiconductor switches ( 114, 130 ) are connected to a first DC supply lead ( 116 ) and second semiconductor switches ( 132, 136 ) to the other DC supply lead ( 122 ), said second switches being bidirectionally conductive of current in the switched-on state. The motor has an arrangement ( 172, 198, 188 ) for opening the first semiconductor switches ( 114, 130 ) and for closing the second semiconductor switches ( 132, 136 ) during a predetermined operating state. An arrangement ( 202 ) is provided for monitoring the direction of the current (i<SUB>1</SUB>, i<SUB>2</SUB>) which flows in the second semiconductor switches ( 132, 136 ) when the latter are conductive during the predetermined operating state.
Term
Term ended
Projected expiry passed 21 December 2021, 4.8 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
18 claims: 18 independent, 0 dependent
- 1Claims of equivalent WO 02054567 A2 Translation of claims of equivalent WO 02054567 A2 Claims 1. Electronically commutated motor, which comprises:a rotor (108);a stator, with a stator winding assembly (102);a full-bridge circuit (137) for controlling the current (ii, -2) in the stator winding assembly (102);wherein in the full bridge circuit (137) with a first direct current supply line (116) first semiconductor switches (114, 130) and with the other DC supply line (122) second semiconductor switches (132, 136) are connected, which are bidirectionally current-conducting in the switched-on state;an arrangement (172, 198 188) for opening the first semiconductor switches (114, 130) and for closing the second semiconductor switch (132, 136) during a predetermined operating condition;and an arrangement (202) for monitoring the direction of the current (ii, -2) which in the second semiconductor switches (132, 136) flows, if they are conductive during the specified operating state. Patentansprüche 1. Elektronisch kommutierter Motor, welcher aufweist: Einen Rotor (108);einen Stator, mit einer Statorwicklungsanordnung (102);eine Vollbrückenschaltung (137) zur Steuerung des Stromes (ii, -2) in der Statorwicklungsanordnung (102);wobei in der Vollbrückenschaltung (137) mit einer ersten Gleichstrom-Zuleitung (116) erste Halbleiterschalter (114, 130) und mit der anderen Gleichstrom-Zuleitung (122) zweite Halbleiterschalter (132, 136) verbunden sind, welche im eingeschalteten Zustand bidirektional stromleitend sind;eine Anordnung (172, 198, 188) zum Öffnen der ersten Halbleiterschalter (114, 130) und zum Schließen der zweiten Halbleiterschalter (132, 136) während eines vorgegebenen Betriebszustandes;und eine Anordnung (202) zur Überwachung der Richtung des Stromes (ii , -2), welcher in den zweiten Halbleiterschaltern (132, 136) fließt, wenn diese während des vorgegebenen Betriebszustands leitend sind.
- 2Motor nach Anspruch 1 , bei welchem die Anordnung (202) zur Überwachung der Richtung des Stromes (ii, -2) in den geschlossenen zweiten Halbleiterschaltern (132, 136) dazu ausgebildet ist, bei Feststellung einer Umkehr der Stromrichtung die Öffnung der zweiten Halbleiterschalter (132, 136) einzuleiten. Second Motor according to Claim 1, in which the arrangement (202) for monitoring the direction of the current (ii, -2) in the closed second semiconductor switches (132, 136) is designed to detect, upon detection of a reversal of the current direction, the opening of the second semiconductor switches ( 132, 136).
- 4Elektronisch kommutierter Motor, welcher aufweist:Einen Rotor (108);einen Stator mit einer Statorwicklungsanordnung (102);eine Vollbrückenschaltung (137) zur Steuerung des Stromes (ii , i2) in der Statorwicklungsanordnung (102);wobei in der Vollbrückenschaltung mit einer ersten Gleichstrom-Zuleitung (116) erste Halbleiterschalter (114, 130) und mit einer zweiten Gleichstrom-Zuleitung (122) zweite Halbleiterschalter (132, 136) verbunden sind;ferner eine Anordnung (172, 198) zur Überwachung des von der ersten Gleichstrom-Zuleitung (122) zu mindestens einem Halbleiterschalter (132, 136) fließenden Stromes (ii , -2);welche Anordnung dazu ausgebildet ist, bei Überschreiten eines vorgegebenen Stromes anzusprechen und mindestens einen mit der zweiten Gleichstrom- Zuleitung (114, 130) verbundenen Halbleiterschalter (114, 130) von seinem leitenden in seinen nichtleitenden Zustand zu steuern. 4th Electronically commutated motor, which comprises: a rotor (108);a stator having a stator winding assembly (102);a full-bridge circuit (137) for controlling the current (ii, i2) in the stator winding assembly (102);wherein in the full-bridge circuit having a first DC supply line (116) first semiconductor switch (114, 130) and with a second DC supply line (122) second semiconductor switches (132, 136) are connected;furthermore an arrangement (172, 198) for monitoring from the first DC supply line (122) to at least one semiconductor switch (132, 136) flowing current (ii, -2);which arrangement is designed to when a predetermined current is exceeded and at least one with the second DC supply line (114, 130) connected semiconductor switch (114, 130) from its conducting to its non-conducting state.
- 5Motor nach Anspruch 4, bei welchem die Anordnung (172, 188, 198) zur Überwachung des Stromes (ii , .2) eine Schalthysterese aufweist, so dass sie bei einem ersten Stromwert aktiviert und bei einem zweiten Stromwert deaktiviert wird, welcher dem Betrag nach kleiner ist als der erste Stromwert. 5th An engine according to claim 4, wherein the means (172, 188, 198) for monitoring the current (ii, 2) comprises a switching hysteresis to be activated at a first current value and deactivated at a second current value whichever is greater smaller than the first current value.
- 6Motor nach Anspruch 5, bei welchem in einer Zuleitung zu einem Halbleiterschalter (132, 136) ein Messwiderstand (134, 138) vorgesehen ist, welchem ein Komparator zugeordnet ist, der eine von diesem Messwiderstand abgeleitete Messspannung mit einer vorgegebenen Vergleichsspannung (Uref) vergleicht. 6th Motor according to Claim 5, in which a measuring resistor (134, 138) is provided in a supply line to a semiconductor switch (132, 136), to which a comparator is assigned, which compares a measuring voltage derived from this measuring resistor with a predetermined reference voltage (Uref).
- 7Motor nach Anspruch 6, bei welchem die Vergleichsspannung (Uref) eine Funktion des Ausgangssignals des Komparators (172, 198) ist und bei Überschreiten des vorgegebenen Stromes verändert wird, um die Schalthysterese zu bewirken. 7th Motor according to Claim 6, in which the reference voltage (Uref) is a function of the output signal of the comparator (172, 198) and is changed when the predetermined current is exceeded in order to effect the switching hysteresis.
- 8Motor nach einem der Ansprüche 5 bis 7, bei welchem eine Mehrzahl von Messwiderständen (134, 138) und diesen zugeordneten Komparatoren (172, 198) vorgesehen ist, und die Ausgangssignale dieser Komparatoren über ein Verknüpfungsglied (192, 194) einem gemeinsamen Ausgangsglied (188) zugeführt werden, welches bei Überschreiten eines vorgegebenen Stromes in einem der Halbleiterschalter ein entsprechendes Ausgangssignal liefert und eine Veränderung der Referenzspannung (Uref) für alle Komparatoren bewirkt. 8th. Motor according to one of claims 5 to 7, in which a plurality of measuring resistors (134, 138) and associated comparators (172, 198) is provided, and the output signals of these comparators via a gate (192, 194) are fed to a common output member (188), which, when a given current in one of the semiconductor switches is exceeded, supplies a corresponding output signal and causes a change in the reference voltage (Uref) for all comparators.
- 9Motor nach einem der Ansprüche 4 bis 8, bei welchem der mindestens eine mit der ersten Gleichstrom-Zuleitung (116) verbundene Halbleiterschalter (114, 130) bei Überschreiten des vorgegebenen Stromes durch Hardware (148, 152, 154, 160) nichtleitend steuerbar ist. 9th Motor according to one of Claims 4 to 8, in which the at least one semiconductor switch (114, 130) connected to the first direct-current supply line (116) is nonconductively controllable when the predetermined current is exceeded by hardware (148, 152, 154, 160).
- 10Motor nach Anspruch 9, bei welchem der mindestens eine mit der ersten Gleichstrom-Zuleitung (116) verbundene Halbleiterschalter (114, 130) bei Überschreiten des vorgegebenen Stromes redundant auch durch Software nichtleitend steuerbar ist. 10th Motor according to Claim 9, in which the at least one semiconductor switch (114, 130) connected to the first DC supply line (116) is redundantly controllable by software even when the predetermined current is exceeded.
- 11Motor nach Anspruch 10, bei welchem ein Ausgangssignal (Imax) der Stromüberwachungsanordnung (172, 198) sowohl der Hardware des Motors wie einem dem Motor zugeordneten Mikrocomputer (40) zuführbar ist, um sowohl direkt über die Hardware wie auch durch einen Befehl an einem Ausgang des Mikrocomputers (40) mindestens einen mit der anderen Gleichstrom-Zuleitung (1 16) verbundenen Halbleiterschalter (114, 130) nichtleitend zu steuern. 11th An engine according to claim 10, wherein an output signal (Imax) is supplied to the current monitoring device (172, 198) to both the hardware of the motor and a microcomputer (40) associated with the motor, both directly through the hardware and through an instruction at an output the microcomputer (40) non-conducting control of at least one connected to the other DC power supply line (1 16) semiconductor switch (114, 130).
- 12Motor nach Anspruch 11 , bei welchem das Ausgangssignal (Imax) einem Eingang (RB6) des Mikrocomputers (μC 40) zuführbar ist, bei welchem bei Auftreten dieses Ausgangssignals ein Interrupt (Fig. 17:Imax-Interrupt) auslösbar ist. 12th Motor according to Claim 11, in which the output signal (Imax) can be supplied to an input (RB6) of the microcomputer (μC 40) in which an interrupt (Fig. 17: Imax interrupt) is triggered when this output signal appears.
- 13Motor nach Anspruch 12, bei welchem beim Auftreten des Interrupts zusätzlich zum Nichtleitend-Steuern eines mit der anderen Gleichstrom-Zuleitung (116) verbundenen Halbleiterschalters (114, 130) ein Leitendsteuern einer Mehrzahl von mit der einen Gleichstrom-Zuleitung (122) verbundenen Halbleiterschaltern (132, 136) steuerbar ist, um über letztere Halbleiterschalter einen Wicklungsstrang (102) des Motors (100) im wesentlichen im Kurzschluss zu betreiben. 13th Motor according to claim 12, in which, in addition to non-conducting control of a semiconductor switch (114, 130) connected to the other DC supply line (116), upon the occurrence of the interrupt, conduction control of a plurality of semiconductor switches connected to the one DC supply line (122) ( 132, 136) is controllable to operate via the latter semiconductor switch, a winding strand (102) of the motor (100) substantially in the short circuit.
- 14Motor nach Anspruch 13, bei welchem eine Zeitsteuerung (Fig. 17:S510) vorgesehen ist, um das Leitendsteuern dieser Halbleiterschalter (132, 136) nach Ablauf einer vorgegebenen Zeit wieder aufzuheben. 14th A motor according to claim 13, wherein a timer (Fig. 17: S510) is provided for canceling the conduction control of said semiconductor switches (132, 136) after a predetermined time has elapsed.
- 15Motor nach einem der Ansprüche 4 bis 14, welcher dazu ausgebildet ist, bei einem Ansprechen der Anordnung, welche dazu ausgebildet ist, bei Überschreiten eines vorgegebenen Stromes anzusprechen, den Effektivwert dieses Stromes zu reduzieren. 15th Motor according to one of claims 4 to 14, which is adapted to respond in a response of the arrangement which is adapted to respond when exceeding a predetermined current, to reduce the RMS value of this current.
- 16Motor nach einem der Ansprüche 12 bis 15, bei welchem beim Auftreten des Interrupts (Fig. 17:Imax-Interrupt) das Tastverhältnis (pwm) eines PWM-Signals (PWM) reduziert wird (Fig. 17: S508), welches den Effektivwert des Stroms in der Statorwicklungsanordnung (102) des Motors beeinflusst. 16th Motor according to one of Claims 12 to 15, in which, when the interrupt occurs (Figure 17: Imax interrupt), the duty cycle (pwm) of a PWM signal (PWM) is reduced (Figure 17: S508), which is the effective value of the Current in the stator winding assembly (102) of the engine influenced.
- 17Motor nach Anspruch 16, bei welchem das Tastverhältnis bei wiederholtem Auftreten eines durch einen zu hohen Strom verursachten Interrupts so weit abgesenkt wird, dass zumindest während zwei Rotorumdrehungen kein solcher Interrupt auftritt. 17th A motor as claimed in claim 16, wherein the duty cycle is lowered to the extent that an interrupt caused by too high a current occurs repeatedly, such that at least during two rotor revolutions no such interrupt occurs.
- 18Motor nach Anspruch 16 oder 17, mit einem Regler zum Regeln einer vorgegebenen Größe, insbesondere der Drehzahl des Motors, auf einen vorgegebenen Wert, welcher die zu regelnde Größe zumindest überwiegend in der Weise einstellt, dass er die Zeitdauer (BW) beeinflusst, während welcher ein Stromfluss zur Statorwicklungsanordnung (102) in einer vorgegebenen Richtung eingeschaltet wird. 18th Motor according to claim 16 or 17, with a regulator for regulating a predetermined size, in particular the rotational speed of the motor, to a predetermined value, which sets the variable to be controlled at least predominantly in such a way that it influences the time duration (BW), during which a current flow to the stator winding assembly (102) is turned on in a predetermined direction.
Independent claims18
427 paragraphs in 2 sections, as filed
Translation of description of equivalent WO 02054567 A2
Electronically commutated motor
The invention relates to an electronically commutated motor.
In such motors, a deterioration of the efficiency results from the fact that, during operation within the motor, electrical energy oscillates between a storage capacitor and the inductance of the stator winding arrangement. This can also be referred to as reactive power, and this forces, inter alia, to provide a relatively large storage capacitor in such an ECM, which can supply or receive this reactive power.
It is therefore an object of the invention to provide a new electronically commutated motor.
According to the invention, this object is achieved by the subject matter of claim 1. By opening and closing the specified transistors is achieved that electrical energy stored in the inductance of the stator winding, in the course of the shutdown procedure of a stator winding to a large extent in mechanical Drive energy for the rotor is implemented. The arrangement for monitoring the current direction enables a surprisingly simple way of estimating the energy inductively stored in a stator winding, because it has been found that when the current direction changes, the stored inductive energy is in the range of its minimum. This makes it possible to deenergize a stator winding to be disconnected at a time when the energy stored in it is very low.
Another solution of the problem is the subject of claim 3. It avoids overloading of the motor due to excessive currents.
Further details and advantageous developments of the invention will become apparent from the following described and illustrated in the drawings, in no way as a limitation of the invention to be understood embodiments, and from the dependent claims. 1 shows an overview circuit diagram of a preferred embodiment of a DC motor according to the invention,
FIG. 2 is a schematic diagram for explaining the operation of commutation in a motor of the prior art. FIG.
3 shows a schematic diagram analogous to FIG. 2 for explaining the sequence of the commutation procedure in a motor according to the invention, FIG.
4 is a graph of the current waveform as measured during a commutation procedure.
5 is a graph of a current waveform as measured at the onset of a maximum current limit.
6 is a state diagram for explaining the invention,
7 is an illustration of the course of the magnetic flux density in the rotor over a circumference of 360 ° el., And a motor current profile, in which the current limit begins,
8 shows a representation analogous to FIG. 7, which shows in a highly schematized manner the consequences of the onset of the current limitation, because an adaptive regulator assigned to the motor becomes effective, which correspondingly increases the length BW of the current blocks,
9 shows a specific exemplary embodiment with a microcontroller from Arizona Microchip; this figure shows part of the circuitry of the microcontroller, and this part is not repeated in the following FIG. 10,
10 is a detailed circuit diagram of the hardware for generating the signals Imin and Imax,
11 shows a detailed circuit diagram of the hardware for controlling the H-bridge 137, FIG. 12 shows an overview image for explaining the basic structure of the software used,
13 is a flowchart showing the basic flow of the program in the engine 100,
14 is a flowchart of the interrupt handler for detecting and operating the various interrupts;
15 is a diagram for explaining the following figures,
16 is a flowchart of the Hall interrupt routine that is executed when an edge of the signal HALL occurs.
17 is a flowchart of the Imax interrupt routine executed on an edge of the signal Imax.
FIG. 18 is a graph for explaining the maximum current limit response in a high-speed engine; FIG.
FIG. 19 is a flow chart of the Imin interrupt routine executed when the signal Imin occurs; FIG.
FIG. 20 is a flowchart of the TIMEOUT interrupt routine; FIG.
21 is a flowchart for incrementing the duty ratio pwm,
22 is a flowchart for decrementing the duty ratio pwm.
FIG. 23 is a flowchart for explaining the processes occurring during commutation. FIG.
FIG. 24 is a flowchart for explaining the commutation at a normal rotational speed of the engine 100; FIG. 25 is a flowchart for explaining details of the FIG
Commutation procedure when turning off a current in the winding 102,
FIG. 26 is a diagram for explaining processes of commutation; FIG.
27 is a flowchart for explaining the calculation of a time tJHALL at low and high speeds,
28 is a diagram for explaining the calculation of the time tJHALL at low and high speeds,
29 shows a routine CALC_ACCEL for taking into account the acceleration,
30 is a routine RGL for the speed control,
FIG. 31 is a routine for adaptively modifying the duty ratio pwm depending on operating conditions of the engine; FIG.
Fig. 32 is a diagram for explaining the operation of Fig. 31, and
FIG. 33 is a graph showing numerical values for a detailed explanation of FIG. 26. FIG.
In the following description, the same reference numerals are used for the same or the same parts, and these are usually described only once. Since the matter is difficult, concrete numerical values are often given, eg 3 A, 1, 6 A, 200 μs, 1000 rpm, etc. in order to make the text more readable. It goes without saying, however, that these concrete values are only preferred examples which in no way limit the invention.
Fig. 1 shows an overview of a preferred embodiment of an engine according to the invention.
The actual motor 100 in this embodiment has a winding strand 102 with two terminals 104, 106, and a permanent magnet rotor 108. The following embodiment relates to a motor 100 with four-pole rotor 108, but of course any number of poles and other numbers of winding strands are possible , The example of the motor 100 was chosen for its simplicity to facilitate understanding of the - very complex - invention.
The exemplary embodiment shows a motor 100, in which a current ii flows in the direction of the connection 104 to the connection 106 in the region of a rotor rotation of 180 ° el., And a current .2 from 106 to 104 in the region of the subsequent rotor rotation of 180 ° el The duration (beginning and end) and amplitude of the currents ii and .2 are varied according to the requirements of the motor, which is usually referred to as so-called block control, ie the current ii can have, for example, a length between 0 ° and 180 ° el the stream .2. Furthermore, so-called pre-ignition is possible without any additional effort, as indicated in FIG. 15 at VZ and explained in the following equations (3a) and (4a).
Since such a motor requires only a single winding 102, it is very simple. It is preferably used to drive fans. DE 2 346 380 shows an example of the structure of such a motor, as it is produced in many variants.
The motor 100 preferably has a galvanomagnetic rotor position sensor 110 controlled by the rotor 108, for example a Hall generator, and this is shown again on the left in FIG. 1. Its output signals are amplified by an amplifier 112, converted into rectangular pulses HALL, and then supplied to a microcontroller μC 40, where each edge of these pulses HALL triggers an interrupt (hereinafter referred to as HALL interrupt), cf. Due to the magnetization of the rotor 108, such a HALL interrupt is triggered in each case after a rotation of the rotor 108 of 180 ° el. The distance tJHALL between two HALL interrupts is high at low speeds and low at high speeds, and therefore is a measure of the speed of the rotor 108 used for speed control (FIG. 30). The time span tJHALL corresponds to the time that the rotor 108 requires for a rotation of 180 ° el., Cf. following equations (6) and (7).
The terminal 104 of the winding 102 is connected to the drain D of a P-channel MOSFET 114 whose source S is connected to a positive line 116, which is connected via a protective diode 118 to a positive terminal 120, usually to a schematically indicated power supply 121 connected, which supplies a DC voltage of eg 12, 24, 48 or 60 V, depending on the type of motor 100. The negative line (GND) of the motor 100 is denoted by 122, its terminal 124. Between the positive line 116 and the negative line 122 is a capacitor 126th
In its operation, the motor "breathes" 100, that is, it alternately receives energy from the power supply 121 and the capacitor 126 and in between - during the Kommutierungsprozeduren - energy from which must be cached by the capacitor 126, so that the voltage between the lines 116 and 122 does not get too high. Therefore, the capacitor 126 has a size that is about 500 μF in conventional motors with comparable performance and that can be significantly reduced in the invention. In small engines, it is not easy to accommodate larger capacitors 126. The high temperature in a motor, the life of such a capacitor is limited. One of the objects of the invention, therefore, is to keep the capacitor 126 small and electrically low in stress.
The terminal 106 of the winding 102 is connected to the drain D of a P-channel MOSFET 130 whose source S is connected to the line 116.
The terminal 104 is also connected to the drain D of an N-channel MOSFET 132 whose source S is connected to the negative lead 122 via a sense resistor 134.
Similarly, the terminal 106 is connected to the drain D of an N-channel MOSFET 136 whose source S is connected via a measuring resistor 138 to the negative lead 122.
Antiparallel to the MOSFETs 114, 130, 132, 136 are in the usual way freewheeling diodes 114 ', 130', 132 ', 136'.
The gate G of the MOSFET 132 is connected to the output of an amplifier 140, whose input 142 from the μC 40 is a signal LSL is supplied when the MOSFET 132 is to be turned on. (LSL is also referred to below as LSL_OUT, analogously the signals LSR, HSL and HSR).
The gate G of the MOSFET 136 is connected to the output of an amplifier 144, whose input 146 from the μC 40 is a signal LSR is supplied when the transistor 136 is to be turned on.
The gate G of the MOSFET 114 is connected to the output of an amplifier 148 whose input 150 is controlled by the output signal of a gate 152. Together with the amplifier 148 it forms a NAND gate, ie when one of the input signals of the gate 152 is low, the MOSFET 114 is turned off. In this case, the gate 152 has a low output signal. By doing so, the drive amplifier 148 becomes high-impedance and pulls up the potential at the gate G of the FET 114, so that it becomes nonconductive.
The gate G of the MOSFET 130 is connected to the output of an amplifier 154 whose input 156 is controlled by the output signal of a gate 160. Together with the amplifier 154, it forms a NAND gate, ie, when one of the input signals of the gate 160 is low, the MOSFET 130 is turned off. The operation is the same as the FET 114 because of the symmetry of the circuit.
Both logic elements 152 and 160 are supplied by the μC 40, a PWM signal PWM, for example, has a frequency of 20 kHz and its duty cycle pwm can be set by the μC 40 between 0 and 100%. This signal PWM is continuously generated by the μC 40 in operation and determines how high the current supplied to the motor 100 is.
Similarly, both gates 152 and 160, as well as the μC 40, are supplied with a (low) signal Imax when the current in MOSFET 132 or MOSFET 136 exceeds a predetermined threshold. This signal Imax causes the immediate shutdown of both MOSFETs 114 and 130 via the hardware of the motor. (At any given time, only one of these two MOSFETs 114, 130 can be conducting.) The signal Imax is thus "low-active", ie it switches off the current when it is low.
Furthermore, a commutation signal HSL is supplied to the gate 152 from the μC 40 to control the transistor 114. Likewise, a commutation signal HSR is supplied to the gate 160 from the μC 40 to control the transistor 130.
The terms HSL etc. are mnemotechnical and mean
HSL High Side Left Transistor 1 14
HSR High Side Right Transistor 130
LSL Low Side Left Transistor 134
LSR Low Side Right Transistor 136
The four transistors 114, 130, 132, 136 together with the winding 102 form a so-called H-bridge (or full bridge) 137 with the upper (high side or HS) transistors 114, 130 and the lower (low side or LS) transistors 132 , 136. When the transistors 114 and 136 are turned on, a current ii flows in the winding 102 from left to right. When the transistors 130 and 132 are turned on, a current -2 in the winding 102 flows from right to left.
Between the inputs 142 and 150 is provided a latch 166 which prevents the transistors 114 and 132 from being conductive simultaneously. Similarly, a latch 168 is provided between the inputs 146 and 156 which prevents both transistors 130 and 136 from being conductive simultaneously. These latches serve to protect the H-bridge 137.
The voltage across the resistor 134 is fed via a signal filter 170 (for filtering glitches) to the plus input of a comparator 172, whose negative input is connected to a node 174, via a resistor 176 to the negative line 122 and through a resistor 178 to a node 180 which is connected via a resistor 182 to a line 184, which is at a regulated voltage of + 5V. The voltage across the resistor 176 thus represents a reference voltage Uref, which determines at which current the maximum current detection responds.
The node 180 is connected via a resistor 186 to the collector of an npn transistor 188, at which a (low) signal Imax is generated in the event of overcurrent and which is therefore directly connected to the gates 152 and 160 and the μC 40, also via a Resistor 190 with line 184. The emitter of transistor 188 is connected to negative line 122. Its base is connected via a resistor 191 to the cathodes of two diodes 192, 194, which are connected via a resistor 193 to the negative line 122 (GND). The anode of the diode 192 is connected to the output of the comparator 172.
The voltage across the measuring resistor 138 is fed via a signal filter 196 to the positive input of a comparator 198 whose negative input is connected to the node 174. The output of the comparator 198 is connected to the anode of the diode 194.
When the current through the sense resistor 134 becomes too high, the plus input of the comparator 172 becomes more positive than the minus input, so that the transistor 188 receives a base current through the diode 192 and is turned on. When the current through resistor 138 becomes too high, the positive input of comparator 198 becomes more positive than its negative input, so that transistor 188 receives a base current through diode 194 and becomes conductive.
In both cases, the resistor 186 is thereby connected in parallel with the resistors 176, 178, thereby increasing the current through the resistor 182 and thereby the voltage drop across this resistor. As a result, the reference voltage Uref automatically decreases as soon as the transistor 188 turns on, and this causes a switching hysteresis, ie the comparator 172 switches on, for example, at an overcurrent of 3 A and switches off again at about 1.6 A, as does the comparator 198 means that the upper transistors 114, 130 are forcibly switched off, for example, at 3 A and can not be switched on again until (not necessary!), when the current in the resistor 134 or 138 has fallen to 1, 6 A. This prevents overloading of the upper transistors 1 14, 130, ie
In order to detect the zero crossing in the event that both upper transistors 114, 130 are turned off and both lower transistors 132, 136 are conductive, a comparator 202 is used whose negative input is connected to the positive input of the comparator 172 and whose positive input is connected to the positive input of the comparator 198 ,
If, after switching off a previously conductive upper transistor 114 or 130, the two lower transistors 132, 136 are turned on, the current generated by the electrical energy stored in the winding 102 produces a voltage drop across both resistors 134, 138; and when the current through winding 102 transitions from motor to generator operation, as in FIG. 3 at location 222, that current changes direction, going through zero.
If, for example, the current in the motor operation flows from the terminal 106 via the resistors 138, 134 to the terminal 104, the positive input of the comparator 202 is more positive than its negative input. After the zero crossing, the current flows from terminal 104 via resistors 134, 138 to terminal 106, and now the negative input of comparator 202 becomes more positive than the positive input, so that at the zero crossing of the current, the signal Imin at the output of comparator 202 changes abruptly. So either from low to high, or from high to low. Therefore, an abrupt signal change (switching edge) occurs at the zero crossing at the output of the comparator 202, and this causes in μC 40 an interrupt, by which all four transistors 1 14, 130, 132, 136 are disabled. This interrupt is referred to as an in-interrupt and will be described below in FIG.
To explain the basic mode of operation of FIG. 1, reference is made to FIGS. 2 and 3, which explain the method of operation in a highly schematic manner. Fig. 2 shows the course of the current in the stator in a motor according to the prior art, and Fig. 3 shows the analog course in an engine according to the invention. FIGS. 2 and 3 show the following values over a rotation angle of 360 ° el.
a) The magnetic flux density ("induction") B on the rotor 108.
The magnetic flux density is measured in Tesla (T). Its course is approximately trapezoidal in this example. One then speaks of a "trapezoidal magnetization". This is within the scope of the present invention a preferred, but not the only conceivable course of B. The changes in the magnetic flux density B induce a voltage in the stator winding 102 when the rotor 108 rotates. The shape of this tension corresponds to the shape of B, so here is also trapezoidal. The amplitude of this voltage increases with increasing speed. This voltage is called "induced voltage" or "back EMF" (counter EMF).
b) Fig. 2 shows the current waveform of the stator in a conventional motor.
The current ii through the winding 102 usually begins in time to 0 ° el. And increases
- due to the low value of B, ie the low back EMF in this area, start at 210 at the beginning. This increase causes some of the energy supplied by the current h to be transformed - with a time delay - into kinetic energy of the rotor 108. The current ii then drops at 211 because of the higher counter. EMK down to a minimum 212 again. From 212 rises in Fig. 2, ie in a conventional engine, the current ii up to a maximum 216, where the current ii is turned off and then decreases along a curve 218 to zero. The zero crossing 217 is achieved somewhat before 180 ° el in this example (FIG. 2), but may also lie after 180 ° el., Depending on the angular position of the Hall generator 110.
For the stream .2 flowing from port 106 to port 104 are the operations
- Because of the symmetry of the arrangement - analog and are therefore not described again. The current -2 begins in Fig. 2 at 180 ° el.
The period of time P between the point 217 and the beginning of the current -2 is referred to as a switching pause or switching gap P. This is necessary, inter alia, to prevent a short circuit in the H-bridge 137. (For example, in FIG. 1, if transistors 114 and 132 were conducting simultaneously, they would create a short circuit current from positive line 16 to negative line 122).
In the angular range from about 0 ° el. To the maximum 216, the winding current i 1 is converted into kinetic energy of the rotor 108 with a time delay in an ECM with conventional commutation.
If the current ii abruptly switched off at the point 216, a high induced voltage arises at the winding 102, which tends to continue to flow this current ii, so that the current ii between the points 216 and 217 via the freewheeling diodes 132 '. and 130 'flows to and charges the capacitor 126. At this time, the energy E stored in the winding 102 is almost completely absorbed
Condenser 126 reloaded, so this must be very large, so not the
Voltage between lines 116 and 122 increases too much. The energy E depends on the square of the current I at time 216, and on the inductance L of the
Winding 102. It applies
E = <sup>|</sup>2 <sup>*</sup> L / 2 ... (1) where
E = stored magnetic energy in the winding 102
I = instantaneous current in the winding 102
L = inductance of the winding 102.
Since I is very high when switching off, the energy E inductively stored in the winding 102 is also very high.
This energy is transferred to the capacitor 126 after the turn-off of the coil 102. Thus, it is a reactive power that reciprocates between the capacitor 126 and the winding 102, and since this reactive power is large, the capacitor 126 must also be large. The high currents that flow as a result of this reactive power also create unnecessary losses that reduce the efficiency of the motor.
In the invention, this reactive power should be reduced, ie as little as possible of the energy from the winding 102 to flow back when switching off in the capacitor 126, but with this energy, the rotor 108 is to be driven.
The commutation procedure according to the invention (FIG. 3)
For this reason, a commutation procedure is used as shown in FIG. 3, which deviates greatly from the conventional. In FIG. 3 too, the current ii increases sharply after switching on at 210 and decreases at 211. In this respect, the course is similar to Fig. 2. But the following is different:
a) The power supply from leads 116, 122 to winding 102 is turned off at a location 214 calculated by μC 40, usually where the motor current has not yet reached its maximum 216 (Figure 2). The calculation of the turn-off timing 214 is described in FIG. Turning off is accomplished by turning off the currently conductive top transistor (either 114 or 130) at location 214. Below is described by way of example in Fig. 25, how this can be done.
b) Subsequent to time 214, usually after a short break, both lower transistors 132 and 136 are turned on, cf. Fig. 25, S840, so that the current ii can continue to flow through these two transistors, flowing in the FET 136 from the drain D to the source S, which is possible with a FET. This causes a low-resistance connection between the terminals 104 and 106 of the winding 102, and in this connection, the current ii sounds along a curve 220, wherein it continues to drive the rotor 108, that generates motor energy.
c) At a point 222, the current ii goes through zero and would then continue to flow as regenerative current 224 if the transistors 132 and 136 were still conductive. This stream 224 is indicated by dots. Since it would have a braking effect, it is undesirable.
To prevent this, the signal Imin is generated by the OP amplifier 202 (FIG. 1) in the region 222. This generates an Imin interrupt in μC 40, so that the latter immediately non-conducting controls all four transistors 114, 130, 132, 136 of the H-bridge 137. This is done in the example of FIG. 3 shortly after the point 222.
Since at time 222, the current ii = 0, no energy is stored in the shutdown of all MOSFETs in the winding 102. Consequently, after turning off the winding 102, no energy can be fed back from this into the capacitor 126.
On the winding 102 is at this time only the induced voltage by the rotor magnet 108, but at the time 222 is low, usually only a few volts, and therefore does not bother.
After a short switching pause P1, the current i2 is then turned on. The time for switching on is calculated by the μC 40, cf. Fig. 30.
At the start of the motor, it would take too long for ii to reach zero in section 220, and therefore the current is turned off by a special function, called the TIMEOUT function, after a predetermined time, eg after 500 to 800 μs, even if ii (or i2) has not reached zero yet. In this case, it is possible to monitor the time T3 from reaching the point 214, at which the upper transistors 114, 130 are switched off, as well as the current Imin. At the latest after expiration of T3, all of the transistors of the H-bridge 137 are turned off, alternatively when the Imin interrupt is generated, if it occurs earlier than the end of T3. T3 is typically in the range of 500 to 800 μs.
FIG. 4 shows the current through the winding 102 as actually measured during operation and for comparison the current I in the supply line 116 (FIG. 1). The current through the winding 102 changes its direction during the rotation of the rotor 108, while the current I flows only in one direction. The current I is plotted down for better comparability, based on a zero line 98.
At a time t10, the current i2 here receives its switch-off command, so that the upper transistor 130 is turned off and after a short delay both lower transistors 132, 136 are turned on, whereby the current i2 decays along a curve 220A.
At a time t11, the current .2 goes through zero, and at a time t12, the already described Imin interrupt takes effect, by which all four transistors 114, 130, 134, 138 are disabled, so that in the winding 102 from a time shortly after t12 until a time t13 no current flows.
At time t13, which is calculated in μC 40, cf. 30, the current ii is turned on by conducting the transistors 114 and 138 so that the current ii increases as shown. At a time t14 calculated in the μC 40, ii is turned off by turning off the upper transistor 114, and the lower transistors 132, 136 are both turned on so that the current ii decreases along a curve 220B and at time t15 reaches the value zero. Shortly thereafter, the Imin interrupt becomes active and disables all four transistors 114, 130, 132, 136 until a time t16 at which transistors 130 and 132 are turned on to allow current i2 to flow.
As shown in FIG. 4, to the left of t10, current I in lead 116 is identical to current i2 in winding 102. At time t10, current I can no longer flow out of positive lead 116, since top transistor 130 is open and two lower transistors 132, 136 conduct, so that the current -2 continues to flow only through these two transistors. Therefore, the current I practically remains at the value zero from t10 to t13.
From t13 to t14, I is mirror-inverted to ii, ie both currents are equal in magnitude. From t14 to t16, I has the value zero, and from t16, I again has practically the same value as i2, possibly adding some energy from capacitor 126 shortly after t16.
The invention thus largely avoids that energy between the winding 102 and the capacitor 126 oscillates back and forth, so that the capacitor 126 can be dimensioned correspondingly smaller.
Fig. 5 shows an oscillogram a typical course of the currents at the onset of current limiting. This limits the currents i 1 and -2 in this embodiment to a value Imax of FIG. 3A.
At -20, the current begins ii. By the Kommutierungssteuerung in μC 40, the current ii is interrupted by opening the transistor 114 at a time -21, and by closing the two transistors 132, 136, the winding 102 from -21 is short-circuited until a time -22.
From -23, the transistors 130, 132 are turned on for a current i2 to flow. This rapidly increases to the negative current limit -Imax. There, at time t24, the upper transistor 130 is turned off by the signal Imax, so that the current i2 falls until a time t25, with both transistors 132, 136 being turned on. At t25, transistor 188 turns off signal Imax again since -2 has fallen to 1.6A so that i2 rises again as transistor 130 becomes conductive again.
At a time t26, the transistor 130 is opened by the commutation control, and both lower transistors 132, 136 are turned on, so that i2 reaches zero at -27. At -28, ii is again turned on by conducting transistors 114 and 136. Each time the signal Imax goes low, the duty cycle pwm of the signal PWM is slightly reduced. S508 in FIG. 17, so that after a few revolutions the values + lmax and -Imax are no longer reached and the "smooth" current waveform according to FIG. 3 is again obtained. While the maximum current is again reduced below Imax (3 A), the value BW is increased by the controller (FIG. 30), if that is possible, and also the duty cycle pwm is possibly increased slowly until the engine returns to normal, So with the desired speed, running. Possibly.
In Fig. 5, the positions at which the commutation control interrupts the relevant current are designated by t29 to t37. The values at which the current limit starts are denoted by + lmax and -imax, and the current values due to the switching hysteresis are indicated by + lmaxHY and -ImaxHY. In the embodiment, Imax = 3 A, and ImaxHY = 1, 6 A.
FIG. 6 again shows the described processes clearly on the basis of a state diagram. At 230, the engine 100 is in the area 210, 211 of FIG. 3, and it is monitored whether the point 214 is reached at which the power supply from the lines 116, 122 to the motor 100 is to be terminated.
If it is determined at 230 that the end of the current supply has not yet been reached, the current is continued in state 234, and then it is again monitored at 230 whether the point in time 214 has been reached. If so, the motor 100 goes to state 236 HS OFF, where both upper transistors 114, 130 are turned off, interrupting power to motor 100.
Thereafter, the program enters a short delay DELAY 238 and then turns on both lower transistors 132, 136 in the LS ON 240 state so that the winding 102 is substantially short-circuited and the current decays along the curve 220 (FIGURE 3) , This is monitored in subsequent state 242 ("Wait until power has dropped to zero"). In this case, the current in the winding 102 continues to drive the rotor 108.
When the current reaches the value zero, the comparator 202 generates a signal Imin and effects an Imin interrupt 244.
At the same time, at 246 in the TIMEOUT function, it is monitored whether the predetermined time T3 (FIG. 3) has elapsed.
The earlier of both events (TIMEOUT 246 or Imin interrupt 244) causes the transition to state 248, ie the complete shutdown of all four transistors of the H-bridge 137 (LS OFF & HS OFF). In this state, the kinetic energy of the rotor 108 can not be regeneratively transported into the capacitor 126 because the instantaneous value of the voltage generated by the rotor 108 is lower than the voltage between the lines 116 and 122.
By a clever energy management so here the initially described "breathing" of the motor 100 is largely suppressed, ie in the normal running of the motor 100, only little reactive power between the winding 102 and the capacitor 126 flows back and forth. However, because the generation of the imine interrupt 244 can not occur exactly at time 222 (FIG. 3) of the zero crossing because of the time required for the computation steps required, but somewhat later, a capacitor 126 is still required to buffer energy from the motor. but he can be smaller than before. This capacitor is also required to absorb energy when switching off the motor and to avoid too high a rise in the voltage between the lines 116 and 122.
The function of maximum current detection
The maximum current detection by means of the comparators 172 and 198 has already been described in FIGS. 1, 3, 4 and 5. It generates the signal Imax, which acts via the gates 152, 160 (FIG. 1) directly on the upper transistors 114, 130 and immediately switches off the currently conducting transistor 114 or 130 in the event of overcurrent. In addition, the signal Imax is also supplied to the μC 40, where it generates an Imax interrupt. Among other things, this program steps are initiated, which lower the current through the winding 102 in subsequent current pulses so that no more overcurrent arises.
Namely, the current through the measuring resistors 134, 138, a value set at the resistor 176 (referred to as Uref in Fig. 1), an Imax interrupt is generated in the μC 40, and the upper transistors 114, 130 are switched off directly by hardware. After a short delay, both lower transistors 132, 136 are turned on, so that the terminals 104, 106 of the winding 102 are short-circuited by the two FETs 132, 136. The subsequent program steps depend essentially on the type and speed of the motor, ie different variants are possible.
In one variant, when the current in the winding 102 reaches zero, the imine interrupt 244 is generated in the manner already described. As security, the time from LS ON 240 (FIG. 6) is additionally measured by the function TIMEOUT 246 already described.
If the time TIMEOUT has expired before the Imin interrupt 244 is generated, this will cause the command OFF for the two lower transistors 132, 136. If the Imin interrupt comes earlier, it will cause the signal LS OFF (OFF = OFF). After a delay, then the energization of the winding 102 is continued, that is, when in the current rotational position of the rotor 108, the current in the winding 202 of 104 to 106 to flow, the transistors 114, 136 are turned on again and the transistors 130, 132 remain off , For a current in the reverse direction (from 106 to 104), the reverse applies analogously.
FIG. 7 schematically shows current pulses i1, i2, the amplitude A1 of which reaches the current Imax (3A) at the points 250, 251, so that the current limitation begins at these points and the current falls to a position 252 or 253. There, the power is turned on again because the (low-active) signal Imax is no longer generated, and rises again to points 255 and 257, where the switch-off command from μC 40 is issued. At both locations 250 and 251, the duty cycle pwm is reduced by the program step S508 of Fig. 17 to reduce the amplitude A1.
According to FIG. 8, this reduction in the duty cycle pwm results in the amplitude A2 of the current in motor 100 being reduced to a value below 3 A after a time delay, as indicated by bright arrows 254, 256 of FIG Fig. 8 is symbolized. In Fig. 7, the block length of a pulse has the value BW1, namely, the time from the turn-on command to the turn-off command for that pulse.
As compensation for the reduction of the amplitude from A1 to A2, in FIG. 8 the block length BW for the control of the pulses i1, i2 is extended to a value BW2, as indicated symbolically by the dark arrows 258, so that at the Motor 100 energy supplied changes nothing, ie, the area F1 under the curve i 1 of Fig. 7 corresponds substantially to the area F2 under the curve ii of Fig. 8. Didactically, one can imagine that by a force 254, 256 8, the pulses h, -2 are pressed somewhat in the width, so that the amplitude A1 is no longer reached, wherein the lower amplitude A2 of the currents h, .2 in FIG. 8 is compensated by their block length BW2 increases.
This is important because if the maximum current is exceeded, the losses - due to the processes described in FIG. 5 - increase and there is a risk that the MOSFETs will be overloaded. Also, the engine 100 quiets when operated at a current below its set maximum current. Naturally, the pulses i1 and i2 may only reach a block length BW of somewhat less than 180 ° el., Otherwise a bridge short circuit could occur.
If the block length BW of the pulses i1, i2 becomes too large, it is shortened by the software of the motor, and for compensation in this case the amplitude is increased, ie the motor then tends to go from the state according to FIG. 8 to the state according to FIG. 7. In this case, the direction of the arrows 254, 256, 258 reverses.
During startup, if necessary, the starting current can be limited by the current limitation, but a start without overcurrent is also possible in such a way that the duty cycle pwm of the signal PWM (FIG. 1) is slowly increased in the manner of a ramp.
For the realization of the invention is calculated by the software of the engine a) which duty cycle pwm the signal PWM should have at the moment, b) at which time a current pulse must be turned on, and c) at which time a current pulse must be turned off. This will be explained in more detail below.
The block length BW is calculated in the embodiment of a speed controller, which will be described below in Fig. 30. BW is thus specified for the calculation and is independent of the duty cycle pwm of the signal PWM. (Naturally, when calculating BW, the duty cycle may be fully or partially taken into account, but without such consideration, a shorter program results, which is important in an engine.)
FIG. 9 shows part of the shading of the microcontroller (μC) 40 used in the exemplary embodiment, here of the type PIC16C72A from Arizona Microchip. This works here with a clock frequency of 4 MHz. It has 28 inputs 1 to 28, which are labeled as follows: 1 MCLR / (reset input)
2 to 7 RA0 ... RA5
8 VSS (ground connection)
9 CLKIN
10 CLKOUT
11 to 18 RC0 ... RC7
19 VSS1 (ground connection)
20 VDD (+ 5V)
21 to 28 RB0 ... RB7
Terminals RA1 to RA5, RC3, RC4 and RB1 to RB5 are each connected to ground GND through a resistor R (10kΩ) because these terminals are not used. These resistors are not shown in Fig. 10, so that there the presentation is clear.
The terminals CLKIN and CLKOUT are connected to a quartz crystal 42. The connections VSS and VSS1 are connected to ground, the connection VDD to a plus line with + 5 V (regulated). Between the terminals VDD and VSS is a filter capacitor 44 (eg 100 nF).
The reset input MCLR / is connected via a resistor 46 to a node 48, which is connected via a resistor 50 to +5 V and via a capacitor 52 to GND. The capacitor 52 is discharged at power up, so that the input MCLR / then has the potential 0 V, which triggers a reset operation at power up. Thereafter, the capacitor 52 charges through the resistor 50 to 5V.
RA0 is the input of a processor-internal A / D converter in μC 40. This input can be supplied with a voltage between 0 and 4.5 V (Vcc), and this is converted into a digital signal. The signal at RA0 corresponds to the desired speed. The latter is supplied to an input 261 as a PWM signal 262 whose duty cycle pwm contains the speed information.
A comparator 264 serves to process and standardize the PWM signal 262 to a controlled amplitude a. Its + input is connected to a node 266, which is connected via a resistor 268 to a regulated voltage of + 5 V, with which the μC 40 is also supplied, and via a resistor 270 to GND. The resistors 268, 270 are selected so that at node 266 there is a potential of +2.3 volts.
The negative input of the amplifier 264 is connected to a node 272, which is connected via a resistor 274 to the input 261 and via a resistor 276 to GND. The resistors 274, 276 can be the same size.
The output 278 of the amplifier 264 is connected to +5 V via a pullup resistor 280 and RA0 through a resistor 282. Between RA0 and GND is a capacitor 284. The components 282 and 284 together form a low-pass filter.
The signal 262 is inverted by the amplifier 264, cf. the signal 286 at the output 278, which has a constant amplitude a, and this signal 286 is smoothed by the low pass 282, 284 to a DC voltage, which is fed to the input RA0 and converted there into a digital value at each interrogation. Since the signal 286, unlike the signal 262, has a defined amplitude a, its duty cycle is converted into a defined DC voltage and into a defined digital value.
Alternatively, the signal can be generated at the input RA0 in any other way, for example by means of a potentiometer. For this processor, the maximum amplitude at RA0 is 5V. This corresponds to the internal A / D reference.
The μC 40 has a ring counter TIMER1 as well as a RAM and a ROM. In addition, an external RAM, EEPROM or the like. Be provided, as is natural for the expert.
10 and 11 show a detailed embodiment of the circuit of FIG. 1. FIG. 10 shows the hardware for the detection of Imax and Imin, as well as the Hall generator 110. FIG. 11 shows the μC 40 and the H- controlled by it. Bridge 137. Identical or equivalent parts as in the preceding figures are denoted by the same reference numerals as there and usually not described again.
The transitions of Fig. 10 to Fig. 11 are designated 290, 292 (for the H-bridge 137), 294 for the signal HALL, 296 for the signal Imin and 298 for the signal Imax. These are also shown in Fig. 1.
10 shows the Hall generator 110 whose output signal is amplified by means of a comparator 300 whose output 294 is connected via a pull-up resistor 302 to the plus line 43 (+ 5 V, regulated). The rectangular signals HALL are supplied to the input RB0 of the μC 40. Each edge of this signal causes a Hall interrupt there, cf. FIG. 16. The Hall generator 110 is supplied with power from the line 43 via a resistor 304.
The plus input of the comparator 172 is connected via a resistor 305 to its output 307, via a resistor 306 to the point 290, further to the negative input of the comparator 202, and via a capacitor 308 to GND. Resistor 306 and capacitor 308 together form the low pass 170 of FIG. 1. The output 307 is connected to positive line 43 via a resistor 309.
Likewise, the positive input of the comparator 198 is connected via a resistor 309 to its output 311, via a resistor 310 to the point 292, to the positive input of the comparator 202, and via a capacitor 312 to GND. Resistor 310 and capacitor 312 together form the low pass 196 of FIG. 1. The output 311 is connected to positive line 43 via a resistor 314.
The minus inputs of the comparators 172, 198 are connected to the node 174, at which the comparison potential Uref at the resistor 176 is located.
The positive input of the comparator 202 is connected via a resistor 316 to its output 318, which is connected via a resistor 320 to the positive line 43. The signal Imin is obtained at the output 318 of the comparator 202. It is fed via a resistor 297 to the port RB7 of the μC 40. The output 318 changes its potential at the zero crossing of the motor current, as already described, and the switching edge at the transition causes an Imin interrupt in the μC 40, cf. below Fig. 19.
If the voltage drop at the resistor 134 becomes greater than the voltage Uref at the resistor 176 due to a stator current of, for example, 3 A, the output of the comparator 172 becomes high-impedance and receives a high potential. As a result, base current flows through resistor 309 and diode 192 to transistor 188 and turns it on, causing signal Imax at point 298 to go low, thereby reducing the potential at nodes 180 and 174. This causes the already described switching hysteresis, ie the voltage Uref is correspondingly smaller, so that the signal Imax only becomes high again when the current in the resistor 134 has fallen, for example, to 1.6 A. The cathodes of the diodes 192, 194 are connected to GND via a common resistor 193.
Due to the symmetry of the arrangement, the same applies if the stator current through the resistor 138 exceeds the value 3 A. Also in this case, transistor 188 will conduct, causing the described switching hysteresis, and will generate a low signal Imax at terminal 298 which will not go high until this current has dropped, for example, to 1.6A.
The signal Imax is fed directly to the gates 152, 160 as shown in FIG. 11 and blocks the upper MOSFETs 114, 130 via them. In addition, the input RB6 of the μC 40 is fed via a resistor 324. As a result, both signals HSL and HSR are switched to low, so that one of the upper transistors 114, 130 can turn on again only when a) the signal Imax has become high again and b) the associated signal HSL or HSR has also become high again ,
In this way one achieves the following:
- When the signal Imax is generated, for example, at a current of 3 A, the upper ones
Transistors 114, 130 are disabled directly through the hardware, and shortly afterwards, in addition, by the μC 40. - After the end of the signal Imax, the μC 40 can maintain control over the upper transistors 114, 130 and, for example, continue to disable them, if the time BW (Figures 7 and 8) has expired.
Referring to Figure 11, gate 152 has a node 326 which is connected through a resistor 328 to port RCO of μC 40 and receives therefrom signal HSL for commutation. Further, with the node 326, the anodes of three diodes 330, 331, 332 are connected. The cathode of the diode 330 is connected to the port RC2, at which a PWM signal PWM (20 KHZ) is constantly generated, whose duty cycle pwm is variable by software commands. The cathode of diode 331 is connected to point 298 to which signal Imax is applied. The cathode of diode 332 is connected to the base of npn transistor 148 and via resistor 334 to GND. The emitter of the transistor 148 is connected to GND, its collector via a resistor 336 to the gate G of the MOSFET 114.
As long as the diodes 330, 331 are non-conductive and a high signal HSL is supplied from the port RCO, the node 326 has a high potential, and the diode 332 is conductive and supplies a base current to the transistor 148, so that it conducts and over the Resistors 338, 336, a current flows, so that at the gate G of the transistor 114, a signal is generated, which is negative by a few volts than the signal at its source S, so that the transistor 114 fully turns on. The capacitor 340 causes a small delay of the switching operations and prevents oscillations.
In this case, the cathode of the latching diode 166 also receives the potential GND, so that no positive potential can be supplied to the gate G of the MOSFET 132 in order to turn it on, ie the transistors 114, 132 are locked against each other.
When the potential of node 326 goes low, for example because one of diodes 330, 331 is turned on or low signal HSL is supplied from port RCO, diode 332 turns off, so that transistor 148 no longer receives and blocks base current. As a result, the gate G of the MOSFET 114 receives the potential of the positive line 116 via the resistor 338, so that the MOSFET 114 blocks. The cathode of the latching diode 166 is thereby given a high potential, so that now the lower MOSFET 132 can be switched on.
The signal LSL from the port RC6 is supplied through a resistor 342 to the base of the npn transistor 140. As long as this signal is high or the cathode of the latching diode 166 is at a low potential, there is a low potential at the collector of the transistor 140, which is supplied via a resistor 346 to the gate of the MOSFET 132 and blocks it. This gate is connected to GND via a capacitor 348 to slightly delay the switching operations.
When signal LSL at port RC6 is low, transistor 140 is turned off. If the potential at the cathode of the diode 166 is high, a high potential at the collector of the transistor 140 is now obtained via the resistor 344, and this makes the MOSFET 132 conductive via the resistor 346. Via a resistor 350 and a diode 352, the gate of the MOSFET 132 is connected to the anode of the diode 166, and when its cathode is at GND, a positive potential at the gate of the MOSFET 132 immediately via the resistor 350, the diode 352 and the Discharge diode 166 to GND, so that the MOSFET 132 blocks. Since the resistor 350 is preferably smaller than the resistor 346, the ratio of charging time constant to discharge time constant can be varied.
The right half of the circuit according to FIG. 11 is constructed completely symmetrical to the left half and is therefore not described separately, since the person skilled in the art understands from the detailed description of the left half immediately how the right half works. For example, the diode 352 on the left half corresponds to a diode 352 'on the right half. The right lock diode 168 has the same operation as the lock diode 166 on the left side and prevents the MOSFETs 130 and 136 from being conductive at the same time. The signal HSR is supplied from the port RC1 via a resistor 356 to a node 358 in the gate 160, and the signal LSR is supplied from the port RC7 via a resistor 360 to the base of the NPN transistor 144. A signal ALARM can be generated at port RC5 if motor 100 blocks,
The locking diodes 166, 168 cause above all a safeguard against uncontrollable switching states by current spikes due to EMC. The switching operations (switching on, switching off the MOSFETs) always take a certain amount of time, because the gate G of the respective transistor must be charged or discharged, so that perfect protection is not possible, but one achieves a strong relief of the transistors in this simple measure the H-bridge 137, if such spikes should occur.
Preferred values of the components in FIGS. 10 and 11
Quartz 42 4 MHz
Capacitor 44 100 nF
Resistance 46 100 Ω
Resistor 50, 176, 302, 306, 310, 314, 320 10 kΩ
Capacitor 52, 308, 312, 340 1 nF
Hall generator 110 HW101 G
Op amp 172, 198, 202, 300 LM2901 P
Resistors 134, 138 0.15 Ω
Resistor 178 75 kΩ Resistor 182 33 kΩ Resistor 186 15 kΩ Transistor 188 BC846B Resistor 190 22 kΩ Resistor 191 0.1 kΩ Resistor 193, 309, 316 1 MΩ Diodes 192, 194 BAV70 Resistor 280 3.3 kΩ Resistor 282 6.8 kΩ Capacitor 284 220 nF Resistor 297 2 kΩ Resistor 304 1, 2 kΩ MOSFETs 114, 130, 132, 136 IRF7379
(The IRF 7379 device contains a P-channel MOSFET and an N-channel MOSFET in the same package.)
Resistor 328, 338 2.2 kΩ
Diodes 330, 331, 332 BAW56S
Resistor 334, 334 ', 344 5.1 kΩ
Transistors 140, 144, 148, 154 BC847BS
Resistor 336 1, 1 kΩ diodes 166, 168, 352, 352 'BAS316
Diodes 114 ', 118, 130', 132 ', 136' SMS2100
Resistance 350 100 Ω
Resistor 346 330 Ω
Capacitor 348 4.7 nF
Resistors 342, 360 2,7 kΩ
Capacitor 126 100 μF, 35V
Capacitor 126A 100 nF
Resistor 356 0.8 Ω
Of course, these are only examples, which refer here to a motor 100, which is operated on a 12 V battery.
The software of the engine 100
Fig. 12 illustrates in an overview of the sequence of program steps in the motor 100 depending on the rotational position of the rotor 108. An electric motor, which is controlled by a μC 40, can have many additional functions, depending on its application, such as a speed control, a speed limit , a current limit, a constant current control, arrangements for outputting alarm signals, error handling routines, etc.
In the present embodiment, the speed of the motor is controlled to a desired value (eg 3000 U / min), which in turn may be dependent on the ambient temperature, for example. Therefore, this setpoint for the control program must be updated frequently and automatically.
Furthermore, for a speed control it is necessary to know what the speed of the motor is at the moment, eg 2990 rpm. Also, this actual value of the speed must be updated frequently and automatically.<sub>(</sub>
Furthermore, with such a motor, if necessary, the acceleration must be calculated, a PWM signal for the motor current must be output, the arithmetic operations of the speed control must be carried out repeatedly (repetitively) and, if necessary, certain parameters must be reinitialized from time to time to ensure a stable running of the engine.
Furthermore, the μC 40 must - according to the calculations of the speed controller - the power to the motor on and off and also, depending on the current rotational position, the direction of the motor current switch. All these processes are referred to as commutation in electrical engineering. This should be done with great precision, because a motor only runs smoothly when the commutation commands are executed very accurately. This means that the program must check very frequently whether a program command for the commutation exists and must be executed.
12, therefore, immediately after an edge 370, 372 of the signal HALL, a large arithmetic loop 374 or 376 has been executed in which, depending on the value of the counter HALL_CNT, longer arithmetic procedures are carried out, and subsequently many short arithmetic circuits 378, in which only the commutation is checked and possibly controlled. Since these short loops 378 follow each other closely, they result in a high resolution, ie, for example, it is checked every 60 to 100 μs whether something has to be changed at the commutation.
FIG. 12 shows that, for example, directly after an edge 370 of the signal HALL, a long loop 374 is executed in which, according to legend 380, the setpoint value for the regulation of the rotational speed is calculated and also the commutation is checked.
The large loop 374 is followed by many short loops 378 in which, according to legend 382, only the commutation is checked and possibly changed.
An edge 372 of the signal HALL is followed in this example by a long loop 376 in which, according to legend 384, the following computation steps are carried out:
• Actual value calculation
• Calculation of the acceleration
• Speed control
• Calculation of the duty cycle pwm of the signal PWM
• Reinitialization of certain registers
• commutation.
This long loop 376 is again followed by the short loops 378 for monitoring and controlling the commutation.
The next edge of the signal HALL is again followed by a long loop 374 of the type already described, ie in this embodiment the processes repeat themselves after 360 ° el.
13 shows the associated flow chart, which shows a rough overview of the basic sequence of the loops just described.
At the top of FIG. 13, the interrupts are shown at 390, which are described in more detail below in FIGS. 14 to 20 and which interrupt the normal program sequence when they occur, which is symbolized by the arrows 392.
When the motor 100 is switched on, an initialization of the μC 40 takes place in the usual manner in step S394. Here, in particular, a flag STARTUP is set to 1, which indicates that the program steps for starting the motor 100 must first be executed. These differ from the program steps that are performed in the range of the rated speed of the motor.
This is followed in S396 by the control of the commutation, which is explained in more detail in FIGS. 23 to 26. This control is very time critical and is therefore at the beginning of the flowchart in a short loop 382.
It is then checked in S398 whether the NEWJHALL flag indicates that a large loop 374 or 376 has already passed through since the last edge of the HALL signal.
If this flag still has the value 1, the program goes to S400 and sets this flag there to 0. Then it checks in S402 whether HALL_CNT is either equal to 0 or equal to 2. (The variable HALL_CNT is generated in S454 in Fig. 16. This variable corresponds to certain rotor positions which are set at random when the motor is turned on, eg 0 ° el. And 360 ° el., Or 180 ° el. And 540 ° el. If yes, the program enters the long loop 374 and performs at S404 the calculation of the setpoint t_s, which in this embodiment is calculated from the analog signal at input RA0, cf. Fig. 9.
If the answer is no in S402, the program goes to the long loop 376 and there to the steps S406 and S408, where the actual value t_HALL and the acceleration (Fig. 29) are calculated. To record the actual value, proceed as follows:
• Below 2000 rpm, the time tJHALL between two adjacent edges 370, 372 or 372 and 370 of the signal HALL is measured, ie the time for a rotation of 180 ° el.
Above 2000 rpm, the time between a first and a fourth edge of the signal HALL is measured, which in the case of the four-pole rotor 108 used is a full revolution of 360 ° mech. = 720 ° el. Corresponds. So measure the time for a full turn and divide it by 4 to get tJHALL.
These operations will be explained with reference to FIGS. 27 and 28.
S408 is followed by S410 where the arithmetic operations of the speed controller RGL are executed, which are explained in detail in FIG.
In the subsequent S412, the duty cycle pwm of the PWM signal is calculated and set at the output RC2, cf. see Fig. 31.
This is followed by S414, where certain registers are reset. These are registers whose value is known and does not change, eg registers for the direction of rotation or for the configuration of a comparator. These registers could lose their content due to strong EMC interference. Initialization will restore this content. This happens in the embodiment twice per revolution of the rotor.
Subsequent to the program steps S404 or S414, the program returns in an endless loop 416 to step S396. Since in step S400 the flag "NEWJHALL" has been switched to "0", which means that one of the large loops 374, 376 has been passed, then the answer in step S398 is no, and only the short loop 382 is run through, which takes a few μs.
The flag NEW_HALL is switched back to "1" at the next Hall edge 370 or 372 during the HALL interrupt, cf. S452 in Fig. 16, so that once again one of the large loops 374 or 376 is traversed once, depending on the instantaneous value of the variable HALL_CNT. When the motor 100 has a four pole rotor 108 and rotates at 3000 rpm = 50 rpm, the setpoint and actual value are updated 100 times per second, allowing for high quality speed control.
Fig. 14 shows the interrupt handler S420 which processes the interrupts 390 (Fig. 13). The processor used here has an interrupt handler, which is activated on any interrupt, determines what the interrupt is, and then performs the necessary routine to handle that interrupt. Before processing an interrupt, the source of the interrupt is thus determined by S420, eg the occurrence of the signal Imin or a change in the level of the signal HALL.
The interrupt handler S420 begins in S422 with a query whether there is an interrupt of the ring counter TIMER1 in the μC 40. If so, the corresponding routine is executed at S424. This belongs to the standard software of the μC 40. If there is no interrupt of the ring counter, a query is made in S426 as to whether a Hall interrupt HALLJNT is present. If so, the corresponding routine is executed at S428. This is shown in FIG. 16.
If the answer is No in S426, it is checked in S430 if there is an Imax interrupt. If yes, the Imax interrupt routine shown in Fig. 17 is executed at S432.
If the answer is no in S430, it is checked in S434 if there is an imine interrupt. If yes, the imine interrupt routine shown in FIG. 19 is executed in S436.
If the answer in S434 is No, it is checked in S438 if there is a TIMEOUT interrupt. The TIMEOUT function has already been described above in FIGS. 6, 242. If there is such an interrupt, the TIMEOUT interrupt routine shown in FIG. 20 is executed at S440.
The S420 interrupt handler has now reached its end. However, if also in S438 the answer should be no, there must be an error and the program then goes to step S442 where a corresponding error handling takes place, which may be implemented in μC 40. FIG. 15 is for explaining the routine for processing a Hall interrupt illustrated in FIG. 16.
Fig. 15a shows the signal PWM at the port RC2 of the μC 40. This signal is generated continuously and has, for example, a frequency of 20 kHz. Its duty cycle pwm is programmatically adjustable, cf. FIGS. 21 and 22.
Fig. 15b shows the signal HALL. This has rising edges 370 in the transition from low to high, and it has falling edges 372 in the transition from high to low.
The times t1, t2, etc. at which the edges occur are measured by the ring counter TIMER1 and stored in a temporary variable t_TEMP. As shown in Figure 15, the rising edges 370 govern the turn-on of the transistors HSL 114 and LSR 136, that is, the current n (Figure 1). Similarly, the falling edges 372 govern the turn-on of the transistors HSR 130 and LSL 132, that is the current .2 (FIG. 1). Therefore, the routine for the Hall interrupt must distinguish between rising edges 370 and falling edges 372.
The duration tJHALL between two edges results as tJHALL = t2 - 11 ... (2).
This period of time is a measure of the instantaneous speed of the rotor 108 and corresponds to the time it takes for a rotation of 180 ° el. Of course, this time can be measured in many ways, eg by the so-called sensorless principle, by optical encoders, by magnetoresistive encoders, etc. Preferably, as soon as the rotational speed is high enough, one measures the time for a larger angle of rotation, in particular for one full rotation of the rotor 108, which in the embodiment of FIG. 1 corresponds to a rotation angle of 720 ° el. This measurement is explained below.
FIGS. 15c and 15d show in a highly schematic manner the signals for the control of the H bridge 137. FIG. 15c shows the signals HSR, LSL for the control of the transistors 130 and 132, ie for the switching on of the current i2. Fig. 15d shows the signals HSL, LSR for the control of the transistors 114 and 136, ie for the switching on of the current i1.
The beginning of a pulse 444 of FIG. 15c is calculated from the falling edge 372 of the signal HALL, which is symbolized by the arrow 445, and the beginning of a pulse 446 of FIG. 15d is calculated from the rising edge 370 of the signals HALL, such as symbolized by the arrow 447. (The calculation is made in Fig. 30, S673). The flanks 370, 372 of HALL correspond to predetermined rotational positions of the rotor 108, cf. Fig. 26A, where the falling edge 601 a rotational position of 0 ° el., The rising edge 603 is assigned a rotational position of 180 ° el., Etc. In the calculation of commutation, these are the only rotational positions, which are known exactly, and Therefore, the calculations refer to these "fixed points".
Assuming that the control signals 444, 446 are symmetrical to the pulses of the signal HALL, the value is given for the time t3 at which a signal 446 starts
t3 = t1 + t_HALL + (t_HALL - BW) / 2 ... (3)
This means
BW = block length of the signals 444, 446. This block length is calculated by the speed controller RGL, which will be described below with reference to FIG.
Analogously, the value t4 = t2 + t_HALL + (t_HALL-BW) / 2 results for the time t4 at which the control signal 444 should begin. (4)
It should be noted that, for example, the time t3 is not calculated from the time t2 (directly preceding edge 372 of the signal HALL), which is closest to t3, but from an earlier time t1, namely from the preceding edge 370th The reason in that, if BW = tJHALL, the time t2 would coincide with the time t3, which is not possible, since computation steps have to be carried out between t2 and t3.
If a so-called ignition angle shift, for example by a fixed value VZ, is used, the above formulas change as follows: t3 '= t1 + t_HALL + ((t_HALL-BW) / 2) - VZ ... (3a) t4' = t2 + t_HALL + ((t_HALL - BW) / 2) - VZ ... (4a).
In this case, the times t3 and t4 are left by the magnitude VZ, as indicated in Fig. 15d for t3 ', which means a slightly earlier turn on the currents ii and i2 and can cause an improvement in the efficiency. It can also be seen that t3 'in this case lies ahead of time t2, which is only possible because the reference time RefTime for the calculation of t3' is not the time t2, ie the falling edge 372, but the time t1, ie the rising Hall edge 370, as symbolically represented by the arrow 447. VZ is usually a constant, but can also be a speed-dependent function or be constantly optimized by separate, not shown program parts.
FIG. 16 shows the routine S428, which is triggered on an edge 370, 372 (FIG. 15) on a HALL interrupt. Such is generated when the signal at the input RBO changes from 0 to 1 or from 1 to 0, ie the input RBO is edge-sensitive and causes an interrupt when an edge 370 or 372 occurs. The routine distinguishes a rising edge 370 from a falling edge 372, which is important for subsequent processing.
In step S451, the time at which the interrupt occurred is stored in a temporary memory t_TEMP. This time is measured by means of the already mentioned ring counter TIMER1 in μC 40.
In step S452, the flag NEWJHALL (Fig. 13) is set to 1 as a signal that subsequently one of the large loops 374 or 376 (Fig. 12) must be executed.
In step S454, the hall counter HALL_CNT is set to the value (HALL_CNT + 1) MOD 4, that is, counted up by 1 and subjected to the operation modulo 4. The calculation with modulo causes an indication of the remainder. For example, 4 mod 4 = 0, since 4 is integer and divisible by 4 (remainder). In contrast, 5 mod 4 = 1, since this gives the remainder 1. Similarly, 6 mod 4 = 2, since in this case the remainder is 2, 7 mod 4 is 3, and 8 mod 4 = 0. Therefore, in operation in S454 for HALL_CNT, the sequence of numbers 0, 1, 2, 3, 0 results continuously , 1, 2, 3, 0, etc.
In step S456, a query is made as to whether HALL = HIGH. According to FIG. 12 a), this means that the rotor 108 is in an angular position between 0 ° el. And 180 ° el. If HALL is not high, according to S458, the reference variable (reference) for the control of the upper right transistor HSR 130 and the lower left transistor LSL 132 is replaced by the time stored in the temporary memory t_TEMP. In the subsequent step S460, the interrupt sensitivity is set so that the port RBO for the next HALL interrupt is sensitized to a change from LOW to HIGH.
At S462, it is checked if the COMMUT_ON flag is 0. This flag is set in the routine COMMUT (FIG. 23) in step S718 as soon as the winding receives current, and it is set to zero at the end of the commutation in FIG. 24 or 25, cf. there S764, S812 and S842. If the answer is no, it means that there is still a current i2 flowing at the time of the hall change from high to low.
For this purpose, reference is made to FIG. There is a Hall change 372 from high to low at time t2 instead. There, the transistor HSR 130 should already be switched off, so that no current .2 flows more, and since HSR is still conductive, i2 must be turned off in an "emergency shutdown". For this purpose, HSR 130 is turned off in step S464, and in subsequent step S466, both lower transistors LSL 132 and LSR 136 are turned on, so that the current i2 through the transistors 132, 136 and measuring resistors 134, 138 can decay rapidly, thereby generating a torque. (When the current i2 goes through zero, an imine interrupt is triggered as shown in FIG. 19, which terminates the shutdown.) Thereafter, the program goes to step S468, where it is noted that the shutdown procedure of the current i2 has been initiated (COMMUT_ON: = 0),
If it is determined in step S462 that the current i2 has already been turned off, the program proceeds directly to step S468.
If it is determined in step S456 that the signal HALL is high, that is, one of the rising edges 370 in Fig. 15, the program goes to step S470, and there is used as a reference variable for the control of the transistors HSL 114 and LSR 136 takes over the time stored in the temporary memory t_TEMP, ie certain times are now measured and calculated from these variables. Subsequently, in S472, the interrupt sensitivity is set so that the port RBO for the next HALL interrupt is sensitized to a change from HIGH to LOW, ie to a falling edge.
In the subsequent step S474, it is checked if the flag COMMUT_ON has the value 0. This flag is set to 1 in the routine COMMUT (FIG. 23) in step S718 as soon as the winding receives current, and it is set to zero at the end of the commutation in FIG. 24 or 25, cf. there S764, S812 and S842. If the answer is no, because a current ii is still flowing in this Hall change, it must be turned off in an "emergency shutdown", and to do so, in step S476, the current ii is turned off by turning off the upper transistor HSL 114, and in S478, both lower transistors LSL 132 and LSR 136 are turned on to allow current ii to decay rapidly through components 132, 134, 136, 138, thereby producing torque on rotor 108. (When the current ii goes through zero, the shutdown procedure is terminated, eg by the Imin interrupt of Fig. 19.) It follows S468 where COMMUT_ON is set to 0 to indicate that the shutdown procedure for ii has been initiated. If the answer in S474 is Yes, the program directly goes to step S468.
Subsequent to S468, it is checked in S480 whether the flag STARTUP (FIG. 13, S394) is 1. This means that there is either no value for the actual speed, or that the actual speed is below 1000 rpm. If this flag is not set, the program jumps directly to the end S493 of the routine S428.
If the answer is YES at S480, the program proceeds to step S482 where it checks whether tJHALL is smaller than a value t_HALL_min (see FIG. Equation (7)), which for example corresponds to a speed of 1000 rev / min, that is, it is checked whether the speed was exceeded 1000 rpm. If no, the program goes to S493.
If 1000 rpm has been exceeded, the STARTUP flag is set to zero in S486. It is then checked in S488 whether the signal HALL is high. If no, it is determined in S490 in the predictive variable NEXT_COMM that the next stream block will be a stream block 446 (FIG. 15), ie HSL 114 and LSR 136 must be turned on. If the answer is yes in S488, it is determined in S492 that the next stream block will be a stream block 444 (FIG. 15), ie, HSR 130 and LSL 132 must be turned on. After S490 or S492, the program goes to S493 and ends routine S428. The values for NEXT_COMMUT are queried in Fig. 24, S752 and Fig. 25, S806 and allow the transition to commutation at higher speeds.
FIG. 17 shows a preferred embodiment for the routine S428 for processing an Imax interrupt S428. The function of this routine will be explained below with reference to FIG.
At S500, it is checked whether the flag lmax_CTRL_ON has been set to 1 in the routine COMMUT_CTRL (FIG. 25). This ensures that the routine S428 can be triggered by the signal Imax only when current flows in the winding 102, but not by spurious signals in currentless winding. If the answer at S500 is yes, it is checked in S501 whether the imax interrupt has been generated at the upper limit (3 A) or the lower limit (1, 6 A). In the event of an interrupt at the upper limit of the current, the signal Imax goes from high to low, because the transistor 188 (FIG. 1) becomes conductive, and the current to the stator winding 102 has already been switched off via the hardware by the low-active signal Imax, by locking both upper transistors 114 and 130. This has already been described in FIG. 1. Redundant become additional, if the answer at S501 is yes, in S502, the signals HSLJDUT and HSR_OUT for the upper transistors 114 and 130 are set to zero to obtain control of these two transistors also by software, ie, they can not be turned on again until the software that allows. If at S500 the answer is no, the routine goes directly to its end, so S522. Even if the interrupt has been generated at the lower limit (1, 6 A) of the current (S501: No), the routine goes directly to S522. the routine goes directly to its end, so S522. Even if the interrupt has been generated at the lower limit (1, 6 A) of the current (S501: No), the routine goes directly to S522. the routine goes directly to its end, so S522. Even if the interrupt has been generated at the lower limit (1, 6 A) of the current (S501: No), the routine goes directly to S522.
At S504, a wait of 30 μs follows at S502. During this time, the current flows in the lower part of the bridge 137, for example via the conductive transistor 136 and the freewheeling diode 132 ', or conversely via the conductive transistor 132 and the freewheeling diode 136'.
Subsequently, at S506, both lower transistors LSL 132 and LSR 136 are turned on, so that the current in the winding 102 can decay through the components 132, 134, 136, 138, generating a torque on the rotor 108.
At S508, the routine DEC follows<sup>*</sup>(pwm), which is shown in Fig. 22 and in which the duty cycle pwm of the signal PWM is reduced by one stage, so that the current through the winding 102 decreases and no longer reaches the upper limit, here 3A. This adaptively prevents the motor from operating unnecessarily with current limiting, and compensates for the reduced current by increasing the value of BW (in the RGL controller).
Subsequently, in step S510, for example, 200 μs is waited for the current in the winding 102 to have sufficient time to decay. At S511, it is checked if the variable for the next transistors to turn on is HSLASR. If so, transistor LSR 136 remains conductive in S512 and transistor LSL 132 is turned off so that the short circuit current now flows through transistor 136 and freewheeling diode 132 '. Subsequently, in S512, for example, 30 μs is waited for, and then the upper transistor HSL 114 is made ready to be switched on again, ie this can be switched on by the hardware when the signal Imax goes high. In Fig. 17, this is symbolically indicated at 513 by "Hardware: ON". The activation is thus not effected by the command HSL_OUT: = 1,
If the answer is no in S511, the transistor LSR 136 is turned off in S514, and the transistor LSL 134 remains turned on, see FIG. S506, so that the short-circuit current flows through the transistor 134 and the free-wheeling diode 136 '. Subsequently, 30 μs is serviced, and then the upper transistor HSR 130 is made ready to be switched on again, ie this can now be turned on by the hardware, as indicated at 513, as soon as the signal Imax becomes high again, ie at a current below 1, 6 A. The switch-on does not take place here also by the signal HSR_OUT: = 1, but only by the change of the signal Imax at 1, 6 A, or in other words: By a conjunctive connection of the signal HSR_OUT: = 1 with the signal Imax = 1. Nach falls below 1, 6 A, the motor 100 is thus again receives power from the DC network 121,
Subsequent to S512 or S514, the routine S428 goes to S522 and ends there. It should be pointed out here that the signals HSL_OUT, HSR_OUT etc remain stored until a different signal is generated at the relevant output of the μC 40. For example, following S502, the HSL_OUT signal remains at 0 until it is switched to 1 in S512, and remains at 1 after S512 until it eventually switches to 0 again.
Fig. 18 illustrates the operation of the routine of Fig. 17. In Fig. 18, the value of 3 A is entered for the upper current threshold, and the value 1, 6 A for the lower current threshold, to increase the intelligibility. Of course, these numbers may vary depending on the engine.
At t30, the current i1 is turned on by turning on transistors 114 and 136. At -31 i1 reaches the maximum permissible value of 3 A, and by changing the signal Imax to low, the transistor 114 is immediately shut down via the hardware. At the same time, the routine S428 in accordance with FIG. 17 runs from -31. S506 additionally activates the lower transistor 132 at -32 so that the winding 102 is operated in the short circuit. This goes from 200 μs to -33. There, the transistor 132 is turned off again so that only the transistor 136 conducts, and the software shutdown of the upper transistor 114 is canceled by steps S516 and S518. However, the upper transistor 114 only conducts again from t34, namely the achievement of the lower current threshold 1, 6 A, whereby the signal Imax becomes high again, so that the current i1 is turned on and rises again. At t35, it again reaches 3 A, and transistor 114 is again turned off by the hardware, routine S428 is restarted, and the process described is repeated.
At t36, transistor 114 is again turned on by the hardware, and at t37, the shutdown command takes effect because the time BW of the stream block has expired.
In itself, the current i1 would have had to be turned off already at the point Z, at which the time BW has expired, but the shutdown command can only be effective in the areas that are grayed out in Fig. 18, in this case only at the time t37, which slightly delays the elimination.
At time t38, the current i1 goes through zero, and therefore the imine interrupt S436 is generated there, which will be described below.
Somewhat disadvantageous in FIGS. 17 and 18 is that, for example, increased losses occur between the times t33 and -34, because there ii flows through the freewheeling diode 132 'because the transistor 132 is no longer conducting. Below is also described a variant that is particularly suitable for slow engines and with which these losses can be further reduced. The solution according to FIGS. 17 and 18 represents, according to current knowledge, the optimum for high-speed motors, because in these the current changes take place extremely quickly and therefore the computing times in μC 40 are too long in comparison to the times in which these current changes take place. With faster processors probably better solutions would be possible, but these are still too expensive for engines today.
19 shows the sequence of the service routine 436 for processing an imine interrupt.
At S530 it is queried whether the flag lminJNT_ON = 1. This flag is set in routine COMMUT_CTRL Fig. 25, S824. If a TIMEOUT interrupt (Figure 20) has gone directly ahead, this flag has the value 0 and the program then goes directly to the end, that is S532 of this routine.
If the answer is yes at S530, the TIMEOUTJNTJDN flag is set to 0 in S534 so that a subsequent TIMEOUT interrupt is no longer asserted, and then at S536 all four transistors 114, 130, 132, 136 are disabled because the winding 102 is essentially off is de-energized and is stored in it no inductive energy. (This was converted into kinetic energy of the rotor 108.)
Subsequently, at S538, the flag BlockEndJDONE is set to 1, which is polled in Fig. 24 during the routine COMMUTJMORMAL in S762 and serves to prepare the next commutation, and at S539, lminJNT_ON is set to 0 because the routine has been executed.
FIG. 20 shows the sequence of the service routine S440 for processing a TIMEOUT interrupt.
At S540 it is queried whether the flag TIMEOUT_INT_ON has the value 1. If an imine interrupt (Fig. 19) has preceded, this flag has the value 0 and in this case the routine goes directly to its end S542.
If the answer is yes in S540, the routine goes to step S544 and sets the flag lmin_INT_ON to 0 so that a subsequent imine interrupt is no longer processed, cf. S530 in FIG. 19.
In the subsequent step S546, all four transistors 114, 130, 132, 136 are disabled because the current in the winding 102 at the expiration of TIMEOUT has a low value and consequently no large inductive energy is stored in the winding 102 anymore. As a result, the winding 102 is de-energized.
Subsequently, at S548, the flag BlockEndJDONE is set to 1 which is retrieved in Fig. 24 during the routine COMMUT_NORMAL in S762, and in S549 TIMEOUTJNT is set to 0 because the interrupt has been executed.
Fig. 21 shows the routine INC<sup>*</sup>(PWM) S554 for increasing the duty ratio pwm of the signal PWM at the output RC7 of the μC 40. At S556, the value in the PWM register is increased by 1, which corresponds to an increase in the duty ratio by 1%.
In step S558, it is checked whether pwm has become larger than 100% by the increment. If yes, the program goes to S560 where, in this case, pwm is set to 100%, which means that the current ii or i2 is fully turned on.
If the answer is No at S558, the routine goes to its end S562, also following S560.
Fig. 22 shows the routine DEC<sup>*</sup>(PWM) S564 to reduce the duty cycle pwm. At S540, the size pwm is increased by 1, which is about 0.5%. At S568 it is checked, whether this causes pwm to fall below 10%. If yes, the routine goes to S570, where pwm is limited down to 10%. If the answer is No at S568, the routine goes to its end S572, also following S570.
The routines according to FIGS. 21 and 22 above all play a role in the context of the adaptive controller, which is described below in FIG. 31.
FIGS. 23 to 25 show the routine COMMUT S396, which is continuously called in the main program (FIG. 13) and controls the currents ii, -2 in the winding 102. The commutation control is the function that is most frequently executed. It consists of two parts:
1. The startup part for startup and startup
2. The part for normal operation.
In the startup program section, the engine is stopped or is just trying to start up. After the supply voltage is connected, the flag STARTUP is set in step S394 in Fig. 13 so that the engine starts the routine STARTUP. The COMMUT_ON flag is also set to 0 in the initialization so that a new current can be started.
In S700 it is checked whether the engine 100 is in startup (STARTUP = 1). If yes, jump to S702 and do a simplified commutation.
Commutation at low speeds
At low speeds, the current through winding 102 is turned on by routine COMMUT S396 (FIG. 23) and turned off again in the respective following Hall interrupt routine (FIG. 16). First, it is checked in S702 whether the current block has already been started in this reverberation period. If yes, the program jumps to the end of S722, since energization only takes place after the next hall change. However, if COMMUT_ON = 0 in S702, this is the first call of the routine COMMUT S396, and the energization is started.
For this purpose, 100 μs is waited in S704 to create a current gap, so that not all MOSFETs simultaneously become conductive. In S706, it is checked if the block length BW is greater than zero. If no, the engine should not receive power. Therefore, the routine then jumps to the end S722.
If BW> 0, the correct energization of the winding 102 is started depending on the signal HALL, ie either ii or .2, cf. Fig. 1. The rotor 108 now begins to rotate 180 ° el. If HALL is high, the signals HSR_OUT and LSL_OUT are set to 1 in S710, so that the winding 102 is energized via the transistors HSR 130 and LSL 132 and a current i2 flows.
In S712, it is determined in advance that the next commutation must take place via the transistors HSL 114 and LSR 136. This is important for the change from this type of commutation to the type of commutation at high speeds, cf. below the description of FIG. 27.
On the other hand, if the signal HALL was low (LOW) in S708, the other transistors HSL 114 and LSR 136 are turned on in S714 so that a current ii flows, and in S716 NEXT_COMMUT is set to the correct value for the following commutation.
In S718 the flag COMMUT_ON is set to 1, so you can jump directly from S702 to S722 the next time the routine COMMUT S396, since winding 102 is already receiving current. This continues until the rotor 108 has rotated about 180 ° el.
When 180 ° el. Is reached, the software recognizes this by means of a Hall interrupt. The switching off of the current supply and the setting of COMMUT_ON to 0 occur in the Hall interrupt routine (FIG. 16, S462 to 478, S468), so that the commutation control starts again from S704 on a new energization with the correct current direction.
Commutation at high speeds.
If STARTUP = 0 in S700, the commutation COMMUTJMORMAL S720 is executed for high speeds, cf. Fig. 24. Fig. 26 is a schematic diagram showing the flow of this commutation.
In S750, in Fig. 24, the current time t_TIMER1, which is continuously measured by a ring counter, is stored in the variable t_CALC, and in S752, the direction in which the current is to flow through the coil 102 is decided by the variable NEXT_COMMUT.
If the transistors HSL and LSR are to be turned on, it jumps to S754, and from the variable t_CALC the variable RefTimeJHSLΛSR is subtracted, which corresponds to the time of the previous Hall change from low to high. This is shown in FIG. Fig. 26A shows the signal HALL with the reverberations 601, 603, 605, 607, etc., during which the time of the instantaneous reverberation change is stored in the variables RefTimeJHSR / LSL (at 601 and 605) and RefTimeJHSLΛSR (at 603 and 607) (S458 and S470 in Fig. 16).
Fig. 26 explains the basic principle of commutation. For the switching on and off of a current block, after reaching the operating speed of the motor, reference is made to a reference position of the rotor assigned to this current block, which maintains a minimum distance to this current block in all operating states.
For example, one uses for the switching on and off of the current block B4 (FIG. 26C) a reference position do, here 180 ° el., And starting from this reference position 3o, one calculates an angular position 31 for turning on the current block B4, here at 405 ° el ., And an angular position 32 for turning off the block B4, here at 495 ° el.
The angular position 3o is therefore the reference point for this current block, and therefore a reference time RefTime_HSL / LSR is measured on it in TIMER1, because in the current block B4 the transistors HSL 114 and LSR 136 must be conducting.
The motor 100 has no sensor with which the rotation angle could be measured anywhere 3 accurate, but per rotor rotation can detect the rotational position reasonably accurate only at four points, because there the signal HALL changes, namely at 0 ° el., 180 ° el., 360 ° el., and 540 ° el. Between these rotational positions must be interpolated, which is possible because the angular velocity of the rotor 108 changes only slightly in the course of a revolution.
So if you turn on the rotary position 31 and turn off at the position 32, you know that the angular distance between 3o and 31, for example, 405 - 180 = 225 ° el., And that the angular distance between 3o and 32, for example 495 - 180 315 ° el.
Since it is known that the rotor requires the time tJHALL for a rotation of 180 ° el., The time tJHALL is given for a rotation of 225 ° el <sup>*</sup> (225/180) = 1, 25 <sup>*</sup> tJHALL
In this example, this is the time t_BLOCK_START.
Similarly, for 315 ° el., The time tJHALL * (315/180) = 1.75 <sup>*</sup> tJHALL
In this example, this is the time t_BLOCK_END.
When passing through the rotational position 3o so a reference time is measured, namely RefTimeJHSLΛSR, eg 67.34 ms.
Fig. 33 shows the indicated values on a numerical example for n = 3000 rpm. Here, according to equation (6), the time tJHALL = 5 ms. This is the time the rotor 108 needs at 3000 rpm for 180 ° el.
By the controller RGL (FIG. 30), at block 613, as an example, a block length BW of 2.5 ms is specified, and it is thus prognostically known from FIG. 33 that after a time of 6.25 ms, the rotational position 31 (405 ° el.) Will be reached, where the current ii must be turned on. Likewise, it is prognostically known that after a time of 8.75 ms, the rotational position 32 (495 ° el.) Will be reached, at which the current ii must be switched off, or at which the commutation procedure begins and the energy supply from the DC network is switched off becomes.
Furthermore, FIG. 33 shows as an example that a reference time of 65.34 ms is measured in TIMER1 at reference time 3o. That's the time RefTimeJHSLJLSR.
In order to monitor the turn-on at 31 and the turn-off at 32, one proceeds according to S754 of FIG. 24, continuously forming the time difference t_CALC between the instantaneously measured time and the 65.34 ms. For t_CALC, compare equation (5).
If, for example, a time of 66.34 ms is measured by TIMER1 at time t40, the difference t_CALC = 66.34-65.34 = 1 ms results
Since the current ii only has to be switched on after a time of 6.25 ms, 1 ms is too low and the current ii is not yet switched on. If, at time t41, the current time in TIMER1 is 71, 60 ms, the result is
Difference t_CALC = 71, 60 - 65,34 = 6,26 ms.
In this case, the current ii is turned on because t_CALC is greater than 6.25 ms.
From the rotational position 3o is thus constantly monitored in Fig. 25, S800, whether t_CALC has become greater than t_BLOCK_START, and if so, in this case in S810 of Fig. 25, the transistors HSL 114 and LSR 136 are turned on.
The shutdown follows the same principle, except that t_CALC is compared with the variable t_BLOCK_END, cf. S820 in Fig. 25. In Fig. 33, this size is 8.75 ms. It corresponds to the turn-off angle 32, and when it is reached, the commutation procedure in Fig. 25, S826 to S844 is run through.
The commutation is therefore based on the fact that the time t_CALC is recalculated in the short loops 382 of FIG. 13 at very short intervals of eg 0.1 ms and compared with the prognostic values t_BLOCK_START and t_BLOCK_END. This is done in Fig. 33A between the times 65.34 ms 74.1 ms and is indicated by dots 615. For each current block, one starts from an associated reference angle at which a reference time for this current block is measured, which is then used in the comparisons. Thus, as the rotor 108 rotates, new reference times are continually determined and new comparisons are made to properly control the currents ii and i2 through the winding 102, ie, the reference angles continually "move" with the rotation of the rotor.
If the current is to be switched on by a time ZV = 0.4 ms earlier, which is also referred to as "pre-ignition", then in FIG. 33, instead of the time 6.25 ms, a time of
6.25 - 0.4 = 5.85 ms, and a time of off for turning off
8.75 - 0.4 = 8.35 ms.
The angle 31 then shifts 14.4 ° el. To the left to 390.6 ° el. At that speed, and the angle 32 also shifts 14.4 ° el. To the left to 480.6 ° at that speed el., that is, the current ii is turned on and off earlier in time, and the angle that is turned on and off earlier increases with increasing speed and here at 3000 rpm is 14.4 ° el., at 6000 RPM 28.8 ° el. Etc. Usually ZV will be a function of the speed. This earlier engagement of the currents in the winding 102 may improve the efficiency of the motor 100 at higher speeds. It is very easy to implement in the present invention.
Fig. 26B shows the value of the variable NEXT_COMMUT, that is either HSLJLSR or HSR / LSL. FIG. 26C symbolically shows energization blocks B1 to B5 over time TIMER1. FIG. 26D shows the times t_BLOCK_START and t_BLOCK_END for the lighting block B4, which starts at 609 and ends at 611. Block B4 has the edge 603 of the signal HALL for its turn-on and turn-off as the reference time, that is to say the time RefTime_HSLΛSR (603) measured at 603, which is symbolized by an arrow 611 in FIG. 26C. At 621, 623, 625 and 627, the time duration t_CALC = t_TIMER1-RefTimeJHSLΛSR .. (5) is adapted to the current time in TIMER1 by a new calculation in the program. For example, at 621 a time t_CALC (621 ') is calculated for the time 621' by which it is checked whether the beginning of the block B4 has already been reached.
At times 621 ', 623', 625 'and 627', the variable NEXT_COMMUT (FIG. 26B) has the value HSIJLSR, so that it jumps from S752 (FIG. 24) to S754 and there the instantaneous difference between the one stored in S750 Value t_TIMER1 and the value RefTime_HSIJLSR (603) is calculated and assigned to the variable t_CALC. Therefore, upon a call to routine COMMUT_NORMAL at time 621 ', the value t_CALC has the value indicated at 621 (Figure 26D). In S756, the analog calculation is performed if the variable NEXT_COMMUT has the value HSR / LSL.
Then, the actual commutation routine COMMUT_CTRL S760 is jumped, which is shown in FIG. 25. The starting from S762 part of Fig. 24 is used to complete the commutation, ie to turn off the power is only once passed after completion of the energization, and will be described later.
In the routine COMMUT_CTRL S760, the switching on and off of the transistors 114, 130, 132 and 136 takes place, which will be described with reference to FIG. 26.
If the duration calculated in t_CALC (as at time 621 ') is less than t_BLOCK_START, then no energization of the winding 102 should take place.
At 623 ', t_CALC is greater than t_BLOCK_START for the first time, and therefore the current to winding 102 is turned on.
At time 625 ', the value t_CALC has not yet reached the value t_BLOCK_END, so that the energization of the winding 102 is continued.
Finally, at 627 ', t_CALC has exceeded the time period t_BLOCK_END, and therefore the power supply to winding 102 is now turned off.
The steps just mentioned are executed in routine COMMUT_CTRL S760. If t_CALC is less than t_BLOCK_START (time 621 ') in S800, nothing happens and the system jumps to end S848.
However, if t_CALC is greater than or equal to t_BLOCK_START (times 623 ', 625', 627 ') in S800, it is checked in S802 whether the energization of winding 102 has already been activated (COMMUT_ON = 1). If no (time 623 '), the switch-on procedure takes place from S804.
If the block length BW = 0 in S804, then no current is supplied and jumped to S812. On the other hand, if BW> 0, the transistors HSR 130 and LSL 132 are controlled in S808, depending on the value of the variable NEXT_COMMUT, or the transistors HSL 114 and LSR 136 are conductively controlled in S810.
In S812, COMMUT_ON is set to 1 to indicate that the energization of winding 102 is now on. Then it jumps to the end of S848.
If the value COMMUTJDN = 1 (times 625 ', 627') in S802, ie a current flows to the winding 102, it is checked in S820 whether the variable t_CALC has already reached the value of the time duration t_BLOCK_END, which is shown in FIG , S673, is calculated.
If no (time 625 '), it is still checked in S822 whether t_CALC is greater than or equal to (2 <sup>*</sup> TJHALL - A<sup>*</sup>). It is (2<sup>*</sup> t_HALL) for this motor, the time required for the rotor 108 to rotate 360 ° el., and A<sup>*</sup> is a constant, which is eg 400 μs. The current for winding is interrupted by S822 even in the event of disturbances in the program sequence about 400 μs before the next Hall change.
These 400 μs are needed to complete the entire shutdown procedure before the reverb change occurs. This serves to avoid a simultaneous switching on of all power transistors. This "emergency shutdown" is required at high speeds, since in these the block length BW is almost as large as tJHALL (high power requirement at high speed). At low speeds, the end of a current block has long been reached before the next Hall change is reached, ie then in S822 the answer is always no, and in S824 the Imax interrupt (Figure 17) is activated to go to one if necessary be able to react high motor current.
If, on the other hand, the value of t_CALC is greater than or equal to t_BLOCK_END in S820, or if the answer is yes in S822, the switch-off procedure is called in S826.
In S826, it is checked by means of the variable Off_detected whether the switching off of the current supply, ie the commutation procedure for switching off, has already been initiated. If yes, jump to the end of S848. However, if this is the first call, it jumps from S826 to S828.
The variable Off_detected is set to 1 in S828. In S830 the Imax interrupt is deactivated and in S832 the Imin interrupt is activated. (The interrupts are activated with great advantage only in the areas where they can occur according to the logic of the program.)
In S834, both upper transistors HSL 114 and HSR 130 are turned off. In S836, 30 μs is waited, and in S838 the TIMEOUT interrupt (Figure 20) is activated and a TIMEOUT time t_TIMEOUT is calculated from the current value of TIMER1 and a constant t_T0.
Subsequently, both lower transistors LSL 132 and LSR 136 are conductively controlled at S840, so that the current in the winding 102 decay in the short circuit and thereby generate kinetic energy in the rotor 108. At S842, the COMMUT_ON flag is set to 0, and at S844, the BlockEndJDONE variable is set to 0 to indicate that the commutation is not yet complete. The one of the two interrupt routines Imin interrupt and TIMEOUT interrupt, which is called first, then switches off both lower transistors LSL 132 and LSR 136, cf. S536 of Figs. 19 and S546 of Fig. 20 and sets BlockEndJDONE to 1, cf. S538 of Figs. 19 and S548 of Fig. 20. Thus, the shutdown is completely completed, as indicated by BlockEndJDONE = 1.
The next time the routine COMMUT_NORMAL S720 is called, it jumps to S764 in S762, Fig. 24. In S764, COMMUT_ON and Off-detected are set to 0 because the energization is turned off, and in S766 to S770, the prognostic value of NEXT_COMMUT is changed, that is, the value HSLΛSR becomes HSR LSL, and vice versa, cf. Fig. 26B. As a result, even in the case of pre-ignition, in which the current is switched on before the actually assigned Hall interrupt, the direction of the current supply in the winding 102 is correctly determined, ie the value NEXT_COMMUT determines which transistor pair then has to be monitored for switching on and off , Thereafter, the flag BlockEndJDONE is set to 0 in S772 so that at the next pass in S672 the answer is No and the routine goes directly to S774.
Fig. 27 shows the routine CALCJJHALL S406 for calculating the instantaneous reverberation time tJHALL, that is, the time required for the rotor 108 to rotate by 180 ° el.
Fig. 28 is an explanatory view. Fig. 28D shows the signal HALL. This has flanks at points 630, 631, 632, 633, 634, 635, ie there is a Hall change instead, which is used to determine the rotor position and to determine the speed and acceleration. Since a Hall change takes place four times per revolution with a four-pole rotor 108, the exact rotor position can be measured four times per revolution.
Fig. 28B shows the value of the variable HALL_CNT. This is a counter which is incremented modulo 4 according to S454, FIG. 16. This means that this variable successively assumes the values 0, 1, 2, 3, 0, 1, 2, 3, 0, ....
Fig. 28A shows an example of the position of the rotor 108, which is shown as in Fig. 1 as a four-pole rotor. The edge 630 of the signal HALL corresponds to the rotor position 0 ° el. And the count HALL_CNT = 0, the edge 631 of the rotor position 180 ° el. And the count HALL_CNT = 1, the edge 632 of the rotor position 360 ° el. And the count HALL_CNT = 2, etc.
Two types of measurement are used. Fig. 28E shows the one kind used at low rotational speeds n, for example below 2000 rpm, where t_HALL takes large values, cf. following equations (6) and (7). Fig. 28F shows the other type used at higher speeds, eg above 2000 rpm, where the Hall times tJHALL are smaller and by measuring the time for a full revolution (720 ° el.) Inaccuracies due to magnetization errors of the Rotor 108 can be avoided.
The routine CALCJ_HALL S406 is called by the main program (FIG. 13) for every second Hall interrupt, namely when the variable HALL_CNT (FIG. 28) is even-numbered, ie has either the value 0 or 2, cf. Step S402 in FIG. 13.
Previously, in the Hall interrupt routine S428 (Fig. 16), the instantaneous time of the hall change was stored in RefTime_HSR / LSL on a high-to-low edge (S458 in Fig. 16, Fig. 28C), and in RefTimeJHSLΛSR at a low-to-high edge (S470 in Fig. 16, Fig. 28C). In the rotor positions 0 ° el., 360 ° el, 720 ° el. Etc so the time for the relevant rotor position is stored as reference time for HSLJLSR, and at the rotor positions 180 ° el., 540 ° el., 900 ° el the time for the relevant rotor position is stored as the reference time for HSR / LSL, as explicitly indicated in FIG. 28C.
In S851 or S852 (FIG. 27), depending on the value of the signal HALL, the time duration between the instantaneous and the preceding Hall change is calculated and stored in the variable TEMP. In Fig. 28E, for example, after the hall change 632, this would be the time between the edges 631 and 632, that is, [RefTimeJHSLJLSR (632) - RefTime_HSR / LSL (631)]. In S854, the current time t_HALL is stored in tJHALLJDLD in order to perform a calculation of the acceleration, cf. Fig. 29.
In S856, it is checked if the time TEMP is smaller than the time t_2000. (The time t_2000 is equal to the time tJHALL at 2000 rpm.) If no, the speed n of the motor 100 is less than 2000 rpm, and the left branch S858, S860 is run, at which the time tJHALL for a Here, in S858, the value TEMP of S851 or S852 is assigned to the reverberation time tJHALL, and in S860, setting of FLAG_1 / 4 to 1 indicates that at the moment, only the time for one Quarter revolution is measured.
If the speed of the motor in S856 has already reached the speed n = 2000 rpm, then in S862 it is checked whether the variable HALL_CNT = 0. This is the case after each full mechanical revolution of the rotor 108 (see Figures 28A and 28B). If no, it jumps immediately to the end S878, eg at the edge 632 in Fig. 28D. However, if HALL_CNT = 0, it is checked in S864 if FLAG_1 / 4 = 1.
If yes, this is the very first pass of the t_HALL computation for a full rotor revolution, and therefore during this pass, the current value RefTime_HSL LSR is stored in RefOld to allow computation with a valid value for RefOld from the next pass. In the very first pass, no calculation of t_HALL over a full mechanical revolution takes place, but the previous value continues to be used. In S866, FLAGJ / 4 is set to zero, ie, from the next pass, the measurement can be made over a full revolution of the rotor 108.
The next time CALCJJHALL S406 is called, where HALL_CNT = 0, it jumps from S864 to S868. There, the time duration between the instantaneous value RefTime HSL / LSR (eg, from the edge 634 of FIG. 28D) and the value of a rotor revolution earlier stored in RefOld (eg, at the edge 630 of FIG. 28D) is calculated. This time period corresponds to four times the reverberation time tJHALL, and in S870 the calculated value is therefore divided by 4, so that the value t_HALL is exactly one quarter of the time duration for one complete revolution (from 630 to 634 in FIG. 28E, ie for 720 ° el. ) corresponds. This type of measurement of tJHALL is particularly accurate and therefore leads to a particularly smooth running of the engine.
In S874, the current value RefTimeJHSL / LSR is saved in the variable RefOld for the next calculation. Thereafter, the routine is exited in S878.
Instead of RefTimeJHSLJLSR, the time RefTime_HSR / LSL could also be used, as is obvious to the person skilled in the art. This depends on which rotor position the counter HALL_CNT has the counter reading 0.
Routine CALCJJHALL S406 is called in this embodiment only after every second Hall interrupt due to branch S402 in the main program (FIG. 13). The query in S402 of FIG. 13 ensures that the correct reference times for the speed calculation over a full revolution are available when it is called.
For a fast processor, the same routine CALCJJHALL S406 could be called more frequently.
FIG. 29 shows the routine CALC_ACCEL S408 which is used to calculate the acceleration of the rotor 108. Referring to Fig. 13, this routine is executed subsequent to the routine CALCJJHALL in which the execution of the routine S408 is prepared in step S854.
In step S640, the variable ACCEL is calculated as the difference of t_HALL_OLD and tJHALL.
In S642 it is checked whether ACCEL is less than 0, which means that the speed of the motor decreases, eg by a braking operation. In this case ACCEL is set to 0 in S644.
If ACCEL> 0 in S642, the routine goes to S646 where the value of ACCEL is doubled. ACCEL greater than 0 means that the rotor 108 is accelerated, eg during startup of the motor. ACCEL is doubly doubled because at the start of an engine, the speed increases after an e-function, and thus the value of ACCEL would be too low even after the calculations have been completed, if the doubling were not done.
Subsequent to S644 and S646, the routine goes to S648, where the value of ACCEL (from S644 or S646) is A<sup>*</sup> is added, for example, 400 microseconds, because for the commutation a time of about 400 microseconds is needed. This value of ACCEL is then used in routine RGL to modify the value of BW. Routine S408 is then terminated in step S652. Fig. 30 shows the routine RGL S410 for the speed control. This is based on a comparison of the reverberation time t_HALL with the desired time t_s, which corresponds to the desired speed and is specified at the input RAO of the μC40.
The controller according to the embodiment thus does not work directly with speeds, but with times that the rotor 108 requires for a certain angle of rotation. The
Hall time tJHALL corresponds to the time it takes for the rotor to rotate 180 ° el. If the rotor 108 is four-pole and rotates at 3000 rpm, then t_HALL = 60 / (3000 × 4) = 0.005 s = 5 ms. (6)
Similarly, at 1000 rpm, this time is tJHALL = 60 / (1000 x 4) = 0.015 s = 15 ms. (7)
At low speeds, the actual value tJHALL becomes very large, eg at 100 rpm
150 ms = 0.15 s and is then considerably larger than the setpoint t_s, eg for 3000
Rpm is 5 ms. For this reason, the control difference RGLJDIFF according to
Step S654 is formed as a difference (tJHALL - t_s) to give a positive result of
Difference formation receives.
At S656, it is checked whether the control difference is greater than a permissible positive maximum value RGL_DIFF_MAX. If this is the case, then in S658 the control difference is set to this positive maximum value. This is especially important at startup, where otherwise the rule difference would be very large.
If the answer is no at S656, the program goes to step S660 and checks there if the control difference is smaller than a maximum permissible negative value -RGLJDIFFJV1AX. If yes, the control difference is set to this negative maximum value in S662. (This applies to the case where the engine is faster than the desired speed.)
Steps S658, S660 or S662 are followed by S664, where the calculation steps of a PI controller are executed. For this purpose, the control difference is multiplied by a proportional factor RGL_P, which can amount to 2, for example, and the proportional component RGL_PROP is obtained.
Likewise, the control difference is multiplied by an integral factor RGLJ, which may be, for example, 0.0625, and then added to the old integral component RGLJNT to obtain a new integral component. Finally, the length BW of a current block 444 or 446 (FIG. 15) is calculated as the sum of the new proportional component and the new integral component.
Proportional factor RGL_P and integral factor RGLJ are determined empirically, depending on the size of the motor and the moment of inertia of the load to be driven.
Since BW may not be longer than the time tJHALL required by the rotor to go through 180 ° el., In the next step S666 it is checked if BW is too large, and if necessary the block length is limited in step S668, eg the current value tJHALL.
If the answer is No in S666, the routine S410 goes to step S670, where it is checked if BW is smaller than 0, which means that the engine is turning too fast. In this case, the value BW is set to 0 in S671, ie no current flows to the motor. At the same time, the integral part RGLJNT is reset to 0 (or a low value). It has been found that by resetting the integral component to a low value, the characteristics of the regulator are substantially improved, especially with regard to overshooting of the set speed.
If the answer is No in S670, the block length is shortened to (BW-ACCEL) in S672, taking the value ACCEL from S648 of FIG. This value contains an acceleration-dependent component and the value A<sup>*</sup> (eg 400 μs), which was explained in Fig. 29. The reason for S672 is that during an acceleration, eg during run-up, the next reverb change occurs earlier than at constant speed, which is why the block length BW must be shortened accordingly during acceleration. The doubling of the value ACCEL in S646 (FIG. 29) also serves to provide enough time for the commutation procedure during startup, because when a motor starts up, the speed increases approximately after an e-function, and this is taken into account in S646.
With the block length BW according to S672, the times t_BLOCK_START AND t_BLOCK_END, which are entered in FIG. 15, are now calculated in S673. There, t_BLOCK_START is the time interval between t1 and t3, and its magnitude is given by Equation (3). The time t_BLOCK_END results according to FIG. 15d by adding the value for BW to t_BLOCK_START. The times t_BLOCK_START and t_BLOCK_END are then required for the calculations in FIG. 25 (routine COMMUT_CTRL), as explained in detail in FIG.
If "pre-ignition" is desired, as explained by equations (3a) and (4a), then in S673 the formula
t_BLOCK_START: = tJHALL + (t_HALL - BW) / 2 - VZ .. (8)
used. In this case, VZ is a constant of, for example, 400 μs, and as shown in FIG. 15d, the beginning of the block 446 is shifted to t3 ', ie the current is switched on and off earlier, in which case t3' can lie before t2. This is made possible in the invention, because as a reference point for the calculation of t_BLOCK_START for the transistors HSL 114 and LSR 136, the rising edge 370 of the signal HALL is used, ie the leading edge, cf. arrows 445 and 447 of FIG. 15.
After S673, the routine S410 ends at S674.
Thus, the routine of Fig. 30 gives a block length BW which becomes smaller the more the actual speed approaches the desired value.
The control of the block length BW interacts with the adaptive controller described below in FIGS. 31 and 32, which further optimizes the value BW via the pulse duty factor pwm. BW should not exceed 95% of tJHALL to allow time for the commutation procedure, and this is accomplished by appropriately modifying the PWM pulses that make up a current block 444 or 446 (Figure 15), ie the average current in a block is increased or decreased by the adaptive controller. If BW is too large, the average current is automatically increased by increasing the duty cycle of these pulses until the block length BW has "shrunk" to a value that allows optimal commutation procedure.
Fig. 31 shows a routine S412 MOD_pwm for modifying the duty ratio pwm depending on operating conditions of the engine. In step S900, it is checked whether the block length BW generated by the controller (Fig. 30) in S672 is <50% of the instantaneous reverberation time tJHALL. This (speed dependent) value of 0.5<sup>*</sup> TJHALL is a lower limit that should not be significantly undercut to keep the engine noise low. Short drive current pulses cause namely an increased structure-borne noise of the engine, which is undesirable, and they also reduce the efficiency.
If the lower limit has been reached, it is checked in S902 whether the duty cycle pwm is at least 10%. (This value should not be significantly below).
If pwm is less than or equal to 10%, the program goes to step S904, where the duty cycle pwmJDUT at output RC2 of μC40 is set to the current value pwm, and then to S906, namely, the end of routine MOD_pwm S412. In this case it is not possible to further reduce pwm.
If pwm is greater than 10%, the program goes to step S908. There, it is checked whether a counter PWM_CNT has the value 0. This counter counts how many times the lower limit, ie 0.5<sup>*</sup> t_HALL is reached or fallen below, and every fifth count causes the duty cycle pwm to be reduced.
For this purpose, the μC has an internal register with 8 bits, ie with values between 1 and 256, and these values specify the duty cycle pwm of the PWM signal output by the μC 40 at its output RC2, which at this μC has a constant frequency of 20 kHz Has. By reducing the value in this internal register, pwm is reduced, and by increasing the value in this register it is increased.
If the counter PWM_CNT has the value 0 in S908, the program goes to step S910, where this counter is set to the value 5. Subsequently, the duty cycle pwm is lowered in S912, cf. Fig. 22, whereby the mean value of the motor current ii, i2 decreases. Then the program goes to S904.
If the counter PWM_CNT is not equal to 0 at S908, the program goes to step S914, where PWM_CNT is counted down by 1, that is, in this case, pwm does not change. If the answer is No in S900, the program goes to step S916. There, it is checked whether the block length BW calculated by the controller RGL is too large, namely greater than or equal to 95% of tJHALL. This is undesirable because the commutation procedure requires approximately 400 μs, which would not be available if BW was too large.
If BW is not too large, the program goes to the already explained step S904, and pwm_OUT remains unchanged.
If BW is too large, the program goes to step S918. There, it is checked whether pwm has already reached 100%, and in this case the program goes directly to S904, since an increase beyond 100% is not possible, ie during the period of BW then flows a continuous stream.
If the duty ratio is smaller than 100% in S918, step S920 is followed, where the counter PWM_CNT is checked to see if it has the value 0. If yes, the counter PWM_CNT is set to 5 at S922. Subsequently, the value pwm is incremented at S924, cf. Fig. 21, so that the mean value of the motor current ii or i2 increases accordingly.
If the answer is No at S920, the program goes to step S926, where PWM_CNT is decremented by 1, and then the routine goes to step S904.
FIG. 32 explains the operations of the flowchart of FIG. 31. In FIG
Abscissa the relative block length b. This is defined as b = BW / tJHALL ... (9)
It thus corresponds to the instantaneous ratio of block length BW to Hall time tJHALL, in percent. The ordinate shows the instantaneous duty cycle pwm, also in percent. Reminder: TJHALL is the time that the rotor 108 needs at the instantaneous speed for a rotation of 180 ° el. the
Equations (6) and (7).
a) The relative block length b becomes too large.
It is assumed that the motor 100 operates at a working point C, namely at a block length BW which is 80% of tJHALL, that is, at b = 80%, and at a duty ratio pwm of 35%.
When the motor is loaded, b increases along the characteristic curve 930 due to the action of the controller RGL, with pwm = 35% remaining unchanged. At 932, the upper limit of b = 95% is exceeded, and at 934 the duty cycle pwm is increased by S924 (Figure 31) so that a higher average current flows, more power is supplied to the motor 100, and its speed increases.
Therefore, the relative block length b is reduced by the speed controller RGL at 936 and returns to the allowable range, but now with an increased pwm. (In Fig. 32, the increase of pwm is exaggerated, and is done only in small steps.)
The counter PWM_CNT prevents any small overshoot of the upper limit 932 from causing an increase in pwm. Empirically, it has been determined that increasing every five times results in a very stable motor running, but this factor may depend on the size of the motor, the type of load, etc. If this factor is too small, the controller tends to oscillate. Values between 3 and 7 appear to be optimal based on current knowledge.
b) The relative block length b becomes too small.
Fig. 32 shows as a second example an operating point D with a relative block length of b = 55% and a pwm of 80%.
When the motor is de-energized, the characteristic follows a straight line 940 which falls below the lower limit 942 (b = 50%) and at 944 results in a relative block length b of approximately 47%. This leads to an increase in engine noise and is unfavorable for the efficiency of the engine.
Therefore, S912 reduces the duty cycle pwm along a vertical straight line 946 (Fig. 32), thereby decreasing the average value of the current supplied to the motor, so that the rotational speed decreases.
For this reason, the speed controller RGL (FIG. 30) calculates a larger block length BW, so that the relative block length b returns to a range above the lower limit value 942 along a straight line 948. In the case of heavy load changes, the processes described can be repeated several times. In principle, the speed controller can set the relative block length b and the duty cycle pwm in the entire range, which is bordered by a dashed line 950 in FIG. 32, ie in this example between a pwm of 10 and 100% and a relative block length b between 50 and 95%. This could also be described as an adaptive controller, which always returns to the area of its optimum efficiency or low engine noise.
Naturally, many modifications and modifications are possible within the scope of the present invention.
Contents2
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8400141B2 | Cited by | United States of America | Applicant |
13 members in 7 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 20022114 | Germany | U | |
| 20022114 | Germany | U | |
| 20022114U | Germany | – | |
| 0115184 | European Patent Office (EPO) | W | |
| 0115184 | European Patent Office (EPO) | W | |
| 20022114U | – | – | – |
| DE2000222114U | – | – | – |
| EP0115184 | – | – | – |
| WO2001EP15184 | – | – | – |
Members13
| Document | Office | Kind | |
|---|---|---|---|
| DE20022114U1 | Germany | U1 | |
| WO02054567A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2002240862A1 | Australia | A1 | |
| WO02054567A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1350293A2This record | European Patent Office (EPO) | A2 | |
| US2004051489A1 | United States of America | A1 | |
| US6906486B2 | United States of America | B2 | |
| EP1350293B1 | European Patent Office (EPO) | B1 | |
| AT306136T | Austria | T | |
| ATE306136T1 | Austria | T1 | |
| DE20122518U1 | Germany | U1 | |
| DE50107640D1 | Germany | D1 | |
| ES2246348T3 | Spain | T3 |
76 legal events, as 8 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Announcement of lapse in spainLapsedFD2A | FD2A | ES | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Patent abandoned for deAbandonedR231 | R231 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Declaration of willingness to licenceR084 | R084 | DE | |
| Fee paymentPLFP | PLFP | FR | |
| Be: lapsedLapsedBERE | BERE | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| European patents designating ireland treated as always having been voidFD4D | FD4D | IE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Definitive protectionFG2A | FG2A | ES | |
| Corresponds to:REF | REF | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Translation of granted ep patentGrantedTRGR | TRGR | SE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: translation of ep patent filed (gb section 77(6)(a)/1977)GBT | GBT | EP | |
| European patents granted designating irelandGrantedLANGUAGE OF EP DOCUMENT: GERMANFG4D | FG4D | IE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedNOT ENGLISHFG4D | FG4D | GB | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1350293
- Publication, DOCDB
- 1350293
- Publication, EPODOC
- EP1350293
- Application
- 1988055
- Application, DOCDB
- 01988055
- Application, EPODOC
- EP20010988055
Titles3
- German
- ELEKTRONISCH KOMMUTIERTER MOTOR
- English
- ELECTRONICALLY COMMUTATED MOTOR
- French
- MOTEUR A COMMUTATION ELECTRONIQUE
Classification
- CPC, 3
- H02P6/085
- H02P6/14
- H02P2209/07
- IPC, 2
- H02P6 08
- H02P6 14
Designated states26
- Contracting states, 20
- Austria
- Belgium
- Switzerland
- Cyprus
- Germany
- Denmark
- Spain
- Finland
- France
- United Kingdom
- Greece
- Ireland
- Italy
- Liechtenstein
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Portugal
- Sweden
- Türkiye
- Extension states, 6
- Albania
- Lithuania
- Latvia
- North Macedonia
- Romania
- Slovenia