5.8. Voltage Control¶
5.8.1. Overview¶
Voltage control is an alternative to velocity control. This feature provides the use of q-axis voltage \(V_q\) rather than velocity as an outer control loop. Voltage control acts upon back-emf as a proxy for velocity control, with some compliance (velocity is allowed to decrease with an increased torque load). The velocity command \(\omega_{m,cmd}\) is transformed to a equivalent voltage \(V_{q,cmd}\) using the back-emf constant of the motor. The modified FOC block diagram describing voltage control is shown in Figure 5.117. This feature repurposes the velocity controller as a voltage controller with different control parameters.
Voltage control can provide a high-bandwidth alternative to velocity control. In some motor control systems, a traditional velocity loop may be constrained in bandwidth, because of the error or the control delay (phase lag) does not allow a stable, high bandwidth voltage control loop. In such systems, a voltage controller can respond faster, limited only by the bandwidth of the current loop.
Systems which need high bandwidth and cannot tolerate the phase lag of the velocity estimator may be able to use voltage control instead. This feeds back the q-axis voltage from the current controller, filtered, as a feedback term to use in the velocity controller, reappropriated as a voltage controller. The voltage controller will reach equilibrium when \(V_{q,cmd} = K_e \omega_m + I_q R + \omega_e L_d I_d\). With \(I_d = 0\) (no flux weakening), this effectively is a velocity controller with a compliance or “droop” due to the IR drop across the stator. The phase lag caused by the voltage controller can be less than the position and velocity estimator, and in some applications the droop behavior may be advantageous.
Note: This feature has not been tested extensively. The guidance in this section is preliminary and is based on limited testing so far. Future work may help improve this guidance.
5.8.2. Effects of motor parameters on mechanical compliance¶
The torque compliance of voltage control can be stated analytically as follows:
where \(\alpha_\psi = \tfrac{N_p L_d I_d}{K_e}\) captures the effect of flux weakening due to nonzero d-axis current, and \(B' = \tfrac{3K_e{}^2}{2R}\) captures the mechanical compliance with load torque.
Equation 5.59 can be derived from the PMSM voltage equations — Equation 5.12 — in three steps:
setting derivative \(dI_q/dt\) to zero, yielding \(V_q = R_s I_q + \omega_e L_dI_d + K_e \omega_m\)
substituting the equation for electromechanical torque: \(T_{em} = \frac{3}{2} K_e I_q\)
substituting the voltage control command: \(V_{q,cmd} = K_e \omega_{m,cmd}\)
and rewriting to relate velocity command, velocity, and torque when current is in steady state.
With \(I_d = 0\) (no flux weakening), the mechanical compliance increases with greater back-emf and decreases with larger stator resistance.
5.8.3. Choosing algorithm parameters¶
The voltage controller is not autotuned; control parameters must be tuned manually. At this time, tuning guidance for the voltage loop is limited. Empirical tuning of the voltage loop is acceptable. One approach is to start with the default gains (\(K_p = 0.1/R\), \(\tau = 100ms\)), increasing \(K_p\) gradually until there are hints of instability (increased noise in the current loop) and then increasing \(K_i\) until there are hints of further instability. (Firmware implementation uses \(K_p\), \(K_i\), so runtime adjustment of \(\tau\) is not directly possible; instead, adjust voltage loop \(K_p\), \(K_i\).)