WO2003012971A1 - Verfahren zum bestimmen eines numerischen wertes für die zeitliche dauer eines sich periodisch wiederholenden impulsförmigen signals, und vorrichtung zur durchführung eines solchen verfahrens - Google Patents

Verfahren zum bestimmen eines numerischen wertes für die zeitliche dauer eines sich periodisch wiederholenden impulsförmigen signals, und vorrichtung zur durchführung eines solchen verfahrens Download PDF

Info

Publication number
WO2003012971A1
WO2003012971A1 PCT/EP2002/007204 EP0207204W WO03012971A1 WO 2003012971 A1 WO2003012971 A1 WO 2003012971A1 EP 0207204 W EP0207204 W EP 0207204W WO 03012971 A1 WO03012971 A1 WO 03012971A1
Authority
WO
WIPO (PCT)
Prior art keywords
pulse
duration
signal
period
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/EP2002/007204
Other languages
English (en)
French (fr)
Inventor
Arnold Kuner
Hans-Dieter Schondelmaier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ebm Papst St Georgen GmbH and Co KG
Original Assignee
Papst Motoren GmbH and Co KG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Papst Motoren GmbH and Co KG filed Critical Papst Motoren GmbH and Co KG
Priority to EP02760206A priority Critical patent/EP1413045B1/de
Priority to DE50212540T priority patent/DE50212540D1/de
Priority to US10/483,363 priority patent/US7068191B2/en
Publication of WO2003012971A1 publication Critical patent/WO2003012971A1/de
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P3/00Measuring linear or angular speed; Measuring differences of linear or angular speeds
    • G01P3/42Devices characterised by the use of electric or magnetic means
    • G01P3/44Devices characterised by the use of electric or magnetic means for measuring angular speed
    • G01P3/48Devices characterised by the use of electric or magnetic means for measuring angular speed by measuring frequency of generated current or voltage
    • G01P3/481Devices characterised by the use of electric or magnetic means for measuring angular speed by measuring frequency of generated current or voltage of pulse signals
    • G01P3/489Digital circuits therefor
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P6/00Arrangements for controlling synchronous motors or other dynamo-electric motors using electronic commutation dependent on the rotor position; Electronic commutators therefor
    • H02P6/14Electronic commutators
    • H02P6/16Circuit arrangements for detecting position
    • H02P6/17Circuit arrangements for detecting position and for generating speed information

Definitions

  • the invention relates to a method for determining a numerical value for the duration of a periodically repeating pulse-shaped signal, and a device for carrying out such a method.
  • a speed controller When controlling the speed of electric motors, a speed controller is usually given a so-called setpoint signal (rated speed signal), i.e. the speed controller is commanded by a suitable signal that the motor e.g. at 32246, or at 1100.5 rpm.
  • setpoint signal rated speed signal
  • This setpoint signal can e.g. be a voltage between 0 and 5 V, or a frequency, or the ratio of signal duration to period duration, also called duty cycle, in the case of a periodically recurring signal, as shown at 68 in FIG. 5.
  • a signal then has a certain frequency, which will usually be somewhere between 2000 and 5000 Hz, and the size of the duty cycle, which can be between 0% and 100%, tells the speed controller at what speed the motor is currently running should be, for example a duty cycle of 0% can mean the motor is at a standstill and 100% can mean high speed.
  • Microprocessors ( ⁇ P) or microcontrollers ( ⁇ C) are often used for the control and regulation of such motors, the term microprocessor ( ⁇ P) being used in the claims as a generic term for both.
  • ⁇ P microprocessor
  • Such a ⁇ P usually controls the commutation of the motor, if this is an electronically commutated motor (ECM), and it is also used to regulate the speed and, if necessary, to perform other functions.
  • ECM electronically commutated motor
  • Such a ⁇ P needs a numerical value for its controller as a setpoint, for example "37" or "214", ie in the case of a signal of the type described at the outset, the ratio of signal duration to period duration, or the ratio of signal pause to period duration, must be converted into a suitable numerical value Size implemented be in the range of 0 ... 255 or 0 ... 1023, for example. This presupposes that both the period and the signal duration are recorded as precisely as possible, insofar as this is possible with a cheap ⁇ P, such as is used in engines for reasons of cost.
  • this object is achieved by the subject matter of patent claim 1.
  • determining the period and the characteristic size at intervals these values can be determined sequentially and then processed further. This enables the measurement to be split up into relatively short routines that can be processed at suitable times, preferably at specific rotational positions of the rotor of a motor.
  • the type of measurement depends on a previously determined numerical value for the duty cycle of the signal. This allows the measurement to be optimized.
  • a particularly advantageous embodiment of such an optimized measurement is the subject of claims 3 and 4. It is possible to measure the pulse duration as long as a pulse is long in relation to the period and to measure the pause duration between two pulses as long as the pulse duration is short and consequently the length of the pause is long in relation to the period.
  • a particularly advantageous embodiment is the subject of claim 5, since a switching hysteresis is obtained here, so that there is no frequent switching between the different measurement types, which could reduce the measurement accuracy.
  • 1 is an overview circuit diagram for an electronically commutated motor 30, to which a periodic pulse train 68 is supplied from the outside, the pulse duty factor of which contains information for the operation of the motor,
  • FIG. 2 is a schematic diagram showing interactions in an engine according to FIG. 1,
  • FIGS. 1 and 2 show an overview of a preferred program sequence for the motor according to FIGS. 1 and 2,
  • Fig. 4 is a schematic representation showing which processes in the
  • FIG. 5 shows an illustration of a first pulse sequence with periodically recurring pulses of period T and a pulse duty factor of approximately 33%
  • FIG. 6 shows an illustration analogous to FIG. 5 with the same period T, but with very short pulses and a pulse duty factor of approximately 5%
  • FIG. 7 is an illustration analogous to FIGS. 5 and 6 with the same period T, but with very long pulses and a pulse duty factor of approximately 93%,
  • 9 is an illustration in which the signal is constantly low and consequently has a duty cycle of 0%
  • 10 is a diagram for explaining the interrupts that normally occur when measuring a pulse 69
  • 11 is a diagram for explaining the case that a pulse is so short that only an interrupt is possible at the beginning of the pulse, but not at the end of the pulse,
  • FIG. 12 is a diagram for explaining the case that a pulse pause is so short that only an interrupt is possible at the beginning, but not at the end,
  • 16 is a diagram showing basic processes that are registered and controlled by the state machine
  • 17 is a diagram which shows how the various states of the state machine are run through in the normal case
  • 19 shows the flowchart of a measurement routine Meas. Signal which serves to determine the duration of pulse-shaped signals or signal pauses, and 20 shows the flowchart of a routine EVAL, which serves to evaluate the data recorded in the routine according to FIG. 19.
  • ECM electronically commutated motor
  • stator winding phases 32, 34 and a permanent magnetic rotor 36 which is shown here in four poles and in the vicinity of which a Hall generator 38 is arranged, which is in operation at its output 40 generates a rectangular signal HALL, the edges of which are designated by way of example with 1, 2, 3, 4.
  • the motor 30 has an EMI filter 42 and a filter capacitor 44.
  • a transistor 46 which serves as the first output stage (PS1)
  • a transistor 48 which serves as a second output stage (PS2). If transistor 46 is switched on, strand 32 receives current. If transistor 48 is switched on, strand 34 receives current.
  • a microcontroller ( ⁇ C) 54 is used to control the transistors 46, 48.
  • Various modules are shown symbolically in this, including a module 56 for commutation, a ROM 62 (inside or outside the ⁇ C 54) for storing the program for the motor 30, a module n_CTL 64 for the speed control, which regulates the speed of the motor 30 via the module 56, and also a module SW_CALC 60 for calculating the setpoint SW, which is fed to the controller 64.
  • the current value of the speed is fed to the controller 64 in the form of the signal HALL, as are the modules 56 and 64.
  • the // C 54 contains a timer 66, which can be thought of as a clock, which is a so-called clock at any time Base time delivers. This works together with modules 60 and 64.
  • a setpoint is supplied to the ⁇ C 54 from the outside at an input 67 as a periodic pulse train 68, and the information about the desired speed (SW) is contained in the pulse duty factor 68. This is explained in detail below.
  • the ⁇ C 54 must have two Process different pulse trains, namely the pulse train HALL on the one hand, and the pulse train 68 on the other. Since the pulse train HALL is critical for the running of the engine, its processing usually has priority over the processing of the pulse train 68, but the processing of the pulse train 68 may be certain critical points are not interrupted, and then the pulse train 68 takes priority.
  • Fig. 2 shows how the individual functions interlock in such a motor.
  • the pulse train 68 is supplied and processed in the module 60 so that the value SW is obtained.
  • the signals ON / OFF for switching on or switching off the motor 30 are supplied, and these also run via the module 60.
  • the operating voltage UB is supplied and this can e.g. be taken into account in such a way that the motor is switched off if the operating voltage is too low, or that certain changes are made in the program if the operating voltage is too high.
  • the Hall IC 38 which generates the HALL signal, is shown at 38 and is processed in a processing module 76 and provides information about the current position and speed of the rotor 36.
  • the commutation module 56 is provided, which controls the two output stages PS1, PS2 in the motor 30.
  • FIG. 2 shows that there are interactions between the individual modules, which may have to be taken into account when designing the program, provided that it is used in an ECM.
  • step S84 Power On Initialization
  • step S86 reset watchdog
  • step S88 reset certain values are reinitialized with each run in order to avoid a crash of the ⁇ C 54.
  • step S90 combination control
  • step S92 Flag_DoFcts
  • step S98 HalLCNT "even”?
  • step S104 flag_actual_record?
  • step S106 setpoint acquisition
  • step S106 setpoint acquisition
  • the diagram shows that the calculation of the setpoint is distributed over steps S100 and S106, because in this case the calculation of the setpoint takes quite a lot of time and would not be compatible with the other function of the engine without this division.
  • Fig. 4 shows an overview of the sequence of the program steps in the motor 30 depending on the rotational position of the rotor 36.
  • An electric motor which is controlled by a ⁇ C 54, can have many additional functions, depending on its use, e.g. a speed control, a speed limitation, a current limitation, a control to constant current, arrangements for the output of alarm signals, error handling routines, etc.
  • the speed of the motor 30 is raised regulates a setpoint, for example to 3000 rpm. For this reason, this setpoint for the control program must be updated at relatively short intervals.
  • FIG. 4a shows the course of the HALL signal
  • FIG. 4b shows symbolically which loops are run through by the program.
  • FIG. 4 shows that, for example, a long loop 124 is executed directly after a rising edge 120 of the HALL signal, in which, according to legend 134, the setpoint value (SW) for regulating the speed is calculated and the commutation is also checked.
  • the large loop 124 is followed by many short loops 130 in which, according to legend 136, only the commutation is checked and, if necessary, changed.
  • a falling edge 122 of the HALL signal is followed by a long loop 126, in which the following calculation steps are carried out according to legend 138:
  • This long loop 126 is followed again by the short loops 130 for monitoring and controlling the commutation.
  • a long loop 124 of the type already described follows again.
  • certain values are determined in the region of the Hall edges 120, 122, that is to say at certain rotor positions, so that e.g. in the case of a four-pole rotor 36, a setpoint calculation and twice an actual value calculation take place in the course of a full revolution.
  • the counter HALL_CNT has an odd result in step S98
  • either loop 126 or loop 128 can be run through, depending on whether the flag there was set to 1 during the previous run in step S112 has been. In this way, the computing operations are distributed over time, and the distribution is controlled, among other things, by the position of the rotor 36.
  • FIG. 5 shows an enlarged representation of the signal 68 of FIG. 1, by means of which the desired speed is communicated to the controller n_CTL 64.
  • T t + t '... (1)
  • FIG. 6 shows that the pulses 69 can become very short, which results in long pulse pauses 70
  • the signal 68 can also always have the value HIGH, which corresponds to a duty cycle of 100%, and conversely, the signal 68 according to FIG. 9 can also continuously have the value LOW, corresponding to a duty cycle of 0%.
  • the value t is measured according to the present invention in addition to T, ie the length of the pulses 69, which in this case is not much smaller than T.
  • the pulses 69 are very short and therefore difficult to measure because the measurement of the pulses takes place in that by means of the timer 66 (Fig. 1) the moment of the rising edge and by a pulse with a first interrupt second interrupt, the time of the falling edge of pulse 69 is measured and the difference between these two times is determined. Since each interrupt takes a certain time, e.g. 30 ⁇ s, this is difficult if the pulse duration t is very short and the measurement then becomes very imprecise or even impossible.
  • a flagPM pulse measurement
  • the difference between 46 and 51% causes hysteresis, i.e. at a ratio t / T of 50%, either the pulse duration or the duration of the pulse pause is measured, and the type of measurement only changes when the value either exceeds 51% or falls below 46%.
  • the numbers 46 and 51 are only examples given for a better understanding of the invention.
  • FIG. 10 and 11 illustrate a problem that occurs when measuring pulses.
  • Fig. 10 shows a pulse 69. This has a rising edge 144, and temporally before this edge, when measuring the pulse duration t, the sensitivity of the input 67 (FIG. 1) of the ⁇ C 54 is set such that there the rising edge of a signal triggers an interrupt 146 which leads to a measurement of the time toi in the TIMER 66.
  • An interrupt consists of a plurality of instructions, and such an interrupt routine requires a certain amount of time to be processed, e.g. ends at time tc> 2. It lasts e.g. between 60 and 100 ⁇ s.
  • Fig. 11 shows the analog situation with a very short pulse 69 ', which is shorter than the interrupt routine 146, i.e. e.g. only 30 ⁇ s.
  • the sensitivity of the input 67 is set before the rising edge 144 so that an interrupt 146 is triggered at the edge 144 and the time toi is measured.
  • input 67 is queried at the end of interrupt routine 146, that is to say at time t02, and it is determined that this input is the input
  • Pulse pause t 1 must be switched, ie it is set here
  • FIG. 12 shows the case analogous to FIG. 11 of measuring a very short pulse pause 70, the duration t 'of which is shorter than that of the interrupt routine.
  • the sensitivity of input 67 is set so that falling edge 152, at the beginning of pulse pause 70, triggers an interrupt 154 that lasts longer than pulse pause 70.
  • Fig. 13 shows a so-called state machine, which in the present embodiment is used.
  • This is a variable, namely a register in the RAM of the ⁇ C 54, which can take the values 1 to 8 here. Depending on the routine that is currently being executed, this register has different values that can be queried in the program.
  • the individual states of FIG. 13 have the following meaning:
  • State 8 "Error”. This means a detection error in the detection of the pulse duration, as described in FIG. 11, or a detection error in the detection of the pause duration, as described in FIG. 12, ie only one of the two interrupts that belong to a measurement, could be recorded.
  • routine S160 digital PWM acquisition.
  • S162 wait for start edge period "1"
  • the program is in state 1 and waits for the start edge for measuring the period T, that is, edge 144 in FIG. 5.
  • the program then goes to S172 (wait for pulse width end "4"), that is to say state 4, and there the edge 148 (FIG. 10) is waited for, ie the end of impulse 69.
  • the program then goes to S174 (pulse width successfully acquired "6"), i.e. to state 6, i.e. the pulse width t was successfully recorded.
  • the program goes to state 2 in S176 (wait for start edge pause "2"), i.e. the start edge 152 (FIG. 12) is expected.
  • the program then goes to state 4 in S178 (wait for end of pause "4") and there the end of the pulse pause is waited, e.g. 5 the flank 156.
  • the program then goes to state 6 in S180 (pause duration successfully recorded "6"), i.e. the pause time t 'was successfully recorded.
  • step S184 Following the detection of the pulse width t (S174) or the pause duration f (S180), the program goes to S182 (calculations: duty cycle etc.), where the necessary calculations are carried out, e.g. the calculation of the value t / T, which is referred to as the duty cycle of the signal 68, or the frequency of the signal 68 at the input 67. Return then follows in step S184.
  • the state machine according to FIGS. 13 and 14 is constructed such that the period T is first recorded in states 1, 3 and 5, then either the pulse duration t or the pause duration f in states 2, 4 and 6, and then in S182 the various calculations are carried out.
  • the setpoint module as shown in principle in FIG. 14, is therefore called in FIG. 3 at S100 and S106, and it has to be called three times in total until a new valid setpoint is available. This is done so that the computing time of this module, which is quite large, is divided into smaller, handy portions that do not interfere with the commutation of the motor 30. If no consideration has to be given to the commutation of a motor, such a subdivision is of course not necessary.
  • states 1-3-5 AND are only processed after processing States 2-4-6 complete data collection.
  • the state machine (FIG. 13) is in state 1 or 2, the data acquisition has not yet been completed and a recording function must be carried out.
  • Steps S160 to S184 are identical to FIG. 14 and are given the same name as there and are not described again.
  • interrupt 156 of FIG. 5 If the interrupt for the end of period T (interrupt 156 of FIG. 5) does not come at all or comes too late in S164 (wait for period end "3"), the program goes to S188 (detection error, 2nd interrupt missing or too late). 8 "), that is to state 8. The measurement is rejected and the program starts a new measurement in state 1 at S162 (wait for start edge period" 1 ").
  • step S196 the program goes to step S200, where a query is made as to whether a state greater than 2 is present. State 1 or 2 means that at least one of the measurements still has to be started, and consequently the measurement of signal 68 has not yet been completed, and if the answer is no, the measurement of is therefore performed in module S202 (FIG. 19) Signal performed. If, on the other hand, the answer in S200 is yes, this means that no further measurement has to be started, and the measured data is evaluated in the subsequent module S204 EVAL (FIG. 20). Step S206 Return follows the modules S202 or S204.
  • FIG. 17 shows the course of the measurement of the target value, as it results from the program of FIG. 16.
  • the answer S200 in FIG. 16 results in the answer yes (Y), and the evaluation (EVAL) of the data in module S204 (FIG. 20) follows.
  • the calculation of the setpoint can be spread over several rotary positions.
  • the left branch S202 (measurement of the signal) is run through twice during each normal cycle, and the right branch S204 (EVAL) only once.
  • the ⁇ C 54 set so that it responds to a rising signal edge (eg 144 in Fig. 5) at its input 67 with an interrupt.
  • a flag for the interrupt is then cleared in S214, and the current value of timer 66 is copied into a 16-bit variable PWM_End in S216.
  • FlagPM 0 (pause measurement) in S232, it is checked in step S244 whether the pause has already ended. This is shown in Fig. 12, where at the end of interrupt 154 at time tos signal 68 is already high again, i.e. the second interrupt was missed.
  • a pulse measurement follows, the previously set sensitivity (rising edge) is kept unchanged, and the program, as in S264 and S268, goes to S272, where a Timeout variable is set to a specified value, here 150. This variable is then decremented in a waiting loop.
  • An interrupt is then temporarily blocked by the signal HALL (FIG. 1) at S274, since no change in the signal HALL is to be expected during the routine according to FIG. 19.
  • the interrupt at input 67 is prepared and activated, and then the program goes into the previously mentioned waiting loop and waits for the interrupts to arrive.
  • the interrupt routine S210 which has already been described in FIG. 18, is used for this purpose and is triggered by the signal edge which was set in S212, S264 or S268.
  • step S280 it is checked in S280 whether the described timeout time of e.g. 1.5 ms has not yet expired. If it has not yet expired, the program goes to step S282 (decrement timeout), where the variable timeout is decremented with each pass.
  • input 67 (FIG. 1) is initially blocked for interrupts in S290.
  • S292 It is then checked in S292 whether SM has one of the values 3, 4, 5 or 6, which are explained in FIG. 13.
  • NewPVal PWM_End - PWM_Start from the values PWM_End and PWM_Start that were saved during the two interrupt routines ... (3)
  • step S330 NorPVal is compared with the value 120, and in step S338 with the value 132. This causes a switching hysteresis, ie with a Duty cycle between 46 and 51%, both types of measurements can take place, pulse or pause.
  • the present invention can also be used to read numbers from 0 to 255 encoded in a pulse train.
  • the calculation of the setpoint is preferably carried out in such a way that it is distributed over several rotational positions of the motor. The reason is that this calculation takes a lot of time and could therefore interfere with other processes in the motor, especially the commutation, provided that the calculation was carried out “in one piece”.
  • the fact that the measurement method is automatically switched to pulse measurement or pause measurement results in higher accuracy and higher frequencies can be measured.
  • the automatic error detection makes it possible to separate out incorrect measurement results and, in the cases described there, to quickly switch over to a better measurement method, as described in FIG. 18, in order to then quickly obtain a new, better setpoint to obtain.

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Control Of Stepping Motors (AREA)
  • Control Of Direct Current Motors (AREA)
  • Control Of Motors That Do Not Use Commutators (AREA)
  • Control Of Electric Motors In General (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

Es geht um ein Verfahren zum Bestimmen eines numerischen Wertes für die zeitliche Dauer eines sich periodisch wiederholenden impulsförmigen Signals. Dieses Verfahren weist folgende Schritte auf: a) In zeitlichen Abständen wird die Periodendauer des Signals bestimmt. b) In zeitlichen Abständen wird eine charakteristische Grösse für die Dauer eines Impulses dieses Signals bestimmt. c) Aus der Periodendauer und der charakteristischen Grösse wird ein numerischer Wert ermittelt, welcher das Signal charakterisiert. Wegen seiner Kürze und Genauigkeit eignet sich das Verfahren besonders für die Verwendung in Elektromotoren. Eine entsprechende Anordnung wird ebenfalls gezeigt und beschrieben.

Description

Verfahren zum Bestimmen eines numerischen Wertes für die zeitliche Dauer eines sich periodisch wiederholenden impulsförmigen Signals, und Vorrichtung zur Durchführung eines solchen Verfahrens
Die Erfindung betrifft ein Verfahren zum Bestimmen eines numerischen Wertes für die zeitliche Dauer eines sich periodisch wiederholenden impulsförmigen Signals, und eine Vorrichtung zur Durchführung eines solchen Verfahrens.
Bei der Steuerung der Drehzahl von Elektromotoren wird gewöhnlich einem Drehzahlregler ein sogenanntes Sollwertsignal (rated speed signal) vorgegeben, d.h. dem Drehzahlregler wird durch ein geeignetes Signal befohlen, dass der Motor z.B. mit 32246, oder mit 1100,5 U/min, laufen soll.
Dieses Sollwertsignal kann z.B. eine Spannung zwischen 0 und 5 V sein, oder eine Frequenz, oder das Verhältnis von Signaldauer zu Periodendauer, auch Tastverhältnis genannt, bei einem periodisch wiederkehrenden Signal, wie es in Fig. 5 bei 68 dargestellt ist. Ein solches Signal hat dann eine bestimmte Frequenz, die gewöhnlich irgendwo zwischen 2000 und 5000 Hz liegen wird, und durch die Größe des Tastverhältnisses, das zwischen 0 % und 100 % liegen kann, wird dem Drehzahlregler angegeben, mit welcher Drehzahl der Motor im Augenblick laufen soll, wobei z.B. ein Tastverhältnis von 0 % den Stillstand des Motors und von 100 % eine hohe Drehzahl bedeuten kann.
Für die Steuerung und Regelung solcher Motoren werden häufig Mikroprozessoren (μP) oder Mikrocontroller (μC) verwendet, wobei in den Ansprüchen als generischer Begriff für beides der Begriff Mikroprozessor (μP) verwendet wird. Ein solcher μP steuert gewöhnlich die Kommutierung des Motors, sofern das ein elektronisch kommutierter Motor (ECM) ist, und er dient auch zur Regelung der Drehzahl und ggf. zur Ausführung weiterer Funktionen.
Ein solcher μP braucht für seinen Regler als Sollwert einen numerischen Wert, z.B. "37" oder "214", d.h. bei einem Signal der eingangs beschriebenen Art muss das Verhältnis von Signaldauer zu Periodendauer, oder das Verhältnis von Signalpause zu Periodendauer, in eine geeignete numerische Größe umgesetzt werden, die z.B. im Zahlenbereich 0...255 oder 0...1023 liegt. Das setzt voraus, dass sowohl die Periodendauer wie die Signaldauer möglichst genau erfasst werden, soweit das mit einem billigen μP möglich ist, wie er bei Motoren aus Kostengründen verwendet wird.
Es ist deshalb eine Aufgabe der Erfindung, ein neues Verfahren zum Bestimmen eines numerischen Wertes für die zeitliche Dauer eines sich periodisch wiederholenden impulsförmigen Signals, sowie eine Vorrichtung zur Durchführung eines solchen Verfahrens, bereit zu stellen.
Nach der Erfindung wird diese Aufgabe gelöst durch den Gegenstand des Patentanspruchs 1. Dadurch, dass man die Periodendauer und die charakteristische Größe in zeitlichen Abständen ermittelt, kann man diese Werte sequentiell ermitteln und anschließend weiterverarbeiten. Dies ermöglicht die Aufspaltung der Messung in relativ kurze Routinen, die zu geeigneten Zeitpunkten abgearbeitet werden können, bevorzugt an bestimmten Drehstellungen des Rotors eines Motors.
Dabei geht man mit besonderem Vorteil gemäß Anspruch 2 vor, d.h. die Art der Messung erfolgt abhängig von einem zuvor bestimmten numerischen Wert für das Tastverhältnis des Signals. Dies gestattet eine Optimierung der Messung.
Eine besonders vorteilhafte Ausgestaltung einer solchen optimierten Messung ist Gegenstand der Ansprüche 3 und 4. Man kann so eine Messung der Impulsdauer vornehmen, solange ein Impuls lang im Verhältnis zur Periodendauer ist, und man kann eine Messung der Pausendauer zwischen zwei Impulsen vornehmen, solange die Impulsdauer kurz und folglich die Pausendauer lang in Relation zur Periodendauer ist.
Eine besonders vorteilhafte Ausgestaltung ist Gegenstand des Patentanspruchs 5, da man hier eine Schalthysterese erhält, so dass kein häufiges Umschalten zwischen den verschiedenen Messarten erfolgt, was die Messgenauigkeit reduzieren könnte.
Eine weitere Lösung der gestellten Aufgabe ist Gegenstand der Patentansprüche 13 und 14. Dies ergibt sehr einfache und schnell arbeitende Lösungen.
Weitere Einzelheiten und vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den im folgenden beschriebenen und in der Zeichnung dargestellten, in keiner Weise als Einschränkung der Erfindung zu verstehenden Ausführungsbeispielen, sowie aus den übrigen Unteransprüchen. Es zeigt:
Fig. 1 ein Übersichts-Schaltbild für einen elektronisch kommutierten Motor 30, dem von außen eine periodische Impulsfolge 68 zugeführt wird, deren Tastverhältnis eine Information für den Betrieb des Motors enthält,
Fig. 2 ein Schemabild, welches Interaktionen in einem Motor gemäß Fig. 1 zeigt,
Fig. 3 die Übersichtsdarstellung eines bevorzugten Programmablaufs bei dem Motor nach Fig. 1 und 2,
Fig. 4 eine schematische Darstellung, welche zeigt, welche Abläufe beim
Motor nach Fig. 1 abhängig von der Drehstellung des Rotors ablaufen,
Fig. 5 eine Darstellung einer ersten Impulsfolge mit periodisch wiederkehrenden Impulsen der Periodendauer T, und einem Tastverhältnis von ca. 33 %,
Fig. 6 eine Darstellung analog Fig. 5 mit derselben Periodendauer T, aber sehr kurzen Impulsen und einem Tastverhältnis von ca. 5 %,
Fig. 7 eine Darstellung analog Fig. 5 und 6 mit derselben Periodendauer T, aber mit sehr langen Impulsen und einem Tastverhältnis von etwa 93 %,
Fig. 8 eine Darstellung, bei welcher das Signal ständig hoch ist und folglich ein Tastverhältnis von 100 % hat,
Fig. 9 eine Darstellung, bei welcher das Signal ständig niedrig ist und folglich ein Tastverhältnis von 0 % hat, Fig. 10 ein Schaubild zur Erläuterung der Interrupts, die bei der Vermessung eines Impulses 69 im Normalfall auftreten,
Fig. 11 ein Schaubild zur Erläuterung des Falles, dass ein Impuls so kurz ist, dass nur ein Interrupt am Impulsbeginn möglich ist, nicht aber am Impulsende,
Fig. 12 ein Schaubild zur Erläuterung des Falles, dass eine Impulspause so kurz ist, dass nur ein Interrupt an ihrem Beginn möglich ist, nicht aber an ihrem Ende,
Fig. 13 die Darstellung einer bei der Erfindung in bevorzugter Weise verwendeten Zustandsmaschine,
Fig. 14 eine Darstellung der grundlegenden Abläufe bei der Vermessung und Auswertung von Impulsen,
Fig. 15 eine erweiterte Fassung von Fig. 14, welche die Auswertung von Sonderfällen (PWM = 0 % oder 100 %) und die Behandlung von Fehlern zeigt,
Fig. 16 ein Schaubild, welches grundlegende Abläufe zeigt, die von der Zustandsmaschine registriert und gesteuert werden,
Fig. 17 ein Schaubild, welches zeigt, wie im Normalfall die verschiedenen Zustände der Zustandsmaschine durchlaufen werden,
Fig. 18 das Flussdiagramm einer Interruptroutine, welche durch eine einstellbare Flanke eines Signals ausgelöst wird,
Fig. 19 das Flussdiagramm einer Messroutine Meas. Signal, welche dazu dient, die zeitliche Dauer von impulsförmigen Signalen oder Signalpausen zu bestimmen, und Fig. 20 das Flussdiagramm einer Routine EVAL, welche dazu dient, die in der Routine nach Fig. 19 erfassten Daten auszuwerten.
Fig. 1 zeigt zur Veranschaulichung der Erfindung einen elektronisch kommutierten Motor (ECM) 30 mit zwei Statorwicklungsphasen 32, 34 und einem permanentmagnetischen Rotor 36, der hier vierpolig dargestellt ist und in dessen Nähe ein Hallgenerator 38 angeordnet ist, der im Betrieb an seinem Ausgang 40 ein rechteckförmiges Signal HALL erzeugt, dessen Flanken beispielhaft mit 1 , 2, 3, 4 bezeichnet sind.
Zur Versorgung mit einer Gleichspannung ÜB hat der Motor 30 ein EMI-Filter 42 und einen Siebkondensator 44. In Reihe mit dem Strang 32 liegt ein Transistor 46, der als erste Endstufe (PS1) dient, und in Reihe mit dem Strang 34 liegt ein Transistor 48, der als zweite Endstufe (PS2) dient. Ist der Transistor 46 eingeschaltet, so erhält der Strang 32 Strom. Ist der Transistor 48 eingeschaltet, so erhält der Strang 34 Strom.
Zur Steuerung der Transistoren 46, 48 dient ein Mikrocontroller (μC) 54. In diesem sind symbolisch verschiedene Module dargestellt, u.a. ein Modul 56 für die Kommutierung, ein ROM 62 (innerhalb oder außerhalb des μC 54) zur Speicherung des Programms für den Motor 30, ein Modul n_CTL 64 für die Drehzahlregelung, das über das Modul 56 die Drehzahl des Motors 30 regelt, ferner ein Modul SW_CALC 60 für die Berechnung des Sollwerts SW, der dem Regler 64 zugeführt wird. Der aktuelle Wert der Drehzahl wird dem Regler 64 in Gestalt des Signals HALL zugeführt, ebenso den Modulen 56 und 64. Ferner enthält der//C 54 einen Timer 66, den man sich als eine Uhr vorstellen kann, welche zu jedem gewünschten Zeitpunkt eine sogenannte Basiszeit liefert. Dieser arbeitet mit den Modulen 60 und 64 zusammen.
Gemäß Fig. 1 wird ein Sollwert dem μC 54 von außen an einem Eingang 67 als periodische Impulsfolge 68 zugeführt, und die Information über die gewünschte Drehzahl (SW) ist im Tastverhältnis der Impulse 68 enthalten. Dies wird nachfolgend ausführlich erläutert.
Wie sich aus der Darstellung gemäß Fig. 1 ergibt, muss der μC 54 zwei verschiedene Impulsfolgen verarbeiten, nämlich einmal die Impulsfolge HALL, und zum anderen die Impulsfolge 68. Da die Impulsfolge HALL für den Lauf des Motors kritisch ist, hat ihre Verarbeitung gewöhnlich Vorrang vor der Verarbeitung der Impulsfolge 68, doch darf die Verarbeitung der Impulsfolge 68 an gewissen kritischen Stellen nicht unterbrochen werden, und dann erhält die Impulsfolge 68 Vorrang.
Fig. 2 zeigt, wie bei einem solchen Motor die einzelnen Funktionen ineinander greifen. Bei 68 wird die Impulsfolge 68 zugeführt und in dem Modul 60 verarbeitet, so dass man den Wert SW erhält. Bei 72 werden die Signale ON/OFF für das Einschalten oder Ausschalten des Motors 30 zugeführt, und diese laufen ebenfalls über das Modul 60. Bei 74 wird die Betriebsspannung ÜB zugeführt, und diese kann z.B. in der Weise berücksichtigt werden, dass bei zu niedriger Betriebsspannung der Motor abgeschaltet wird, oder dass bei zu hoher Betriebsspannung bestimmte Veränderungen im Programm vorgenommen werden. Bei 38 ist der Hall-IC 38 dargestellt, der das Signal HALL erzeugt, und dieses wird in einem Verarbeitungsmodul 76 verarbeitet und liefert Informationen über die augenblickliche Stellung und Drehzahl des Rotors 36.
Schließlich ist das Kommutierungsmodul 56 vorgesehen, welches die beiden Endstufen PS1 , PS2 im Motor 30 steuert.
Fig. 2 zeigt, dass zwischen den einzelnen Modulen Interaktionen bestehen, die ggf. bei der Ausformung des Programms berücksichtigt werden müssen, sofern dieses in einem ECM verwendet wird.
Fig. 3 zeigt einen typischen Grundaufbau des Programms, wie es zur Steuerung der diversen Funktionen des Motors 30 verwendet wird. Im Schritt S84 (Power On Initialisierung) erfolgt eine Initialisierung beim Einschalten, bei der verschiedene Parameter auf Eingangswerte gesetzt werden. Im Schritt S86 (Watchdog zurücksetzen) wird der Watchdog des Rechners zurückgesetzt, und im Schritt S88 (Reinitialisierung) erfolgt bei jedem Durchlauf eine Reinitialisierung bestimmter Werte, um einen Absturz des μC 54 zu vermeiden. Bei S90 (Kommutierungssteuerung) wird die Kommutierung gesteuert, und im Schritt S92 (Flag_DoFcts ?) wird ein Flag abgefragt, und wenn dieses den Wert 0 hat, geht das Programm zurück zu S86. Wenn es den Wert 1 hat, wird dieses Flag im Schritt S94 (Flag_DoFcts = 0) auf 0 gesetzt. Im anschließenden Schritt S98 (HalLCNT "gerade" ?) wird abgefragt, ob der Hallzähler gerade oder ungerade ist. Hierzu wird auf die Darstellung des Signals HALL in Fig. 1 Bezug genommen. Wie dort dargestellt, wird bei jeder Änderung dieses Signals ein Zähler um einen Wert weitergezählt, also z.B. in der Folge 1-2-3-4-1-2-3-4, und wenn der Zähler einen geraden Wert hat, wird in S100 (Sollwerterfassung) ein Teil der Sollwertberechnung SW_CALC durchgeführt und anschließend im Schritt S102 (Flag_lstwert_erfasst = 0) ein Flag für die Erfassung des Istwerts auf Null gesetzt. Anschließend geht das Programm zurück zum Schritt S86.
Ist in S98 die Antwort Nein, so geht das Programm zum Schritt S104 (Flag_lstwert_erfasst ?), wo abgefragt wird, ob das Flag für den Istwert den Wert 1 oder 0 hat. Hat es den Wert 1 , so geht das Programm zum Schritt S106 (Sollwerterfassung), wo ein Teil der Berechnung SW_CALC durchgeführt wird, und ist die Antwort in S104 0, so wird in S108 (Istwerterfassung) die aktuelle Drehzahl erfasst, indem das Signal HALL ausgewertet wird. Anschließend wird in S112 (Flag_lstwert_erfasst = 1) das Flag für den Istwert auf 1 gesetzt, um anzuzeigen, dass der Istwert erfasst ist und beim nächsten Durchlauf durch S104 der Schritt S106 (Berechnung des Sollwerts) durchgeführt werden kann.
Das Schaubild zeigt, dass die Berechnung des Sollwerts auf die Schritte S100 und S106 verteilt ist, weil die Berechnung des Sollwerts in diesem Fall ziemlich viel Zeit erfordert und ohne diese Aufteilung mit der sonstigen Funktion des Motors nicht kompatibel wäre.
Fig. 4 zeigt in einer Übersichtsdarstellung den Ablauf der Programmschritte im Motor 30 abhängig von der Drehstellung des Rotors 36. Ein Elektromotor, der durch einen μC 54 gesteuert wird, kann vielerlei zusätzliche Funktionen haben, je nach seiner Verwendung, z.B. eine Drehzahlregelung, eine Drehzahlbegrenzung, eine Strombegrenzung, eine Regelung auf konstanten Strom, Anordnungen zur Ausgabe von Alarmsignalen, Fehlerbehandlungsroutinen, etc.
Beim vorliegenden Ausführungsbeispiel wird die Drehzahl des Motors 30 auf einen Sollwert geregelt, z.B. auf 3000 U/min. Deshalb muss dieser Sollwert für das Regelungsprogramm in relativ kurzen Abständen aktualisiert werden.
Ferner muss man für eine Drehzahlregelung wissen, wie hoch die Drehzahl des Motors im Augenblick ist, z.B. 2990 U/min. Auch dieser Istwert der Drehzahl muss in relativ kurzen Abständen aktualisiert werden.
Ferner müssen bestimmte Parameter von Zeit zu Zeit neu initialisiert werden, um einen stabilen Lauf des Motors sicherzustellen, und der μC 54 muss entsprechend den Berechnungen des Drehzahlreglers den Strom zum Motor 30 ein- und ausschalten und auch, abhängig von der augenblicklichen Drehstellung, die Richtung des Motorstroms umschalten. Alle diese Vorgänge bezeichnet man im Elektromaschinenbau als Kommutierung. Diese sollte mit großer Präzision erfolgen, weil ein Motor nur ruhig läuft, wenn die Kommutierungsbefehle sehr exakt ausgeführt werden. Dies bedeutet, dass das Programm sehr häufig prüfen muss, ob ein Programmbefehl für die Kommutierung vorliegt und ausgeführt werden muss.
Fig. 4a zeigt den Verlauf des Signals HALL, und Fig. 4b zeigt symbolisch, welche Schleifen vom Programm durchlaufen werden.
Gemäß Fig. 4 hat man direkt nach einer Flanke 120, 122 des Signals HALL eine große Rechenschleife 124, 126, 128 (Fig. 3), in der - je nach dem Wert des Zählers HALL_CNT längere Rechenprozeduren ausgeführt werden, und man hat anschließend viele kurze Rechenschleifen 130, in denen nur die Kommutierung geprüft und ggf. gesteuert wird. Da diese kurzen Schleifen 130 nur sehr wenige Schritte enthalten und deshalb sehr dicht aufeinander folgen, ergeben sie eine hohe Auflösung, d.h. es wird z.B. alle 60 bis 100 μs geprüft, ob an der Kommutierung etwas geändert werden muss.
Fig. 4 zeigt, dass z.B. direkt nach einer ansteigenden Flanke 120 des Signals HALL eine lange Schleife 124 ausgeführt wird, in der gemäß Legende 134 der Sollwert (SW) für das Regeln der Drehzahl berechnet und auch die Kommutierung überprüft wird. An die große Schleife 124 schließen sich viele kurze Schleifen 130 an, in denen gemäß Legende 136 nur die Kommutierung geprüft und ggf. verändert wird.
Auf eine abfallende Flanke 122 des Signals HALL folgt bei diesem Beispiel eine lange Schleife 126, in der gemäß Legende 138 folgende Rechenschritte ausgeführt werden:
• Istwertberechnung (IW)
• Kommutierung (Komm.).
Auf diese lange Schleife 126 folgen wieder die kurzen Schleifen 130 für die Überwachung und Steuerung der Kommutierung.
Bei der nächsten ansteigenden Flanke 120 des Signals HALL folgt wieder eine lange Schleife 124 der bereits beschriebenen Art. Auf diese Weise werden jeweils im Bereich der Hallflanken 120, 122, also an bestimmten Rotorstellungen, bestimmte Werte ermittelt, so dass z.B. bei einem vierpoligen Rotor 36 im Verlauf einer vollen Umdrehung zweimal eine Sollwertberechnung und zweimal eine Istwertberechnung erfolgen. Wie sich aus Fig. 3 ergibt, kann dann, wenn in Schritt S98 der Zähler HALL_CNT ein ungerades Resultat hat, entweder die Schleife 126 oder die Schleife 128 durchlaufen werden, je nachdem, ob beim vorhergehenden Durchlauf im Schritt S112 das dortige Flag auf 1 gesetzt wurde. Auf diese Weise verteilen sich die Rechenoperationen zeitlich, und die Verteilung wird unter anderem durch die Stellung des Rotors 36 gesteuert.
Diese rotorstellungsabhängige Erfassung von Werten ist bei einem Motor deshalb möglich, weil sich im Verlauf einer Rotorumdrehung die Drehzahl gewöhnlich nur wenig ändert.
Fig. 5 zeigt eine vergrößerte Darstellung des Signals 68 der Fig. 1 , mittels dessen dem Regler n_CTL 64 die gewünschte Drehzahl mitgeteilt wird. Dieses Signal 68 hat Impulse 69 und Impulspausen 70. Da es einen periodischen Verlauf hat, hat es eine Periodendauer T, die z.B. 1 ms = 0,001 s betragen kann, und in diesem Fall hat das Signal 68 eine Frequenz von 1/0,001 = 1000 Hz. Die Länge der Impulse 69 ist mit t bezeichnet, und die Länge der Impulspausen mit f. Es gilt dann T = t + t' ... (1)
Fig. 6 zeigt, dass die Impulse 69 sehr kurz werden können, wodurch sich lange Impulspausen 70 ergeben, und Fig. 7 zeigt umgekehrt, dass die Impulse 69 sehr lang und folglich die Impulspausen 70 sehr kurz werden können.
Gemäß Fig. 8 kann das Signal 68 auch ständig den Wert HIGH haben, was einem Tastverhältnis von 100 % entspricht, und umgekehrt kann das Signal 68 gemäß Fig. 9 auch ständig den Wert LOW haben, entsprechend einem Tastverhältnis von 0 %.
Alle Fälle gemäß Fig. 5 bis 9 müssen von der Software richtig interpretiert werden.
In jedem Fall muss bei den Fällen gemäß Fig. 5 bis 7 die Periodendauer T gemessen werden. In den Fällen der Fig. 8 und 9 ist die Periodendauer T = ∞ , und dies muss vom Programm korrekt interpretiert werden.
In dem Fall gemäß Fig. 7 wird gemäß der vorliegenden Erfindung zusätzlich zu T der Wert t gemessen, also die Länge der Impulse 69, welche in diesem Fall nicht viel kleiner ist als T.
Bei Fig. 6 sind die Impulse 69 sehr kurz und deshalb schwierig zu messen, weil die Messung der Impulse dadurch erfolgt, dass mittels des Timers 66 (Fig. 1) bei einem Impuls jeweils durch einen ersten Interrupt der Zeitpunkt der ansteigenden Flanke und durch einen zweiten Interrupt der Zeitpunkt der abfallenden Flanke des Impulses 69 gemessen und die Differenz zwischen diesen beiden Zeitpunkten ermittelt wird. Da jeder Interrupt eine bestimmte Zeit erfordert, z.B. 30 μs, ist dies schwierig, wenn die Impulsdauer t sehr kurz ist, und die Messung wird dann sehr ungenau oder sogar unmöglich.
Gemäß der Erfindung wird deshalb bei kurzen Impulsen 69 (wie in Fig. 5 und 6 dargestellt) die Zeit t' für eine Impulspause gemessen und berechnet, und aus dieser Zeit wird gemäß der Formel t = T - f ... (2) die Impulsdauer t indirekt berechnet.
Da beim Einschalten des Motors 30 die Impulse 69 in jedem Fall lang sind, wird bei der Initialisierung nach dem Einschalten ein FlagPM (= Pulsmessung), welches die Art der Messung festlegt, auf FlagPM = 1 gesetzt, was eine Messung der Impulsdauer t bedeutet, und es wird anschließend ständig das Verhältnis t/T (oder alternativ t'/T) überwacht, und wenn das erstgenannte Verhältnis unter 46 % sinkt, wird FlagPM = 0 gesetzt, um auf Messung der Zeitdauer t' der Impulspause 70 umzuschalten.
Umgekehrt wird dann, wenn FlagPM = 0 ist, überprüft, ob das Verhältnis t/T größer als 51 % wird, und in diesem Fall wird FlagPM = 1 gesetzt und es wird die Impulsdauer t gemessen. Der Unterschied zwischen 46 und 51 % bewirkt eine Hysterese, d.h. bei einem Verhältnis t/T von 50 % wird entweder die Impulsdauer oder die Dauer der Impulspause gemessen, und die Art der Messung ändert sich erst dann, wenn entweder der Wert von 51 % überschritten oder der Wert von 46 % unterschritten wird. Selbstverständlich sind die Zahlen 46 und 51 nur Beispiele, die zum besseren Verständnis der Erfindung angegeben werden.
Fig. 10 und Fig. 11 erläutern ein Problem, das bei der Vermessung von Impulsen auftritt. Fig. 10 zeigt einen Impuls 69. Dieser hat eine ansteigende Flanke 144, und zeitlich vor dieser Flanke wird bei einer Messung der Impulsdauer t die Empfindlichkeit des Eingangs 67 (Fig. 1) des μC 54 so eingestellt, dass dort die ansteigende Flanke eines Signals einen Interrupt 146 auslöst, der im TIMER 66 zu einer Messung der Zeit toi führt.
Ein Interrupt besteht aus einer Mehrzahl von Befehlen, und eine solche Interruptroutine benötigt zu ihrer Abarbeitung eine bestimmte Zeitdauer, die z.B. zum Zeitpunkt tc>2 endet. Sie dauert z.B. zwischen 60 und 100 μs.
In Fig. 10 wird zum Zeitpunkt t02 geprüft, ob der Eingang 67 hoch oder niedrig ist. In diesem Fall ist der Eingang hoch, d.h. der Impuls 69 ist noch nicht zu Ende. Deshalb wird zum Zeitpunkt t02 die Empfindlichkeit des Eingangs 67 so umgeschaltet, dass bei der nun folgenden fallenden Flanke 148 ein Interrupt 150 ausgelöst wird, der im Timer 66 die Messung des Zeitpunkts t03 bewirkt. Anschließend wird dann die Länge des Impulses 68 berechnet (t = t03 - 102). Dies ist also eine Messung bei Impulsen 69, die länger sind als die Interruptroutine 146. Die Abfrage des Eingangs 67 zum Zeitpunkt t02 bestätigt, dass der Impuls 69 noch andauert und deshalb anschließend sein Ende gemessen werden kann.
Fig. 11 zeigt die analoge Situation bei einem sehr kurzen Impuls 69', der kürzer ist als die Interruptroutine 146, also z.B. nur 30 μs. Auch in diesem Fall wird vor der ansteigenden Flanke 144 die Empfindlichkeit des Eingangs 67 so eingestellt, dass bei der Flanke 144 ein Interrupt 146 ausgelöst und der Zeitpunkt toi gemessen wird.
Ebenso wird auch hier am Ende der Interruptroutine 146, also zum Zeitpunkt t02, der Eingang 67 abgefragt, und dabei wird festgestellt, dass dieser Eingang den
Wert Low hat. Dies bedeutet, dass der Impuls 69' bereits zu Ende ist, dass deshalb der Wert tυ3 nicht gemessen werden kann, und dass auf Messung der
Impulspause t1 umgeschaltet werden muss, d.h. es wird hier gesetzt
FlagPM = 0, und diese Messung wird nicht verwertet.
Fig. 12 zeigt den zu Fig. 11 analogen Fall der Messung einer sehr kurzen Impulspause 70, deren Dauer t' kürzer ist als die der Interruptroutine.
In diesem Fall wird die Empfindlichkeit des Eingangs 67 so eingestellt, dass die fallende Flanke 152 am Beginn der Impulspause 70 einen Interrupt 154 auslöst, der länger dauert als die Impulspause 70. Dieser Interrupt 154 endet zum Zeitpunkt tos, und zu diesem Zeitpunkt wird das Signal am Eingang 67 abgefragt, das zu diesem Zeitpunkt hoch ist. Dies bedeutet, dass die Impulspause bereits zu Ende ist und deshalb nicht gemessen werden kann. Deshalb wird die Messung verworfen, und es wird umgeschaltet auf FlagPM = 1, also Messung der Impulsdauer. Wäre dagegen in Fig. 12 zum Zeitpunkt tos der Eingang 67 niedrig, so würde die Impulspause 70 noch nicht zu Ende sein und würde dadurch gemessen, dass bei der auf die fallende Flanke 152 folgenden ansteigenden Flanke ein neuer Interrupt mit einer Zeitmessung ausgelöst würde.
Fig. 13 zeigt eine sogenannte Zustandsmaschine (State Machine), die beim vorliegenden Ausführungsbeispiel verwendet wird. Dies ist eine Variable, nämlich ein Register im RAM des μC 54, das hier die Werte 1 bis 8 annehmen kann. Je nach der Routine, die gerade ausgeführt wird, hat dieses Register verschiedene Werte, die im Programm abgefragt werden können. Die einzelnen Zustände der Fig. 13 haben folgende Bedeutung:
Zustand 1 "T_Start". Dies bedeutet, dass der erste Interrupt für die Erfassung der Periodendauer T erwartet wird.
Zustand 2 "t1_Start". Dies bedeutet, dass der erste Interrupt für die Impulserfassung (Flanke 144 der Fig. 10, Flanke 152 der Fig. 12) erwartet wird. Dies kann also sowohl die Erfassung eines Impulses wie die Erfassung einer Impulspause sein.
Zustand 3 "T_End". Dies bedeutet, dass der zweite Interrupt für die Erfassung der Periodendauer T erwartet wird, also in Fig. 5 der Interrupt an der Stelle 156.
Zustand 4 "t1_End". Dies bedeutet, dass der zweite Interrupt für die Erfassung der Impulsdauer (Interrupt 148 in Fig. 10) erwartet wird, oder der zweite Interrupt für die Erfassung der Pausendauer.
Zustand 5 "T_Over". Dies bedeutet, dass die Erfassung der Periodendauer T abgeschlossen ist, und dass jetzt die Erfassung der Impulsdauer t oder die Erfassung der Pausendauer t' folgt.
Zustand 6 "t1_Over". Dies bedeutet, dass die Erfassung der Impulsdauer (t in Fig. 7) oder die Erfassung der Pausendauer (t1 in Fig. 6) abgeschlossen ist, und dass jetzt die Auswertung der gemessenen Daten folgt.
Zustand 7 "Limit". Dies bedeutet, dass das Signal 68 keine Flanken enthält, wie in Fig. 8 und 9 dargestellt, so dass keine Interrupts erzeugt werden. Das Signal 68 ist dann entweder statisch High (Fig. 8) oder statisch Low (Fig. 9). Dieser Zustand wird in Fig. 19 in den Schritten S296 bis S300 bearbeitet, und deshalb wird anschließend in S302 gesetzt SM = 7. Zustand 8 "Error". Dies bedeutet einen Erfassungsfehler bei der Erfassung der Impulsdauer, wie er bei Fig. 11 beschrieben wurde, oder einen Erfassungsfehler bei der Erfassung der Pausendauer, wie er bei Fig. 12 beschrieben wurde, d.h. nur einer der beiden Interrupts, die zu einer Messung gehören, konnte erfasst werden. Dagegen trat beim zweiten Interrupt ein Fehler auf wie folgt: a) Entweder war der Impuls zu kurz, so dass der zweite Interrupt nicht erfasst werden konnte, wie bei Fig. 11 und Fig. 12 beschrieben. Dieser Zustand wird in Fig. 18 bei S232, S234, S236, S244 bearbeitet. Anschließend wird in S238 oder S246 SM = 8 gesetzt, und die Messart wird automatisch umgeschaltet (S242, S252 in Fig. 18). b) Oder der zweite Interrupt kommt zu spät (nach Ablauf der Zeit Timeout in Fig. 19), so dass er ebenfalls nicht erfasst werden konnte, und dann wird in Fig.
19, S294, SM = 8 gesetzt, und die Messung wird verworfen und neu gestartet.
Fig. 14 zeigt den prinzipiellen Ablauf der Routine S160 (digitale PWM Erfassung). Bei S162 (Periodendauer Startflanke abwarten "1 ") befindet sich das Programm im Zustand 1 und wartet die Startflanke für die Messung der Periodendauer T ab, also in Fig. 5 die Flanke 144.
Bei S164 (Periodendauer Ende abwarten "3") befindet sich das Programm im Zustand 3 und wartet die Flanke 156 (Fig. 5) ab, also das Ende der Periodendauer T.
Bei S166 (Periodendauer erfolgreich erfasst "5") geht anschließend das Programm in den Zustand SM = 5, der bedeutet, dass die Periodendauer T erfolgreich erfasst wurde.
Bei S168 (FlagPM = 1) wird abgefragt, welchen Wert das FlagPM hat. Ist dieser Wert 1 , so geht das Programm bei S170 (Pulsbreite Startflanke abwarten "2") in den Zustand 2, d.h. die Startflanke (144 in Fig. 10) eines Impulses 69 wird erwartet.
Anschließend geht das Programm zu S172 (Pulsbreite Ende abwarten "4"), also dem Zustand 4, und dort wird die Flanke 148 (Fig. 10) abgewartet, also das Ende des Impulses 69.
Anschließend geht das Programm zu S174 (Pulsbreite erfolgreich erfasst "6"), also in den Zustand 6, d.h. die Impulsbreite t wurde erfolgreich erfasst.
Ist in S168 die Antwort Nein, so erfolgt eine Messung der Pausendauer f. In diesem Fall geht in S176 (Pausendauer Startflanke abwarten "2") das Programm in den Zustand 2, d.h. die Startflanke 152 (Fig. 12) wird erwartet.
Anschließend geht das Programm in S178 (Pausendauer Ende abwarten "4") in den Zustand 4, und dort wird das Ende der Impulspause abgewartet, z.B. in Fig. 5 die Flanke 156.
Danach geht das Programm in S180 (Pausendauer erfolgreich erfasst "6") in den Zustand 6, d.h. die Pausendauer t' wurde erfolgreich erfasst.
Im Anschluss an die Erfassung der Impulsbreite t (S174), oder der Pausendauer f (S180) geht das Programm zu S182 (Berechnungen: Tastverhältnis etc.), wo die notwendigen Berechnungen erfolgen, also z.B. die Berechnung des Wertes t/T, den man als das Tastverhältnis des Signals 68 bezeichnet, oder die Frequenz des Signals 68 am Eingang 67. Danach folgt Return im Schritt S184.
Die Zustandsmaschine gemäß Fig. 13 und 14 ist so aufgebaut, dass als erstes in den Zuständen 1 , 3 und 5 die Periodendauer T erfasst wird, danach in den Zuständen 2, 4 und 6 entweder die Impulsdauer t oder die Pausendauer f, und danach in S182 die diversen Berechnungen erfolgen. Das Sollwertmodul, wie es im Prinzip in Fig. 14 dargestellt ist, wird deshalb in Fig. 3 bei S100 und bei S106 aufgerufen, und es muss insgesamt dreimal aufgerufen werden, bis ein neuer gültiger Sollwert vorliegt. Dies wird deshalb so gemacht, damit die Rechenzeit dieses Moduls, die ziemlich groß ist, in kleinere, handliche Portionen unterteilt wird, die bei der Kommutierung des Motors 30 nicht stören. Falls auf die Kommutierung eines Motors keine Rücksicht genommen werden muss, ist selbstverständlich eine solche Unterteilung nicht erforderlich.
Wie man Fig. 14 entnimmt, ist erst nach Abarbeitung der Zustände 1-3-5 UND der Zustände 2-4-6 die Datenerfassung abgeschlossen. Befindet sich z.B. die Zustandsmaschine (Fig. 13) im Zustand 1 oder 2, so ist die Datenerfassung noch nicht abgeschlossen, und eine Erfassungsfunktion muss durchgeführt werden. Erst wenn keine Erfassung mehr durchgeführt werden muss, ist der Wert der Zustandsmaschine größer als 2. Mit den Werten 3 oder 4 kann die Zustandsmaschine nicht verlassen werden. Sie endet vielmehr in einem der Zustände 6, 7 oder 8, weil in Fig. 19, S310, der Zustand SM = 5 automatisch auf SM = 2 umgeschaltet wurde, damit beim nächsten Durchlauf - je nach dem Wert von FlagPM - entweder die Pulserfassung oder die Pausenerfassung starten kann.
Fig. 14 zeigt nur den Grundaufbau der Messung. Fig. 15 ist eine etwas ausführlichere Darstellung, in der auch die Zustände 7 und 8 dargestellt sind. Die Schritte S160 bis S184 sind identisch mit Fig. 14 und werden gleich bezeichnet wie dort und nicht nochmals beschrieben.
Wenn in S162 festgestellt wird, dass innerhalb einer vorgegebenen Zeit keine Flanke gemessen werden kann (PWM Pulsbreite ist entweder 0 % oder 100 %), geht das Programm bei S186 (Limit Signal ohne Flanken "7") in den Zustand 7, d.h. es liegt entweder der Fall gemäß Fig. 8 vor, und in S182 wird dann das Tastverhältnis auf 100 % gesetzt, oder es liegt der Fall gemäß Fig. 9 vor, und in diesem Fall wird in S182 das Tastverhältnis auf 0 % gesetzt.
Kommt in S164 (Periodendauer Ende abwarten "3") der Interrupt für das Ende der Periodendauer T (Interrupt 156 der Fig. 5) überhaupt nicht oder zu spät, so geht das Programm zu S188 (Erfassungsfehler, 2. Interrupt fehlt oder zu spät "8"), also zum Zustand 8. Die Messung wird verworfen, und das Programm beginnt bei S162 (Periodendauer Startflanke abwarten "1") im Zustand 1 eine neue Messung.
Dasselbe geschieht, wenn in S172 (Pulsbreite Ende abwarten "4") oder S178 (Pausendauer Ende abwarten "4") der zweite Interrupt fehlt oder zu spät kommt. Auch in diesem Fall wird die Messung verworfen, das Programm geht zurück an den Start bei S162 (Periodendauer Startflanke abwarten "1") und beginnt eine neue Messung, und der bisherige Messwert wird weiterhin verwendet, bis ein neuer vorliegt.
Fig. 16 zeigt die einfache Grundstruktur des Programms, die sich mit Hilfe der Zustandsmaschine erreichen lässt. Nach dem Anfang S194 wird im Schritt S196 abgefragt, ob der Zustand 8 (Error) vorliegt, der in Fig. 15 bei S188 dargestellt ist und dort beschrieben wurde. Falls ein Fehler vorliegt, wird die Messung verworfen, und eine neue Messung beginnt, d.h. das Programm geht bei S198 zum Zustand SM = 1 der Zustandsmaschine und wartet die Startflanke für die Messung der Periodendauer T ab, was in Fig. 15 mit S162 bezeichnet ist.
Wird im Schritt S196 kein Fehler festgestellt, so geht das Programm zum Schritt S200, wo abgefragt wird, ob ein Zustand größer 2 vorliegt. Der Zustand 1 oder 2 bedeutet, dass noch mindestens eine der Messungen gestartet werden muss, und dass folglich die Messung des Signals 68 noch nicht abgeschlossen ist, und falls die Antwort Nein ist, wird deshalb im Modul S202 (Fig. 19) die Messung des Signals durchgeführt. Lautet dagegen in S200 die Antwort Ja, so bedeutet dies, dass keine Messung mehr gestartet werden muss, und im anschließenden Modul S204 EVAL (Fig. 20) werden die gemessenen Daten ausgewertet. Auf die Module S202 oder S204 folgt der Schritt S206 Return.
Wie bereits erläutert, kann die Zustandsmaschine nicht mit den Werten SM = 3 oder 4 verlassen werden, sondern sie endet stets in einem der Zustände 6, 7 oder 8, so dass Werte größer 2 bedeuten, dass die Messungen abgeschlossen sind.
Fig. 17 zeigt den Ablauf der Messung des Sollwerts, wie er sich durch das Programm der Fig. 16 ergibt.
Bei einer Drehstellung 1 des Rotors 36 beginnt das Programm beim Zustand SM = 1 , durchläuft die Zustände 3 und 5, also die Messung der Periodendauer, und bleibt bei dem Zustand SM = 2 der Zustandsmaschine stehen, wie in S 310 von Fig. 19 dargestellt.
Bei einer Drehstellung II des Rotors 36 ergibt sich in der Abfrage S200 der Fig. 16 die Antwort Nein, weil die Zustandsmaschine zu Beginn den Wert 2 hat, und es werden jetzt die Zustände 2, 4 und 6 durchlaufen, d.h. es wird entweder die Signaldauer oder die Pausendauer gemessen. Am Ende dieser Messung bleibt die Zustandsmaschine auf SM = 6 stehen.
Bei einer Drehstellung III des Rotors 36 ergibt sich in der Abfrage S200 der Fig. 16 die Antwort Ja (Y), und es folgt die Auswertung (EVAL) der Daten im Modul S204 (Fig. 20). Anschließend geht die Zustandsmaschine in den Zustand SM = 1 (S334 in Fig. 20). Dies geschieht im Schritt S334 von Fig. 20. Von dort beginnt dann der Zyklus von neuem, wie in Fig. 17 durch die gestrichelten Linien angedeutet.
Auf diese Weise kann die Berechnung des Sollwerts zeitlich auf mehrere Drehstellungen verteilt werden. In Fig. 16 wird der linke Zweig S202 (Messung des Signals) bei jedem normalen Zyklus zweimal durchlaufen, und der rechte Zweig S204 (EVAL) nur einmal.
Dies wird gesteuert durch den Hallzähler HALL_CNT in S98 der Fig. 3, der bei jeder Flanke des Signals HALL weitergezählt wird und dabei ständig die Werte 0 bis 7 durchläuft. Bei einem vierpoligen Rotor 36 ergeben sich pro Umdrehung vier Flanken des Signals HALL. Es gilt dann das Schema:
HALL_CNT Pfad Erfassung von
0 124 Sollwert
1 128 Sollwert
2 124 Sollwert
3 126 Istwert
4 124 Sollwert
5 128 Sollwert
6 124 Sollwert
7 126 Istwert
Nach jeder Umdrehung erhält man also hier einen neuen Sollwert und einen neuen Istwert, also bei 60 U/s 60 Mal pro Sekunde.
Fig. 18 zeigt die Interruptroutine S210, die durch eine Flanke des Signals 68 ausgelöst wird. Im Schritt S212 (Interrupt Sensitivität = steigende Flanke) wird der μC 54 so eingestellt, dass er auf eine steigende Signalflanke (z.B. 144 in Fig. 5) an seinem Eingang 67 mit einem Interrupt reagiert. Anschließend wird in S214 ein Flag für den Interrupt gelöscht, und bei S216 wird der aktuelle Wert des Timers 66 in eine 16-Bit- Variable PWM_End kopiert.
In S218 wird nun geprüft, welcher der Interrupts eingegangen ist. Dies geschieht durch Prüfung, ob SM kleiner als 3 ist. Falls Ja, so handelte es sich entweder um SM = 1 oder SM = 2, also den ersten der beiden erwarteten Interrupts, und in S220 wird deshalb der Wert aus S216 in die Variable PWM_Start kopiert. Ist dagegen SM größer als 2, so ist der erfasste Interrupt bereits der zweite Interrupt, S218 wird über den Nein-Zweig verlassen, und in S222 werden weitere Interrupts gesperrt.
Anschließend an S220 wird in S224 der Wert SM um 2 erhöht. Ebenso wird anschließend an S222 in S226 der Wert SM um 2 erhöht. Bei S224 wird z.B. der Wert SM = 1 auf SM = 3 erhöht, und bei S226 wird SM = 3 auf SM = 5 erhöht, falls die Periodendauer T gemessen wurde.
Wurde aber die Impulsdauer t oder die Pausendauer t' gemessen, so wird in S224 der Wert SM = 2 auf SM = 4 erhöht, und in S226 wird der Wert SM = 4 auf SM = 6 erhöht. Anschließend an S226 geht die Routine zu S228 Return.
Im Anschluss an S224 werden zwei Sonderfälle behandelt. Bei S230 wird abgefragt, ob jetzt SM = 4 ist. Das bedeutet, dass bei der Messung der Impulsdauer t oder der Pausendauer t1 als nächstes der zweite Interrupt erwartet wird, d.h. in Fig. 10 befindet man sich z.B. im Interrupt 146 und erwartet als nächstes den Interrupt 150. Falls Nein, geht das Programm direkt nach S228 Return. Falls Ja, so muss es sich um den zweiten Interrupt handeln, und das Programm geht zu S232, wo gefragt wird, ob FlagPM = 1 ist. Die Antwort Ja bedeutet Messung der Impulslänge, d.h. im Augenblick wird die Länge eines Pulses 69 gemessen. Deshalb wird bei S234 (Interrupt Sensitivität = fallende Flanke) die Empfindlichkeit des Eingangs 67 (Fig. 1) auf fallende Flanke umgeschaltet.
Wenn, wie in Fig. 11 dargestellt, der Impuls 69' nur wenige μs schmal ist, kann kein zweiter Interrupt erzeugt werden, wie bei Fig. 11 beschrieben. Deshalb wird in S236 geprüft, ob das Signal 68 bereits den Wert 0 angenommen hat. Das ist in Fig. 11a grafisch dargestellt, d.h. wenn der Impuls 69' bereits zu Ende ist, gilt Signal 68 = Low, und der zweite Interrupt wurde verpasst (missed). In diesem Fall wird in S238 SM = 8 gesetzt, also Error, bei S240 wird der Interrupt gesperrt, und bei S242 wird FlagPM = 0 gesetzt, also auf Pausenmessung umgeschaltet, da die Impulse zu kurz für eine Messung sind. Danach folgt S228.
Ist dagegen in S236 Signal 68 = 1 , so ist das der in Fig. 10 dargestellte Fall, d.h. zum Zeitpunkt t02 wird festgestellt, dass Signal 68 = High, das Programm geht direkt zu S228, und die Messung wird fortgesetzt.
Ist in S232 FlagPM = 0 (Pausenmessung), so wird im Schritt S244 geprüft, ob die Pause bereits zu Ende ist. Das ist in Fig. 12 dargestellt, wo am Ende des Interrupts 154 zum Zeitpunkt tos das Signal 68 bereits wieder hoch ist, d.h. der zweite Interrupt wurde verpasst.
Falls in S244 Signal 68 = 0 ist, geht das Programm direkt zu S228. Falls die Antwort in S244 Ja ist, wird in S246 SM = 8 gesetzt, also Fehler, in S250 wird der Interrupt am Eingang 67 gesperrt, und in S252 wird auf FlagPM = 1 umgeschaltet, also auf Impulsmessung, weil die Pausen zu kurz geworden sind und nicht mehr gemessen werden können.
Fig. 19 zeigt die Routine S202 "Meas. Signal" für die Signalerfassung. Falls die Periodendauer T erfasst wird, ist SM = 1 , und falls die Impuls- oder Pausendauer erfasst wird, ist SM = 2. Die Empfindlichkeit des Eingangs 67 wird bei SM = 1 in S264 (Interrupt Sensitivität = steigende Flanke) auf steigende Flanke eingestellt. Falls SM = 2 ist, wird im Schritt S266 geprüft, ob FlagPM = 0 ist, was Pausenmessung bedeutet. Falls Ja, wird in S268 (Interrupt Sensitivität = fallende Flanke) die Empfindlichkeit des Eingangs 67 auf fallende Flanke eingestellt, also auf den Beginn einer Pausenmessung.
Falls die Antwort in S266 Nein lautet, folgt eine Impulsmessung, die bisher eingestellte Empfindlichkeit (steigende Flanke) wird unverändert beibehalten, und das Programm geht, ebenso wie nach S264 und S268, zu S272, wo eine Timeout-Variable auf einen vorgegebenen Wert eingestellt wird, hier 150. Diese Variable wird anschließend in einer Warteschleife dekrementiert. Jede Schleife benötigt z.B. 10 μs, und da sie 150 mal durchlaufen wird, dauert die Verzögerungszeit maximal 1500 μs = 1 ,5 ms. Das genügt, um ein Signal 68 mit einer Frequenz von 2000 Hz, also einer Periodendauer T von 0,5 ms, sicher zu erfassen.
Da die Erfassung zufallsbedingt zu jedem Zeitpunkt des Signals 68 beginnen kann, muss man damit rechnen, dass man die Messung der ersten Flanke gerade verpasst hat, so dass die Warteschleife mindestens zwei mal 0,5 ms dauern muss, und mit Sicherheitszuschlag drei mal 0,5 ms = 1 ,5 ms.
Anschließend wird bei S274 ein Interrupt durch das Signal HALL (Fig. 1) zeitweilig gesperrt, da während der Routine gemäß Fig. 19 keine Änderung des Signals HALL zu erwarten ist. Bei S276 und S278 wird der Interrupt am Eingang 67 vorbereitet und aktiviert, und anschließend geht das Programm in die bereits erwähnte Warteschleife und wartet dort auf das Eintreffen der Interrupts. Hierzu dient die Interruptroutine S210, die bei Fig. 18 bereits beschrieben wurde und die durch die Signalflanke ausgelöst wird, welche in S212, S264 oder S268 eingestellt wurde.
In S280 wird geprüft, ob die beschriebene Timeout-Zeit von z.B. 1 ,5 ms noch nicht abgelaufen ist. Falls noch nicht abgelaufen, geht das Programm zum Schritt S282 (Timeout dekrementieren), wo die Variable Timeout bei jedem Durchlauf dekrementiert wird.
Während dieser Zeit laufen - zu irgendwelchen Zeitpunkten - nacheinander zwei Interruptroutinen gemäß Fig. 18 ab, wodurch die Zustandsmaschine (durch die Schritte S224 oder S226 der Fig. 18) entweder auf SM = 5 oder SM = 6 hochgezählt wird. Das wird in S284 bei jedem Durchlauf geprüft, und wenn dies der Fall ist, wird die Warteschleife verlassen, und das Programm geht zu S286, wo weitere Interrupts am Eingang 67 gesperrt und bei S288 der gesperrte Hall- Interrupt wieder entsperrt wird.
Wird im Schritt S280 festgestellt, dass Timeout = 0 ist, bevor alle Interrupts erfolgt sind, so wird Ursachenforschung betrieben. Hierbei wird zunächst in S290 der Eingang 67 (Fig. 1) für Interrupts gesperrt. Anschließend wird in S292 geprüft, ob SM einen der Werte 3, 4, 5, oder 6 hat, die in Fig. 13 erläutert sind. In diesem Fall hat die Interruptroutine (Fig. 18) nur den ersten Interrupt erkannt, nicht aber den zweiten. Deshalb wird in S294 SM = 8 gesetzt, also Fehler, die Messung wird nicht verwendet, und eine neue Messung beginnt. Anschließend geht das Programm zu S284 und von dort zu S286 etc.
Falls in S292 die Antwort Nein lautet, muss SM = 1 oder 2 sein, d.h. das Programm wartet nach 1 ,5 ms immer noch auf den ersten Interrupt. Dies ist die Situation gemäß Fig. 8 oder 9, d.h. am Eingang 67 ist das Signal 68 entweder ständig hoch, was PWM = 100 % entspricht, oder es ist ständig niedrig, was PWM = 0 % entspricht. Dies wird in S296 geprüft, und wenn das Signal 68 den Wert 1 hat, wird anschließend in S298 auf FlagPM = 1 umgeschaltet, also auf Impulsmessung.
Wenn in S296 das Signal 68 den Wert 0 hat, wird in S300 umgeschaltet auf FlagPM = 0, also auf Pausenmessung. Im Anschluss an S298 oder S300 wird bei S302 die Zustandsmaschine auf SM = 7 eingestellt. Anschließend geht das Programm über S284 weiter zu S286 und S288.
Im Anschluss an S288 wird in S304 aus den Werten PWM_End und PWM_Start, die während der beiden Interruptroutinen gespeichert wurden, der neue PWMWert NewPVal errechnet als NewPVal = PWM_End - PWM_Start ...(3)
Dieser neue Wert kann die Periodendauer T sein, oder die Impulsdauer t, oder die Pausendauer t', je nach dem, welcher Wert zuvor gemessen wurde. Das wird in den folgenden Schritten geprüft. Hierzu wird in S306 geprüft, ob SM = 5 ist. Das bedeutet den Abschluss einer Messung der Periodendauer T, d.h. der neue Wert ist die Periodendauer T. Falls dies der Fall ist, wird deshalb in S308 der neue PWMWert NewPVal als neue Periodendauer T gespeichert, und in S310 wird in der Zustandsmaschine der neue Wert SM = 2 gespeichert, wie auch in Fig. 17 angegeben. Fig. 20 zeigt an einem Beispiel die weitere Auswertung der ermittelten Daten in der Routine S204 EVAL. Der Sollwert wird zunächst auf einen 8-Bit-Wert NorPVal normiert, entsprechend dem Wertebereich einer 8-Bit-Variablen. Dadurch hat er einen Wert, der einen Bereich von 0 und 255 hat, wobei 0 einem Tastverhältnis von 0 % und 255 einem Tastverhältnis von 100 % entspricht. Selbstverständlich sind auch beliebige andere Normierungen möglich, z.B. 255 = 0 % und 0 = 100 % Tastverhältnis, oder größere Wertebereiche, z.B. 0 bis 1023. Das richtet sich u.a. nach den Bedürfnissen und der Genauigkeit des verwendeten Drehzahlreglers.
In Fig. 20 wird im Schritt S322 geprüft, ob der neue PWMWert NewPVal (aus S304) länger ist als die Periodendauer T. In diesem Fall war die Messung ungenau, aber mit Sicherheit kann man sagen, dass die Impulsdauer t (oder bei einer Pausenmessung die Pausendauer t') fast so groß war wie T. Falls die Antwort in S322 Ja lautet, geht das Programm zu S324, und dort wird präliminär der normierte (d.h. nach einer festen Regel standardisierte) Sollwert NorPVal auf 255 gesetzt, ohne zu rechnen. Diese Festsetzung in S324 ist aber nur zutreffend, wenn im Augenblick eine Messung der Impulsdauer t durchgeführt wurde. Deshalb wird anschließend in S326 geprüft, ob FlagPM = 1 ist. Falls Nein, handelt es sich um den Wert von einer Pausenmessung, und dann wird anschließend in S328 der normierte Wert NorPVal auf 255 - 255 = 0 gesetzt.
In S322 wird auch abgefragt, ob die Zustandsmaschine den Wert SM = 7 hat. Dies bedeutet einen der beiden Fälle gemäß Fig. 8 oder 9. Auch in diesem Fall geht das Programm zu S324 und setzt präliminär den normierten Sollwert NorPVal auf 255. Falls eine Pausenmessung durchgeführt wurde, wird dieser präliminäre Wert anschließend in der gleichen Weise über die Schritte S326 und S328 auf 0 korrigiert.
Falls in S322 die Antwort Nein lautet, geht das Programm zu S328. Dort wird präliminär gerechnet NorPVal = (255 * NewPVal)/T (4) Beträgt z.B. der neue PWMWert NewPVal 100 μs und T = 300 μs, so ist der präliminäre normierte Wert NorPVal
255 * 100/300 = 85.
Dieser Wert gilt nur bei einer Pulsmessung. Deshalb wird anschließend wieder bei S326 geprüft, ob eine Puls- oder Pausenmessung durchgeführt wurde, und im letzteren Fall wird der normierte Wert NorPVal in S328 korrigiert. Im Beispiel wurde der Wert 85 berechnet, und wenn sich dieser auf eine Pausenmessung bezieht, wird er korrigiert in
255 - 85 = 170, d.h. dann würde der normierte PWMWert NorPVal 170 betragen.
Anschließend wird geprüft, ob bei den gemessenen periodischen Impulsen 68 die Impulsdauer t größer ist als die Pausendauer t', oder umgekehrt, und die Messmethode wird entsprechend angepasst. Deshalb geht das Programm bei einer Impulsmessung (Ja in S326) zu einem Schritt S330, wo geprüft wird, ob der normierte PWMWert NorPVal kleiner als 120 ist. Dies bedeutet, dass die Impulsdauer kleiner als 46 % der Periodendauer T ist. Falls Ja, wird anschließend in S332 auf Pausenmessung umgeschaltet, also FlagPM = 0. Danach geht das Programm zum Schritt S334, wo SM = 1 gesetzt wird, d.h. die Zustandsmaschine wird auf "T_Start" zurückgesetzt, wie auch in Fig. 17 bei S334 dargestellt, so dass eine neue Sollwertberechnung wieder bei SM = 1 beginnt. Danach geht das Programm zu S336 (Return).
Im Anschluss an S328 wird bei S338 geprüft, ob die Pausendauer größer ist als die Impulsdauer. Dabei wird geprüft, ob der in S328 berechnete normierte PWMWert NorPVal größer als 132 ist, also größer als 51 % der Periodendauer T. Falls Nein, bleibt die Art der Messung unverändert (ebenso wie bei S330). Falls Ja, wird in S340 auf Impulsmessung umgeschaltet, also FlagPM = 1. Danach geht das Programm ebenfalls zu den Schritten S334 und S336, die Messung ist abgeschlossen, und es liegt ein Sollwert in Form eines normierten PWMWertes NorPVal vor, der bei diesem Beispiel einen Wert im Bereich 0 bis 255 haben kann, und der die Drehzahl vorgibt.
Im Schritt S330 wird NorPVal mit dem Wert 120 verglichen, und im Schritt S338 mit dem Wert 132. Dies bewirkt eine Schalthysterese, d.h. bei einem Tastverhältnis zwischen 46 und 51 % können beide Arten von Messungen stattfinden, Puls oder Pause.
Die vorliegende Erfindung kann auch verwendet werden, um Zahlen von 0 bis 255, die in einer Impulsfolge verschlüsselt enthalten sind, lesbar zu machen. Bei einem elektronisch kommutierten Motor wird die Berechnung des Sollwerts bevorzugt so durchgeführt, dass sie auf mehrere Drehstellungen des Motors verteilt ist. Der Grund ist, dass diese Berechnung viel Zeit erfordert und deshalb andere Vorgänge im Motor stören könnte, vor allem die Kommutierung, sofern die Berechnung "konzentriert", also an einem Stück, ausgeführt würde.
Dadurch, dass die Messmethode automatisch auf Impulsmessung oder Pausenmessung umgeschaltet wird, ergibt sich eine höhere Genauigkeit, und man kann höhere Frequenzen messen. Die automatische Fehlererkennung, wie sie anhand der Fig. 10 bis 12 erläutert wurde, ermöglicht es, falsche Messergebnisse auszusondern und in den dort beschriebenen Fällen rasch auf eine bessere Messmethode umzuschalten, wie bei Fig. 18 beschrieben, um anschließend rasch einen neuen, besseren Sollwert zu erhalten.
Naturgemäß sind im Rahmen der vorliegenden Erfindung vielfache Abwandlungen und Modifikationen möglich.

Claims

Patentansprüche
1. Verfahren zum Bestimmen eines numerischen Wertes für die zeitliche Dauer eines sich periodisch wiederholenden impulsförmigen Signals (68), mit folgenden Schritten: a) In zeitlichen Abständen wird die Periodendauer (T) des Signals bestimmt; b) in zeitlichen Abständen wird eine charakteristische Größe (t; t') für die Dauer eines Impulses dieses Signals (68) bestimmt; c) Aus der Periodendauer (T) und der charakteristischen Größe (t; f) wird ein numerischer Wert (NorPVal) ermittelt, welcher das Signal (68) charakterisiert.
2. Verfahren nach Anspruch 1 , bei welchem die charakteristische Größe für die Dauer eines Impulses abhängig von der Größe des numerischen Wertes (NorPVal) für das Verhältnis von Dauer des impulsförmigen Signals zur Periodendauer bestimmt wird, welcher numerische Wert bei mindestens einer vorhergehenden Berechnung berechnet wurde (Fig. 20).
3. Verfahren nach Anspruch 2, bei welchem dann, wenn die Impulsdauer (t) einen vorgegebenen ersten Prozentsatz der Periodendauer (T) unterschreitet, als charakteristische Größe für die Dauer eines Impulses der zeitliche Abstand (f) zwischen zwei aufeinander folgenden Impulsen bestimmt wird.
4. Verfahren nach Anspruch 2 oder 3, bei welchem dann, wenn die Impulsdauer einen vorgegebenen zweiten Prozentsatz der Periodendauer (T) überschreitet, als charakteristische Größe für die Dauer eines Impulses die Zeitdauer (t) des Impulses bestimmt wird.
5. Verfahren nach Anspruch 3 und 4, bei welchem der vorgegebene zweite Prozentsatz (z.B. 51 %) größer ist als der vorgegebene erste Prozentsatz (z.B. 46 %).
6. Verfahren nach Anspruch 1 , bei welchem zur Bestimmung der Periodendauer (T) oder der charakteristischen Größe (t; f) jeweils bei einer ersten Signalflanke am Beginn einer zu messenden Zeitspanne ein erster
Interrupt (Fig. 10: 146) erzeugt wird, der eine erste Zeitmessung (toi) einschließt, und bei einer zweiten Signalflanke am Ende der zu messenden Zeitspanne ein zweiter Interrupt (Fig. 10: 150) erzeugt wird, der eine zweite Zeitmessung
(t03) einschließt.
7. Verfahren nach Anspruch 6, bei welchem aus der zeitlichen Differenz zwischen zweiter Zeitmessung (t03) und erster Zeitmessung (t02) ein Wert (t) für die charakteristische Größe (NorPVal) berechnet wird (Fig. 10; Fig. 20).
8. Verfahren nach Anspruch 6 oder 7, bei welchem im Verlauf des ersten Interrupts (Fig. 11 : 146; Fig. 12: 154) geprüft wird, ob sich das zu messende Signal (68) während dieses Interrupts so verändert hat, dass die zweite Signalflanke bereits aufgetreten ist.
9. Verfahren nach Anspruch 6, bei welchem dann, wenn während des ersten Interrupts (Fig. 11 : 146; Fig. 12: 154) festgestellt wird, dass die zweite Signalflanke (148') bereits aufgetreten ist, die charakteristische Größe anschließend nach einer anderen Messmethode (Fig. 18: S242, S252) bestimmt wird.
10. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem dem Ablauf der Bestimmung von Periodendauer (T) und charakteristischer Größe (t; t') Werte (SM = 1 , 2 ...) einer Zustandsmaschine (Fig. 13) zugeordnet werden.
11. Verfahren nach Anspruch 10, bei welchem der augenblickliche Wert in der Zustandsmaschine nach Erfüllung bestimmter Kriterien erhöht wird (Fig. 18: S224, S226).
12. Verfahren nach Anspruch 10 oder 11 , bei welchem der Ablauf mindestens einer Programmroutine vom augenblicklichen Zustand der Zustandsmaschine gesteuert wird (Fig. 18: S230).
13. Motor, welcher Computerprogrammmittel aufweist, die zur Ausführung der Schritte nach mindestens einem der vorhergehenden Ansprüche ausgebildet sind.
14. Motor nach Anspruch 13, welcher einen Drehzahlregler aufweist, wobei der numerische Wert (NorPVal) dazu dient, die Drehzahl zu bestimmen, auf welche der Drehzahlregler die Drehzahl des Motors regelt.
15. Motor nach Anspruch 14, bei welchem die Computerprogrammmittel so ausgebildet sind, dass die Bestimmung des numerischen Wertes (NorPVal) auf eine Mehrzahl von Drehstellungsbereichen (Fig. 17: 1, II, III) des Motors verteilt ist.
16. Anordnung zum Bestimmen eines numerischen Wertes für die zeitliche Dauer eines sich periodisch wiederholenden impulsförmigen Signals (68), mit einer Vorrichtung, welche in zeitlichen Abständen die Periodendauer (T) des Signals bestimmt, welche ferner in zeitlichen Abständen eine charakteristische Größe für die Dauer eines Impulses dieses Signals (68) bestimmt, und welche aus der Periodendauer (T) und der charakteristischen Größe (t; t1) einen numerischen Wert (NorPVal) ermittelt, welcher das Signal (68) kennzeichnet.
17. Anordnung nach Anspruch 16, bei welcher die Vorrichtung dazu ausgebildet ist, die charakteristische Größe (t; t1) für die Dauer eines Impulses abhängig von der Größe des numerischen Wertes (NorPVal) für das Verhältnis von Dauer (t) des impulsförmigen Signals zur Periodendauer (T) zu bestimmen, welcher numerische Wert (NorPVal) bei mindestens einer vorhergehenden Berechnung berechnet wurde.
18. Anordnung nach Anspruch 17, bei welcher die Vorrichtung dazu ausgebildet ist, abhängig vom Verhältnis der Impulsdauer (t) zur Periodendauer (T) beim Unterschreiten eines vorgegebenen ersten Wertes dieses Verhältnisses als charakteristische Größe für die Dauer eines Impulses den zeitlichen Abstand (f) zwischen zwei aufeinander folgenden Impulsen zu bestimmen.
19. Anordnung nach Anspruch 17 oder 18, bei welcher die Vorrichtung dazu ausgebildet ist, abhängig vom Verhältnis der Impulsdauer (t) zur Periodendauer (T) beim Überschreiten eines vorgegebenen zweiten Wertes dieses Verhältnisses als charakteristische Größe für die Dauer eines Impulses die Zeitdauer (t) des Impulses zu bestimmen.
20. Anordnung nach Anspruch 18 und 19, bei welcher der vorgegebene zweite Wert (z.B. 51 %) größer ist als der vorgegebene erste Wert (z.B. 46 %).
21. Anordnung nach Anspruch 16, welche dazu ausgebildet ist, zur Bestimmung der Periodendauer (T) oder der charakteristischen Größe (t; t') jeweils bei einer ersten Signalflanke am Beginn einer zu messenden Zeitspanne einen ersten Interrupt (Fig. 10: 146) zu erzeugen, der eine erste Zeitmessung (toi) einschließt, und bei einer zweiten Signalflanke am Ende der zu messenden Zeitspanne einen zweiten Interrupt (Fig. 10; 150) zu erzeugen, der eine zweite Zeitmessung (t03) einschließt.
22. Anordnung nach Anspruch 21 , welche dazu ausgebildet ist, aus der zeitlichen Differenz zwischen zweiter Zeitmessung (t03) und erster Zeitmessung (t02) einen Wert (t) für die charakteristische Größe zu berechnen (Fig. 10; Fig. 20).
23. Anordnung nach Anspruch 21 oder 22, welche dazu ausgebildet ist, im Verlauf des ersten Interrupts (Fig. 11: 146; Fig. 12: 154) zu prüfen, ob sich das zu messende Signal (68) während dieses Interrupts so verändert hat, dass die zweite Signalflanke bereits aufgetreten ist.
24. Anordnung nach Anspruch 21 , welche dazu ausgebildet ist, während des ersten Interrupts (Fig. 11 : 146; Fig. 12: 154) zu prüfen, ob die zweite Signalflanke (148') bereits aufgetreten ist, und bejahendenfalls die charakteristische Größe anschließend nach einer anderen Messmethode (Fig. 18: S242, S252) zu bestimmen.
25. Anordnung nach einem der Ansprüche 16 bis 24, bei welcher eine Zustandsmaschine (Fig. 13) vorgesehen ist, welche den Ablauf der Bestimmung von Periodendauer (T) und charakteristischer Größe (t; f) in ihren augenblicklichen Werten widerspiegelt.
26. Anordnung nach Anspruch 25, welche dazu ausgebildet ist, den augenblicklichen Wert in der Zustandsmaschine nach Erfüllung bestimmter Kriterien zu erhöhen (Fig. 18: S224, S226).
27. Anordnung nach Anspruch 25 oder 26, bei welcher der Ablauf mindestens einer Programmroutine vom augenblicklichen Zustand der Zustandsmaschine gesteuert ist (Fig. 18: S230).
PCT/EP2002/007204 2001-08-01 2002-06-29 Verfahren zum bestimmen eines numerischen wertes für die zeitliche dauer eines sich periodisch wiederholenden impulsförmigen signals, und vorrichtung zur durchführung eines solchen verfahrens Ceased WO2003012971A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP02760206A EP1413045B1 (de) 2001-08-01 2002-06-29 Verfahren zum bestimmen eines numerischen wertes für die zeitliche dauer eines sich periodisch wiederholenden impulsförmigen signals, und vorrichtung zur durchführung eines solchen verfahrens
DE50212540T DE50212540D1 (de) 2001-08-01 2002-06-29 Ür die zeitliche dauer eines sich periodisch wiederholenden impulsförmigen signals, und vorrichtung zur durchführung eines solchen verfahrens
US10/483,363 US7068191B2 (en) 2001-08-01 2002-06-29 Method for determining the numerical value for the duration of a periodically repeated pulse signal, and device for carrying out said method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10137726 2001-08-01
DE10137726.6 2001-08-01

Publications (1)

Publication Number Publication Date
WO2003012971A1 true WO2003012971A1 (de) 2003-02-13

Family

ID=7694013

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2002/007204 Ceased WO2003012971A1 (de) 2001-08-01 2002-06-29 Verfahren zum bestimmen eines numerischen wertes für die zeitliche dauer eines sich periodisch wiederholenden impulsförmigen signals, und vorrichtung zur durchführung eines solchen verfahrens

Country Status (6)

Country Link
US (1) US7068191B2 (de)
EP (1) EP1413045B1 (de)
AT (1) ATE402518T1 (de)
DE (2) DE50212540D1 (de)
ES (1) ES2310602T3 (de)
WO (1) WO2003012971A1 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602008005074D1 (de) * 2007-09-12 2011-04-07 Omron Automotive Electronics Mehrphasige Wechselstrom-Motorantriebsvorrichtung
JP5057908B2 (ja) * 2007-09-13 2012-10-24 オムロンオートモーティブエレクトロニクス株式会社 多相交流モータ駆動装置
EP2194270B1 (de) 2008-12-05 2013-06-12 ebm-papst St. Georgen GmbH & Co. KG Dosierpumpe
WO2010083877A1 (de) 2009-01-24 2010-07-29 Ebm-Papst St. Georgen Gmbh & Co. Kg Elektromotor, und vorrichtung zum erzeugen eines signals für die steuerung eines solchen
DE102011015110B3 (de) 2011-03-19 2012-01-26 Ebm-Papst St. Georgen Gmbh & Co. Kg Dosiersystem
US9074770B2 (en) 2011-12-15 2015-07-07 Honeywell International Inc. Gas valve with electronic valve proving system
US8947242B2 (en) 2011-12-15 2015-02-03 Honeywell International Inc. Gas valve with valve leakage test
US9995486B2 (en) 2011-12-15 2018-06-12 Honeywell International Inc. Gas valve with high/low gas pressure detection
US8839815B2 (en) 2011-12-15 2014-09-23 Honeywell International Inc. Gas valve with electronic cycle counter
US8899264B2 (en) 2011-12-15 2014-12-02 Honeywell International Inc. Gas valve with electronic proof of closure system
US9851103B2 (en) 2011-12-15 2017-12-26 Honeywell International Inc. Gas valve with overpressure diagnostics
US9835265B2 (en) 2011-12-15 2017-12-05 Honeywell International Inc. Valve with actuator diagnostics
US9557059B2 (en) 2011-12-15 2017-01-31 Honeywell International Inc Gas valve with communication link
US8905063B2 (en) 2011-12-15 2014-12-09 Honeywell International Inc. Gas valve with fuel rate monitor
US9846440B2 (en) 2011-12-15 2017-12-19 Honeywell International Inc. Valve controller configured to estimate fuel comsumption
US9234661B2 (en) 2012-09-15 2016-01-12 Honeywell International Inc. Burner control system
US10422531B2 (en) 2012-09-15 2019-09-24 Honeywell International Inc. System and approach for controlling a combustion chamber
EP2868970B1 (de) 2013-10-29 2020-04-22 Honeywell Technologies Sarl Regelungsvorrichtung
US10024439B2 (en) 2013-12-16 2018-07-17 Honeywell International Inc. Valve over-travel mechanism
US9841122B2 (en) 2014-09-09 2017-12-12 Honeywell International Inc. Gas valve with electronic valve proving system
US9645584B2 (en) 2014-09-17 2017-05-09 Honeywell International Inc. Gas valve with electronic health monitoring
US10503181B2 (en) 2016-01-13 2019-12-10 Honeywell International Inc. Pressure regulator
US10277115B2 (en) 2016-04-15 2019-04-30 Emerson Climate Technologies, Inc. Filtering systems and methods for voltage control
US10284132B2 (en) 2016-04-15 2019-05-07 Emerson Climate Technologies, Inc. Driver for high-frequency switching voltage converters
US9933842B2 (en) 2016-04-15 2018-04-03 Emerson Climate Technologies, Inc. Microcontroller architecture for power factor correction converter
US10656026B2 (en) 2016-04-15 2020-05-19 Emerson Climate Technologies, Inc. Temperature sensing circuit for transmitting data across isolation barrier
US10305373B2 (en) 2016-04-15 2019-05-28 Emerson Climate Technologies, Inc. Input reference signal generation systems and methods
US10763740B2 (en) 2016-04-15 2020-09-01 Emerson Climate Technologies, Inc. Switch off time control systems and methods
US10312798B2 (en) 2016-04-15 2019-06-04 Emerson Electric Co. Power factor correction circuits and methods including partial power factor correction operation for boost and buck power converters
US10564062B2 (en) 2016-10-19 2020-02-18 Honeywell International Inc. Human-machine interface for gas valve
US11073281B2 (en) 2017-12-29 2021-07-27 Honeywell International Inc. Closed-loop programming and control of a combustion appliance
US10697815B2 (en) 2018-06-09 2020-06-30 Honeywell International Inc. System and methods for mitigating condensation in a sensor module

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371819A (en) * 1980-12-11 1983-02-01 Pako Corporation Pulse width modulation speed control
EP0209656A2 (de) * 1985-06-01 1987-01-28 Robert Bosch Gmbh Verfahren und Vorrichtung zur Auswertung einer Information in Frequenz und Pulsbreite enthaltenden Impulsfolge.
DE4241702A1 (en) * 1991-12-10 1993-07-01 Sankyo Seiki Seisakusho Kk Analogue=to=digital converter for electric motor speed control - counts clock pulses produced during period of PWM signal obtd. from error comparison with triangular wave
DE10036839A1 (de) * 1999-09-22 2001-04-12 Papst Motoren Gmbh & Co Kg Verfahren zur Messung einer Frequenzinformation, insbesondere einer Drehzahlinformation bei einem Motor, und Vorrichtung zur Durchführung eines solchen Verfahrens

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2711894C2 (de) * 1977-03-18 1983-12-15 Robert Bosch Gmbh, 7000 Stuttgart Vorrichtung zur Steuerung des Tastverhältnisses einer in ihrer Frequenz veränderbaren Signalfolge
JPS5759171A (en) * 1980-09-27 1982-04-09 Toyota Motor Corp Detection of rotating speed of rotating member in vehicle
US4612503A (en) * 1980-10-21 1986-09-16 Kabushiki Kaisha S G Rotation speed detection device having a rotation angle detector of inductive type
US4485452A (en) * 1982-03-22 1984-11-27 The Bendix Corporation Speed measurement system
JPS59210374A (ja) * 1983-05-16 1984-11-29 Nissan Motor Co Ltd 車輪速演算装置
DE3611565A1 (de) * 1986-04-07 1987-10-08 Vdo Schindling System zur messung des tastverhaeltnisses von impulsen veraenderlicher frequenz
EP0404762B1 (de) * 1988-03-18 1991-09-11 Robert Bosch Gmbh Gerät zur erzeugung von elektrischen synchronisationssignalen für eine brennkraftmaschine
US5495091A (en) * 1989-02-27 1996-02-27 Mitsubishi Denki Kabushiki Kaisha Pulse welding apparatus
US5241251A (en) * 1990-05-21 1993-08-31 Asahi Kogaku Kogyo Kabushiki Kaisha Drive signal generating device
US5237521A (en) * 1990-08-20 1993-08-17 Xerox Corporation High resolution position measurement system
US5355136A (en) * 1991-10-24 1994-10-11 Sankyo Seiki Mfg. Co., Ltd. Analog-to-digital converter circuit
DE4229539A1 (de) 1992-09-04 1994-03-10 Bosch Gmbh Robert Einrichtung zur Erfassung des Tastverhältnisses eines Signals
US5502376A (en) * 1994-05-24 1996-03-26 Avtron Manufacturing, Inc. Apparatus for controlling the duty cycle of a pulse generator
US6831431B1 (en) 1999-09-22 2004-12-14 Papst-Motoren Gmbh & Co. Kg Method for regulating the rotational speed of a motor and a motor for carrying out a method of this type

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371819A (en) * 1980-12-11 1983-02-01 Pako Corporation Pulse width modulation speed control
EP0209656A2 (de) * 1985-06-01 1987-01-28 Robert Bosch Gmbh Verfahren und Vorrichtung zur Auswertung einer Information in Frequenz und Pulsbreite enthaltenden Impulsfolge.
DE4241702A1 (en) * 1991-12-10 1993-07-01 Sankyo Seiki Seisakusho Kk Analogue=to=digital converter for electric motor speed control - counts clock pulses produced during period of PWM signal obtd. from error comparison with triangular wave
DE10036839A1 (de) * 1999-09-22 2001-04-12 Papst Motoren Gmbh & Co Kg Verfahren zur Messung einer Frequenzinformation, insbesondere einer Drehzahlinformation bei einem Motor, und Vorrichtung zur Durchführung eines solchen Verfahrens

Also Published As

Publication number Publication date
DE10233379A1 (de) 2003-02-13
ES2310602T3 (es) 2009-01-16
DE50212540D1 (de) 2008-09-04
EP1413045A1 (de) 2004-04-28
US20040189506A1 (en) 2004-09-30
ATE402518T1 (de) 2008-08-15
US7068191B2 (en) 2006-06-27
EP1413045B1 (de) 2008-07-23

Similar Documents

Publication Publication Date Title
EP1413045B1 (de) Verfahren zum bestimmen eines numerischen wertes für die zeitliche dauer eines sich periodisch wiederholenden impulsförmigen signals, und vorrichtung zur durchführung eines solchen verfahrens
EP0744807B1 (de) Verfahren zur Strombegrenzung bei einem Gleichstrommotor, und Gleichstrommotor zur Durchführung eines solchen Verfahrens
DE102007048996B4 (de) Steuersystem zum Steuern eines Leistungsgenerators mit Bestimmungsvorrichtung zur Erkennung, ob ein empfangener Befehlswert länger als eine zulässige Dauer unverändert geblieben ist
DE19655286B4 (de) Verfahren zur automatischen Korrektur eines anormalen Betriebszustandes in einem Servosteuersystem
EP1087232B1 (de) Verfahren zur Messung einer Frequenzinformation, insbesondere einer Drehzahlinformation bei einem Motors, und Vorrichtung zur Durchführung eines solchen Verfahrens
EP3428667B1 (de) Verfahren zur erlangung eines hinweises, insbesondere eines anfangshinweises auf eine mögliche fehlerhafte lastbedingung eines mehrphasigen elektromotors
EP1183772B1 (de) Verfahren zur konfiguration der alarmvorrichtung eines elektromotors, und motor zur durchführung eines solchen verfahrens
EP1356582B1 (de) Verfahren zur verarbeitung von daten eines elektronisch kommutierten motors, und motor zur durchührung eines solchen verfahrens
DE3618079C2 (de)
DE2645350C3 (de) Elektronische Vorrichtung zur Zündsteuerung für Brennkraftmaschinen
DE10251010A1 (de) Verfahren und Anordnung zur Digitalisierung einer Spannung
EP0690556B1 (de) Stillstandserkennung beim Wiederanlassen eines stromrichtergespeisten Drehstrommotors ohne Drehzahlgeber
DE102014212572B4 (de) Verfahren zur Erlangung eines Hinweises, insbesondere Anfangshinweises auf eine mögliche fehlerhafte Lastbedingung eines mehrphasigen Elektromotors
EP0755483A1 (de) System zur steuerung einer brennkraftmaschine
WO2001022095A1 (de) Verfahren zur drehzahlregelung eines motors, und motor zur durchführung eines solchen verfahrens
EP1451914A1 (de) Verfahren zur erkennung eines defekten lüfters und zur erzeugung eines alarmsignals
DE19607688B4 (de) Verfahren und Vorrichtung zur Erfassung und Diagnose eines anormalen Betriebszustandes in einem Servosteuersystem
DE19518991A1 (de) Verfahren zum Betrieb eines elektronisch kommutierten Motors, und Motor zur Durchführung eines solchen Verfahrens
EP1340988B1 (de) Verfahren und Vorrichtung zur Messung der Impedanz eines elektrischen Energieversorgungsnetzes
DE2462451A1 (de) Vorrichtung zum messen und vergleichen von drehzahlen
DE4007395C2 (de) Zündzeitpunktsteuervorrichtung für einen Verbrennungsmotor
DE10040440B4 (de) Verfahren und Vorrichtung zur Drehzahlregelung von DC-Lüftern
DE10224270C1 (de) Verfahren zur Erfassung von Kommutierungsimpulsen eines Lüftermotors und Schaltungsanordnung zur Durchführung des Verfahrens
DE19519248A1 (de) Verfahren zur Strombegrenzung bei einem Gleichstrommotor, und Gleichstrommotor zur Durchführung eines solchen Verfahrens
EP3669241B1 (de) Antriebssteuerung mit eigenständiger fehlerkorrektur von lagefehlern

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BY BZ CA CH CN CO CR CU CZ DE DM DZ EC EE ES FI GB GD GE GH HR HU ID IL IN IS JP KE KG KP KR LC LK LR LS LT LU LV MA MD MG MN MW MX MZ NO NZ OM PH PL PT RU SD SE SG SI SK SL TJ TM TN TR TZ UA UG US UZ VN YU ZA ZM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZM ZW AM AZ BY KG KZ RU TJ TM AT BE CH CY DE DK FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ ML MR NE SN TD TG

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2002760206

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10483363

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2002760206

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP

WWG Wipo information: grant in national office

Ref document number: 2002760206

Country of ref document: EP