Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

download Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

of 12

Transcript of Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    1/12

    IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 12, NO. 3, MAY 1997 495

    Modeling and Simulation of Induction MachineVector Control with Rotor Resistance Identification

    Scott Wade, Matthew W. Dunnigan, and Barry W. Williams

    Abstract This paper shows that it is possible to use cur-rently available commercial software to model and simulate avector-controlled induction machine system. The components ofa typical vector control system are introduced and methods givenfor incorporating these in the MATLAB/SIMULINK softwarepackage. The identification of rotor resistance is important invector control, if high-performance torque control is needed, andmodeling of the extended Kalman filter (EKF) algorithm forparameter identification is discussed. It is certainly advisable,when feasible, to precede implementation of new algorithms,whether for control or identification purposes, with an extensivesimulation phase. Additionally, a technique for generating pulse-width modulation (PWM) phase commands to extend machineoperation to higher speeds before field weakening occurs is

    simulated in a vector-controlled induction machine, driven bya PWM inverter. This demonstrates the versatility of the vector-controlled induction machine system model.

    Index TermsInduction machines, modeling, parameter esti-mation, simulation, vector control.

    NOMENCLATURE

    - and -axis stator and rotor currents

    in the stationary reference frame, A.

    synchronous frame - and -axis stator

    currents, A.

    Synchronous frame - and -axis stator

    reference currents, A.Stationary frame - and -axis stator

    voltages, V.

    Synchronous frame - and -axis stator

    voltages, V.

    Electrical developed torque, Nm.

    Stator and rotor leakage inductances,

    H.

    Stator, magnetizing and rotor induc-

    tances, H.

    Stator and rotor referred resistance, .

    Sampling interval, .

    synchronous speed, rotor speed, and

    slip speed, rad s .State-space system state, input and out-

    put vectors.

    Laplace operator, differential .

    Manuscript received March 25, 1996; revised August 16, 1996.The authors are with the Department of Computing and Electrical Engi-

    neering, Heriot-Watt University, Riccarton, Edinburgh, U.K. EH14 4AS.Publisher Item Identifier S 0885-8993(97)03288-2.

    I. INTRODUCTION

    The method of vector control allows high-performance

    control of torque, speed, or position to be achieved from an

    induction machine [1]. This method can provide at least the

    same performance from an inverter-driven induction machine

    as is obtainable from a separately excited dc machine. Vector

    control provides decoupled control of the rotor flux magnitude

    and the torque-producing current, with a fast, near-step change

    in torque achievable. The fast torque response is achieved

    by estimating, measuring, or calculating the magnitude and

    position of the rotor flux in the machine. In the indirect

    method of vector control presented here, the calculation of therotor flux position is dependent on the rotor resistance value.

    A parameter identification algorithm, such as the extended

    Kalman filter (EKF) [2], can be used for the estimation of

    rotor resistance.

    The evaluation of a vector-controlled induction machine

    system can be performed in two ways. The first approach uses

    a real machine with an appropriate vector controller and a

    current-regulated pulse width modulation (PWM) inverter. The

    vector controller is usually implemented on a microprocessor

    or microcontroller and the algorithm coded in assembler or

    C if a compiler is available. A digital signal processor

    (DSP) is required if rotor resistance estimation is also to

    be implemented. The second approach uses a simulation ofthe system. It is therefore necessary to be able to model the

    components of the system.

    Advantages of the first approach are that it naturally in-

    cludes factors such as the actual noise present, the PWM

    waveform and nonlinear device, and sensor characteristics

    that are difficult or impossible to include in a simulation.

    Advantages of using a simulation environment are that all

    quantities can be readily observed and parameters altered

    to investigate their effect and to help debug estimation and

    control routines. Sensor noise can be added to simulate the

    performance of real sensors in addition to testing the ability

    of parameter identification techniques to cope with noisy

    measurements. Process noise can be added to include model

    imperfections in the machine model. If tests on more powerful

    or higher rated speed machines are required, this can be readily

    implemented by changing only the parameters of the machine

    model. The ability to run the simulation slowly also aids

    diagnostics.

    Disadvantages of the practical approach are that it is difficult

    to observe and change the electrical parameters of the machine

    while it is runningnecessary to fully test the performance of

    the identification algorithm. Having a fixed motor size, type,

    08858993/97$10.00 1997 IEEE

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    2/12

    496 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 12, NO. 3, MAY 1997

    Fig. 1. Vector-controlled induction machine system.

    and power supply is also a limitation. Disadvantages of the

    simulation approach are that it is slow in comparison to the

    hardware approach. If perfect sensors are simulated, with nosensor noise, results can be misleading. Using these perfect

    measurements in a parameter identification algorithm would

    give better results than if the algorithm had been used on a

    real machine.

    This paper will demonstrate that it is feasible to model

    and simulate a vector-controlled induction machine system,

    including parameter identification, with a commercially avail-

    able software package, MATLAB/SIMULINK,1 that can be

    used for modeling and simulation of dynamic systems. It is

    also shown that new techniques for improvements in vector

    control can be readily investigated and incorporated in thissimulation environment.

    II. SYSTEM MODELING

    In the past, researchers have developed their own soft-

    ware packages for the modeling and simulation of vector-

    controlled induction machines [3][5]. In [3], a software

    package was developed, using the FORTRAN programming

    language, for the steady-state and dynamic simulation of

    induction motor drives. Digital simulation of field-oriented

    control of an induction motor, again implemented in FOR-TRAN, is described in [4]. Both of these approaches required

    the development of numerical integration routines for the

    solution of the resultant state-space equations that describe

    the systems. A general-purpose program, the electromagnetic

    transients program (EMTP), is described in [5] for the digital

    simulation of field-oriented control of induction motor drives.

    This program has the facility to extend simulation to other

    machine types.

    It will be demonstrated that it is now unnecessary to de-

    velop user-written software for this purpose, and a proprietary

    software package such as MATLAB/SIMULINK, licensed

    by Mathworks, is better suited to this task. MATLAB pro-

    vides a powerful matrix environment, the basis of state-space

    1 MATLAB and SIMULINK are trademarks of The MathWorks, Inc.

    modeling of dynamic systems, for system design, modeling,

    and algorithm development. SIMULINK is an extension to

    MATLAB and allows graphical block diagram modeling andsimulation of dynamic systems. It is easier to develop a

    vector-controlled induction machine system simulation using

    this package, as many components of the system are already

    included in the SIMULINK block diagram library. Some

    component examples are a transfer function block, general

    function block, summing junction block, and saturation block.

    This makes simulation design more efficient and allows other

    interested parties to understand the operation of the system

    more easily than a programming-language implementation. It

    is easy to capture, store, process, and display results using

    the predefined functions for these purposes. Integration algo-

    rithms included with the software are accurate and efficient,

    removing the need to write these. The disadvantage of using

    a proprietary simulation platform is the execution speed,

    although there are C compilers available for MATLAB -

    files and SIMULINK system block diagrams that can help

    alleviate this problem [6], [7]. It is also possible to build

    stand-alone applications using the MATLAB C Math Library

    [8] together with MATLAB and the MATLAB compiler. This

    application can then be run on a DSP platform, with an

    appropriate C compiler, for real-time control purposes. This

    greatly reduces development time and increases algorithm

    reliability.

    As in all system design activity, it is useful to split the

    system into smaller functional blocks and design and test eachindividually. The vector-controlled induction machine system

    with parameter identification was split into several smaller

    parts for the purpose of modeling (Fig. 1). These consist of

    the induction machine electrical and mechanical models, the

    vector controller, and the parameter identification algorithm.

    PWM was also included at a later stage.

    A. Induction Machine Electrical Model

    The continuous-time electromechanical model of an induc-

    tion machine is fifth order and nonlinear [9], with possible

    states (the choice of states for a state-space model is not

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    3/12

    WADE et al.: MODELING AND SIMULATION OF INDUCTION MACHINE VECTOR CONTROL 497

    unique) being the stator current phasor, rotor current phasor,

    and rotor speed. This represents the induction machine without

    core losses and neglects magnetic saturation and hysteresis,

    which can be incorporated at the expense of slower simulation.

    This can be expressed either in the stationary two-axis ( ) or

    synchronous two-axis ( ) frame. The stationary two-axis

    ( ) frame model is [10], as shown in (1)(5) at the bottom

    of the page, where .

    It is possible to use either a block diagram represen-

    tation of the machine, constructed from component blocks

    available in the SIMULINK block diagram library, or enter

    the differential equations directly into an -function-type of

    -file. A discrete-time system can be entered as a set of

    difference equations into an -function-type of -file. An

    -file is a MATLAB program that allows algorithms or

    equations to be entered in a programming language that

    is similar to C or Pascal. An -function block, from the

    SIMULINK nonlinear block diagram library, links this -

    file into a graphical block for use within the overall vectorcontrol system block diagram. This allows the flexibility of a

    mixed block diagram and differential equation programmedsystem to be entered.

    The graphical block diagram method of entering system

    descriptions can be inefficient if the number of system states

    is greater than two. Therefore, due to the induction machine

    electrical model having four states, the -file form of entry

    was chosen, using the continuous-time description of the

    machine, as shown in (1)(5). The induction machine -

    function -file is given in Appendix II, with the parameters

    of the machine given in Appendix I. The -function provides

    the derivatives of all the states in that model, based on the

    current time, its input, and its states. The derivative vector is

    returned to the MATLAB integration routine, which uses it to

    calculate a new state vector. The -function is provided to giveSIMULINK the ability to make generic simulation blocks to

    handle continuous simulation, discrete simulation, and mixed

    discrete-continuous simulation.

    For the machine model created, the inputs chosen were

    the stator voltages, rotor speed, and rotor resistance. The

    states chosen were the stator currents and rotor currents using

    the (twin) axis model in the stationary reference frame.

    This gives the four electrical states. The outputs chosen were

    the stator and rotor currents and the electrical developed

    torque. In a practical machine, the rotor currents are not

    directly measurable and require a state observer to estimate

    them.

    (a)

    (b)

    Fig. 2. SIMULINK block diagram of the induction machine mechanicalmodel.

    B. Induction Machine Mechanical Model

    The mechanical model was created separately from the

    electrical model of the induction machine, and the equations

    are

    (6)

    (7)

    where

    shaft and load inertia;

    maximum rated torque;

    maximum rated speed.The load represents an inertia with viscous friction. Due to

    the simple nature of the mechanical model, it was entered

    using SIMULINK blocks for integration and multiplication

    [Fig. 2(a)]. This was then grouped into one block to make the

    overall simulation model appear simpler [Fig. 2(b)].

    C. Vector-Controller Modeling

    The indirect method of vector control was simulated toinvestigate the effects of rotor resistance detuning on the

    induction machines torque response. This method also allows

    the performance of rotor resistance estimation schemes to be

    (1)

    (2)

    (3)

    (4)

    (5)

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    4/12

    498 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 12, NO. 3, MAY 1997

    Fig. 3. Vector-controlled induction machine SIMULINK block diagram and scope traces.

    evaluated. To implement indirect vector control, measurements

    required are the induction machine stator currents, as well as

    the rotor speed or position. These are obtained directly from

    the induction machine model.

    A rotor slip calculation is used to find the slip speed that

    is integrated to give the slip position. Adding this to the rotor

    position measurement gives the rotor flux position and, hence,the unit vectors required to transform between the stationary

    frame and rotating frame quantities. The differential equations

    that describe the calculation of the slip position are [9]

    (8)

    (9)

    The actual position of the rotor flux is found by integrating

    the calculated slip speed and adding the resultant slip angle

    to the rotor angle

    (10)

    The flux position, given by , is then used to calculate the

    quadrature unit vectors and . The stator currents

    are transformed from the stationary to synchronous reference

    frame by the following equations:

    (11)

    The errors in stator currents in the rotating reference frame

    were used to calculate the stator voltages using continuous-

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    5/12

    WADE et al.: MODELING AND SIMULATION OF INDUCTION MACHINE VECTOR CONTROL 499

    time proportional-integral (PI) controllers

    (12)

    where integral gain and proportional gain.The stator voltages are transformed from the synchronous

    to stationary frame by the following equations:

    (13)

    An -function -file was written to implement vector con-

    trol in continuous time using (8)(13) and then placed in

    a SIMULINK -function block. The vector-controller -

    function -file is given in Appendix III. This vector control

    block has stator currents, rotor speed, torque demand, fluxdemand, and rotor resistance estimate as inputs. The outputs

    are the stator voltages used to drive the machine and also

    the vector controllers estimates of the rotor flux linkage and

    rotating frame stator currents.

    At this stage, it was possible to simulate the induction

    machine being driven by the vector controller. The complete

    SIMULINK block diagram is shown in Fig. 3. Torque and

    flux commands, actual rotor resistance of the machine, and

    the rotor resistance estimate as used by the vector controller

    can be time-varying. They were, therefore, entered in matrices

    in an initialization -file that was run before the simulation

    commenced. The matrices are then used in SIMULINK from

    workspace blocks, which interpolate the time and input values

    contained in the matrices. It was found that to maintain

    simulation accuracy, a maximum integration step time of100 s was required when using the RungeKutta integration

    routine. Larger step times could be used if there are no step

    changes in the flux or torque demands. Simulation results are

    shown in Figs. 3 and 4 for a constant torque command tothe vector controller and a high initial flux-producing current

    command for 0.04 s followed by a smaller flux producing

    current command to maintain a constant flux level. This

    produces the torque curve as shown, with an initial torque ramp

    while the flux is increasing, then a constant level when the

    rotor flux and torque-producing current are constant. The four

    traces shown in Fig. 3 are produced by using the SIMULINK

    scope blocks and allow these quantities, and

    to be observed while the simulation is running. Fig. 4is produced by using the MATLAB plot command once the

    simulation has terminated.

    D. PWM Generation

    To verify that using a PWM supply would give similar

    results to the linear supply produced by the vector controller,

    a PWM block was created to generate a PWM switching

    waveform from any input waveform. This uses the usual

    triangular waveform and comparator method to calculate the

    switching points. This was coded in an -function -file

    (which, this time, had no states), given in Appendix IV, and

    Fig. 4. Stator current, torque, and rotor speed. Simulation results for a linearsupply. Simulation: 20-min CPU time (486dx2-66).

    was masked to produce a custom block with user-definable

    parameters for switching frequency, output voltage, and inputvoltage for 100% duty cycle. Although minimum on-time, off-

    time, and pulse deletion were not included in this simulation,

    MATLAB/SIMULINK can be used to include these PWM

    features, at the expense of increased simulation time.

    The system was simulated with the PWM generators in-

    serted between the vector controllers outputs and the ma-

    chines stator voltage inputs. A 5-kHz PWM switching rate

    was used with a peak output of 500 V. Due to the fast

    switching nature of the PWM signal, the maximum integration

    step time had to be reduced from 100 to 2 s to maintain

    simulation accuracy. The results are shown in Fig. 5. These

    are similar to the results shown in Fig. 4, where the simulation

    was executed under the same conditions, but using linear(sine-wave) drive voltages instead of PWM voltages. (The

    drive voltages of the voltage source current-regulated vector-

    controlled machines are only sinusoidal under steady-state

    conditions.) The similarity of these sets of results suggest

    that it is not necessary to include PWM in the simula-

    tion.

    III. ROTOR RESISTANCE IDENTIFICATION

    The identification of the rotor resistance parameter was

    implemented separately from the rest of the system because

    simulation of the entire system is very slow. It is not nec-

    essary to have new simulation data every time a modifiedidentification algorithm is to be tested. The decoupling of the

    parameter identifier from the vector-controller simulation has

    the disadvantage of not being able to feedback the parameter

    estimates into the vector controller.

    The parameter identification algorithms used in the iden-

    tification of the rotor resistance divide into stochastic and

    deterministic types. The EKF [11], [12], taking into account

    process and measurement noise, is in the former class, and

    the extended Luenberger observer (ELO) [13], [14] belongs

    to the latter class. The modeling of the EKF in MATLAB is

    described here.

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    6/12

    500 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 12, NO. 3, MAY 1997

    Fig. 5. Stator current, torque, and rotor speed. Simulation results for PWMsupply. Simulation: 10-h CPU time (486dx2-66).

    The standard KF [15] is a recursive state estimator capable

    of use on a multi-input/output system with noisy measurementdata and process noise (stochastic plant models). It uses the

    plants inputs and output measurements, together with a state-

    space model of the system, to give optimal estimates of the

    system states. In this standard form, it can only estimate

    the stator and rotor currents. To estimate the rotor

    resistance, this time-varying parameter is treated as a state,

    and a nonlinear model is formed with the states consisting of

    the parameter to be estimated and the original states. This new

    model is nonlinear due to the multiplication of the parameter

    (now a state) with the other states and is linearized about the

    operating point, resulting in a linear perturbation model. The

    new state-space model is written as

    (14)

    (15)

    where is the

    combined state and parameter matrix, is the

    nonlinear state function, is the process noise, and

    is the measurement noise. The output matrix of (15) is

    (16)

    To use a nonlinear model with the standard KF, the model

    must be linearized about the current operating point, giving a

    linear perturbation model

    (17)

    The EKF equations are

    (18)

    (19)

    (20)

    Evaluating the partial differential of gives (21), shown

    at the bottom of the page, for the stationary frame inductionmachine model

    (22)

    where is the state estimate error covariance matrix,

    is the error covariance of the initial state estimate

    , is the Kalman gain matrix, is the process noise

    covariance matrix, and is the sensor noise covariance matrix.

    The process noise and sensor noise are assumed statistically

    independent.

    The basis of the EKF algorithm is (18)(20). The matricesin these equations have been stated in (16) and (21) and the

    constants defined in (22). The initial value of the matrix

    and the and matrices were

    (23)

    (24)

    (21)

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    7/12

    WADE et al.: MODELING AND SIMULATION OF INDUCTION MACHINE VECTOR CONTROL 501

    Fig. 6. EKF estimate of rotor resistance. Simulation: 10-min CPU time(486dx2-66).

    These equations were coded in an -file, given in Appendix

    V, this time being written in a similar way to a C or Pascal

    program rather than in the -function format. Fig. 6 shows the

    results for the EKF. In this case, the EKF algorithm operated

    at a sample rate of 10 kHz, the same as the system simulation,

    but it is possible to use lower sample rates. The rotor resistance

    was stepped from 1 to 1.5 , thereby simulating a change in

    rotor resistance due to a temperature change. The flux and

    torque commands were both set at 9 A, their rated values, and

    the rotor speed was held constant at 100 rad s .

    Although convergence is fast, there is a steady-state error in

    the rotor resistance estimate. The authors have discussed this

    effect in [16] and developed techniques to reduce the bias.

    Although the above estimation was carried out on simulation

    data without any noise added, it is possible to add any amountof noise to the measurements (sensor noise) without having to

    rerun the simulation, only the estimation.

    IV. FIELD WEAKENING AND PWM

    TRIPLEN HARMONIC INJECTION

    One advantage of using vector control on an induction

    machine is the possibility of operation at speeds above the

    base speedin the field-weakening region. This is possible

    by driving the machine at full volts, but with a frequency

    above the machines rated supply frequency, or in the case of

    a vector-controlled machine, by reducing the flux command

    reference. This results in a weaker field in the machine

    due to the lack of volts available from the inverter. If thefrequency applied to the motor is increased, an increase in

    voltage is required to overcome the drop across the machine

    inductances.

    With a voltage source inverter, the dc-link voltage is often

    derived by rectifying the three-phase mains supply. This gives

    a dc rail voltage of , where is the mains line

    voltage. Applying sinusoidal voltage commands to the PWM

    generator gives an output phase voltage swing of or

    an output line voltage swing of . Direct connection

    to the mains would give an output line voltage swing of

    , which means the inverter-driven machine only sees

    Fig. 7. Voltage command with and without extended saturation operation insteady state.

    (or approximately 86.6%) of the voltage available to

    a machine connected directly to the mains. This results infield weakening occurring at approximately 86.6% of the rated

    speed.

    One solution to this problem is to increase the dc-link

    voltage above the value obtainable by directly rectifying the

    three-phase mains. This requires a switch-mode supply or

    another three-phase bridge with line reactors on the input. A

    disadvantage of this increased dc-link voltage is the increased

    risk of insulation breakdown in the motor. A motor connected

    directly to the mains experiences a peak voltage of

    across its windings. A motor driven by a switching supply,

    with a dc link obtained by directly rectifying the mains,

    sees a peak voltage of regardless of what

    effective voltage the motor is being supplied with. A motordriven by a switching supply with a dc-link voltage higher

    than this value will have a higher peak winding voltage than

    the rated value, resulting in the increased risk of insulation

    breakdown.

    Injection of triplen-series harmonics into the inverter phase

    voltages has been used in the past to extend the effec-

    tive sine-wave voltage seen by voltage-fed machines [17]. A

    new technique developed for a vector-controlled synchronous

    reluctance motor [18] has been tested in the simulated vector-

    controlled induction machine system. This method utilizes

    the fact that when one phase of the motor is at the peak

    voltage, then neither of the other two phases can be at the

    opposite polarity peak. An offset can therefore be added toall phase commands to shift the PWM commands away from

    the saturation point. Since the same offset is added to all

    phase commands, the motor still sees the same waveform

    as before. However, larger amplitude waveforms can now be

    produced.

    The stationary axis voltages from the vector controller

    are fed into the new transformation algorithm, which calculates

    the three-phase voltage commands for the induction ma-

    chine (or PWM inverter), with an extended voltage saturation

    range over standard sine-wave voltage commands. Fig. 7

    shows steady-state operation, with the nonsinusoidal voltage

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    8/12

    502 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 12, NO. 3, MAY 1997

    Fig. 8. SIMULINK block diagram of the additions to the original system to demonstrate voltage saturation.

    command to the PWM generator together with a sine-wave

    command that produces the same voltage as seen by the motor.

    This boosts the effective output voltage as seen by the motor

    by a factor of , exactly what is lost by using an inverter

    with sinusoidal PWM commands over direct connection to

    the mains. Note that the voltages seen by the motor are

    still sinusoidal, despite using a nonsinusoidal PWM drive

    command.

    To prove that this technique works, voltage saturation

    blocks were included in the simulated system between the

    vector-controller voltage outputs and induction machine inputs

    (Fig. 8). A listing of the -file for the extended saturationalgorithm is given in Appendix VI. Phase-to-line and three-

    phase-to-two-phase transformations were also required since

    the induction machine model requires twin-axis voltages, not

    three-phase voltages. The simulation results can be seen in

    Fig. 9. These results were obtained by setting the peak voltage

    available to 170 V and slowly accelerating the machine to

    find the speed at which saturation occurs (the field-weakening

    region). It can be seen that using the algorithm to extend the

    effective saturation voltage range (by 15.5%) has allowed the

    machine speed to be increased from approximately 220 to 256

    rad s (16.4% increase) before inverter saturation occurs (thestart of the field-weakening region).

    V. CONCLUSIONS

    It has been shown that the MATLAB/SIMULINK software

    package is suitable for vector-controlled induction machine

    simulations. Parameter identification algorithms for rotor re-

    sistance identification, such as the EKF, may be coded in an

    -file and easily modified. Models may be created in block

    diagram form from differential equations, or difference equa-

    tions if the process is discrete, with the simulation software

    providing efficient integration algorithms.

    The vector-controlled induction machine system was sim-ulated using a linear supply (sine-wave in steady state) and

    a PWM supply. The results were found to be the same

    except for a small amount of expected ripple at the switching

    frequency in the case of the PWM waveform. It was found that

    the maximum integration step time for the PWM simulation

    had to be about 100 times smaller than the PWM carrier

    period to maintain accuracy, resulting in slower simulationcompared to the linear supply simulation. Because of the

    similarity in results between the two waveforms, it is sufficient

    to use a linear supply for simulations, giving a quicker

    simulation.

    (a)

    (b)

    Fig. 9. Torque versus rotor speed as operation approaches the

    field-weakening region: (a) without extended saturation algorithm and(b) with extended saturation algorithm Simulation: 30-min CPU time for0.5-s motor time (486dx2-66).

    The EKF algorithm for identification of rotor resistance was

    presented and the equations and -file listing given. This -

    file was operated in a stand-alone manner from the vector

    control simulation to reduce simulation time and allowed off-

    line investigation of the properties of the EKF algorithm.

    MATLAB was used to implement a method of triplen-series

    injection into the stator voltages of voltage-source current-

    regulated vector-controlled induction machines using the same

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    9/12

    WADE et al.: MODELING AND SIMULATION OF INDUCTION MACHINE VECTOR CONTROL 503

    simulation system that was created for testing parameter iden-

    tification routines. It was found that this harmonic injection

    method extended the speed range before field weakening

    occurred. This shows the suitability of the software to quickly

    evaluate new designs that can be incorporated in a vector-

    controlled induction machine system.

    APPENDIX I

    MOTOR PARAMETERS

    ;

    ;

    H;

    H;

    H;

    at - and 50 Hz;

    moment of inertia, kg m .

    APPENDIX II

    INDUCTION MACHINE -FUNCTION-TYPE m -FILE LISTING

    function [sys,x0] = indmod1 (t,x,u,flag)

    %Induction motor model as set of diff-equations%This is a continuous-time simulation.

    %Variables required before execution: Rs,Ls,Lr,Lm

    %Inputs: Vds Vqs Wr Rr%Outputs: Ids Iqs Idr Iqr Te

    Rs=5.90; Ls=0.831; Lm=0.809; Lr=0.833;

    a0=1/ (Lm*Lm-Lr*Ls);

    if abs (flag) == 1 % If flag=1,return state

    derivatives,xdot

    Rr=u(4);

    idsn=( Rs*Lr*x(1) - u(3)*Lm*Lm*x(2) - Rr*Lm*x(3)

    - u(3)*Lr*Lm*x(4) - Lr*u(1))*a0;

    iqsn=( u(3)*Lm*Lm*x(1) + Rs*Lr*x(2)+ u(3)*Lr*Lm*x(3) - Rr*Lm*x(4) - Lr*u(2) )*a0;

    idrn=-( Rs*Lm*x(1) - u(3)*Lm*Ls*x(2) - Rr*Ls*x(3)

    - u(3)*Lr*Ls*x(4) - Lm*u(1) )*a0;

    iqrn=-( u(3)*Lm*Ls*x(1) + Rs*Lm*x(2)

    + u(3)*Lr*Ls*x(3) - Rr*Ls*x(4)

    -Lm*u(2) )*a0;

    sys=[idsn;iqsn;idrn;iqrn];

    elseif flag == 3 % If flag=3,return system outputs,y

    Te=1.5*Lm*(x(2)*x(3)-x(1)*x(4));

    sys=[x(1);x(2);x(3);x(4);Te];

    elseif flag == 0

    %return system dimensions and init. conditions

    %no.continuous states, no. discrete states,

    outputs, inputs,

    %discontinuous roots, direct feedthrough from

    inputs to outputs.

    sys=[4,0,5,4,0,0];

    x0=zeros(4,1); % initial state vector

    else sys=[ ];end %otherwise, dont return anything.

    APPENDIX III

    VECTOR CONTROLLER ALGORITHM

    -FUNCTION-TYPE m -FILE LISTING

    function [sys,x0]=vecctrl5(t,x,u,flag)

    %Produces induction machine stator dq volts.

    (Also unit vectors, idse & iqse)%Inputs: Wr idss iqss idse* iqse* Rrhat

    %Outputs: Vdss Vqss idse iqse Psir

    %This is a continuous-time simulation.

    Rs=5.09; Lm=0.809; Ls=0.831; Lr= 0.833;

    G1=2e5; G3=400; %G1 = integral gain,

    G3 = proportional gain

    if flag == 3 % If flag=3,return system outputs,y

    cose=cos(rem(x(2)+x(3),2*pi));

    sine=sin(rem(x(2)+x(3),2*pi));

    idse=u(2)*cose+u(3)*sine;

    iqse=-u(2)*sine+u(3)*cose;

    iderr=u(4)-(u(2)*cose+u(3)*sine);

    iqerr=u(5)-(-u(2)*sine+u(3)*cose);

    Vdse=x(4)+G3*iderr;Vqse=x(5)+G3*iqerr;

    Vdss=Vdse*cose-Vqse*sine;

    Vqss=Vdse*sine+Vqse*cose;

    % Return: Vdss, Vqss, idse, iqse, Psir

    sys=[Vdss;Vqss;idse;iqse;x(1)];

    elseif flag == 1 % return system state derivatives

    cose=cos(rem(x(2)+x(3),2*pi));

    sine=sin(rem(x(2)+x(3),2*pi));

    idse=u(2)*cose+u(3)*sine;

    iqse=-u(2)*sine+u(3)*cose;

    temp=u(6)/Lr;if x(1)==0 Psir=1e-6;

    else Psir=x(1);

    end

    % State derivatives of: Psir Osl, Or, G1*idserr

    & G1*iqserr

    sys=[temp*(Lm*idse-x(1));Lm/Psir*temp*iqse;u(1);

    G1*(u(4) -idse);G1*(u(5)-iqse)];

    elseif flag == 0

    x0=zeros(5,1);

    sys=[5,0,5,6,0,1];

    else

    sys=[ ];

    end.

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    10/12

    504 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 12, NO. 3, MAY 1997

    APPENDIX IV

    PWM GENERATION ALGORITHM

    -FUNCTION-TYPE m -FILE LISTING

    function [sys,x0]=s PWM(t,x,u,flag,PWM f,PWM pk,vi pk)

    %Produces PWM waveform for input

    %Inputs: Vi (range -vi pk to +vi pk)

    %Outputs: Vo

    %Parameters: PWM f PWM pk vi pk

    % where PWM f is the switching frequency

    % PWM pk is the output on voltage

    % vi pk is the input voltage for 100%

    output duty cycle

    %This is a continuous-time simulation.

    if flag == 3

    if (abs(u(1))/vi pk) = (PWM f*rem(t,1/PWM f)),

    Vo=PWM pk;

    else Vo=0;

    end;if u(1) , Vo=-Vo;

    end;

    %Return: Vo

    sys=[Vo];

    elseif flag == 0

    sys=[0,0,1,1,0,1];

    else

    sys=[ ];

    end.

    APPENDIX V

    EKF m -FILE LISTING

    % THEKF1.M Extended Kalman Filter Identification

    Algorithm% States are stator/rotor currents & rotor resistance

    STEP=1; %Step size

    koff=12 000; %Start sample

    ts=1.0e-4; %Simulation input sampling period

    tsest=STEP*ts; %estimation sampling periodMAXSAMPLES=floor(max(size(Wr)-koff)/STEP);

    Rs=0.55; Lm=0.063; Ls=Lm+0.005; Lr=Ls;

    % motor constants

    R2Estinit=0.5; % initial Rr estimate

    PMTXINIT=10; % state error covariance

    QMTXINIT=5e-9; QMTXr=5e-7; Q55=5e-8;

    % process noise covar

    RMTXINIT=0.03; % sensor noise covar

    % Create matrices

    Umtx=zeros(2,1); Ymtx=Umtx; FEstmtx=zeros(5,5);

    HEstmtx=[1 0 0 0 0;0 1 0 0 0];

    XEstmtx=[Ids(koff);Iqs(koff);0;0;R2Estinit];

    Pmtx=PMTXINIT*eye(5); Pmtx(5,5)=PMTXINIT/100;

    Qmtx=QMTXINIT*eye(5); Qmtx(3,3)=QMTXr;

    Qmtx(4,4)=QMTXr; Qmtx(5,5)=Q55;

    Rmtx=RMTXINIT*eye(2); Kmtx=zeros(5,2);

    IdsEstmtx=zeros(MAXSAMPLES,1);

    IqsEstmtx=IdsEstmtx;

    IdrEstmtx=IdsEstmtx; IqrEstmtx=IdsEstmtx;RrEstmtx=IdsEstmtx;

    % Time-invariant quantities

    a0=-1/(Ls*Lr-Lm*Lm); a11=1+Rs*Lr*tsest*a0;

    a12=-Lm*Lm*tsest*a0;

    a13=-Lm*tsest*a0; a14=-Lm*Lr*tsest*a0;

    a31=-Rs*Lm*tsest*a0;

    a32=Ls*Lm*tsest*a0; a33=Ls*tsest*a0;

    a34=Ls*Lr*tsest*a0;

    a9=-Lr*a0*tsest; a10=Lm*a0*tsest;

    GEstmtx=[a9 0;0 a9;a10 0;0 a10;0 0];

    % Calc. GEst, input coupling matrixFEstmtx(1,1)=a11; FEstmtx(2,2)=a11;

    FEstmtx(3,1)=a31; FEstmtx(4,2)=a31;

    FEstmtx(5,1)=0; FEstmtx(5,2)=0;

    FEstmtx(5,3)=0; FEstmtx(5,4)=0;

    FEstmtx(5,5)=1;

    % Now start parameter estimation loop

    for k=1:MAXSAMPLES-1,

    sample=k*STEP+koff; % sample number from

    raw data

    Umtx(1)=Vds(sample); Umtx(2)=Vqs(sample);

    Ymtx(1)=Ids(sample); Ymtx(2)=Iqs(sample);wr=Wr(sample);

    % First calculate FEst matrix (time-varying)

    FEstmtx(1,2)=a12*wr; FEstmtx(1,3)=a13

    *XEstmtx(5);

    FEstmtx(1,4)=a14*wr; FEstmtx(1,5)=a13

    *XEstmtx(3);

    FEstmtx(2,1)=-FEstmtx(1,2); FEstmtx(2,3)=

    -FEstmtx(1,4);FEstmtx(2,4)=FEstmtx(1,3); FEstmtx(2,5)=a13

    *XEstmtx(4);

    FEstmtx(3,2)=a32*wr; FEstmtx(3,3)=1+a33

    *XEstmtx(5);FEstmtx(3,4)=a34*wr; FEstmtx(3,5)=a33

    *XEstmtx(3);

    FEstmtx(4,1)=-FEstmtx(3,2); FEstmtx(4,3)=

    -FEstmtx(3,4);

    FEstmtx(4,4)=FEstmtx(3,3); FEstmtx(4,5)=a33

    *XEstmtx(4);

    Amtx=FEstmtx; Amtx(:,5)=zeros(5,1);

    Amtx(5,5)=1;

    % K(k)=F(k)*P(k)*HT*inv(H*P(k)*HT+R)

    Kmtx=FEstmtx*Pmtx*HEstmtx*inv

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    11/12

    WADE et al.: MODELING AND SIMULATION OF INDUCTION MACHINE VECTOR CONTROL 505

    (HEstmtx*Pmtx*HEstmtx+Rmtx);

    % Now, XEst=f(XEst,U)+K*(Y-H*XEst)XEstmtx=Amtx*XEstmtx+GEstmtx*Umtx+Kmtx*

    (Ymtx-HEstmtx*XEstmtx);

    % Lastly, Pmtx=F*P*FT+Q-K*(H*P*HT+R)*KT

    Pmtx=FEstmtx*Pmtx*FEstmtx+Qmtx-Kmtx*

    (HEstmtx*Pmtx*HEstmtx+Rmtx)*Kmtx;

    % Save variables as requiredIdsEstmtx(k+1)=XEstmtx(1);

    IqsEstmtx(k+1)=XEstmtx(2);

    IdrEstmtx(k+1)=XEstmtx(3);

    IqrEstmtx(k+1)=XEstmtx(4);

    RrEstmtx(k+1)=XEstmtx(5);

    end; %end of estimation loop.

    APPENDIX VIEXTENDED SATURATION ALGORITHM

    -FUNCTION-TYPE m -FILE LISTING

    function [sys,x0]=s nosat(t,x,u,flag)

    %Extends effective inverter saturation volts

    %Inputs: Vdss Vqss (stationary frame)

    %Outputs: Va Vb Vc

    %This is a continuous-time simulation block.

    if flag == 3 %return system outputs,y

    Va=u(2); %convert 2-phase to 3-phase

    Vb=-0.5*u(2)-sqrt(3)/2*u(1);Vc=-0.5*u(2)+sqrt(3)/2*u(1);

    Vlimit=sqrt(3)/2*sqrt(u(1) 2+u(2) 2);

    Vasat=Va;

    Vbsat=Vb;

    Vcsat=Vc;

    % Limit Va,Vb,Vc

    if Va Vlimit, Vasat=Vlimit;end;

    if -Va Vlimit, Vasat=-Vlimit;end;

    if Vb Vlimit, Vbsat=Vlimit;end;

    if -Vb Vlimit, Vbsat=-Vlimit;end;

    if Vc Vlimit, Vcsat=Vlimit;end;

    if -Vc Vlimit, Vcsat=-Vlimit;end;Verror=Vasat+Vbsat+Vcsat;

    Va=Va+Verror;

    Vb=Vb+Verror;

    Vc=Vc+Verror;

    % Return: Va, Vb, Vc & Verror (for monitoring)

    sys=[Va;Vb;Vc;Verror];

    elseif flag == 0

    sys=[0,0,4,2,0,1];

    else sys=[ ]; end.

    REFERENCES

    [1] P. Vas, Vector Control of AC Machines. London, U.K.: Oxford Univ.Press, 1990.

    [2] S. Wade, M. W. Dunnigan, and B. W. Williams, Parameter identifica-tion for vector controlled induction machines, Control 94, vol. 2, no.389, pp. 11871192, 1994.

    [3] J. D. Lavers and R. W. Y. Cheung, A software package for the steady

    state and dynamic simulation of induction motor drives, IEEE Trans.Power Syst., vol. PWRS-1, May 1986, pp. 167173.

    [4] S. Sathikumar and J. Vithayathil, Digital simulation of field-orientedcontrol of induction motor, IEEE Trans. Ind. Electron., vol. IE-31, May1984, pp. 141148.

    [5] Z. Daboussi and N. Mohan, Digital simulation of field-oriented controlof induction motor drives using EMTP, IEEE Trans. Energy Conver-sion, vol. 3, Sept. 1988, pp. 667673.

    [6] The MATLAB compiler users guide, in Mathworks Handbook.Math Works, 1994.

    [7] The SIMULINK accelerator users guide, in Mathworks Handbook.Math Works, 1994.

    [8] The MATLAB C math library users guide, in Mathworks Handbook.Math Works, 1994.

    [9] B. K. Bose, Power Electronics and AC Drives. Englewood Cliffs, NJ:Prentice-Hall, 1986.

    [10] D. J. Atkinson, P. P. Acarnley, and J. W. Finch, Observers for inductionmotor state and parameter estimation, IEEE Trans. Ind. Applicat., vol.

    27, no. 6, pp. 11191127, 1991.[11] L. Loron and G. Laliberte, Application of the extended Kalman filter

    to parameters estimation of induction motors, in EPE Conf., Brighton,U.K., 1993, pp. 8590.

    [12] D. J. Atkinson, P. P. Acarnley, and J. W. Finch, Parameter identificationtechniques for induction motor drives, in EPE Conf., Aachen, Germany,1989, pp. 307312.

    [13] T. Orlowska-Kowalska, Application of extended Luenberger observerfor flux and rotor time-constant estimation in induction motor drives,Proc. Inst. Elect. Eng., vol. 136, pt. D, no. 6, pp. 324330, 1989.

    [14] T. Du, P. Vas, and F. Stronach, Design and application of extendedobservers for joint state and parameter estimation in high-performanceAC drives, IEE Proc. Elec. Power Appl., vol. 142, no. 2, pp. 7178,1995.

    [15] H. F. Vanlandingham, Introduction to Digital Control Systems. NewYork: Macmillan, 1992.

    [16] S. Wade, M. W. Dunnigan, and B. W. Williams, Comparison of

    stochastic and deterministic parameter identification algorithms forindirect vector control, in IEE Colloquium on Vector Control and DirectTorque Control of Induction Machines, London, U.K., 1995, pp. 2/12/5.

    [17] B. W. Williams, Power Electronics. London: Macmillan, 1992, pp.368371.

    [18] J. E. Fletcher, T. C. Green, and B. W. Williams, Vector control of asynchronous reluctance motor utilizing an axially laminated rotor, in

    IEE PEVD 94, 1994, pp. 4247.

    Scott Wade received the M.Eng. degree in electricaland electronic engineering (with merit) in 1991 andthe Ph.D. degree in 1996, both from Heriot-WattUniversity, Edinburgh, U.K.

    Since then, he has been carrying out research inparameter estimation and nonlinear position/speedcontrol for vector-controlled induction machines andthe application of high-performance DSPs and mi-crocontrollers to motor control.

    Authorized licensed use limited to: Reva Institute of Tehnology and Management. Downloaded on October 11, 2008 at 04:12 from IEEE Xplore. Restrictions apply.

  • 8/14/2019 Modeling and Simulation of IM Vector Control With Rotor Resistance Identification

    12/12

    506 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 12, NO. 3, MAY 1997

    Matthew W. Dunnigan received the B.Sc. degreein electrical and electronic engineering (with First-Class Honors) from Glasgow University, Glasgow,U.K., in 1985 and the M.Sc. and Ph.D. degrees fromHeriot-Watt University, Edinburgh, U.K., in 1989and 1994, respectively.

    He was employed by Ferranti from 1985 to 1988as a Development Engineer in the design of powersupplies and control systems for moving opticalassemblies and device temperature stabilization. In

    1989, he became a Lecturer at Heriot-Watt Univer-sity, where he was concerned with the evaluation and reduction of the dynamiccoupling between a robotic manipulator and an underwater vehicle. Hisresearch grants and interests include the areas of hybrid position/force controlof an underwater manipulator, coupled control of manipulator-vehicle systems,nonlinear position/speed control and parameter estimation methods in vectorcontrol of induction machines, frequency domain self-tuning/adaptive filtercontrol methods for random vibration, and shock testing using electrodynamicactuators.

    Barry W. Williams received the M.Eng.Sc. degree from the University ofAdelaide, Adelaide, Australia, in 1978 and the Ph.D. degree from CambridgeUniversity, Cambridge, U.K., in 1980.

    After seven years as a Lecturer at Imperial College, University of London,U.K., he was appointed to as Chair of Electrical Engineering at Heriot-WattUniversity, Edinburgh, U.K., in 1986. His teaching covers power electronics(in which he has a text published) and drive systems. His research activitiesinclude power semiconductor modeling and protection, converter topologiesand soft-switching techniques, and application of ASICs and microprocessorsto industrial electronics.