# Patent

## Title
Sensorless control method and apparatus for a motor drive system

## Abstract

A method and apparatus provide a state observer control system 600 for a motor 106 that uses an extended Kalman filter 330 to predict initial rotor position and afterwards accurately predict rotor position and/or speed under variable types of loading conditions. A control system model 300 is generated that allows variable setting of an initial rotor position to generate estimated rotor position and speed as outputs. The control system model 300 includes an EKF (extended Kalman filter) estimator 330, speed controller 322, a current controller 324, and a variable load component 310. During operation, EKF estimator 330 estimates rotor speed 327 and position 333 based on reference voltages 402, 404 and currents 1325 generated by speed and current controllers 322, 324 and input from frame transformers 326, 328. Additionally, the reference currents and voltages 402, 404, 1325 are frame-transformed to be used as feedback signals 418, 346 in the system 600 and as drive signals to control power to be applied to a motor load 602.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority from U.S. Provisional Patent Application No. 60/485,732, entitled “EXTENDED KALMAN FILTER (EKF) METHOD AND APPARATUS FOR SENSORLESS CONTROL OF MONITOR DRIVE SYSTEMS” filed Jul. 10, 2003, the entire disclosure of which is herein incorporated by reference for all purposes.


FIELD OF THE INVENTION
The present invention relates to predictive control systems for various loads, and more particularly to a robust, sensorless predictive method and apparatus for accurately detecting rotor speed and position in a synchronous motor generator system.
BACKGROUND OF THE INVENTION
An important component of a controlled motor-drive system is an electro-mechanical machine. Depending on the application, such machines can be used either as a generator or a motor through the interaction of their “stator magnetic field” and their “rotor magnetic field”, to convert mechanical energy to electrical energy, or vice versa, as is well known in the field of controlled motor-drive systems. Generally at least four distinct types of machines can be identified, based on how the stator and rotor magnetic fields are produced and interacted with each other. These types include a Permanent Magnet Synchronous Machine (PMSM), wherein a rotating magnetic field is generated by the application of a three phase balanced AC voltage to the stator. Permanent magnets may be used in the rotor, to establish the rotor magnetic field. Another further type includes a Brushless DC Machine (BLDC), similar to the PMSM, except that instead of exciting all the three stator windings, only two windings of the stator windings may be excited at the same time, which results in trapezoidal as opposed to sinusoidal currents for windings. Another further type includes a Wound-Rotor Synchronous Machine (WRSM), wherein a rotating magnetic field is generated by the application of a three-phase balanced AC voltage to the stator, similar to the PMSM. Though for the WRSM, the rotor magnetic filed may be produced by passing a DC current in a distributed winding in the rotor. This current can be transferred to the rotor field winding through “slip-rings and brushes”, or through a brushless method. And another further type includes an Induction Machine (IM), wherein the stator may be excited in the same way as the PMSM, but the rotor magnetic field is established by induction from the stator field at a different frequency as compared to the stator, and is thus called an asynchronous machine.
For these types of motor drive systems described above, a commonly utilized control system, used in aerospace and industrial applications, includes a closed-loop arrangement to measure the speed and/or position of a motor (e.g., permanent magnet synchronous motor—PMSM), particularly the PMSM rotor speed and/or position. FIG. 1 illustrates a prior art closed-loop control system 100 for measuring the rotor speed/position of a PMSM 106. The closed-loop system 100 includes DC power supply 102, inverter 104 which is powered by supply 102, pulse width modulating signal (PWMS) generator 110, shaft sensor 108, speed controller 116, frame transformation devices 112, 114. During conventional operation, the system 100 uses speed controller 116 to generate a current reference 122 from the difference between a speed reference 117 and the measured speed 120 output from sensor 108 (e.g., hall sensor). Two projected components (I*d and I*q), on d and q axes, respectively, of the reference current 122 are compared to dq components, output from frame transformer 114, of measured three phase components (Ia, Ib, Ic) from inverter 104. The measured error between the dq components and the projected components produces the control variables Vd and Vq which are input to frame transformer 112, along with the measured rotor position 121 output from sensor 108, to produce dq-to-abc components Va, Vb, Vc which are three-phase voltage reference values. These references values are input to PWM generator 110 to produce PWM signals for inverter 104 to produce output voltages from the three-phase inverter 104 to drive PMSM 106.
This technique shown in FIG. 1, however, increases system complexity and decreases system reliability. The PMSM 106 must have the sensor 108 built in or attached mechanically to the rotor, and interfaces and wiring must be added for control (excitation) and feedback signals (e.g., Va, Vb, Vc, Ia, Ib, Ic) between the controller 116 and the sensor 108. Also, PMSM 106 may be located at a distance from controller 116 creating the need for unwanted extra wiring in the system.
To avoid the wiring and other disadvantages of a sensor control system, sensorless motor control techniques may be used to increase system reliability and eliminate the need for extra wiring in the system. In addition, these techniques eliminate the need for a discrete position sensor and also reduce the system cost. A sensorless motor control technique may be a more flexible/adaptable solution for a motor drive system than one that relies on a separate position sensor. It may be particularly valuable for an aircraft system where increased reliability and reduction of weight (e.g., through elimination of the sensor and additional wiring) are extremely important.
For linear systems, a Kalman filter may be used to determine the states and outputs of a system as shown in FIG. 19 which shows the structure of a Kalman filter 1900. For filter 1900, we may assume a system with the following equations:

{dot over (x)}=A·x+B·u+σ,  (1)

y=H·x+ρ.  (2)

where σ and ρ are the system and the measurement noises, which are stationary, white, uncorrelated and Gauss noises, and the expectations are zeros. Further, the covariance matrices of these noises may be defined as:

Q=E[σ·σT],  (3)

R=E[ρ·ρT].  (4)

where E[ ] denotes expected values.

The system equation of Kalman filter 1900 becomes:

{circumflex over ({dot over (x)}=(A−K·H)·{circumflex over (x)}+B·u+K·y  (5).

Matrix K may be set based on the covariance of the noises. A measure of the goodness of the observation may be established as:

J=E[eT·e].  (6)

where e follows:

e=x−{circumflex over (x)}.  (7).

Advantageously, K may be chosen to make J minimal where the solution is the following

K=P·HT·R−1.  (8)

where P can be calculated from the solution of the following Riccati equation:

P·HT·R−1·H·P−A·P−P·AT−Q=0.  (9)

Q and R may be set up based on the stochastic properties of the corresponding noises.

However, the Kalman filter 1900 is only useful for linear systems which necessitates the generation of an Extended Kalman Filter (estimator) as described herein particularly suited for non-linear systems which may be encountered for motor-drive systems.
A conventional sensorless control system may be used to measure PMSM rotor speed and/or position (a non-linear system) as illustrated by prior art control system 200 shown in FIG. 2. Control system 200 includes similar components from system 100 in FIG. 1 except that speed and position outputs 203, 205 are estimated by speed and position estimator 109 instead of measured by sensor 108. As shown in FIG. 2, estimator 109 receives as input three-phase current components Ia, Ib, Ic generated by inverter 104 and receives as input three-phase voltage components Va, Vb, Vc voltages from frame transformer 1112. Estimator 109 may use a two current loop system to correct for an initial, estimated rotor position, and to correct and update flux-linkage produced in the PMSM which generates sufficient torque in the system 200 such that PMSM may be used as a starter and/or generator. Also, estimator may estimate the motor line current from the input current components, calculate the error between the current estimate and the measured current, and use the error calculation to determine the speed and position of the rotor for a particular time interval. Subsequently, the process may be repeated for future time intervals to correct flux-linkage and predict rotor position. Advantageously, this process may be used for both brushless DC motors (BLDCM) and PMSMs, but control system performance may degrade based on the quality and accuracy of flux-linkage estimates and measurements of system voltages and currents. Additionally, control system accuracy may degrade from system harmonics and noise, machine parameter variations due to temperature changes and magnetic saturation.
Other prior art sensorless methods utilize a state observer technique but these methods are susceptible to motor drive system parameter variation and require complex non-linear control theory, which make these other methods difficult to fine-tune and implement. Such methods also suffer from additional limitations including lack of any accurate information on the initial rotor position which is further complicated by initial speed/position convergence problems, and the need for injecting a current pulse at the start-up of the motor to avoid a stall condition. Lack of proper operation of such methods has prevented their accuracy and effectiveness over the full speed and torque range, required by dynamic loads, which is a main reason for sensorless control of drive systems not becoming wide-spread.
Therefore, due to the disadvantages of current sensorless control systems for motor-drive systems, there is a need to provide a state observer control method that overcomes these limitations and provides a robust, easily implemented, sensorless control apparatus for a motor-drive system.
SUMMARY OF THE INVENTION
The system of the present invention overcomes the previously mentioned problems by providing a predictive, state observer control system for a motor that uses an Extended Kalman Filter (EKF) to first estimate the initial rotor position, and then accurately predict rotor position and/or speed in quasi real-time for a variety of dynamic load conditions during operation without using a speed/position sensor. The EKF-based model described herein for an entire integrated motor-drive system includes power electronics and associated digital controls circuitry for the system and performs fast calculations for ease of digital signal processing and controls implementation. The overall motor-drive control system model includes an EKF (extended Kalman filter) estimator, speed controller, a current controller, a DC-AC power conversion inverter module, a Pulse Width Modulated (PWM) gating pattern generator, and a variable speed/torque load component. During operation, EKF estimator module estimates rotor speed, rotor position, and current states based on reference voltages and currents generated by speed and current controllers input from frame transformers. Also, the obtained, accurate sensorless position estimations are used to achieve frame-transformed reference currents and reference voltages which are used as feedback signals in the system and as drive signals to control power to be applied to a PMSM load.



BRIEF DESCRIPTION OF THE DRAWINGS
Other aspects of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a general block diagram of a conventional motor generator system using a position sensor to determine rotor position for motor generator control.
FIG. 2 is a general block diagram of a conventional sensorless motor generator system.
FIGS. 3a, b illustrate models of a sensorless motor control system and subsystem in accordance with embodiments of the present invention.
FIG. 4 is a block diagram of frame transformer for a voltage input as shown in FIG. 3.
FIG. 5 is a block diagram of frame transformer for a current input as shown in FIG. 3.
FIG. 6 illustrates a sensorless motor control system with implementation in accordance with embodiments of the present invention.
FIGS. 7, 8 are diagrams illustrating performance results of the sensorless motor control system of FIG. 6.
FIGS. 9a, 9b are additional diagrams illustrating performance results of the sensorless motor control system of FIG. 6.
FIGS. 10a, 10b, 10c illustrate vectors in the stator (abc), stationary (αβ), and arbitrary (dq) reference frames in accordance with embodiments of the present invention.
FIG. 11 illustrates the vector diagram of a motor in an arbitrary (dq) frame in accordance with embodiments of the present invention.
FIG. 12 illustrates a motor system to which the control system of FIG. 3 may be applied in accordance with embodiments of the present invention.
FIG. 13 illustrates a model of a synchronous motor system used in a sensorless motor control system in accordance with embodiments of the present invention.
FIG. 14 illustrates a speed controller of a sensorless motor control system in accordance with embodiments of the present invention.
FIG. 15 illustrates a current controller of a sensorless motor control system in accordance with embodiments of the present invention.
FIGS. 16a, 16b, 16c are diagrams illustrating startup performance results of the sensorless motor control system of FIG. 6.
FIG. 17 illustrates an estimator of a sensorless motor control system in accordance with embodiments of the present invention.
FIG. 18 illustrates a flow process diagram of an estimator of a sensorless motor control system in accordance with embodiments of the present invention.
FIG. 19 illustrates an exemplary structure of an estimator of a sensorless motor control system in accordance with embodiments of the present invention.



DETAILED DESCRIPTION
Embodiments of the present invention are more specifically set forth in the following description, with reference to the appended drawings. In the following description and accompanying drawings like elements are denoted with similar reference numbers. Further, well-known elements and related explanations are omitted so as not to obscure the inventive concepts presented herein.
U.S. patent application Ser. No. 10/244,496 (“the '496 application”), filed Sep. 16, 2002 and titled “Position Sensor Emulator for a Synchronous Motor/Generator,” which discloses embodiments for deriving rotor position information from phase voltage signals output by main generator stator windings (stator phase windings) of a synchronous motor generator, is incorporated herein by reference.
The motor drive systems 100, 200 of FIGS. 1, 2 previously described along with the motor drive system of 1200 shown in FIG. 12 illustrate motor generator systems to which principles of the present invention may be applied to derive rotor position, rotor speed, and current (observer) states of the discrete-time controlled system 100, 200, 1200 from signals output from stator phase windings. As illustrated in FIG. 12, the motor generator system 1200 includes the following main components: a brushless synchronous motor generator (BLSM) 1210; a generator control unit 1202; an exciter power supply 1204; and a start converter 1206. The motor generator system 1200 further includes motor generator switching units 1203, 1208, for switching between a generator mode and a motor (starter) mode for the synchronous motor generator 1210.
The synchronous motor generator 1210 includes a rotating unit 1212, including three-phase exciter windings 1211, a rectifier bridge 1213, and a main generator field winding 1215, mounted on a rotatable shaft, e.g., coupled to a gas turbine engine of an aircraft. The synchronous motor generator 1210 further includes stator components, including an exciter field winding 1220 and three-phase main generator windings 1216. The exciter field winding 1220 of the stator and the three-phase exciter windings 1211 of the rotor constitute an exciter generator and the field winding 1215 of the rotor 1212 and the three-phase windings 1216 of the stator constitute a main generator.
In generator mode, the motor generator switching units 1203, 1208, which may be for example well known switching elements, are positioned so the generator control unit 1202 is connected to supply DC current (“DC excitation”) to the exciter field winding 1220 (via switch 1203) and the outputs, A, B, C, of the three-phase generator windings 1216 are connected to an AC bus 1218 (via switch 1208). In an exemplary embodiment, when DC excitation is supplied to DC winding 1220, rotation of the generator shaft (not shown) by the aircraft engine causes the generation of a polyphase voltage in the armature winding 1211 that is rectified by the rectifier assembly 1213 and coupled to the winding 1215. This rectified voltage sets up a DC field in the main rotor field winding 1215 which causes a rotating magnetic field in the main stator coil 1216 that produces output power with regulated voltage at a point of regulation (POR) 1208 (prior to the bus contact switch) for delivery to AC bus 1218 via terminals A, B, C, and switch 1208. The DC current flowing through the exciter field winding 1220 may be varied in amplitude to achieve the desired AC power on the AC bus 1218. In generate mode, rotor position information is not required by the system 1200.
Additionally, the system 1200 may use the starter/generator 1210 as a motor to start the aircraft engine. An external power source (exciter power supply—EXPS) 1204 is coupled to the generator 1210 using the exciter stator 1214. The coupled power from EXPS 1204 induces AC power through transformer effect in the polyphase winding 1211 of the rotor 1212 because no relative motion between rotor and stator exists at zero speed. The AC power established in winding 1211 may be rectified by rectifier assembly 1213 to generate DC power in the main field winding 1215. Additionally, a start converter 1206 is used to supply controlled AC power to main stator coil 1216 such that sufficient torque is produced by the starter/generator 1210. This torque is produced by the interaction between the flux in the main rotor winding 1215 and the current (flux) established in coil 1216. The frequency of the controlled AC power is increased from 0 Hz (0 RPM) to a predetermined frequency corresponding to the generated torque for starter/generator 1210 at the end of start. The phase of the current for the supplied AC power input is controlled as function of rotor position to develop the desired torque for starter/generator 1210. To create sufficient torque for efficiently moving the rotor via electromagnetic force, commutation of stator phase windings 1216 requires that the position of the rotor be known.
FIG. 3a illustrates a model of a sensorless motor control system 300 in accordance with embodiments of the present invention that may be used with motor system 1200. The system model 300 includes a control block 302, sinusoidal pulse width inverter (SPWM) 306, load 310, and PMSM motor model 308. FIG. 3b illustrates the subsystem for control block 302 which includes speed controller 322, current controller 324, voltage frame transformer 326, current frame transformer 328, and estimator 330 (extended kalman filter—EKF).
For a motor drive system such as system 1200, terminal variables of the motor, such as voltages and currents, are time-varying. For better control of the motor system 1200, standard frame transformations (e.g., abc-to-dq) of the motor electrical variables and parameters (e.g., voltages and currents) are used to convert the time-varying system into a time-invariant system to better utilize the EKF 330 for estimating rotor position, rotor speed, and observer states of the system. A vector can be described in a stator (abc) frame by three elements, in a stationary (αβ) frame by two elements, and in an arbitrary frame (dq) by two elements. In control system 300, variables in the stator (abc) frame are transformed into the 2-axis stationary or arbitrary frame to simplify the mathematical complexity and acquire useful control components (Vabc, Iabc) using frame transformers 326, 328 shown in FIG. 3b. Subsequently, the control components (Vabc, Iabc) are transformed back into three-phase variables of the stator frame to drive a PMSM motor model 308. FIGS. 10a, 10b, 10c illustrate vectors in the different reference frames (αβ, abc, dq) where vectors a, b, c have equal magnitude and are separated from each other by an angle of 120°. FIG. 11 illustrates a vector diagram of the model PMSM 308 in an arbitrary (dq) frame. Computations for the vectors in the diagram shown in FIG. 11, equations of the model PMSM 308 including in a dq reference frame, and transformation equations are well-known and disclosed in Qiu, “Extended Kalman Filter Application in Permanent Magnet Synchronous Motor Sensorless Control”, Thesis Publication, Ryerson Univ., August 2003, which is hereby incorporated by reference.
During operation, system model 300 estimates rotor position, rotor speed, and observer (current) states for PMSM model 308 using estimator 330 to generate useful drive signals for SPWM 306 and motor model 308. As illustrated in FIGS. 12, 13, three-phase voltage output signals Va, Vb, Vc are generated from stator components 1220, 1216 and then may be input as signals 1301, 1302, 1303 to be frame transformed from the stator frame (represented by three elements) to the arbitrary frame (dq) using PMSM model 308 to generate measured rotor speed 1312 (ω) and position (theta or θ) 1314 outputs. These measured values 1312, 1314 for rotor speed and position may be later compared with estimates 327, 333 derived by estimator 330. Voltage transform blocks 1304, 1306 transform the three-phase voltage inputs 1301, 1302, 1303 (Va, Vb, Vc) into Vd and Vq (dq reference frame voltages). Further, transform blocks 1308, 1309, 1310, 1311 calculate the current in the arbitrary frame (dq−Id, Iq) to compute Id, Iq. Then, transform blocks 1316, 1318, 1320 transform the arbitrary frame currents into the three-phase current outputs (Ia, Ib, Ic) 1325. Also, function blocks 1322, 1324, 1326, 1328, 1330, and 1332 compute the rotor position (θe) 1314. Further, the initial rotor position 304 (as shown in FIG. 3a) may be preset and input (e.g., 45 degrees−π/4) to help produce useful control outputs for the system and monitor the startup transient for system 1200. Particularly, the function blocks shown in FIG. 13 may compute the following functions: 2/3*(Va*cos(θ)+Vb*cos(θ−2/3*π)+Vc*cos(θ+2/3*π)) for block 1304, −2/3*(Va*sin(θ)+Vb*sin(θ−2/3*π)+Vc*sin(θ+2/3*π)) for block 1306, Vd/L+We*Iq−Id*Rs/L for block 1308, Vq/L−We*Id-We*LMD/L−Iq*Rs/L for block 1310, Id*cos(θ)—Iq*sin(θ) for block 1316, Id*cos(θ−2/3*π)−Iq*sin(θ−2/3*π) for block 1318, Id*cos(θ+2/3*π)−Iq*sin(θ+2/3*π) for block 1320, and 1.5*LMD*Np for block 1322. For these function blocks, L is the inductance (equivalent to the d-axis and q-axis inductance), We is the stator electrical angular speed, Rs is the resistance of the stator, LMD (λr—lamda) is the rotor flux linkage of the PMSM model 308, and Np is the number of pole pairs. Also, output Te 1313 may be computed as:

Te=3/2*Np*λr*Iq  (10).

FIGS. 14, 15 illustrate the details of the speed and current controller blocks 322, 324 in FIG. 3b. Speed controller 322 receives as inputs a speed feedback 327 from the estimator (EKF) 330 and a speed reference signal 321 which may be advantageously generated by a signal generator 313 (shown in FIG. 3a) which are compared to generate a speed error 1403. The speed error may be input to proportional integral (PI) 1406 to produce a current reference Is output 1405 that is fed to both d and q transform blocks 1408, 1410 to generate transformed current reference Idq output 1412. The functions computed by block 1408, 1410 are well-known in the art as disclosed by Morimoto et al. (“Current Phase Control Methods for Permanent Magnet Synchronous Motors”), IEEE Transactions on Power Electronics, Vol. 5, No. 2, April 1990, which is hereby incorporated by reference.
As shown in FIG. 15, Idq reference output 1412, current Iq (Id set to zero), and rotor speed (ωe) 327, output from estimator 330, are input to current controller 324. Current controller 324 uses PI blocks 1506, 1508 to generate voltage outputs in the arbitrary (dq) frame, Vd, Vq from these inputs.
FIGS. 4, 5 illustrate the details of the voltage and current frame transformer blocks 326, 328. As shown in FIG. 4, voltage transformer 326 transforms the input voltages in the dq frame into both abc and αβ frames. The input voltages (Vd, Vq) 402, 404 from current controller 324, using the estimated rotor position (θ) 333 from control block 302 (generated by estimator 330), are transformed by block 326 using function blocks 406, 408, 410, 422, 424 into output voltages in the arbitrary and stationary frames (Va, Vb, Vc, and Vαβ) 412, 414, 416, and 418 where Vαβ418 is used as control feedback in the system 300 for EKF 330. Particularly, function blocks 406, 408, 410 may compute the following functions: Vq*sin(θ)+Vd*cos(θ) for block 408, −Vq*sin(θ−2/3*π)+Vd*cos(θ−2/3*π) for block 408, and −Vq*sin(θ+2/3*π)+Vd*cos(θ+2/3*π) for block 410, where θ=Theta and π=pi.
Similarly, as illustrated in FIG. 5, current transformer 328 transforms the three-phase input currents in the stator frame (Ia, Ib, Ic) 1325, using estimated rotor position input 333 (estimated by EKF 330) and function blocks 502, 504, 506, 508, into two output currents (Idq, Iαβ) 344, 346 to be used as control feedback in system model 300. Particularly, function blocks 502, 504, 506, and 508 may compute the following functions: 2/3*(Ia*cos(θ)+Ib*cos(θ−2/3*π)+Ic*cos(θ+2/3*π)) for block 502, −2/3*(Ia*sin(θ)+Ib*sin(θ−2/3*π)+Ic*sin(θ+2/3*π)) for block 504, Ia for block 506, and sqrt(3)/3*(Ib−Ic) for block 508.
Estimator 330 is derived from frame transformation and motor modeling techniques where equations for estimator 330 include the following:




  
    
      
        
          
            
              d
              
                I
                α
              
            
            
              d
              t
            
          
          =
          
            
              
                -
                
                  
                    R
                    s
                  
                  L
                
              
              ⁢
              
                I
                α
              
            
            +
            
              
                
                  N
                  P
                
                ·
                
                  
                    λ
                    r
                  
                  L
                
                ·
                
                  ω
                  r
                
                ·
                sin
              
              ⁢
              
                
              
              ⁢
              
                θ
                e
              
            
            +
            
              
                V
                α
              
              L
            
          
        
        ,
      
    
    
      
        (
        11
        )
      
    
  
  
    
      
        
          
            d
            
              I
              β
            
          
          
            d
            t
          
        
        =
        
          
            
              -
              
                
                  R
                  s
                
                L
              
            
            ⁢
            
              I
              β
            
          
          +
          
            
              
                N
                P
              
              ·
              
                
                  λ
                  r
                
                L
              
              ·
              
                ω
                r
              
              ·
              cos
            
            ⁢
            
              
            
            ⁢
            
              θ
              e
            
          
          +
          
            
              
                V
                β
              
              L
            
            .
          
        
      
    
    
      
        (
        12
        )
      
    
  
  
    
      
        
          where
          ⁢
          
            
          
          ⁢
          
            
              d
              
                ω
                r
              
            
            
              d
              t
            
          
        
        =
        0.
      
    
    
      
        (
        13
        )
      
    
  




Further, in matrix form, equations (11), (12), (13) become:





  
    
      
        
          
            
              
                d
                
                  
                
              
              
                d
                t
              
            
            ⁡
            
              [
              
                
                  
                    
                      I
                      α
                    
                  
                
                
                  
                    
                      I
                      β
                    
                  
                
                
                  
                    
                      ω
                      r
                    
                  
                
                
                  
                    
                      θ
                      e
                    
                  
                
              
              ]
            
          
          =
          
            
              
                [
                
                  
                    
                      
                        -
                        
                          
                            R
                            s
                          
                          L
                        
                      
                    
                    
                      0
                    
                    
                      
                        
                          N
                          P
                        
                        ⁢
                        
                          
                            λ
                            r
                          
                          L
                        
                        ⁢
                        sin
                        ⁢
                        
                          
                        
                        ⁢
                        
                          θ
                          e
                        
                      
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      
                        -
                        
                          
                            R
                            s
                          
                          L
                        
                      
                    
                    
                      
                        
                          -
                          
                            N
                            P
                          
                        
                        ⁢
                        
                          
                            λ
                            r
                          
                          L
                        
                        ⁢
                        cos
                        ⁢
                        
                          
                        
                        ⁢
                        
                          θ
                          e
                        
                      
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      0
                    
                    
                      0
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      0
                    
                    
                      
                        N
                        P
                      
                    
                    
                      0
                    
                  
                
                ]
              
              ·
              
                [
                
                  
                    
                      
                        I
                        α
                      
                    
                  
                  
                    
                      
                        I
                        β
                      
                    
                  
                  
                    
                      
                        ω
                        r
                      
                    
                  
                  
                    
                      
                        θ
                        e
                      
                    
                  
                
                ]
              
            
            +
            
              
                [
                
                  
                    
                      
                        1
                        L
                      
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      
                        1
                        L
                      
                    
                  
                  
                    
                      0
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      0
                    
                  
                
                ]
              
              ·
              
                [
                
                  
                    
                      
                        V
                        α
                      
                    
                  
                  
                    
                      
                        V
                        β
                      
                    
                  
                
                ]
              
            
          
        
        ,
      
    
    
      
        (
        14
        )
      
    
  
  
    
      
        
          
            [
            
              
                
                  
                    I
                    α
                  
                
              
              
                
                  
                    I
                    β
                  
                
              
            
            ]
          
          =
          
            
              [
              
                
                  
                    1
                  
                  
                    0
                  
                  
                    0
                  
                  
                    0
                  
                
                
                  
                    0
                  
                  
                    1
                  
                  
                    0
                  
                  
                    0
                  
                
              
              ]
            
            ·
            
              
                [
                
                  
                    
                      
                        I
                        α
                      
                    
                  
                  
                    
                      
                        I
                        β
                      
                    
                  
                  
                    
                      
                        ω
                        r
                      
                    
                  
                  
                    
                      
                        θ
                        e
                      
                    
                  
                
                ]
              
              .
              
                

              
              ⁢
              where
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              x
              .
            
            =
            
              
                
                  d
                  
                    
                  
                
                
                  d
                  t
                
              
              ⁡
              
                [
                
                  
                    
                      
                        I
                        α
                      
                    
                  
                  
                    
                      
                        I
                        β
                      
                    
                  
                  
                    
                      
                        ω
                        r
                      
                    
                  
                  
                    
                      
                        θ
                        e
                      
                    
                  
                
                ]
              
            
          
          ;
          
            x
            =
            
              [
              
                
                  
                    
                      I
                      α
                    
                  
                
                
                  
                    
                      I
                      β
                    
                  
                
                
                  
                    
                      ω
                      r
                    
                  
                
                
                  
                    
                      θ
                      e
                    
                  
                
              
              ]
            
          
          ;
          
            u
            =
            
              [
              
                
                  
                    
                      V
                      α
                    
                  
                
                
                  
                    
                      V
                      β
                    
                  
                
              
              ]
            
          
          ;
          
            y
            =
            
              [
              
                
                  
                    
                      I
                      α
                    
                  
                
                
                  
                    
                      I
                      β
                    
                  
                
              
              ]
            
          
          ;
        
        ⁢
        
          

        
        ⁢
        and
        ⁢
        
          

        
        ⁢
        
          
            
              A
              =
              
                [
                
                  
                    
                      
                        -
                        
                          
                            R
                            s
                          
                          L
                        
                      
                    
                    
                      0
                    
                    
                      
                        
                          N
                          P
                        
                        ⁢
                        
                          
                            λ
                            r
                          
                          L
                        
                        ⁢
                        sin
                        ⁢
                        
                          
                        
                        ⁢
                        
                          θ
                          e
                        
                      
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      
                        -
                        
                          
                            R
                            s
                          
                          L
                        
                      
                    
                    
                      
                        
                          -
                          
                            N
                            P
                          
                        
                        ⁢
                        
                          
                            λ
                            r
                          
                          L
                        
                        ⁢
                        cos
                        ⁢
                        
                          
                        
                        ⁢
                        
                          θ
                          e
                        
                      
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      0
                    
                    
                      0
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      0
                    
                    
                      
                        N
                        P
                      
                    
                    
                      0
                    
                  
                
                ]
              
            
            ;
            
              B
              =
              
                [
                
                  
                    
                      
                        1
                        L
                      
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      
                        1
                        L
                      
                    
                  
                  
                    
                      0
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      0
                    
                  
                
                ]
              
            
            ;
            
              H
              =
              
                [
                
                  
                    
                      1
                    
                    
                      0
                    
                    
                      0
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      1
                    
                    
                      0
                    
                    
                      0
                    
                  
                
                ]
              
            
          
          ,
        
      
    
    
      
        (
        15
        )
      
    
  




and further, equations (14) and (15) may be written as:

{dot over (x)}=A·x+B·u,  (16)

y=H·x.  (17)

where the approximate discrete equations of (16) and (17) can be written as

xk=(I+A·T)·xk−1+B·T·uk-1,  (18)

yk=H·xk.  (19)

where

    I is the unity matrix, and
    T is the sample time interval.

In considering the process and measurement noise, equations (18) and (19) may be written as

xk=f(xk-1,uk−1,σk−1),  (20)

yk=h(xk,ρk).  (21)

where

f(xk−1,uk−1,σk−1)=(I+A·T)xk−1+B·T·uk−1+σk−1,  (22)

h(xk,ρk)=H·xkρl.  (23)

From the previous equations, the states x of motor 308 (e.g., PMSM) may be estimated by estimator 330 through following two steps during each sampling time interval where these steps including the following:



1) Time Update Step:

{circumflex over (x)}k−=f({circumflex over (x)}k-1,uk,0),  (24)

Pk−=CkPk−1CkT+WkQk−1WkT.  (25)

2) Measurement Update Step:

Kk=Pk−DkT(DkPk−DkT+VkRkVkT)−1,  (26)

{circumflex over (x)}k={circumflex over (x)}k−+Kk(yk−h({circumflex over (x)}k−,0)),  (27)

Pk=(I−KkDk)Pk−.  (28)

where





  
    
      
        
          
            C
            
              [
              
                i
                ,
                j
              
              ]
            
          
          =
          
            
              
                ∂
                
                  f
                  
                    [
                    i
                    ]
                  
                
              
              
                ∂
                
                  x
                  
                    [
                    j
                    ]
                  
                
              
            
            ⁢
            
              (
              
                
                  
                    x
                    ^
                  
                  
                    k
                    -
                    1
                  
                
                ,
                
                  u
                  k
                
                ,
                0
              
              )
            
          
        
        ,
      
    
    
      
        (
        29
        )
      
    
  
  
    
      
        
          
            W
            
              [
              
                i
                ,
                j
              
              ]
            
          
          =
          
            
              
                ∂
                
                  f
                  
                    [
                    i
                    ]
                  
                
              
              
                ∂
                
                  σ
                  
                    [
                    j
                    ]
                  
                
              
            
            ⁢
            
              (
              
                
                  
                    x
                    ^
                  
                  
                    k
                    -
                    1
                  
                
                ,
                
                  u
                  k
                
                ,
                0
              
              )
            
          
        
        ,
      
    
    
      
        (
        30
        )
      
    
  
  
    
      
        
          
            D
            
              [
              
                i
                ,
                j
              
              ]
            
          
          =
          
            
              
                ∂
                
                  h
                  
                    [
                    i
                    ]
                  
                
              
              
                ∂
                
                  x
                  
                    [
                    j
                    ]
                  
                
              
            
            ⁢
            
              (
              
                
                  
                    x
                    ~
                  
                  k
                
                ,
                0
              
              )
            
          
        
        ,
      
    
    
      
        (
        31
        )
      
    
  
  
    
      
        
          V
          
            [
            
              i
              ,
              j
            
            ]
          
        
        =
        
          
            
              ∂
              
                h
                
                  [
                  i
                  ]
                
              
            
            
              ∂
              
                ρ
                
                  [
                  j
                  ]
                
              
            
          
          ⁢
          
            
              (
              
                
                  
                    x
                    ~
                  
                  k
                
                ,
                0
              
              )
            
            .
          
        
      
    
    
      
        (
        32
        )
      
    
  




In matrix form, C and D of equations (25) and (26) become





  
    
      
        
          C
          =
          
            [
            
              
                
                  
                    1
                    -
                    
                      T
                      ⁢
                      
                        
                          R
                          s
                        
                        L
                      
                    
                  
                
                
                  0
                
                
                  
                    
                      T
                      ·
                      
                        N
                        P
                      
                    
                    ⁢
                    
                      
                        λ
                        r
                      
                      L
                    
                    ⁢
                    sin
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      e
                    
                  
                
                
                  
                    
                      T
                      ·
                      
                        ω
                        r
                      
                      ·
                      
                        N
                        P
                      
                    
                    ⁢
                    
                      
                        λ
                        r
                      
                      L
                    
                    ⁢
                    cos
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      e
                    
                  
                
              
              
                
                  0
                
                
                  
                    1
                    -
                    
                      T
                      ⁢
                      
                        
                          R
                          s
                        
                        L
                      
                    
                  
                
                
                  
                    
                      
                        -
                        T
                      
                      ·
                      
                        N
                        P
                      
                    
                    ⁢
                    
                      
                        λ
                        r
                      
                      L
                    
                    ⁢
                    cos
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      e
                    
                  
                
                
                  
                    
                      T
                      ·
                      
                        ω
                        r
                      
                      ·
                      
                        N
                        P
                      
                    
                    ⁢
                    
                      
                        λ
                        r
                      
                      L
                    
                    ⁢
                    sin
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      e
                    
                  
                
              
              
                
                  0
                
                
                  0
                
                
                  1
                
                
                  0
                
              
              
                
                  0
                
                
                  0
                
                
                  
                    T
                    ·
                    
                      N
                      P
                    
                  
                
                
                  1
                
              
            
            ]
          
        
        ,
      
    
    
      
        (
        33
        )
      
    
  
  
    
      
        
          D
          =
          
            [
            
              
                
                  1
                
                
                  0
                
                
                  0
                
                
                  0
                
              
              
                
                  0
                
                
                  1
                
                
                  0
                
                
                  0
                
              
            
            ]
          
        
        ,
      
    
    
      
        (
        34
        )
      
    
  




where the footnotes k and k−1 are omitted.

From the above mathematical derivation, estimator 330 is produced as shown in FIG. 17. Advantageously, in accordance with the flow process diagram of FIG. 18, for each incremental time period k (e.g., k starting at 0 or 1) estimator (EKF filter) 330 receives as inputs the voltage in the stationary frame 418 (Vαβ) output from voltage transformer 326 and the current in the stationary frame 346 (Iαβ) output from current transformer 328 to generate output estimates for rotor position (Est_theta) 333, rotor speed (Est_ω) 327, and observer (current) states (Est_Iα, Est_Iβ) 329, 331 using the above equations. The estimator 330 further includes block matrices 1702, 1704 that may be noise covariance matrices derived from equations (25), (26), and block matrices 1706, 1708 that may be memory stacks for a time updating step.
During the time update step at step 1802, inputs 418 (Vαβ) and function blocks 1710, 1712, 1714, 1716, 1718, 1720, 1722, 1724 are used to compute equation (24). Also, during this time update step 1802, function blocks 1720, 1722, 1726, 1728, 1730, 1732 are used to compute equation (25). Subsequently, in a measurement update step at step 1804, output 1734 (P−) from function block 1732 and function blocks 1724, 1736, 1716, 1738, 1740, 1742, 1744, 1762 are used to compute equation (26). Further, during step 1804, output 1746 (X−) from function block 1718, output 1748 (K) from function block 1744, inputs 346 (Iαβ), and function blocks 1736, 1750, 1752, 1754, 1756, 1762 are used to compute equation (27) producing output 1766 (write_X). Also, during step 1804, output 1734 (P−) from function block 1732, output 1748 (K) from function block 1744, and function blocks 1736, 1758, 1760 are used to compute equation (28) producing output 1768 (write_P). Advantageously, to prevent calculation errors, the computations of the present time step may be delayed to the next time step by stacking the outputs of the estimator 330 into the function block 1706 in a current time-step and releasing the outputs through function block 1722 in a subsequent time-step. Further, these output estimates may be compared with the measured parameter values as output by PMSM model 308 and current transformer 328. Particularly, the outputs 1721, 1723, 1725 of the matrix calculator function block 1720 may be computed using the following functions: (I+A*T)*X to compute C− (1721), C*X to compute C (1723), and CT*X to compute C′ (1725) in accordance with the above-identified equations.
Advantageously, the estimation process as illustrated in FIG. 18 continues for succeeding time periods (k=k+1) for model system 300 as PMSM model 308 simulates the continuous operation of an actual PMSM to output rotor speed 1312, rotor position 1314, and three-phase current outputs 1325 that are used as control feedback signals to generate estimates for rotor position, rotor speed, and current (observer) states for succeeding time periods. This process is continued for subsequent measurement intervals to update the estimates for the output control vectors (feedback signals—Vαβ) 418 and measurement vectors (feedback signals—Iαβ) 346.
Although the above equations are particularly derived for a PMSM motor model, the sensorless method described herein using estimator 330 may be equally applied to a plurality of different motor models including PMSM, BLDCM, wound rotor synchronous motor (WRSM), and induction motor (IM). Further, a plurality of embodiments for sensorless control using an EKF as applied to WRSM and PMSM are described herein, and it may be appreciated by those skilled in the art to extend the EKF method for sensorless control to a plurality of other types of machines including IM, BLDCM, and other machines.
Advantageously, three different types of load blocks 310 may be used for system model 300 which include a load torque proportional to the square of the rotor speed 1312, a load torque proportional to the rotor speed 1312, and a constant load torque. Also, advantageously, the model system 300 uses a sinusoidal pulse width modulation power supply (SPWM inverter) 306 to simulate continuous motor operation during actual operation of the system which updates the control vectors in the system during each measurement-sampling interval. SPWM 306 simulates the outputs of a three-phase inverter by converting a DC voltage into a pulse width modulated waveform. Initially, pulse generator 301 generates an enable pulse to trigger control block 302 to produce useful three-phase voltage outputs (Va, Vb, Vc) from voltage transformer 326 to drive PMSM model 308. The three-phase voltage outputs (Va, Vb, Vc) are received by SPWM 306 and are compared with the product of a carrier voltage (triangular carrier waveform), produced by a CW (carrier wave) generator, and 2⁄3 of a DC voltage to produce gating signals for a three-phase inverter to generate three-phase PWM signals, Va—pwm, Vb—pwm, Vc—pwm to drive PMSM model 308.
Advantageously, a sensorless motor drive control system as described herein may be implemented in accordance with the system 600 shown in FIG. 6 where similar elements to FIGS. 1, 2 are identified the same. Sensorless motor drive control system 600 may include DC supply 102, inverter 104, motor 106, generator 107, load 602, hardware interface 604, controller 606, and processor 608. Optionally, the system 600 may include a dynamic break circuit 610 to function as a protection circuit from surge voltages from the inverter 104 by dynamically switching a resistive load into the DC supply—inverter circuit connection when a surge occurs. A voltage surge may occur when kinetic energy of the rotor is converted into electrical energy and fed back into the DC supply in response to the motor 106 being directed to slow down or reverse rotation. Also, system 600 may include a sensor 601 to detect (measure) rotor position and speed for motor 106 especially for testing analysis.
During operation, the DC supply 102 provides DC electrical power to the inverter 104 which converts the DC power into three-phase voltages with variable frequency and amplitude to drive the motor 106 (e.g., PMSM). The generator 107 (e.g., BLDCG) functions as a mechanical load for the motor 106 to provide generated power to a three-phase resistive load 602. Controller 606 is interconnected to inverter 104 via hardware interface 604 and executes instructions input by processor (e.g., computer) 608. Controller 606 includes the relevant control blocks from model system 300 including SPWM 306 and control block 302, which includes speed reference generator 301, speed controller 322, current controller 324, voltage/current transformers 326, 328, and estimator (EKF) 330, to estimate rotor position, rotor speed, current (observer) states for system 600 and provide useful drive signals for the inverter 104 to provide three-phase power to motor 106 as previously described. Further, advantageously, controller 606 may be implemented as a machine-readable medium including instructions to be executed for performing the functions of system 600.
FIGS. 7, 8, 9a, 9b illustrate the performance results of the sensorless motor control system 600 as implemented in FIG. 6. FIG. 7 compares a speed reference 702 (ωref) used for system 600 and provided by generator 301, with the estimated rotor speed 704 produced by controller 606 (ωest) and the rotor speed 706 (ωmsd) measured by sensor 601, and FIG. 8 illustrates the speed error between the measured rotor speed 706 and the estimated rotor speed (ωmsd−ωest). Advantageously, the speed reference 702 may be preset as a step-down waveform to better evaluate steady-state performance of the control system 600. As shown in FIG. 8, the larger errors may occur at transient periods where the rotor speed is being changed.
FIGS. 9a, 9b show the performance results for system 600 comparing the measured rotor position 902 (θmsd) by sensor 601, estimated rotor position 904 (θest) estimated by controller 606, rotor position error 905 (θmsd−θest), and the stator phase-current 906 output by motor 106 during the relevant testing period. FIGS. 9a, 9b illustrate the results for rotor speed at 5000 rpm and 1000 rpm, respectively, where the average steady-state position error is decreased for both 5000 rpm and 1000 rpm showing accurate position estimation for system 600.
Advantageously, system 600 may be operated using a plurality of preset, initial rotor positions especially to test the startup transient (from standstill) performance of the system. These preset positions may include 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, and 330 degrees. FIGS. 16a, 16b, 16c illustrate the startup transient performance of system 600 by comparing the measured rotor speed 1602 (ωmsd) with the estimated rotor speed 1604 (ωest) at preset, initial rotor positions of 0, 90, and 180 degrees, respectively. A speed reference 1606 (ωref) may provide a step command to start the motor at a predetermined time (e.g., 1.0 seconds) from standstill. As shown in these figures, the estimated rotor speed 1604 converges rapidly to the measured rotor speed 1602 for a variety of initial starting positions. Advantageously, this fast convergence for multiple starting positions eliminates the need for current pulse injection and divergence corrects which add to the complexity of system 600.
Although a three-phase load 602 is shown for system 600, it is noted that a plurality of different load conditions may be used to provide the sensorless EKF method described herein. In accordance with embodiments of the present invention, the EKF sensorless method may be implemented, as illustrated in FIG. 6, to provide accurate steady state/dynamic rotor position and speed information leading to proper operation of the controlled motor-drive system 600 from standstill to full speed and under a plurality of operating loading conditions.
The present invention provides a plurality of advantages including a robust and universal control method for a variety of sensorless motor controls including wound rotor synchronous motors (WRSM), brushless DC motors (BLDC), permanent magnet synchronous motors (PMSM), and induction motors (IM). Other advantages include improved steady state and dynamic performance for a variety of motor system operating conditions including from standstill to full rated speed with or without a rated torque load. Further advantages include proper control system operation for initial start-up, standstill at full torque, speed reversal, and power interruption. Also, the sensorless model described here may be insensitive to machine/system parameter variations, compatible with advanced control strategies/gating patterns (SPWM and SVM) with optimized power quality (PQ) and minimum electromagnetic interference (EMI). Further, the method described herein may provide lower sampling rates and switching frequencies resulting in reduced DSP throughput and reduced thermal management requirements and provide optimal filtering of noise when performing measurements in the system.
Although the invention is primarily described herein using particular embodiments, it will be appreciated by those skilled in the art that modifications and changes may be made without departing from the spirit and scope of the present invention. As such, the method disclosed herein is not limited to what has been particularly shown and described herein, but rather the scope of the present invention is defined only by the appended claims.

## Claims

1. An apparatus for speed and position sensorless control of a motor-drive system, comprising:
an estimator for generating estimates for rotor position and speed for a time-varying and non-linear motor, said estimator applying an Extended Kalman Filter that models motor operating conditions to estimate both rotor position and speed, said Extended Kalman Filter enabling said estimator to estimate rotor position and speed during motor start up for various initial rotor positions in absence of an injected current pulse, said Extended Kalman Filter automatically correcting divergence of estimated rotor position and speed during start up; and
a controller for generating motor drive control signals in response to rotor position and speed estimates generated by said estimator,
wherein said estimator directly estimates rotor speed from Extended Kalman Filter calculations without relying on a time derivative from estimated position.

2. The apparatus of claim 1, wherein said motor drive control signals are direct-axis (d-axis) and quadrature-axis (q-axis) reference voltages, said apparatus further comprising:
a frame transformer for transforming said d-axis and q-axis reference voltages into multi-phase voltage reference values.

3. The apparatus of claim 2, further comprising:
a pulse width modulation (PWM) generator for generating PWM signals based on said multi-phase voltage reference values; and
an inverter to provide conditioned power based on said PWM signals to drive said motor.

4. The apparatus of claim 1, wherein said motor is a permanent magnet synchronous motor, a wound rotor synchronous motor, an induction motor, or a brushless DC motor.

5. The apparatus of claim 1, wherein said controller includes a speed controller and a current controller.

6. The apparatus according to claim 1, wherein said estimator applies said Extended Kalman Filter to estimate rotor position and speed over the entire speed range of said motor and during variable load conditions.

7. A method for controlling a motor-drive system, comprising:
generating estimates for rotor position and speed for a time-varying and non-linear motor, said step of generating estimates applying an Extended Kalman Filter that models motor operating conditions to estimate both rotor position and speed, said Extended Kalman Filter enabling said step of generating estimates to accurately estimate rotor position and speed during motor start up for various initial rotor positions in absence of an injected current pulse, said Extended Kalman Filter automatically correcting divergence of estimated rotor position and speed during start up; and
generating motor drive control signals in response to rotor position and speed estimates generated by said step of generating estimates,
wherein said step of generating directly estimates rotor speed from Extended Kalman Filter calculations without relying on a time derivative from estimated position.

8. The method of claim 7, wherein said motor drive control signals are direct-axis (d-axis) and quadrature-axis (q-axis) reference voltages, said method further comprising:
frame transforming said d-axis and q-axis reference voltages to multi-phase voltage reference values.

9. The method of claim 7, wherein said motor is a permanent magnet synchronous motor, a wound rotor synchronous motor, an induction motor, or a brushless DC motor.

10. The method according to claim 8, further comprising:
generating pulse width modulation (PWM) signals based on said multi-phase voltage reference values; and
conditioning DC supply power based on said PWM signals to generate multi-phase AC power supplied to said motor.

11. A machine-readable medium having stored thereon a plurality of executable instructions, the plurality of instructions comprising instructions to:
generate estimates for rotor position and speed for a time-varying and non-linear motor, said step of generating estimates applying an Extended Kalman Filter that models motor operating conditions to estimate both rotor position and speed, said Extended Kalman Filter enabling said step of generating estimates to accurately estimate rotor position and speed during motor start up for various initial rotor positions in absence of an injected current pulse, said Extended Kalman Filter automatically correcting divergence of estimated rotor position and speed during start up; and
generate motor drive control signals in response to rotor position and speed estimates generated by said step of generating estimates,
wherein said step of generating directly estimates rotor speed from Extended Kalman Filter calculations without relying on a time derivative from estimated position.

12. The medium of claim 11, wherein said motor drive control signals are direct-axis (d-axis) and quadrature-axis (q-axis) reference voltages, said method further comprising instructions to:
frame transform said d-axis and q-axis reference voltages to multi-phase voltage reference values.

13. The medium of claim 11, wherein said a motor is a permanent magnet synchronous motor, a wound rotor synchronous motor, an induction motor, or a brushless DC motor.

14. The medium according to claim 12, further comprising instructions to:
generate pulse width modulation (PWM) signals based on said multi-phase voltage reference values; and
condition DC supply power based on said PWM signals to generate multi-phase AC power supplied to said motor.