Patent Description:
An electric motor may feature a rotor with permanent magnets and a stator, such as an interior permanent magnet (IPM) motor or IPM synchronous motor. A position sensor, such as a resolver or encoder, may be used to estimate the angular position of the rotor, the rotational speed of the rotor, or both. In certain prior art, the position sensor outputs a position signal, like a saw-tooth position signal, which may contain unwanted frequency components (e.g. harmonics, artifacts or noise) that detract from accurately estimating the position of the rotor and further data processing. Accordingly, there is need for improving an accuracy of an estimated position of the rotor of an electric motor.

<CIT> teaches a method where a position detection value after correction which is outputted from a computing element is outputted to a speed calculation part and the notch filter part. The speed calculated by the speed calculation part is outputted to a frequency setting part. A notch filter frequency setting part sets the notch filter center frequency of the notch filter part according to the speed calculated by the speed calculation part. The notch filter part consists of a band-rejection filter. The position detection value after correction which is inputted to the notch filter part is filtered and outputted as a position detection value after the filter processing to a position error calculation part.

<CIT> provides an AC motor controller which includes: a rotor position detecting means, a stator coil current detecting means, and a control means (control apparatus body) calculating a control output signal based on a request output, a rotor rotational position and a coil current. The position detecting means has an output characteristic which is proportional to the rotary position of the rotor and has discontinuity that returns to zero at one rotation of an electric angle. The control means includes: a low pass filter <NUM> removing high-frequency components contained in the original position signal θi of the position detecting signal to generate a filter output signal Fo, a compensator <NUM> compensating a phase delay caused by the low-pass filter <NUM>, and a position corrector <NUM> having a discontinuity switching section (output switch <NUM>) wherein a filter output signal Fo is defined as a final correction positional signal θo except for the discontinuity of the position detecting means, while the original positional signal θi in the discontinuity is defined as a correction positional signal θo.

<CIT> teaches a case of the setting the constant of the notch filter during the starting of the power supply, where a reference signal of the impulse torque is given to a motor by pushing a start button. At this time, a detected speed (Nf) from an encoder is stored in a speed arithmetic device. A high speed Fourier's arithmetic device calculates the resonance frequency of the system. After calculating the constant of the notch filter which eliminates the obtained natural frequency, this notch filter is added to the circuit after a speed amplifier.

The invention is defined by the independent claims to which reference should be made. Preferable features of the invention are set out in the dependent claims.

In accordance with one embodiment, <FIG> discloses system for controlling a motor <NUM> (e.g., an interior permanent magnet (IPM) motor) or another alternating current machine. In one embodiment, the system, aside from the motor <NUM>, may be referred to as an inverter or a motor controller.

The system comprises electronic modules, software modules, or both. In one embodiment, the motor controller comprises an electronic data processing system <NUM> to support storing, processing or execution of software instructions of one or more software modules. The electronic data processing system <NUM> is indicated by the dashed lines in <FIG> and one possible configuration of the electronic data processing system <NUM> is shown in greater detail in <FIG>.

The electronic data processing system <NUM> is coupled to an inverter switching circuit <NUM>. The inverter switching circuit <NUM> comprises a semiconductor drive circuit that drives or controls switching semiconductors (e.g., insulated gate bipolar transistors (IGBT) or other power transistors) to output control signals for the motor <NUM>. In turn, the inverter switching circuit <NUM> is coupled to the motor <NUM>. The motor <NUM> is associated with a sensor <NUM> (e.g., a position sensor, a resolver or encoder position sensor) that is associated with the motor shaft <NUM> or the rotor. The sensor <NUM> and the motor <NUM> are coupled to the electronic data processing system <NUM> to provide feedback data (e.g., current feedback data, such as ia, ib, ic), raw position signals, among other possible feedback data or signals, for example. Other possible feedback data includes, but is not limited to, winding temperature readings, semiconductor temperature readings of the inverter switching circuit <NUM>, three phase voltage data, or other thermal or performance information for the motor <NUM>.

In one embodiment, the torque command generation module <NUM> is coupled to a d-q axis current generation manager <NUM> (e.g., d-q axis current generation look-up tables). D-q axis current refers to the direct axis current and the quadrature axis current as applicable in the context of vector-controlled alternating current machines, such as the motor <NUM>. The output of the d-q axis current generation manager <NUM> and the output of a current adjustment module <NUM> (e.g., d-q axis current adjustment module <NUM>) are fed to a summer <NUM>. In turn, one or more outputs (e.g., direct axis current command data (id*) and quadrature axis current command data (iq*)) of the summer <NUM> are provided or coupled to a current regulation controller <NUM>.

The current regulation controller <NUM> is capable of communicating with the pulse-width modulation (PWM) generation module <NUM> (e.g., space vector PWM generation module). The current regulation controller <NUM> receives respective d-q axis current commands (e.g., id* and iq*) and actual d-q axis currents (e.g., id and iq) and outputs corresponding d-q axis voltage commands (e.g., vd* and vq* commands) for input to the PWM generation module <NUM>.

In one embodiment, the PWM generation module <NUM> converts the direct axis voltage and quadrature axis voltage data from two phase data representations into three phase representations (e.g., three phase voltage representations, such as va*, vb* and vc*) for control of the motor <NUM>, for example. Outputs of the PWM generation module <NUM> are coupled to the inverter switching circuit <NUM>.

The inverter switching circuit <NUM> comprises power electronics, such as switching semiconductors to generate, modify and control a modulated signal, a pulse-width modulated signal, a pulse-modulated voltage waveform, a voltage signal, or other alternating current signals (e.g., pulse, square wave, sinusoidal, or other waveforms) applied to the motor <NUM>. The PWM generation module <NUM> provides inputs to a driver stage within the inverter switching circuit <NUM>. An output stage of the inverter switching circuit <NUM> provides a pulse-width modulated signal or other alternating current signal for control of the motor. In one embodiment, the inverter switching circuit <NUM> is powered by a direct current (DC) voltage bus.

The motor <NUM> is associated with a sensor <NUM> (e.g., a resolver, encoder, speed sensor, or another position sensor or sensors) that estimates at least one of an angular position (e.g., versus time) of the motor shaft <NUM>, a speed or velocity of the motor shaft <NUM>, and a direction of rotation of the motor shaft <NUM>. The sensor <NUM> may be mounted on or integral with the motor shaft <NUM>. The output of the sensor <NUM> is capable of communication with the primary processing module <NUM> (e.g., position and speed processing module). In one embodiment, the sensor <NUM> may be coupled to an analog-to-digital converter (not shown) that converts analog position data or velocity data to digital position or velocity data, respectively. In other embodiments, the sensor <NUM> (e.g., digital position encoder) may provide a digital data output of position data or velocity data for the motor shaft <NUM> or rotor.

A first output (e.g., position data (or angle θ) and speed data for the motor <NUM>) of the primary processing module <NUM> is communicated to the phase converter <NUM> (e.g., three-phase to two-phase current Park transformation module) that converts respective three-phase digital representations of measured current into corresponding two-phase digital representations of measured current. A second output (e.g., speed data) of the primary processing module <NUM> is communicated to the calculation module <NUM> (e.g., adjusted voltage over speed ratio module).

An input of a sensing circuit <NUM> is coupled to terminals of the motor <NUM> for sensing at least the measured three-phase currents and a voltage level of the direct current (DC) bus (e.g., high voltage DC bus which may provide DC power to the inverter switching circuit <NUM>). An output of the sensing circuit <NUM> is coupled to an analog-to-digital converter <NUM> for digitizing the output of the sensing circuit <NUM>. In turn, the digital output of the analog-to-digital converter <NUM> is coupled to the secondary processing module <NUM> (e.g., Direct current (DC) bus and three phase current processing module). For example, the sensing circuit <NUM> is associated with the motor <NUM> for measuring three phase currents (e.g., current applied to the windings of the motor <NUM>, back EMF induced into the windings, or both).

Certain outputs of primary processing module <NUM> and the secondary processing module <NUM> feed the phase converter <NUM>. For example, the phase converter <NUM> may apply a Park transformation or other conversion equations (e.g., certain conversion equations that are suitable are known to those of ordinary skill in the art) to convert the measured three-phase representations of current into two-phase representations of current based on the digital three-phase current data from the secondary processing module <NUM> and position data from the sensor <NUM>. The output of the phase converter <NUM> module is coupled to the current regulation controller <NUM>.

Other outputs of the primary processing module <NUM> and the secondary processing module <NUM> may be coupled to inputs of the calculation module <NUM> (e.g., adjusted voltage over-speed ratio calculation module). For example, the primary processing module <NUM> may provide speed data (e.g., motor shaft <NUM> revolutions per minute), whereas the secondary processing module <NUM> may provide a measured level of direct current voltage (e.g., on the direct current (DC) bus of a vehicle). The direct current voltage level on the DC bus that supplies the inverter switching circuit <NUM> with electrical energy may fluctuate or vary because of various factors, including, but not limited to, ambient temperature, battery condition, battery charge state, battery resistance or reactance, fuel cell state (if applicable), motor load conditions, respective motor torque and corresponding operational speed, and vehicle electrical loads (e.g., electrically driven air-conditioning compressor). The calculation module <NUM> is connected as an intermediary between the secondary processing module <NUM> and the dq-axis current generation manager <NUM>. The output of the calculation module <NUM> can adjust or impact current commands generated by the d-q axis current generation manager <NUM> to compensate for fluctuation or variation in direct current bus voltage, among other things.

The initial position offset calibrator <NUM> or the primary position module <NUM> supports calibration of an initial position offset of the motor shaft <NUM>. In one embodiment, the initial position offset calibrator <NUM> is capable of communicating with the primary processing module <NUM>, the secondary processing module <NUM>, and receiving measured current input data (e.g., direct-axis and quadrature axis current data) from an output of the phase converter <NUM>, for example.

The rotor magnet temperature estimation module <NUM>, the current shaping module <NUM>, and the terminal voltage feedback module <NUM> are coupled to or are capable of communicating with the dq-axis current adjustment module <NUM>. In turn, the d-q axis current module <NUM> may communicate with the dq-axis current generation manager <NUM> or the summer <NUM>.

The rotor magnet temperature estimation module <NUM> estimates or determines the temperature of the rotor permanent magnet or magnets. In one embodiment, the rotor magnet temperature estimation module <NUM> may estimate the temperature of the rotor magnets from one or more sensors located on the stator, in thermal communication with the stator, or secured to the housing of the motor <NUM>.

In an alternative embodiment, the rotor magnet temperature estimation module <NUM> may be replaced with a temperature detector (e.g., a thermistor or infrared thermal sensor coupled to a wireless transmitter) mounted on the rotor or the magnet, where the detector provides a signal (e.g., wireless signal) indicative of the temperature of the magnet or magnets.

In one embodiment, the method or system may operate in the following manner. The torque command generation module <NUM> receives an input control data message, such as a speed control data message, a voltage control data message, or a torque control data message, over a vehicle data bus <NUM>. The torque command generation module <NUM> converts the received input control message into torque control command data <NUM>.

The d-q axis current generation manager <NUM> selects or determines the direct axis current command data and the quadrature axis current command data associated with respective torque control command data and respective detected motor shaft <NUM> speed data. For example, the d-q axis current generation manager <NUM> selects or determines the direct axis current command, the quadrature axis current command by accessing one or more of the following: (<NUM>) a look-up table, database or other data structure that relates respective torque commands to corresponding direct and quadrature axes currents, (<NUM>) a set of quadratic equations or linear equations that relate respective torque commands to corresponding direct and quadrature axes currents, or (<NUM>) a set of rules (e.g., if-then rules) that relates respective torque commands to corresponding direct and quadrature axes currents. The sensor <NUM> on the motor <NUM> facilitates provision of the detected speed data for the motor shaft <NUM>, where the primary processing module <NUM> may convert position data provided by the sensor <NUM> into speed data.

The current adjustment module <NUM> (e.g., d-q axis current adjustment module) provides current adjustment data to adjust the direct axis current command data and the quadrature axis current command data based on input data from the rotor magnet temperature estimation module <NUM>, the current shaping module <NUM>, and the terminal voltage feedback module <NUM>.

The current shaping module <NUM> may determine a correction or preliminary adjustment of the quadrature axis (q-axis) current command and the direct axis (d-axis) current command based on one or more of the following factors: torque load on the motor <NUM> and speed of the motor <NUM>, for example. The rotor magnet temperature estimation module <NUM> may generate a secondary adjustment of the q-axis current command and the d-axis current command based on an estimated change in rotor temperature, for example. The terminal voltage feedback module <NUM> may provide a third adjustment to the d-axis and q-axis current based on controller voltage command versus voltage limit. The current adjustment module <NUM> may provide an aggregate current adjustment that considers one or more of the following adjustments: a preliminary adjustment, a secondary adjustment, and a third adjustment.

In one embodiment, the motor <NUM> may comprise an interior permanent magnet (IPM) machine or an IPM synchronous machine (IPMSM). An IPMSM has many favorable advantages compared with conventional induction machines or surface mounted PM machines (SMPM) such as high efficiency, high power density, wide constant power operating region, maintenance free, for instance.

The sensor <NUM> (e.g., shaft or rotor speed detector) may comprise one or more of the following: a positon sensor, a direct current motor, an optical encoder, a magnetic field sensor (e.g., Hall Effect sensor), magneto-resistive sensor, and a resolver (e.g., a brushless resolver). In one configuration, the sensor <NUM> comprises a position sensor, where position data (e.g., angular rotor position) and associated time data are processed to determine speed or velocity data for the motor shaft <NUM> or rotor of the motor. In another configuration, the sensor <NUM> comprises a speed sensor, or the combination of a speed sensor and an integrator to determine the position of the motor shaft.

In yet another configuration, the sensor <NUM> comprises an auxiliary, compact direct current generator that is coupled mechanically to the motor shaft <NUM> of the motor <NUM> to determine speed of the motor shaft <NUM>, where the direct current generator produces an output voltage proportional to the rotational speed of the motor shaft <NUM>. In still another configuration, the sensor <NUM> comprises an optical encoder with an optical source that transmits a signal toward a rotating object coupled to the shaft <NUM> and receives a reflected or diffracted signal at an optical detector, where the frequency of received signal pulses (e.g., square waves) may be proportional to a speed of the motor shaft <NUM>.

In one configuration, the sensor <NUM> comprises a resolver with a first winding and a second winding, where the first winding is fed with an alternating current, where the voltage induced in the second winding varies with the frequency of rotation of the rotor. In another configuration, the position sensor <NUM> provides a substantially saw-tooth waveform or other waveform (e.g., substantially triangular or substantially sinusoidal) where the magnitude of the waveform varies over time and corresponds to a particular angular position of the rotor of the motor <NUM> or electric machine.

In <FIG>, the electronic data processing system <NUM> comprises an electronic data processor <NUM>, a data bus <NUM>, a data storage device <NUM>, and one or more data ports (<NUM>, <NUM>, <NUM>, <NUM> and <NUM>). The data processor <NUM>, the data storage device <NUM> and one or more data ports are coupled to the data bus <NUM> to support communications of data between or among the data processor <NUM>, the data storage device <NUM> and one or more data ports.

In one embodiment, the data processor <NUM> may comprise an electronic data processor, a microprocessor, a microcontroller, a programmable logic array, a logic circuit, an arithmetic logic unit, an application specific integrated circuit, a digital signal processor, a proportional-integral-derivative (PID) controller, or another data processing device or combination of data processing devices.

The data storage device <NUM> may comprise any magnetic, electronic, or optical device for storing data. For example, the data storage device <NUM> may comprise an electronic data storage device, an electronic memory, non-volatile electronic random access memory, one or more electronic data registers, data latches, a magnetic disc drive, a hard disc drive, an optical disc drive, or the like.

As shown in <FIG>, the data ports comprise a first data port <NUM>, a second data port <NUM>, a third data port <NUM>, a fourth data port <NUM> and a fifth data port <NUM>, although any suitable number of data ports may be used. Each data port may comprise a transceiver and buffer memory, for example. In one embodiment, each data port may comprise any serial or parallel input/output port.

In one embodiment as illustrated in <FIG>, the first data port <NUM> is coupled to the vehicle data bus <NUM>. In turn, the vehicle data bus <NUM> is coupled to the controller <NUM>. In one configuration, the second data port <NUM> may be coupled to the inverter switching circuit <NUM>; the third data port <NUM> may be coupled to the sensor <NUM>; the fourth data port <NUM> may be coupled to the analog-to-digital converter <NUM>; and the fifth data port <NUM> may be coupled to the terminal voltage feedback module <NUM>. The analog-to-digital converter <NUM> is coupled to the sensing circuit <NUM>.

In one embodiment of the electronic data processing system <NUM>, the torque command generation module <NUM> is associated with or supported by the first data port <NUM> of the electronic data processing system <NUM>. The first data port <NUM> may be coupled to a vehicle data bus <NUM>, such as a controller area network (CAN) data bus. The vehicle data bus <NUM> may provide data bus messages with torque commands to the torque command generation module <NUM> via the first data port <NUM>. The operator of a vehicle may generate the torque commands via a user interface, such as a throttle, a pedal, a controller <NUM>, or other control device.

In certain embodiments, the sensor <NUM> and the primary processing module <NUM> may be associated with or supported by a third data port <NUM> of the electronic data processing system <NUM>.

As used throughout this document, "approximately" used in conjunction with an angular position or other number shall mean plus or minus five percent of the angular position or other number. As used through this document, "around" used in conjunction with an angular position or another number shall mean plus or minus ten percent.

<FIG> is a block diagram that shows one embodiment of a notch filter <NUM> or the primary processing module <NUM> of <FIG> in greater detail. In one embodiment, the primary processing module <NUM> comprises a pre-processing unwrap module <NUM>, a notch filter <NUM>, a post-processing wrap module <NUM>, and a group delay compensator <NUM>. As illustrated, the pre-processing unwrap module <NUM> is coupled to a notch filter <NUM>. In turn, the notch filter <NUM> is coupled to a post-processing wrap module <NUM>. The post-processing wrap module <NUM> feeds an optional group delay compensator <NUM>. The group delay compensator <NUM> is indicated as optional by the dashed lines and may be deleted in alternate embodiments.

In one embodiment, the primary processing module <NUM> accepts a raw substantially saw-tooth waveform from the position sensor <NUM> and determines a refined saw-tooth waveform that it uses to output accurate rotor position data or accurate time-varying rotor position data. For example, the refined saw-tooth waveform may contain less distortion, by or from unwanted frequency components, than the raw substantially saw-tooth waveform. A pre-processing unwrap module <NUM> processes the raw substantially saw-tooth waveform prior to the notch filter <NUM>. The pre-processing unwrap module <NUM> decomposes the substantially saw-tooth signal into a sum of harmonically related sinusoidal functions. The notch filter <NUM> comprises three notch filters to filter, reject or attenuate a set (or range) of undesired frequency components. Each notch filter <NUM> may be tuned to a corresponding rejection frequency. In one configuration, the selection of damping ratio of the notch filter <NUM> is a tradeoff between the accuracy and settling time of a notch filter, and any suitable damping ration may be used that is less than approximately.

A post-processing wrap module <NUM> processes the substantially saw-tooth waveform after or from the notch filter <NUM>. The post-processing wrap module <NUM> reassembles the filtered harmonically related sinusoidal functions, less the removed frequency components, to a refined substantially saw-tooth waveform or signal.

In one embodiment, the post-processing wrap module <NUM> feeds a group delay compensator <NUM> to compensate for the impact of group delay versus frequency response that would otherwise degrade performance of the notch filter <NUM>. Further, the primary processing module <NUM> can use the filtered, refined saw-tooth waveform to estimate the rotor position, the rotor speed, or both of the electric motor with greater accuracy than otherwise possible with the raw or unfiltered substantially saw-tooth waveform.

<FIG> is a block diagram that shows one possible embodiment of a notch filter or the primary positioning module <NUM> of <FIG> in greater detail. The primary processing module <NUM> of <FIG> is similar to the primary processing module <NUM> of <FIG>, except the primary processing module <NUM> of <FIG> comprises a set of notch filters <NUM>, which are arranged in series, or in parallel in alternate embodiments. For example, the primary processing module <NUM> can replace the primary processing module <NUM> in <FIG>. Like reference numbers in <FIG>, <FIG> indicate like elements.

Each notch filter <NUM> within the set of notch filters <NUM> is tuned to the same or a different frequency component to reject targeted or undesired frequency components. The notch filter represents a set or series of filters <NUM> to filter, reject or attenuate a set of undesired frequency components (e.g., harmonic components or electromagnetic noise or interference from the position sensor <NUM> or resolver). As shown, the set of notch filters <NUM> comprises a first notch filter <NUM> through an Nth notch filter <NUM>, where N represents a whole number or a positive integer equal to or greater than two. According to the invention, a first notch filter <NUM> in the set of notch filters <NUM> is tuned to fundamental frequency of the input signals inputted to the motor <NUM>; a second notch filter <NUM> in the set of notch filters <NUM> is tuned to a second harmonic of the fundamental frequency; a third notch filter <NUM> in the set of notch filters <NUM> is tuned a frequency that is approximately <NUM> multiplied by the fundamental frequency. One or more notch filters <NUM> may be adjusted on a regular or periodic basis as the fundamental frequency of the input signals to the electric motor <NUM> vary over time, such as based on loads, torque commands, motor speed, motor operating mode, motor operating regions with respect to torque and speed, a pulse width modulation mode applied by the inverter switching circuit <NUM> to the motor <NUM>, or other factors.

In one embodiment, the primary processing module <NUM> accepts a raw substantially saw-tooth waveform from the position sensor <NUM> the pre-processing unwrap module <NUM> and determines a refined saw-tooth waveform that it outputs at the post-processing wrap module <NUM> or the group delay compensator <NUM>. Further, the primary processing module <NUM> can use the filtered, refined saw-tooth waveform to estimate the rotor position, the rotor speed, or both of the electric motor with greater accuracy than otherwise possible with the raw or unfiltered substantially saw-tooth waveform.

<FIG> is a flow chart of a first embodiment of a method for estimating a rotor positon of an electric motor with a notch filter <NUM>. The method of <FIG> begins in step S400.

In step S400, a motor <NUM> with a rotor rotates in response to one or more alternating current input signals. For example, an electronic data processing system <NUM> controls an inverter switching circuit <NUM> to provide one or more alternating current input signals (e.g., phases) to the motor <NUM>, such as pulse-width modulated signals consistent with the pulse width generation module <NUM>.

In step S402, a position sensor <NUM> generates a substantially saw-tooth waveform or other waveform indicative of a position of a rotor of the motor <NUM> versus time. For example, the position sensor <NUM> generates a substantially saw-tooth waveform, a substantially triangular waveform, a substantially sinusoidal waveform, or any another waveform (e.g., a pulse train of pulses or substantially rectangular waveform) that is capable of indicating the position of the rotor versus time. As used herein, in the context of substantially can mean generally, roughly, approximately or the equivalent of the form or appearance of a waveform, such as a waveform that is not ideal because of electromagnetic noise, measurement error, specifications of the position encoder or resolver, design tolerances, or device tolerances. In one embodiment, the position sensor <NUM> comprises a resolver that outputs the substantially saw-tooth waveform or other waveform at a resolver lobe frequency that is an integer multiple of the electrical fundamental frequency of the alternating current input signals. For example, this integer number may equal to one (<NUM>) in some cases, which means the number of resolver lobes of the position sensor <NUM> equals to the number of pole pairs of the motor <NUM>.

In step S406, a notch filter (<NUM> or <NUM>) filters or rejects one or more selected frequency components in the substantially saw-tooth waveform, or the other waveform (e.g., substantially triangular waveform or other suitable waveform) to reduce distortion of the substantially saw-tooth waveform, or the other waveform that would otherwise tend to cause inaccuracy in provided position data and speed data. The notch filter <NUM> or set of filters <NUM> attenuate a range of frequencies in accordance with a filter response, which can be expressed in terms of signal magnitude versus frequency. In one embodiment, a notch frequency (e.g. of peak attenuation), a notch frequency range (e.g., within a <NUM> decibel range or another suitable relative magnitude of peak attenuation) or notch frequencies (e.g., of peak or near peak attenuation) are configurable depending on applications, which may depend upon ambient electromagnetic noise in the operational environment, the specifications of the position encoder, the application of the motor as a traction drive motor for a vehicle, or to drive other vehicle systems; such as compressors, fuel pumps, coolant pumps, oil pumps, power steering pumps, hydraulic pumps; or other factors.

Step S406 may be carried out in accordance with various techniques that may be applied cumulatively. According to the invention, the selected frequency components of the notch filter <NUM> comprise multiple attenuating notches tuned to the following frequencies (e.g., of peak signal attenuation): the electrical fundamental frequency, a second harmonic of the fundamental frequency, and the fundamental frequency multiplied by <NUM>. Under a second technique, the selected frequency components are adjusted to vary with changes to the fundamental frequency during operation of the motor <NUM>.

Under a third technique, the notch filter (<NUM>, <NUM>, <NUM>) has a response in accordance with the following z-domain transfer function: <MAT> where: <MAT>.

Under a fourth technique, the notch filter <NUM> has a response derived from a matched pole-zero method to convert accurately an s-domain transfer function into a corresponding z-domain transfer function without distortion or warping of a discrete frequency response versus continuous frequency response for the notch filter <NUM>. In one embodiment, the fourth technique uses the equations set forth for the third technique for a notch filter <NUM> with two poles and two zeros in accordance with a matched pole-zero method, although in other embodiments a notch filter <NUM> with any positive integer value or positive whole number of equal poles and zeros can be used, along with corresponding equations.

In step S404, an electronic data processing system <NUM>, a primary processing module <NUM> or data processor <NUM> provides position data and speed data for the rotor based on the filtered substantially saw-tooth waveform or the filtered other waveform (e.g., filtered in step S406). Step S404 may be executed prior to, during, or after step S406.

<FIG> illustrates one possible example of distortion or warping that can result from transformation of signals between the s-domain and corresponding z-domain (transform function) that can occur in the absence of the matched pole-zero method, such as the third technique or the second technique for step S406 described in conjunction with <FIG>. The s-domain transform can be used to convert a time-varying signal into a Laplace transfer function (to model a notch filter response) that can be solved readily with algebraic equations. The z-domain transform converts a discrete time-varying signal into a complex-number, frequency-domain representation (to model a notch filter response), where the complex number can be expressed with a real number component and an imaginary number component, or where those components are expressed as an exponential power of e.

The vertical axis <NUM> of <FIG> represents a discrete frequency response of the notch filter (<NUM> or <NUM>) and the horizontal axis <NUM> represents a continuous frequency response of the notch filter (<NUM> or <NUM>) from bilinear transformation. An ideal substantially linear relationship or ideal curve <NUM> can be achieved with the matched pole-zero method, whereas the warped curve <NUM> distorts the frequency response in the z-domain from applying transfer functions in accordance with other methods than the matched pole-zero method.

Although it is possible to use pre-warping filtering to compensate for the warping of the conversion process between the s-domain and the z-domain, such pre-warping still tends to distort or delay (e.g., in a skewed, uneven, or frequency selective manner) certain components of the frequencies that are passed through the notch filter (<NUM> or <NUM>).

<FIG> is a flow chart of a second embodiment of a method for estimating a rotor position, of an electric motor <NUM>, with a notch filter <NUM>. The method of <FIG> is similar to the method of <FIG>, except the method of <FIG> further comprises step S405. Like reference numbers in <FIG> and <FIG> indicate like steps, features or procedures.

Step S405 can be performed prior to or during step S406, for example.

In step S405, the electronic data processing system <NUM>, primary processing module <NUM>, or data processor <NUM> determines or implements an attenuation versus frequency response derived from a matched pole-zero method to convert accurately an s-domain transfer function into a corresponding z-domain transfer function without material (e.g., significant) distortion or warping of a discrete frequency versus continuous frequency for the notch filter <NUM> or multiple notch filters <NUM> used in series. For example, the conversion from the s-domain transfer function into a corresponding z-domain transfer function may use one or more of the following equations: <MAT> where:.

Although the above equation applies to a notch filter (<NUM>, <NUM>, <NUM>) with two zeros and two poles, the comparable equation or equations may be derived for any positive integer number of matched zeros and poles, for example.

In step S406, the notch filter (<NUM>, <NUM>, <NUM>) filters or rejects one or more selected frequency components (e.g., at peak attenuation frequencies) in the substantially saw-tooth waveform, or the other waveform (e.g., substantially triangular waveform or other suitable waveform) to reduce distortion of the substantially saw-tooth waveform, or the other waveform that would otherwise tend to cause inaccuracy in provided position data and speed data. Here, in <FIG>, the notch filter (<NUM>, <NUM>, <NUM>) can filter or reject the frequency components consistent the filter configuration of step S405, where the notch filter (<NUM>, <NUM>, <NUM>) has attenuation versus frequency response derived from a matched pole-zero method to convert accurately an s-domain transfer function into a corresponding z-domain transfer function without material (e.g., significant) distortion or warping of a discrete frequency versus continuous frequency. In one embodiment, the notch frequency or notch frequencies (e.g., peak attenuation frequencies or peak attenuation range that corresponds to a half-power or <NUM> decibel bandwidth from peak signal magnitude) are configurable depending on applications, which may depend upon ambient electromagnetic noise in the operational environment, the specifications of the position encoder, the application of the motor as a traction drive motor for a vehicle, or to drive other vehicle systems; such as compressors, fuel pumps, coolant pumps, oil pumps, power steering pumps, hydraulic pumps; or other factors.

In step S404, an electronic data processing system <NUM>, a primary processing module <NUM> or data processor <NUM> provides position data and speed data for the rotor based on the filtered substantially saw-tooth waveform or the filtered other waveform. Step S404 may be executed prior to, during, or after step S406.

<FIG> is a flow chart of a third embodiment of a method for estimating a rotor positon, of an electric motor <NUM>, with a notch filter <NUM>. The method of <FIG> is similar to the method of <FIG>, except the method of <FIG> further comprises step S407. Like reference numbers in <FIG> and <FIG> indicate like steps, features or procedures.

In step S407, the electronic data processing system <NUM>, primary processing module <NUM>, or data processor <NUM> determines or implements an attenuation versus frequency response of a notch filter (<NUM>, <NUM>, <NUM>) in accordance with the following z-domain transfer function: <MAT> where: <MAT>.

In step S406, the notch filter (<NUM>, <NUM>, <NUM>) filters or rejects one or more selected frequency components in the substantially saw-tooth waveform, or the other waveform (e.g., substantially triangular waveform or other suitable waveform) to reduce distortion of the substantially saw-tooth waveform, or the other waveform that would otherwise tend to cause inaccuracy in provided position data and speed data. Here, in <FIG>, the notch filter (<NUM>, <NUM>, <NUM>) can filter or reject the frequency components consistent the filter configuration of step S407, where the notch filter (<NUM>, <NUM>, <NUM>) has attenuation versus frequency response derived from a matched pole-zero method to convert accurately an s-domain transfer function into a corresponding z-domain transfer function without material (e.g., significant) distortion or warping of a discrete frequency versus continuous frequency. In one embodiment, the notch frequency or notch frequencies are configurable depending on applications, which may depend upon ambient electromagnetic noise in the operational environment, the specifications of the position encoder, the application of the motor as a traction drive motor for a vehicle, or to drive other vehicle systems; such as compressors, fuel pumps, coolant pumps, oil pumps, power steering pumps, hydraulic pumps; or other factors.

In step S404, an electronic data processing system <NUM>, a primary processing module <NUM> or data processor provides position data and speed data for the rotor based on the filtered substantially saw-tooth waveform or the filtered other waveform. Step S404 may be executed prior to, during, or after step S406.

<FIG> is a flow chart of a fourth embodiment of a method for estimating a rotor positon of an electric motor with a notch filter <NUM>. The method of <FIG> is similar to the method of <FIG>, except the method of <FIG> further comprises step S409 and S411 and replaces step S404 with S412. Like reference numbers in <FIG> and <FIG> indicate like steps, features or procedures.

In step S400, a motor <NUM> with a rotor rotates in response to one or more alternating current input signals. For example, an electronic data processing system <NUM> controls an inverter switching circuit <NUM> to provide one or more alternating current input signals to the motor <NUM>, such as pulse-width modulated signals.

In step S402, a position sensor <NUM> generates a substantially saw-tooth waveform or other waveform indicative of a position of a rotor of the motor <NUM> versus time. For example, the position sensor <NUM> generates a substantially saw-tooth waveform, a substantially triangular waveform, a substantially sinusoidal waveform, or any another waveform (e.g., a pulse train of pulses or substantially rectangular waveform) that is capable of indicating the position of the rotor versus time.

In step S409, an electronic data processing system <NUM>, the primary processing module <NUM> or the pre-processing unwrap module <NUM> processes the substantially saw-tooth waveform or other waveform prior to rejecting or filtering by a notch filter <NUM> to decompose the substantially saw-tooth signal or other waveform signal into a sum of harmonically related sinusoidal functions. Step S409 may be carried out in accordance with various techniques, which may be applied separately or cumulatively.

Under a first technique, the pre-processing unwrap module <NUM> processes the substantially saw-tooth waveform to remove an extra second harmonic frequency component from an input signal to the notch filter <NUM> or to remove another undesired frequency component (e.g., by aligning a peak attenuation frequency or range of the notch filter <NUM> with estimated or actual unwanted frequency or interference signal).

Under a second technique, the electronic data processing system <NUM>, the primary processing module <NUM> or the pre-processing unwrap module <NUM> processes the substantially saw-tooth waveform or other waveform in accordance with the following equation: <MAT> where:.

In step S406, the notch filter <NUM> filters or rejects one or more selected frequency components in the substantially saw-tooth waveform, or the other waveform (e.g., in decomposed sinusoidal form) to reduce distortion of the substantially saw-tooth waveform, or the other waveform that would otherwise tend to cause inaccuracy in provided position data and speed data. For example, the other waveform may comprise a substantially triangular waveform or other suitable waveform, where the saw-tooth waveform may be preferred to eliminate the requirement for ambiguity resolution (e.g., one-half of the triangular wave can be used or the positive or negative slope of the triangular wave can be detected to eliminate ambiguity) of angular positions with respect to other suitable waveforms. Here, in <FIG>, the notch filter (<NUM>, <NUM>) can filter or reject the frequency components consistent with an output of the pre-processing unwrap module <NUM> in step S409 to represent the substantially saw-tooth waveform or other waveform as a sum of a set of sinusoidal functions. In one embodiment, the notch frequency or notch frequencies (e.g., peak frequency attenuation) are configurable depending on applications, which may depend upon ambient electromagnetic noise in the operational environment, the specifications of the position encoder, the application of the motor as a traction drive motor for a vehicle, or to drive other vehicle systems; such as compressors, fuel pumps, coolant pumps, oil pumps, power steering pumps, hydraulic pumps; or other factors.

In step S411, an electronic data processing system <NUM>, the primary processing module <NUM> or the post-processing wrap module <NUM> processes the substantially saw-tooth waveform or other waveform after rejecting or filtering by the notch filter (<NUM>, <NUM>) to reassemble or compose the substantially saw-tooth signal or other waveform signal into a sum of harmonically related sinusoidal functions, less the removed or rejected frequency components. For example, step S411 yields a refined substantially saw-tooth signal or another refined signal that more closely resembles an ideal or undistorted saw-tooth signal.

In one embodiment, the electronic data processing system <NUM>, the primary processing module <NUM> or the post-processing wrap module <NUM> processes the substantially saw-tooth waveform or other waveform in accordance with the following equation: <MAT>.

Before, during or after step S411, the electronic data processing system <NUM>, the primary processing module <NUM> or compensator <NUM> may compensate for the group delay to provide a substantially uniform delay. If the notch filter (<NUM>, <NUM>) comprises a nonlinear second order filter with a group delay that is function of frequency, the compensator <NUM> compensates for or adjusts the delay versus frequency response of the notch filter <NUM> to provide a more uniform delay versus frequency.

In step S412, an electronic data processing system <NUM>, a primary processing module <NUM> or data processor <NUM> provides position data and speed data for the rotor based on the processed and filtered substantially saw-tooth waveform, or the processed and filtered other waveform (e.g., consistent with the refined signal or refined substantially saw-tooth signal). Step S412 may be executed prior to, during, or after step S411, alone or in combination with step S406.

<FIG> shows a graph <NUM> of one possible signal output of a position sensor <NUM> in comparison to an ideal or model signal output of the position sensor <NUM>. In <FIG>, the vertical axis <NUM> represents the angular position of the rotor of the motor <NUM> in degrees. The horizontal axis <NUM> represents time, where the duration of each period T corresponds to a full angular rotation of the rotor of the motor <NUM> or electric machine. During each period, T, the angular position of the rotor can vary from zero to approximately three-hundred and sixty degrees versus time.

In <FIG>, two representations of the sensor signal are provided: (<NUM>) a first representation <NUM> of the sensor signal represents an ideal position versus time relationship, or a first representation <NUM> in which the waveform represents a refined saw-tooth waveform (e.g., after filtering by one or more notch filters (<NUM>, <NUM>) to remove undesired frequency components), and (<NUM>) a second representation <NUM> of the sensor signal in which the (raw) substantially saw-tooth waveform is distorted by undesired frequency components. The difference between the first representation <NUM> and the second representation at any time along the horizontal axis represents a potential or actual position error in the angular position of the rotor of the motor <NUM> or electric machine.

As illustrated, the first representation <NUM> is shown in dashed lines in <FIG>. The first representation <NUM> or ideal saw-tooth waveform may comprise a pure saw-tooth waveform that approaches a perfectly formed or shaped saw-tooth waveform, consistent with mathematical representations of the ideal saw-tooth waveform. In one configuration, with respect to the second representation <NUM> or the distorted substantially saw-tooth waveform, the undesired frequency components may comprise harmonics or extra second harmonics of the fundamental frequency (e.g., <NUM> ω<NUM>) of an inverter or motor controller. The notch filter (<NUM> or <NUM>) must reject or filter out the undesired second harmonic frequency component, while the notch filter (<NUM>, <NUM>) retains untouched the saw-tooth inherent second harmonic frequency component because the first representation or ideal saw-tooth waveform inherently has proper second harmonics of fundamental frequency. After filtering with one or more notch filters (<NUM>, <NUM>), the substantially saw-tooth waveform is transformed from the second representation to more closely resemble the first representation.

The method and system disclosed herein is well-suited for reducing or eliminating unwanted frequency components in the signal outputted by a position sensor, such as resolver to improve accuracy of rotor position estimates versus time. For example, accurate determination of the position of the rotor for motors (e.g., IPM machines) can significantly improve motor control performance to achieve desired output torque and power level and assure robust controllability.

Claim 1:
A system for estimating a rotor position of a motor, the system comprising:
a motor (<NUM>) with a rotor configured to rotate in response to one or more alternating current input signals;
a position sensor (<NUM>) configured to generate a substantially saw-tooth waveform indicative of a position of the rotor;
a primary processing module (<NUM>) configured to provide position data and speed data for the rotor; and
a notch filter (<NUM>) configured to reject one or more selected frequency components in the substantially saw-tooth waveform to reduce distortion off the substantially saw-tooth waveform that would otherwise tend to cause inaccuracy in the provided position data and speed data; and characterized in that the system further comprises:
a pre-processing unwrap module (<NUM>) for processing the substantially saw-tooth waveform prior to notch filter (<NUM>) and a post-processing wrap module (<NUM>) for processing the substantially saw-tooth waveform after the notch filter (<NUM>); wherein the pre-processing unwrap (<NUM>) module is configured to decompose the substantially saw-tooth signal into a sum of harmonically related sinusoidal functions and wherein the post-processing wrap module (<NUM>) is configured to reassemble the filtered harmonically related sinusoidal functions, less the removed frequency components, to a refined substantially saw-tooth signal; and
wherein the notch filter (<NUM>) comprises a first notch filter (<NUM>) tuned to a fundamental frequency of input signals applied to the motor, a second notch filter (<NUM>) tuned to a second harmonic of the fundamental frequency, and a third notch filter (<NUM>) tuned to a frequency that is approximately <NUM> multiplied by the fundamental frequency; and
wherein the primary processing module (<NUM>) is configured to provide position data and speed data for the rotor based on the refined substantially saw-tooth waveform.