ECE 8830 - Electric Drives Topic 18: Sensorless and Adaptive Vector Control of Induction Motor Drives Spring 2004 Introduction Position encoders/resolvers are expensive and introduce reliability concerns for vector controlled ac motor drives. It is therefore desirable to have a vector control scheme that does not require this type of sensor. The concept of sensorless control is to use estimation techniques to estimate the position of the rotor from motor terminal voltage and current signals. These signal processing methods are then implemented into ac motor drives using DSP chips. Introduction (cont’d) For drives where only moderate dynamic performance is required, three types of open loop control approaches may be used: Back emf-based estimation Constant V/Hz control Space harmonics-based speed estimation These are discussed in the Holtz paper in some detail. Introduction (cont’d) For high performance drives, vector control based systems can be used. These methods include: Rotor field orientation Model reference adaptive systems Feedforward control of stator voltages Stator flux orientation Estimation of rotor flux and torque current Introduction (cont’d) As the rotor speed drops, the open loop estimation models lose accuracy. At lower speeds, closed loop approaches provide improved performance. Also, adaptive/self-tuning approaches are useful when machine parameters are not fully known. We will consider various adaptive approaches in this discussion. Finally, rotor speed estimation is not possible at motor start up and so special techniques to start the motor must be used. These are not described here. Rotor Speed Estimation Methods Rotor speed estimation methods for an ac induction motor may be classified as follows: Slip calculation Direct synthesis from state equations Model referencing adaptive system Speed adaptive flux observer Extended Kalman filtering Slot harmonics Injection of auxiliary signal on salient rotor Slip Calculation If we know the slip frequency sl then we can calculate the rotor speed from the relation, r= e- sl. How can we determine sl and e ? sl 1 STr Lsiqs r ( ds Ls ids ) ; e 2 m (vqss iqss Rs ) dss (vdss idss Rs ) qss L Lr where 1 and r . Ls Lr Rr 2 s Slip Calculation (cont’d) Accurate calculation of sl is difficult for high efficiency motors, especially near synchronous speed because the signal amplitude is small and strongly dependent on motor parameters. Also, at low speeds, direct integration of the motor terminal voltages is problematic to obtain sl and e. Direct Synthesis from State Equations The state equations in the ds-qs reference frame can be manipulated to yield the rotor speed. The stator voltage in the ds-qs reference frame is given by: s s di d s ds dm vds ids Rs Lls But s dr dt dt Lr s dm Llr idss Lm s L d s s m dr v ( R L s ) i ds s s ds Lr dt L2m where 1 Lr Ls Direct Synthesis from State Equations (cont’d) This equation can be rewritten as: d drs Lr s Lr vds ( Rs Ls s)idss dt Lm Lm A similar expression can be derived for qrs as: d qrs Lr s Lr vqs ( Rs Ls s )iqss dt Lm Lm The rotor flux equations in a stationary ds-qs reference frame can be written as: d drs Lm s 1 s s ids r qr dr dt r r and d qrs dt Lm r iqss r drs 1 r qrs Direct Synthesis from State Equations (cont’d) The angle e between de and ds is given by: e arctan s qr s dr qrs e x3 x5 But arctan( x) x ... 3 5 qs r drs ds de Ignoring higher order terms, we can write qrs e s dr Direct Synthesis from State Equations (cont’d) d e dt drs qrs qrs drs s 2 dr Combining these equations and some algebra gives: s s s s i d e Lm dr qs qr ids r s2 dt r dr Lm s s 1 s s s s s s s 2 dr qr qr dr dr iqs qr ids dr r Direct Synthesis from State Equations (cont’d) A block diagram of this method is shown below: Note: This approach is highly sensitive to motor parameter values. Model Reference Adaptive System (MRAS) In the model reference adaptive system (MRAS) approach, the output of a reference model is compared to the output of an adjustable/adaptive model until the errors between the two models converge. The reference model is based on stator equations and the adaptive model is based on the rotor equations. A figure showing speed estimation using the MRAS scheme is shown on the next slide. Model Reference Adaptive System (MRAS) (cont’d) Model Reference Adaptive System (MRAS) (cont’d) The stator-side equations are given by: d drs Lr s Lr vds ( Rs Ls s)idss dt Lm Lm d qrs Lr s Lr vqs ( Rs Ls s )iqss dt Lm Lm where vdss and idss are the stator-side d-axis voltage and currents in the stationary reference frame and vqss and iqss are the stator-side q-axis voltage and currents in the stationary reference frame. Model Reference Adaptive System (MRAS) (cont’d) Thus the rotor fluxes s dr s and qr can be obtained by integration of these equations. The adaptive model is developed from the rotor-side current flux equations given by: d drs Lmidss 1 s s r qr dr dt r r d qrs dt Lmiqss r r s dr 1 r qrs Model Reference Adaptive System (MRAS) (cont’d) With the correct value of rotor speed, the fluxes determined from the two models should match. An adaptation algorithm with P-I control can be used to tune the speed value until the two flux values match. Three issues are important regarding this approach: 1) Stability of the adaptation control loop 2) Convergence of the adaptation algorithm. 3) Integrator drift/inaccuracy Model Reference Adaptive System (MRAS) (cont’d) The overall stability of the system can be achieved using Popov’s criteria for hyperstability (see Bose text). Accuracy and drift problems inherent to the integration process in the reference model at low speed are alleviated by using a delay element (low pass filter) instead of an integrator in the stator model (see Holtz’s paper for details). Slot Harmonics This is one of the simplest methods for rotor speed estimation. The slots on the surface of the rotor of an induction motor provide reluctance modulation which creates harmonics in the airgap flux. These in turn modulate the stator flux linkage with a frequency proportional to the rotor speed. Thus, induced stator voltage waves will contain a ripple voltage component whose frequency and magnitude are proportional to the rotor speed. Slot Harmonics (cont’d) If the number of rotor slots is not a multiple of 3, the desired slot harmonic signals can be separated from the much larger fundamental emf by taking the sum of the 3 phase voltages in a wye connected winding. This eliminates all nontriplen harmonic voltage components (including the fundamental) and the slot harmonic voltages add up. Their frequency is proportional to the rotor speed. Slot Harmonics (cont’d) The slot harmonic frequency is locked onto using a PLL while other harmonics are filtered using an adaptive BPF. The output of the PLL gives the rotor speed. Because of the low number of rotor slots, the speed resolution of this approach is poor at low speeds. Nevertheless, it is a useful method for high speed sensorless drive applications. Adaptive Observers The accuracy of open loop estimation methods decreases as the rotor speed decreases. The performance of these techniques depends on how closely the machine parameters match those used in the models. The robustness of sensorless control to parameter mismatch and noise can be improved using closed loop estimation methods. Such closed loop estimators are referred to as observers (as opposed to estimators) and are described next. Full Order Nonlinear Observers A signal flow diagram for a full order nonlinear observer is shown below: Full Order Nonlinear Observers (cont’d) The addition of the error compensator makes it an observer. The error between the model current and the motor current is ei i s i s . The error signal is used to correct the inputs to the dynamic subsystems of the stator and rotor. These corrections are based on the following observer equations (derived from the motor model - see Holtz’s paper): di s kr 1 ' i s j e 'i s (1 j r )ψ r v s Gr ( )e s dt r r r dψ r r ψ r j ( e ) r ψ r lh i s Gr ( )e s dt Full Order Nonlinear Observers (cont’d) The complex gain factors G() are selected so as to ensure good dynamic response of the control system. It should also be recognized that the gain factors themselves are dependent on the estimated angular mechanical rotor speed since the system is nonlinear. This type of full order nonlinear observer has demonstrated performance down to speeds as low as 0.034 p.u. or 50 rpm. Sliding Mode Control The effective gains of the error compensator can be increased by using a sliding mode controller to tune the observer for both speed adaptation and for rotor flux estimation. It provides robust performance for a drive with respect to variations in motor parameters as well as rapid changes in load torque. This control approach is nonlinear where the drive response is forced to “slide” along a predefined trajectory in a phase plane by a switching algorithm despite parameter variations or load disturbances. Sliding Mode Control (cont’d) The control DSP detects any deviation from the predefined trajectory and changes the switching strategy to get the system back on track. The general principle of sliding mode control will be reviewed and then its application to vector control of induction motors studied. Sliding Mode Control (cont’d) Consider a sliding mode controller (SMC) for a simple second-order undamped linear system with a variable plant gain, K. The SMC controller comprises two switches with the option of positive or negative feedback as shown in the figure below. Sliding Mode Control (cont’d) In either the positive or negative feedback case, the system can be shown to be unstable. However, when switched between the two states, not only can stability be achieved but the system can be made robust against variations in K. Sliding Mode Control (cont’d) Consider first the case of negative feedback, i.e. switch 1 closed. In this case, X1=R-C or R-X1=C where X1=loop error Differentiating this expression gives: d dC ( R X1 ) X2 dt dt or dX 1 X2 dt Sliding Mode Control (cont’d) To satisfy the loop relation, we can also write: dX 2 KX 1 dt Combining these equations gives: d 2 X1 KX 1 0 dt The general solution to this equation is: X 1 A sin( Kt ) dX 1 X2 K A cos( Kt ) dt Sliding Mode Control (cont’d) Combining these equations gives: X 12 2 A X 22 KA 2 1 This is the equation of an ellipse as shown below: Sliding Mode Control (cont’d) Similarly, in the positive feedback mode, (switch 2 closed) the equations become: dX 1 X2 dt and dX 2 KX 1 dt Combining these equations gives: d 2 X1 KX 1 0 2 dt Sliding Mode Control (cont’d) The general solution to this equation is: X 1 B1e Kt B2 e Kt dX 1 X2 K B1e dt Kt K B2e Kt Squaring and combining these equations gives: X 12 X 22 1 4 B1B2 4 B1B2 This equation describes a set of hyperbolas as shown on the next slide. Sliding Mode Control (cont’d) The straight line asymptote equations are obtained by setting B1B2=0 which gives: KX 12 X 22 4 KB1 B2 0 => X 2 K X1 Sliding Mode Control (cont’d) The system can be switched back and forth between these two modes. The superposition of the two phase plane diagrams results in the figure shown below: The hyperbolic asymptote line is described by: K X1 X 2 where =0 is on the line. Sliding Mode Control (cont’d) Assume that system at t=0 is in -ve feedback mode at pt. X10. It moves along the ellipse until the +ve feedback mode is invoked at pt. B. It will then (ideally) move along B0 to settle at 0 at steady state, where X1 and X1 are zero. Let us define a straight line reference trajectory by the equation: CX1 X 2 0 where C< K so that the line slope is lower than and beyond the range of the variation in K. Sliding Mode Control (cont’d) Notice that the +ve and -ve feedback ellipses and hyperbolas cross the reference trajectory in opposite directions. This results in a zigzag variation about the reference trajectory until steady state is reached (as the operating condition is switched back and forth between +ve and -ve feedback). Sliding Mode Control (cont’d) The time domain response is given by: X 1 (t ) X 1 (t0 )e C (t t0 ) where t0 is the time to reach the sliding line. This equation represents a deceleration to the steady state point with an exponential decay of X1. Sliding Mode Control (cont’d) Note the polarities of , X1 and X2 above and below the sliding line shown in the previous figure. The strategy of switching control is defined by these polarities. In order to ensure that the reference trajectory is crossed on each switching action, a reaching equation must be satisfied as given below: d lim 0 for 0 dt Sliding Mode Control (cont’d) We now consider how to apply SMC to a vector-controlled induction motor drive. A block diagram of such a drive is shown below: Sliding Mode Control (cont’d) We want to make the drive response robust to variations in the following parameters: Torque constant, Kt, Moment of inertia, J Friction damping coeff., B and load torque disturbance, TL. If we have a step command of r*, we can write down the following equations: Te K t iqs K t K1U ; X 1 r* r ; 1 dX 1 d r* d r m X 2 ; (Te TL ) X2 . dt dt dt Js B Sliding Mode Control (cont’d) The second-order plant model can be expressed in state-space form in terms of the state variables X1 and X2 as follows: JsX 2 BX 2 Kt K1U TL K t K1 dX 2 B 1 X2 U TL dt J J J dX 1 dt 0 1 X 1 0 0 U X a d TL dX 0 b 2 2 dt where b=B/J, a=KtK1/J, and d=1/J. Sliding Mode Control (cont’d) The proposed sliding mode control is shown in detail in the figure below: Sliding Mode Control (cont’d) Three main loops in this control system: 1) Primary loop receives position loop error X1 and generates U1with gains i and i. 2) Secondary loop takes X2 input (from the speed input m) and generates U2 with gains i and i. 3) An auxiliary loop injects a constant signal A and generates output U0 to eliminate steady state error due to coulomb friction and load torque TL. All the loops contribute to the resultant signal U which is the sum of U0, U1 and U2. Sliding Mode Control (cont’d) The sliding trajectory during acceleration, deceleration and constant speed is shown below: Sliding Mode Control (cont’d) The sliding trajectory may be defined as follows for the three segments: Acceleration segment: 1 X 22 ( X 1 X 10 ) where X10 = initial position error Constant speed segment: 2 X 2 X 20 where -X20 = max. +ve speed Sliding Mode Control (cont’d) Deceleration segment: 3 CX1 X 2 Note: In all cases, =0 => reference trajectory. Only the primary loop is required but the secondary loop improves system performance. The control parameters for each of the loops is derived for each segment in the Bose text. The resulting control rules are presented in the next three slides. Sliding Mode Control (cont’d) Acceleration Segment: In the primary loop, 1<0 and 1>0. In the secondary loop, 1 1 2 dT L 2 b X 2 2 a X 2 ; 1 1 2 dT L 2 b X 2 2 a X 2 Sliding Mode Control (cont’d) Deceleration Segment: In the primary loop, 3>0 and 3<0. In the secondary loop, C b 3 a ; C b 3 a Sliding Mode Control (cont’d) Constant Speed Segment: In the primary loop, 2>0 and 2<0. In the secondary loop, 2 dTL b a ; dTL b 2 a Sliding Mode Control (cont’d) Practical implementation of sliding mode control requires a fast signal processor and Holtz reports running such a controller down to 0.036 p.u. minimum speed. Recently, SMC’s combined with fuzzy logic have been reported in the literature. Extended Kalman Filters Extended Kalman filters (EKFs) can also be used for rotor speed estimation and motor control. The EKF is a full-order stochastic observer that allows estimation of a nonlinear dynamic system corrupted by noise (due to measurement and modeling inaccuracies). A block diagram of the EKF algorithm is shown on the next slide. Extended Kalman Filters (cont’d) Extended Kalman Filters (cont’d) The EKF algorithm uses the full motor dynamic model. The augmented motor model can be expressed as: dX AX BVs dt Y CX where X i s ds s qs i 1 0 0 0 0 C 0 1 0 0 0 s dr s qr r , Y i T s ds and Vs v s ds s T qs v T i , s qs Extended Kalman Filters (cont’d) L2m Rr L2r Rs Ls L2r 0 A Lm Rr Lr 0 0 0 L R 2 m r L2r Rs Ls L2r 0 Lm Rr Ls L2r Lm r Ls Lr Lm r Ls Lr Lm Rr Ls L2r Rr Lr r Lm Rr Lr r 0 0 Rr Lr 0 0 1 L s 0 0 and B 0 0 0 0 0 0 0 1 Ls 0 0 0 Extended Kalman Filters (cont’d) These equations are of 5th order. Assuming a constant rotor speed, the motor model is linear. For DSP implementation of the EKF algorithm, the model must be expressed in a discrete form as: X(k+1)=AdX(k)+BdU(k)+V(k) Y(k) = CdX(k)+W(k) where V(k) and W(k) are zero mean, Gaussian white noise vectors of X(k) and Y(k). Extended Kalman Filters (cont’d) The statistical variations due to noise and errors in measurements are incorporated into three covariance matrices, expressed as Q, R and P. Q is a 5x5 covariance matrix that is associated with system noise, R is a 2x2 covariant matrix associated with fluctuations in the measurements, and P is a system state vector covariance matrix that is also 5x5. Extended Kalman Filters (cont’d) A detailed flow diagram is shown below: Extended Kalman Filters (cont’d) There are two main stages - a prediction stage and a filtering stage. In the prediction stage, the next predicted values of states X*(k+1) are calculated by the motor model and the previous estimated values. Also, the predicted P*(k+1) is calculated using the covariance vector Q. Extended Kalman Filters (cont’d) In the filtering stage, the next estimated states X (k+1) are obtained from X*(k+1) by adding a correction term eK, where e=Y(k+1) -Y(k+1) and K=Kalman filter gain. The EKF computations are performed iteratively until e approaches 0. This is a rather complex approach and is rather slow because of the extensive computation required. It is therefore not suitable for high speed applications. Lower order models (3rd and 4th order) requiring less extensive computation have been demonstrated (see Holtz’s paper). Fuzzy Logic Control Fuzzy logic control emulates fuzzy human thinking. It is one of a set of techniques referred to as “intelligent control” which also include expert systems and neural networks. Fuzzy logic control is a powerful technique for modeling complex, nonlinear systems. The dynamic d-q model of an ac motor is an example of a multivariable, complex, nonlinear system that is well suited to fuzzy logic control. Fuzzy Logic vs. Aristotelian Logic In Aristotelian logic, a quantity is either a member of a set or is not a member of a set. The set has sharp (or crisp) boundaries. In fuzzy logic, a quantity may be a member of a set to some degree or not be a member of a set to some degree. The boundaries of the set are fuzzy rather than crisp. Fuzzy Systems A fuzzy system is a rule-based mapping of inputs to outputs for a system. It can be theoretically proven that a fuzzy system is a universal approximator*. * see “Fuzzy Engineering” by Bart Kosko Membership Functions Courtesy Jim Sibigtroth, Motorola Complete Fuzzy System Input Fuzzifier Rules Processor Knowledge Database Defuzzifier Output Fuzzy System Block Diagram Courtesy Jim Sibigtroth, Motorola Rule Activation over Control Surface Courtesy Jim Sibigtroth, Motorola 3-D Control Surface Courtesy Jim Sibigtroth, Motorola Example: Two input, two rule Fuzzy Model n1 m1 Rule1 F1 A1 S1 m2 Rule2 n2 F2 A2 S2 Techniques for Inference Mamdani Implication: F1 = min (m1, n1) F2 = min (m2, n2) Defuzzification Conversion: Weighted Average n SystemOutput S AF i 1 n i i i AF i 1 i i A1, A2: areas of output membership functions S1, S2: singletons of output membership functions. Mamdani Approach Most commonly used approach to developing fuzzy logic models for control applications. Uses expert knowledge to generate rule set. Uses membership functions for both input and output variables. Computationally intensive compared to Sugeno approach. Sugeno Approach Output membership functions are “singletons” (zero order) or polynomials (first order). The rule in a first order Sugeno model may be expressed as: if x is A and y is B then z=p*x+q*y+r where p, q, and r are constants. Computationally efficient. Well suited to optimization/adaptation. Supervised Learning In supervised learning, an initial set of membership functions and rules are generated. The model is then optimized using neural network algorithms (e.g. back propagation) to minimize the error between training data and model-generated data. Unsupervised Learning In unsupervised learning, the initial set of membership functions and rule set are selfgenerated using clustering algorithms. Optimization can then be performed using neural network algorithms. Fuzzy Logic Control of Induction Motor Drive Example Consider the fuzzy speed controller shown below for a vector-controlled drive system. The controller observes the pattern of the speed loop error signal and updates the output DU so that r= r*. Fuzzy Logic Control of Induction Motor Drive Example (cont’d) Two input signals to the fuzzy controller error E= r- r* and CE ~ dE/dt. Based on the physical operation of the controller, we can write the simple control rule: “IF E is near zero (ZE) AND CE is slightly positive (PS) THEN the controller output DU is slightly negative”. This is implemented as shown: Fuzzy Logic Control of Induction Motor Drive Example (cont’d) A two rule control is shown below with rules: Rule 1: IF E=ZE AND CE=NS THEN DU=NS Rule 2: IF E=PS AND CE=NS THEN DU=ZE Fuzzy Logic Control of Induction Motor Drive Example (cont’d) Now consider a more detailed fuzzy logic model for speed control of a vector-controlled induction motor drive. The membership functions for e, ce and du in per unit values are shown on the next slide with the following definitions of terms: NB=-ve big NM=-ve medium NS=-ve small NVS=-ve very small Z=Zero PVS=+ve very small PS=+ve small PM=+ve medium PB=+ve big Fuzzy Logic Control of Induction Motor Drive Example (cont’d) Fuzzy Logic Control of Induction Motor Drive Example (cont’d) The rule matrix for fuzzy speed control is shown in the table below with the rules in the form: “IF e(pu)=PS AND ce(pu)=NM THEN du(pu)=NS” Fuzzy Logic Control of Induction Motor Drive Example (cont’d) The general design control guidelines are: 1. If both e(pu) and ce(pu) are zero, maintain the present control setting du(pu)=0. 2. If e(pu) 0 but is approaching zero at a satisfactory rate, then maintain the present control setting. 3. If e(pu) is growing the change the control signal du(pu) depending on the magnitude and sign of e(pu) and ce(pu) to force e(pu) towards zero. See pp. 584 Bose for detailed fuzzy control algorithm description. Fuzzy Logic Control of Induction Motor Drive Example (cont’d) The response of the fuzzy controller for a particular motor with steps of speed command and load torque with nominal inertia (J) is shown below: Fuzzy Logic Control of Induction Motor Drive Example (cont’d) The response of the fuzzy controller for the same motor with steps of speed command and load torque with 4x nominal inertia (4J) is shown below: