System and method for resolver and motor control with enhanced speed and direction monitoring - Patents.com

By receiving and comparing the sine wave and cosine wave feedback signals provided by the analyzer, determining the rotation direction and speed of the motor, and taking safety measures when signals are detected, the problem of low functional safety of the existing motor system is solved and the system safety is improved.

JP7660761B2Active Publication Date: 2025-04-11PARKER HANNIFIN CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024506957
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-08-23
Filing Date
2022-05-24
Publication Date
2025-04-11
Estimated Expiration
2042-05-24

AI Technical Summary

Technical Problem

Existing motor systems lack methods to evaluate sensor signal accuracy, resulting in low functional safety, especially in the event of sensor failure, which can lead to dangerous misoperation.

Method used

By receiving the sine wave feedback signal and cosine wave feedback signal provided by the analyzer coupled from the motor output shaft, the corresponding DC sine wave signal and DC cosine wave signal are generated and compared to determine the rotation direction and speed of the motor, and taking safety measures when signals are detected inconsistent.

Benefits of technology

Improves the functional safety of the motor system, ensuring that the sensor signal is inconsistent, can be switched to safe mode or low performance mode, and prevents dangerous misoperation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007660761000012
    Figure 0007660761000012
  • Figure 0007660761000013
    Figure 0007660761000013
  • Figure 0007660761000014
    Figure 0007660761000014
Patent Text Reader

Abstract

An exemplary method includes: receiving a sine wave feedback signal and a cosine wave feedback signal from a resolver; generating a rectified sine wave signal and a rectified cosine wave signal; determining a direction of rotation of a shaft of an electric motor using the sine wave feedback signal, the cosine wave feedback signal, the rectified sine wave signal, and the rectified cosine wave signal; converting the rectified sine wave signal and the rectified cosine wave signal to a signed sine wave signal and a signed cosine wave signal, respectively, using information related to the determining the direction of rotation; determining a speed of rotation of the shaft using the signed sine wave signal and the signed cosine wave signal; comparing the direction of rotation and the speed of rotation to the direction of rotation and the speed of each rotation determined by a resolver-to-digital converter; and operating the electric motor based on the comparing step.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] <CROSS REFERENCE TO RELATED APPLICATIONS> This application claims priority to U.S. Provisional Patent Application No. 63 / 235,833, filed August 23, 2021, the entire contents of which are incorporated by reference into this application as if fully set forth herein. [Background technology]

[0002] Electric motors are used in a variety of applications, such as in industrial equipment, vehicles (eg, electric vehicles), and mobile hydraulic machines (eg, wheel loaders, excavators, etc.). for example, The electric motor can drive a pump, which in turn provides fluid flow to drive a hydraulic actuator. In another example, electric motors are used in electric vehicles.

[0003] The electric motor may include a rotational position sensor configured to provide sensor information indicative of the position, speed, and / or direction of rotation of an output shaft of the motor, and a motor controller receives the sensor information and implements closed-loop feedback control to control the speed and torque of the motor.

[0004] The motor controllers of existing electric motor systems may not have a way to evaluate whether the sensor information is accurate or whether an error has occurred (e.g., whether the sensor or the sensor's signal processing is malfunctioning and producing erroneous feedback). Thus, existing motor systems do not have a high level of functional safety. For example, if a sensor malfunctions and the sensor signal is inaccurate, the motor controller may continue to operate the motor based on such inaccurate information, which may be dangerous.

[0005] It may be desirable to enhance the functional safety of electric motors. In particular, it may be desirable to implement further processing to check the signal integrity of the rotational position sensor signals to improve the confidence level of the speed and direction estimates determined based on said sensor signals. This may enhance the functional safety of the motor and may implement corrective safety measures if the controller detects any inconsistencies.

[0006] It is with respect to these and other considerations that the disclosure made herein is presented. Summary of the Invention [Problem to be solved by the invention]

[0007] This disclosure describes implementations relating to systems and methods for resolver and motor control with enhanced speed and direction monitoring. [Means for solving the problem]

[0008] In a first exemplary implementation, the disclosure describes a method that includes: receiving, at a motor controller, sine and cosine feedback signals from a resolver coupled to an output shaft of an electric motor, where the sine and cosine feedback signals modulate an excitation signal provided to the resolver; generating rectified sine and cosine feedback signals by sampling the sine and cosine feedback signals at a frequency lower than the respective frequencies of the excitation signal; and determining, by the motor controller, a direction of rotation of the output shaft using the sine, cosine feedback, rectified sine, and rectified cosine feedback signals. converting the rectified sine wave signal and the rectified cosine wave signal into a signed sine wave signal and a signed cosine wave signal, respectively, using information related to the determining the direction of rotation step; determining, by the motor controller, a speed of rotation of the output shaft using the signed sine wave signal and the signed cosine wave signal; comparing the direction of rotation and the speed of rotation determined by the motor controller with the directions and speeds determined by a resolver-to-digital converter using the sine wave feedback signal and the cosine wave feedback signal; and operating the electric motor by the motor controller based on the comparing step.

[0009] In a second exemplary implementation, the present disclosure describes an electric motor that includes: a resolver comprising: (i) a resolver stator having a primary coil, a sine coil, and a cosine coil; and (ii) a resolver rotor mounted on an output shaft of the electric motor and configured to rotate with the output shaft, the resolver rotor comprising a secondary coil; a resolver-to-digital converter configured to (i) provide an excitation signal to the primary coil of the resolver stator, where the excitation signal excites the secondary coil of the resolver rotor to generate a sine wave feedback signal in the sine wave coil and a cosine wave feedback signal in the cosine wave coil, (ii) receive the sine wave feedback signal and the cosine wave feedback signal, and (iii) use the sine wave feedback signal and the cosine wave feedback signal to determine a direction and a speed of rotation of the output shaft; and a motor controller. The motor controller includes one or more processors and a non-transitory computer-readable medium having instructions stored thereon that, when executed by the one or more processors, cause the motor controller to perform operations including operations of the method of the first exemplary implementation.

[0010] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the exemplary aspects, implementations, and features described above, further aspects, implementations, and features will become apparent by reference to the drawings and the following detailed description.

[0011] The novel features believed characteristic of the illustrative embodiments are set forth in the appended claims, however these illustrative embodiments, together with their preferred modes of use, further objects and explanations, will best be understood by reference to the following detailed description of illustrative embodiments of the present disclosure taken in conjunction with the accompanying drawings. [Brief description of the drawings]

[0012] [Figure 1A]FIG. 1A illustrates a perspective view of an electric motor according to an example implementation. [Figure 1B] FIG. 1B illustrates a side view of the electric motor of FIG. 1 according to an example implementation. [Figure 1C] FIG. 1C illustrates a front view of the electric motor of FIG. 1 according to an example implementation. [Diagram 2] FIG. 2 illustrates an exploded view of a resolver according to an example implementation. [Diagram 3] FIG. 3 illustrates a schematic diagram of a resolver according to another example implementation. [Figure 4A] FIG. 4A illustrates a graph of an excitation signal according to an example implementation. [Figure 4B] FIG. 4B illustrates a graph of a sinusoidal feedback signal generated in a sinusoidal coil, according to an example implementation. [Figure 4C] FIG. 4C illustrates a graph of a cosine feedback signal generated in a cosine coil, according to an example implementation. [Diagram 5] FIG. 5 illustrates a block diagram of a control system for an electric motor according to an example implementation. [Figure 6] FIG. 6 illustrates a graph showing sampled data and applied windows, according to an example implementation. [Figure 7] FIG. 7 illustrates a block diagram of a sensor signal processing module according to an example implementation. [Figure 8] FIG. 8 illustrates a graph showing the identification and separation of the positive half cycle or the negative half cycle, whichever occurs first, within each window of FIG. 6, according to an example implementation. [Figure 9] FIG. 9 illustrates a graph showing integral values ​​of positive and negative half cycles of sine and cosine feedback signals according to an example implementation. [Figure 10] FIG. 10 illustrates a graph showing a first logic signal indicating when the rectified cosine wave signal exceeds the rectified sine wave signal in accordance with an example implementation. [Figure 11]FIG. 11 illustrates a graph showing the sine feedback signal, the cosine feedback signal, the first logic signal 1002, and the second logic signal during positive rotation, according to an example implementation. [Figure 12] FIG. 12 illustrates a graph showing the sine feedback signal, the cosine feedback signal, the first logic signal, and the second logic signal during negative rotation, according to an example implementation. [Figure 13] FIG. 13 is a graph illustrating a portion of a rectified sine signal and a rectified cosine signal with state and toggle signals during positive rotation, according to an example implementation. [Figure 14] FIG. 14 is a graph illustrating reconstructed signed sine and signed cosine signals according to an example implementation. [Figure 15] FIG. 15 is a graph illustrating a portion of a rectified sine signal and a rectified cosine signal with state and toggle signals during negative rotation, according to an example implementation. [Figure 16] FIG. 16 is a graph illustrating reconstructed signed sine and signed cosine signals according to an example implementation. [Figure 17] FIG. 17 illustrates a graph showing an output signal of a low pass filter of a velocity extraction module according to an example implementation. [Figure 18] FIG. 18 illustrates a block diagram of a tracking phase-locked loop in accordance with an example implementation. [Figure 19] FIG. 19 illustrates a block diagram of a resolver speed monitor according to an example implementation. [Figure 20] FIG. 20 illustrates a block diagram of a resolver direction monitor 2000 according to an example implementation. [Figure 21] FIG. 21 illustrates a graph showing the sum of squares of rectified sine and cosine signals that remain between certain upper and lower limits, according to an example implementation. [Figure 22] FIG. 22 illustrates a graph showing the sum of squares of signed sine and signed cosine signals that remain between certain upper and lower limits, according to an example implementation. [Figure 23] FIG. 23 shows a block diagram illustrating a computing device in accordance with an example implementation. [Figure 24] FIG. 24 is a flowchart for operating an electric motor according to an example implementation. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] An example electric motor may include a resolver mounted on an output shaft coupled to a rotor of the electric motor, the resolver configured to provide signals indicative of the rotational position, speed, and direction of the rotor, the signals may be processed by a resolver-to-digital converter that converts the signals received from the resolver into position, speed, and direction values.

[0014] A motor controller receives the output of the resolver-to-digital converter and implements a closed-loop feedback control scheme to control the speed and torque of the motor. The disclosed systems and methods involve having a separate signal processing path, parallel to the processing performed by the resolver-to-digital converter, to check the integrity of the sensor signals and independently verify the speed and direction feedback provided by the resolver-to-digital converter.

[0015] With this configuration, the motor controller is configured to check the reliability of the output signals of the resolver and the resolver-to-digital converter. If the motor controller detects an inconsistency, the motor controller can switch the motor into a safe mode or a reduced performance mode that limits the speed of the motor to ensure safe operation of the system driving the motor. This enhances the functional safety of the system.

[0016] Figure 1A shows a perspective view of an example implementation of an electric motor 100, Figure 1B shows a side view of an example implementation of an electric motor 100, and Figure 1C shows a front view of an example implementation of an electric motor 100. The electric motor 100 has a housing 102 having an interior chamber within which the components of the electric motor 100 are disposed.

[0017] Electric motor 100 includes a stator fixedly positioned within the interior chamber of housing 102. The stator may include wire windings wound around a body (e.g., a lamination stack) of the stator and is configured to generate a magnetic field. In particular, electric motor 100 may have an electric motor connector 104 to which a cable may be connected to provide power to electric motor 100, such that a magnetic field is generated when current is provided through the wire windings of the stator.

[0018] The electric motor 100 further includes a rotor positioned within the stator. The electric motor 100 further includes magnets attached to the rotor within an annular space between the stator and the rotor. The magnets are configured to interact with a magnetic field generated by the stator to rotate the rotor and generate torque. The rotor is coupled to an output shaft 106, which may be coupled, for example, via splines, to another device (e.g., a pump, a wheel, a gearbox, etc.) to be driven by the electric motor 100.

[0019] 1B illustrates a partial cross-sectional view of the rear end of electric motor 100 showing that electric motor 100 further includes a resolver 200 mounted to output shaft 106. Resolver 200 is configured as an electromagnetic transducer that can be used to provide sensor information indicative of the rotational position and velocity of output shaft 106.

[0020] FIG 2 illustrates an exploded view of resolver 200 according to an example implementation, and FIG 3 illustrates a schematic diagram of resolver 200 according to an example implementation. Resolver 200 can be configured as a rotary transformer having a resolver stator 202 and a resolver rotor 204. Resolver rotor 204 is attached to output shaft 106 of electric motor 100 such that resolver rotor 204 rotates with output shaft 106 in the same direction and at the same rotational speed.

[0021] Both the resolver rotor 204 and the resolver stator 202 can be manufactured with multi-slot laminations and two sets of windings. The windings can be configured and distributed in the slotted laminations in a constant pitch variable turn pattern or a variable pitch variable turn pattern. In one example, the distribution of the windings is a sinusoidal pattern.

[0022] 3, the resolver stator 202 has three windings: an exciter or primary coil 300, a sine coil 302, and a cosine coil 304. The sine coil 302 and cosine coil 304 are configured as two-phase windings and are arranged to be magnetically perpendicular to one another.

[0023] The resolver rotor 204 has a secondary coil 306. Thus, the secondary coil 306 rotates with the resolver rotor 204. With this configuration, the resolver 200 operates as a rotary transformer. In particular, an excitation signal 308 having a desired frequency is generated (e.g., generated by a resolver-to-digital converter, such as resolver-to-digital converter 502 described below), where the excitation signal 308 is an alternating current (AC) signal that is passed through the primary coil 300 to induce a current / voltage in the secondary coil 306.

[0024] As the secondary coil 306 rotates with the output shaft 106 of the electric motor 100, a magnetic field is generated that excites the sine coil 302 and the cosine coil 304, which are arranged magnetically perpendicular to one another (e.g., configured at 90 degrees from one another), causing the sine coil 302 and the cosine coil 304 to generate sine and cosine feedback signals, respectively.

[0025] FIG. 4A shows a graph of the excitation signal 308 according to an example implementation, FIG. 4B shows a graph of the sine wave feedback signal 400 generated in the sine wave coil 302 according to an example implementation, and FIG. 4C shows a graph of the cosine wave feedback signal 402 generated in the cosine wave coil 304 according to an example implementation. As shown, the sine wave feedback signal 400 and the cosine wave feedback signal 402 are low frequency signals that modulate the excitation signal 308 (i.e., a carrier signal) having a high frequency. For example, the carrier signal can have an excitation frequency in the range of 2 kilohertz (KHz) to 20 KHz (e.g., a frequency of 8 KHz), while the low frequency signal has a frequency in the range of 0 to 500 Hz (e.g., a frequency of 300 Hz). Thus, the excitation signal 308 acts as a carrier signal, and the sine wave feedback signal 400 and the cosine wave feedback signal 402 vary one or more characteristics (e.g., amplitude) of the excitation signal 308. Thus, the sine wave feedback signal 400 and the cosine wave feedback signal 402 may also be referred to as modulation signals or modulated signals.

[0026] The amplitudes of the sine wave feedback signal 400 and the cosine wave feedback signal 402 modulate the excitation signal 308 in proportion to the sine and cosine of the angle of mechanical rotation of the resolver rotor 204 (and output shaft 106). The resolver 200 thus resolves a vector into its sine and cosine components.

[0027] The relative magnitudes of the sine and cosine feedback signals 400, 402 are measured and used to determine the angle of the resolver rotor 204 relative to the resolver stator 202. In particular, the sine and cosine feedback signals 400, 402 that modulate the excitation signal 308 are analog signals that are fed back to the resolver-to-digital converter, where they are processed to provide information indicative of the position and velocity of the resolver rotor 204. The position and velocity of the resolver rotor 204 are indicative of the position and velocity of the output shaft 106 to which the resolver rotor 204 is attached.

[0028] As an example, the resolver-to-digital converter can demodulate and filter the sine wave feedback signal 400 and the cosine wave feedback signal 402. The resolver-to-digital converter can sample the sine wave feedback signal 400 and the cosine wave feedback signal 402 at a particular frequency and determine the angle of the resolver rotor 204 as the arctangent of the sine wave feedback signal 400 divided by the cosine wave feedback signal 402, or using a tracking phase-locked loop. The rotational speed can then be determined by differentiating the rotational position signal with respect to time, or by dividing the change in position by the sampling period, or using the tracking phase-locked loop.

[0029] The determined position and velocity are then provided to a microcontroller configured to control the motor, which uses the position and velocity for closed-loop speed and torque control of electric motor 100.

[0030] Because control of devices driven by electric motor 100 depends on the accuracy of the position and speed information provided by the resolver-to-digital converter, it may be desirable to enhance and monitor the reliability of the resolver-to-digital converter output. In particular, it may be desirable to provide additional monitoring that checks the resolver 200 output signal for its integrity. It may also be desirable to ensure the reliability of the speed and direction values ​​by performing parallel processing of the resolver signals to independently determine the speed and direction of rotation of electric motor 100 and compare the determined speed and direction to the resolver-to-digital converter output. If the signal integrity check passes and the speed and direction values ​​match the resolver-to-digital converter output, the motor controller operates electric motor 100 in a normal operating mode. If a discrepancy exists, the motor controller may operate electric motor 100 in a safe operating mode to ensure the safety of the system.

[0031] 5 illustrates a block diagram of a control system 500 for the electric motor 100 according to one example implementation. The control system 500 includes the resolver 200 described above attached to the output shaft 106 of the electric motor 100.

[0032] The control system 500 includes a resolver-to-digital converter 502 and a motor controller 504 in communication with each other. The motor controller 504 can be, for example, a microcontroller having a metal oxide semiconductor integrated circuit chip. The motor controller 504 can include one or more processors with memory and programmable input / output peripherals. The processor can be a general-purpose processor (e.g., an INTEL® single-core microprocessor or an INTEL® multi-core microprocessor) or a special-purpose processor (e.g., a digital signal processor, a graphics processor, or an application specific integrated circuit (ASIC) processor). The processor can be configured to execute computer-readable program instructions (CRPI) to perform the operations described throughout this specification. The processor can be configured to execute hard-coded functions in addition to or instead of software-coded functions (e.g., by the CRPI).

[0033] The motor controller 504 includes a carrier frequency generator 506 configured to generate a frequency of the excitation signal 308 that excites the primary coil 300 of the resolver stator 202 as described above. In one example, the carrier frequency generator 506 is a module that may include software and hardware modules including a series of dividers, single sideband mixers with filtering, multiplexers, etc., configured to generate the carrier frequency of the excitation signal 308. The term "module" is used generally herein to include software, hardware, or a combination of software and hardware components.

[0034] The motor controller 504 may have a communication interface to facilitate communication with the resolver-to-digital converter 502. By way of example, the motor controller 504 may have a serial peripheral interface (SPI) 508, e.g., a synchronous serial communication interface for short distance communication. The SPI 508 may communicate in full duplex mode using a master / slave architecture and may also be referred to as a four-wire serial bus. However, SPI communication is used herein as an example. A parallel interface, or other type of interface, may also be used between the motor controller 504 and the resolver-to-digital converter 502.

[0035] The motor controller 504 communicates the carrier frequency generated by the carrier frequency generator 506 to the resolver-to-digital converter 502 via the SPI 508, which then generates and provides the excitation signal 308 to the primary coil 300 of the resolver stator 202. And as described above, the resolver 200 provides the sine wave feedback signal 400 and the cosine wave feedback signal 402 back to the resolver-to-digital converter 502, which then determines the position, speed, and direction of rotation of the output shaft 106.

[0036] In addition to providing the sine and cosine feedback signals 400, 402 to the resolver-to-digital converter 502, they are also fed back to the motor controller 504 for secondary or parallel signal processing, as shown in Figure 5. The motor controller 504 can include a first processing module or first processing core 510 that is configured to convert the analog modulated signals, the sine and cosine feedback signals 400, 402, into digital or discrete data points that are placed into data buffers, such as a sine data buffer 512 and a cosine data buffer 514.

[0037] For example, the first processing core 510 may have a sinusoidal analog-to-digital converter (sinusoidal ADC) 516 that converts the sinusoidal feedback signal 400 into discrete values ​​at a first sampling frequency (e.g., a high sampling frequency). As an illustrative example, the sinusoidal ADC 516 may include a delta-sigma analog-to-digital converter (DS ADC). The DS ADC may first perform delta modulation on the sinusoidal feedback signal 400. That is, the DS ADC may encode the change (delta) of the sinusoidal feedback signal 400 rather than the absolute value. The DS ADC may thus generate a stream of pulses rather than a stream of numbers. Delta-sigma modulation may improve the accuracy of the modulation by passing the digital output through a 1-bit digital-to-analog converter (DAC) and adding (sigma) the resulting analog signal to the sinusoidal feedback signal 400 (the signal before delta modulation), thereby reducing the error introduced by delta modulation. Other ADC schemes may also be used.

[0038] The output of the sine wave ADC 516 then passes through a sine wave demodulator or sine wave filter 518. As shown in FIG. 5, the sine wave filter 518 receives or has access to the carrier frequency generated by the carrier frequency generator 506. The sine wave filter 518 samples the output of the sine wave ADC 516 at a second frequency that is lower than the carrier frequency (the excitation frequency of the primary coil 300 of the resolver 200). For example, the sine wave filter 518 can filter or sample the output of the sine wave ADC 516 at a frequency that is at least 1.6 times lower than the carrier frequency. This ensures that the sine wave data buffer 512 contains at least one complete cycle of the sine wave feedback signal 400 (the modulated sine wave signal).

[0039] Similarly, the first processing core 510 may have a cosine wave ADC 520 that converts the cosine wave feedback signal 402 into discrete values ​​at a high sampling frequency. As an illustrative example, the cosine wave ADC 520 may include a DS ADC that operates as described above. The output of the cosine wave ADC 520 then passes through a cosine wave demodulator or cosine wave filter 522, which, like the sine wave filter 518, has access to the carrier frequency generated by the carrier frequency generator 506. The cosine wave filter 522 is configured to filter or sample the output of the cosine wave ADC 520 at a frequency lower than the carrier frequency (e.g., at least 1.6 times lower than the carrier frequency). This ensures that the cosine wave data buffer 514 contains at least one complete cycle of the cosine wave feedback signal 402 (the modulated cosine wave signal).

[0040] The first processing core 510 therefore converts the analog modulated signals, sine wave feedback signal 400 and cosine wave feedback signal 402, into discrete values ​​using dual synchronous ADCs (e.g., DS ADCs) operating at a high sample rate. The converted samples are placed or windowed in two buffers, sine wave data buffer 512 and cosine wave data buffer 514, respectively.

[0041] 6 shows a graph 600 illustrating sampled data and applied windows according to an example implementation. As an illustrative example, FIG. 6 shows windows with 32 samples each. Other numbers of samples can be used (e.g., 64, 128, etc.). As shown in FIG. 6, discrete values ​​602 are extracted from, for example, a sinusoidal feedback signal 400, and then the values ​​are divided into multiple windows with 32 samples per window by applying a square wave or trapezoidal wave 604.

[0042] The data buffer windows are not synchronized with the sine wave feedback signal 400. As mentioned above, the frequency of the data buffer windows is selected to be lower (e.g., 1.6 times lower) than the carrier frequency generated by the carrier frequency generator 506, thereby ensuring that each buffer (i.e., each data buffer window) of the sine wave data buffer 512 and the cosine wave data buffer 514 has one complete cycle of the sine wave feedback signal 400 and the cosine wave feedback signal 402, respectively.

[0043] Thus, the data in sine wave data buffer 512 and cosine wave data buffer 514 represent asynchronous windows of the modulated sine and cosine wave signals, i.e., sine wave feedback signal 400 and cosine wave feedback signal 402. The relatively low sampling frequency mentioned above ensures that each buffer of sine wave data buffer 512 and cosine wave data buffer 514 contains at least one complete cycle of the modulated sine wave or cosine wave signal, respectively.

[0044] 5, the first processing core 510 may further include a direct memory access controller, or DMAC 524, which is configured to provide access to the sine wave data buffer 512 and the cosine wave data buffer 514. In particular, the motor controller 504 further includes a second processing core 526, which is configured to transfer the sine wave data buffer 512 and the cosine wave data buffer 514 to the second processing core 526 by direct memory access (DMA).

[0045] As an example, the DMAC 524 can be configured as a hardware device that allows the second processing core 526 to directly access the memory in the first processing core 510 that stores the sine wave data buffer 512 and the cosine wave data buffer 514, without significant involvement of the first processing core 510 or independent of the first processing core 510. The DMAC 524 can have an interface electronic circuit for communication with the second processing core 526.

[0046] In one example, the first processing core 510 and the second processing core 526 are configured as lock-step cores with synchronized clock cycles to protect against transient errors. The second processing core 526 includes a sensor signal processing module 528 configured to perform a number of operations on the data in the sine data buffer 512 and the cosine data buffer 514. In particular, the second processing core 526 can perform operations including: (i) checking the integrity of the signal provided by the resolver 200; (ii) extracting the amplitude of the sine and cosine feedback signals 400 and 402; (iii) extracting the direction of rotation from the sine and cosine feedback signals 400 and 402; (iv) extracting the rate of rotation from the sine and cosine feedback signals 400 and 402; (v) monitoring the functional safety of the resolver direction; and (vi) monitoring the functional safety of the resolver speed.

[0047] 7 illustrates a partial block diagram 700 of the sensor signal processing module 528 according to an example implementation. The sensor signal processing module 528 includes at least three processing modules: an amplitude extraction module 702, a direction extraction module 704, and a velocity extraction module 706. The sensor signal processing module 528 also includes other modules, such as a resolver velocity monitor 1900 and a resolver direction monitor 2000, to perform other processes, such as performing signal integrity checks as described below.

[0048] The amplitude extraction module 702 receives values ​​stored in the sine data buffer 512 and the cosine data buffer 514, including sampled values ​​of the raw modulated sine and cosine feedback signals (i.e., sine feedback signal 400 and cosine feedback signal 402) provided by the resolver 200. The amplitude extraction module 702 then extracts the amplitudes of the modulated signals. In particular, the amplitude extraction module 702 identifies and isolates the first positive half cycle or the first negative half cycle (whichever occurs first) of the modulated sine and cosine feedback signals within each window of the sine data buffer 512 and the cosine data buffer 514.

[0049] 8 illustrates a graph 800 illustrating the identification and isolation of either the first occurring positive half cycle or the first occurring negative half cycle within each window of FIG. 6, according to an example implementation. For example, within window 802, the amplitude extraction module 702 identifies a positive half cycle 804, defined within subwindow 805, as the first complete positive half cycle that occurs before the first complete negative half cycle within window 802. Subwindow 805 is a subwindow of window 802, and thus the number of points in positive half cycle 804 is less than the 32 samples within window 802.

[0050] Similarly, (i) within window 806, amplitude extraction module 702 identifies negative half-cycle 808, defined within sub-window 809, as the first complete negative half-cycle that occurred before the first complete positive half-cycle within window 806; (ii) within window 810, amplitude extraction module 702 identifies positive half-cycle 812, defined within sub-window 813, as the first complete positive half-cycle that occurred before the first complete negative half-cycle within window 810, and so on. The amplitude extraction module 702 then sums (i.e., accumulates or integrates over time) all of the absolute data values ​​for each positive or negative half-cycle for sine wave feedback signal 400 and cosine wave feedback signal 402 (i.e., the modulated sine and cosine wave signals), respectively.

[0051] 9 illustrates a graph 900 illustrating integrals of positive and negative half cycles of the sine wave feedback signal 400 and the cosine wave feedback signal 402, according to an example implementation. In particular, the graph 900 illustrates a rectified sine wave signal 902 and a rectified cosine wave signal 904.

[0052] As shown, rectified sine signal 902 and rectified cosine signal 904 have multiple stages, with each stage representing the sum of the values ​​of data points that make up a particular positive or negative half-cycle (e.g., positive half-cycle 804 or negative half-cycle 809) within a particular window of 32 samples (e.g., within window 802 or window 806).

[0053] Thus, the amplitudes or values ​​of rectified sine signal 902 and rectified cosine signal 904 are proportional to sine feedback signal 400 and cosine feedback signal 402, respectively. The signals in Figure 9 are called "rectified" because all values ​​are considered positive values ​​by taking the sum of the absolute values ​​of each positive or negative half cycle.

[0054] Advantageously, generating the rectified sine wave signal 902 and the rectified cosine wave signal 904 by integration or accumulation of values, rather than considering the peaks of the signals for example, can have a noise filtering effect, thus improving the accuracy of the determination of the amplitude at a given time.

[0055] Through these processes, the amplitude extraction module 702 eliminates the effects of the carrier frequency of the excitation signal 308 to generate a rectified sine signal 902 and a rectified cosine signal 904. The rectified sine signal 902 and the rectified cosine signal 904 represent sampled versions of the rectified and demodulated sine and cosine signals generated by the resolver 200.

[0056] 7, the rectified sine wave signal 902 and the rectified cosine wave signal 904 are provided from the amplitude extraction module 702 to the direction extraction module 704. The direction extraction module 704 also receives the modulated signals (i.e., the sine wave feedback signal 400 and the cosine wave feedback signal 402).

[0057] The direction extraction module 704 is then configured to use the rectified sine signal 902 and the rectified cosine signal 904 to determine a direction of rotation of the resolver rotor 204, which is a direction of rotation of the output shaft 106. In one example, the direction extraction module 704 first generates a logic signal that indicates when the rectified cosine signal 904 exceeds the rectified sine signal 902, with the logic signal assigning a zero value elsewhere.

[0058] 10 illustrates a graph 1000 illustrating a first logic signal 1002 indicating when the rectified cosine signal 904 exceeds the rectified sine signal 902, according to an example implementation. As shown, the first logic signal 1002 is a square wave having a value of 1 when the rectified cosine signal 904 exceeds the rectified sine signal 902 and a value of 0 when the rectified sine signal 902 exceeds the rectified cosine signal 904.

[0059] The direction extraction module 704 then generates a second logic signal from the modulated sine and cosine resolver signals, i.e., from the sine feedback signal 400 and the cosine feedback signal 402. In particular, the second logic signal is generated from the product (i.e., multiplication) of the sine feedback signal 400 and the cosine feedback signal 402. If the product of the sine feedback signal 400 and the cosine feedback signal 402 is positive, the second logic signal has a value of 1. If the product of the sine feedback signal 400 and the cosine feedback signal 402 is negative, the second logic signal has a value of -1. The second logic signal differs depending on whether the resolver rotor 204 is rotating in a positive or negative direction.

[0060] FIG. 11 shows a graph 1100 illustrating the sine wave feedback signal 400, the cosine wave feedback signal 402, the first logic signal 1002, and the second logic signal 1102 during positive rotation according to an example implementation, and FIG. 12 shows a graph 1200 illustrating the sine wave feedback signal 400, the cosine wave feedback signal 402, the first logic signal 1002, and the second logic signal 1202 during negative rotation according to an example implementation.

[0061] The direction extraction module 704 determines the direction of rotation based on the value or level of the second logic signal and a signal edge of the first logic signal 1002. A signal edge is a low-to-high transition (rising edge) or a high-to-low transition (falling edge) of the first logic signal 1002. In this case, "low" means 0 and "high" means 1.

[0062] For example, if the second logic signal is positive at the falling edge of the first logic signal 1002, the direction of rotation is positive (FIG. 11). If the second logic signal is negative at the falling edge of the first logic signal 1002, the direction of rotation is negative (FIG. 12). If the second logic signal is negative at the rising edge of the first logic signal 1002, the direction of rotation is positive (FIG. 11). If the second logic signal is positive at the rising edge of the first logic signal 1002, the direction of rotation is negative (FIG. 12).

[0063] The product of the sine wave feedback signal 400 and the cosine wave feedback signal 402 changes every 45 degrees of rotation, i.e., every quarter of a cycle or rotation. Thus, the direction extraction module 704 determines the direction of rotation of the resolver rotor 204 (and output shaft 106) every quarter of a cycle.

[0064] 7, the rectified sine signal 902 and the rectified cosine signal 904, as well as the resolver direction information extracted by the direction extraction module 704, are provided to a speed extraction module 706. The speed extraction module 706 then uses such signals, as well as information related to determining the direction of rotation (e.g., the first logic signal 1002 and the second logic signals 1102, 1202), to determine the rotational speed of the resolver rotor 204.

[0065] As a first step, the velocity extraction module 706 generates signed sine and cosine signals using the rectified sine signal 902, the rectified cosine signal 904, the first logic signal 1002, and the second logic signal (e.g., the second logic signal 1102 or the second logic signal 1202). The velocity extraction module 706 first determines or assigns a "state" based on the values ​​of the first logic signal 1002 and the second logic signals 1102, 1202. Table 1 shows the "state" values ​​that are assigned based on the particular values ​​of the first logic signal 1002 and the second logic signals 1102, 1202.

[0066] [Table 1] Table 1: Toggle logic for sine and cosine signals

[0067] Each state lasts for 45 degrees of rotation (i.e., 1 / 4 of a cycle of the sine wave feedback signal 400 and the cosine wave feedback signal 402). Thus, one complete sequence of states 0, 1, 2, 3 represents a 180 degree rotation. The values ​​of the states in Table 1 are chosen arbitrarily and other values ​​or sequences may be used.

[0068] By going through successive states, i.e. (0,1,2,3,0,1,2,3) for positive rotation or (3,2,1,0,3,2,1,0) for negative rotation, the velocity extraction module 706 derives an additional “toggle” logic signal that distinguishes between the first 180° (i.e., first half) and the second 180° (i.e., second half) of the sine wave feedback signal 400 and the cosine wave feedback signal 402.

[0069] 13 is a graph 1300 illustrating a portion of the rectified sine signal 902 and the rectified cosine signal 904 with a state signal 1302 and a toggle signal 1304 during forward rotation, according to an example implementation. The speed extraction module 706 uses the state signal 1302 and the toggle signal 1304 to determine multipliers for the sine and cosine signals as shown in Table 2.

[0070] [Table 2] Table 2: Derivation of positive rotation sine and cosine wave multipliers

[0071] The velocity extraction module 706 then reconstructs the complete sine and cosine signals using the sine and cosine signal multipliers. For example, the velocity extraction module 706 multiplies the rectified sine signal 902 and the rectified cosine signal 904 with appropriate sine and cosine signal multipliers based on Table 2. Figure 14 illustrates a graph 1400 showing a reconstructed signed sine signal 1402 and a signed cosine signal 1404 according to an example implementation.

[0072] Meanwhile, during negative rotation, the assigned consecutive states go through the sequence (3,2,1,0,3,2,1,0). Figure 15 is a graph 1500 illustrating a portion of the rectified sine signal 902 and the rectified cosine signal 904 with the state signal 1502 and the toggle signal 1504 during negative rotation according to an example implementation. The speed extraction module 706 uses the state signal 1502 and the toggle signal 1504 to determine the multipliers for the sine and cosine signals as shown in Table 3.

[0073] [Table 3] Table 3: Derivation of multipliers for negatively rotated sine and cosine waves

[0074] The velocity extraction module 706 then reconstructs the complete sine and cosine signals using the sine and cosine signal multipliers from Table 3. Figure 16 shows a graph 1600 illustrating a reconstructed signed sine signal 1602 and a signed cosine signal 1604 according to an example implementation.

[0075] 14 and 16 are not pulse-aligned with the sine and cosine feedback signals 400, 402, and therefore cannot be used to determine the rotational position of the resolver rotor 204. However, the derived speed and direction are accurate because they do not depend on phase alignment.

[0076] In some examples, the velocity extraction module 706 further includes a tracking phase-locked loop (PLL) and a low-pass filter (LPF). In this example, the velocity extraction module 706 smoothes (i.e., reduces signal noise) the signed sine signal 1402, 1602 and the signed cosine signal 1404, 1604 by filtering or passing them through the LPF. The LPF break frequency can be selected, for example, to not add significant phase delay at the maximum resolver rotation speed. As an illustrative example, the LPF break frequency can be set to 250 Hz.

[0077] 17 illustrates a graph 1700 showing an output signal of the LPF of the velocity extraction module 706 according to an example implementation. In particular, FIG. 17 illustrates a filtered sine signal 1702 and a filtered cosine signal 1704 obtained from the LPF.

[0078] In one example, the velocity extraction module 706 further processes the filtered sine signal 1702 and the filtered cosine signal 1704 through a tracking phase-locked loop (PLL), which is configured to generate a velocity signal indicative of the rotational speed of the resolver rotor 204, where the phase of the velocity signal is related to the phase of the input sine and cosine signals provided by the LPF, and the PLL also has a filtering effect to further smooth the velocity signal.

[0079] 18 shows a block diagram of a tracking PLL 1800 according to an example implementation. The PLL 1800 receives a filtered sine signal 1802 and a filtered cosine signal 1804 from the LPF (the filtered sine signal 1802 and the filtered cosine signal 1804 are representative of the filtered sine signal 1702 and the filtered cosine signal 1704, for example). The filtered sine signal 1802 is multiplied in a multiplication block 1806 by a cosine of the change in angle of rotation "Δ" (CosΔ), determined as described below. The filtered cosine signal 1804 is multiplied in a multiplication block 1808 by a sine of the change in angle of rotation "Δ" (SinΔ).

[0080] In difference block 1810, the output of multiplication block 1808 is subtracted from the output of multiplication block 1806. Due to the properties of sine and cosine functions, the output of difference block 1810 is Sin(θ-Δ). Furthermore, when the value of (θ-Δ) is small, Sin(θ-Δ) is approximately equal to (θ-Δ). Therefore, the output of difference block 1810 can be considered as (θ-Δ). The difference (θ-Δ) is provided as an error signal 1812 to a proportional-integral (PI) controller 1814, which is a PI closed-loop feedback controller.

[0081] The error signal 1812 is multiplied by an integral gain K I is multiplied by a proportional gain K P The output of the multiplication block 1816 is multiplied by a unit delay block 1822 (i.e., z -1 The summing block 1820 is added to the output of the error signal 1812 (a discrete-time operator). The unit delay block 1822 holds and delays its input by one sampling period (Tcycle). The unit delay block 1822 therefore holds and delays its input by one iteration. The output of the summing block 1820 therefore corresponds to the integral over time of the error signal 1812.

[0082] The output of summation block 1820 is sent to a saturation block 1824. Saturation block 1824 produces an output signal, which is the value of the input signal bounded by upper and lower saturation values.

[0083] The output of the saturation block 1824 is added to the output of the multiplication block 1818 in a summing block 1826. The output of the summing block 1826 is the rotation speed in radians / sampling period (rad / Tcycle). The tracking PLL 1800 may have another saturation block 1828 to limit this rotation speed output signal to a value bounded by upper and lower saturation values. The output of the saturation block 1828 is then multiplied by the sampling period Tcycle in a multiplication block 1830 to generate a speed signal 1831 indicative of the rotation speed (Ω) of the resolver rotor 204 and output shaft 106 of the electric motor 100 in radians / second (rad / s).

[0084] The output of saturation block 1828 is also provided to a summing block 1832 where it is added to the output of another unit delay block 1834, which takes the output of summing block 1832 as its input. Thus, the output of summing block 1832 is effectively the integral of the output of saturation block 1828, which is the rotational rate in rad / Tcycle. Thus, the output of summing block 1832 is the change in angle "Δ" of rotation of the resolver rotor 204 and output shaft 106 in radians.

[0085] The angular change "Δ" is then provided to a Sin block 1836 and a Cos block 1838 for calculating (SinΔ) and (CosΔ), respectively. As described above, the filtered sine signal 1802 is multiplied by (CosΔ) in multiplication block 1806, and the filtered cosine signal 1804 is multiplied by (SinΔ) in multiplication block 1808.

[0086] Thus, the direction extraction module 704 generates information indicative of the direction of rotation of the resolver rotor 204 and the output shaft 106 of the electric motor 100, and the speed extraction module 706 generates information indicative of the rotational speed Ω of the resolver rotor 204 and the output shaft 106 of the electric motor 100. The sensor signal processing module 528 further includes a resolver speed monitor and a resolver direction monitor that monitor the direction and speed of the electric motor 100 by comparing the direction and speed information output by the direction extraction module 704 and the speed extraction module 706 with the direction and speed generated by the resolver-to-digital converter 502 to ensure the accuracy of the speed and direction information.

[0087] 19 shows a block diagram of a resolver speed monitor 1900 according to an example implementation. In a difference block 1906, the speed signal 1902 generated by the resolver-to-digital converter 502 is compared to the estimated speed signal 1831 generated by the speed extraction module 706. The absolute value of the difference generated by the difference block 1906 (i.e., the modulus of the difference generated by the difference block 1906, i.e., a non-negative value ignoring the sign of the difference) is determined in an absolute value block 1908.

[0088] The output signal 1909 of absolute value block 1908 is then provided as an input to a comparator 1910 which compares the difference generated by absolute value block 1908 with a difference threshold 1907 (i.e. a pre-defined difference value such as a 10% difference). If the output signal 1909 satisfies the difference threshold 1907 (e.g. the difference threshold 1907 is greater than or equal to the difference threshold 1907), then the comparator 1910 sends a signal 1911 (e.g. a trigger value of 1) to a timer block 1912 to start a timer. If the output signal 1909 does not satisfy the difference threshold 1907 (e.g. it is less than the difference threshold 1907), then the comparator 1910 does not trigger the timer block 1912 to start the timer (e.g. sends a value of 0 to not trigger the timer block 1912).

[0089] A timer output 1913 is provided by timer block 1912 to a comparator 1914 which compares the timer output 1913 to a duration threshold 1917 (i.e., a duration threshold such as 5 milliseconds). The comparator 1914 then sends a set signal 1915 to a latch block 1916.

[0090] If the value of the output signal 1909 remains below the difference threshold 1907 or if the output signal 1909 remains above the difference threshold 1907 for a duration shorter than the duration threshold 1917 (i.e., the output signal 1909 returns below the difference threshold 1907 before the timer reaches the duration threshold 1917), the set signal 1915 may have a particular value (e.g., a value of 0). In response to such a particular value of the set signal 1915, the latch block 1916 outputs a resolver speed monitor output signal 1918, which indicates that the speed output by the resolver-to-digital converter 502 is accurate and can be trusted in controlling the electric motor 100.

[0091] On the other hand, if the value of the output signal 1909 remains above the difference threshold 1907 for a period of time that exceeds the duration threshold 1917, the comparator 1914 sends a set signal 1915 having a different value (e.g., a value of 1). In this case, the set signal 1915 causes the latch block 1916 to output a resolver speed monitor output signal 1918, indicating that the speed output by the resolver-to-digital converter 502 cannot be trusted in controlling the electric motor 100. The motor controller 504 can then operate the electric motor 100 in a safe mode or limited performance mode. Once any discrepancies in speed are resolved, the resolver speed monitor 1900 can reset the latch block 1916 via a reset signal 1920.

[0092] Thus, the speed signal 1831 derived by the speed extraction module 706 is compared to the speed signal provided by the resolver-to-digital converter 502 and the difference between the two signals is calculated. If the difference exceeds a predetermined acceptable level for a duration greater than a predetermined period of time, an error signal is generated to actuate the motor controller 504 (to reduce system performance or operate in a safe condition).

[0093] Additionally, the sensor signal processing module 528 monitors the direction of rotation of the resolver rotor 204. The sensor signal processing module 528 then provides a signal indicating whether the direction determined by the resolver-to-digital converter 502 is reliable.

[0094] 20 illustrates a block diagram of a resolver direction monitor 2000 according to an example implementation. The direction signal generated by the resolver-to-digital converter 502 is converted to a converted direction signal 2002 having a value of 0 or 1. For example, the value is 1 for positive rotation and 0 for negative rotation. Similarly, the direction signal indicating the estimated direction generated by the direction extraction module 704 is also converted to a converted direction signal 2004 having a value of 0 or 1. Other values ​​such as -1 and 1 can also be used.

[0095] The transformed direction signals 2002, 2004 are then provided to an exclusive-or (XOR) block 2006. The XOR block 2006 is configured to provide an output signal 2008 having a value of 1 only if the transformed direction signal 2002 from the resolver-to-digital converter 502 differs from the transformed direction signal 2004 from the direction extraction module 704. If both signals match, the XOR block 2006 outputs a value of 0. Thus, if the directions estimated by both the resolver-to-digital converter 502 and the direction extraction module 704 match, the XOR block 2006 outputs a value of 0; if they do not match, the XOR block 2006 outputs a value of 1.

[0096] The output signal 2008 of the XOR block 2006 is provided to a comparator 2010 which compares the output signal 2008 with a value 0.5 (or any other threshold between 0 and 1). If the output signal 2008 is greater than 0.5, the comparator 2010 sends a signal 2011 (e.g. a trigger value of 1) to a timer block 2012 to start the timer. If the output signal 2008 is less than 0.5, the comparator 2010 does not trigger the timer block 2012 to start the timer (e.g. sends a value of 0 which does not trigger the timer block 2012).

[0097] The timer output 2013 is provided by the timer block 2012 to a comparator 2014 which compares the timer output 2013 with a duration threshold 2017 (i.e., a period threshold such as 5 milliseconds). The comparator 2014 then sends a set signal 2015 to a latch block 2016.

[0098] If the value of the output signal 2008 remains below 0.5, or if the output signal 2008 remains above 0.5 for a duration shorter than the duration threshold 2017, the set signal 2015 may have a certain value (e.g., a value of 0) and the latch block 2016 outputs a resolver direction monitor output signal 2018, indicating that the direction output by the resolver-to-digital converter 502 is accurate and can be trusted in controlling the electric motor 100.

[0099] On the other hand, if the value of the output signal 2008 remains above 0.5 for a period longer than the duration threshold 2017, the comparator 2014 sends a set signal 2015 having a different value (e.g., a value of 1). In this case, the set signal 2015 causes the latch block 2016 to output a resolver direction monitor output signal 2018, indicating that the direction output by the resolver-to-digital converter 502 cannot be trusted in controlling the electric motor 100. The motor controller 504 can then operate the electric motor 100 in a safe mode or limited performance mode. Once any discrepancies in direction are resolved, the resolver direction monitor 2000 can reset the latch block 2016 with a reset signal 2020.

[0100] Thus, the resolver direction signal derived by the direction extraction module 704 is compared to the direction signal provided by the resolver-to-digital converter 502. If the two direction signals do not match for a duration longer than a predetermined period, an error signal is generated to actuate the motor controller 504 (to reduce system performance or operate in a safe condition).

[0101] In some examples, in addition to or instead of monitoring the speed and direction signals, the motor controller 504, and in particular the sensor signal processing module 528, can perform signal integrity check operations at different stages of signal processing to evaluate the integrity of the signal. The term "integrity" is used herein to indicate a measure of the quality of a signal that makes the signal trustworthy. If any signal integrity check fails, an error signal is generated to cause the motor controller 504 to act (to reduce system performance or operate in a safe state).

[0102] 7, the first three signal integrity checks may be performed on the raw sine and cosine buffer data in sine data buffer 512 and cosine data buffer 514. A fourth signal integrity check is performed on the signal output by amplitude extraction module 702, and a fifth signal integrity check is performed on the signal output by direction extraction module 704.

[0103] In particular, the first check is aimed at ensuring that the sine feedback signal 400 and cosine feedback signal 402 (i.e., the resolver modulated sine and cosine signals) have changed between multiple windows of buffered data. For example, the sensor signal processing module 528 checks whether the following is true:

[0104]

number

[0105]

number

[0106]

number

[0107] where sin(x) or cos(x) represents the xth data element in the data buffer, (n) represents the current data buffer, (n-1) represents the previous data buffer, (n-2) represents the data buffer before the previous data buffer, and Buffer_Length represents the length of the data buffer (e.g., 32, 64, or 128 elements). For example, if the buffer length of the sine wave data buffer 512 and the cosine wave data buffer 514 is 32 samples, then x=9 and y=25. In other examples, the sensor signal processing module 528 can perform these checks at 1 / 2 as well as 1 / 4 and 3 / 4 of the buffer length.

[0108] Thus, the sensor signal processing module 528 checks whether the sine and cosine values ​​at a particular sample location in a given sine or cosine data buffer (i.e., a particular data point) have changed compared to the respective data points in the previous two data buffers, A change in the values ​​indicates that the signal is likely to be reliable and realistic and therefore passes this first check.

[0109] The second check is intended to ensure that the sine wave feedback signal 400 and the cosine wave feedback signal 402 (i.e., the resolver modulated sine and cosine signals) do not exceed maximum or minimum allowable values. For example, the sensor signal processing module 528 can identify and extract from the sine wave data buffer 512 a maximum sine value "MaxSin" of the sine wave feedback signal 400, and can also identify and extract a minimum sine value "MinSin" of the sine wave feedback signal 400. The sensor signal processing module 528 can then determine whether the magnitude of MaxSin and MinSin is below an amplitude threshold (e.g., a tolerance value) AMPLMax, i.e.:

[0110]

number

[0111] If the check passes, the sinusoidal feedback signal 400 is reliable.

[0112] Similarly, the sensor signal processing module 528 can identify and extract the maximum cosine value “MaxCos” of the cosine feedback signal 402 from the cosine data buffer 514, and can also identify and extract the minimum cosine value “MinCos” of the cosine feedback signal 402. The sensor signal processing module 528 then determines if the magnitude of MaxCos and MinCos is less than the amplitude threshold AMPLMax, i.e.:

[0113]

number

[0114] If the check passes, the cosine feedback signal 402 is reliable.

[0115] The third check is intended to ensure that the sine and cosine feedback signals 400, 402 (i.e., the resolver modulated sine and cosine signals) do not exceed a tolerable offset. For example, the sensor signal processing module 528 may check that the magnitude of the difference between the maximum and minimum sine and cosine data values ​​is less than a maximum tolerable value DCMax, i.e.:

[0116]

number

[0117] The sensor signal processing module 528 performs a fourth signal integrity check after the sine and cosine amplitude signals are extracted in the amplitude extraction module 702. In other words, the sensor signal processing module 528 performs a fourth signal integrity check on the rectified sine signal 902 and the rectified cosine signal 904 (excluding the excitation carrier frequency).

[0118] In a fourth signal integrity check, the sensor signal processing module 528 checks that the vector magnitudes of the rectified sine signal 902 and the rectified cosine signal 904 remain within limits, i.e.:

[0119]

number

[0120] Thus, the sensor signal processing module 528 determines the sum of the squares of the rectified sine signal 902 and the rectified cosine signal 904 and performs a check to ensure that the sum of the squares is bounded between a maximum and a minimum allowed value. Figure 21 shows a graph 2100 illustrating the sum of the squares 2102 of the rectified sine signal 902 and the rectified cosine signal 904 staying between certain upper and lower limits 2104 and 2106, according to an example implementation. This indicates that the signals are reliable. If the sum 2102 does not stay between the upper and lower limits 2104 and 2106, this fourth check fails.

[0121] The sensor signal processing module 528 performs a fifth signal integrity check after the sine and cosine direction (reconstructed, unrectified) signals are extracted in the direction extraction module 704. In other words, the sensor signal processing module 528 performs a fifth signal integrity check on the signed sine signal 1402 and the signed cosine signal 1404.

[0122] In a fifth signal integrity check, the sensor signal processing module 528 checks whether the vector magnitudes of the signed sine signal 1402 and the signed cosine signal 1404 remain within or are constrained between maximum and minimum values ​​or limits, i.e.:

[0123]

number

[0124] Thus, the sensor signal processing module 528 determines the sum of the squares of the signed sine signal 1402 and the signed cosine signal 1404 and performs a check to ensure that the sum of the squares is between a maximum and a minimum value. Figure 22 shows a graph 2200 illustrating the sum of the squares 2202 of the signed sine signal 1402 and the signed cosine signal 1404 staying between certain upper and lower limits 2204 and 2206, according to an example implementation. This indicates that the signals are reliable. If the sum 2202 does not stay between the upper and lower limits 2204 and 2206, this fifth check fails.

[0125] 5, motor controller 504 further includes a motor control module 530 in communication with sensor signal processing module 528. In some examples, motor control module 530 may be included in first processing core 510 or second processing core 526, or may be included as a separate module.

[0126] The motor control module 530 can include an inverter. For example, the inverter can be configured as a printed circuit board (PCB). The PCB mechanically supports and electrically connects electronic components (e.g., microprocessors, integrated chips, capacitors, resistors, etc.) via conductive tracks, pads, and other features etched into one or more copper laminate sheet layers on and / or between non-conductive substrates. Components are typically soldered to the PCB for electrical connection and mechanical fastening to the PCB.

[0127] The inverter can include a number of bus bars that are electrically conductive and configured to receive direct current (DC) power connected via cables to an electric motor connector 104 shown in Figure 1. This DC power is then provided to components attached to the inverter.

[0128] As an example, DC power can be supplied to the inverter from a battery. In this configuration, DC power is supplied to the bus bars, which then transfer power to other components of the inverter.

[0129] The inverter may be configured as a power converter that converts DC power received by the inverter into three-phase alternating current (AC) power that may be provided to wire windings of a stator of electric motor 100 to drive electric motor 100. For example, the inverter may include a semiconductor switching matrix attached to the inverter and configured to be electrically connected to a positive DC terminal and a negative DC terminal.

[0130] The semiconductor switching matrix may include any configuration of semiconductor switching devices that support conversion of DC to three-phase power. For example, the semiconductor switching matrix may include three phases with bridge elements electrically coupled to the input DC terminals and connected to the three-phase AC output terminals.

[0131] In one example, the semiconductor switching matrix includes a plurality of transistors (e.g., insulated gate bipolar transistors or metal oxide semiconductor field effect transistors) that are switchable between an active or "on" state and an inactive or "off" state by, for example, a pulse width modulated (PWM) signal provided by a microprocessor of the motor controller 504.

[0132] The transistors of the semiconductor switching matrix are activated and deactivated at specific times by the PWM signal, so that an AC voltage waveform is generated at the AC output terminals. The voltage waveform at the AC output terminals is thus pulse width modulated and swings between a DC+ potential and a DC- potential. This AC voltage waveform is then supplied to the wire windings of the stator to drive the electric motor 100.

[0133] The sensor signal processing module 528 is configured to provide information to the motor control module 530 indicating whether the speed and direction signals generated by the resolver-to-digital converter 502 are reliable and therefore whether the electric motor 100 should be operated in a normal operating mode. For example, if the output of the resolver speed monitor 1900 and the resolver direction monitor 2000 indicate that the signal from the resolver-to-digital converter 502 is reliable and / or passes all five of the signal integrity checks described above, the sensor signal processing module 528 instructs the motor control module 530 to perform normal operation. Performing normal operation includes implementing a closed feedback loop to control the speed and torque of the electric motor 100 using the position, speed, and direction signals provided by the resolver-to-digital converter 502.

[0134] Otherwise (i.e., if the output of resolver speed monitor 1900 and resolver direction monitor 2000 indicates that the signal from resolver-to-digital converter 502 is not reliable or any of the signal checks have failed), sensor signal processing module 528 instructs motor control module 530 to operate in a safe mode or reduced performance mode. In a safe mode or reduced performance mode, motor control module 530 may rely on other speed sensors in the system as opposed to resolver 200 to limit the speed and torque provided by electric motor 100 to allow the system to operate safely and to be placed in a safe state, such as allowing an implement of a hydraulic machine to be positioned at a safe location on the ground or allowing the machine vehicle to be stopped. In one example, operating electric motor 100 in a safe mode includes stopping electric motor 100 to ensure the safety of the system. In another example, operating in a safe mode may include operating electric motor 100 in a coasting state while producing zero torque. In another example, operating in a safe mode may include operating the electric motor 100 based on an independent motor speed sensor, and may command the electric motor 100 to operate at a performance level below a predefined speed limit.

[0135] The components of the control system 500 may be configured to function in an interconnected manner with each other and / or with other components coupled to each system. One or more of the operations or components of the control system 500 described herein may be divided into additional operating elements or physical components or combined into fewer operating elements or physical components. In some further examples, additional operating elements and / or physical components may be added to the control system 500. Still further, any of the components or modules of the control system 500 may include or be provided in the form of a processor (e.g., a microprocessor, digital signal processor, etc.) configured to execute a program including one or more instructions for implementing the logical operations described herein. The control system 500 may further include any type of computer readable medium (non-transitory medium) or memory, such as a storage device including, for example, a disk or hard drive, for storing program code that, when executed by one or more processors, causes the control system 500 to perform the operations described above. In some examples, the control system 500 may be included within another system.

[0136] 23 shows a block diagram illustrating a computing device 2300 according to an example implementation. The computing device 2300 may represent any of the controllers or devices described above, such as, for example, the resolver-to-digital converter 502, the carrier frequency generator 506, the motor controller 504, the first processing core 510, the second processing core 526, the motor control module 530, etc.

[0137] Computing device 2300 includes: a processor 2302; data storage or memory 2304 that stores executable instructions 2305 that can be executed by processor 2302; a communications interface 2306; and an input / output interface 2308, all of which may be coupled by a bus 2310 or similar mechanism. In some embodiments, computing device 2300 may include other components and / or peripheral devices (e.g., removable storage, etc.).

[0138] The processor 2302 may be one or more of any type of computer processing element, such as a central processing unit (CPU), a coprocessor (e.g., a mathematical, graphics, or encryption coprocessor), a digital signal processor (DSP), a network processor, and / or an integrated circuit or controller configured to perform the operations of a processor. In some cases, the processor 2302 may be one or more single-core processors. In other cases, the processor 2302 may be one or more multi-core processors with multiple independent processing units (e.g., the first processing core 510 and the second processing core 526). The processor 2302 may also include a register memory for temporarily storing instructions and associated data being executed, and a cache memory for temporarily storing recently used instructions and data.

[0139] Memory 2304 may be any form of computer usable memory, including, but not limited to, random access memory (RAM), read only memory (ROM), and non-volatile memory (e.g., flash memory, hard disk drives, solid state drives, compact discs (CDs), digital video discs (DVDs), and / or tape-based storage). Memory 2304 thus represents both a main memory unit and long-term storage.

[0140] The memory 2304 stores executable instructions 2305 and data on which the executable instructions 2305 can operate. For example, the memory 2304 can store the executable instructions 2305 on a non-transitory computer-readable medium such that the processor 2302 can execute said instructions to perform any of the methods, processes, or operations disclosed herein or in the accompanying drawings. The memory 2304 can also include the operating system of the computing device 2300, as well as various software modules, firmware, and applications.

[0141] The communication interface 2306 may enable the computing device 2300 to communicate with various networks (e.g., the Internet, a CAN network, a proprietary network, etc.). The communication interface 2306 may take the form of one or more wired interfaces, such as Ethernet (e.g., Fast Ethernet, Gigabit Ethernet, etc.). The communication interface 2306 may also support communication over one or more non-Ethernet media, such as coaxial cable or power line, or over wide area media, such as Synchronous Optical Networking (SONET) or digital subscriber line (DSL) technologies. The communication interface 2306 may further take the form of one or more wireless interfaces, such as IEEE 802.11 (Wi-Fi), BLUETOOTH, global positioning system (GPS), or a wider area wireless interface. However, other forms of physical layer interfaces and other types of standard or proprietary communication protocols may be used over the communication interface 2306. Furthermore, the communication interface 2306 may comprise multiple physical interfaces. For example, some implementations of the computing device 2300 may include Ethernet, BLUETOOTH, and Wi-Fi interfaces.

[0142] The input / output interface 2308 can facilitate interaction between a user and peripheral devices and the computing device 2300. The input / output interface 2308 can include one or more types of input devices, such as a keyboard, a mouse, a touch screen, etc. Similarly, the input / output interface 2308 can include one or more types of output devices, such as a screen, a monitor, a printer, and / or one or more light emitting diodes (LEDs). Additionally or alternatively, the computing device 2300 can communicate with other devices using, for example, a universal serial bus (USB) or a high-definition multimedia interface (HDMI) port interface.

[0143] 24 is a flowchart of a method 2400 for operating an electric motor, according to an example implementation. The method 2400 may be implemented, for example, by the control system 500 (e.g., by the motor controller 504) to control the electric motor 100.

[0144] Method 2400 may include one or more operations or actions, such as those illustrated by one or more of blocks 2402-2414. Although the blocks are illustrated sequentially, the blocks may in some examples be performed in parallel and / or in a different order than described herein. Also, various blocks may be combined into fewer blocks, divided into additional blocks, and / or eliminated based on the desired implementation.

[0145] Further, for method 2400, as well as other processes and operations disclosed herein, the flow chart illustrates the operation of one possible implementation of the embodiments of the present invention. In this regard, each block may represent a module, segment, or portion of program code, including one or more instructions executable by a processor (e.g., a processing core of the motor controller 504) to implement a particular logical operation or step in the process. The program code may be stored in any type of computer readable medium or memory, such as a storage device including a disk or a hard drive. The computer readable medium may include non-transitory computer readable medium or memory, such as a computer readable medium that stores data for a short period of time, such as a register memory, a processor cache, and a random access memory (RAM). The computer readable medium may include non-transitory media or memory, such as a secondary or permanent long term storage, such as a read only memory (ROM), an optical or magnetic disk, a compact disk read only memory (CD-ROM). The computer readable medium may be any other volatile or non-volatile storage system. The computer readable medium may be considered, for example, a computer readable storage medium, a tangible storage device, or other article of manufacture. Additionally, with respect to method 2400, as well as other processes and operations disclosed herein, one or more of the blocks in FIG. 24 may represent circuitry or digital logic arranged to implement particular logical operations within the process.

[0146] At block 2402, method 2400 includes receiving, at a motor controller (e.g., motor controller 504), a sine wave feedback signal (e.g., sine wave feedback signal 400) and a cosine wave feedback signal (e.g., cosine wave feedback signal 402) from a resolver (e.g., resolver 200) coupled to an output shaft (e.g., output shaft 106) of an electric motor (e.g., electric motor 100), where the sine wave feedback signal and the cosine wave feedback signal modulate an excitation signal (e.g., excitation signal 308) provided to the resolver. For this example, carrier frequency generator 506 can provide a carrier frequency via SPI 508 to resolver-to-digital converter 502, which generates excitation signal 308 having the carrier frequency.

[0147] At block 2404, the method 2400 includes generating a rectified sine signal (e.g., rectified sine signal 902) and a rectified cosine signal (e.g., rectified cosine signal 904) by sampling the sine feedback signal and the cosine feedback signal at a frequency lower than the frequency of the excitation signal (e.g., at least 1.6 times lower than the carrier frequency). For example, the motor controller can generate a sine data buffer (e.g., sine data buffer 512) and a cosine data buffer (e.g., cosine data buffer 514) from the sine feedback signal and the cosine feedback signal, the data buffer having data points sampled at a frequency lower than the frequency of the excitation signal (e.g., excitation signal 308), where the generating the rectified sine signal and the rectified cosine signal is based on the sine data buffer and the cosine data buffer (see FIGS. 5-6).

[0148] In one example, as previously described with respect to FIG. 5, generating the sine wave data buffer and the cosine wave data buffer may include: converting the sine wave feedback signal and the cosine wave feedback signal to respective discrete values ​​using respective analog-to-digital converters (e.g., sine wave ADC 516 and cosine wave ADC 520); and filtering the outputs of the ADCs at a frequency lower than the respective frequencies of the excitation signals (e.g., using sine wave filter 518 and cosine wave filter 522).

[0149] Further, the steps of generating the rectified sine wave signal and the rectified cosine wave signal are such that the amplitudes of the rectified sine wave signal and the rectified cosine wave signal are proportional to the amplitudes of the sine wave feedback signal and the cosine wave feedback signal, respectively. For example, as previously described with respect to Figures 7-9, the amplitude extraction module 702 identifies positive or negative half cycles in each data buffer and sums the absolute values ​​of the data points that make up the positive or negative half cycles.

[0150] At block 2406, the method 2400 includes determining, by the motor controller, a direction of rotation of the output shaft using the sine wave feedback signal, the cosine wave feedback signal, the rectified sine wave signal, and the rectified cosine wave signal. For example, the direction extraction module 704 generates a first logic signal (e.g., first logic signal 1002 of FIG. 10) indicating when the rectified cosine wave signal exceeds the rectified sine wave signal and when the rectified sine wave signal exceeds the rectified cosine wave signal, and generates a second logic signal (e.g., second logic signals 1102, 1202 of FIGS. 11-12) indicating when a product of the sine wave feedback signal and the upper cosine wave feedback signal is positive and when the product is negative, where the determining the direction of rotation of the output shaft of the electric motor is based on the first logic signal and the second logic signal. For example, the direction extraction module 704 determines the direction of rotation based on the value or level of the second logic signal and the signal edges of the first logic signal, as described above.

[0151] In block 2408, the method 2400 includes converting the rectified sine wave signal and the rectified cosine wave signal into a signed sine wave signal (e.g., signed sine wave signals 1402, 1602) and a signed cosine wave signal (e.g., signed cosine wave signals 1404, 1604), respectively, using information related to the step of determining the direction of rotation (e.g., using the first logic signal 1002 and the second logic signal 1102, 1202). For example, the speed extraction module 706: (i) generates state signals (e.g., state signals 1302, 1502 in FIG. 13; see Table 1 above) corresponding to the first logic signal and the second logic signal; (ii) generates toggle signals (e.g., toggle signals 1304, 1504) that distinguish between a first 180° (i.e., first half rotation) and a second 180° (i.e., second half rotation) of the sine wave feedback signal and the cosine wave feedback signal; and (iii) determines a cosine wave multiplier and a sine wave multiplier (see Tables 2-3 above) based on the state signals and the toggle signals, where the step of converting the rectified sine wave signal and the rectified cosine wave signal to the signed sine wave signal and the signed cosine wave signal is based on the cosine wave multiplier and the sine wave multiplier (see FIGS. 14, 16).

[0152] At block 2410, method 2400 includes determining, by the motor controller, a speed of rotation of the output shaft using the signed sine and signed cosine signals. For example, speed extraction module 706 filters the signed sine and signed cosine signals through a low pass filter to generate filtered sine and filtered cosine signals 1702 and 1704 (see FIG. 17). In one example, speed extraction module 706 subsequently processes the filtered sine and filtered cosine signals through a tracking phase locked loop (e.g., tracking PLL 1800) to generate speed signal 1831.

[0153] At block 2412, method 2400 includes comparing the direction and speed of rotation determined by the motor controller to the direction and speed determined by a resolver-to-digital converter (e.g., resolver-to-digital converter 502) using the sine and cosine feedback signals. For example, as described above with respect to resolver speed monitor 1900, sensor signal processing module 528 determines the magnitude of the difference between the speed determined by the motor controller and the speed determined by the resolver-to-digital converter. Also, as described above with respect to resolver direction monitor 2000, sensor signal processing module 528 compares the direction of rotation determined by the motor controller and the direction of rotation determined by the resolver-to-digital converter to determine whether they are the same or not.

[0154] At block 2414, method 2400 includes operating, by the motor controller, the electric motor based on the comparing. For example, as previously described with respect to FIG. 19, if the difference in speeds is less than a difference threshold 1907 or if the difference exceeds a difference threshold 1907 for a time period less than a duration threshold 1917, resolver speed monitor 1900 provides instructions to operate the electric motor in a normal operating mode (e.g., responsive to the speed and direction of rotation determined by the resolver-to-digital converter during operation of the electric motor). If the difference exceeds difference threshold 1907 for longer than a duration threshold 1917, resolver speed monitor 1900 provides instructions to operate the electric motor in a safe operating mode (e.g., a reduced performance mode).

[0155] Similarly, with respect to direction, as previously described with respect to Figure 20, if the direction of rotation determined by the motor controller is the same as the direction of rotation determined by the resolver-to-digital converter, or if the direction of rotation determined by the motor controller differs from the direction of rotation determined by the resolver-to-digital converter for a period of time less than a duration threshold 2017, resolver direction monitor 2000 provides an indication to operate the electric motor in a normal operating mode. If the direction of rotation determined by the motor controller differs from the direction of rotation determined by the resolver-to-digital converter for a period of time greater than a duration threshold 2017, resolver direction monitor 2000 provides an indication to operate the electric motor in a safe operating mode.

[0156] The method may include further operations that may be performed and implemented by method 2400, as described throughout this specification. By way of example, the method may further include performing the five signal integrity checks described above. If the signal checks fail, the sensor signal processing module 528 instructs the motor control module 530 to operate in a safe mode or a reduced performance mode.

[0157] The above detailed description, with reference to the accompanying drawings, describes various features and operations of the disclosed system. The exemplary implementations described herein are not meant to be limiting. Certain aspects of the disclosure can be arranged and combined in a variety of different configurations, all of which are contemplated herein.

[0158] Moreover, unless otherwise suggested by context, features illustrated in each figure may be used in combination with each other, and thus the figures should generally be viewed as multiple aspects of components of one or more overall implementations, with the understanding that not all illustrated features are required for each implementation.

[0159] Moreover, recitations of elements, blocks, or steps in the specification or claims are for purposes of clarity, and such recitations should not be understood as requiring or implying that those elements, blocks, or steps follow a particular arrangement or be performed in a particular order.

[0160] Further, a device or system may be used to perform or may be configured to perform the functions presented in the figures. In some examples, the components of the device and / or system may be configured (using hardware and / or software) such that they have the configuration and structure to actually achieve such performance. In other examples, the components of the device and / or system may be arranged such that they are adapted to perform the functions, are capable of performing the functions, or are suitable for performing the functions, e.g., when operating in a certain manner.

[0161] The term "substantially" means that the described characteristic, parameter, or value may not necessarily be achieved exactly, and deviations or variations, including, for example, tolerances, measurement errors, limits of measurement accuracy, and other factors known to those skilled in the art, may occur in an amount that does not interfere with the effect that the characteristic is intended to provide.

[0162] The arrangements described herein are for illustrative purposes only. Thus, those skilled in the art will recognize that other arrangements and other elements (e.g., machines, interfaces, operations, sequences, and groupings of operations) may be substituted, or that some elements may be omitted entirely, depending on the desired results. Furthermore, many of the described elements are functional entities that may be implemented as separate or distributed components, or combined with other components in any suitable combination and location.

[0163] While various aspects and implementations are disclosed herein, other aspects and implementations will be apparent to those skilled in the art. The various aspects and implementations disclosed herein are for illustrative purposes only and are not intended to be limiting, with the true scope being set forth in the following claims, along with the full scope of equivalents to which such claims are entitled. Additionally, the terminology used herein is for the purpose of describing particular implementations only and is not intended to be limiting.

[0164] Thus, embodiments of the present disclosure may relate to one of the enumerated example embodiments (EEE) listed below.

[0165] The EEE1 includes the steps of: receiving, in a motor controller, a sine wave feedback signal and a cosine wave feedback signal from a resolver coupled to an output shaft of an electric motor, the sine wave feedback signal and the cosine wave feedback signal modulating an excitation signal provided to the resolver; generating rectified sine wave signals and rectified cosine wave signals by sampling the sine wave feedback signal and the cosine wave feedback signal at a frequency lower than the respective frequencies of the excitation signal; and determining, by the motor controller, a direction of rotation of the output shaft using the sine wave feedback signal, the cosine wave feedback signal, the rectified sine wave signal, and the rectified cosine wave signal. converting the rectified sine wave signal and the rectified cosine wave signal into a signed sine wave signal and a signed cosine wave signal, respectively, using information related to the determining the direction of rotation step; determining, by the motor controller, a speed of rotation of the output shaft using the signed sine wave signal and the signed cosine wave signal; comparing the direction of rotation and the speed of rotation determined by the motor controller with directions and speeds determined by a resolver-to-digital converter using the sine wave feedback signal and the cosine wave feedback signal; and operating the electric motor by the motor controller based on the comparing step.

[0166] EEE2 is the method described in EEE1, further comprising the step of generating a sine wave data buffer and a cosine wave data buffer from the sine wave feedback signal and the cosine wave feedback signal, the sine wave data buffer and the cosine wave data buffer having data points sampled at a frequency lower than the respective frequencies of the excitation signal, wherein the step of generating the rectified sine wave signal and the rectified cosine wave signal is based on the sine wave data buffer and the cosine wave data buffer.

[0167] EEE3 is the method described in EEE2, wherein the step of generating the sine wave data buffer and the cosine wave data buffer includes: converting the sine wave feedback signal and the cosine wave feedback signal to respective discrete values ​​using respective analog-to-digital converters (ADCs); and filtering the outputs of the ADCs at a frequency lower than the respective frequencies of the excitation signals.

[0168] EEE4 is the method according to EEE2 or 3, wherein the steps of generating the rectified sine wave signal and the rectified cosine wave signal are such that the amplitudes of the rectified sine wave signal and the rectified cosine wave signal are proportional to the amplitudes of the sine wave feedback signal and the cosine wave feedback signal, respectively.

[0169] EEE5 is the method of EEE4, wherein the step of generating the rectified sine wave signal and the rectified cosine wave signal such that the amplitudes of the rectified sine wave signal and the rectified cosine wave signal are proportional to the amplitudes of the sine wave feedback signal and the cosine wave feedback signal, respectively, comprises the steps of: identifying an earliest occurring positive or negative half cycle in each data buffer; and summing the absolute values ​​of the data points that make up the positive or negative half cycle.

[0170] EEE6 is the method of any one of EEE1-5, wherein the step of determining the direction of rotation of the output shaft of the electric motor includes: generating a first logic signal indicating when the rectified cosine wave signal exceeds the rectified sine wave signal and when the rectified sine wave signal exceeds the rectified cosine wave signal; and generating a second logic signal indicating when a product of the sine wave feedback signal and the upper cosine wave feedback signal is positive and when the product is negative, wherein the step of determining the direction of rotation of the output shaft of the electric motor is based on the first logic signal and the second logic signal.

[0171] EEE7 is the method according to EEE6, wherein the step of converting the rectified sine wave signal and the rectified cosine wave signal into the signed sine wave signal and the signed cosine wave signal, respectively, using information related to the step of determining the direction of rotation comprises: generating state signals corresponding to the first logic signal and the second logic signal; generating toggle signals distinguishing between a first 180° and a second 180° of the sine wave feedback signal and the cosine wave feedback signal; and determining a cosine multiplier and a sine multiplier based on the state signal and the toggle signal, wherein the converting the rectified sine wave signal and the rectified cosine wave signal into the signed sine wave signal and the signed cosine wave signal is based on the cosine multiplier and the sine multiplier.

[0172] EEE8 is a method according to any one of EEE1 to 7, wherein the step of determining the speed of rotation of the output shaft includes: filtering the signed sine wave signal and the signed cosine wave signal through a low pass filter to generate a filtered sine wave signal and a filtered cosine wave signal.

[0173] EEE9 is the method of EEE8, wherein the step of determining the speed of rotation of the output shaft further comprises the step of: processing the filtered sine wave signal and the filtered cosine wave signal through a tracking phase locked loop.

[0174] EEE10 is the method of any one of EEE1-9, wherein the step of comparing the speed of rotation of the output shaft determined by the motor controller with the speeds determined by the resolver-to-digital converter includes: determining a magnitude of a difference between the speed determined by the motor controller and the speeds determined by the resolver-to-digital converter, and wherein operating the electric motor based on the comparing step includes providing instructions to operate the electric motor in a normal operating mode if the difference is less than a difference threshold or if the difference exceeds a difference threshold for a period less than a duration threshold, and providing instructions to operate the electric motor in a safe operating mode if the difference exceeds the difference threshold for longer than the duration threshold.

[0175] EEE11 is the method of any one of EEE1-10, wherein the step of comparing the direction of rotation determined by the motor controller with the directions of rotation determined by the resolver-to-digital converter comprises the steps of: providing instructions to operate the electric motor in a normal operating mode if the direction of rotation determined by the motor controller is the same as the directions of rotation determined by the resolver-to-digital converter or if the direction of rotation determined by the motor controller differs from the directions of rotation determined by the resolver-to-digital converter for a time period less than a duration threshold, and providing instructions to operate the electric motor in a safe operating mode if the direction of rotation determined by the motor controller differs from the directions of rotation determined by the resolver-to-digital converter for a time period greater than the duration threshold.

[0176] EEE12 is the method of any one of EEE1-11, further comprising: generating a sine wave data buffer and a cosine wave data buffer from the sine wave feedback signal and the cosine wave feedback signal, the sine wave data buffer and the cosine wave feedback signal having data points sampled at a frequency lower than the respective frequencies of the excitation signal; and performing a signal integrity check on the sine wave feedback signal and the cosine wave feedback signal, the performing a signal integrity check comprising: determining whether a particular data point in a given sine wave data buffer or cosine wave data buffer has changed compared to two previous sine wave data buffers or cosine wave data buffers, and wherein the operating the electric motor is further based on the signal integrity check.

[0177] EEE13 is the method of any one of EEE1-12, further comprising: generating a sine wave data buffer and a cosine wave data buffer from the sine wave feedback signal and the cosine wave feedback signal, the data buffer having data sampled at a frequency lower than the respective frequencies of the excitation signal; extracting a maximum sine value, a minimum sine value, a maximum cosine value and a minimum cosine value from the sine wave data buffer and the cosine wave data buffer; and performing a signal integrity check on the sine wave feedback signal and the cosine wave feedback signal, the performing of the signal integrity check comprising: determining whether a magnitude of each of the maximum sine value, the minimum sine value, the maximum cosine value and the minimum cosine value is less than a tolerance value, and wherein the operating the electric motor is further based on the signal integrity check.

[0178] EEE14 is the method of any one of EEE1-13, further comprising: generating a sine data buffer and a cosine data buffer from the sine wave feedback signal and the cosine wave feedback signal, the data buffer having data sampled at a frequency lower than the respective frequencies of the excitation signal; extracting a maximum sine value, a minimum sine value, a maximum cosine value and a minimum cosine value from the sine wave data buffer and the cosine wave data buffer; and performing a signal integrity check on the sine wave feedback signal and the cosine wave feedback signal, the performing of the signal integrity check comprising the steps of: (i) determining whether a difference between a magnitude of the maximum sine value and a magnitude of the minimum sine value is less than a tolerance value; and (ii) determining whether a difference between a magnitude of the maximum cosine value and a magnitude of the minimum cosine value is less than a tolerance value, wherein the operating the electric motor is further based on the signal integrity check.

[0179] EEE15 is the method of any one of EEE1-14, further comprising the steps of: determining the square of the rectified sine wave signal and the square of the rectified cosine wave signal; determining a sum of the squares of the rectified sine wave signal and the rectified cosine wave signal; and performing a signal integrity check, wherein the step of performing the signal integrity check comprises the step of: determining whether the sum of squares is bounded between an acceptable maximum value and an acceptable minimum value, and wherein the step of operating the electric motor is further based on the signal integrity check.

[0180] EEE16 is the method of any one of EEE1-15, further comprising: determining the square of the signed sine wave signal and the square of the signed cosine wave signal; determining a sum of the squares of the signed sine wave signal and the signed cosine wave signal; and performing a signal integrity check, wherein the performing a signal integrity check comprises: determining whether the sum of squares is bounded between an acceptable maximum value and an acceptable minimum value, and wherein the operating the electric motor is further based on the signal integrity check.

[0181] EEE17 is a motor controller comprising: an electric motor comprising: (i) a resolver stator having a primary coil, a sine coil, and a cosine coil; and (ii) a resolver rotor mounted on an output shaft of the electric motor and configured to rotate with the output shaft, the resolver rotor comprising a secondary coil; a resolver-to-digital converter configured to (i) provide an excitation signal to the primary coil of the resolver stator, where the excitation signal excites the secondary coil of the resolver rotor to generate a sine wave feedback signal in the sine wave coil and a cosine wave feedback signal in the cosine wave coil, (ii) receive the sine wave feedback signal and the cosine wave feedback signal, and (iii) determine a direction and a speed of rotation of the output shaft using the sine wave feedback signal and the cosine wave feedback signal; and a motor controller comprising one or more processors and a non-transitory computer readable medium having instructions stored thereon. The instructions, when executed by the one or more processors, perform the steps of: receiving the sine wave feedback signal and the cosine wave feedback signal; generating rectified sine wave signals and rectified cosine wave signals by sampling the sine wave feedback signal and the cosine wave feedback signal at a frequency lower than the respective frequencies of the excitation signal; determining a direction of each rotation of the output shaft using the sine wave feedback signal, the cosine wave feedback signal, the rectified sine wave signal, and the rectified cosine wave signal; converting the rectified sine wave signals and the rectified cosine wave signals into signed sine wave signals and signed cosine wave signals, respectively, using information related to each of the steps of determining the direction of rotation; determining a speed of each rotation of the output shaft using the signed sine wave signals and the signed cosine wave signals; comparing the direction and the speed determined by the motor controller with the direction and the speed of rotation determined by the resolver-to-digital converter;and causing the motor controller to perform operations including operating the electric motor based on the comparing step.

[0182] EEE18 is the electric motor of EEE17, wherein the step of comparing the speed of each of the rotations of the output shaft determined by the motor controller with the speed determined by the resolver-to-digital converter includes: determining a magnitude of a difference between each of the speeds determined by the motor controller and each of the speeds determined by the resolver-to-digital converter, wherein operating the electric motor based on the comparing step includes providing instructions to operate the electric motor in a normal operating mode if the difference is less than a difference threshold or if the difference exceeds a difference threshold for a period less than a duration threshold, and providing instructions to operate the electric motor in a safe operating mode if the difference exceeds the difference threshold for longer than the duration threshold.

[0183] EEE19 is the electric motor of EEE17 or 18, wherein the step of comparing the direction of rotation determined by the motor controller with the direction of rotation determined by the resolver-to-digital converter comprises the steps of: providing instructions to operate the electric motor in a normal operating mode if the direction of rotation determined by the motor controller is the same as the direction of rotation determined by the resolver-to-digital converter or if the direction of rotation determined by the motor controller differs from the direction of rotation determined by the resolver-to-digital converter for a period of time less than a duration threshold, and providing instructions to operate the electric motor in a safe operating mode if the direction of rotation determined by the motor controller differs from the direction of rotation determined by the resolver-to-digital converter for a period of time greater than the duration threshold.

[0184] EEE20 is the electric motor of EEE19, wherein operating the electric motor in a normal operating mode includes operating the electric motor in a dependent manner on the speed and direction of rotation determined by the resolver-to-digital converter, and operating the electric motor in a safe operating mode includes reducing performance of the electric motor.

Claims

1. receiving, at a motor controller, sine and cosine feedback signals from a resolver coupled to an output shaft of an electric motor, the sine and cosine feedback signals modulating an excitation signal provided to the resolver; generating rectified sine and cosine wave signals by sampling the sine and cosine wave feedback signals at a frequency lower than the respective frequencies of the excitation signal; determining, by the motor controller, a direction of rotation of the output shaft using the sine wave feedback signal, the cosine wave feedback signal, the rectified sine wave signal, and the rectified cosine wave signal; converting the rectified sine wave signal and the rectified cosine wave signal into a signed sine wave signal and a signed cosine wave signal, respectively, using information related to the determining a direction of rotation step; determining, by the motor controller, a speed of rotation of the output shaft using the signed sine signal and the signed cosine signal; comparing the direction of rotation and the speed of rotation determined by the motor controller with the directions and speeds determined by a resolver-to-digital converter using the sine and cosine feedback signals; and operating the electric motor with the motor controller based on the comparing step. A method comprising:

2. 2. The method of claim 1, further comprising generating a sine wave data buffer and a cosine wave data buffer from the sine wave feedback signal and the cosine wave feedback signal having data points sampled at a frequency lower than a respective frequency of the excitation signal, wherein the generating the rectified sine wave signal and the rectified cosine wave signal is based on the sine wave data buffer and the cosine wave data buffer.

3. The step of generating the sine wave data buffer and the cosine wave data buffer comprises: converting the sine wave feedback signal and the cosine wave feedback signal to respective discrete values ​​using respective analog-to-digital converters (ADCs); and filtering the outputs of the ADCs at a frequency lower than the respective frequencies of the excitation signals; The method of claim 2 , comprising:

4. 3. The method of claim 2, wherein the generating the rectified sine wave signal and the rectified cosine wave signal is such that amplitudes of the rectified sine wave signal and the rectified cosine wave signal are proportional to amplitudes of the sine wave feedback signal and the cosine wave feedback signal, respectively.

5. The step of generating the rectified sine wave signal and the rectified cosine wave signal such that the amplitudes of the rectified sine wave signal and the rectified cosine wave signal are proportional to the amplitudes of the sine wave feedback signal and the cosine wave feedback signal, respectively, comprises: identifying an earliest occurring positive or negative half cycle in each data buffer; and summing the absolute values ​​of the data points that make up the positive or negative half cycle. The method of claim 4 , comprising:

6. The step of determining the direction of rotation of the output shaft of the electric motor comprises: generating a first logic signal indicative of when the rectified cosine signal exceeds the rectified sine signal and when the rectified sine signal exceeds the rectified cosine signal; and generating a second logic signal indicative of when a product of the sine wave feedback signal and the upper cosine wave feedback signal is positive and when the product is negative. Including, The method of claim 1 , wherein the step of determining a direction of rotation of the output shaft of the electric motor is based on the first logic signal and the second logic signal.

7. The step of converting the rectified sine wave signal and the rectified cosine wave signal into the signed sine wave signal and the signed cosine wave signal, respectively, using information related to the step of determining the direction of rotation, comprises: generating a state signal corresponding to the first logic signal and the second logic signal; generating a toggle signal that distinguishes between a first 180° and a second 180° of the sine wave feedback signal and the cosine wave feedback signal; and determining a cosine wave multiplier and a sine wave multiplier based on the state signal and the toggle signal; Including, 7. The method of claim 6, wherein the converting the rectified sine wave signal and the rectified cosine wave signal to the signed sine wave signal and the signed cosine wave signal is based on the cosine wave multiplier and the sine wave multiplier.

8. The step of determining a speed of rotation of the output shaft comprises: filtering the signed sine wave signal and the signed cosine wave signal through a low pass filter to generate a filtered sine wave signal and a filtered cosine wave signal. The method of claim 1 , comprising:

9. The step of determining the speed of rotation of the output shaft comprises: processing the filtered sine wave signal and the filtered cosine wave signal through a tracking phase locked loop; The method of claim 8 further comprising:

10. The step of comparing the speed of rotation of the output shaft determined by the motor controller with each of the speeds determined by the resolver-to-digital converter comprises: determining a magnitude of a difference between the speed determined by the motor controller and each of the speeds determined by the resolver-to-digital converter; Including, The step of operating the electric motor based on the comparing step comprises: providing instructions to operate the electric motor in a normal operating mode if the difference is less than a difference threshold or if the difference exceeds a difference threshold for a period of time that is less than a duration threshold; providing an instruction to operate the electric motor in a safe operating mode if the difference exceeds the difference threshold for longer than the duration threshold. The method of claim 1 , comprising:

11. The step of comparing the direction of rotation determined by the motor controller with each of the directions of rotation determined by the resolver-to-digital converter includes: providing instructions to operate the electric motor in a normal operating mode when the direction of rotation determined by the motor controller is the same as each of the directions of rotation determined by the resolver-to-digital converter or when the direction of rotation determined by the motor controller differs from each of the directions of rotation determined by the resolver-to-digital converter for a period of time less than a duration threshold; providing an instruction to operate the electric motor in a safe operating mode when the direction of rotation determined by the motor controller differs from each of the directions of rotation determined by the resolver-to-digital converter for a time period greater than the duration threshold. The method of claim 1 , comprising:

12. generating sine and cosine data buffers from the sine and cosine feedback signals having data points sampled at a frequency lower than the respective frequencies of the excitation signal; and performing a signal integrity check on the sine wave feedback signal and the cosine wave feedback signal. Further comprising: The step of performing the signal integrity check comprises: determining whether a particular data point in a given sine or cosine data buffer has changed compared to two previous sine or cosine data buffers; Including, The method of claim 1 , wherein the step of operating the electric motor is further based on the signal integrity check.

13. generating a sine wave data buffer and a cosine wave data buffer from the sine wave feedback signal and the cosine wave feedback signal, the data having data sampled at a frequency lower than the respective frequencies of the excitation signal; extracting a maximum sine value, a minimum sine value, a maximum cosine value, and a minimum cosine value from the sine wave data buffer and the cosine wave data buffer; and performing a signal integrity check on the sine wave feedback signal and the cosine wave feedback signal. Further comprising: The step of performing the signal integrity check comprises: determining whether the magnitude of each of the maximum sine value, the minimum sine value, the maximum cosine value, and the minimum cosine value is less than a tolerance value; Including, The method of claim 1 , wherein the step of operating the electric motor is further based on the signal integrity check.

14. generating a sine wave data buffer and a cosine wave data buffer from the sine wave feedback signal and the cosine wave feedback signal, the data having data sampled at a frequency lower than the respective frequencies of the excitation signal; extracting a maximum sine value, a minimum sine value, a maximum cosine value, and a minimum cosine value from the sine wave data buffer and the cosine wave data buffer; and performing a signal integrity check on the sine wave feedback signal and the cosine wave feedback signal. Further comprising: The step of performing the signal integrity check comprises: (i) whether the difference between the magnitude of the maximum sine value and the magnitude of the minimum sine value is less than a tolerance value; and (ii) determining whether the difference between the magnitude of the maximum cosine value and the magnitude of the minimum cosine value is less than a tolerance value; Including, The method of claim 1 , wherein the step of operating the electric motor is further based on the signal integrity check.

15. determining the square of the rectified sine wave signal and the square of the rectified cosine wave signal; determining a sum of squares, the sum of the square of the rectified sine wave signal and the square of the rectified cosine wave signal; and Steps for performing a signal integrity check Further comprising: The step of performing the signal integrity check comprises: determining whether the sum of squares is bounded between a maximum and a minimum allowable value. Including, The method of claim 1 , wherein the step of operating the electric motor is further based on the signal integrity check.

16. determining the square of the signed sine signal and the square of the signed cosine signal; determining a sum of squares, the sum of the squares of the signed sine signal and the squares of the signed cosine signal; and Steps for performing a signal integrity check Further comprising: The step of performing the signal integrity check comprises: determining whether the sum of squares is bounded between a maximum and a minimum allowable value. Including, The method of claim 1 , wherein the step of operating the electric motor is further based on the signal integrity check.

17. 1. An electric motor comprising: a resolver comprising: (i) a resolver stator having a primary coil, a sine coil, and a cosine coil; and (ii) a resolver rotor mounted on an output shaft of the electric motor and configured to rotate with the output shaft, the resolver rotor comprising a secondary coil; a resolver-to-digital converter configured to (i) provide an excitation signal to the primary coil of the resolver stator, where the excitation signal excites the secondary coil of the resolver rotor to generate a sine wave feedback signal in the sine wave coil and a cosine wave feedback signal in the cosine wave coil, (ii) receive the sine wave feedback signal and the cosine wave feedback signal, and (iii) determine a direction and a speed of rotation of the output shaft using the sine wave feedback signal and the cosine wave feedback signal; and 1. A motor controller comprising: one or more processors; and a non-transitory computer readable medium having instructions stored thereon, the instructions, when executed by the one or more processors, perform: receiving the sine wave feedback signal and the cosine wave feedback signal; generating rectified sine and cosine wave signals by sampling the sine and cosine wave feedback signals at a frequency lower than the respective frequencies of the excitation signal; determining a direction of each rotation of the output shaft using the sine wave feedback signal, the cosine wave feedback signal, the rectified sine wave signal, and the rectified cosine wave signal; converting the rectified sine wave signal and the rectified cosine wave signal into a signed sine wave signal and a signed cosine wave signal, respectively, using information related to the step of determining a direction of each of the rotations; determining a speed of each rotation of the output shaft using the signed sine signal and the signed cosine signal; comparing each of the directions and each of the speeds determined by the motor controller with the directions of rotation and the speeds of rotation determined by the resolver-to-digital converter; and operating the electric motor based on the comparing step. A motor controller that causes the motor controller to perform an operation including An electric motor comprising:

18. The step of comparing the speed of each rotation of the output shaft determined by the motor controller to the speed determined by the resolver-to-digital converter comprises: determining a magnitude of a difference between each of the velocities determined by the motor controller and each of the velocities determined by the resolver-to-digital converter; Including, The step of operating the electric motor based on the comparing step comprises: providing instructions to operate the electric motor in a normal operating mode if the difference is less than a difference threshold or if the difference exceeds a difference threshold for a period of time that is less than a duration threshold; providing an instruction to operate the electric motor in a safe operating mode if the difference exceeds the difference threshold for longer than the duration threshold.

20. The electric motor of claim 17, comprising:

19. The step of comparing each of the directions of rotation determined by the motor controller with the directions of rotation determined by the resolver-to-digital converter includes: providing instructions to operate the electric motor in a normal operating mode when each of the directions of rotation determined by the motor controller is the same as the direction of rotation determined by the resolver-to-digital converter or when each of the directions of rotation determined by the motor controller differs from the direction of rotation determined by the resolver-to-digital converter for a period of time less than a duration threshold; providing instructions to operate the electric motor in a safe operating mode when each of the directions of rotation determined by the motor controller differs from the direction of rotation determined by the resolver-to-digital converter for a time period greater than the duration threshold.

20. The electric motor of claim 17, comprising:

20. operating the electric motor in a normal operating mode includes making the operating of the electric motor dependent on the speed and direction of rotation determined by the resolver-to-digital converter; 20. The electric motor of claim 19, wherein operating the electric motor in a safe operating mode comprises reducing performance of the electric motor.

Citation Information

Patent Citations

  • Motor angle detection and diagnosis device, motor controller, electric vehicle and method

    CN112689952A

  • Compact high-efficiency electronic motor controller having insulated gate driver for IGBT power transistor, and its dispersion-type power source

    JP1997182492A

  • Abnormality diagnostic device of rotation angle sensor information

    JP2018189619A

  • Control system for brushless motors

    US4942344A

  • Rd converter diagnostic device, steering system and power train system

    WO2013103059A1