Abstract:
A method of detecting an angular position of a rotor of a motor includes detecting switching ripple peaks and armature current disturbance peaks using a peak detector configured to generate a square wave having edges coinciding with detected peaks. The method further includes filtering the square wave in a time domain by generating an integration ramp, toward a set value, of an estimated ripple frequency for an interval of time based on the estimated ripple frequency. An enablement range is established to reset the integration ramp by setting a threshold below and above the set value and a time window centered on an end time of each period of the estimated ripple frequency. The method further includes resetting the integration ramp, and updating the estimated ripple frequency based upon a period determined by a time of the resetting, if an edge of the square wave is within the time window. The method also includes integrating until the threshold is exceeded, resetting the integration ramp, and reducing the estimated ripple frequency to a period determined by the resetting, if the edge of the square wave is not within the time window.

Description:
FIELD OF THE INVENTION 
       [0001]    This disclosure relates, in general, to control techniques of DC brush motors and, more particularly, to a method and related implementing circuits for detecting the angular position of the rotor relative to the stator, and thus the speed of rotation of a motor, without using sensors. 
       BACKGROUND OF THE INVENTION 
       [0002]    Control systems of brush DC motors use information about the current rotation speed of the motor. 
         [0003]    Commonly used detection methods of the rotation speed are based on the use of Hall sensors that count the number of passages of a magnet mounted on the shaft, or of an encoder mounted on the shaft that establishes the angular position of the shaft. These systems use 3 connection lines for each sensor mounted on the motor, and thus additional cabling besides the cabling to power the motor. 
         [0004]    Alternative methods for sensing the angular position of the rotor without using sensors, based on the analysis of the armature current for detecting the ripple induced by brush switchings, have been developed.  FIG. 1  illustrates the detection principle. The origin of the switching ripple on the armature current of a DC motor is well known to a skilled person and it is considered superfluous to discuss it in this document. 
         [0005]    A technical challenge exists in counting the peaks of the armature current, the waveform of which, besides the ripple due to the switching of the brushes, has numerous and different irregularities because of wear and tear of the motor, physical phenomena tied to the functioning of the motor, and disturbances injected in the power line. In practice, the noise that is typically present has a frequency and an amplitude spectra similar to that of the useful signal. Moreover, the strong variability of the parameters that may cause spurious effects on the armature current signal is such to generate ripple (peaks) also when the useful signal is momentarily missing, and this increases relevantly criticalness of the control. 
         [0006]    Some of the main causes of disturbances that an appropriate filter would be capable of discriminating include that the rotor magnetic field generates a BEMF outphased in respect to the BEMF due to the variation of the stator magnetic field, as illustrated in  FIG. 2 . This phenomenon generates a double waveform during switchings of the brushes, as illustrated in the diagrams A) and B) of  FIG. 3 , relative to two functioning conditions of a DC motor for car window movements. The Fourier analysis illustrated in  FIG. 4  shows that the main component of the ripple frequency may be totally missing. From this it is possible to infer that a filter based on frequency analysis could be inadequate. 
         [0007]    Another cause may be that the current signal is missing for a significant time interval. Typically this phenomenon occurs during the switching of the driving relays that may last longer than 10 ms, as shown in  FIG. 5 . During this time, up to five peaks may be lost, corresponding to more than half a turn of the motor. 
         [0008]    Still another cause may be that the enabling of the motor generates a double peak due to the start-up current, as shown in  FIG. 6 . 
         [0009]    A further cause may be that current peaks not due to switching of the brushes are generated by noise injected through the supply line. If the frequency of the motor is comparable with the switching frequency of the brushes, peaks generated by noise could be detected and generate a false counting. 
         [0010]    Yet another cause may be that brush motors for the car industry have generally a reduced number of brushes and thus the counting must be precise for satisfying the required standards of automotive systems. It is thus helpful to reduce the counting error due to the reduced number of brush switchings, with a system adapted to assess intermediate positions of the rotor between two brush switchings. Moreover, the fact that the intermediate position is not known may generate counting errors because it is difficult to synchronize the filter signal with the signal to be analyzed from the first pulse. 
         [0011]    Among the relevant prior art documents about processing of the armature current signal in order to minimize the estimation error of the angular position and the rotation speed of the motor, the following may be mentioned: 
         [0012]    EP-A-0 890 841-B1 (TEMIC) compares the state equation of the motor for estimating the ripple frequency and compares the measured ripple frequency of the current with the estimated frequency. 
         [0013]    EP-A-0 689 054-B1 (BOSCH) discloses a totally analog circuit with amplifier of a current signal, analog filter that carries out a phase shift, filter and comparator that “squares” the ripple deleting noise. 
         [0014]    U.S. Pat. No. 6,859,030 (KOSTAL) discloses the detection of the ripple during a brake phase for estimating the shift while braking. 
         [0015]    U.S. Pat. No. 6,768,282 (KOSTAL) discloses the step of comparing the time between two peaks with an estimated time and thus delete a peak if the difference surpasses a certain threshold. 
         [0016]    U.S. Pat. No. 7,079,964 (KOSTAL), discloses a spectral analysis of the current signal and of the applied voltage signal. The comparison between the two spectral analysis allows to discriminate frequencies introduced by the current ripple of the motor from the frequency due to noise on the supply line. 
         [0017]    U.S. Pat. No. 6,839,653 (KOSTAL) discloses the Fourier analysis of the current signal for discriminating frequencies due to the current ripple from frequencies due to noise. 
         [0018]    EP-A-1 453 172-A1 (LEAR) discloses the analysis of the motor current and the use of the current ripple to detect the rotation of the motor shaft. The contemplated filters are relatively complex and are not simple to be realized. 
       SUMMARY OF THE INVENTION 
       [0019]    The method of the present disclosure is based on a filtering action in the time domain that is self-synchronized to the signal to be analyzed, in other words to the switching ripple signal, by detecting its undulation in real time without introducing any delay. In practice the filter is intrinsically capable of transforming the discrete function that expresses the angular position of the rotor (brushes) in a continuous function. 
         [0020]    A peak detector generates a square wave pulse signal with leading edges coincident with each switching ripple peak and with peaks of other disturbances present on the armature current signal of the motor. The pulse signal is filtered in the time domain for discriminating ripple peaks from peaks of disturbances uncorrelated to the switching frequency. 
         [0021]    The method includes generating integration ramps of the current estimated value of the ripple frequency toward a unitary value, for a time interval that theoretically corresponds to the period of real frequency. An enabling range is established at the reset of the integration ramp of a certain threshold value plus and minus the unitary integration value, and thus a corresponding time window centered on the end instant of the period of the current estimated value of the ripple frequency. A leading edge of the square wave pulse signal, due to the ripple, is validated as long as it falls inside said time window. The method further includes resetting the integration ramp and updating the value of the ripple frequency to a period as determined by the reset instant. 
         [0022]    Should a leading edge falling in said time window not be validated, the integration is continued up to reaching the plus threshold beyond the unitary value. As a consequence, the integration ramp is reset and the estimated value of the frequency is reduced to a period as determined by the reset instant. 
         [0023]    The method and numerous improvements of the method, as well as the related implementing circuit diagrams, will be more easily recognized through detailed descriptions of several exemplary embodiments of and ways of practicing the invention, referring to the attached drawings, being understood that these detailed descriptions and illustrations of preferred embodiments are given only for exemplification purposes and do not limit the claimed scope of protection defined in the annexed claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0024]      FIG. 1  illustrates the principle of detection of the rotation angle from the switching ripple, according to the prior art. 
           [0025]      FIG. 2  illustrates how the rotor magnetic field generates a BEMF outphased from the BEMF due to the variation of a stator magnetic field, according to the prior art. 
           [0026]      FIG. 3  illustrates how a double undulation may occur during brushes switching in different functioning conditions, according to the prior art. 
           [0027]      FIG. 4  shows how, the main component of the ripple frequency may be totally absent from a Fourier analysis, according to the prior art. 
           [0028]      FIG. 5  illustrates how, during the switching of the driving relays, the current signal may lack for a significant time interval, according to the prior art. 
           [0029]      FIG. 6  shows that the activation of the motor may generate a double peak due to the start-up current, according to the prior art. 
           [0030]      FIG. 7  is a basic block diagram of a first embodiment of the present invention. 
           [0031]      FIG. 8  is a mathematical description of the block TIME DOMAIN FILTER with related circuit diagram and characteristic, relative to a practical embodiment of the present invention. 
           [0032]      FIG. 9  is a graphical description of the functioning of the block TIME DOMAIN FILTER in discriminating and validating pulses of the square wave pulse signal generated by the peak detector of the block diagram of  FIG. 7 . 
           [0033]      FIG. 10  is a graphical description of the functioning of the block TIME DOMAIN FILTER when a time-out condition (missed validation of a pulse) occurs and how the missed validation is restored, according to the present invention. 
           [0034]      FIG. 11  depicts circuit diagrams of the main blocks of  FIG. 7 . 
           [0035]      FIG. 12  illustrates graphically how the method may keep synchronism in case of stop-and-go of the motor, according to the present invention. 
           [0036]      FIG. 13  illustrates a simple integration to the circuit diagrams of  FIG. 11  for keeping synchrony in case of stop-and-go of the motor. 
           [0037]      FIG. 14  is a graphical representation of the ability of the filter in the time domain to delete double peaks, according to the present invention. 
           [0038]      FIG. 15  is a graphical representation of the way in which the filter in the time domain recovers eventual missing peaks in the armature current signal, according to the present invention. 
           [0039]      FIG. 16  is a matlab simulation of the ability of the filter of restoring missing peaks during switching of the relays while the motor is decelerating, according to the present invention. 
           [0040]      FIG. 17  and  FIG. 18  are matlab simulations during a control phase of the value of the intermediate position with motor stopped and during a control phase of the initial integration value when the motor is restarted, according to the present invention. 
           [0041]      FIG. 19  is a matlab simulation that shows how the system is capable of adjusting the estimation parameters of the ripple frequency such to obtain a more refined tuning of the filter, according to the present invention. 
           [0042]      FIG. 20  is a matlab simulation that shows the self-tuning behavior of the filter during a transient. 
           [0043]      FIG. 21  is a graphical explanation of how the best leading edge is chosen when the first most valid leading edge takes place with an integration value smaller than unity, according to the present invention. 
           [0044]      FIG. 22  is a graphical explanation of how the system chooses the best leading edge among more pulses falling inside the time window. 
           [0045]      FIG. 23  illustrates graphically the behavior of the filter when no pulse is detected in the interval in which the value of the integral is within the tolerance range, according to the present invention. 
           [0046]      FIG. 24  shows the increase of the error estimation, according to the present invention. 
           [0047]      FIG. 25  is a flow chart of the control digital structure of a filtering function in the time domain, according to an embodiment capable of choosing the “best” pulse among more pulses captured in the time window, according to the present invention. 
           [0048]      FIG. 26  depicts a possible implementing architecture subdivided into an analog device and a microprocessor digital device, that requires a minimum number of analog components, according to the present invention. 
           [0049]      FIG. 27  is an alternative architecture subdivided into an analog device and a digital device wherein the microprocessor must only detects the presence of peaks according to the present invention. 
           [0050]      FIG. 28  is another possible architecture subdivided into the analog device and the digital device, wherein the ripple is separated by the DC component and amplified to an amplitude compatible to AD conversion, according to the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0051]    The ensuing description illustrates the characteristics of the method and of effective circuit architectures capable of implementing it, without describing details of other functional components besides the details strictly necessary to describe the connections, of the whole control system of the motor that exploits the information of the angular position of the rotor obtained according to the novel method. The components are assumed to be of any of the ordinary types of the numerous components that are commonly used. 
         [0052]      FIG. 7  is a basic block diagram of a first embodiment, wherein the functional blocks that implement the novel method: PEAK DETECTOR, TIME DOMAIN FILTER, TIME&gt;&gt;FREQUENCY, PID, FREQUENCY PRE-CONDITIONING, are highlighted on a gray background. 
         [0053]      FIG. 8  is a mathematical description of the block TIME DOMAIN FILTER with relative circuit scheme and diagram, relative to a practical functioning example. 
         [0054]      FIG. 9  is a graph description of the functioning of the block TIME DOMAIN FILTER in discriminating and validating pulses of the square wave pulse signal generated by the block PEAK DETECTOR of  FIG. 7 . 
         [0055]      FIG. 10  is a graphical description of the functioning of the block TIME DOMAIN FILTER when a time-out condition is verified (missed validation of a pulse) and how, in this case, the missed validation is restored, in practice by reducing the currently estimated value of the ripple frequency (rotation speed) by a quantity appropriate to correspond to the increased period of the time half-window for validating pulses. 
         [0056]      FIG. 11  depicts circuit details of the main blocks of the diagram of  FIG. 7  according to a first embodiment. 
         [0057]    The peak detector PEAK_DETECTOR generates a square wave pulse signal with leading edges coinciding with each peak of switching ripple and of other disturbances on the current armature signal MOTOR_CURRENT of the motor. The pulse signal is filtered in a time domain by the block TIME_DOMAIN_FILTER for discriminating ripple peaks from disturbances considered uncorrelated with the value FE_P processed by the block FREQUENCY_PRE-CONDITIONING, depending on the current estimated switching frequency FE. The estimated value of the switching frequency FE is constantly updated depending on the instant in which a pulse is validated within the validation time window centered on the end instant of the period T of the current estimated frequency FE. 
         [0058]    The self synchronization block AUTO_TUNING, depending on the filtered ripple frequency, updates the estimation parameters of the frequency and thus the system allows reduction of the effects due to variations of the motor temperature and/or to wear and tear of the motor. 
         [0059]    The method includes the step of generating integration ramps (toward the unitary value) of the current estimated value of the ripple frequency for a time interval corresponding to the frequency period. This may be done through the following equation: 
         [0000]    
       
         
           
             
               
                 
                   ∫ 
                   ti 
                   
                     ti 
                     + 
                     Ti 
                   
                 
                  
                 
                   
                     ( 
                     
                       t 
                       - 
                       ti 
                     
                     ) 
                   
                    
                   
                     
                        
                       F 
                     
                     
                        
                       t 
                     
                   
                    
                   
                      
                     t 
                   
                 
               
               + 
               
                 
                   ∫ 
                   ti 
                   
                     ti 
                     + 
                     Ti 
                   
                 
                  
                 
                   
                     F 
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                    
                   
                      
                     t 
                   
                 
               
             
             = 
             1 
           
         
       
     
         [0000]    for example in the technique illustrated in  FIG. 8  where F is the estimated frequency of the ripple pulse, thus if the estimation corresponds to the true integral from the beginning to the end of a cycle or period of the frequency F, it attains the unitary value. 
         [0060]    By establishing a first acceptable tolerance range in the estimation of the frequency, it is possible to define a time window centered on the end instant of the estimated enabling period of the reset of the integration ramp. This may be done by fixing a certain threshold value (Δ) smaller than one or negative (1−Δ) and larger than one or positive (1+Δ) of the amplitude of the integration ramp, within the bounds of which the reset of the integration ramp is enabled by a leading edge, that is validated as pertaining to the ripple. The reset instant is the information used for updating the estimated value of the ripple frequency to the period established at the reset instant. 
         [0061]    With respect to the exact calculation of the integral, it is possible to simplify significantly the procedure by executing instead the following pre-conditioning operation of the current estimated value of the ripple frequency FE: 
         [0000]        FE   —   P=FE +( dFE/dt )/(2 ×FE ) 
         [0062]    wherein FE=FE (if FE&gt;FEmin) FE=FEmin (if FE&lt;FEmin), and wherein FEmin is the minimum expected value of the ripple frequency. This produces a pre-conditioned value FE_P of the estimated ripple frequency to be integrated during the next (ripple) period. 
         [0063]    The above described method is graphically illustrated in  FIG. 9  wherein the threshold value Δ=Th.  FIG. 10  illustrates graphically a case of missed validation of a leading edge in the time window. When this occurs, the integration may be left proceed as until the amplitude reaches the threshold larger than one 1+Th, and thus the integration ramp is reset and the current estimated value of the frequency reduced to the period determined by the reset instant, that is by the leading edge of a pulse Pulse_captured that is (re)constructed ad hoc to represent in this occasion the captured reset pulse. 
         [0064]    According to an embodiment, the above described and illustrated method may be implemented with the various functional blocks highlighted in  FIG. 11 , that depicts, in a perfectly legible way for any skilled person, the circuit details of the different blocks, because it uses symbols and captions that clarify the nature of the components and of the parameters. 
         [0065]    According to a refinement of the method, it is possible to ensure a perfect synchronism of the filter when the motor is restarted after having been stopped, even at the first captured pulse. 
         [0066]    The method is indeed capable of transforming the detection system from a system with a finite number of positions per each turn, in a continuous system. In practice, the value of the integral, that is the amplitude of the ramp, indicates the position of the rotor between two switchings. This characteristic allows to restart the integration (the ramp) from the value corresponding to the angular position assumed by the rotor when it had stopped, so the filter keeps the synchronism. 
         [0067]      FIG. 12  illustrates graphically what has been described above and how the method could keep synchronism in case of stop and go of the motor. When the motor is arrested, the rotor will stop in a position that is generally intermediate between the two reference points identified by the peaks of the switching ripple. While the frequency nullifies, the integration value calculates in a continuous fashion such an intermediate position. The value of the integral when the rotor stops allows estimation of the distance from the first cycle of the undulation of the switching ripple at the restart of the motor, thus allowing integration from a value that corresponds to the intermediate point between the two references in which the rotor was when it stopped. 
         [0068]      FIG. 13  shows the simple integration to the implementing circuit of  FIG. 11  that is used for ensuring that the synchronism be kept in case of stop and go. In practice it is sufficient to have a storage block OLD of the value reached by the integration when the rotor stopped and a simple logic adapted to provide as initial value of the integration at the restart instant, instead of the null value, a value that corresponds to the angular position given by the value stored when the rotor stopped. 
         [0069]      FIG. 14  is a graph of the ability of the filter in the time domain to delete double peaks that may occur on the armature current signal, as discussed above. 
         [0070]      FIG. 15  is a graph of the way in which the filter in the time domain recovers eventual missing peaks in the armature current signal, as discussed above. 
         [0071]      FIG. 16  is a matlab simulation of the ability of the filter of restoring missing peaks during switching of the relays while the motor is decelerating. 
         [0072]      FIG. 17  and  FIG. 18  are matlab simulations during a control phase of the value of the intermediate position with motor stopped and during a control phase of the initial integration value when the motor is restarted. 
         [0073]      FIG. 19  is a matlab simulation that shows how the system is capable of adjusting the estimation parameters of the ripple frequency such to obtain a more refined tuning of the filter. The simulation has been carried out during a re-acceleration in the opposite direction of the motor after having been stopped, which is the worst test condition. 
         [0074]      FIG. 20  is a matlab simulation that shows the self-tuning behavior of the filter during a transient. 
         [0075]    In the embodiments so far disclosed, the filter in the time domain does not contemplate the case in which more pulses occur in the time interval in which the value attained by the integrator (amplitude of the ramp) is within the tolerance range and thus inside the validation time window. According to the embodiments so far illustrated, the first pulse captured in the time window is considered valid, even if successive pulses could occur not only inside the discrimination time window, but also for values of the integral closer to unit value (that correspond to the current estimated time, eventually pre-conditioned, of the ripple period). 
         [0076]    According to an alternative embodiment of the method, the system records the value of the integral in correspondence of the leading edge of each pulse falling inside the validation time window and chooses the raise time of the pulse to which corresponds the integration value closer to one. 
         [0077]    The digital recording and processing circuitry should be adapted to the improved functions of such an alternative embodiment of the method of the invention. The execution of the above described method for choosing the “best” pulse uses a memory device, and thus a microprocessor system may be used. 
         [0078]      FIG. 21  is a graphical explanation of how the best leading edge is chosen when the first most valid leading edge takes place with an integration value smaller than unity. 
         [0079]      FIG. 22  is a graphical explanation of how the system chooses the best leading edge among more pulses falling inside the time window when the integration value in correspondence of the leading edge of the first validated pulse is smaller than one, while the best pulse occurs when the integration value is larger than one. 
         [0080]      FIG. 23  illustrates graphically the behavior of the filter when no pulse is detected in the time interval in which the value of the integral is within the tolerance range. In this case the system adds a pulse and resets the initial value of the integral to the value of the difference between the current value attained by the integral minus 1. Thereafter, it increases the error counter and, if the counter surpasses the pre-established maximum value, it flags a synchronization problem of the filter. 
         [0081]    As shown in  FIG. 24 , time out events as the one shown in  FIG. 23  increase the error estimation. The error estimation decreases down to zero when a pulse is captured in the validation time window. The error estimation value may be used according to experience with the particular application because it is evident that numerous time-out events in succession are a clear evidence that the counter of the ripple peaks is out of control. 
         [0082]      FIG. 25  is a flow chart of the control digital structure of a filtering function in the time domain, according to an embodiment capable of choosing the “best” pulse (that is the pulse that best approximates the final instant of the estimated ripple period) when more leading edges occur in the validation time window, and of flagging when a certain maximum number of errors has been surpassed. 
         [0083]      FIG. 26  depicts a possible implementing architecture subdivided into an analog device COMPANION and a microprocessor digital device STM8 containing the digital peripherals for executing the method of detecting and of controlling the angular position and/or the speed of the rotor. With this approach, the used external analog components may be the ones that are strictly necessary. In the example, there is a current sensor and an amplifier for making the signal compatible to AD conversion. This exemplary configuration would use a 10 bit AD with a sampling frequency of at least 10 kHz. 
         [0084]      FIG. 27  is an alternative architecture subdivided into an analog device and a digital device. The square wave with leading edges coincident with ripple peaks is obtained through an analog circuit. The microprocessor has the function of detecting the presence of peaks. In this way it is possible to use a single 8 bit AD conversion for the DC, with substantial reduction of the burden on the micro. It is thus possible to use a less powerful microprocessor, but the approach is less preferred because of the relatively large number of external passive and analog components. 
         [0085]      FIG. 28  is yet another possible architecture subdivided into the analog device COMPANION and the digital device STM8. The ripple is separated from the DC component and is amplified at an amplitude compatible to AD conversion. In so doing, it is possible to use 8 bit converters without losing resolution on the AC signal, that is less than two orders of magnitude than the DC component. By contrast, it is helpful to implement two AD conversions: one for the DC component, with a relatively low sampling frequency, and the other for the ripple, though at a sampling frequency (for example 10 kHz) compatible with the ripple frequency.