Patent Description:
In a typical software implementation to monitor the angular position of the rotor, one step is to read the sine and cosine feedback signals of stator windings of a resolver. In traditional systems, an interface to the resolver includes a primary sine excitation signal to the rotor winding which is fed by the controller card (micro-controller or field programmable gate array (FPGA) and signal conditioning circuitry) and the feedback from the stator winding is processed by the controller card (signal conditioning circuitry and external ADC or ADC of the micro-controller). The sine and cosine feedback from the stator windings is processed through filtering and signal conditioning and is read by the ADC. These feedback signals are used in conjunction with a resolver excitation signal to determine the angle and the angular quadrant. The tan inverse or arc tan function is generally used to determine the angle and based on the sign, the quadrant is determined.

The number of instruction cycles consumed in the arc tan function computation which includes quadrant determination, typically exceeds <NUM> instruction cycles and overall consumes around <NUM>% of the cycles for resolver function implementation. Other techniques may also be used to generate sinusoidal waveforms for driving the resolver primary. <CIT> shows a known resolver interface system.

The conventional techniques have been considered satisfactory for their intended purpose. However, there is an ever present need for improved systems and methods which can be used to compute the shaft angle. This disclosure provides a solution for this need.

A resolver interface system for a motor drive system is provided as defined by claim <NUM>. The processing system can be at least one of a micro-controller or a field-programmable gate array. The system can include a resolver having a first excitation input, a second excitation input and a rotation signal output. A SIN wave generator can be operatively connected to the first excitation input to provide a SIN excitation signal thereto. A COS wave generator can be operatively connected to the second excitation input to provide a COS excitation signal thereto. A rotor winding can be operatively connected to the rotation signal output to output the rotation signal. A first stator winding can be operatively connected to the first excitation input to receive a first excitation signal. A second stator winding can be operatively connected to the second excitation input to receive a second excitation signal.

In accordance with another aspect, a method of determining a shaft angle of a rotor is provided as defined by claim <NUM>.

Reference will now be made to the drawings wherein like reference numerals identify similar structural features or aspects of the subject disclosure. For purposes of explanation and illustration, and not limitation, an illustrative view of an embodiment of a resolver interface system in accordance with the disclosure is shown in <FIG> and is designated generally by reference character <NUM>. Other embodiments and/or aspects of this disclosure are shown in <FIG> and <FIG>. Certain embodiments described herein can be used to provide a resolver interface system that eases the computation in software, thereby reducing the overhead on the CPU (computer processing unit).

As shown in <FIG>, a resolver <NUM> is an absolute angle sensor that uses passive transformer technology. The resolver <NUM> is a rotary transformer where the magnitude of the energy through the resolver rotor <NUM> and stator windings 106a and 106b varies sinusoidally as a rotor shaft <NUM> rotates. The resolver <NUM> has one rotor winding (U<NUM>) <NUM>, and two stator windings 106a and 106b, e.g. the SIN and COS Windings (U<NUM>, U<NUM>). The rotor winding <NUM> is located in the rotor of the resolver, the SIN and COS (e.g. stator) windings 106a and 106b in the stator. The stator windings 106a and 106b are mechanically displaced <NUM> degrees from each other.

With reference now to <FIG>, a resolver interface system <NUM>, e.g. for use in a motor drive, uses a phase-analog technique where the two stator windings 106a and 106b of a resolver <NUM> are excited by a SIN excitation signal and a COS excitation signal (STAT_EXC_SIN and STAT_EXC_COS), respectively, that are in phase quadrature to each other. This induces a voltage in the rotor (rotor) winding <NUM> with an amplitude and frequency that are fixed and a time phase that varies with shaft angle. This is the opposite of how a traditional resolver interface system normally works (with excitation provided to the rotor and feedback from the stators). STAT_EXC_SIN and STAT_EXC_COS are generated using respective SIN and COS wave generators 122a and 122b, each which includes a digital-to-analog converter (DAC) and the associated signal conditioning circuitry.

With continued reference to <FIG>, the resolver <NUM> has a first excitation input <NUM>, a second excitation input <NUM> and a rotation signal output <NUM>. The DAC is interfaced to a processing unit, e.g. a micro-controller <NUM>, through a serial peripheral interface (SPI). Between each wave generator 122a and 122b and their respective inputs <NUM> and <NUM>, respective second order low-pass filters 130a and 130b, respective op-amp based amplifier circuits 132a and 132b and respective protection devices 134a and 134b are used. Second order low-pass filters 130a and 130b filter noise from their respective excitation signal, STAT_EXC_SIN or STAT_EXC_COS. Op-amp based amplifier circuits 132a and 132b amplifies their respective excitation signal, STAT_EXC_SIN or STAT_EXC_COS, to meet the voltage and drive strength requirement of the sensor primary. Each line into signal inputs <NUM> and <NUM> includes a respective feedback loop 136a and 136b branching therefrom and going back to respective analog to digital converter (ADC) inputs 140a and 140b. The respective feedback signals, STAT_EXC_SIN_Loopback and STAT_EXC_COS_Loopback are run through respective scaling circuits with DC shift 138a and 138b. As described in more detail below, the induced signal output (ROT_OUT) from the rotor winding <NUM> is converted to produce a digital signal by measuring the change in its phase shift with respect to the reference signal.

With continued reference to <FIG>, the SIN wave generator 122a is operatively connected to the first excitation input to provide the SIN excitation signal (STAT_EXC_SIN) thereto. The SIN wave generator 122a is operatively connected to a first phase detector 114a to provide a SIN reference signal thereto. The first stator winding 106a is operatively connected to the first excitation input <NUM> to receive the SIN excitation signal (STAT_EXC_SIN). A first scaling network 118a is positioned between the SIN wave generator 122a and the first phase detector 114a.

As shown in <FIG>, a COS wave generator 114b is operatively connected to the second excitation input <NUM> to provide the COS excitation signal (STAT_EXC_COS) thereto. The COS wave generator 122b is operatively connected to a second phase detector 114b to provide a COS reference signal thereto. The second stator winding 106b is operatively connected to the second excitation input <NUM> to receive the COS excitation signal (STAT_EXC_COS). A second scaling network 118b is positioned between the COS wave generator 122b and the second phase detector 114b. The rotor winding <NUM> is operatively connected to the rotation signal output <NUM> to output the rotation signal (ROT_OUT). Phase detectors 114a and 114b are each operatively connected to the rotation signal output <NUM> to receive the rotation signal (ROT_OUT) therefrom and generate a phase difference signal. A micro-controller <NUM> operatively connected to the phase detectors 114a and 114b to determine a shaft angle of a rotor shaft, e.g. rotor shaft <NUM>.

With continued reference to <FIG>, the ROT_OUT signal from rotation signal output <NUM> is compared with either of the reference signals (i.e. either STAT_EXC_SIN or STAT_EXC_COS as they are in quadrature with each other) This is done by passing the signals STAT_EXC_SIN and STAT_EXC_COS through respective scaling networks 118a and 118b to match the amplitudes and then providing the input to respective phase detectors 114a and 114b. Each phase detector 114a and 114b produces triangular pulses <NUM> (schematically shown by the graph in <FIG> depicting voltage over time) which represent the zero crossing of the signals and indicates the phase difference between ROT_OUT and STAT_EXC_SIN or STAT_EXC_COS and represents the shaft angle.

As shown in <FIG>, each phase detector 114a and 114b is operatively connected to a respective differentiator 116a and 116b. Each differentiator also includes a DC level-shift component. The respective outputs 115a and 115b of each phase detector 114a and 114b are fed to their respective differentiator 116a and 116b to convert each phase difference signal into respective pulse outputs (ROT_OUT_1 and ROT_OUT_2) to be fed to a timer/pulse capture input of a micro-controller <NUM>, while keeping the zero crossing points the same. Each triangular wave <NUM> (e.g. the phase difference signal) is transformed to a square wave (e.g. a pulse) <NUM> (schematically shown by the graph in <FIG> depicting voltage over time) in line with the rising and falling levels of the input waveform by respective differentiators 116a and 116b. The pulse width/duty cycle represents the shaft angle, which is then measured in the micro-controller <NUM>. The pulses are captured by timer units 124a and 124b of a micro-controller or FPGA I/O pins 224a and 224b (described below) for processing the angle.

With continued reference to <FIG>, system <NUM> provides phase detectors 114a and 114b along with respective differentiator circuits 116a and 116b that produce pulses which correspond to the phase shift with respect to the reference signal. Because timer units 124a and 124b in microcontrollers have a dedicated engine, which works independent of the CPU, overhead on the CPU can be reduced as compared with traditional interface systems. Specifically, overhead on software for angle computation in resolver applications is reduced. By using a high end timer function in the resolver interface system <NUM>, it can work independent of the CPU, thus conserving precious CPU time for a micro-controller. Additionally, the use of dual phase detectors 114a and 114b allow for redundancy.

With reference now to <FIG>, a resolver interface system <NUM> for a field-programmable gate array (FPGA) based resolver interface is shown. System <NUM> is the same as system <NUM> except that instead of a micro-controller <NUM> as the processing system, a FPGA <NUM> is used. For common aspects between systems <NUM> and <NUM>, the same numerals are used for ease of reference. The description above relative to those same numerals of <FIG> readily applies to those items identified in <FIG>. In system <NUM>, sine modulated pulse-width modulations (PWM) are generated by respective PWM I/O 222a and 222b and 4th order low pass filters 230a and 230b are used to generate the respective excitation signals (STAT_EXC_SIN or STAT_EXC_COS).

System <NUM> includes an analog digital converter (ADC) interfaced to the FPGA through a serial peripheral interface (SPI). Respective op-amp based amplifier circuits 132a and 132b and respective protection devices 134a and 134b are the same as those in <FIG>. Respective feedback loops 136a and 136b are the same as <FIG>, except that they pass through respective ADCs 240a and 240b exterior to the FPGA. After passing through respective ADCs 240a and 240b, they return back into respective SPIs 242a and 242b of the FPGA <NUM>. Respective scaling circuits with DC shift 138a and 138b are the same as those of <FIG>. The phase detectors 114a and 114b and differentiator with phase shift blocks 116a and 116b remain the same and the pulse output <NUM> can be read by the FPGA <NUM> in a manner similar to micro-controller <NUM> to determine the shaft angle, which is described in more detail below. The interface system <NUM> is well suited for FPGA based resolver interface systems, as I/O signal generation and capture can be done easily.

As shown in <FIG>, each phase detector 114a and 114b can use a Gilbert Multiplier cell (<FIG>) where, when unmodulated signals of identical frequency are applied to its two inputs, the circuit behaves as a phase detector and produces an output whose DC component (average voltage, Vaverage) is proportional to the phase difference between the two inputs. For example, consider two input waveforms (square wave inputs Vin1, Vin2), shown in <FIG>, which are applied to a Gilbert multiplier. By assuming that both inputs are large in magnitude, all the transistors in the circuit will behave as switches. The inputs applied to the Gilbert multiplier in the context of this disclosure are large magnitude sine wave inputs and the working principle of the Gilbert multiplier remains the same. The output waveform that results, shown in <FIG>, consists of a DC component and a component at twice the incoming frequency. The DC component represents the average voltage (Vaverage), where VO is the DC component in the phase detector output, where t is time, IEE represents the emitter current, RC is the collector resistance in the Gilbert Cell circuitry in <FIG>, where Φ represents the phase, where ω<NUM> is the angular frequency and where d(ω<NUM>t) represents a differential element. <MAT> <MAT> In <FIG>, VCC represents the positive power supply to the Gilbert Cell, -VEE represents the negative power supply to the Gilbert Cell. In <FIG>, A<NUM> and A<NUM> represent the areas used to determine the integral function for calculating the Vaverage.

The average voltage (Vaverage) for a pulse waveform can be determined by the duty cycle (d) of the waveform by using the following equation, where Vpeak is the peak voltage: Vaverage = d*Vpeak. Relating the two expressions, the relation between the phase and the duty cycle is: <MAT>.

In accordance with another aspect, a method of determining a shaft angle of a rotor, e.g. rotor shaft <NUM>, includes applying an excitation input to stator windings, e.g. stator windings 106a and 106b. The method includes receiving a rotation signal output from a rotor winding, e.g. rotor winding <NUM>, with at least one phase detector, e.g. phase detector 114a and 114b. The method includes generating a phase difference signal based on the rotation signal output with the phase detector. The method includes determining a shaft angle of the rotor with a processing unit, e.g. a micro-controller <NUM> or FPGA <NUM>, based on the phase difference signal.

The method includes converting the phase difference signal of each phase detector into a respective pulse output with a respective differentiator, e.g. a differentiator 116a and 116b. The excitation input is a SIN wave. Applying the excitation input includes applying the SIN wave to the first stator winding. The excitation input is a COS wave. Applying the excitation input includes applying the COS wave to the second stator winding. The method includes providing the excitation input to each phase detector as a reference signal, wherein providing the excitation input includes scaling an amplitude of each excitation input with a respective scaling network, e.g. a scaling network 118a or 118b.

Aspects of the this disclosure may be described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of this disclosure. It will be understood that each block of any flowchart illustrations and/or block diagrams, and combinations of blocks in any flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in any flowchart and/or block diagram block or blocks.

Any suitable combination(s) of any disclosed embodiments and/or any suitable portion(s) thereof are contemplated herein as appreciated by those having ordinary skill in the art in view of this disclosure.

Claim 1:
A resolver interface system for a motor drive system comprising:
two phase detectors (114a, 114b) each configured to be operatively connected to a rotation signal output of a resolver and configured to receive a rotation signal therefrom and generate a respective phase difference signal; and
two differentiators (116a, 116b) each operatively connected to an output of a respective one of the two phase detectors and configured to convert the respective phase difference signal of the phase detector into a respective pulse output; and characterized by further comprising
a processing system (<NUM>) operatively connected to the differentiators and configured to read the pulse outputs and determine a shaft angle of a rotor, based on pulse widths or duty cycles of the pulse outputs, wherein the processing system includes two timer units (124a, 124b) each operatively connected to a respective one of the two differentiators and configured to receive the respective pulse output therefrom;
a SIN wave generator (122a) operatively connected to one of the phase detectors (114a) and configured to provide a SIN reference signal thereto;
a first scaling network (118a) positioned between the SIN wave generator and the phase detector (114a);
a COS wave generator (122b) operatively connected to another of the phase detectors (114b) and configured to provide a COS reference signal thereto; and
a second scaling network (118b) positioned between the COS wave generator and the phase detector (114b).