Abstract: In AC motor servo systems, high performance in rotor position control is required, necessitating specialized design of the position controller. This paper proposes a position controller based on state feedback and feedforward, merging the traditional position and speed controllers into a single unit. The controller's state equations are established, and the values of various controller parameters can be determined through transfer function analysis and appropriate zero-pole configuration. Utilizing position signals measured by finite-resolution mechanical sensors, a state observer based on an extended Kalman filter accurately observes the load torque, rotor position, and speed. The observed load torque is used as feedforward compensation to improve the system's control performance under varying load conditions. Simulation and experimental verification are conducted using a permanent magnet synchronous motor as an example. The results show that, compared to traditional proportional-integral-derivative (PID) controllers, the system employing this controller offers faster and more accurate position control with minimal overshoot, maintaining excellent stability and control precision even under varying load conditions.
Keywords: AC motor position controller, state feedforward, load torque observation, Kalman filter
A novel position controller based on state feedback and feedforward ZHENG Zedong, LI Yongdong
Abstract: In the AC servo control system, high performance position control is desired, so special position controller design is needed. A novel position controller based on state feedback and feedforward is proposed in this paper, the traditional position and speed controllers are combined as a signal one. The state equation of the position controller is built, and the parameters of the controller can be obtained by the selection of zero and pole points and the analysis of transfer function. With the measured rotor position by the mechanical sensor with limited resolution, the precious load torque, rotor position and speed can be observed by a state observer based on Kalman filter. The observed load torque can be used as feedforward compensation to improve the control performance during load changes. A permanent magnet synchronous motor (PMSM) is adopted to do the simulation and experimental verification. The results show that in the system with the novel controller, the position control result is more rapid and precise, the overshoot is smaller compared with the traditional PID controller. The system can also have good stability and precision during load torque changes.
Keywords: AC motor, position controller, state feedforward, load torque observation, Kalman filter
1. Overview
AC motor servo systems are widely used in CNC machine tools, robots, aerospace, and military industries. Servo systems generally require precise control of the motor rotor position and have high requirements for tracking speed, overshoot, and anti-disturbance capability. Traditional proportional-integral-derivative (PID) controllers cannot well balance the requirements of dynamic response and anti-disturbance capability, and they generally do not consider the influence of load torque in their design. The integral element is prone to overshoot, and the derivative element is prone to introducing noise, causing the system to oscillate or become unstable. In order to reduce the overshoot of position control, a feedforward compensation element needs to be introduced, but its coefficient is difficult to determine accurately. Therefore, the research and design of position controllers is a very important aspect [1-4]. Most current position control systems add a position control element outside the speed control element, making the system more complex. Therefore, how to simplify the system and improve control performance is a research direction.
This paper proposes a position control system based on state feedforward and state feedback. The position controller and speed controller are merged into a single controller, comprehensively considering factors such as motor position reference value, rotor speed, rotor position, and load torque to directly calculate the setpoint of the motor's electromagnetic torque. By introducing load torque feedforward, the controller effectively suppresses load torque variations; by introducing feedforward compensation for the position setpoint, overshoot in speed control is significantly reduced, improving position control performance. By establishing a complete controller state equation, calculation formulas for various controller parameters are obtained for different control objectives. The system also employs a state observer based on a Kalman filter, using a low-precision position sensor to observe accurate rotor position, speed, and load torque, replacing the traditional differential method for speed calculation. Utilizing the observed load torque for feedforward compensation improves the system's stability under load variations. This system has a simple structure, is easy to implement, reduces the cost of the servo system, and improves position control performance, making it an excellent servo control scheme for AC motors. Finally, simulation and experimental verification are conducted using a permanent magnet synchronous motor as an example.
2. Controller Model
The traditional position-speed closed-loop control system is shown in Figure 1. It introduces feedforward compensation of position command value to reduce the overshoot of position control, so it is also called a two-degree-of-freedom controller.
Figure 1. System block diagram using a two-degree-of-freedom position controller
Since the controlled objects of the position and speed closed-loop controllers are both mechanical motion quantities with the same time constant, if we consider the position and speed regulators as a whole, then its setpoint is the position command, the feedback input is the motor speed and position, and a feedforward compensation circuit is added. Its output is the command value of the motor electromagnetic torque. The controller structure is shown in Figure 1.
Figure 2. Block diagram of a novel position controller based on state feedback and feedforward.
The actuators here include current regulators, inverters and motors. The output of the controller is the electromagnetic torque setpoint of the motor. The controller combines the traditional position and speed control links, takes into account the control of speed and position, and introduces position command and load torque feedforward compensation. High-performance position control is achieved through reasonable pole setting [5].
In this controller, the integral term is used to eliminate the steady-state error of position control, and its output is the state variable Xr . Rotor speed and position are fed back through gains Ks1 and Ks2 , respectively. The setpoint for rotor position and the observed load torque are fed forward compensated through coefficients Kθ and Kv , respectively.
The position controller outputs the command value of the electromagnetic torque. Depending on the type of motor used and the control objective, the command value of the dq-axis current can be calculated based on the current motor speed and the electromagnetic torque setpoint. For salient-pole permanent magnet synchronous motors, the following is generally selected:
This ensures that the maximum electromagnetic torque is obtained with the minimum current.
For other AC motors, different current control schemes can be used depending on the electromagnetic torque formula. For example, in a salient-pole permanent magnet synchronous motor, since there is a reluctance torque component, as shown in equation (1), the d-axis current can also generate torque. Therefore, different dq-axis current control schemes can be determined according to different optimization objectives, such as current amplitude, efficiency, power factor, voltage utilization rate, etc.
(1)
In the controller shown in Figure 1, the output of the integral term is:
(2)
The output of the entire controller can be written as:
(3)
The equation of motion for the motor rotor is:
(4)
The equation can be discretized as follows:
(5)
in:
(6)
(7)
Where: represents the mechanical control cycle.
Assuming the tracking speed of the current loop is fast enough, the electromagnetic torque can also perfectly track the torque setpoint:
(8)
By establishing state equations with rotational speed, rotor position, and the output of the integral term as state variables, and substituting equation (3) into equation (5), we can obtain:
(9)
The system's dynamic matrix is:
(10)
As can be seen from the matrix, among all the controller parameters, the feedback coefficients K <sub>s1</sub> , K <sub>s2</sub> , and K <sub>r </sub> determine the location of the closed-loop poles of the system, i.e., the roots of the equations. Since the controller is a third-order system, it can have three poles. Different combinations of pole locations determine different response performances of the controller. For simplicity, we assume the system has triple poles, and the values of the feedback coefficients are as follows:
(11a)
(11b)
(11c)
In the z-plane, the poles must be located between 0 and 1 to ensure system stability (equivalent to the left half of the s-plane). Poles closer to 0 result in a faster system response but are more sensitive to noise, while poles closer to 1 provide better steady-state stability but slower response. Therefore, pole selection must balance response speed and stability.
Assuming that the observed torque equals the actual load torque after the torque observer converges, equation (9) becomes:
(12)
To eliminate the effect of load torque, the last term can be set to zero, i.e., Kv is chosen as...
K v = 1 (13)
Assuming the effect of load torque is completely eliminated through the above feedforward compensation, equation (12) can be further simplified to:
(14)
Therefore, the transfer function from the given position value to the motor rotor position can be obtained as follows:
(15)
This transfer function reflects the position control response characteristics when the controller poles are selected according to equation (11) and the load torque is fully compensated. As can be seen from the above equation, Kθ can generate a zero in the numerator of the transfer function. We can let this zero cancel out one of the system's poles, thereby reducing the system's order and improving the controller's dynamic performance.
To cancel out a pole Pbf , we should have:
(16)
When using the controller parameters above, we need to analyze the dynamic tracking characteristics of the motor rotor position to the rotor position command. For simplicity, we assume the rotor position command is a ramp function. We assume that at equilibrium, the actual rotor position maintains a fixed error compared to the position command value, and the motor rotor speed should also be constant to ensure the actual rotor position tracks the position command with the same ramp rate. If the load torque remains constant, the motor motion state can be described as follows:
(17)
Define the rotor position tracking error and the change in the integral term as follows:
(18)
Assume the slope of the rotor position command ramp function is expressed as:
(19)
Where k is the proportionality coefficient.
Therefore, it can be deduced that the tracking error of the rotor position should satisfy the following relationship:
(20)
As can be seen from equation (20), when the rotor position command increases at a certain rate, the rotor position cannot completely track the position command, but maintains a certain steady-state error with the command value. Furthermore, the error is related to the slope of the position setpoint change and the mechanical control cycle. However, when the rotor position command value remains constant (k=0), the rotor position will eventually equal the command value.
If it is necessary to eliminate tracking errors in this dynamic process, the following options can be selected:
(twenty one)
When the coefficient Kθ is determined by equation (21), we can see that the rotor position feedforward link and the actual position feedback link in the controller can be combined with the integral link to form a common proportional-integral PI controller with integral coefficient Kr and proportional coefficient Kθ . In this way, the controller actually degenerates into a traditional proportional-integral controller.
The integral term in the controller helps eliminate steady-state control error. However, when the position command changes rapidly over a wide range, the integral term may exhibit windup, resulting in overshoot of the control quantity. References [6,7] and others have proposed various anti-windup controller structures; here we adopt the most commonly used one. The windup phenomenon is caused by the limiting effect, which makes the controller output unequal to the input of the controlled object. If the difference between the two is used as a feedback signal to form a feedback branch to eliminate the windup phenomenon, the goal of suppressing the windup phenomenon is achieved. (See Figure 3.)
3. State Observer Based on Kalman Filter
The controller needs load torque information, and we can observe the load torque in real time using the observation method [8,9].
The state equations are established using the motor rotor speed, rotor position, and load torque as state variables. Assuming that the load torque changes slowly and its derivative is approximately zero, the observer's state equations are as follows:
(twenty two)
Write it in the form of a matrix equation:
in:
The above equation can be approximated by expanding the first-order Euler equation into a discrete iterative form. Errors in the approximation process can be compensated for by feedback correction using a Kalman filter.
(25)
remember:
(26a)
(26b)
That is, the discrete equation can be written as:
(27)
Considering the effects of system errors and measurement noise, the system state equation in the discrete domain is:
(28a)
(28b)
In the formula, w represents the input noise (system noise), and v represents the output noise (measurement noise). Generally, w represents the impact of system parameter errors, while v represents noise and interference during the measurement process, including the quantization error of the position signal measured by the mechanical sensor. The noise is typically stationary Gaussian white noise with an average value of zero.
The iterative algorithm for the Kalman filter is as follows:
(1) Calculate the prior estimates of the state variables and the prior estimates of the covariance matrix.
(2) Calculate the Kalman gain
(29c)
(3) Update the state estimate based on the measured quantities and calculate the optimal estimate of the state variables.
(29d)
(4) Update the covariance matrix
(29e)
The system block diagram of the novel position controller can be obtained by replacing the direct measurements with the speed and rotor position observed by the load torque observer based on the Kalman filter, as shown in Figure 2.
Figure 3 Block diagram of position control system
4. Simulation Results
To verify the controller's performance, we conducted experiments on the Matlab Simulink platform. The closed-loop control period for the mechanical quantities was set to be 10 times the control period of the inner loop (current loop), i.e., T<sub> m </sub> = 10T<sub> s</sub> = ms. The motor rotor position was measured using a resolver with a resolution of 256 points per revolution. Then, a load torque observer based on a Kalman filter was used to observe the motor rotor position, speed, and load torque, which were then used as inputs to the position controller. Based on the motor parameters, the controller's cutoff frequency was selected as rad/s. The controller's parameters can be calculated as follows:
The position control results are shown in Figure 4.
Figure 4 Position control results
The corresponding rotor position tracking error is shown in Figure 5. According to equation (20), θ ε = 2.016 rad. It can be seen that the position control error is consistent with the calculation result of equation (20).
Figure 5 Position tracking error
If the parameter Kθ is selected by equation (21), the controller degenerates into a common proportional-integral controller with load torque feedforward and speed feedback, and the simulation results of position control are shown in Figure 6.
Figure 6 Position control results
It can be seen that after using equation (21) to determine the parameter K[sub]θ[/sub], although the position tracking error in the dynamic process becomes smaller, the overshoot of the position control becomes larger.
5. Experimental Results
To verify the effectiveness of the theoretical derivation and simulation analysis, a surface-mounted permanent magnet synchronous motor was used as the controlled object, and a magnetic powder brake was used as the load. A rotary transformer was installed on the motor rotor to measure the absolute position, with a resolution of 256 P/R. An extended Kalman filter was used to observe the load torque and rotor speed based on the measured rotor position, and the observed rotor position values were used to replace the directly measured values. The motor control adopted a vector control method, with the d-axis current controlled to zero.
Figure 7 shows the observation results of the Kalman filter for the load change under constant speed control and a sudden load change. It can be seen that the observed speed can track the actual speed very well.
Figure 7 Load torque observation results
The mechanical loop control period is set to 10 times the system sampling period, i.e., ms. Based on the motor parameters, the controller cutoff frequency is selected as rad/s; the controller parameters can be calculated as follows:
First, the rotor position setpoint is a ramp function. The position control effect is shown in Figure 8, and the corresponding motor rotor speed is shown in Figure 9. A sudden load torque is applied at 40 seconds. It can be seen that the motor rotor position tracks the position command value very well, and the position control has virtually no overshoot, making it very suitable for position control systems. During the sudden load torque application, both the rotor position control and rotor speed remain stable. The feedforward compensation of the load torque effectively eliminates the influence of load changes.
The load torque observation results are shown in Figure 10. The load torque is provided by the magnetic powder brake, making it a braking load. Therefore, the direction of the load torque is always opposite to the direction of the rotational speed. When the speed is zero, the direction of the load torque is determined by the rotational tendency of the motor, and its magnitude is equal to the electromagnetic torque. However, due to the influence of parameters such as the motor's moment of inertia and friction torque coefficient, the observed torque is not zero under no-load conditions. During dynamic processes, the observed torque will also exhibit certain errors.
Figure 11 shows the position control results when the position command is a step signal. It can be seen that, due to limitations in the power supply voltage, current, and capacity of the motor control system, when the position command is a step signal, the rotor position cannot quickly track the command value. Instead, it rotates at the highest achievable speed until the command value is reached. Simultaneously, because an Anti-Windup circuit is used in the controller to prevent oversaturation of the integral circuit, the motor speed gradually decreases as the rotor position approaches the command value, thus ensuring that the position can be smoothly stabilized at the given value, achieving excellent position control performance.
Figure 8 Position control results
Figure 9 shows the corresponding rotor mechanical angular velocity.
Figure 10 Load torque observation results
Figure 11 Position control results when the position command is a step signal
6. Conclusion
This paper presents a novel position controller based on state feedback and feedforward, merging the traditional position and speed controllers into a single unit. It directly outputs the command value of the motor's electromagnetic torque, simplifying the system structure and better coordinating the relationship between position and speed, thus improving control performance. Based on the analysis of the controller's transfer function, the calculation methods for various parameters in the controller are theoretically derived, facilitating its practical application. An observer based on a Kalman filter is used to observe the rotor position, speed, and load torque based on measured rotor position values. Feedforward compensation for the observed torque is introduced into the controller, significantly improving position control performance during load changes. Feedforward compensation for the position command value is also introduced; by setting the controller poles and feedforward gain, excellent position tracking performance can be achieved, greatly reducing overshoot in position control. The introduction of an anti-windup element solves the integral oversaturation phenomenon during sudden changes in position command, further reducing overshoot in position control. Simulations and experiments using a permanent magnet synchronous motor demonstrate that this controller is an excellent implementation scheme for a position control system.
References
[1] Guo Qingding, Sun Yibiao, Wang Limei. Modern permanent magnet motor AC servo system. Beijing: China Electric Power Press, 2006.
[2] ZHU Guchuan, Dessaint LA, Akhrif O, et al. Speed tracking control of a permanent-magnet synchronous motor with state and load torque observer. IEEE Trans on Industry Electronics, 2000, 47(2): 346-355.
[3] Kweon TJ, Hyun D S. High-performance speed control of electric machine using low-precision shaft encode. IEEE Trans on Power Electronics, 1999, 14(5): 838-849.
[4] Li Hongru, Gu Shusheng, Liu Dongsheng. Design of PMSM adaptive feedforward PID controller with neural network torque observer [J]. Journal of Electrical Machines and Control, 2004, 8(4):350-356.
[5] Fadel M. Position control laws for electromechanical actuator. Proc of the eighth International Conference on Electrical Machines and Systems. Nanjing: IEEE Press, 2005:1708-1713.
[6] A. Visioli. Modified anti-windup scheme for PID controllers. IEE Proceedings: Control Theory and Applications, 2003, 150(1): 49-54.
[7] S. Yan, D. Xu, X. Gui, et al. Online Particle Swarm Optimization Design of Speed Controller considering Anti-windup for PMSM Drive System. PESC 2007, 2007: 2273-2277.
[8] XU Dianguo, WANG Hong, SHI Jingzhuo. PMSM servo system with speed and torque observer. Proc of the 34th IEEE Power Electronics Specialist Conference. Mexico: IEEE Press, 2003: 241 – 245.
[9] Chen Rong, Deng Zhiquan, Yan Yangguang. Research on disturbance rejection of servo system based on load observation. Proceedings of the Chinese Society for Electrical Engineering, 2004, 24(8): 103-108.