Nonlinear error compensation method for low-speed section of rotary variable differential transformer output signal and closed-loop control system
By using a nonlinear error compensation method for the low-speed segment of the resolver output signal, and employing a time-varying noise matrix Kalman filter and a second-order all-pass phase correction network, the amplitude bias coupling error and phase sampling jitter coupling error of the resolver output signal are separated and compensated. This solves the problem of compensation inaccuracy caused by assuming that the error of the resolver output signal in the low-speed segment is static or linear, and improves the angle calculation accuracy in the low-speed segment.
Patent Information
- Application Number
- CN202611172476.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-08-04
- Publication Date
- 2026-11-03
AI Technical Summary
In existing technologies for drive motors and high-performance servo systems in new energy vehicles, the output signal of the rotary transformer fluctuates at low speeds due to temperature drift, component aging, and power supply fluctuations, resulting in a deterioration in the signal-to-noise ratio of the sine and cosine envelope signals. Traditional compensation methods are unable to achieve real-time online self-calibration, leading to a decrease in the accuracy of angle calculation.
A nonlinear error compensation method for the low-speed range of the resolver output signal is adopted. Through a time-varying noise matrix Kalman filter and a second-order all-pass phase correction network, the amplitude bias coupling error and the phase sampling jitter coupling error are separated and compensated, realizing dynamic decoupling and closed-loop collaborative compensation. The signal quality is optimized by using phase-locked loop angle calculation and adaptive compensator.
Dynamic decoupling and closed-loop collaborative compensation of multi-source coupling errors in the low-speed range were achieved, improving the accuracy of angle calculation.
Smart Images

Figure CN123034774A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of resolver signal processing technology, and more specifically, to a method for compensating for nonlinear errors in the low-speed range of resolver output signals and a closed-loop control system. Background Technology
[0002] In new energy vehicle drive motors and high-performance servo systems, the resolver serves as a core position sensor, and its output signal quality directly determines the torque stability and low-speed performance of the motor control system. In actual operation, temperature drift, component aging, and power supply fluctuations introduce amplitude fluctuations, DC bias, and low-order harmonic distortion into the excitation signal. After amplitude modulation by the resolver, the signal-to-noise ratio of the sine and cosine envelope signals deteriorates, especially at extremely low speeds. Existing technologies often employ fixed factory calibration, assuming the error is static or linear, without considering the dynamic nonlinear nature of errors at low speeds and the cross-coupling effect between multiple error sources. When the motor speed falls below a certain threshold, traditional open-loop compensation or back-end correction methods struggle to achieve real-time online self-calibration during operation, leading to a sharp decline in angle calculation accuracy at low speeds.
[0003] To address the aforementioned issues, existing technologies urgently need improvement. Summary of the Invention
[0004] The purpose of this application is to provide a method for compensating for nonlinear errors in the low-speed range of resolver output signals and a closed-loop control system. This method has the advantages of achieving dynamic decoupling and closed-loop collaborative compensation of multi-source coupling errors in the low-speed range, thereby improving the accuracy of angle calculation and real-time adaptability in the low-speed range.
[0005] This application provides a method for compensating for the nonlinear error of a resolver output signal in the low-speed range, the technical solution of which is as follows: Synchronously acquire the sine and cosine output signals of the rotary transformer and the excitation reference signal; When the motor speed is lower than a preset threshold, it enters the low-speed compensation mode. In the low-speed compensation mode, the instantaneous deviation of the amplitude of the sine and cosine output signals, the DC bias, the quadrature phase error and the sampling jitter error are extracted. The decoupling operation is performed on the periodic cumulative signal sequence to separate the amplitude bias coupling error and the phase sampling jitter coupling error. A time-varying noise matrix Kalman filter is used to normalize the amplitude and correct the bias of the sine and cosine output signals. The process noise covariance matrix and the observation noise covariance matrix of the Kalman filter are dynamically updated according to the current motor speed and signal-to-noise ratio. Based on the piecewise nonlinear mapping model between excitation reference frequency and motor speed, the coefficients of a second-order all-pass phase correction network are configured to complete phase correction and obtain the compensated sine and cosine signals. The compensated sine and cosine signals are input into the phase-locked loop for angle calculation, and the calculated angle and angle error are output. The angle error is fed back to the adaptive compensator, the error characteristics are fused to update the compensation parameters, and the error of the sine and cosine output signals is iteratively compensated until convergence.
[0006] Furthermore, the extraction of the sampling jitter error includes: In the low-speed compensation mode, the sine and cosine output signals within multiple electrical cycles are periodically accumulated to obtain a periodically accumulated signal sequence. Based on the ratio of the current motor speed to the preset speed reference value, the delay order and operation window length of the delay autocorrelation algorithm are determined, and autocorrelation operation is performed on the periodic cumulative signal sequence to estimate the sampling jitter error; Outlier removal is performed on the autocorrelation calculation results to obtain the sampling jitter error after outlier removal.
[0007] Furthermore, the step of using a time-varying noise matrix Kalman filter to perform amplitude normalization and bias correction on the sine and cosine output signals includes: Construct the state vector of the Kalman filter, the state vector including the magnitude ratio dynamic deviation and the bias drift rate; Based on the current motor speed and signal-to-noise ratio, the process noise covariance matrix and observation noise covariance matrix of the Kalman filter are dynamically updated to form a time-varying parameter Kalman filter; The state estimation result is obtained by performing state prediction and state update on the sine and cosine output signals through the time-varying parameter Kalman filter. Amplitude normalization and bias correction are performed based on the state estimation results.
[0008] Furthermore, the decoupling operation on the periodic cumulative signal sequence includes: An error decoupling matrix is constructed based on the instantaneous amplitude deviation, DC bias, quadrature phase error, and sampling jitter error in the periodic cumulative signal sequence. Decoupling operations are performed using the aforementioned error decoupling matrix to separate the mutually independent amplitude bias coupling error and phase sampling jitter coupling error. The amplitude bias coupling error is fed into the Kalman filter branch, and the phase sampling jitter coupling error is fed into the all-pass phase correction network branch.
[0009] Furthermore, the second-order all-pass phase correction network coefficients configured based on the piecewise nonlinear mapping model between the excitation reference frequency and the motor speed include: A piecewise nonlinear mapping model between the excitation reference frequency and the motor speed is established in advance; Based on the current motor speed and the excitation reference frequency, the phase compensation amount is calculated using the piecewise nonlinear mapping model. Configure the coefficients of the second-order all-pass phase correction network according to the phase compensation amount, and perform phase correction on the bias-corrected sine and cosine signals through the configured second-order all-pass phase correction network.
[0010] Furthermore, the phase-locked loop includes a phase detector, a loop filter, a voltage-controlled oscillator, and an angle calculation unit; the step of inputting the compensated sine and cosine signals into the phase-locked loop for angle calculation includes: The loop filter is a speed-adaptive variable bandwidth structure, which adaptively adjusts the loop bandwidth according to the current motor speed. The lower the speed, the narrower the loop bandwidth. The phase detector performs phase detection on the compensated sine and cosine signals, the loop filter filters the detection results, the voltage-controlled oscillator outputs an oscillation signal based on the filtering results, and the angle calculation unit generates the calculated angle based on the oscillation signal and calculates the angle error.
[0011] Furthermore, the step of feeding back the angle error to the adaptive compensator and fusing error features to update the compensation parameters includes: Based on the current motor speed, signal-to-noise ratio, and angle error range, dynamic feedback weights are assigned to the Kalman filter branch and the all-pass phase correction network branch, and the sum of the two weights is a fixed value. When the motor speed is lower than the first preset threshold and the signal-to-noise ratio is lower than the preset lower limit of signal-to-noise ratio, the feedback weight of the Kalman filter branch is greater than the feedback weight of the all-pass phase correction network branch. When the angle error is greater than the preset error threshold and the motor speed is higher than the first proportion of the preset threshold but lower than the preset threshold, the feedback weight of the full-pass phase correction network branch is greater than the feedback weight of the Kalman filter branch. The compensation parameters are iteratively updated based on the assigned dynamic feedback weights.
[0012] Furthermore, the iterative compensation of the sine and cosine output signal errors until convergence includes: After each iteration, the fluctuation range of the angle error over multiple consecutive electrical cycles is calculated; The signal-to-noise ratio is divided into at least two signal-to-noise ratio ranges, with different signal-to-noise ratio ranges corresponding to different basic accumulation periods and upper limits of maximum accumulation periods. If the fluctuation range is less than the preset error range, convergence is determined; if convergence is not determined, the number of accumulated electrical cycles is adjusted according to the current signal-to-noise ratio range, and the decoupling operation is re-executed.
[0013] Furthermore, the method also includes: if the current motor speed is below the preset threshold and it is in a non-low-speed compensation mode, then enter the low-speed compensation mode; if the current motor speed is above the preset threshold and the preset hysteresis bandwidth, then exit the low-speed compensation mode and enter the normal calculation mode; when entering the low-speed compensation mode, perform weighted gradual smoothing initialization on the state estimate of the Kalman filter and the coefficients of the all-pass phase correction network according to a preset smoothing step number; when exiting the low-speed compensation mode, latch the compensation parameters obtained in the last iteration as the initial parameters when entering the low-speed compensation mode again.
[0014] Secondly, this application also proposes a closed-loop control system for nonlinear error compensation in the low-speed range of the resolver output signal, comprising: The acquisition module is used to synchronously acquire the sine and cosine output signals and excitation reference signals of the rotary transformer; The extraction module enters the low-speed compensation mode when the motor speed is lower than a preset threshold. In the low-speed compensation mode, it extracts the instantaneous deviation of the amplitude of the sine and cosine output signals, the DC bias, the quadrature phase error and the sampling jitter error, and performs decoupling operation on the periodic cumulative signal sequence to separate the amplitude bias coupling error and the phase sampling jitter coupling error. The bias correction module uses a time-varying noise matrix Kalman filter to normalize the amplitude and correct the bias of the sine and cosine output signals. The process noise covariance matrix and the observation noise covariance matrix of the Kalman filter are dynamically updated according to the current motor speed and signal-to-noise ratio. The phase correction module, based on the piecewise nonlinear mapping model between the excitation reference frequency and the motor speed, configures the coefficients of the second-order all-pass phase correction network to complete the phase correction and obtain the compensated sine and cosine signals. The calculation module inputs the compensated sine and cosine signals into the phase-locked loop for angle calculation and outputs the calculated angle and angle error. The iterative compensation module feeds back the angle error to the adaptive compensator, integrates the error characteristics to update the compensation parameters, and iteratively compensates for the sine and cosine output signal errors until convergence. The beneficial technical effects of this solution compared to existing technologies are as follows: By determining the entry into the low-speed compensation mode based on the rotational speed threshold and extracting dynamic error features, the inaccuracy caused by assuming static or linear low-speed errors in existing technologies is solved; by separating coupled errors using an error decoupling matrix and performing branch compensation, the cross-interference problem caused by independent processing of multi-source errors is solved; by dynamically updating the noise covariance using a time-varying noise matrix Kalman filter, the estimation inaccuracy problem of fixed noise parameters when the signal-to-noise ratio deteriorates at low speeds is solved; by configuring the all-pass network coefficients in real time using a piecewise nonlinear mapping model, the problem of fixed coefficients being unable to adapt to changes in rotational speed is solved; by forming a closed-loop iteration through angle error front-end feedback, the problem of open-loop compensation being unable to self-calibrate in real time is solved; and by using hysteresis switching and parameter latching, the problems of mode oscillation and switching jumps are solved, thereby achieving dynamic decoupling and closed-loop collaborative compensation of multi-source coupled errors in the low-speed segment and improving the accuracy of angle calculation. Attached Figure Description
[0015] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0016] Figure 1 This is a flowchart illustrating the steps of the low-speed nonlinearity error compensation method for the resolver output signal disclosed in an embodiment of the present invention. Figure 2 This is a schematic diagram of the method steps for performing decoupling operations on a periodic cumulative signal sequence disclosed in an embodiment of the present invention; Figure 3 This is a schematic diagram of the steps for amplitude normalization and bias correction of sine and cosine output signals using a time-varying noise matrix Kalman filter disclosed in an embodiment of the present invention. Figure 4 This is a schematic diagram of the method steps for configuring second-order all-pass phase correction network coefficients based on a piecewise nonlinear mapping model between excitation reference frequency and motor speed disclosed in an embodiment of the present invention. Figure 5 This is a schematic diagram of the closed-loop control system for nonlinear error compensation in the low-speed range of the resolver output signal disclosed in an embodiment of the present invention. Detailed Implementation
[0017] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which these embodiments belong; the terminology used herein and in the specification of the application is for the purpose of describing particular embodiments only and is not intended to limit these embodiments; the terms "comprising" and "having," and any variations thereof, in the specification of these embodiments and the foregoing drawings, are intended to cover non-exclusive inclusion. The terms "first," "second," etc., in the specification of these embodiments and the foregoing drawings are used to distinguish different objects, not to describe a particular order.
[0018] The implementation details of the technical solution in this embodiment are described in detail below: This application proposes a method for compensating for the nonlinear error of the resolver output signal in the low-speed range, such as... Figure 1 As shown, the method includes: S101, synchronously acquires the sine and cosine output signals of the rotary transformer and the excitation reference signal; Specifically, the sine output winding, cosine output winding, and excitation winding of the rotary transformer are connected to three independent sampling channels of the analog-to-digital converter, and synchronous sampling is triggered by the same clock source. Let the fundamental frequency of the excitation reference signal be fexc, the sampling frequency be fs, and the number of sampling points per cycle be N, then fs = N × fexc. In this formula, N is typically an integer between 32 and 128. For example, when fexc is 10kHz and N is 64, fs is 640kHz. After sampling, a finite impulse response low-pass filter is used to perform anti-aliasing filtering on the original sampled data. The filter cutoff frequency is set to 2 to 3 times the fundamental frequency of the excitation reference signal. The filtered data forms a digitized sine signal sequence, a cosine signal sequence, and an excitation reference signal sequence, which are then fed into subsequent steps.
[0019] S102, in response to the motor speed being lower than a preset threshold, enters low-speed compensation mode; in low-speed compensation mode, extracts the instantaneous deviation of the amplitude of the sine and cosine output signals, DC bias, quadrature phase error and sampling jitter error, performs decoupling operation on the periodic cumulative signal sequence, and separates the amplitude bias coupling error and phase sampling jitter coupling error. Specifically, the current motor speed is calculated based on the digitized sine and cosine signal sequences obtained in step S101. Let the envelope frequency of the sine and cosine signals be fenv, and the number of motor pole pairs be P. Then, the motor speed n = fenv × 60 / P. Where n is the motor speed in revolutions per minute (rpm), fenv is the envelope frequency in Hertz (Hz), and P is the number of motor pole pairs. The current motor speed is compared with a preset threshold, which is typically a fixed value between 50 and 100 rpm. When the current motor speed is lower than the preset threshold, it is determined that the low-speed compensation mode has been entered.
[0020] After entering the low-speed compensation mode, error features are extracted from the digitized sine and cosine signal sequences obtained by S101. The instantaneous amplitude deviation δA = |As - Ac| / Aavg, where As is the amplitude of the sine signal, Ac is the amplitude of the cosine signal, and Aavg = (As + Ac) / 2. The DC bias includes the sine channel bias μs and the cosine channel bias μc, which are obtained by calculating the average values of the sine and cosine signals within the current cycle. The quadrature phase error δφ = |φs - φc| - 90°, where φs is the phase of the sine signal, φc is the phase of the cosine signal, and δφ is the quadrature phase error.
[0021] In S102, the extraction of the sampling jitter error includes: In the low-speed compensation mode, the sine and cosine output signals within multiple electrical cycles are periodically accumulated to obtain a periodically accumulated signal sequence. Based on the ratio of the current motor speed to a preset speed reference value, the delay order and operation window length of the time-delay autocorrelation algorithm are determined. Autocorrelation operation is performed on the periodically accumulated signal sequence to estimate the sampling jitter error. Outlier removal is performed on the autocorrelation operation result to obtain the sampling jitter error after outlier removal.
[0022] Specifically, the zero-crossing point of the excitation reference signal is used as the start mark of the cycle. The N sampling points within each electrical cycle are arranged in phase order. Data from L consecutive cycles is taken, and the sampling values at the same phase position are arithmetically averaged to obtain a periodic cumulative signal sequence of length N. For example, when the excitation frequency is 10kHz, the sampling frequency is 640kHz, and there are 64 sampling points per cycle, accumulating over L=32 cycles results in a total accumulation time of 3.2 milliseconds. After accumulation, the standard deviation of the random noise is reduced to 1 / 3 of its original value. It is approximately 17.7% of the original value.
[0023] The delay order and computation window length of the delay autocorrelation algorithm are adaptively adjusted based on the current motor speed. Let the delay order be k and the computation window length be M, then the formula for calculating the delay autocorrelation function R(k) is:
[0024] In the formula, R(k) is the autocorrelation function value after a delay of k sampling points, M is the operational window length, k is the delay order, x(n) is the value of the nth sampling point in the periodic cumulative signal sequence, and x(n+k) is the value of the (n+k)th sampling point. When the current motor speed is 30 revolutions per minute, the delay order k is set to 8 sampling points, and the operational window length M is set to 512 sampling points. When the current motor speed decreases to 10 revolutions per minute, the delay order k is increased to 16 sampling points, and the operational window length M is increased to 1024 sampling points. The lower the speed, the longer the signal period; increasing the delay order and operational window length can more accurately capture the statistical characteristics of sampling jitter in the low-speed range.
[0025] Autocorrelation is performed on the periodically accumulated signal sequence to estimate the sampling jitter error. Delayed autocorrelation functions are calculated for both the periodically accumulated sine and cosine signal sequences. When the delay order k is small, the autocorrelation function value mainly reflects the self-similarity of the signal; when k approaches the dominant period of sampling jitter, the autocorrelation function shows peaks or troughs, and the amplitude of these fluctuations characterizes the intensity of the sampling jitter error. Let the estimated sampling jitter error for the sine channel be δjs, and the estimated sampling jitter error for the cosine channel be δjc, then the combined sampling jitter error δj = In the formula, δj is the overall sampling jitter error, δjs is the estimated value of the sine channel sampling jitter error, and δjc is the estimated value of the cosine channel sampling jitter error.
[0026] Outlier removal is performed on the autocorrelation calculation results. The mean μR and standard deviation σR of the autocorrelation function values corresponding to all delay orders within the calculation window length M are calculated. The removal threshold is set to μR + 3σR. When the autocorrelation function value corresponding to a certain delay order exceeds the threshold, the value is determined to be an outlier and removed. After removal, the mean of the remaining autocorrelation function values is recalculated as the final sampling jitter error estimate.
[0027] In S102, the decoupling operation on the periodic cumulative signal sequence is performed, such as... Figure 2 As shown, it includes: S2001, construct an error decoupling matrix based on the instantaneous amplitude deviation, DC bias, quadrature phase error and sampling jitter error in the periodic cumulative signal sequence; Specifically, the error decoupling matrix adopts a block diagonal structure, consisting of an amplitude bias coupling submatrix and a phase sampling jitter coupling submatrix. Let the amplitude bias coupling submatrix be D. AB This corresponds to three error components: instantaneous amplitude deviation, sine channel offset, and cosine channel offset; the phase sampling jitter coupling submatrix is D. PJ This corresponds to two components: quadrature phase error and sampling jitter error.
[0028] Amplitude bias coupling submatrix D ABIt is a 3x3 matrix, in the form of:
[0029] In the formula, α is the coupling coefficient of the instantaneous amplitude deviation to the sine channel offset estimation, β is the coupling coefficient of the instantaneous amplitude deviation to the cosine channel offset estimation, γ is the coupling coefficient of the sine channel offset to the instantaneous amplitude deviation estimation, and δ is the coupling coefficient of the cosine channel offset to the instantaneous amplitude deviation estimation. These coupling coefficients are calibrated based on the cross-sensitivity characteristics of the amplitude change and offset drift of the low-speed resolver signal.
[0030] Phase sampling jitter coupling submatrix D PJ It is a 2x2 matrix, in the form of:
[0031] In the formula, ε is the coupling coefficient of orthogonal phase error to sampling jitter estimation, and ζ is the coupling coefficient of sampling jitter error to orthogonal phase error estimation.
[0032] D AB and D PJ Combining these elements, we obtain a 5x5 error decoupling matrix D. The block form of matrix D is as follows:
[0033] In the formula, 0 represents the zero matrix of the corresponding dimension.
[0034] In practical applications, the coupling coefficient is determined based on experimental calibration. For example, when the instantaneous amplitude deviation is 0.05, it causes an estimated deviation of approximately 0.015 for the sine channel offset, so α is taken as 0.3; and it causes an estimated deviation of approximately 0.01 for the cosine channel offset, so β is taken as 0.2. When the sampling jitter error is 0.01 degrees, it causes an estimated deviation of approximately 0.008 degrees for the quadrature phase error, so ζ is taken as 0.8; and when the quadrature phase error is 0.8 degrees, it causes an estimated deviation of approximately 0.004 degrees for the sampling jitter, so ε is taken as 0.005.
[0035] S2002, Decoupling operation is performed through the error decoupling matrix to separate the independent amplitude bias coupling error and phase sampling jitter coupling error; Specifically, let the original error vector be E, which consists of five error components extracted by S102, i.e., E = [δA, μs, μc, δφ, δj] T In the formula, δA is the instantaneous amplitude deviation, μs is the sine channel bias, μc is the cosine channel bias, δφ is the quadrature phase error, δj is the sampling jitter error, and the superscript T indicates vector transpose.
[0036] Perform the decoupling operation X = D -1× E. Where X is the decoupled error vector, D -1 Let E be the inverse of the error decoupling matrix D, and let E be the original error vector.
[0037] The decoupled error vector X is separated into its components. The first three components of X constitute the amplitude bias coupling error vector XAB, i.e., XAB = [x1, x2, x3]. T Where x1 is the dominant amplitude component after decoupling, x2 is the dominant sine bias component after decoupling, and x3 is the dominant cosine bias component after decoupling. The last two components of X constitute the phase sampling jitter coupling error vector XPJ, i.e., XPJ = [x4, x5] T , where x4 is the phase dominant component after decoupling, and x5 is the jitter dominant component after decoupling.
[0038] For example, when the elements of the original error vector E are δA = 0.05, μs = 0.02 volts, μc = 0.03 volts, δφ = 0.8 degrees, and δj = 0.01 degrees, and the coupling coefficients are α = 0.3, β = 0.2, γ = 0.1, δ = 0.15, ε = 0.005, and ζ = 0.01, calculating the inverse matrix of DAB and the inverse matrix of DPJ yields an approximate XAB of [0.040, 0.017, 0.023]. T XPJ is approximately [0.800, 0.002]. T After decoupling, the cross-interference between amplitude and bias in the amplitude-bias coupling error vector XAB has been eliminated, and the cross-interference between phase and jitter in the phase sampling jitter coupling error vector XPJ has been eliminated.
[0039] S2003, the amplitude bias coupling error is sent to the Kalman filter branch, and the phase sampling jitter coupling error is sent to the all-pass phase correction network branch.
[0040] Specifically, the decoupled amplitude-bias coupling error vector XAB is used as the input observation of the Kalman filter branch. The Kalman filter branch performs amplitude normalization and bias correction based on the dominant amplitude component x1, the dominant sine bias component x2, and the dominant cosine bias component x3 in XAB. Since XAB has eliminated the interference of phase error and sampling jitter error through decoupling operations, the Kalman filter branch can focus on the accurate estimation of amplitude and bias, avoiding contamination of the state estimation by other error sources.
[0041] The decoupled phase sampling jitter coupling error vector XPJ is used as the input observation for the all-pass phase correction network branch. The all-pass phase correction network branch configures the phase correction coefficients and performs phase correction based on the phase dominant component x4 and jitter dominant component x5 in XPJ. Since XPJ has eliminated amplitude deviation and DC bias interference through decoupling operations, the all-pass phase correction network branch can accurately identify phase distortion caused by phase error and sampling jitter, avoiding interference from amplitude fluctuations on phase correction.
[0042] S103, the amplitude normalization and bias correction of the sine and cosine output signals are performed using a time-varying noise matrix Kalman filter. The process noise covariance matrix and the observation noise covariance matrix of the Kalman filter are dynamically updated according to the current motor speed and signal-to-noise ratio.
[0043] Specifically, the decoupled amplitude-bias coupling error vector is fed into the time-varying noise matrix Kalman filter branch. This Kalman filter uses the amplitude ratio dynamic deviation and bias drift rate as state variables, and the amplitude-bias coupling error vector as the observation. It dynamically adjusts the process noise covariance matrix and the observation noise covariance matrix to adapt to changes in signal-to-noise ratio and rotational speed in the low-speed range, performing amplitude normalization and bias correction.
[0044] In S103, the amplitude normalization and bias correction of the sine and cosine output signals are performed using a time-varying noise matrix Kalman filter, as follows: Figure 3 As shown, it includes: S3001, Construct the state vector of the Kalman filter, the state vector including the magnitude ratio dynamic deviation and the bias drift rate; Specifically, let the state vector at time k be xk, which consists of three components: xk = [rk, usk, uck]. T In the formula, rk is the amplitude ratio dynamic deviation at time k, defined as the deviation of the ratio of the current sine signal amplitude to the cosine signal amplitude from the ideal ratio of 1; usk is the sine channel bias drift rate at time k, characterizing the rate of change of the DC bias of the sine signal over time; uck is the cosine channel bias drift rate at time k, characterizing the rate of change of the DC bias of the cosine signal over time. The superscript T indicates vector transpose.
[0045] The state transition equation is x k = F * x k-1 + w k-1 In the formula, F is the state transition matrix, a 3x3 identity matrix, representing the basic preservation relationship of state variables at adjacent time points; w k-1 Let Q be the process noise vector at time k-1, and let Q be its covariance matrix. k-1For example, with a sampling frequency of 640kHz and 64 sampling points per cycle, the interval between adjacent sampling times is 1.5625 microseconds. Taking the identity matrix as the state transition matrix can accurately describe the gradual changes in amplitude ratio and bias drift rate on the order of microseconds.
[0046] The observation equation is z k = H * x k + v k In the formula, z k Let zk be the observation vector at time k, which consists of the three components of the magnitude bias coupling error vector XAB obtained from S2003, i.e., zk = [x1, x2, x3]. T H is the observation matrix, a 3x3 identity matrix, representing the direct mapping between the state vector and the observation vector; v k Let Rk be the observation noise vector at time k, and let Rk be its covariance matrix.
[0047] S3002, Based on the current motor speed and signal-to-noise ratio, dynamically update the process noise covariance matrix and observation noise covariance matrix of the Kalman filter to form a time-varying parameter Kalman filter; Specifically, let the current motor speed be n, in revolutions per minute (rpm); and the signal-to-noise ratio (SNR) be SNR, in decibels (dB). The process noise covariance matrix Qk is a 3x3 diagonal matrix with diagonal elements qr, qs, and qc. In the formula, qr is the process noise variance of the amplitude ratio dynamic deviation, qs is the process noise variance of the sine channel bias drift rate, and qc is the process noise variance of the cosine channel bias drift rate. When the motor speed decreases, the signal change rate slows down, and the process noise variance decreases accordingly. For example, when the speed n is 30 rpm, qr is 0.001, qs is 0.0005, and qc is 0.0005; when the speed n drops to 10 rpm, qr is 0.0005, qs is 0.0002, and qc is 0.0002.
[0048] The observation noise covariance matrix Rk is a 3x3 diagonal matrix with diagonal elements r1, r2, and r3. In the formula, r1 is the observation noise variance of the amplitude dominant component, r2 is the observation noise variance of the sine bias dominant component, and r3 is the observation noise variance of the cosine bias dominant component. When the signal-to-noise ratio (SNR) decreases, the uncertainty of the observation increases, and the observation noise variance increases accordingly. For example, when the SNR is 30 dB, r1 is 0.01, r2 is 0.008, and r3 is 0.008; when the SNR drops to 20 dB, r1 is 0.04, r2 is 0.03, and r3 is 0.03.
[0049] S3003, The state prediction and state update of the sine and cosine output signals are performed by the time-varying parameter Kalman filter to obtain the state estimation result; Specifically, the state prediction steps include: based on the state estimate x at time k-1... k-1|k-1 Given the state transition matrix F, calculate the prior state estimate x at time k. k|k-1 = F * x k-1|k-1 Meanwhile, based on the posterior error covariance matrix P at time k-1... k-1|k-1 Given the process noise covariance matrix Qk, calculate the prior error covariance matrix P at time k. k|k-1 = F * P k-1|k-1 * F T + Q k In the formula, P k|k-1 Let P be the prior error covariance matrix at time k. k-1|k-1 Let be the posterior error covariance matrix at time k-1, with the superscript T indicating matrix transpose.
[0050] The state update steps include: based on the prior error covariance matrix P k|k-1 Observation matrix H and observation noise covariance matrix R k Calculate the Kalman gain K k =P k|k-1 * H T * (H * P k|k-1 * H T + R k ) -1 In the formula, K k Let be the Kalman gain matrix at time k, with the superscript -1 indicating matrix inversion. Then, based on the prior state estimate x... k|k-1 Kalman gain K k and observation vector z k Calculate the posterior state estimate x k|k = x k|k-1 + K k * (z k - H * x k|k-1 Finally, update the posterior error covariance matrix P. k|k-1 = (I - K k * H) * P k|k-1 In the formula, I is a 3x3 identity matrix.
[0051] For example, when the posterior state estimate x at time k-1 k-1|k-1 for The posterior error covariance matrix P k-1|k-1Let diag(0.01, 0.005, 0.005), and the process noise covariance matrix Q. k Let diag(0.001, 0.0005, 0.0005), and the observation noise covariance matrix R k Let diag(0.01, 0.008, 0.008), and the observation vector z k for At that time, after state prediction and state update, the posterior state estimate x is obtained. k|k Approximately .
[0052] S3004, Perform amplitude normalization and bias correction based on the state estimation results.
[0053] Specifically, let the original sine signal sampled by S101 be ss, and the original cosine signal sampled by S101 be sc. In the state estimate obtained by S3003, the amplitude ratio dynamic deviation estimate is rk, the sine channel offset drift rate estimate is usk, and the cosine channel offset drift rate estimate is uck.
[0054] Amplitude normalization balances the amplitudes of the sine and cosine signals based on the amplitude ratio dynamic deviation estimate. Let the amplitude ratio dynamic deviation estimate be rk, defined as rk = As / Ac - 1, where As is the amplitude of the sine signal and Ac is the amplitude of the cosine signal. To ensure consistent amplitudes in both channels, the sine signal is multiplied by a normalization factor of 1 / (1+rk), while the cosine signal retains its original value. The normalized sine signal ssn and cosine signal scn are as follows: ssn = ss / (1 + rk); scn = sc; In the formula, ssn is the normalized sine signal, scn is the normalized cosine signal, ss is the original sine signal, sc is the original cosine signal, and rk is the amplitude ratio dynamic deviation estimate. For example, when rk is 0.04, the amplitude of the sine signal is about 4% higher than that of the cosine signal. During normalization, the sine signal is divided by 1.04 to make the amplitude ratio of the two channels approach 1.
[0055] The bias correction calculates the current bias estimate based on the bias drift rate estimate and the cumulative sampling time, and eliminates the DC bias from the normalized signal. Let m be the number of cumulative sampling points since entering the low-speed compensation mode, and Ts be the sampling time interval. Then, the current sine channel bias estimate Bsk = usk * m * Ts, and the current cosine channel bias estimate Bck = uck * m * Ts. Where Bsk is the sine channel bias estimate, Bck is the cosine channel bias estimate, m is the number of cumulative sampling points, and Ts is the sampling time interval. The corrected sine signal ssc and cosine signal scc are respectively: ssc = ssn - Bsk scc = scn - Bck In the formula, ssc is the bias-corrected sine signal, and scc is the bias-corrected cosine signal. For example, when the sampling frequency is 640kHz, Ts is 1.5625 microseconds, the cumulative sampling point number m is 1024, usk is 0.0175, and uck is 0.0235, the current sine channel bias estimate Bsk is approximately 0.028, and the cosine channel bias estimate Bck is approximately 0.038. Subtracting the above bias estimates from the normalized signal yields the sine and cosine signals after both amplitude and bias correction.
[0056] S104, based on the piecewise nonlinear mapping model of excitation reference frequency and motor speed, configures the coefficients of second-order all-pass phase correction network to complete phase correction and obtain the compensated sine and cosine signals; Specifically, the amplitude-normalized and bias-corrected sine and cosine signals are fed into a second-order all-pass phase correction network. This network calculates the phase compensation amount based on the current motor speed and excitation reference frequency using a pre-established piecewise nonlinear mapping model, and configures the network coefficients accordingly to correct the orthogonal phase error and phase distortion caused by sampling jitter in the sine and cosine signals, outputting phase-compensated sine and cosine signals.
[0057] In S104, the second-order all-pass phase correction network coefficients are configured based on the piecewise nonlinear mapping model between the excitation reference frequency and the motor speed, such as... Figure 4 As shown, it includes: S4001, a piecewise nonlinear mapping model between the excitation reference frequency and the motor speed is established in advance; Specifically, the piecewise nonlinear mapping model divides the motor speed into three intervals: low speed, transition speed, and medium-low speed. Let the excitation reference frequency be fexc (in Hertz); the motor speed be n (in revolutions per minute); and the phase compensation amount be φcorr (in degrees).
[0058] The low-speed range corresponds to the interval where the motor speed n is less than or equal to n1, where n1 is the upper limit speed of the low-speed range. Within this interval, the phase compensation amount φcorr is inversely proportional to the speed n, and the mapping function is φcorr = k1 / n + b1. In the formula, k1 is the inverse proportional coefficient for the low-speed range, and b1 is the offset constant for the low-speed range. For example, when n1 is 30 revolutions per minute, k1 is 15, and b1 is 0.5, the phase compensation amount corresponding to a speed of 10 revolutions per minute is 2.0 degrees, and the phase compensation amount corresponding to a speed of 30 revolutions per minute is 1.0 degree.
[0059] The transition section corresponds to the range where the motor speed n is greater than n1 and less than or equal to n2, where n2 is the upper limit speed of the transition section. Within this range, the phase compensation amount φcorr decreases nonlinearly with increasing speed before smoothly transitioning, and the mapping function is φcorr = k2 * (n2 - n). 2 / (n2 - n1) 2 + b2. In the formula, k2 is the coefficient of the quadratic term of the transition segment, and b2 is the offset constant of the transition segment. For example, when n1 is 30 revolutions per minute, n2 is 50 revolutions per minute, k2 is 1.0, and b2 is 0.2, the phase compensation amount corresponding to a speed of 30 revolutions per minute is 1.2 degrees, the phase compensation amount corresponding to a speed of 40 revolutions per minute is 0.45 degrees, and the phase compensation amount corresponding to a speed of 50 revolutions per minute is 0.2 degrees.
[0060] The low-to-medium speed range corresponds to the interval where the motor speed n is greater than n² and less than or equal to a preset threshold. Within this interval, the phase compensation amount φcorr tends to a stable small value, and the mapping function is φcorr = k3 * n + b3. In this formula, k3 is the linear coefficient for the low-to-medium speed range, and b3 is the offset constant for the low-to-medium speed range. For example, when the preset threshold is 100 rpm, k3 is -0.002, and b3 is 0.3, the phase compensation amount corresponding to a speed of 50 rpm is 0.2 degrees, and the phase compensation amount corresponding to a speed of 100 rpm is 0.1 degrees.
[0061] The aforementioned piecewise nonlinear mapping model was established through offline calibration experiments. During the calibration process, the motor was controlled to run stably at different speeds, and the deviation between the actual phase difference of the sine and cosine signals and the ideal orthogonal phase difference of 90 degrees was measured at each speed. Combined with the sampling jitter error at the corresponding speed, the mapping coefficients of each segment were fitted to obtain the results. The calibration data covered the complete speed range from 0 revolutions per minute to a preset threshold, ensuring that the model was effective throughout the entire working range of the low-speed compensation mode.
[0062] S4002, Calculate the phase compensation amount using the piecewise nonlinear mapping model based on the current motor speed and the excitation reference frequency; Specifically, firstly, the current excitation reference frequency fexc is determined based on the frequency of the digitized excitation reference signal obtained in S101. Then, based on the current motor speed n obtained in S102, the segment interval to which n belongs is determined.
[0063] If n is less than or equal to n1, the phase compensation is calculated using the low-speed segment mapping function φcorr = k1 / n + b1. For example, when n is 20 revolutions per minute, k1 is 15, and b1 is 0.5, φcorr = 15 / 20 + 0.5 = 1.25 degrees.
[0064] If n is greater than n1 and less than or equal to n2, then the transition segment mapping function φcorr = k2 * (n2 - n) is used. 2 / (n2 - n1) 2 + b2 calculates the phase compensation amount. For example, when n is 40 revolutions per minute, n1 is 30 revolutions per minute, n2 is 50 revolutions per minute, k2 is 1.0, and b2 is 0.2, φcorr = 1.0 * (50 - 40) 2 / (50 - 30) 2 + 0.2 = 1.0 *100 / 400 + 0.2 = 0.45 degrees.
[0065] If n is greater than n² and less than or equal to a preset threshold, the phase compensation amount is calculated using the low-to-medium speed range mapping function φcorr = k3 * n + b3. For example, when n is 80 revolutions per minute, k3 is -0.002, and b3 is 0.3, φcorr = -0.002 * 80 + 0.3 = 0.14 degrees.
[0066] Furthermore, the phase compensation amount is also related to the excitation reference frequency. When the excitation reference frequency fexc deviates from the nominal frequency, the calculated phase compensation amount is frequency corrected. Let the nominal excitation frequency be f0, and the frequency correction coefficient be αf = fexc / f0. The corrected phase compensation amount φcorr' = φcorr * αf. In the formula, φcorr' is the phase compensation amount after frequency correction, φcorr is the phase compensation amount calculated by the piecewise mapping model, αf is the frequency correction coefficient, fexc is the current excitation reference frequency, and f0 is the nominal excitation frequency. For example, when the nominal excitation frequency is 10kHz and the actual excitation frequency is 10.5kHz, αf is 1.05. If the piecewise mapping calculation yields φcorr of 1.0 degree, then the corrected φcorr' is 1.05 degrees.
[0067] S4003, Configure the coefficients of the second-order all-pass phase correction network according to the phase compensation amount, and perform phase correction on the bias-corrected sine and cosine signals through the configured second-order all-pass phase correction network.
[0068] Specifically, the second-order all-pass phase correction network adopts a double second-order section structure, and its transfer function is:
[0069] In the formula, H(z) is the z-domain transfer function of the all-pass network, z -1 Here, a1 and a2 are the unit delay operators and the filter coefficients. This transfer function maintains a gain of 1 across the entire frequency range, changing only the phase characteristics of the signal; therefore, it is called an all-pass network.
[0070] The filter coefficients a1 and a2 are configured based on the phase compensation amount φcorr'. Let the sampling frequency be fs and the excitation reference frequency be fexc, then the digital angular frequency ω = 2π * fexc / fs. Where ω is the digital angular frequency, fexc is the excitation reference frequency, and fs is the sampling frequency. The second-order all-pass network generates the phase compensation amount φcorr' at frequency ω, and the corresponding filter coefficients satisfy: a1 = -2 * cos(ω + φcorr' / 2) / (1 + tan(φcorr' / 2)) a2 = (1 - tan(φcorr' / 2)) / (1 + tan(φcorr' / 2)) In the formula, a1 and a2 are filter coefficients, ω is the digital angular frequency, and φcorr' is the phase compensation amount after frequency correction.
[0071] For example, when the sampling frequency fs is 640kHz, the excitation frequency fexc is 10kHz, the digital angular frequency ω is 0.0982 radians, and the phase compensation φcorr' is 1.0 degree (0.0175 radians), the calculated tan(φcorr' / 2) is approximately 0.0087, a1 is approximately -1.902, and a2 is approximately 0.983.
[0072] The bias-corrected sine signal ssc and cosine signal scc obtained from S3004 are input into the configured second-order all-pass phase correction network, respectively. Each of the sine and cosine channels uses an independent second-order all-pass network. The filter coefficients of both networks are configured based on the same phase compensation amount, but with opposite signs, to compensate for the orthogonal phase error between the sine and cosine signals. Let the output of the sine channel all-pass network be ssp, and the output of the cosine channel all-pass network be scp, then: ssp = a2 * ssc + a1 * sscprev + sscprev2 - a1 * sspprev - a2 *sspprev2; scp = a2 * scc + a1 * sccprev + sccprev2 - a1 * scpprev - a2 *scpprev2; In the formula, ssp is the phase-corrected sine signal, scp is the phase-corrected cosine signal, ssc and scc are the bias-corrected signals of the current input, sscprev and sccprev are the input signals of the previous sampling time, sscprev2 and sccprev2 are the input signals of the previous two sampling times, sspprev and scpprev are the output signals of the previous sampling time, sspprev2 and scpprev2 are the output signals of the previous two sampling times, and a1 and a2 are the filter coefficients.
[0073] After processing by a second-order all-pass phase correction network, the phase difference between the sine and cosine signals approaches the ideal 90 degrees, and the phase disturbance caused by sampling jitter is suppressed. The phase-corrected sine signal ssp and cosine signal scp are the compensated sine and cosine signals, which are then fed into a subsequent phase-locked loop for angle calculation.
[0074] Based on this, pure phase correction is achieved through a second-order all-pass phase correction network, without changing the signal amplitude, thus avoiding interference with the amplitude normalization results already completed by the S3004. It is precisely because the all-pass network maintains a constant amplitude gain across the entire frequency range that amplitude correction and phase correction can be cascaded without affecting each other. Furthermore, the use of a second-order structure instead of a first-order structure gives the all-pass phase correction network a steeper phase change slope near the excitation frequency, enabling it to correct narrowband phase distortion in the resolver signal caused by quadrature phase errors and sampling jitter.
[0075] S105 inputs the compensated sine and cosine signals into the phase-locked loop for angle calculation and outputs the calculated angle and angle error. Specifically, the phase-corrected sine signal ssp and cosine signal scp are input into the phase-locked loop (PLL). The PLL consists of four cascaded stages: a phase detector, a loop filter, a voltage-controlled oscillator (VCO), and an angle calculation unit. It extracts the angle information from the resolver output signal through a closed-loop phase-locking mechanism and outputs the calculated angle and angle error.
[0076] Furthermore, the phase-locked loop includes a phase detector, a loop filter, a voltage-controlled oscillator, and an angle calculation unit; In S105, the step of inputting the compensated sine and cosine signals into the phase-locked loop for angle calculation includes: The loop filter is a speed-adaptive variable bandwidth structure, which adaptively adjusts the loop bandwidth according to the current motor speed. The lower the speed, the narrower the loop bandwidth. The phase detector performs phase detection on the compensated sine and cosine signals, the loop filter filters the detection results, the voltage-controlled oscillator outputs an oscillation signal based on the filtering results, and the angle calculation unit generates the calculated angle based on the oscillation signal and calculates the angle error.
[0077] Specifically, the phase detector receives the compensated sine signal ssp and the compensated cosine signal scp. The phase detector employs an orthogonal signal multiplication phase detection structure, multiplying the input sine and cosine signals with the local sine and cosine signals fed back from the voltage-controlled oscillator (VCO) to obtain the phase error signal. Let the local sine signal output by the VCO be sin(θlo), and the local cosine signal be cos(θlo), where θlo is the local oscillation angle. The phase detector performs the following operations: epd = ssp * cos(θlo) - scp * sin(θlo) In the formula, epd is the original phase error signal output by the phase detector, ssp is the compensated sine signal, scp is the compensated cosine signal, and θlo is the local oscillation angle. When the local oscillation angle θlo is close to the actual angle θ, ssp is approximately equal to Asin(θ), and scp is approximately equal to Acos(θ), where A is the signal amplitude. At this time, the original phase error signal epd is approximately equal to A*sin(θ - θlo), which is proportional to the angle difference, thus realizing the phase detection function.
[0078] For example, when the actual angle θ is 30 degrees, the local oscillation angle θlo is 29 degrees, and the signal amplitude A is 1.0, ssp is approximately 0.500, scp is approximately 0.866, sin(θlo) is approximately 0.485, and cos(θlo) is approximately 0.875. Then epd is approximately equal to 0.500 × 0.875 - 0.866 × 0.485 = 0.438 - 0.420 = 0.018. This value is proportional to the angle difference of 1 degree and reflects the deviation between the local oscillation angle and the actual angle.
[0079] The loop filter is a speed-adaptive variable bandwidth structure that adjusts the loop bandwidth adaptively according to the current motor speed. The lower the speed, the narrower the loop bandwidth.
[0080] Specifically, the loop filter adopts a proportional-integral (PI) structure, and its transfer function is F(s) = Kp + Ki / s. In this formula, F(s) is the s-domain transfer function of the loop filter, Kp is the proportional gain coefficient, Ki is the integral gain coefficient, and s is the Laplace operator. The proportional and integral gain coefficients are adaptively adjusted according to the current motor speed.
[0081] Let the current motor speed be n, in revolutions per minute. The relationship between the proportional gain coefficient Kp and the speed is Kp = Kp0 * (n / nref) β In the formula, Kp0 is the proportional gain coefficient at the reference speed, nref is the reference speed, and β is the proportional gain speed exponent. The integral gain coefficient Ki is related to the speed as Ki = Ki0 * (n / nref) γ In the formula, Ki0 is the integral gain coefficient at the reference speed, and γ is the integral gain speed index.
[0082] The loop bandwidth BL is related to the proportional gain coefficient and approximately satisfies BL = Kp / (2π). In this formula, BL is the loop bandwidth in Hertz. Since Kp decreases with decreasing rotational speed, the loop bandwidth narrows as rotational speed decreases.
[0083] For example, when the reference speed nref is 50 revolutions per minute, the reference proportional gain coefficient Kp0 is 100, and the proportional gain speed index β is 0.5, the Kp corresponding to a speed of 50 revolutions per minute is 100, and the loop bandwidth is approximately 15.9 Hz; the Kp corresponding to a speed of 25 revolutions per minute is 70.7, and the loop bandwidth is approximately 11.3 Hz; and the Kp corresponding to a speed of 10 revolutions per minute is 44.7, and the loop bandwidth is approximately 7.1 Hz.
[0084] The lower the rotational speed, the narrower the loop bandwidth, which gives the phase-locked loop a stronger ability to suppress high-frequency phase disturbances introduced by sampling jitter in the low-speed range. At the same time, the integral gain coefficient also decreases with the decrease in rotational speed, avoiding phase-lock instability caused by integral saturation under narrow bandwidth conditions.
[0085] The phase detector performs phase detection on the compensated sine and cosine signals, and the loop filter filters the detection results.
[0086] Specifically, the original phase error signal epd output by the phase detector is first normalized to eliminate the influence of signal amplitude fluctuations on the phase detection sensitivity. The normalized phase error signal epd_norm = epd / Aest. In the formula, epd_norm is the normalized phase error signal, epd is the original phase error signal, and Aest is the estimated signal amplitude, determined by the amplitude normalization result of S3004.
[0087] The normalized phase error signal epd_norm is input to the loop filter. The loop filter, based on the adaptively configured proportional gain coefficient Kp and integral gain coefficient Ki for the current speed, performs a proportional-integral operation on epd_norm and outputs the filtered control voltage ulf. The discrete form of the proportional-integral operation is:
[0088] In the formula, u lf (k) represents the control voltage output by the loop filter at time k, epd_norm(k) represents the normalized phase error signal at time k, and Ts represents the sampling time interval. This is the cumulative sum of the phase error signals from the initial time to time k.
[0089] For example, when Kp is 70.7, Ki is 10.0, the sampling time interval Ts is 1.5625 microseconds, the current epd_norm is 0.018, and the historical cumulative error sum is 2.5, the control voltage ULF is approximately 70.7 * 0.018 + 10.0 * 1.5625 * e^(-6 * 2.5) = 1.273 + 0.000039 = 1.273.
[0090] The voltage-controlled oscillator outputs an oscillation signal based on the filtering result.
[0091] Specifically, the voltage-controlled oscillator (VCO) adjusts its local oscillation angular frequency ωlo based on the control voltage ulf output from the loop filter. The VCO's angular frequency adjustment relationship is ωlo = ω0 + Kvco * ulf. Where ωlo is the local oscillation angular frequency, ω0 is the free oscillation angular frequency, Kvco is the VCO gain coefficient, and ulf is the control voltage output from the loop filter.
[0092] The free oscillation angular frequency ω0 is determined based on the current motor speed and the number of motor pole pairs estimated by S102. Let the number of motor pole pairs be P, and the current motor speed be n, then ω0 = 2π * P * n / 60. In this formula, ω0 is the free oscillation angular frequency in radians per second, P is the number of motor pole pairs, and n is the current motor speed. For example, when the number of motor pole pairs P is 4 and the speed n is 25 revolutions per minute, ω0 is 10.47 radians per second, corresponding to a frequency of approximately 1.67 Hz.
[0093] The gain coefficient Kvco of the voltage-controlled oscillator is set according to the loop dynamic range. For example, when Kvco is 10 radians per second per volt, the angular frequency adjustment corresponding to the above control voltage of 1.273 volts is 12.73 radians per second, and the local oscillation angular frequency ωlo is approximately 23.2 radians per second.
[0094] The update formula for the local oscillation angle θlo output by the voltage-controlled oscillator is θlo(k+1) = θlo(k) + ωlo *Ts. In this formula, θlo(k+1) is the local oscillation angle at time k+1, θlo(k) is the local oscillation angle at time k, ωlo is the local oscillation angular frequency, and Ts is the sampling time interval. Simultaneously, the voltage-controlled oscillator outputs a local sine signal sin(θlo) and a local cosine signal cos(θlo), which are fed back to the front end of the phase detector, forming a closed loop.
[0095] The angle calculation unit generates the calculated angle based on the oscillation signal and calculates the angle error.
[0096] Specifically, the angle calculation unit directly reads the local oscillation angle θlo output by the voltage-controlled oscillator as the calculated angle θout. That is, θout = θlo. In the formula, θout is the calculated angle, and θlo is the local oscillation angle.
[0097] The angle error eang is calculated by comparing the solved angle with the desired angle. Under steady-state tracking conditions, the angle error is equal to the normalized phase error signal epd_norm output by the phase detector, i.e., eang = epd_norm. In this equation, eang is the angle error, and epd_norm is the normalized phase error signal. This angle error characterizes the instantaneous deviation between the local oscillation angle of the phase-locked loop and the actual resolver angle, and is expressed in radians.
[0098] For example, when the calculated angle θout is 29 degrees and the actual angle is 30 degrees, the angle error eang is approximately 0.0175 radians, or 1 degree. This angle error is output to S106 for feedback-driven adaptive compensator parameter updates.
[0099] Based on this, this embodiment uses a speed-adaptive variable bandwidth phase-locked loop (PLL) to calculate the angle. Because the loop bandwidth automatically narrows as the speed decreases, the PLL can effectively suppress high-frequency phase disturbances introduced by sampling jitter in the low-speed range, while maintaining its ability to track slow angle changes in the motor. The proportional-integral (PI) loop filter balances tracking speed and steady-state accuracy, and the voltage-controlled oscillator (VCO) presets a free oscillation frequency based on the motor speed, shortening the PLL's acquisition time and enabling rapid phase locking even at extremely low motor speeds or near zero speed.
[0100] S106 feeds the angle error back to the adaptive compensator, integrates the error features to update the compensation parameters, and iteratively compensates for the sine and cosine output signal errors until convergence.
[0101] Specifically, the angle error output by the angle calculation unit is fed back to the front end of the adaptive compensator. The adaptive compensator receives the angle error, the error features extracted by S102, and the current operating parameters, and generates compensation parameter update instructions through fusion calculation. These instructions drive the parameter adjustments of the Kalman filter branch and the all-pass phase correction network branch, respectively, forming a closed-loop iterative compensation.
[0102] Furthermore, in S106, the step of feeding back the angle error to the adaptive compensator and fusing error features to update the compensation parameters includes: Based on the current motor speed, signal-to-noise ratio, and angle error range, dynamic feedback weights are assigned to the Kalman filter branch and the all-pass phase correction network branch, and the sum of the two weights is a fixed value.
[0103] Specifically, the current motor speed n is obtained from S102. The signal-to-noise ratio (SNR) is calculated from the signal sampled in S101. The angle error eang is obtained from S105. The motor speed is compared with a preset threshold, where the first proportion of the preset threshold is the speed boundary value obtained by multiplying the preset threshold by a preset proportional coefficient. When the motor speed is lower than the first proportion of the preset threshold, it is determined to be in the low-speed range; when the motor speed is higher than the first proportion of the preset threshold but lower than the preset threshold, it is determined to be in the medium-low speed range.
[0104] The signal-to-noise ratio (SNR) is compared with a preset lower SNR limit. If the SNR is lower than the preset lower SNR limit, it is determined to be in a low SNR range; if the SNR is higher than the preset lower SNR limit, it is determined to be in a high SNR range. The angle error is compared with a preset error threshold. If the angle error is greater than the preset error threshold, it is determined to be in a large error range; if the angle error is less than or equal to the preset error threshold, it is determined to be in a normal error range.
[0105] Let wk be the feedback weight of the Kalman filter branch and wp be the feedback weight of the all-pass phase correction network branch. The sum of the two weights is a fixed value, satisfying wk + wp = C. In this formula, wk is the feedback weight of the Kalman filter branch, wp is the feedback weight of the all-pass phase correction network branch, and C is the fixed weight sum, usually taken as 1. Based on the given interval combination, wk is obtained from a preset weight allocation table, and wp is obtained by subtracting wk from the fixed weight sum C.
[0106] When the motor speed is lower than the preset threshold first ratio and the signal-to-noise ratio is lower than the preset lower limit of signal-to-noise ratio, the feedback weight of the Kalman filter branch is greater than the feedback weight of the all-pass phase correction network branch.
[0107] Specifically, when the motor speed is in the low-speed range and the signal-to-noise ratio (SNR) is in the low-SNR range, the random noise component in the amplitude bias coupling error dominates. Since the Kalman filter has optimal linear estimation characteristics and stronger random noise suppression capability than the all-pass phase correction network, the feedback weights of the Kalman filter branches are set to be greater than those of the all-pass phase correction network branches. For example, if wk is found to be 0.85 from the table, then wp is 0.15, satisfying the condition that wk is greater than wp.
[0108] The specific effect of increasing the feedback weights of the Kalman filter branches is to increase the adjustment magnitude of the angle error on the process noise covariance matrix and the observation noise covariance matrix of the Kalman filter. Let the adjustment coefficient after weight increase be αk = 1 + βk × wk. In the formula, αk is the adjustment coefficient of the Kalman branch, and βk is the weight gain coefficient of the Kalman branch, which is taken as a preset fixed value. The updated process noise covariance matrix Qk' = Qk × αk, and the updated observation noise covariance matrix Rk' = Rk / αk. In the formula, Qk' is the updated process noise covariance matrix, Rk' is the updated observation noise covariance matrix, Qk is the original process noise covariance matrix, and Rk is the original observation noise covariance matrix. By increasing Qk' and decreasing Rk', the Kalman filter trusts the observation values more in the current iteration, accelerating the tracking convergence of the amplitude bias coupling error.
[0109] When the angle error is greater than the preset error threshold and the motor speed is higher than the first proportion of the preset threshold but lower than the preset threshold, the feedback weight of the all-pass phase correction network branch is greater than the feedback weight of the Kalman filter branch.
[0110] Specifically, when the angle error is in the larger error range and the motor speed is in the low-to-medium speed range, the quadrature phase error and sampling jitter error become the main contributors to the angle error, while the amplitude offset error is close to convergence. Since the all-pass phase correction network specifically handles phase domain distortion, the feedback weights of the all-pass phase correction network branches are set to be greater than the feedback weights of the Kalman filter branches. For example, if wp is found to be 0.80 from the table, then wk is 0.20, satisfying the condition that wp is greater than wk.
[0111] The specific effect of increasing the feedback weights of the all-pass phase correction network branches is to increase the adjustment range of the phase compensation amount output by the piecewise nonlinear mapping model due to the angle error. Let the corrected phase compensation amount after weight increase be Δφ = γp × wp × eang. In the formula, Δφ is the corrected phase compensation amount, γp is the error gain coefficient of the all-pass branch, which is taken as a preset fixed value, and eang is the angle error. The updated phase compensation amount φcorr' = φcorr + Δφ. In the formula, φcorr' is the updated phase compensation amount, and φcorr is the original phase compensation amount. By increasing the phase compensation amount, the all-pass phase correction network strengthens the correction of phase distortion in the current iteration.
[0112] The compensation parameters are iteratively updated based on the assigned dynamic feedback weights.
[0113] Specifically, after weight allocation and branch adjustment, the updated process noise covariance matrix Qk' and observation noise covariance matrix Rk' are sent to S3002, replacing the original Qk and Rk, for use in the Kalman filtering of the next iteration cycle. The updated phase compensation amount φcorr' is sent to S4002, replacing the original φcorr, for use in the all-pass phase correction network coefficient configuration of the next iteration cycle. The above replacement operation is performed once in each iteration cycle, forming a dynamic iterative update of the compensation parameters.
[0114] Furthermore, in S106, the iterative compensation of the sine and cosine output signal errors until convergence includes: After each iteration, the fluctuation range of the angle error within multiple consecutive electrical cycles is calculated; the signal-to-noise ratio is divided into at least two signal-to-noise ratio intervals, with different basic cumulative periods and maximum cumulative period upper limits corresponding to different signal-to-noise ratio intervals; it is determined whether the fluctuation range is less than a preset error range, and if so, convergence is determined; if convergence is determined not to be achieved, the number of electrical cycles for period accumulation is adjusted according to the current signal-to-noise ratio interval, and the decoupling operation is re-executed.
[0115] Specifically, the angle error sequence within the current iteration cycle is obtained from S105. Let M be the number of continuously counted electrical cycles, and let N be the number of sampling points in each electrical cycle, where N is determined to be 64 by S101. Starting from the current iteration cycle, the angle error eang within M electrical cycles is continuously collected. The maximum value emax and minimum value emin of the angle error within these M cycles are calculated. The fluctuation range Δe is defined as the difference between the maximum and minimum values, i.e., Δe = emax - emin. Where Δe is the angle error fluctuation range, emax is the maximum angle error within M cycles, and emin is the minimum angle error within M cycles. For example, when M is 10, and the angle errors in 10 consecutive cycles are 0.015, 0.012, 0.018, 0.010, 0.014, 0.016, 0.011, 0.013, 0.017, and 0.012 radians respectively, emax is 0.018 radians, emin is 0.010 radians, and the fluctuation range Δe is 0.008 radians.
[0116] The signal-to-noise ratio (SNR) is calculated from the signal sampled from S101. The SNR is divided into two ranges. The first range is the high SNR range, where SNR is greater than SNRth. The second range is the low SNR range, where SNR is less than or equal to SNRth. In the formula, SNRth is the SNR range threshold, obtained based on the signal quality calibration of the low-speed section of the rotary transformer, and is typically a fixed value between 20 and 30 dB. For example, SNRth is set to 25 dB.
[0117] For the high signal-to-noise ratio (SNR) range, the basic accumulation period Lbaseh is an integer between 8 and 16, and the maximum accumulation period upper limit Lmaxh is an integer between 16 and 32. For example, Lbaseh is 8 and Lmaxh is 16. For the low SNR range, the basic accumulation period Lbasel is an integer between 16 and 32, and the maximum accumulation period upper limit Lmaxl is an integer between 32 and 64. For example, Lbasel is 16 and Lmaxl is 32. The basic accumulation period is the initial number of periods accumulated in S102. The maximum accumulation period upper limit is the maximum number of periods allowed for period accumulation in S102, preventing the accumulation period from increasing indefinitely and causing compensation delay.
[0118] The preset error range Δeth is set based on the angle accuracy requirements of the low-speed segment. For example, when the required angle error in the low-speed segment is less than 0.1 degrees, the preset error range Δeth is set to 0.002 radians, approximately equal to 0.115 degrees. The judgment condition is that Δe is less than Δeth. If this condition is met, the iteration is considered converged, the compensation process ends, and the compensation parameters obtained in the current iteration are retained as steady-state compensation parameters. For example, when the calculated fluctuation range Δe is 0.008 radians and the preset error range Δeth is 0.002 radians, 0.008 is greater than 0.002, so the iteration is considered non-converged, and subsequent adjustment steps continue.
[0119] When convergence is not determined, the current signal-to-noise ratio (SNR) interval is read. If the current cumulative period L is less than the maximum cumulative period Lmax of the corresponding interval, the cumulative period L is increased by ΔL. Here, ΔL is the cumulative period increment, taken as half of the base cumulative period Lbase. For example, when in a low SNR interval, Lbasel is 16, the current L is 16, and Lmaxl is 32, ΔL is 8, and the updated L is 24. If the current cumulative period L has reached the maximum cumulative period Lmax, L is kept at Lmax and not increased further. At this time, the operation window length of the delay autocorrelation algorithm in S102 is synchronously increased to match the increased cumulative period and improve the estimation accuracy of sampling jitter error.
[0120] After adjusting the periodic cumulative number, return to S2002 to re-execute the decoupling operation. Upon return, substitute the updated periodic cumulative number L and the operation window length into S102 and S2001 to reconstruct the periodic cumulative signal sequence and the error decoupling matrix, and begin a new round of iterative compensation.
[0121] Furthermore, the method also includes: If the current motor speed is below the preset threshold and it is not in the low-speed compensation mode, then it enters the low-speed compensation mode. If the current motor speed is higher than the sum of the preset threshold and the preset hysteresis bandwidth, then exit the low-speed compensation mode and enter the normal calculation mode. When entering the low-speed compensation mode, the state estimate of the Kalman filter and the coefficients of the all-pass phase correction network are initialized with weighted gradual smoothing according to a preset number of smoothing steps; when exiting the low-speed compensation mode, the compensation parameters obtained in the last iteration are latched as the initial parameters when entering the low-speed compensation mode again.
[0122] Specifically, when the system powers on or operates normally, it initially enters the non-low-speed compensation mode, i.e., the conventional calculation mode. In this mode, the sine and cosine signals synchronously acquired by S101 are directly input into the conventional angle calculation unit, bypassing the error feature extraction, decoupling operation, cascade compensation, and iterative convergence process of S102 to S106. The conventional calculation unit uses a fixed-parameter arctangent lookup table method to calculate the angle based on the instantaneous values of the sine and cosine signals, suitable for high-speed conditions where the motor speed exceeds a preset threshold.
[0123] The system monitors the current motor speed n in real time. When the motor decelerates from or starts from a high speed, if the current motor speed n is lower than a preset threshold nth, a mode switch is triggered, entering the low-speed compensation mode. For example, the preset threshold nth is 50 revolutions per minute. When the speed n is detected to drop from 60 revolutions per minute to 48 revolutions per minute, 48 is less than 50, and the entry condition is met. The system then switches from the non-low-speed compensation mode to the low-speed compensation mode.
[0124] When entering the low-speed compensation mode, a weighted gradual smooth initialization is performed on the state estimate of the Kalman filter and the coefficients of the all-pass phase correction network.
[0125] Specifically, when entering the low-speed compensation mode, if zero initial value or arbitrary initial value is used directly, the Kalman filter needs a long convergence time to reach a stable state estimate, and the all-pass phase correction network also needs multiple iterations to configure the appropriate filter coefficients, resulting in jumps or jitters in the angle output during the switching process.
[0126] To avoid the aforementioned problems, a weighted gradual smoothing initialization is adopted. Let the number of gradual smoothing steps be K, an integer between 10 and 20. In the k-th smoothing step, the initial value xinit(k) of the Kalman filter state estimate is composed of two weighted parts: one part is the state estimate xreg recorded in the last recorded state under the normal solution mode, and the other part is the expected initial state estimate xlow under the low-speed compensation mode. The weighting relationship is as follows: xinit(k) = (1 - k / K) * xreg + (k / K) * xlow In the formula, xinit(k) is the initial state estimate of the k-th smoothing step, k is the current smoothing step number (an integer between 1 and K), K is the total number of smoothing steps, xreg is the state estimate under the conventional solution mode, and xlow is the expected initial state estimate under the low-speed compensation mode. As k increases from 1 to K, the weights gradually shift from being dominated by xreg to being dominated by xlow, achieving a smooth change in the state estimate.
[0127] For example, when K is 15, xreg is [0.010, 0.005, 0.008]. T xlow is At that time, the initial value of the first smoothing step is 0.933xreg + 0.067xlow, approximately [0.012, 0.006, 0.009]. T The initial value for the 8th smoothing step is 0.467xreg + 0.533xlow, approximately [0.026, 0.011, 0.016]. TThe initial value for the 15th smoothing step is xlow, which is [0.040, 0.017, 0.023]. T .
[0128] The smooth initialization of the all-pass phase correction network coefficients follows the same principle. Let the last recorded filter coefficient in the normal solution mode be areg, and the expected initial filter coefficient in the low-speed compensation mode be alow. The initial value of the filter coefficient in the k-th smoothing step is ainit(k) = (1 - k / K) * areg + (k / K) * alow. Where ainit(k) is the initial value of the filter coefficient in the k-th smoothing step, areg is the filter coefficient in the normal solution mode, and alow is the expected initial filter coefficient in the low-speed compensation mode. This gradual transition avoids angle output jumps caused by abrupt changes in the phase correction amount.
[0129] If the current motor speed is higher than the sum of the preset threshold and the preset hysteresis bandwidth, then exit the low-speed compensation mode and enter the normal calculation mode.
[0130] Specifically, the preset hysteresis bandwidth Δnh is a fixed value between 5 and 15 revolutions per minute. For example, Δnh is set to 10 revolutions per minute. The exit condition is that the current motor speed n is higher than nth + Δnh, which is higher than 60 revolutions per minute. When the motor accelerates from the low speed range, if the speed n increases from 48 revolutions per minute to 62 revolutions per minute, 62 is greater than 60, and the exit condition is met. The system then switches from the low speed compensation mode to the normal calculation mode.
[0131] Setting the hysteresis bandwidth avoids frequent switching between low-speed compensation mode and normal calculation mode when the motor speed fluctuates around a preset threshold. For example, when the speed fluctuates between 48 and 52 rpm, without hysteresis bandwidth, a mode switch will be triggered every time the speed crosses the 50 rpm threshold; however, with a hysteresis bandwidth of 10 rpm, the system only exits when the speed rises above 60 rpm and only enters when the speed drops below 50 rpm, effectively suppressing mode oscillation.
[0132] When exiting the low-speed compensation mode, the compensation parameters obtained from the last iteration are latched and used as the initial parameters when entering the low-speed compensation mode again.
[0133] Specifically, before exiting the low-speed compensation mode, the current state estimate of the Kalman filter, xfinal, and the filter coefficients afinal of the all-pass phase correction network are read. xfinal and afinal are stored in non-volatile memory or cache respectively, and marked as the initial parameters of the low-speed compensation mode.
[0134] Let xfinal be [0.035, 0.015, 0.020].T afinal is [-1.892, 0.978]. Upon exiting, these values are written to memory. The next time the low-speed compensation mode is entered, the stored xfinal and afinal are directly read as xlow and alow, replacing the default expected initial values, for weighted gradual smoothing initialization.
[0135] This latching mechanism allows the system to re-enter the low-speed compensation mode and begin iterating from the vicinity of the previously converged compensation parameters, significantly shortening the convergence time. For example, without parameter latching, each time the system enters the low-speed compensation mode, it requires approximately 20 to 30 cycles of re-iteration from the initial value to converge; with parameter latching, since the initial value is close to steady state, convergence is typically achieved in only 5 to 10 cycles, and the angle output fluctuation amplitude during the switching process is reduced by approximately 60% to 70%.
[0136] Secondly, this embodiment also proposes a closed-loop control system for nonlinear error compensation in the low-speed range of the resolver output signal, such as... Figure 5 As shown, it includes: Acquisition module 501 is used to synchronously acquire the sine and cosine output signals and excitation reference signals of the rotary transformer; The extraction module 502 enters the low-speed compensation mode in response to the motor speed being lower than the preset threshold. In the low-speed compensation mode, it extracts the instantaneous deviation of the amplitude of the sine and cosine output signals, the DC bias, the quadrature phase error and the sampling jitter error, and performs decoupling operation on the periodic cumulative signal sequence to separate the amplitude bias coupling error and the phase sampling jitter coupling error. The bias correction module 503 uses a time-varying noise matrix Kalman filter to perform amplitude normalization and bias correction on the sine and cosine output signals. The process noise covariance matrix and observation noise covariance matrix of the Kalman filter are dynamically updated according to the current motor speed and signal-to-noise ratio. The phase correction module 504, based on the piecewise nonlinear mapping model between the excitation reference frequency and the motor speed, configures the coefficients of the second-order all-pass phase correction network to complete the phase correction and obtain the compensated sine and cosine signals. The calculation module 505 inputs the compensated sine and cosine signals into the phase-locked loop for angle calculation and outputs the calculated angle and angle error. The iterative compensation module 506 feeds back the angle error to the adaptive compensator, integrates the error features to update the compensation parameters, and iteratively compensates for the sine and cosine output signal errors until convergence. This system can be used to perform the low-speed nonlinear error compensation method for the resolver output signal described in the first aspect, which will not be elaborated further here.
[0137] The above description is merely an embodiment of this application and is not intended to limit the scope of protection of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A method for compensating for nonlinear errors in the low-speed range of a resolver output signal, characterized in that, include: Synchronously acquire the sine and cosine output signals of the rotary transformer and the excitation reference signal; When the motor speed is lower than a preset threshold, it enters low-speed compensation mode. In the low-speed compensation mode, the instantaneous deviation of the amplitude of the sine and cosine output signals, the DC bias, the quadrature phase error and the sampling jitter error are extracted. The decoupling operation is performed on the periodic cumulative signal sequence to separate the amplitude bias coupling error and the phase sampling jitter coupling error. A time-varying noise matrix Kalman filter is used to normalize the amplitude and correct the bias of the sine and cosine output signals. The process noise covariance matrix and the observation noise covariance matrix of the Kalman filter are dynamically updated according to the current motor speed and signal-to-noise ratio. Based on the piecewise nonlinear mapping model between excitation reference frequency and motor speed, the coefficients of a second-order all-pass phase correction network are configured to complete phase correction and obtain the compensated sine and cosine signals. The compensated sine and cosine signals are input into the phase-locked loop for angle calculation, and the calculated angle and angle error are output. The angle error is fed back to the adaptive compensator, the error characteristics are fused to update the compensation parameters, and the error of the sine and cosine output signals is iteratively compensated until convergence.
2. The method for compensating for low-speed nonlinear errors in the resolver output signal according to claim 1, characterized in that, The extraction of the sampling jitter error includes: In the low-speed compensation mode, the sine and cosine output signals within multiple electrical cycles are periodically accumulated to obtain a periodically accumulated signal sequence. Based on the ratio of the current motor speed to the preset speed reference value, the delay order and operation window length of the delay autocorrelation algorithm are determined, and autocorrelation operation is performed on the periodic cumulative signal sequence to estimate the sampling jitter error; Outlier removal is performed on the autocorrelation calculation results to obtain the sampling jitter error after outlier removal.
3. The method for compensating for low-speed nonlinear errors in the resolver output signal according to claim 2, characterized in that, The method of using a time-varying noise matrix Kalman filter to perform amplitude normalization and bias correction on the sine and cosine output signals includes: Construct the state vector of the Kalman filter, the state vector including the magnitude ratio dynamic deviation and the bias drift rate; Based on the current motor speed and signal-to-noise ratio, the process noise covariance matrix and observation noise covariance matrix of the Kalman filter are dynamically updated to form a time-varying parameter Kalman filter; The state estimation result is obtained by performing state prediction and state update on the sine and cosine output signals through the time-varying parameter Kalman filter. Amplitude normalization and bias correction are performed based on the state estimation results.
4. The method for compensating for low-speed nonlinear errors in the resolver output signal according to claim 1, characterized in that, The decoupling operation on the periodic cumulative signal sequence includes: An error decoupling matrix is constructed based on the instantaneous amplitude deviation, DC bias, quadrature phase error, and sampling jitter error in the periodic cumulative signal sequence. Decoupling operations are performed using the aforementioned error decoupling matrix to separate the mutually independent amplitude bias coupling error and phase sampling jitter coupling error. The amplitude bias coupling error is fed into the Kalman filter branch, and the phase sampling jitter coupling error is fed into the all-pass phase correction network branch.
5. The method for compensating for low-speed nonlinearity error in the resolver output signal according to claim 4, characterized in that, The piecewise nonlinear mapping model based on excitation reference frequency and motor speed, configured with second-order all-pass phase correction network coefficients, includes: A piecewise nonlinear mapping model between the excitation reference frequency and the motor speed is established in advance; Based on the current motor speed and the excitation reference frequency, the phase compensation amount is calculated using the piecewise nonlinear mapping model. Configure the coefficients of the second-order all-pass phase correction network according to the phase compensation amount, and perform phase correction on the bias-corrected sine and cosine signals through the configured second-order all-pass phase correction network.
6. The method for compensating for low-speed nonlinear errors in the resolver output signal according to claim 1, characterized in that, The phase-locked loop includes a phase detector, a loop filter, a voltage-controlled oscillator, and an angle calculation unit; The step of inputting the compensated sine and cosine signals into the phase-locked loop for angle calculation includes: The loop filter is a speed-adaptive variable bandwidth structure, which adaptively adjusts the loop bandwidth according to the current motor speed. The lower the speed, the narrower the loop bandwidth. The phase detector performs phase detection on the compensated sine and cosine signals, the loop filter filters the detection result, the voltage-controlled oscillator outputs an oscillation signal based on the filtering result, and the angle calculation unit generates the calculated angle and calculates the angle error based on the oscillation signal.
7. The method for compensating for low-speed nonlinearity error of resolver output signal according to claim 6, characterized in that, The step of feeding back the angle error to the adaptive compensator and fusing error features to update the compensation parameters includes: Based on the current motor speed, signal-to-noise ratio, and angle error range, dynamic feedback weights are assigned to the Kalman filter branch and the all-pass phase correction network branch, and the sum of the two weights is a fixed value. When the motor speed is lower than the first preset threshold and the signal-to-noise ratio is lower than the preset lower limit of signal-to-noise ratio, the feedback weight of the Kalman filter branch is greater than the feedback weight of the all-pass phase correction network branch. When the angle error is greater than the preset error threshold and the motor speed is higher than the first proportion of the preset threshold but lower than the preset threshold, the feedback weight of the full-pass phase correction network branch is greater than the feedback weight of the Kalman filter branch. The compensation parameters are iteratively updated based on the assigned dynamic feedback weights.
8. The method for compensating for low-speed nonlinear errors in the resolver output signal according to claim 1, characterized in that, The iterative compensation of the sine and cosine output signal errors until convergence includes: After each iteration, the fluctuation range of the angle error over multiple consecutive electrical cycles is calculated; The signal-to-noise ratio is divided into at least two signal-to-noise ratio ranges, with different signal-to-noise ratio ranges corresponding to different basic accumulation periods and upper limits of maximum accumulation periods. If the fluctuation range is less than the preset error range, convergence is determined; if convergence is not determined, the number of accumulated electrical cycles is adjusted according to the current signal-to-noise ratio range, and the decoupling operation is re-executed.
9. The method for compensating for low-speed nonlinear errors in the resolver output signal according to claim 1, characterized in that, The method further includes: If the current motor speed is below the preset threshold and it is not in the low-speed compensation mode, then it enters the low-speed compensation mode. If the current motor speed is higher than the sum of the preset threshold and the preset hysteresis bandwidth, then exit the low-speed compensation mode and enter the normal calculation mode. When entering the low-speed compensation mode, the state estimate of the Kalman filter and the coefficients of the all-pass phase correction network are initialized with weighted gradual smoothing according to a preset number of smoothing steps; when exiting the low-speed compensation mode, the compensation parameters obtained in the last iteration are latched as the initial parameters when entering the low-speed compensation mode again.
10. A closed-loop control system for nonlinear error compensation in the low-speed range of a resolver output signal, characterized in that, include: The acquisition module is used to synchronously acquire the sine and cosine output signals and excitation reference signals of the rotary transformer; The extraction module enters the low-speed compensation mode when the motor speed is lower than a preset threshold. In the low-speed compensation mode, it extracts the instantaneous deviation of the amplitude of the sine and cosine output signals, the DC bias, the quadrature phase error and the sampling jitter error, and performs decoupling operation on the periodic cumulative signal sequence to separate the amplitude bias coupling error and the phase sampling jitter coupling error. The bias correction module uses a time-varying noise matrix Kalman filter to normalize the amplitude and correct the bias of the sine and cosine output signals. The process noise covariance matrix and the observation noise covariance matrix of the Kalman filter are dynamically updated according to the current motor speed and signal-to-noise ratio. The phase correction module, based on the piecewise nonlinear mapping model between the excitation reference frequency and the motor speed, configures the coefficients of the second-order all-pass phase correction network to complete the phase correction and obtain the compensated sine and cosine signals. The calculation module inputs the compensated sine and cosine signals into the phase-locked loop for angle calculation and outputs the calculated angle and angle error. The iterative compensation module feeds back the angle error to the adaptive compensator, integrates the error characteristics to update the compensation parameters, and iteratively compensates for the error of the sine and cosine output signals until convergence.
