OPTIMIZATIONS FOR ROTATING DETECTORS / DIGITAL CONVERTERS

DE102024123762A1Pending Publication Date: 2025-03-06INFINEON TECHNOLOGIES AG
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
DE102024123762
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-16
Filing Date
2024-08-20
Publication Date
2025-03-06

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

In general, techniques for optimization of rotary encoder / digital signal converters are described. A processing circuit arrangement comprising a delta / sigma analog-to-digital converter (144) and a fixed-point signal processor can implement these techniques. The delta / sigma analog-to-digital converter (144) can be communicatively coupled to a fixed-point digital signal processor (124) and electrically coupled to a rotary encoder sensor (104) attached to a rotating element (106) controlled by the processing circuit arrangement. The delta / sigma analog-to-digital converter (144) is configured to obtain, based on electrical interactions with the rotary encoder sensor (104), a digital cosine value for an indirectly detected angle of the rotating element (106) and a digital sine value for the indirectly detected angle of the rotating element (106).The fixed-point digital signal processor (124) can be designed to implement a fixed-point Luenberger observer rotary encoder / digital converter (122) designed to obtain an approximate angle (131) of the rotating element (106) based on the digital sine value and the digital cosine value using fixed-point mathematical operations.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority over preliminary US application No. 63 / 579447, which was filed on August 29, 2023, and is incorporated herein in its entirety by reference. TECHNICAL AREA

[0002] This disclosure relates to rotary encoders / digital converters (RDCs) for computing devices. background

[0003] Processors such as microcontrollers are increasingly used in industrial environments (e.g., for engine control and signal processing), vehicles (e.g., control of internal combustion engines, electric and hybrid vehicles, transmission control units, chassis domains, braking systems, electric power steering systems, driver assistance systems, etc.), and the like. Microcontrollers can include hardware for implementing rotary encoders / digital converters (RDCs), which may be used for signal processing to resolve the angle and velocity of a rotating element. The RDCs can be connected to a rotary encoder sensor coupled to the rotating element to obtain a sine and a cosine signal representing the angle and / or velocity of the rotating element to which the rotary encoder sensor is coupled.Accurate (within acceptable tolerances when using a rotary encoder sensor) and timely (within time delay tolerances) derivation of the angle and / or speed from the sine and cosine signals can enable the microcontroller to control the operation of the rotating element more accurately.

[0004] Hardware designed to implement RDCs may include a field-programmable gate array (FPGA) with large on-chip memory for data storage and / or a processing core programmed to run software for performing RDCs (or aspects thereof). While an FPGA and / or processing core can improve the accuracy associated with RDCs due to the large memory available for lookup tables and the potential for floating-point calculations provided by such implementations, they are undesirable because they incur additional costs and offer reduced performance due to limited data rates. Therefore, it is desirable in the industry to integrate high-performance RDCs (or aspects thereof) directly into application-specific integrated circuits (ASICs). One approach is to equip ASICs with a digital signal processor (DSP) and run software on the DSP to perform RDCs (or aspects thereof).Another option is to design RDCs in hardware. In both cases, fixed-point algorithms that provide the required accuracy are superior due to their smaller footprint and lower licensing costs. When transitioning to ASICs, resource allocation between the following dimensions is unavoidable: (1) performance, (2) memory, and (3) computation / execution time. Most RDCs rely on using the arctangent function to calculate the position (and thus the speed) of the rotating element. This approach has two significant drawbacks: (1) An accurate arctangent function requires a large number of computation cycles or a large amount of memory, and (2) the accuracy of the angle and speed depends on the rotation correction when the carrier (or information about it) is used to demodulate the amplitude-modulated sine and cosine signals from the rotary encoder sensor.

[0005] In contrast, Luenberger-observer-based RDCs mitigate these disadvantages by employing a feedback structure that, on the one hand, eliminates the need for arctangent calculations and, on the other hand, is less concerned with or even completely unaffected by the orbital delay caused by the shift between amplitude-modulated sine / cosine information and the carrier information. Angular and velocity approximation, demodulation of the amplitude-modulated sine and cosine signals, and a tracking observer can all be achieved within a second-order control system. SUMMARY

[0006] In general, techniques are described for optimizing a rotary encoder / digital converter (RDC) implemented in a fixed-point section of a microcontroller or other processing circuit arrangement, which enables an accurate (within defined accuracy tolerances) and timely (within defined time tolerances) derivation of an angle and / or velocity of a rotating element that can be controlled after receiving angle and / or velocity information from an external controller or the same microcontroller that provides the angle and / or velocity information and executes the LO-based RDC algorithms.A microcontroller or other processing circuit arrangement may include a digital signal processor (DSP) (an example of a DSP) designed to implement a Luenberger observer RDC (“LORDC”) that provides a set of different configurable variables to potentially facilitate the optimization of a LORDC implementation. The DSP may represent a fixed-point DSP, which performs single-sample / single-point data processing. Unlike floating-point hardware, fixed-point hardware is suitable for cost-effective and energy-efficient implementations with a small chip area.

[0007] Furthermore, the DSP may include a limited-size lookup table (LUT) used to represent a cosine wave and a sine wave, which serve as a reference when observing (or otherwise calculating or deriving) an approximate angle of a rotating element via a rotary encoder sensor. The size of the LUT is related to the accuracy of the angle and velocity estimation. Reducing the LUT size can increase the step size between two values ​​stored in subsequent LUT entries, thereby decreasing the accuracy in determining a cosine and a sine of the approximate angle, which can also lead to errors in observing the angle and / or velocity. Another source of error is the quantization of a fixed-point implementation, which can lead to limitations in value size as well as accuracy.The LUT for the sine and cosine wave reference offers only a fixed number of bits, and the quantization of the coefficients also affects the accuracy. Furthermore, integrator winding values, which only vaguely represent the constant Pi (π), can further increase the inaccuracy. Especially in closed systems like the LO-based RDC, all these imperfections can lead to undesirable local errors, which the feedback attempts to correct. In some cases, such as with coefficient quantization, the error can accumulate over time. To address the inherent limitations of the fixed-point DSP and the limited size of the LUT, the LORDC can be equipped with a configurable step size for the LUT and a configurable winding gain (G. W ). Reducing the step size can increase the memory required for the LUT, as a smaller step size may require more entries.

[0008] In contrast, G can W This allows for an optimization that improves the accuracy of the winding. This involves winding up a value calculated for both the cosine and sine of the approximate angle, taking into account that the cosine and sine functions have a period of 2π. That is, the function repeats cyclically in multiples of 2π. LORDC can approximate the angle by integrating an approximate velocity, which eventually results in an approximate, ever-increasing angle. The bit-width-limited integrator that provides the approximate angle would overflow, leading to a phase error, since the value of the integrated velocity might not be 2π.

[0009] By providing the configurable step size and G WThe developer of LORDC can optimize the LO application to determine the approximate angle in a way that accommodates both fixed-point limitations associated with the fixed-point DSP and a limited LUT size. The step size can allow for different implementations to store a quarter (1 / 4), half (1 / 2), or full (1-representation) of the cosine and sine values ​​of the approximate angle to adjust accuracy while balancing memory requirements. A quarter representation can allow for a smaller step size compared to a half or full representation, and a half representation can allow for a smaller step size compared to a full representation. By selecting the step size, the developer can tailor the limited LUT size to the timing, accuracy, and / or precision requirements of a particular LORDC implementation. WFurthermore, it can enable the developer to design the limited size of the LUT with regard to the timing, accuracy and / or precision requirements of a specific implementation of the LORDC.

[0010] In this way, various aspects of the techniques can enable a fixed-point DSP with limited memory to meet diverse requirements for memory size, timing (e.g., execution time), and precision (e.g., angular or phase errors) for estimating the approximate angle of the rotating element, while retaining as many of the inherent advantages of a LORDC implementation as possible. Such advantages of a LORDC implementation can include reduced utilization of computing resources (in terms of execution cycles, memory and memory bus bandwidth usage, and the associated power consumption), while avoiding the use of additional components that can increase the complexity and potentially the cost of motor / power machine control systems.

[0011] Furthermore, the advantages of LORDC implementation eliminate the need for additional arctangent operations, filtering, and velocity calculations in hardware or software, potentially requiring only a single LORDC. Additionally, the LORDC can inherently act as a low-pass filter, offering relaxed timing requirements for the carrier signal. Therefore, various aspects of LORDC optimization techniques can improve the operation of LORDC systems themselves.

[0012] In one example, aspects of the techniques relate to a processing circuit arrangement comprising: a delta / sigma analog-to-digital converter coupled communicatively to a fixed-point digital signal processor and electrically to a rotary encoder sensor attached to a rotating element controlled by the processing circuit arrangement, wherein the delta / sigma analog-to-digital converter is designed to obtain, based on electrical interactions with the rotary encoder sensor, a digital cosine value for an indirectly detected angle of the rotating element and a digital sine value for the indirectly detected angle of the rotating element;and a fixed-point digital signal processor designed to implement a fixed-point Luenberger observer rotary encoder / digital converter which obtains an approximate angle of the rotating element based on the digital sine value and the digital cosine value using fixed-point mathematical operations.

[0013] In another example, aspects of the techniques relate to a procedure that includes: obtaining a digital cosine value for an indirectly detected angle of a rotating element and a digital sine value for the indirectly detected angle of the rotating element by a microcontroller's delta / sigma analog-to-digital converter based on electrical interactions with a rotary encoder sensor; obtaining an approximate angle of the rotating element by a fixed-point Luenberger observer rotary encoder / digital converter implemented by the microprocessor's fixed-point digital signal processor based on the digital sine value and the digital cosine value using fixed-point arithmetic operations; and outputting the approximate angle by the fixed-point Luenberger observer rotary encoder / digital converter to facilitate control of the rotating element.

[0014] In another example, aspects of the techniques relate to a system comprising: a rotating element; a rotary encoder sensor attached to the rotating element; and a microcontroller that is communicatively coupled to the rotary encoder sensor and designed to control the rotating element, wherein the microcontroller comprises: a delta / sigma analog-to-digital converter that is communicatively coupled to the fixed-point digital signal processor and electrically coupled to the rotary encoder sensor, wherein the delta / sigma analog-to-digital converter is designed to obtain, based on electrical interactions with the rotary encoder sensor, a digital cosine value for an indirectly detected angle of the rotating element and a digital sine value for the indirectly detected angle of the rotating element;and a fixed-point digital signal processor designed to implement a fixed-point Luenberger observer rotary encoder / digital converter which obtains an approximate angle of the rotating element based on the digital sine value and the digital cosine value using fixed-point mathematical operations.

[0015] The details of one or more aspects of the techniques are set forth in the accompanying drawings and the following description. Other features, objectives, and advantages of these techniques are evident from the description, the drawings, and the claims. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 is a diagram showing an exemplary system designed to perform various aspects of the rotary encoder / digital converter (RDC) techniques described in this disclosure. Fig. 2A-2C are diagrams that describe the Luenberger observer rotary switch / digital converter (LORDC) from Fig. 1, how it is optimized according to various aspects of the RDC optimization techniques described in this disclosure. Fig. Figure 3 is a flowchart illustrating the exemplary operation of the microcontroller of Fig. 1 when performing an optimized rotary encoder / digital conversion according to various aspects of the techniques described in this disclosure. Fig. Figure 4 is a diagram showing an exemplary system designed to perform various aspects of the optimized rotary encoder / digital converter techniques described in this disclosure. Detailed description

[0016] Fig. Figure 1 is a diagram showing an exemplary system designed to implement various aspects of the rotary encoder / digital converter (RDC) techniques described in this disclosure. In the example of Fig. 1 comprises a system 100 a microcontroller 102, a rotary encoder sensor 104 and a rotating element 106 to which the rotary encoder sensor 104 is attached or otherwise mechanically fixed.

[0017] The microcontroller 102 can represent an example of a processing circuit arrangement designed to control the system 100. Although described in relation to the microcontroller 102, various aspects of the techniques can be implemented by other types of processing circuits, including a central processing unit (CPU), a multi-core processing unit (where each core of several cores forming the multi-core processing unit can represent a section of a CPU that can share on-chip memory and other resources configured as part of an assembly such as a system-on-a-chip (SoC)), a system-on-a-chip (SoC), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), and the like.

[0018] The rotary encoder sensor 104 can be a sensor designed for the indirect detection of rotary (or angular) movements. The rotary encoder sensor 104 is used in the example of Fig. 1 attached to the rotating element 106 or otherwise mechanically fixed to it. The rotating element 106 can be any type of element designed to rotate about a central axis 107 or otherwise orbit it. Rotation is indicated by a dashed arrow, where in the example of Fig. 1. The rotating element 106 is shown rotating clockwise about the central axis 107. The rotating element 106 can represent an axle, a shaft (such as the shaft of an electric motor, a servo, and the like), or any other rotating element designed to rotate about a central axis 107. The rotary encoder sensor 104 can represent a brushless rotary encoder sensor, a plate rotary encoder sensor, a pancake rotary encoder sensor, a receiver rotary encoder sensor, and / or a differential rotary encoder sensor, and the like.

[0019] The rotary encoder sensor 104 can comprise a rotor 110, an excitation stator 112, a sine wave stator 114, and a cosine wave stator 116, which is offset by approximately 90 degrees from the sine wave stator 114 (as indicated by dashed lines 119, with this offset being approximately 90 degrees within manufacturing tolerances). The rotary encoder sensor 104 can resemble an electric motor, except that the excitation stator 112 does not induce an electric current in the rotor 110 to perform work (e.g., in the form of the rotor 110 rotating about the central axis 107), but rather induces an electric current in the rotor 110 that can be indirectly detected by the sine wave stator 114 and / or cosine wave stator 116. This means that the excitation stator 112 can generate an electromagnetic field via an analog excitation signal 111, which is generated by the microcontroller 102, inducing a current in the rotor 110.The current in the rotor 110 can generate an electromagnetic field that induces a current in the sine stator 114 and / or cosine stator 116.

[0020] The analog excitation signal 111 generated by the microcontroller 102 and supplied to the excitation stator 112 can correspond to a sine wave (or a cosine wave) or to a pulse-width modulated sine wave (or cosine wave), which can cause the sine stator 114 to generate an analog sine signal 115 via the rotor 110, and cause the cosine stator 116 to generate an analog cosine signal 117.The analog sine signal 115 can be phase-shifted by 90 degrees relative to the analog cosine signal 117, which may allow the microcontroller 102 to derive a current angle (although there may be a processing delay and "current" may refer to a current position after completion of processing the analog sine signal 115 and the analog cosine signal 117) and possibly speed for the rotary encoder sensor 104 (which is attached to the rotating element 107 performing a rotary motion due to the mechanical fastening such as a screw, clamp, bolt or other detachable device).Although described in relation to a removable device, the rotary encoder sensor 104 can be permanently or semi-permanently attached to the rotating element 106, for example by welding, gluing or the like, or by a combination of removable and semi-permanent attachment to the rotating element 106.

[0021] System 100 can be used in many different contexts to determine the current angle (or, in other words, the angular position) of the rotating element 106 about the central axis 107 and possibly its rotational speed (or, in other words, its angular velocity) about the central axis 107. System 100 can facilitate the control of the rotating element 106 within a larger control system, where the current angle or angular velocity can provide feedback for the subsequent control of the rotating element 106 (which may be connected to an electric motor, a conventional gas or fuel-powered engine, a servo, etc., and may be computed in an electronic control unit (ECU) or other processing units).The system 100 can be used, for example, in a vehicle (such as a car, motorcycle, bicycle including electric bicycles, agricultural equipment, military equipment, aircraft, watercraft, and the like), factories or other manufacturing centers, robots, or any other environment where the angle or speed of a rotating element 106 is required for monitoring or subsequent control of the rotating element 106. In an automotive context, for example, the microcontroller 102 can be integrated into an electronic control unit (ECU) or other type of control unit that monitors the angular position or angular velocity of an electric motor designed to drive an axle of a vehicle (e.g., a car) and thereby perform work in the form of rotating wheels for forward and / or reverse motion.

[0022] In any case, the microcontroller 102 can implement a Luenberger observer rotary encoder / digital converter unit (LORDC unit) 122 (“LORDC 122”). The LORDC 122 can at least partially implement a LORDC described in an article by Krah, Jens O., et al. entitled “FPGA Based Resolver to Digital Converter Using Delta / Sigma Technology”, published in the Proceedings of PCIM Europe 2006 (931) and dated May 1, 2006 (hereinafter “LORDC article”). As described in the LORDC article, it is preferable to implement the LO algorithm to avoid the computation of a trigonometric arctangent function (“arctan”) in software and / or dedicated hardware, which can lead to problems when signals 115 and 117 are identical (due to the excitation signal 111).The LO algorithm can represent a tracking control loop algorithm that requires only a sine and cosine function instead of a division and arctangent function.

[0023] As further noted in the LORDC article, there are several disadvantages to using an RDC chip. These include the high cost of the RDC chip, the additional space required on the printed circuit board (PCB), limited performance because the RDC chip design may need to be optimized for high motor speeds and / or high resolution (which can improve the accuracy of the angular derivative of the rotating element 106), limited flexibility because the bandwidth of a fixed-point tracking loop may be limited, and no compensation for sine / cosine gain mismatch and / or phase delay due to the tracking loop (which may depend on the tracking loop's bandwidth). According to the LORDC article, many LORDC implementations are therefore designed for an FPGA or a CPU (or other general-purpose processing circuitry).LORDC implementations, including the implementation discussed in the LORDC article, can address some of these disadvantages of RDC chips, but may still rely on an FPGA to implement the LO algorithm.

[0024] Despite the optimization challenges and the associated PCB footprint of an RDC chip (which may be integrated into the processing circuitry), such RDC chips can improve the efficiency of calculating the angle of the rotating element 106 with little to no phase delay. Furthermore, using a CPU or other general-purpose processor to execute a software LO algorithm can consume processing cycles, memory, memory bus bandwidth, and other computational resources (along with the associated power consumption) that could otherwise be used by algorithms required for the overall control of the rotating element 106 and / or other components into which the System 100 is integrated. Using an FPGA can incur additional costs compared to an RDC chip and may also complicate the overall design of the System 100.

[0025] According to various aspects of the techniques described in this disclosure, the microcontroller 102 can include a digital signal processor (DSP) 124 designed to implement the LORDC 122 and providing a set of different configurable variables to potentially facilitate the optimization of a LORDC implementation (e.g., the LORDC 122). The DSP 124 can be a fixed-point DSP that performs single-sampling / single-point data processing. In contrast to fixed-point arithmetic, where bits are used to represent a specific value before and after the decimal point, floating-point arithmetic uses a scientific notation where the bits represent the mantissa and exponent, which together represent the number. Unlike floating-point hardware, fixed-point hardware is suitable for low-cost and low-power implementations with a small chip area.

[0026] Unlike fixed-point arithmetic, where bits are used to represent a specific value before and after the decimal point, floating-point arithmetic uses a scientific notation where bits represent the mantissa and exponent, which together represent the number. Although floating-point units offer the highest precision, they have the disadvantages of requiring more area, consuming more power, and potentially incurring additional licensing costs. Therefore, fixed-point algorithms, which are well-suited for applications with limited precision, are more attractive than high-precision floating-point algorithms, which reduce customer adoption and increase chip costs.

[0027] Furthermore, the DSP 124 can have a limited-size lookup table (LUT) 126 used to display a cosine wave and a sine wave, which can be used as a reference for observing (or otherwise calculating or deriving) an approximate angle 131 (“Angle 131”) of the rotating element 106 via the rotary encoder sensor 104, an angular error (AE) 133 of the approximate angle 131 relative to an actual angle (based on the signals 115 and 117), and a rotational speed 135 (“Speed ​​135”) of the rotating element 106 via an acceleration signal (which may refer to a control signal used to control the operation of the rotating element 106).Further restricting the size of LUT 126 can increase the step size 127 between two values ​​stored in subsequent LUT entries within LUT 126. This decreases the accuracy in determining the cosine and sine of angle 131, which can also lead to a cumulative error in observing angle 131 over time. This cumulative error can be further increased due to fixed-point implementations, which can lead to value size restrictions, potentially resulting in saturation (where an actual value exceeds the fixed-point representation but is limited to the highest possible value due to the fixed number of bits). That is, such saturation can further increase the cumulative error in observing angle 131 if such values ​​exceed the fixed number of bits.

[0028] To address the inherent limitations of the fixed-point DSP 124 and the limited size of the LUT 126, the LORDC 122 can be configured with a configurable step size 127 for the LUT 126, which is achieved by providing a configurable winding gain (G W ) 129 is balanced. Reducing the step size 127 can increase the need for memory reserved for LUT 126, since a smaller step size might require more entries. In contrast, G W129 enables an optimization that improves the accuracy of the winding, which relates to winding up a value calculated for each of the cosine and sine of angle 131, taking into account the fact that the cosine and sine functions have a period of two (2) times Pi (π). That is, the function repeats cyclically at multiples of 2 times Pi (π). In LO implementations, the LORDC 122 can estimate the angle 131 by integrating the velocity 135, which can ultimately lead to an infinite angle. The integrator of the LORDC 122 can overflow (before the integrated velocity 135 becomes infinite), which can lead to a phase error, since the value of the integrated velocity 135 may not be 2π.

[0029] By providing the configurable step size 127 and G W129 A developer of the LORDC 122 can optimize the application of LO to determine the approximate angle 131 in a way that takes into account both fixed-point limitations associated with the fixed-point DSP 124 and a limited size for the LUT 126. The step size 127 can allow different implementations for storing a quarter (1 / 4), half (1 / 2), or full (1-representation) of the cosine and sine values ​​of the approximate angle 131 to adjust the accuracy while balancing memory requirements, with a quarter representation allowing a smaller step size compared to a half or full representation, and a half representation allowing a smaller step size compared to a full representation.By selecting a step size of 127, the developer can adapt the limited size of LUT 126 to the timing, accuracy, and / or precision requirements of a specific implementation of LORDC 122. W 129 can also enable the developer to design the limited size of LUT 126 with regard to the timing and accuracy and / or precision requirements of a particular implementation of LORDC 122.

[0030] In operation, the DSP 124 can have a fixed-size LUT 126 containing a fixed number of LUT entries that store either discrete cosine values ​​over a set of step angles and / or discrete sine values ​​over the same set of step angles. The dedicated DSP 124 can derive both discrete sine and discrete cosine values ​​from the respective discrete cosine values ​​over the set of step angles or discrete sine values ​​over the same set of step angles. Thus, both sine and cosine values ​​could originate from the same set of values ​​stored in the LUT 126 and are therefore differentiated into sine and cosine values ​​by algorithmic post-processing of the values ​​from the LUT 126 within the DSP 124. The dedicated DSP 124 can perform fixed-point mathematical operations corresponding to a fixed bit width (therefore, the DSP 124 is representative of a fixed-point DSP).

[0031] As further illustrated in the example of Fig. As shown in Figure 1, the microcontroller 102 can include a delta / sigma analog-to-digital converter (DSADC) 144 ("DSADC 144"), which is communicatively coupled to the fixed-point DSP 124 and electrically coupled to the rotary encoder sensor 104, which is attached to the rotating element 106 controlled by the microcontroller 102. The DSADC 144 can include a carrier generator 146, an ADC channel A 148A ("ADC CH A 148A"), and an ADC channel B 148B ("ADC CH B 148B"). The carrier generator 146 can be a hardware unit designed to generate a carrier (such as a sine wave or cosine wave) with a configurable gain, which is output to the excitation stator 112. The carrier signal output to the excitation stator 112 can be pulse-width modulated.

[0032] ADC channel A 148A can represent a hardware unit designed to convert the analog sine wave 115 generated (by induction) from the sine stator 114 into digital sine values ​​145, while ADC channel B 148B can represent a hardware unit designed to convert the analog cosine wave 117 generated (by induction) from the cosine stator 116 into digital cosine values ​​147. ADC channel A 148A can output each sine value of the digital sine values ​​145 to the LORDC 122 for processing, while ADC channel B 148B can output each cosine value of the digital cosine values ​​147 to the LORDC 122 for processing.The LORDC 122 can process each individual value (or in other words, each sample) of the digital sine values ​​145 and the digital cosine values ​​147 before processing the next value of the digital sine values ​​145 and the digital cosine values ​​147, provided that the DSP 124 implements the LORDC 122 to perform single-sample / single-data processing.

[0033] The LORDC 122 can obtain the approximate angle 131 (and possibly the approximate velocity 135) of the rotating element 106 based on the digital sine value 145 (which is another way of referencing a given value of the digital sine value 145) and the digital cosine value 147 (which is another way of referencing a given value of the digital cosine value 147) and by means of mathematical fixed-point operations. The LORDC 122 can also obtain the angular error 133 as a result of performing the tracking control loop consistent with the LO algorithm. The LORDC 122 can perform this tracking control loop to determine an approximate digital sine value of the approximate angle 131 and an approximate digital cosine value of the approximate angle 131, which can be compared to the digital sine value 145 and the digital cosine value 147, allowing the LORDC 122 to determine the angular error 133.

[0034] System 100 can also determine an acceleration value, which the LORDC 122 (via a [missing information] in the example of Fig. (1 control logic not shown) can be obtained when determining a velocity 135, which is used to calculate the angle 131. The LORDC 122 can also output the velocity 135 to provide further information that the microcontroller 102, the system 100, or any other component of external control loops can use to control the rotation of the rotating element 106.

[0035] The DSADC 144 can output the digital sine value 145 and the digital cosine value 147 without adjusting one or more of the digital sine values ​​145 and cosine values ​​147 by sign inversion, rectification, carrier multiplication, or any other demodulation method of the amplitude modulation introduced by the rotary encoder. The ADC CH A 148A and the ADC CH B 148B can each have a configurable gain (G ADC 149A or 149B) with which gain compensation can be performed by G ADC 149A and 149B are set to different values. Providing G ADC The 149A and 149B, as configurable gains, can also enable another variable that the developer can control to tailor the System 100 to meet the specified performance requirements in terms of memory size, timing, and precision. ADC149A and 149B can have a power of two (2) for reasons explained in more detail below.

[0036] In this way, various aspects of the techniques can enable a fixed-point DSP 124 with limited memory to meet various requirements for memory size, timing control (e.g., limiting the phase delay), and accuracy for estimating the approximate angle 131 of the rotating element 106, while preserving, as far as possible, the inherent advantages of a LORDC implementation. Such advantages of the LORDC implementation can include reduced utilization of computing resources (in terms of execution cycles, memory and memory bus bandwidth utilization, along with the associated power consumption), while avoiding the use of additional components that can increase the complexity and potentially the cost of motor / power machine control systems. Therefore, various aspects of the LORDC optimization techniques can improve the operation of the LORDC system 100 itself.

[0037] Fig. 2A-2C are diagrams that describe the Luenberger observer rotary switch / digital converter (LORDC) from Fig. 1. Describe in more detail how it is optimized according to various aspects of the RDC optimization techniques described in this disclosure. As first shown in the example of Fig. As shown in Figure 2A, the optimization of the LORDC article can be adapted to a fixed-point implementation of the LORDC (designated as LORDC 122A, to indicate that the example of Fig. 2A an intermediate optimization of the LORDC 122, which in the example of Fig. 1 shown, shows) with the transition from continuous analog-signal-based integrators to discrete digital-signal-based integrators 202A and 202B and the neighborhood sampling time (T) 204A and 204B.

[0038] In the example of Fig. 2A Each component / operation shown in gray refers to existing components / operations first introduced in the aforementioned LORDC article. As mentioned in the LORDC document, the LORDC 122A implements a tracking observer loop that begins by receiving the discrete digital carrier value 143, the discrete digital sine value 145, the discrete digital cosine value 147, and an acceleration 201 (which may also be referred to as the "discrete digital acceleration value 201"). As time progresses (measured in processing cycles), the LORDC 122A outputs the approximate angle 131, the angular error 133, and the velocity 135, each of which is a discrete (i.e., a single sample) digital value for the approximate angle 131, the angular error 133, and the velocity 135, respectively.

[0039] The tracking observer loop begins with states 202A and 202B initialized to zero (0). The LORDC 122A receives the discrete digital sine value 145 and the discrete cosine value 147 (along with the discrete digital carrier value 143 and the acceleration 201). The LORDC 122A can begin with states 202A and 202B initialized to zero (0), causing the LUT 126 to output the sine value 245 of approximate angle 131 (equal to or near zero) and the cosine value 247 of approximate angle 131 (equal to or near zero). The LUT 126 can divide the approximate angle 131 (initialized to zero) by the step size 127 and use the result as a key (in this case, the LORDC 122A can access the LUT 126 based on the approximate angle 131) to access one or more LUT entries of the LUT 126 and output the sine value 245 and the cosine value 247.

[0040] The LORDC 122A can multiply the sine value 245 by the cosine value 147, resulting in a first intermediate value 255. The LORDC 122A can multiply the cosine value 247 by the sine value 145, resulting in a second intermediate value 257. The first intermediate value 255 and the second intermediate value 257 can each represent a first version of the approximate angle 131 and a second version of the approximate angle 131, respectively. The LORDC 122A can subtract the first intermediate value 255 from the second intermediate value 257 to obtain the approximate angular error 133 (after multiplication by the discrete digital carrier value 143 to demodulate the amplitude-modulated digital sine 145 and the digital cosine 147).

[0041] LORDC 122A can provide the approximate angular error 133 for “a” and “b”, which are defined as follows (and as in the “LEGAL NOTICE” of Fig. 2A shown): a=ω02 ; and b=2δω0. In this case, ω0 can represent a bandwidth of the LORDC 122A, defined as 2πf0, where f0 is equal to a fundamental frequency (and according to the LORDC article, the bandwidth can be set in the range of 1000 Hertz (Hz)). The variable δ can denote the damping factor, which can be set to approximately 0.5 (according to the aforementioned LORDC article).

[0042] The LORDC 122A can obtain a result from the multiplication of "a" and the approximate angular error 133, adding the result of the multiplication of "a" and the approximate angular error 133 to the acceleration value 201. During the transition from analog to digital processing, the LORDC 122A can add a multiplication factor (T) 204A ("T 204A"), which is approximately equal to the sampling period of the LORDC system 122A and possibly the DSP 124 (where T 204A is small and approximately 1.6 microseconds (1.6 µs)). The LORDC 122A can add the velocity 135 to the result of the multiplication of "b" by the approximate angular error 133. The LORDC 122A can exhibit a further multiplication factor (T) 204B (“T 204B”) as a further result of the transition of the LORDC 122A from the analog to the digital domain by including the integrator 202B.The result of the integrator 202B (which integrates the result of adding the multiplication of "b" by the approximate angular error 133 to the speed 135 via T 204B) can represent the approximate angle 131. The LORDC 122A can output the approximate angle 131 and also use the approximate angle 131 as input for the LUT 126.

[0043] In response to receiving the approximate angle 131, the LUT 126 can again access one or more LUT entries based on the approximate angle 131 (and possibly the step size 127) to output the sine value 245 and the cosine value 247. The LORDC 122A can then proceed in this way, via the tracking observer loop, to generate the approximate angle 131, the approximate angular error 133, and the velocity 135 based on the discrete carrier value 143, the discrete sine value 145, the discrete cosine value 147, and the acceleration value 201.

[0044] Next, we will look at the example of Fig. Reference is made to 2B. A LORDC 122B represents a further optimization of the LORDC 122A, as illustrated in the example of Fig. 2B is shown. To speed up execution time and optimize the LORDC 122 and 122A for fixed-point implementation, the LORDC 122B or its developer can multiply the presumably very small coefficient T before the first integrator 202A in the LORDC 122A by "a", resulting in a', which is defined as follows: a'=ω02T.

[0045] As in the example of Fig. As shown in Figure 2B, the LORDC 122B also features a new coefficient "c" before the second integrator 202B, as well as a rightward shift by the coefficient "d". This optimization provided by the LORDC 122B can yield the following results: c2−d=T2B2−(B−log2GW)=T2B2−B2log2GW=TGW.

[0046] Since T is very small and G WIf the number T is not large (e.g., 4), then multiplying the numbers T and G can be done W This can lead to a quantization error (or in other words, a rounding error). Furthermore, multiplying the input first by T and then by G can also result in a quantization error (or, in other words, a rounding error). W This can lead to a large quantization error. These quantization errors can appear as a shift in the estimation of velocity 135. To multiply optimally by T, a multiplication-shift approach is used in 122B, where T is multiplied by 2. B The product is multiplied (the product being the coefficient "c") and then shifted B bits to the right, where B is chosen according to what a hardware accumulator could provide, or otherwise in a way that results in a sufficiently small quantization error. Since G W If a factor is applied subsequently, it can be taken into account during the bit shift, resulting in d = B-log2G W leads.

[0047] To G W To better optimize the LORDC 122B, a developer can do the following: 1. With some ADCs (such as the DSASC 144 in the example of Fig. 1) The maximum amplitude or full scale value is configurable. The developer can define a range of full scale values ​​(amplitude_range) that meets the performance requirements. That is, A_ADC ∈[A_L, A_H], where A_L denotes the lower end and A_H the upper end. 2. Define a range of 2π wrap values ​​(wrap_value_range), where W L the lower end and W H the upper end. The following should be considered when making the selection: • A winding value smaller than the ADC amplitude * 2π ultimately leads to a loss of accuracy. Therefore, W L = A L 2π. • The register of the second integrator has a specific bit width. The maximum value B MAX, which corresponds to the bit width, is the physical upper limit of the winding value. It can be advantageous not to fully utilize this range, as an integrating element may require some leeway. In this case, W H = B MAX - h, where h is a value chosen such that the register bit width requirement is not violated and an additional input is provided with G W The scale ensures the register won't overflow. The use of integrators with saturation is recommended. 3. The memory of LUT 126 is limited, and there are certain angular accuracy requirements that must be met. An angle_step_range [S L , S H ] defined in degrees or radians and the following aspects are considered: • The smaller the angular step (represented by step size 127), the closer the estimated system states come to the actual system states. Therefore, the velocity 135 and the angle 131 are output more accurately. On the other hand, the memory of LUT 126 is limited. The smaller the angular step 127 (which is another name for step size 127), the more entries are required in LUT 122 and the more memory is needed to display the waveform. • The larger the angular step 127, the worse the waveform resolution. The control loop corrects the inaccurate estimates over time. However, local errors in velocity 135 and angle 131 will increase as the angular step 127 becomes larger. 4. A tolerance (tol) is defined, against which it is assessed whether the deviation of the actual gain value G is acceptable. W,F of its rounded version G WWhether it is acceptable or not. With a fixed-point implementation, G will ultimately be used. W and not G W,F used in the implementation. 5. An upper limit will be set for the amplification G. W defined, which is acceptable for the given implementation to avoid overflow or saturation. Here, the variable is called G. W,MAX designated. 6. The memory requirement is defined: B LUT defines how many bytes the LUT is allowed to occupy. 7. The number of bytes required for each entry in LUT 126 is defined. This value is related to the amplitude of the sine and cosine functions generated by the LUT algorithm. 8. M is defined depending on how much of a wave is stored in LUT 126: • M=4 if a quarter wave is stored in the LUT, or • M=2 if a half-wave is stored in the LUT, or • M=1 if a full wave is stored in the LUT. 9. Each of the wrap values ​​in wrap_value_range is divided by M. If the remainder of the division is 0, this set of wrap values ​​is considered the new candidates. 10. The new candidates are taken and divided by each step. Steps lie within the range of floor(wrap_value * S L / 360) to ceil(wrap_value * S H / 360) or floor(wrap_value * S L ) to ceil(wrap_value * S H ), each for steps in degrees or radians. If the division remainder is 0, this set of winding values ​​is considered the new candidates. Steps 9 and 10 ensure that the construction of entire shafts with partial shaft information from and through LUT 122 is possible without phase errors. 11. For each amplitude in amplitude_range: 11.1. Calculating the exact gain G W,F, which is necessary to scale Amplitude*2π to each winding value candidate. 11.2. Calculating the rounded gain G W from G W,F for each development value candidate. 11.3. Calculating the absolute error between G W,F and G W This indicates the magnitude of the phase error caused by an inaccurate representation of 2π. 11.4. Calculating the number of bytes required to store the quarter (M=4), half (M=2), or full wave content (M=1). B ENTRY is the number of bytes per LUT entry. 12. The candidates for development value are considered if... • the absolute error does not exceed the tolerance (tol) and • the reinforcement G W a predefined maximum gain G W,MAX (based, for example, on hardware bit shifter limitations) does not exceed and • the number of bytes required in LUT 126 the (possibly limited) number of bytes in LUT 126 (designated as B) LUT does not exceed.

[0048] To illustrate an example, consider a winding value candidate 210 with a value of 160416. Such a winding value candidate can have the smallest error of 2.5e-8. This winding value candidate has a relatively fine step size of 0.08 degrees, which is represented by 160416*0.08 / 360 = approximately 36. The amplitude candidate could, for example, be 25531, where the winding gain G W The value is 1 and the LUT requires 122,222 bytes. This results in the following: • Amplitude * 2π * G W = 25531 * 2π * 1 = 160416.004077602 • Winding value / M / step = 160416 / 4 / 36 = 1114 • This is 2228 bytes if each entry requires 2 bytes.

[0049] However, there are other winding value candidates 210 with finer step size granularity, e.g., 161880 and 644504, but these winding value candidates require more memory for LUT 122. The example above yields thirteen (13) unique candidates and 30 winding value / amplitude combinations. Since there are other aspects that affect overall precision (e.g., implementation details), the developer should simulate each combination and evaluate the steady-state oscillation behavior at velocity output (e.g., velocity 135). In this part, the developer can optimize the LORDC 122B to minimize the velocity error 135 and the angular error 131 caused by the phase error caused by an inaccurate 2π winding value, and to avoid phase errors caused by inaccurate step sizes 127 in the LUT 126.

[0050] Furthermore, there are three commonly used ways to implement a sine and cosine function: 1. Taylor series 2. CORDIC 3. Reference table (LUT) (e.g. LUT 126)

[0051] The disadvantage of the Taylor series and CORDIC implementation is the dependence of accuracy on the number of iterations, which can be computationally intensive. Generation using the Taylor series and CORDIC requires multiple iterations, but CORDIC also requires one or more lookup tables.

[0052] Considering these disadvantages, it is possibly the fastest and least expensive option to store the wave information in LUT 126 and read LUT 126 using a non-iterative algorithm. This is the third option, and due to its potential advantages, the LORDC 122B can incorporate LUT 126. The following aspects must be considered regarding the LUT algorithm: • Amplitude of sine and cosine; • Content to be stored in LUT 126; and • Algorithm for constructing the sine and cosine (e.g., from quarter or half waves).

[0053] Since the LORDC 122B is a fixed-point implementation, the amplitude of the discrete sine (245) and discrete cosine (247) can depend on the output bit width of the LUT 126. This bit width can be used or not. One advantage of incompletely utilizing the bit width is that the bit width growth in the tracking loop is limited, and fewer bits need to be discarded to compensate for the bit growth. However, intentionally limiting the amplitude of the sine and cosine introduces an error.

[0054] In the Fig. In the example shown in Figure 2B, the accuracy of comparing the estimated angle 131 (which is another way of referencing the approximate angle 131) and the angle information from the ADC (e.g., the digital sine value 145 and digital cosine value 147) is also determined by the LUT 126. If, for example, the LUT 126 has duplicate entries due to quantization caused by bit width limitations, the high-quality estimated angle may lose accuracy, which can affect the speed 135. In this case, the step size 127 is chosen such that the amplitude would have to be 328281 to store a large number of unique values ​​in the LUT 126. A LUT with the required bit width of 20 bits is very unlikely to be implemented in this case and is usually not worth the cost of a larger LUT.In another case, where the sine and cosine output 245 / 247 is quite small, the resulting velocity output range can be quite heavily utilized, as the tracking observer loop has to compensate for the inaccurate sine and cosine output 245 / 247 through the increased angular error 133. The larger the amplitude of the LUT 126, the smaller the local velocity error. In this case, for example, the error is 0.85 radians per second (rad / s) at an amplitude of 2048. The error is 0.11 rad / s when the amplitude is 32768, and the error is 0.06 rad / s when the amplitude is 328281.

[0055] In some examples, there are potential advantages to using an amplitude of 328281, which can minimize local speed error. However, an amplitude of 328281 can require 20 signed bits. Multiplication by the signed 16-bit LO input sine or cosine signal 147 / 145 yields a maximum of 35 bits. This can be excessive for a typical 32-bit word. If the DSP (e.g., DSP 124) does not offer double-word precision, this can be an expensive operation using hardware accumulators or custom-implemented double-word arithmetic. The trade-off is to accept some speed error to achieve fast multiplication, keeping the number of bits below 32. Furthermore, intermediate gain adjustments are not advisable, as the angular error can lead to a loss of accuracy.An amplitude close to a power of 2 can be advantageous because the amplitude of LUT 126 can be seen as amplifying the angular error 133, which needs to be adjusted over time. A power of 2 can therefore allow the use of bit shifters. In this case, the amplitude of LUT 126 can be set to 32767.

[0056] To optimize the amplitude of LUT 126, the following can be considered: 1. Select an amplitude that is close to the digital sine 145 or the digital cosine 147. 2. Select an amplitude that is a power of 2, so that the gain of LUT 126 can be easily adjusted later.

[0057] With a data memory of 3 KB for LUT 126, the developer can plan for some leeway in memory requirements and opt for 2.8 KB for LUT 126. A LUT size of 2800 bytes means that the number of 16-bit entries is 1400. This is the limit that the memory offers for storing the sine and cosine values ​​(output as sine value 245 and cosine value 247). For one sine and cosine wave, LUT 126 can store 700 LUT entries (32 bits each). 700 LUT entries over 360 degrees equate to an angular resolution of approximately 0.52 degrees. This angular resolution can violate the angular error requirements (not at output, but internally).

[0058] To make even better use of the memory, the LUT 126 can store a single half-wave and construct both sine and cosine waves from it. This means that 1400 entries (16 bits each) store a half-wave: 180 / 1400 = 0.13 degrees. Finally, sine and cosine waves can also be constructed from a single quarter-wave: 90 / 1400 = 0.0643 degrees.

[0059] In this example, the developer may not be using all the memory allocated to LUT 126 because the winding value (WV) is 210 ("WV 210") and the step size is 127, as described above. For example, the winding value 210 might be configured as 160416, with the step size 127 configured as 0.08 degrees (36). This results in 160416 / 4 / 36 = 1114 entries for a quarter wave. To optimize LUT 126, the following can be done: Calculating the first quarter of a wave and storing it in LUT 126: a. If the decision has been made to use half-word LUT values ​​and the DSP 124 allows half-word access, it may be most efficient to store two LUT values ​​in one word. If the DSP 124 does not allow reading half-word values ​​from a word, a whole word must be used for one LUT value. b. If the decision has been made for a LUT value that is larger than a half-word but smaller than a word, the whole word must be used for a LUT value. c. If the decision has been made to use a LUT value larger than one word, it must be ensured that the timing requirements of the LORDC 122 are met, as double or even multi-word calculations would be required.

[0060] The LUT 126 can derive the sine and cosine wave values ​​from a single sine wave representation in the LUT entries or a single cosine wave representation in the LUT entries. Alternatively, the LUT 126 can store both the sine and cosine wave values ​​in separate respective LUT entries or in combined LUT entries (where both sine and cosine wave values ​​are stored in the combined LUT entries).

[0061] In this respect, the LUT 126 can generate sine and cosine values ​​according to the following pseudocode:

[0062] The following happens in the code above: 1. The first quarter of the sine wave is stored in the LUT. 2. Using the quarter wave, a whole sine wave and a whole cosine wave are to be reconstructed. 3. The LUT content can be horizontally mirrored by changing the read direction (“counting down”), and vertically mirrored by reversing the sign. 4. To count up while still counting down, the index is subtracted from a modifier. The modifier is 0 for counting up and N for counting down. N is the number of entries in the LUT. For example, if the 3rd element is needed for counting up, abs(0-3) = 3 is used as the index. Conversely, if the 3rd element from the end is needed, abs(N-3) is used as the index.

[0063] In the example of Fig. In section 2B, the LORDC 122B features a residual operation (REM) 209 (“REM 209”) that can map the angle 131° to the range of -2π to 2π. Although described in terms of REM 209, the LORDC 122B can replace REM 209 with a modulo operation (referred to as “MOD”) that maps the angle 131° to the range of 0 to 2π. REM 209 can apply the residual operation based on WV 210, which is configured and / or optimized as described above.

[0064] The LORDC 122B also features a gain adjustment (GA) 212 (“GA 212”). To adjust the gain caused by the carrier 143 and the gain caused by the LUT sine and cosine amplitude (values ​​245 / 247), the LORDC 122B has the GA 212 in the feedback path, which adjusts the gain of the angular error 133.

[0065] In the example of Fig. 2C can represent the LORDC 122C as an optimized implementation of the LORDC, featuring bit widths defined as signed bits ("s") followed by the number of bits (e.g., 16, 17, 31, 32, 36, and the like). The addition operations for adding the acceleration 201 to the result of multiplying a' by the angular error 133 and the velocity 135 to the result of multiplying "b" by the angular error 133 may be saturated. The value of B is set to 40, while G W is set to 4 (where 40 - log2(4) = 38, which gives d = 38). c is therefore equal to T2 40 designed.

[0066] Fig. Figure 3 is a flowchart illustrating the exemplary operation of the microcontroller of Fig. Figure 1 shows the implementation of an optimized rotary encoder / digital conversion according to various aspects of the techniques described in this disclosure. As described above, the microcontroller 102 can include a DSP 124, which can have a fixed-size LUT 126 with a fixed number of LUT entries that store discrete cosine values ​​over a set of graduated angles and discrete sine values ​​over the set of graduated angles. The dedicated DSP 124 can perform fixed-point arithmetic operations that adhere to a fixed bit width / bandwidth. A signal 111 can be generated by an on-chip carrier generator 146, which is a pulse-width modulated version of the signal 143, and is sent to an off-chip power stage.

[0067] The microcontroller 102 can include a delta / sigma analog-to-digital converter (DSADC) 144 ("DSADC 144"), which is communicatively coupled to the fixed-point DSP 124 and electrically coupled to the rotary encoder sensor 104, which is attached to a rotating element 106 controlled by the microcontroller 102. The DSADC 144 can include a carrier generator 146, an ADC channel A 148A ("ADC CH A 148A"), and an ADC channel B 148B ("ADC CH B 148B"). The carrier generator 146 can be a hardware unit designed to generate a carrier (such as a sine wave or a cosine wave) with a configurable gain, which is output to the excitation stator 112. The carrier signal output to the excitation stator 112 can be pulse-width modulated.

[0068] The ADC channel A 148A can represent a hardware unit designed to convert the analog sine wave 115 generated (by induction) from the sine stator 114 into digital sine values ​​145, while the ADC channel B 148B can represent a hardware unit designed to convert the analog cosine wave 117 generated (by induction) from the cosine stator 116 into digital cosine values ​​147. In this respect, the DSADC 144 can obtain a digital cosine value 147 for an indirectly detected angle of the rotating element 106 and a digital sine value 145 for the indirectly detected angle of the rotating element 106 (300). The ADC channel A 148A can output any sine value of the digital sine values ​​144 for processing at the LORDC 122, while the ADC channel B 148B can output any cosine value of the digital cosine values ​​147 for processing at the LORDC 122.The LORDC 122 can process each individual value (or in other words, each sample) of the digital sine values ​​145 and the digital cosine values ​​147 before processing the next value of the digital sine values ​​145 and the digital cosine values ​​147, provided that the DSP 124 implements the LORDC 122 to perform single-sample / single-data processing.

[0069] The LORDC 122 can obtain the approximate angle 131 (and possibly the angular velocity 135) of the rotating element 106 based on the digital sine value 145 (which is another way of referencing a given value of digital sine values ​​145) and the digital cosine value 147 (which is another way of referencing a given value of digital cosine values ​​147) and by means of mathematical fixed-point operations (302). The LORDC 122 can also obtain the AE 133 as a result of performing the tracking control loop, which is consistent with the LO algorithm. The LORDC 122 can execute this tracking control loop to determine an approximate digital sine value of approximate angle 131 and an approximate digital cosine value of approximate angle 131, which can be compared to the digital sine value 145 and the digital cosine value 147, allowing the LORDC 122 to determine the AE 133.System 100 can also determine an acceleration value, which the LORDC 122 (via a [missing information] in the example of . Fig. 1 control logic not shown) can be obtained when determining a velocity 135, which is used to calculate the angle 131. The LORDC 122 can also output the velocity 135 to provide further information that the microcontroller 102 can use to control the rotation of the rotating element 106. In this way, the LORDC 122 can output the approximate angle 131 (as well as the AE 133 and / or the velocity 135) to facilitate the control and / or monitoring of the rotating element 106 (304).

[0070] Fig. Figure 4 is a diagram showing an exemplary system designed to implement various aspects of the optimized rotary encoder / digital converter techniques described in this disclosure. Although a vehicle 399 in the example of Fig. 4, which is depicted as an automobile, can represent any type of vehicle, including an automobile, a truck, agricultural equipment, a motorcycle, a bicycle (including electric bicycles), a scooter, construction machinery, a semi-trailer truck, an aircraft, a helicopter, a military vehicle, or any other vehicle capable of implementing various aspects of the secure external storage techniques described in this disclosure.

[0071] As in the example of Fig. As further shown in Figure 4, the vehicle 399 includes a computing system 400 (which is an example of the one in the example of Fig. The microcontroller 102 shown in the example can be represented) and a variety of sensors 404A-404D (“Sensors 404”). The computing system 400 and some of the sensors 404 are shown in the example of Fig. 4 shown with dashed lines to indicate that the computing device 400 and the sensors 404 may not be visible or otherwise integrated into the vehicle 399.

[0072] The Computing System 400 can include one or more electronic control units (ECUs) and a computing device. For example, the Computing System 400 can include an ECU designed to control an electric motor, anti-lock braking systems (ABS, which can also control traction control (TC)), an ECU designed to control the electronic stability control (ES) system, and a main ECU that acts as a computing device to control the operation of all systems (including those not listed in this example). In general, an ECU includes a microcontroller and memory (such as one or more static random-access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), and flash memory), digital and / or analog inputs, and digital and / or analog outputs (such as relay drivers, H-bridge drivers, injector drivers, and logic outputs).

[0073] In some examples, instead of using an ECU as the computing device, the Computing System 400 may include a relatively more powerful processor (compared to the microcontroller) designed to execute instructions or other forms of software to perform various aspects of the techniques described in this disclosure. The processor may include one or more fixed-function, programmable, or combinations thereof, such as microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. If the techniques are partially implemented in software, the Computing System 400 may store instructions for the software on a suitable non-volatile, computer-readable medium (e.g., external NVM System 204, as in the example of Fig.(as shown in 2) and the instructions are stored and executed in hardware using one or more processors to perform the techniques of this disclosure. A device comprising the Computing System 400 may include an integrated circuit and / or a microprocessor.

[0074] For illustrative purposes, the computing system 400 is assumed to be a processor that is communicatively coupled to one or more ECUs responsible for controlling the operation of the electric motor that drives the axles and thereby causes the movement of the vehicle 399. Sensors 404A-404D can be examples of a wheel rotation sensor 104 designed to detect the wheel speed at the wheels of the vehicle 399 (although the wheels are not shown to illustrate an approximate position of sensors 404B and 404C), and can therefore be referred to as "wheel speed sensors 404".

[0075] The ECU can be communicatively coupled to the wheel speed sensors 404 and operate as described above with respect to the microcontroller 102 to obtain an approximate angle of the axis to which the sensors 404 are attached or otherwise fixed. The ECU can determine this angle to control the acceleration or deceleration of the rotating element 106, which in this example is assumed to be the axis. Using this angle, the ECU can control the electric motor to accelerate, decelerate, or maintain its current rotational speed, thus moving the vehicle 399.

[0076] It should be noted that, depending on the example, certain actions or events of one of the techniques described herein may be performed in a different order, added, combined, or omitted entirely (e.g., not all described actions or events are required for the implementation of the techniques). Furthermore, in certain examples, actions or events may be performed concurrently, for example, through multi-strand processing, interrupt processing, or multiple processors, rather than sequentially.

[0077] In one or more examples, the described functions can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions can be stored or transmitted as one or more instructions or codes on a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media can include computer-readable storage media, which correspond to a tangible medium such as data storage media, or communication media, which include any media that enables the transmission of a computer program from one location to another, for example, according to a communication protocol. In this way, computer-readable media can generally correspond to (1) tangible, non-volatile computer-readable storage media, or (2) a communication medium such as a signal or carrier.Data storage media can be any available media accessible by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described in this disclosure. A computer program product can include a computer-readable medium.

[0078] For example, but not exclusively, such computer-readable storage media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that a computer can access. Furthermore, any connection is correctly referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source via coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of the medium.It should be clear, however, that computer-readable storage media and data storage media do not include connections, carriers, signals, or other volatile media, but instead refer to non-volatile, tangible storage media. Disk and disc, as used here, include Compact Disc (CD), Laserdisc, optical disc, Digital Versatile Disc (DVD), and Blu-ray Disc, with disks typically reproducing data magnetically, while discs reproducing data optically using lasers. Combinations of the above terms are also said to fall under the scope of computer-readable media.

[0079] Instructions can be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor," as used herein, can refer to any of the aforementioned structures or any other structure suitable for implementing the techniques described herein. Furthermore, some aspects of the functionality described herein may be provided within dedicated hardware and / or software modules. Additionally, the techniques could be implemented entirely within one or more circuits or logic elements.

[0080] The techniques of this disclosure can be implemented in a variety of devices or arrangements, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chipset). This disclosure describes various components, modules, or units to highlight functional aspects of devices designed to perform the disclosed techniques, but does not necessarily require implementation by different hardware units. Rather, as described above, different units can be combined in a single hardware unit or provided by a collection of interoperable hardware units, including one or more processors as described above, in conjunction with suitable software and / or firmware.

[0081] In this respect, one or more aspects of the techniques may enable the following examples: Example 1.A processing circuit arrangement comprising: a delta / sigma analog-to-digital converter, which is communicatively coupled to a fixed-point digital signal processor and electrically coupled to a rotary encoder sensor attached to a rotating element controlled by the processing circuit arrangement, wherein the delta / sigma analog-to-digital converter is designed to obtain, based on electrical interactions with the rotary encoder sensor, a digital cosine value for an indirectly detected angle of the rotating element and a digital sine value for the indirectly detected angle of the rotating element; and a fixed-point digital signal processor designed to implement a fixed-point Luenberger observer rotary encoder / digital converter, which obtains an approximate angle of the rotating element based on the digital sine value and the digital cosine value by means of fixed-point mathematical operations. Example 2. Processing circuit arrangement according to Example 1, wherein the fixed-point Luenberger observer rotary encoder / digital converter is further designed to: Apply a configurable winding gain to an unwound approximate angle to obtain a gain-matched unwound approximate angle. Example 3. Processing circuit arrangement according to Example 2, wherein the configurable winding gain is configured based on a step size of a lookup table, the step size identifying a difference between two or more adjacent cosine values ​​of the cosine values ​​or adjacent sine values ​​of the sine values ​​stored in two entries of the lookup table entries, and wherein the fixed-point Luenberger observer rotary encoder / digital converter is further configured to apply a winding function to the gain-adjusted unwound approximate angle to obtain the approximate angle of the rotating element. Example 4. Processing circuit arrangement according to Example 3, wherein the fixed-point digital signal processor has a fixed-size lookup table with a fixed number of lookup table entries storing discrete cosine values ​​over a set of graduated angles and discrete sine values ​​over the set of graduated angles, and wherein the fixed-point Luenberger observer rotary encoder / digital converter is further configured to: access the fixed-size lookup table based on the approximate angle to obtain a discrete cosine value for the approximate angle stored in a first lookup table entry of the lookup table entries, and to obtain a discrete sine value for the approximate angle stored in a second lookup table entry of the lookup table entries;Multiply the discrete cosine value by the digital sine value to obtain a first version of the approximate angle; multiply the discrete sine value by a digital cosine value to obtain a second version of the approximate angle; and subtract the second version of the approximate angle from the first version of the approximate angle to obtain an approximate angular error. Example 5. Processing circuit arrangement according to Example 4, wherein the fixed-point Luenberger observer rotary encoder / digital converter is further configured to: determine a velocity of the rotating element based on an acceleration signal to control a rotational speed of the rotating element; apply a gain matching to the approximate angular error to obtain a gain-matched approximate angular error; and add the velocity to the gain-matched approximate angle to obtain the unwound approximate angle. Example 6. Processing circuit arrangement according to Example 4, wherein the fixed number of lookup table entries stores the discrete cosine values ​​over the set of graduated angles to define a quarter cosine wave, a half cosine wave or a whole cosine wave, or wherein the fixed number of lookup table entries stores the discrete sine values ​​over the set of graduated angles to define a quarter sine wave, a half sine wave or a whole sine wave. Example 7. Processing circuit arrangement according to any of Examples 1-6, wherein the rotary encoder sensor comprises: a rotor; an excitation stator designed to interact electromagnetically with the rotor, which is displaced collinearly with the rotating element; a cosine stator configured to interact electromagnetically with the rotor; and a sine stator designed to interact electromagnetically with the rotor, the sine stator being mechanically arranged ninety degrees relative to the cosine stator. Example 8. Processing circuit arrangement according to Example 7, wherein the delta / sigma analog-to-digital converter is designed to: output a carrier signal to the excitation stator to electromagnetically induce a current in the rotor, so that the rotor generates a magnetic field to induce a cosine current in the cosine stator and / or a sinusoidal current in the sinusoidal stator; via the cosine stator, receive an analog representation of the digital cosine signal as a cosine current; via the sinusoidal stator, receive an analog representation of the digital sine signal as a sinusoidal current; perform a delta / sigma analog-to-digital conversion with respect to the cosine current to obtain the digital cosine value; and perform a delta / sigma analog-to-digital conversion with respect to the sinusoidal current to obtain the digital sinusoidal value. Example 9. Processing circuit arrangement according to one of Examples 1-8, wherein the Delta / Sigma analog / digital converter is designed to obtain the digital sine signal and the digital cosine signal based on electrical interactions with the rotary encoder sensor and without adjusting the digital sine value and / or the digital cosine value to account for the rotary encoder amplitude modulation. Example 10. Processing circuit arrangement according to one of Examples 1-9, wherein the Delta / Sigma analog / digital converter is designed to amplify the digital cosine value and the digital sine value respectively by a configurable analog / digital gain by a power of two. Example 11. A method comprising: obtaining a digital cosine value for an indirectly detected angle of a rotating element and a digital sine value for the indirectly detected angle of the rotating element by a microcontroller's delta / sigma analog-to-digital converter based on electrical interactions with a rotary encoder sensor; obtaining an approximate angle of the rotating element by a fixed-point Luenberger observer rotary encoder / digital converter implemented by the microprocessor's fixed-point digital signal processor, based on the digital sine value and the digital cosine value, using fixed-point mathematical operations; and outputting the approximate angle by the fixed-point Luenberger observer rotary encoder / digital converter to facilitate control of the rotating element. Example 12. Method according to Example 11, further comprising: applying a configurable winding gain to an unwound approximate angle to obtain a gain-matched unwound approximate angle, and applying a winding function to the gain-matched unwound approximate angle to obtain the approximate angle of the rotating element. Example 13. Method according to Example 12, wherein the configurable winding gain is configured based on a step size of a lookup table, wherein the step size identifies a difference between two or more adjacent cosine values ​​of the cosine values ​​or adjacent sine values ​​of the sine values ​​stored in two entries of the lookup table entries, and wherein obtaining the approximate angle includes applying a winding function by the fixed-point Luenberger observer rotary encoder / digital converter to the gain-adjusted unwound approximate angle to obtain the approximate angle of the rotating element. Example 14. Method according to Example 13, wherein the fixed-point digital signal processor has a fixed-size lookup table with a fixed number of lookup table entries storing discrete cosine values ​​over a set of graded angles and discrete sine values ​​over the set of graded angles, and wherein the method further comprises: accessing the fixed-size lookup table based on the approximate angle to obtain a discrete cosine value for the approximate angle stored in a first lookup table entry of the lookup table entries, and obtaining a discrete sine value for the approximate angle stored in a second lookup table entry of the lookup table entries; multiplying the discrete cosine value by the digital sine value to obtain a first version of the approximate angle;Multiplying the discrete sine value by a digital cosine value to obtain a second version of the approximate angle; and subtracting the second version of the approximate angle from the first version of the approximate angle to obtain an approximate angular error. Example 15. Method according to Example 14, further comprising: determining a velocity of the rotating element based on an acceleration signal to control a rotational speed of the rotating element; applying a gain adjustment to the approximate angular error to obtain a gain-adjusted approximate angular error; and adding the velocity to the gain-adjusted approximate angle to obtain the unwound approximate angle. Example 16. Method according to Example 14, wherein the fixed number of lookup table entries stores the discrete cosine values ​​over the set of graduated angles for defining a quarter cosine wave, a half cosine wave or a whole cosine wave, or wherein the fixed number of lookup table entries stores the discrete sine values ​​over the set of graduated angles for defining a quarter sine wave, a half sine wave or a whole sine wave. Example 17. Method according to any of Examples 11-16, wherein the rotary encoder sensor comprises: a rotor; an excitation stator designed to interact electromagnetically with the rotor, which is displaced collinearly with the rotating element; a cosine stator designed to interact electromagnetically with the rotor; and a sine stator designed to interact electromagnetically with the rotor, wherein the sine stator is mechanically arranged ninety degrees relative to the cosine stator. Example 18. Method according to Example 17, further comprising: outputting a carrier signal to the excitation stator to electromagnetically induce a current in the rotor, such that the rotor generates a magnetic field to induce a cosine current in the cosine stator and / or a sinusoidal current in the sinusoidal stator; receiving an analog representation of the digital cosine signal as a cosine current across the cosine stator; receiving an analog representation of the digital sine signal as a sinusoidal current across the sinusoidal stator; performing a delta / sigma analog-to-digital conversion with respect to the cosine current to obtain the digital cosine value; and performing the delta / sigma analog-to-digital conversion with respect to the sinusoidal current to obtain the digital sinusoidal value. Example 19. Method according to any of Examples 11-18, further comprising: obtaining the digital sine signal and the digital cosine signal based on electrical interactions with the rotary encoder sensor and without adjusting the digital sine value and / or the digital cosine value to account for the rotary encoder amplitude modulation (sign inversion, rectification, carrier multiplication or any other demodulation method); and amplifying the digital cosine value and the digital sine value, respectively, with a configurable analog / digital gain of a power of two. Example 20. System comprising: a rotating element; a rotary encoder sensor attached to the rotating element; and a microcontroller communicatively coupled to the rotary encoder sensor and designed to control the rotating element, wherein the microcontroller comprises: a delta / sigma analog-to-digital converter communicatively coupled to the fixed-point digital signal processor and electrically coupled to the rotary encoder sensor, wherein the delta / sigma analog-to-digital converter is designed to obtain, based on electrical interactions with the rotary encoder sensor, a digital cosine value for an indirectly detected angle of the rotating element and a digital sine value for the indirectly detected angle of the rotating element;and a fixed-point digital signal processor designed to implement a fixed-point Luenberger observer rotary encoder / digital converter which obtains an approximate angle of the rotating element based on the digital sine value and the digital cosine value using fixed-point mathematical operations.

[0082] Several examples have been described. These and other examples fall within the scope of the following claims. QUOTES INCLUDED IN THE DESCRIPTION

[0000] This list of documents cited by the applicant was automatically generated and is included solely for the reader's convenience. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions. Cited patent literature

[0000] US 63 / 579447

[0001] Cited non-patent literature

[0000] Krah, Jens O., et al. with the title “FPGA Based Resolver to Digital Converter Using Delta / Sigma Technology”, presented during the Proceedings of PCIM Europe 2006 (931

[0022]

Claims

[1] Processing circuitry (102) comprising: a delta / sigma analog-to-digital converter (144) communicatively coupled to a fixed-point digital signal processor (124) and electrically coupled to a resolver sensor (104) attached to a rotating element (106) controlled by the processing circuitry, the delta / sigma analog-to-digital converter (144) configured to obtain, based on electrical interactions with the resolver sensor (104), a digital cosine value for an indirectly sensed angle of the rotating element (106) and a digital sine value for the indirectly sensed angle of the rotating element (106); and a fixed-point digital signal processor (124) configured to implement a fixed-point Luenberger observer resolver / digital converter (122) that obtains an approximate angle (131) of the rotating element (106) based on the digital sine value and the digital cosine value using fixed-point mathematical operations. [2] The processing circuitry (102) of claim 1, wherein the fixed-point Luenberger observer resolver / digital converter (122) is further configured to: Applying a configurable wrap gain to an unwrapped approximate angle to obtain a gain-adjusted unwrapped approximate angle. [3] Processing circuitry (102) according to claim 2, wherein the configurable winding gain is configured based on a configurable step size (127) of a lookup table (126), wherein the configurable step size (127) identifies a difference between two or more adjacent cosine values ​​of the cosine values ​​or adjacent sine values ​​of the sine values ​​stored in two entries of the lookup table entries, and wherein the fixed-point Luenberger observer resolver / digital converter (122) is further configured to apply a winding function to the gain-adjusted, unwound approximate angle to obtain the approximate angle (131) of the rotating element (106). [4] Processing circuitry (102) according to claim 3, wherein the fixed-point digital signal processor (124) has a fixed-size lookup table (126) with a fixed number of lookup table entries storing discrete cosine values ​​over a set of stepped angles and discrete sine values ​​over the set of stepped angles, and wherein the fixed-point Luenberger observer resolver / digital converter (122) is further configured to: Accessing the fixed size lookup table (126) based on the approximate angle (131) to obtain a discrete cosine value for the approximate angle (131) stored in a first lookup table entry of the lookup table entries and a discrete sine value for the approximate angle (131) stored in a second lookup table entry of the lookup table entries; Multiplying the discrete cosine value by the digital sine value to obtain a first version of the approximate angle (131); Multiplying the discrete sine value by a digital cosine value to obtain a second version of the approximate angle (131); and Subtracting the second version of the approximate angle (131) from the first version of the approximate angle (131) to obtain an approximate angle error (133). [5] The processing circuitry (102) of claim 4, wherein the fixed-point Luenberger observer resolver / digital converter (122) is further configured to: Determining a speed (135) of the rotating element (106) based on an acceleration signal to control a speed of the rotating element (106); applying a gain adjustment to the approximate angular error (133) to obtain a gain-adjusted approximate angular error; and Adding the velocity (135) to the gain-adjusted approximate angle (131) to obtain the unwound approximate angle. [6] Processing circuitry (102) according to claim 5, where the gain-adjusted approximate angular error is weighted by: a first weighting for calculating the approximate speed (135); and a second weighting for calculating the approximate angle (131); and wherein the sum of the approximate speed (135) and the approximate angular error (133) weighted by the second weighting is further weighted by: a third weighting; and wherein the sum weighted by a third weighting and the sum of approximate speed (135) and approximate angular error (133) weighted by the second weighting is further weighted by: a fourth weighting; and where the first weighting, the third weighting and the fourth weighting take into account the sampling period; and the third weighting and the fourth weighting take into account the configurable winding gain. [7] Processing circuit arrangement (102) according to one of claims 4 to 6, where the fixed number of lookup table entries stores the discrete cosine values ​​over the set of stepped angles to define either a quarter cosine wave, a half cosine wave, or a whole cosine wave, or where the fixed number of lookup table entries stores the discrete sine values ​​over the set of stepped angles to define either a quarter sine wave, a half sine wave, or a full sine wave. [8] Processing circuitry (102) according to one of claims 1 to 7, wherein the resolver sensor (104) comprises: a rotor (110); an excitation stator (112) configured to electromagnetically interact with the rotor (110) displaced collinearly with the rotating element; a cosine stator (116) configured to electromagnetically interact with the rotor (110); and a sine stator (114) configured to electromagnetically interact with the rotor (110), the sine stator (114) being mechanically positioned ninety degrees relative to the cosine stator (116). [9] Processing circuitry (102) according to claim 8, wherein the delta / sigma analog-to-digital converter (144) is configured to: Outputting a carrier signal to the excitation stator (112) to electromagnetically induce a current in the rotor (110) such that the rotor (110) generates a magnetic field to induce a cosine current in the cosine stator (116) and / or a sine current in the sine stator (114); Receiving an analog representation of the digital cosine signal as a cosine current via the cosine stator (116); Receiving an analog representation of the digital sinusoidal signal as a sinusoidal current via the sinusoidal stator (114); performing a delta / sigma analog-to-digital conversion with respect to the cosine current to obtain the digital cosine value; and Performing the delta / sigma analog-to-digital conversion on the sine current to obtain the digital sine value. [10] Processing circuitry (102) according to one of claims 1 to 9, wherein the delta / sigma analog-to-digital converter (144) is configured to obtain the digital sine signal and the digital cosine signal based on electrical interactions with the resolver sensor (104) and without adjusting the digital sine value and / or the digital cosine value to account for the resolver amplitude modulation. [11] Processing circuitry (102) according to one of claims 1 to 10, wherein the delta / sigma analog-to-digital converter (144) is configured to amplify the digital cosine value and the digital sine value, each with a configurable analog-to-digital gain with a power of two. [12] Procedure comprising: Obtaining (300) a digital cosine value for an indirectly sensed angle of a rotating element (106) and a digital sine value for the indirectly sensed angle of the rotating element (106) by a delta / sigma analog / digital converter (144) of a microcontroller (102) and based on electrical interactions with a resolver sensor (104); Obtaining (302) an approximate angle (131) of the rotating element (106) by a fixed-point Luenberger observer resolver / digital converter (122) implemented by a fixed-point digital signal processor (124) of the microprocessor, and based on the digital sine value and the digital cosine value by means of the fixed-point mathematical operations; and Outputting (304) the approximate angle (131) by the fixed-point Luenberger observer resolver / digital converter (122) to facilitate control of the rotating element (106). [13] The method of claim 12, further comprising: Applying a configurable winding gain to an unwound approximate angle to obtain a gain-adjusted unwound approximate angle, and Applying a winding function to the gain-adjusted unwound approximate angle to obtain the approximate angle (131) of the rotating element (106). [14] Method according to claim 13, wherein the configurable winding gain is configured based on a configurable step size (127) of a lookup table (126), wherein the configurable step size (127) identifies a difference between two or more adjacent cosine values ​​of the cosine values ​​or adjacent sine values ​​of the sine values ​​stored in two entries of the lookup table entries, and wherein obtaining the approximate angle (131) comprises applying a wrap-around function by the fixed-point Luenberger observer resolver / digital converter (122) to the gain-adjusted, unwrapped approximate angle to obtain the approximate angle (131) of the rotating element (106). [15] Method according to claim 14, wherein the fixed-point digital signal processor (124) has a fixed-size lookup table (126) with a fixed number of lookup table entries storing discrete cosine values ​​over a set of stepped angles and discrete sine values ​​over the set of stepped angles, and the method further comprising: Accessing the fixed size lookup table (126) based on the approximate angle (131) to obtain a discrete cosine value for the approximate angle (131) stored in a first lookup table entry of the lookup table entries and a discrete sine value for the approximate angle (131) stored in a second lookup table entry of the lookup table entries; Multiplying the discrete cosine value by the digital sine value to obtain a first version of the approximate angle (131); Multiplying the discrete sine value by a digital cosine value to obtain a second version of the approximate angle (131); and Subtracting the second version of the approximate angle (131) from the first version of the approximate angle (131) to obtain an approximate angle error (133). [16] The method of claim 15, further comprising: Determining a speed (135) of the rotating element (106) based on an acceleration signal to control a speed of the rotating element (106); applying a gain adjustment to the approximate angular error (133) to obtain a gain-adjusted approximate angular error; and Adding the velocity (135) to the gain adjusted approximate angle to obtain the unwound approximate angle. [17] Method according to claim 16, where the gain-adjusted approximate angular error is weighted by: a first weighting for calculating the approximate speed (135); and a second weighting for calculating the approximate angle (131); and wherein the sum of the approximate speed (135) and the approximate angular error (133) weighted by the second weighting is further weighted by: a third weighting; and wherein the sum weighted by a third weighting is the sum of the approximate speed (135) and the approximate angular error (133) weighted by the second weighting, is further weighted by: a fourth weighting; and where the first weighting, the third weighting and the fourth weighting take into account the sampling period; and the third weighting and the fourth weighting take into account the configurable winding gain. [18] Method according to one of claims 15 to 17, where the fixed number of lookup table entries stores the discrete cosine values ​​over the set of stepped angles to define either a quarter cosine wave, a half cosine wave, or a whole cosine wave, or where the fixed number of lookup table entries stores the discrete sine values ​​over the set of stepped angles to define either a quarter sine wave, a half sine wave, or a full sine wave. [19] The method according to any one of claims 12 to 18, wherein the resolver sensor (104) comprises: a rotor (110); an excitation stator (112) configured to electromagnetically interact with the rotor (110) displaced collinearly with the rotating element; a cosine stator (116) configured to electromagnetically interact with the rotor (110); and a sine stator (114) configured to electromagnetically interact with the rotor (110), the sine stator (114) being mechanically positioned ninety degrees relative to the cosine stator (116). [20] The method of claim 19, further comprising: Outputting a carrier signal to the excitation stator (112) to electromagnetically induce a current in the rotor (110) such that the rotor (110) generates a magnetic field to induce a cosine current in the cosine stator (116) and / or a sine current in the sine stator (114); Receiving an analog representation of the digital cosine signal as a cosine current via the cosine stator (116); Receiving an analog representation of the digital sinusoidal signal as a sinusoidal current via the sinusoidal stator (114); performing a delta / sigma modulation with respect to the cosine current to obtain the digital cosine value; and Perform delta / sigma modulation on the sine current to obtain the digital sine value. [21] A method according to any one of claims 12 to 20, further comprising: Obtaining the digital sine signal and the digital cosine signal based on electrical interactions with the resolver sensor (104) and without adjusting the digital sine value and / or the digital cosine value to account for the resolver amplitude modulation; and Amplify the digital cosine value and the digital sine value each by a configurable analog / digital gain with a power of two. [22] System (100) comprising: a rotating element (106); a resolver sensor (104) attached to the rotating member (106); and a microcontroller (102) communicatively coupled to the resolver sensor (104) and configured to control the rotating element (106), the microcontroller (102) comprising: a delta / sigma analog-to-digital converter (144) communicatively coupled to the fixed-point digital signal processor (124) and electrically coupled to the resolver sensor (104), the delta / sigma analog-to-digital converter (144) being configured to obtain a digital cosine value for an indirectly sensed angle of the rotating element (106) and a digital sine value for the indirectly sensed angle of the rotating element (106) based on electrical interactions with the resolver sensor (104); and a fixed-point digital signal processor (124) configured to implement a fixed-point Luenberger observer resolver / digital converter (122) that obtains an approximate angle (131) of the rotating element (106) based on the digital sine value and the digital cosine value using fixed-point mathematical operations.

Citation Information

Patent Citations

  • US-ANMELDUNGNR.63/579447

  • US63579447B2