The pursuit of high-performance, cost-effective solutions is a constant driver of innovation within the automotive electric drive system domain. Precise rotor position sensing is a fundamental requirement for achieving high-efficiency torque control, field-oriented control (FOC), and ultimately, superior vehicle dynamics. Among various position sensors, the resolver stands out for its robustness, reliability, and ability to operate in harsh environments typical of automotive applications. Traditionally, resolver signals were decoded using dedicated resolver-to-digital converter (RDC) chips, which added significant component cost to the electric drive system. The advent of software-based decoding techniques utilizing Delta-Sigma Analog-to-Digital Converters (DSADCs) integrated into modern microcontrollers has offered a compelling alternative, dramatically reducing system cost while maintaining competitive performance. This integration is particularly attractive for mass-produced automotive electric drive systems where cost pressure is immense.

However, the transition to software decoding in high-volume manufacturing introduces new challenges related to product consistency. The performance of an electric drive system can be sensitive to minor variations in component parameters. Specifically, the analog signal conditioning circuits that process the resolver’s excitation and feedback signals inevitably introduce time delays. In mass production, tolerances in passive components (resistors, capacitors) and active devices (operational amplifiers) cause these delays to vary from one electric drive system unit to another. For a DSADC-based software decoder, which relies on precise timing for signal demodulation, this variation translates directly into inconsistent rotor angle estimation errors. As the industry pushes electric drive systems to higher rotational speeds to increase power density, these angle errors become magnified, leading to torque ripple, reduced efficiency, and audible noise—issues that compromise the performance uniformity expected in automotive-grade systems.
This article addresses this critical manufacturing challenge. We present a comprehensive analysis of how integration timing discrepancies in DSADC-based resolver decoding induce angle errors, derive the mathematical relationship between these errors and system parameters, and propose a novel, practical compensation method suitable for implementation across the entire operational speed range of an automotive electric drive system.
Principles of DSADC-Based Resolver Decoding
The core of the software decoding approach lies in utilizing the DSADC peripheral commonly found in processors like the Infineon AURIX series. This peripheral is uniquely capable of generating the high-frequency resolver excitation signal and demodulating the sinusoidal feedback signals, leaving only the angle-tracking algorithm to be implemented in software.
Excitation Signal Generation
The DSADC contains a dedicated sub-module for generating a Sinusoidal Pulse-Width Modulation (SPWM) signal used to excite the resolver. This generation is clock-based. If we denote the excitation generation module clock frequency as $f_{clk}$, and we choose a PWM period that is 32 times this clock cycle, we obtain 32 discrete duty cycles. By outputting these duty cycles according to a sinusoidal pattern over 32 PWM periods, a full SPWM cycle is completed. Therefore, the frequency of the fundamental sinusoidal excitation component is given by:
$$f_{exc} = \frac{f_{clk}}{32 \times 32}$$
For a typical $f_{clk} = 10$ MHz, the resulting excitation frequency $f_{exc}$ is 9.765 kHz. This frequency is critical as it typically sets the integration period for the DSADC’s demodulation process, defining the sampling rate for the resolver’s envelope signals.
Feedback Signal Demodulation
The resolver’s stator outputs, the Sine and Cosine signals, are modulated by the rotor angle $\theta$. Their ideal forms, after scaling by the transformer ratio $k$ and excitation amplitude $U_s$, are:
$$
\begin{aligned}
V_{sin}(t) &= k U_s \sin(\omega_{exc} t) \sin(\theta(t)) \\
V_{cos}(t) &= k U_s \sin(\omega_{exc} t) \cos(\theta(t))
\end{aligned}
$$
where $\omega_{exc} = 2\pi f_{exc}$. The DSADC’s task is to strip away the high-frequency carrier $\sin(\omega_{exc} t)$ and extract the low-frequency envelope signals $\sin(\theta(t))$ and $\cos(\theta(t))$. It accomplishes this through a process of shaping and integration.
1. Shaping: The raw feedback signal is multiplied by a shaping reference signal, $RecSign(t)$. This reference is a square wave at the excitation frequency, synchronized to the zero-crossings of the feedback signal’s carrier component. Synchronization is achieved via an internal capture unit that measures the delay between the generated excitation and the actual feedback signal’s zero-crossing, adjusting $RecSign(t)$ accordingly. This step effectively performs a synchronous demodulation, rectifying the signal.
2. Integration: The shaped signal is then integrated over a fixed period, typically one excitation period $T = 2\pi / \omega_{exc}$. This integration averages the signal, nullifying the remaining high-frequency components and yielding a value proportional to the desired envelope at a specific point in time. The output of this process for the Cosine channel over the n-th integration period, starting at time $T_n$, is:
$$V_{C_{Int}}[n] = \frac{1}{T} \int_{T_n}^{T_n+T} RecSign(t) \cdot V_{cos}(t) dt$$
When $RecSign(t)$ is perfectly synchronized, it equals $sign(\sin(\omega_{exc} t))$. For a rotor moving at constant electrical angular velocity $\omega_r$, the ideal integral result can be shown to be:
$$
\begin{aligned}
V_{C_{Int}}[n] &= \lambda \cdot \cos\left( \omega_r (T_n + T/2) \right) \\
V_{S_{Int}}[n] &= \lambda \cdot \sin\left( \omega_r (T_n + T/2) \right)
\end{aligned}
$$
where $\lambda$ is a constant gain factor. The angle argument $\omega_r (T_n + T/2)$ indicates that the decoded angle corresponds to the midpoint of the integration window. These integrated values are then fed into a software angle-tracking observer (e.g., a Phase-Locked Loop (PLL) type observer) which outputs the final estimated rotor angle $\hat{\theta}$ and speed $\hat{\omega}_r$ for the electric drive system’s control algorithms.
Analysis of Integration Timing Error
The shaping step can be dynamically adjusted based on measured delay. However, the starting time of the integration window is usually fixed during DSADC initialization based on a nominal or “standard” delay value, $t_{d\_nom}$. If the actual total signal delay $t_{d\_actual}$ differs from this nominal value, the integration window is misaligned relative to the feedback signal’s carrier. This misalignment is the root cause of the angle error in mass-produced electric drive systems. Let $t_{diff} = t_{d\_nom} – t_{d\_actual}$ be the timing error of the integration start. We analyze its effect.
Mathematical Modeling of the Error
Assume the integration starts at time $t_1 = T_n + t_{diff}$, instead of the correct time $T_n$. For simplicity, we analyze the Cosine channel. The actual integrated value becomes:
$$
V_{C_{Int\_act}}[n] = \frac{1}{T} \int_{t_1}^{t_1+T} \sin(\omega_{exc} \tau) \cos(\omega_r \tau) d\tau
$$
This can be decomposed into the ideal integral (starting at $T_n$) plus an error term $\Delta V_C$:
$$
V_{C_{Int\_act}}[n] = V_{C_{Int\_ideal}}[n] + \Delta V_C
$$
The error term $\Delta V_C$ represents the net area difference caused by shifting the integration window. It is the integral over the “new” tail section from $t_1+T$ to $T_n+T$ minus the integral over the “lost” head section from $T_n$ to $t_1$:
$$
\Delta V_C = \frac{1}{T} \left( \int_{T_n+T}^{t_1+T} \sin(\omega_{exc} \tau) \cos(\omega_r \tau) d\tau – \int_{T_n}^{t_1} \sin(\omega_{exc} \tau) \cos(\omega_r \tau) d\tau \right)
$$
A similar error $\Delta V_S$ exists for the Sine channel. These erroneous integrated values $V_{C_{Int\_act}}$ and $V_{S_{Int\_act}}$ are fed into the angle-tracking observer. The observer’s error signal $\epsilon$ is:
$$
\epsilon = \frac{V_{S_{Int\_act}}}{\lambda} \cos\hat{\theta} – \frac{V_{C_{Int\_act}}}{\lambda} \sin\hat{\theta}
$$
When the observer converges ($\epsilon \to 0$), the estimated angle $\hat{\theta}$ will deviate from the true angle $\theta_{mid} = \omega_r (T_n + T/2)$ that would have been obtained with correct timing. This deviation is the angle error $\theta_{err} = \hat{\theta} – \theta_{mid}$.
Derivation of Angle Error Expression
By solving for $\hat{\theta}$ when $\epsilon=0$, and assuming $|\omega_r| \ll \omega_{exc}$ (a valid assumption for most electric drive system operating points relative to the ~10 kHz excitation), we can derive an approximate analytical expression for the angle error. The derivation involves trigonometric expansions and small-angle approximations for terms involving $\omega_r t_{diff}$.
For the case where the integration starts early ($0 < t_{diff} < T/2$, i.e., during the positive half-cycle of the carrier), the angle error is approximately:
$$
\theta_{err}^+(t_{diff}) \approx \tan\left(\frac{\omega_r}{2\omega_{exc}}\pi\right) \cdot \left[ 1 + \cos(\omega_{exc}(t_1+0.5T)) \cdot (\omega_{exc} t_{diff}) + \frac{\omega_r}{\omega_{exc}} \sin(\omega_{exc}(t_1+0.5T)) \sin(\omega_r t_{diff}) \right]
$$
Since $\tan(x) \approx x$ for small $x$, and $\omega_r / \omega_{exc}$ is small, the expression simplifies to reveal the dominant relationship. Crucially, it shows that $\theta_{err}$ is proportional to the rotor speed $\omega_r$. The error’s magnitude and sign are modulated by a function of the normalized timing error $t_{diff}/T$.
For the case where the integration starts late ($-T/2 < t_{diff} < 0$), the error is essentially the negative of the early-start error:
$$
\theta_{err}^-(t_{diff}) \approx -\theta_{err}^+(|t_{diff}|)
$$
The table below summarizes the characteristics of the integration timing error:
| Parameter | Relationship with Angle Error $\theta_{err}$ | Notes |
|---|---|---|
| Rotor Speed ($\omega_r$) | Direct Proportionality: $\theta_{err} \propto \omega_r$ | Primary factor; error increases linearly with speed. |
| Timing Error ($t_{diff}$) | Non-linear functional relationship: $\theta_{err} \approx f(t_{diff}/T)$ | Shape of $f(\cdot)$ is determined by excitation frequency and initial phase. |
| Excitation Freq. ($\omega_{exc}$) | Inverse relationship with error magnitude. | Higher excitation frequency reduces the error sensitivity. |
Error Validation and Normalization
The theoretical error derived from the exact integral evaluation and the approximate formula show excellent agreement within the typical range of $|t_{diff}| < 0.25T$, confirming the model’s accuracy. More importantly, if we plot the angle error for different speeds and then normalize each curve by its corresponding speed $\omega_r$, all the normalized curves collapse onto a single master curve. This is powerful empirical proof of the linear proportionality:
$$
\bar{\theta}_{err}(t_{diff}) = \frac{\theta_{err}(t_{diff}, \omega_r)}{\omega_r} \approx g(t_{diff})
$$
where $g(t_{diff})$ is a speed-independent function. This property is the cornerstone of the proposed compensation method for the electric drive system.
Proposed Speed-Normalized Compensation Method
Based on the analysis, we propose a feedforward compensation method that can be applied across the entire operating range of the electric drive system. The method requires a one-time calibration step to characterize the speed-independent error function $g(t_{diff})$, which can be done theoretically or via measurement on a representative unit.
Calibration: Building the Normalized Error Map
1. For a specific electric drive system hardware platform, the range of possible timing errors $t_{diff}$ is determined (e.g., $-4.5 \mu s$ to $+4.5 \mu s$ for a 9.765 kHz excitation).
2. At a single, convenient reference speed $\omega_{ref}$ (e.g., corresponding to 10,000 RPM), the angle error $\theta_{err}(t_{diff}, \omega_{ref})$ is calculated or measured for discrete values of $t_{diff}$ across its range.
3. The normalized error map is computed:
$$ \bar{\theta}_{err\_map}[i] = \frac{\theta_{err}(t_{diff}[i], \omega_{ref})}{\omega_{ref}} $$
This map, stored as a lookup table, defines the function $g(t_{diff})$. An example of normalized error values is shown below:
| Normalized Timing Error ($t_{diff}/T$) | Normalized Angle Error $\bar{\theta}_{err}$ (rad/(rad/s)) |
|---|---|
| -0.20 | +2.1e-4 |
| -0.10 | +1.0e-4 |
| 0.00 | 0.0 |
| +0.10 | -1.0e-4 |
| +0.20 | -2.1e-4 |
Real-Time Compensation in the Electric Drive System
During the operation of each individual electric drive system unit, the following steps are performed in the software decoder:
1. Measure $t_{diff}$: The DSADC’s capture unit is used to measure the actual signal delay $t_{d\_actual}$. The timing error is computed as $t_{diff} = t_{d\_nom} – t_{d\_actual}$. This step inherently calibrates for unit-to-unit variations in the analog conditioning path.
2. Estimate Speed: Obtain the current rotor speed estimate $\hat{\omega}_r$ from the angle-tracking observer.
3. Calculate Compensation Angle: Using the measured $t_{diff}$, interpolate the normalized error map to find $\bar{\theta}_{err}(t_{diff})$. The instantaneous angle error compensation value is:
$$ \theta_{comp} = \bar{\theta}_{err}(t_{diff}) \cdot \hat{\omega}_r $$
4. Apply Compensation: Subtract the compensation value from the raw angle output $\hat{\theta}_{raw}$ of the tracking observer to obtain the corrected angle for the electric drive system’s control loops:
$$ \hat{\theta}_{corrected} = \hat{\theta}_{raw} – \theta_{comp} $$
The entire compensation process is summarized by the block diagram below and the key equation:
$$ \hat{\theta}_{corrected} = \hat{\theta}_{raw} – g(t_{diff}) \cdot \hat{\omega}_r $$
This method is computationally efficient, requiring only a table lookup, interpolation, and a multiplication-addition. It effectively decouples the error into a speed-dependent gain and a delay-dependent shape function.
Simulation Verification and Results
The proposed compensation method was validated using a Hardware-in-the-Loop (HIL) test platform based on dSPACE. The HIL simulator was configured to emulate a complete electric drive system with a 4-pole pair resolver. The signal delay between the excitation and feedback channels was programmatically varied to simulate the manufacturing tolerances found in different units of the electric drive system.
Tests were conducted at high rotational speeds to accentuate the error. The angle error was defined as the difference between the decoded angle and the simulator’s “true” rotor angle reference.
Performance at 10,000 RPM
With the electric drive system operating at 10,000 RPM (electrical frequency $\approx$ 667 Hz), the timing error $t_{diff}$ was varied. Without compensation, the angle error exhibited a clear linear relationship with $t_{diff}$, reaching magnitudes over 1.5 degrees. After applying the proposed speed-normalized compensation, the residual angle error was drastically reduced across all tested delay points.
Performance at 15,000 RPM
At the higher speed of 15,000 RPM (electrical frequency $\approx$ 1000 Hz), the uncompensated error increased proportionally, as predicted by the model, exceeding 2.2 degrees at extreme delay values. The same compensation map (calibrated at 10,000 RPM) was applied successfully. The results demonstrated that the compensation effectively counteracted the increased error, maintaining the residual error below 0.15 degrees.
The following table summarizes key results from the HIL simulation, highlighting the effectiveness of the method for the electric drive system:
| Test Condition (Speed) | Max Uncompensated Error | Max Compensated Error | Error Reduction |
|---|---|---|---|
| 10,000 RPM (Full $t_{diff}$ range) | 1.52° | 0.10° | 93.4% |
| 15,000 RPM (Full $t_{diff}$ range) | 2.28° | 0.14° | 93.9% |
The simulation conclusively proves that the speed-normalized compensation method:
1. Correctly models the dominant error mechanism in DSADC-based resolver decoding for automotive electric drive systems.
2. Provides a simple, robust, and effective means to eliminate speed-dependent angle errors caused by manufacturing variations in signal delay.
3. Ensures consistent high-precision position sensing across all production units, which is essential for maintaining uniform performance, efficiency, and acoustic characteristics in mass-produced electric drive systems.
Conclusion
This article has presented a systematic investigation into a critical performance inconsistency issue in mass-produced automotive electric drive systems utilizing cost-effective DSADC-based resolver software decoders. The analysis pinpointed the misalignment of the DSADC integration window due to analog circuit delay variations as the fundamental cause of speed-proportional angle errors. A rigorous mathematical model was developed, deriving the proportional relationship between the angle error and the rotor speed, $\theta_{err} \propto \omega_r$.
Leveraging this fundamental insight, a novel, practical compensation method was proposed. The method is based on characterizing a speed-normalized error function against integration timing error and applying it in real-time as a feedforward correction scaled by the instantaneous rotor speed. This approach elegantly separates the error into a static, hardware-dependent component and a dynamic, speed-dependent component.
Comprehensive HIL simulations, replicating the conditions of a high-speed electric drive system, validated the method’s exceptional efficacy. The compensation reduced angle errors by over 93% across a wide speed range and under significant simulated manufacturing tolerances. This method resolves the product inconsistency challenge, enabling the reliable and high-performance use of software-based resolver decoding in high-volume, cost-sensitive automotive electric drive systems without sacrificing precision at high rotational speeds. The solution is computationally lightweight and directly implementable in standard automotive-grade microcontrollers, paving the way for its widespread adoption in the industry.
