Multiple Simultaneous Specifications Control High-Speed · PDF filePage 6.5 AC Induction Motor...
Transcript of Multiple Simultaneous Specifications Control High-Speed · PDF filePage 6.5 AC Induction Motor...
Multiple Simultaneous Specifications (MSS) Control Design Method of a High-Speed
AC Induction Motor
SeungJu Lee
A thesis submitted in conformity with the requirements for the degree of Master of Applied Science
Graduate Department of Mechanical and industrial Engineering University of Toronto
8 Copyright by Seung-Su Lee 2000
National Library ($1 of Canada Bibliothbque nationale du Canada
Acquisitions and Acquisitions et Bibliographie Serviws senrices bibliogiaphiques
395 Welligton Street 395, me Wellington OtEawaON K 1 A W OltawaON K1AON4 CBMda Canede
The author has granted a non- exclusive licence allowing the National Library of Canada to reproduce, loan, distribute or sell copies of this thesis in microform, paper or electronic formats.
The author retains ownership of the copyright in this thesis. Neither the thesis nor substantial extracts Erom it may be printed or otherwise reproduced without the author's permission.
L'auteur a accordé une Licence non exclusive permettant à la Bibliothèque nationale du Canada de reproduire, prêter, distribuer ou vendre des copies de cette thèse sous la forme de microfiche/nlm, de reproduction sur papier ou sur format électronique.
L'auteur conserve la propriété du droit d'auteur qui protège cette thèse. Ni la thèse ni des extraits substantiels de celle-ci ne doivent être imprimés ou autrement reproduits sans son autorisation.
SeuagJu Lee University of Toronto Department of Mechanical and Industrial Engineering Master of Applied Science, 2000
Title: Multiple Simultaneous Specifications (MSS) Control Design Method of a High-Speed AC Induction Motor
A practical control system design may require that several different performance
specifications be considered at the same time. Generally, a controller may be able to
satisQ multiple conflicting performance speci fications through manual gain tuning,
however, when the specifications are stringent, finding suitable gains with this approach
may be difficult. Therefore, there exists a need for a control design rnethodology to
permit the systematic design of controllers to satisQ multiple sirnultaneous
specifications.
This thesis presents the application of a Feedback control design method, referred
to here as a Multiple Simultaneous Specification (MSS) control design method, which
addresses the design of controllen to satisfy multiple simultaneous conflicting design
specifications. The MSS control design method utilizes the convexity of common
closed-loop performance specifications with respect to the closed-loop system transfer
function to combine a set of "sarnple controllers", each tuned to satisQ at least one
closed-loop performance specification, to formulate a single controller which satisfies al1
specifications. While control gain tuning is central to the design process, the tuning
process is greatly sirnplified, when compared with the tuning exercise presented when a
single set of control gains is adjusted to satisQ a set of multiple simultaneous closed-loop
speci fications.
The proposed MSS control method is applied to a high-speed AC induction
motor, with an inner-loop Flux Vector Controîîer applied, to design a position control
system. Simulation and expenmental results venfy the effectiveness of this method.
Acknowledgements
1 would like to express my gratitude to Professor 1.K. Mills for his invaluable
guidance, support, and encouragement provided throughout the course of this thesis.
1 thank David Cho and Dr. Dong Sun who were always willingly to provide
advises during my research.
1 also extend my appreciation to the past and present members of Laboratory for
Non-linear Conirol System; Bemy, Bong-Soo, Prof. Chen, Saxin, Jung-Wook, Mingwei,
Weihua and others. Their presence and help made this work very enjoyable.
1 wish to thank al1 my Korean fiiends; Eugene, Jeong-Mi, Soon-Hyung, Prof. Lee,
Woo-Hyun, Dong-Wook for their supporting from Toronto and from Seou!.
Finally, 1 give special thank to my father, mother and my sister. They supported
me and prayed for me fiom the beginning until now. Without them. 1 would not have
been able to finish rny study.
Contents Page
A b ~ ~ ~ a ~ f ~ ~ . . . ~ . ~ ~ . . ~ . ~ . ~ . ~ ~ . . ~ . . ~ ~ ~ ~ ~ ~ . . . . . . ~ . ~ ~ ~ ~ . . . ~ . . ii
A&nowledgements m..................m.o.*~t..~..m.m~-.... !il
C ~ n t e ~ t s . . m e e . . ~ ~ ~ ~ . . ~ m ~ o ~ . . m ~ ~ ~ ~ ~ m ~ ~ ~ ~ ~ m ~ m ~ . m m ~ ~ . . . ~ m a . iv
L i s t o f F i g u r e s m o . m * . m m . m . * e e . * m . ~ m * . . . m * . m m . m . . * . m . . . m m m * . viii
LiSfofTables m m . . ~ . . . m . m ~ . . . . . . m ~ ~ m m ~ m e m o o ~ m ~ ~ ~ . ~ ~ . ~ o ~ xi
Nomenclature * m o a m m * . m . . o * m * . m . m m * . * * * * * * * m m . * m m . * ~ o e m m m * xii
l,introduction . * . . * * ~ m m * . * m m . ~ * m m * . . . ~ . . * * m * . * * m ~ * ~ . . * . * * 1
1.1 Motivation I
1 .Z Proposed Research 3
1.3 Thesis Overview 5
1.4 Thesis Contribution 6
2. Background Theory and Literature Review - - - - - - - - - - - - - 7
2.1 Structure of the AC Induction Motor 7
2.1.1 Intemal Structure of the AC Induction Motor 7
2.1.2 Rotating magnetic Field 8
2.2 Dynamic Modeling of Induction Motor 9
2.2.1 Coordinate Transformation I O
2.2.2 Electromechanical Dynarnic Modeling of Induction Motor 12
2.2.3 Flux Vector ControI 14
2.3 Li terature Review of Induction Motor Control 18
2.4 Summary 20
3.MSSControlProblemm.ee..e...*.eeeem.eeee~.mee0..0...... 2 1
3.1 Introduction 21
Page
3.2 System Framework Definition 23
3.3 Convex Combination Method and MSS Controller Design 25
3.4 Feasibility of MSS Problem 28
3.5 MSS Controi Method Implementation 30
3.6 Summary 33
5.1 Introduction
5.2 Description of the Experimental Setup
5.2.1 Expenmental Setup Modification
5.2.2 DMC- 1 700 Controller Setting
5.3 Software
5.4 Suxnmary
6eACInductionMotorDynamicModeling * * * * * r r . e r # r * ~ e ~ ~ ~ e . ~ e e ~ 52
6.1 Introduction 52
6.2 Dynamic Mode1 of AC Induction Motor 53
6.3 Motor Torque Constant 54
6.3.1 T'orque Sensor Calibration 54
6.3.2 Moior Effective Torque Constant 57
6.4 Determinhg the System Dynamic Parameters 58
6.4.1 Linear Least-Square Estimation 58
6.4.2 Motor Parameter Estimation 59
6.4.3 Parameter Estimation Simulation 60
6.4.4 Parameter Estimation Experiment 61
Page
6.5 AC Induction Motor in Block Diagram Form
6.6 Sumrnary
7.1 Introduction
7.2 Simulation of Step-input Response
7.2.1 Setup Modification Dynarnic Model
7.2.2 Simulation Results
7.3 Experiment of Step-Input Response
7.4 Uncertainties in AC Induction Motor Modeling
7.4.1 Model Parameter Uncertainties
7.4.2 Nonlinear Effects of DMC- 1 700 Controller
7.4.3 Flux Vector Controller Model
7.4.4 Unknown Disturbances and Noises
7.5 Summary
8.1 Introduction
8.2 System Framework Representation
8.3 Desired Performance Specifications and Sample Controllers Selection
8.4 Combination of the Sample Controllers
8.5 MSS Controller Detemination
8.6 MSS Controller Discretization and Realization
8.7 Simulation Results with MSS Control Method
8.8 Experimental Results with MSS Control Method
8.9 Summary
Page
Appendices
Ae Compooent SpecificPtions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 A. 1 AC Induction Motor Specifications 102
A.2 Flux Vector Controller Specifications 1 04
A.3 Encoder Specifications 1 06
A.4 Toque Sensor and Indicator Specifications 1 08
Ba Component Connectjo~s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II0 B. 1 System Diagram 1 1 1
B.2 Connection Between Encoder and Flux Vector Drive 112
8 . 3 Comection Between Interconnect Module and Flux Vector Drive 114
B.4 Connection of Torque Sensor 117
C. O p e r a t i n g M a ~ u a l a a e e a a . e ~ e e ~ e a ~ e e . . e . e e a o a o o a . a e a ~ e a a . a 118
C. I Motor Test with Flux Vector Controller 119
C.2 Flux Vector Controller setting 122
C.3 Test through DMC Terminal 124
C.4 Test through C Program 129
List of Figures
2.1 Intemal Structure of Squirrelsage Type AC Induction Motor
2.2 Current Phasors and Space Vectors at tuf = 0' and ut = 60"
2.3 Space Vector Components in the d-q Axes
2.4 Currents Transformation
Page
8
9
10
1 I
3.1 Linear System Frarnework 33
4.1 Vector Controlled AC induction Motor SIMULMK Block Diagram 38
4.2 I .M. Elec Block Diagrarn 39
4.3 I .M. Mech Block Diagram 39
4.4 Vector Controller Block diagram 40
4.5 Flux Reference and Flux Output 42
S. 1 Experimental Setup
5.2 Experimental Setup Modification
5.3 Galil DMC-1700 controller with embedded PID control loop
5.4 Galil DMC-1700 controller with outer control loop
6.1 Zero Calibration and Span Calibration of Torque Sensor Indicator
(Aries instnment Ltd. Mode1 No. Ai 8 100-000-0 1) 55
6.2 Torque Sensor Indicator Front Panel 55
6.3 Extension Load and Torque Sensor 56
6.4 Load Extension Rods Dimension 56
6.5 Motor Torque vs. Applied Input Comrnand Voltage 57
6.6 Simulation of AC Induction Motor with Pseudo Random Control Inputs 61
viii
Page
6.7 Expenments of AC Induction Motor with Pseudo Random Control Inputs 62
6.8 Block Diagram of the AC Induction Motor Dynarnics 63
6.9 The AC Induction Motor with Inner Flux Vector Controller Transfer Function 64
7.1 Vector Controlled AC Induction Motor SIMULINK Block Diagrarn with PID
Controller 67
7.2 Free Body Diagram of System Modification 68
7.3 Block Diagram I .M. Mech in the Simulation Mode1 69
7.4 Simulation Results of K', = 7 Volthad and ki = 0.55 Volt-sechad 70
7.5 Simulation Results of Kpi = 9 VolUrad and Kdl = 0.5 Volt-seclrad 7 1
7.6 Experimental Results of Kpi = 7 Volt/rad and Kdl = 0.55 Volt-sechad 73
7.7 Experimental Results of Kp2 = 9 Volthad and Kd2 = 0.5 Volt-sechad 74
8.1 Vector Controlled AC Induction Motor SfMULiNK Block Diagram with MSS
Contro 1ler 88
8.2 KPm Block Diagram 89
8.3 K d * Block Diagram 89
8.4 inputs Block Diagram 90
8.5 AC Induction Motor Simulation of Step Response under MSS Controller 9 1
8.6 AC Induction Motor Position versus Time under Sample Controllers and MSS
Controller
8.7 AC Induction Motor Expenment Step Response under Convex Controller
A. 1 Catalog Data, Motor Data, and Additional Information of
the AC induction Motor
A.2 Performance Data of the AC induction Motor
A.3 Specifications and Operating Conditions of the Flux Vector Controller
A.4 Ratings of the Flux Vector Controller
AS Dimensions of the Encoder
A.6 Mechanical Specifications of the Encoder
A.7 Electrical Specifications of the Encoder
Page
A.8 Torque Sensor Specifications
A.9 Indicator Speci fications
B. 1 AC Induction Motor wiîh Flux Vector Controller System Diagram
8.2 Encoder Connections
B.3 Wire Colour Definition
8.4 Interconnect Module and Flux Vector Controller Connections
C. 1 Experimental Set up
C.2 Power Switch
C.3 Flux Vector Controller Keypad (Baldor, Mode1 No. ZD18H202-E)
C.4 DMC Terminal [con
CS DMC Terminal Window
C.6 Initializing DMC Terminal Window
C.7 Commands in the DMC Terminal Window
C.8 c0nst.c in C:üBmcdos\C\Users\const input
C.9 Visual C++ Icon
C. 10 Creating the New Project
C. 1 I Including Library Routines
C. 1 2 Configunng Project Options
C. 13 Configuring the Memory S ize
C. 14 Building a Project
C. 1 5 No Error Found
C.16 Executing the Project
D. 1 Simulation Directory Tree
List of Tables
5.1 Expenmental Facility Component Summary
6.1 Zero Calibration and Span Calibration Data
6.2 Motor Torque vs. Applied Input Cornrnand Voltage
7.1 Simulation Results of Motor Performance with PD controller
7.2 Expenmental Results of Moior Performance with PD controller
Page
46
8.1 Required Specifications and Expenmental Performance Specifications of Sample
Controllers 82
B. 1 Wire Connections between Encoder and Flux Vector Controller (Cable 1) 1 12
B.2 Wire Connections between KM-1900 and Flux Vector Controller (Cable 3) 1 16
B.3 Wire Connections between ICM-1900 and Flux Vector Controller (Cable 3) 116
B.4 Wire Connections between Torque Sensor and Indicator (Cable 5) 117
Nomenclature
Roman Letters
Phase a in three phase AC signal Dummy coefficient Darnping coefficient of the AC induction motor and the load
Estimate of motor damping coefficient Phase b in three phase AC signal
Durnrny coefficient Phase c in three phase AC signal
Direct axis in rotating coordinates Direct axis in stator-fixed coordinates Error signal in Laplace domain z-transformation of E($, motor position error Motor position error with respect to time Denvative of motor position error
Kh motor position error
Vector representing space vector Controller Closed-loop transfer matrix fiom W(s) to Z(s) Final closed-loop transfer matrix Supplied curent to the armature of the bmsh type DC motor Transfonned direct rotor currents in stator-fixed reference fiame Transfonned direct stator currents in rotating reference h e
Transfonned direct stator currents in stator-fixed reference lkame
Transfonned quadrature rotor currents in stator-fixed reference frame Transformed quadrature stator currents in rotating reference frame Transformed quadrature stator currents in stator-fixed reference fiame Moment of inertia of the motor rotor and the load
xii
j Estimate of motor inertia Controller transfer matrix Y(s) to U(s) Modi fied controller MSS controller in Laplace Transform domain MSS controller in discrete-time domain Derivative gain Convex derivative gain Proportional gain Convex proportional gain
AC induction motor effective torque constant Iteration index Rotor inductance of the motor Stator inductance of the motor
Mutual inductance of the motor Number of motor pole pairs Motor dynamic mode1 transfer function Transfer matrix fiom W(s) to Z(s) Transfer matrix fiom U(s) to Z(s) Trans fer matrix fiom Y(s) to W(s) Transfer matrix from Y(s) to U(s)
Quadrature a i s in rotating coordinates
Quadrature axis in stator-fixed coordinates Modi fied complementary sensitivity function Convex modified complementary sensitivity function Rotor resistance of the motor Stator resistance of the rnotor
Derivative operator in Laplace Transform domain stationary reference frame (superscript) stator (subscript) Motor produced torque
Motor torque in Laplace Transfom domain Control input at t = ph iteration interval
Control input in Laplace Transform domain Control input in discrete-time domain P controi input input command voltage (V), proportional to 1,
xiii
Vd Transformed direct stator voltages in stator-fixed reference frame
Y, Transformed quadrature stator voltages in stator-fixed reference h e W(s) Other inputs to system x R substitude vector
Y(@ Output signals accessible to the controller
Z(s) Output signais interested to designer -9 - 2-transform
xiv
Greek Letters
Performance specification vector
Convex combination vector
Desired performance specification vector
Rotor position in Laplace Transform domain
nfh Desired performance specification
Angular velocity
Angular acceleration
Actual position
Desired position
Steady state error specification
Percentage overshoot specification
nfh performance speci fication
Components, n, of convex combination vector
Motor developed torque
Magnetic flux produced by the stator of the DC motor
Rotor direct flux in stator-fixed coordinates
Rotor quadrature flux in stator-fixed coordinates
Rotor flux
Rotor angular speed (electrkal)
Ab breviation
AC Altemating current DC Direct current MSS Multiple simultaneous specifications PD Proportional, Denvative PID Proportional, integral, and Denvative P.O. Percentage ovenhoot S.S.E. Steady state error ZOH Zero Order Hold
xvi
Chapter 1
Introduction
Motivation
Modem surface mount machines, used in the placement of electronic circuit
components ont0 circuit boards, use servo motors to rapidly position the machine axes.
AC induction motors are commonly utilized in the surface rnount machine due to their
properties. AC induction motors have several charactenstics supenor to DC moton. such
as a maintenance free structure, relatively lower cost than equivalent size DC motors, and
greater power output ranging fiom a fraction of a horsepower to 10,000hp. AC induction
moton, indeed, are the workhorses of today's industry.
Cunently, the Proportional, Integral, and Derivative (PD) controller structure is
the most common in use in industry, mainly due to the fact that it is relatively easy to
design and implement. However, despite its widespread use, the P D controller does
have a number of limitations. One of the main drawbacks of Pm controllers is the task of
tuning gains to achieve a set of desued dosed-loop perfo~mance specifications. Since
performance specifications generally conflict with each other, the task of tuning gains to
meet several closed-loop performance specifications simultaneously requires considerable
time and experience. For the case of low performance specifications, tuning PID gains is
not difficult. However, as performance specifications become more stringent, i.e. higher
performance, the task of tuning gains becomes increasingly difficult due to the fact that
multiple simultaneous speci fications typically conflict with each O ther. Therefore, there
exists a need for a reliable contrd design rnethod to systemutidy design cioscd-ioop
controls to meet ail specifications simultaneously. This, in fact, is the main goal of this
thesis.
1.2 Proposed Research
The nature of this research is to develop an expenmental setup for position control
of a high-speed AC induction motor to test controllers and develop a simulation model of
AC induction motor to further venQ our results. The dynamic model of the AC
induction motor is developed in this thesis. With this dynamic model, we apply
appropriate control theory to develop a controller for the AC motor.
An expenmental facility has been developed in the Laboratory for Nonlinear
Systerns Control, Department of Mechanical and Industrial Engineering, University of
Toronto. In this experimental facility, both simulations and expenments are conducted.
A new control system design approach, based on convex optimization theory,
Boyd and Barratt (1991), has been discussed in the control literature. Utilizing this
convex optimization theory, a systematic approach to design closed-loop controls has
been developed and applied to robotic systems, Liu and Mills (1998). This approach is
referred to as a Multiple Simultaneous Specification (MSS) control design method. The
MSS control method, like the approach of Boyd and Barratt (1991), is intended for linear
systems only. This approach has been applied to nonlinear systems, through the use of
global feedback linearization, first applied to the nonlinear system.
The work by Liu and Mills (1998) introduces a method to design an MSS
controller using a two-stage procedure. Given a set of n desired closed-loop performance
specifications, first, tune each of n linear controllers to satisfL at least one specification at
a time. These n controllers are called sample controllers. Then, using a convex
combination approach, combine the n sarnple controllers to simultaneously meet al1
specifications. Finding a sample controller is a much simpler task than finding a
controller that satisfies al1 specifications simultaneously. The MSS control design
method provides an alternative design process that greatly simplifies controller design.
The MSS control method is employed to stabilize an AC induction motor control and to
achieve a set of simultaneous conflicting performance specifications.
Two control theories are addressed in this thesis. One is the conventional PID-
type of control and the other is the Multiple Simultaneous Specification (MSS) control
method developed at the University of Toronto, Department of Mechanical and Industrial
Engineering, (Liu, 1998). Cornparison will be made between these two control theones,
and the effectiveness of the MSS control method will be demonstrated by subsequent
expenments.
Thesis Overview
In Chapter 2, the background theory and the literature review are presented. An
electromechanical dynamic model of the AC induction motor with a flux vector controller
applied is introduced. Chapter 3 discusses the MSS control synthesis. In Chapter 4,
simulation is presented. Software and the structure of simulation are descnbed in Chapter
4. In Chapter 5, the experimental setup is described. Detailed specifications of the
elements of the expenmental setup including connections, and al1 other details are
addressed in Appendix A and Appendix B. In Chapter 6, the dynamic model of the
expenmental setup compnsing an AC induction motor, flux vector controller, and an
inertial load is derived. Transfer function presentations are also studied for control
purposes in this chapter. Simulation and experimental results of the AC induction motor
using PD controller are presented in Chapter 7. In Chapter 8, the PD sample controllers
and the resultant MSS controller are studied. The results of both simulations and
experiments using the proposed control approach are addressed. Finally, Chapter 9
concludes the thesis.
1.4 Thesis Contribution
The main contributions of this thesis are listed below.
1. The development of an expenmental test bed and the user program that can be
used to implement various types of control law, such as PID or MSS control,
to the high-speed AC induction motor.
2. The second contribution is the development of simulation prograrns of the AC
induction motor using commercial software MATLABISIMULINK. In the
simulation prograrns, the full nonlinear electrical dynamics model is taken into
account as well as the mechanical dynamic model.
3. The MSS control method are implemented and tested on the AC induction
motor. The experirnental result indicates that the MSS control method meets
the multiple simultaneous specifications.
Chapter 2
Background Theory and Literature Review
2.1 Structure of the AC Induction Motor
2 1 1 Interna1 Structure of the AC Induction Motor
A motor basically consists of two parts. Le. the stator and the rotor. The internai
structure of AC induction motor is depicted in Figure 2.1. The stator is a stationary part
that sets the magnetic field. The stator is a permanent magnet in brush type DC motors or
a set of wire windings in AC induction motors. The rotor is a rotating part holding a
shaft that couples mechanical load. A typical rotor of the squirrel-cage type found in AC
induction motor has aluminum bars connected to the rings that short the ends together.
Figure 2.1 : Intemal Structure of Squirrel-cage Type AC Induction Motor
2.1.2 Rotating Magnetic Field
Since the power source of the AC induction motor is three-phase alternating
current (AC), the stator has three pairs of windings. These three pain of windings create
a set of rnagnetic poles (Figure 2.2). Each phase of current establish rotating field in the
stator. Ln the squinel cage rotor, the current is induced due to the rotating field. Since
the ends of the bars are shortened, the induced current creates a new magnetic field in the
rotor and is attracted by the revolving field produced by stator currents. Consequently, as
the magnetic field rotates, the rotor rotates.
2.2 Dynamic Modeling of AC Induction Motor
In AC machines, al1 signals exhibit a sinusoidal wave form. In other words, in
three-phase AC machines, the space vecton, such as the flux linkage vector, the voltage
vector and the current vector are sinusoidal wave forms. Unfortunately, alternating
properties are not convenient for control analysis purposes. This problem can be solved
by introducing rotating transfonned d-q coordinates (D-Q coordinates) with arbitrary
speed. This results in signals which are time-varying DC signals, and hence are easier to
analyze and manipulate in control schemes than AC signals. Based on this coordinates
transformation, the flux vector control method is developed and has been applied to AC
induction motors (Trzynadlowski, 1994).
In this section, a coordinate transformation will be discussed fint. Dynamic
modeling of the AC induction motor will then be addressed. Finally, the flux vector
control scheme will be introduced.
Figure 2.2: Current Phason and Space Vectors at ut = O0 and a = 60"
2.2.1 ci-q Coordinate Transformation
in AC machines, the space vectors c m be described as follows:
where: F = vector representing space vector
superscript ' represents stationary reference frame
subscript , represents stator
Since the three components of the space vector, F i , constitute one vector, it can be
projected in the complex plane which has a real component and an imaginary component
(Figure 2.3). Therefore, if we define the real axis as the d-axis and the imaginary axis as
the q-mis. then the transformation of "abc" phases into "dq" axes is possible.
Figure 2.3: Space Vector Components in the d-q Axes
For instance, three-phase currents that have magnitude i,ib,and, i, of phases a, 6,
and c, respectively, can be expressed as follows:
and the transformation abc + dq is perfomed as:
In these equations, the mis reference fiame has been transfomed. Therefore, the
stator axis as well as the rotor axis is transformed to a reference axis rotating with an
arbitrary angular velocity. In this way, the sinusoidal coupling between the rotor and the
stator circuit with the rotor position can be eliminated, if the stator and the rotor both
refer to the sarne reference frarne. Here, we assume that the referred ffame of reference is
rotating with the synchronous speed.
(c) current iQ 3
, (b) current d,q
I 1 1
Figure 2.4: Currents Transformation
2.2.2 Electromechanical Dynamic Modeling of AC Induction Motor
AC induction moton are described by nonlinear dynamic equations, which can be
expressed as a set of differential equations representing both the electncal system
dynarnics and the mechanical system dynarnics. The dynamic behavior of a balanced
ilure-pliasr induction motor in the alectromechanical modcl consists of five ordinary
differential equations given below, expressed in stator fixed ci-q coordinates (Atkinson et
al., 1991).
where: IJ, IV = transfomed stator cunents in stator-fixed reference frame
I&, Iqr = transformed rotor currents in stator-fixed reference fnvne
V,I. Y, = transformed stator voltages in stator-fixed reference h e
û = rotor angular acceleration (radlsec')
0 = rotor angular velocity (radhec)
R, = rotor resistance of the motor
R, = stator resistance of the motor
L, = rotor inductance of the motor
L, = stator inductance of the motor
Me = mutual inductance of the motor
J = moment of inertia of the rotor and the load (kg-m2)
B = damping coefficient of the bearing (kg-m2/sec)
Q = M : - L , L ,
This model includes mechanical equations as well as electrical relations. Note that the
choice of States for the state-space model is not unique. For the convenience of future
manipulation of the equations, we have chosen stator current and rotor flux, If!J. IV, yd,
and f ir as state variables. Since the rotor flux, and y,, can be represented as:
Substitution of equations (2.1 1) and (2.12) into equations (2.4) to (2.7), results in the
equations given below:
Where the positive constants Lc KI, a,, a2, a ~ , and Rl are given below:
where: n, = number of motor pole pairs
Denvation of the dynamic mode1 of AC induction motor c m be found in many
references (Dawson et al., 1998).
2.2.3 Flux Vector Control
In the AC induction motor, altemating voltage is used as a power source so the
stator windings create a rotating magnetic field. Traditionally, an AC rnotor is controlled
by varying the magnitude and the fiequency of AC power source. However, controlling
the AC motor in this way is not sufficient for high performance control which requires
rapid torque control. Therefore, the Flux Vector Control method is often employed for
high performance control of AC induction rnotors.
The Flux Vector Control schcme onginally introduced by Blaschke (197 1)
defines conditions for decoupling the flux control fiom the torque control. A flux vector
controlled induction motor emulates a separately excited DC motor in two aspects:
1) Optimal conditions for torque production
2) Independent control of both magnetic flux and the torque developed in the motor
For cornparison purpose, we consider the torque developed by a DC bmsh motor.
The torque equation for a DC brush motor is expressed as follows:
where: r = developed torque
1, = armature current
Kr = torque constant
yl = magnetic flux produced by the stator of the DC motor
while the torque equation of an AC induction given in equation (2.17). as:
In equation (2.18), the developed DC motor torque is controlled by varying the
m a t u r e current, Io, with a fixed magnetic flux, y/. Unlike DC motors, AC induction
motors produce a rotating magnetic flux as explained in the previous section.
Additionally, the rotor current is not accessible, i.e. the stator cunent is the only means to
control torque generated by an AC induction rnotor.
A flux vector controller appiied to an AC induction motor is such that, yl,, is set
to zero and v d r is set to a constant value. The dynarnic equations of the AC induction
rnotor become as follows.
and with y, = O and yd, = const, the torque equation (2.19) reduces to:
It is shown that if yld, is controlled to be a constant value, then the torque equation for an
AC induction motor with a flux vector controller applied is a linear equation in terrns of
the motor current only, similar to a DC motor.
With the flux vector control method applied, it is possible to treat an AC
induction motor as a linear dynamic system. Here, we will not discuss the control of the
fluxes, yl,, and Readers are referred to one of the many references for details of the
flux vector control method, Le. Vas (1990).
In the expenmental setup used to demonstrate the MSS control design method, a
commercial flux vector controller is employed as an inner control loop. The outer
position control loop is designed using the MSS control design method. Thus. with a
linear torque relationship for the AC induction motor with an inner flux vector control
loop, we mode1 the torque equation of the AC induction motor in a very simplified form
as :
r = K , V (2.26)
where: r = total AC motor developed torque (N-m)
Kr = effective torque constant (N-mN)
V = input command voltage (V), proportional to I , ,
Under these conditions, i.e. y,, = O and ~h = const, we m e r simplim equations (2.20)
to (2.24) by ignonng the electrical dynamics given by equations (2.20), (2.21). This is
justified for our experimental set-up in which a large inertial load is attached to the
motor, leading to "fast" electrical dynamics given by equations (2.20) and (2.2 1), when
compared with the "slow" mechanical dynamics given by (2.23), i.e. Kokotovic, Khalil
and O'Reilly (1986). In other words, comparing the much longer mechanical time
constant with the faster electrical tirne constant allows us to ignore electrical dynamics.
Hence, the AC induction motor dynamics can be simplified to only the mechanical
subsystem equation of motion given by
2.3 Literature Review of AC Induction Motor Control
In the AC induction motor control area, many contml methods have already been
developed. Induction motor scalar control with variable fiequency has been investigated
by some authors (Mixon, 1984). However, it has been shown that the steady-state torque
under scalar control can be controlled accurately, but the transient torque response is
unsatisfactory.
To obtain high performance of AC induction motors, fast torque response is
required. Thus, for fast response of torque, the Flux Vector Control Method, originally
introduced by Blaschke (1971), has been employed by many authors to control AC
induction motors (Ho and Sen, 1988). It has been shown that the flux vector controlled
AC induction motors have better performance than scalar controlled motors by
cornparhg the behavior of an induction motor driven by flux vector control with a motor
dnven by scalar control (Finch et al., 1998). Recently, Direct Torque Control Method is
developed by Tiitinen et al. (1994) for better torque response and it is an on going
research area.
For position control of AC induction motors, many authors have conducted
experiments of AC induction motor position contro 1 with flux vector control theory
(Vukosavic and Stojic, 1993). Some of authors have employed a fùzzy sliding control
scheme for AC induction motor position control (Chen and Hsu, 1994).
Generally, Proportional Integral Derivative (PD) controller is widely used in
industry for position control. However, P D controller has a number of disadvantages.
The main disadvantage of PID-type control is its gain-tuning nature. To tune the gains
properly to achieve better performance requires extensive time and experience. In fact, it
is tedious and time consuming to tune the Pm gains so that al1 desired performance
specifications are met simultaneously (Liu, 1998).
2.4 Summary
In this chapter, necessary background theories to understand AC induction motors
are introduced. The internai structure and the pnnciples of operation of the AC induction
motor have been described briefiy. An electromechanical dynamic model of an AC
induction motor has been established. The flux vector control scheme based on a ci-q
coordinate transformation has been given and applied to AC induction motor dynamic
modeling. Flux vector control schemes reduce the nonlinear dynamic model of AC
induction motor to a linear model.
Some relevant literature on the control scheme of AC induction motors and
position control of AC induction motor have been also reviewed in this chapter.
Chapter 3
MSS Control Problem
3.1 Introduction
In Chapter 1, the deficiencies of PID controller are introduced. It was discussed
rhat tuning controller gains is not an easy task, especially, when a set of specifications has
io be satisfied simultaneously and those specifications are stnngent. Thus, it is required
to develop a new controller that eliminates the task of tuning controller gains to satisfy
multiple sirnultaneous specifications. The MSS control design method has been
developed by Liu and Mills (1998), using a convex optimization approach and
successfully tested on the robot arm control.
A convex optimization approach to design controllers for linear dynamic system
was outlined by Boyd and Barratt (1991). Many design specifications have a simple
convex geometnc property, which allows linear controllers to be analytically derived
using convex theones, Boyd and Banatt (1991). The MSS control design method,
utilized here to control an AC induction motor, is based on the work of Boyd and Barratt
(1991). in this chapter, the bief outiine of ihe MSS control design methodology and
implementation of the MSS controller to an AC induction motor will be presented
without proof. The reader is referred to Liu and Mills (1998) for details.
3.2 System Framework Definition
tt is known that any linear time invariant system can be represented by a unifom
frarnework, as shown in Figure 3.1. The system can be represented by the following
transfer matrices in the fiequency domain (Liu and Mills, 1998).
where: ü(s) = actuator input from the controller, U O E 93'"'
W(s) = al1 other inputs to the system, W(S)E flmxl
Y(s) = output signal accessible to the controller, Y(s)E 9lPx'
Z(s) = output signal the designer is interested in, Z(s)a !Ri"
Pz, = transfer matrix fiorn W to 2, P , E !dm Pz. = transfer rnatrix fiom U to 2, Pz,, E
P,, = transfer matrix from W to Y, P , E 93
P,, = transfer matnx from U to Y, P,. E !IlPm
K(s) = controller transfer matrix from Y to LI, K(s) E 8 r*P
H(s) = closed-loop transfer matnx from W to Z, H(s) E 93 lm
Controller K(s) 4
Figure 3.1 : Linear System Framework
23
Equations (3.1) to (3.3) are combined to obtain the closed-loop transfer function,
denoted by H(s) as:
3.3 Convex Combination Method and MSS Controller Design
Let us assume that there are n required simultaneous specification values given by,
al. a?, .... a., which quantifies the system closed-loop performance. For example, in a
trajectory following tracking task, steady stcite enor of 2% and percentoge overshoot of
10% could be considered as two simultaneous specification values. Let us further assume
that there are n performance specifications, 41, h, .... #n. Our task is then to design a
controller that satisties the following:
#, Sa, f i = I.2, (3.5)
In other words, multiple simultaneous specifications should be achieved by designing a
sutisfuctory controller, K.@). which satisfies equation (3.5).
To find the satisfactory controller, we must find the combination vector A that
satis fies
If equation (3.6) has a solution, conditions for the existence of which are given in Liu
(1998), then a convex combination of Hj(s) are formed to determine the final closed-loop
transfer matrix H'(s), as given below.
Since the closed-loop transfer function, H(s), is expressed in equation (3.4), ~ ' ( s ) can be
expressed in the same way as:
w here
and
Then, the satisfactory controller, ~'(s) , which satisfies al1 the required specifications cm
be denved as:
Here, readen should note that not al1 sets of sample controllers would yield a
solution to generate K.(,). Therefore, we need to test the feasibility of sample controllen
before perfoming the convex combination. The feasibility test will be studied in the nexi
section.
Under the assumption that a set of feasible sample controllers are found, it is
guaranteed that there is a solution io equation (3.6) as show below:
where:
Equation (3.12) can be rewritten as:
From X, obtained from equation (3.14), A, can be calculated from equation (3.13). Now,
~ ' ( s ) c m be calculated from equation (3.9), and ~ ' ( s ) can be obtained from equation
(3.1 1).
3.4 Feasibility of MSS Problem
In the previous section, it has been discussed that we can perform a convex
combination of 4 ( s ) to determine the final closed-loop transfer matnx ~ ' ( s ) if and only
if equation (3.6) has a solution. Therefore, we need to evaluate the feasibility of the
solution to equation (3.6) before perfoming convex combination with sample controllers.
To test for feasibility of the sample controllers, equation (3.8) should have no satisfactory
solution 11.
w here: 14 ' = [rr 1 Q,. . . . un] @ = [#,, 42.. O , #nlT
Y = [al, a, ..., a,,]*
With n required simultaneous performance speci fications speci fied, n sample
controllers, KI, Kr, .... K,, are selected from any existing linear control design approach.
Le. PID control, PD control, state feedback, etc. Each sample controller. K,, must satisfy
at least one of the required specifications, 6 S ai. Here, we define = #i (Hb as the ilh
specification value under thefh sample controller, 4. Then, the feasibility test can be
done as:
If there is no such a vector [ur , ..., u,lT, that satisfies the equation (3.16), then the
selected sarnple controllers are feasible for convex combination.
Typically, the coexisting specifications conflict with each other. Hence, if some
or al1 specifications are too stringent, a controller c m o t be found :O satisQ al1
specifications simultaneously. If finding feasible sarnple controllen is difficult, then it is
suggested to relax the required specifications, or try different sample controller structures.
3.5 MSS Control Method Implementation Realization
and
It was shown that the satisfactory controller, K'(s), which satisfies al1 the required
specifications, c m be derived mathematically. However, this controller is expressed in
the continuous fiequency domain, which is not suitable to apply in real time digital
control. Since the expenmental test-bed on which the MSS controller is irnplemented is a
digital control system using PC for calculation of control law, the controller has to be
discretized From a continuous linear transfer function to a discrete control law to
implement the MSS controller in a digital control system. In this thesis, the most widely
used approach, zero-order-hold (ZOH), has been used for discretization using the Direct
Method (Virk, 199 1) for realization.
Given the controller, K.(@, in continuous transfer function iorm, this is
discretized by using z-transform through ZOH
where Z denotes the z-transfom.
Afler the controller is discretized, a procedure of controller realization coding into
a cornputer algorithm is required. In this thesis, the Direct Method (Virk, 1991) is
employed to achieve this realization. Basicdly, in this method, the controller transfer
function is expressed as the ratio of two polynomials in i' as:
where: U(z) = z-transformation of U(s), control input
E(z) = z-transformation of E(s), motor position error
Then, the control input can be expressed directiy into computer code as:
where: ti(k) = k? contro! input
e(k) = motor position error
For example, with n = 2, when the discretized MSS controller. ~ ' ( r ) is obtained as
Then, the controller algorithm
can be rewritten as:
Rearrange the equation (3.22) results
Then, the th control input can be expressed as:
Equation (3.24) i s in a fonn, which c m directly be implemented in a computer
program.
3.6 Summary
In this chapter, the general description of MSS control design methodology and
implementation to the control problem of an AC induction motor are presented. The
MSS controller is superiot to the conventional controller, such as PID, PD because it
eliminates the need of tuning gains to satisfy multiple simultaneous specifications.
In the MSS control method, sample controllers are selected and combined to
establish the control algorithm. The MSS controller is derived from convex combination.
The feasibility test of' sample controllers is discussed in this chapter. The derived MSS
controller is discretized by ZOH and realized by the Direct Method to implement into
computer prograrnrning code.
The whole procedure of MSS controller design method will be shown in Chapter
8 applied to an AC induction rnotor.
Chapter 4
Simulation
4.1 Introduction
In this chapter, a simulation model of AC induction motor will be explained.
Currently available commercial software is used to model and simulate a vector-
controlled AC induction motor. A diagram representing the dynamic model of AC
induction motor will be introduced and the structure of the simulation program using
MATLABISIMULiNK will be discussed in this chapter. The simulation results will be
compared to the experimental results in Chapter 7 and Chapter 8.
4.2 Simulation Software
In this section, software used for simulation is introduced. The electrical as well
as mechanical dynarnic mode1 of an AC induction motor is developed using
MATLABISIMULINK software package. in addition, controllers, such as PID controller
and the MSS controller, are also designed using MATLABISIMULINK software
package. The simulation results are analyzed later for the cornparison purposes to the
expenmental results. The procedure to conduct the simulations is presented in the
Appendix D.
In the simulation programming, S- function-type m- files are employed to enter the
differential equations directly into a block diagram representation of the machine and flux
vector controller. Readers can find the details about S-Functions fiom the manual of
SIMULMK, Wriling S-Functions (The MATH WOMS inc., 1 998).
In this thesis, simulations for the open loop test, the PID controller test, and the
MSS controller test are programmed and tested. Basically, a single simulation project
consists of five files. File named motor-rm is the main S I M U L M file. File named
mot0r.m is parameter definition m-file to speciQ the motor parameters, such as
inductance or resistance of the rotor and stator. Thus, mot0r.m has to be nui before
starting the simulation. Files named in& m and vcontrolm are S- function-type m- files,
which are embedded in SFunction block in the motor-rrn. File named p1otl.m is the
m-file to plot the results of the motor performance, such as produced torque, rotor
position, rotor velocity, and rotor acceleration. MATLAB files are included in the
Appendix D and diskette with simulation files is included in this thesis. The complete
structure of the simulation mode1 of the AC induction motor will be discussed in the next
section with diagrams.
4.3 Program Structure
A complete SIMULINK block diagrarn is shown in Figure 4.1 and the subsystems
of the simulation block diagram are descnbed in Figure 4.2,4.3, and 4.4. The simulation
program used in the thesis is from a mode1 presented by Wade, Dunnigan, and Williams
(1 997).
In the simulation program, a full set of differential equations in d-q coordinate
given in equation (2.4) to (2.8), is taken into account as a dynamic mode1 of AC induction
motor.
These differential equations are directly entered into an S-Function m-Ale. An S-Function
block, such as "ind" embedded in I .M. Elec in Figure 4.2 and "vcontrol" embedded in
Vector Controller in Figure 4.4, links the m-file into a graphical block.
position
' T I * . Position
L 0-4 time 1 Clock Time
u Integrator we
1 - Acceleration I.M. Mech
Derivative
w acceleration
Flux Reference
Figure 4.1 : Vector Controlled AC Induction Motor SJMULMK Block Diagram
The S-Functions are one of the functions of the MATLAB to provide the
derivatives of al1 the states in the model, based on the current time, its input, and its
states. The derivative vector is retumed to the MATLAB integration routine, which uses
it to calculaie a new state vector. From those state vectors, output can be calculated as
well. The ni-file program code of "ind" and bbvcontrol" are included in the Appendix D.
The masked blocks, I .M .Elec, I .M .Mech, and Vector Controller are depicted
in Figure 4.2, Figure 4.3, and Figure 4.4, respectively and the details are explained.
Block I .M. Elec represents electric dynamic model of an AC induction motor. In
Figure 4.2, input 1 and input 2 are voltage input from vector controller, Y, and Vq. Output
1,2,3 and 4 are the stator cunents and the rotor cunents in stator fixed d-q coordinates,
flux
e , 1 , I d , and 1 . Output 5 is the produced torque, Te. S-Function "ind" contains a
set of differential equations given in equation (4.2) to (4.6).
Block LM. Mech represents mechanical dynarnic mode1 of AC induction motor
given in equation (4.6). in Figure 4.3, the input is the developed torque, Te, and the
output is the rotor angular velocity, oc.
1
MUX ,
i Mux
we
Figure 4.2: I .M. Elec Block Diagram
~arnping
Figure 4.3: I .M. Mech Block Diagram
Mux
Torque psir
Figure 4.4: Vector Controller Block diagram
+
Block Vector Controller represents flux vector controller. In Figure 4.4, input 1
is the rotor angular velocity, w,. Inputs 2 and 3 are the stator currents in stator fixed d-q
coordinate. 1, and I,,. Input 4 is the reference flux and input 5 is the reference torque.
Output 1 and 2 are voltage input, Y, and Y, to motor electric dynamic model. Output 3
and 4 are the stator currents in rotating D-Q coordinate ID, and I,,. Output 5 is rotor flux
in rotating D-Q coordinates, yl,. Output 3, 4, and 5 are used only for analysis purposes.
S-Function "vcontrol" is designed for flux vector controller. This block perfomis the
function of flux vector controller explained in section 2.2.3.
S-Function Vector Controller
Demux
P
~ont ro l Demux
4.4 Flux Vector Controiier Design
In Chapter 2, it was shown that the rotor flux, y&, should be controlled to be a
constant value to linearize the dynamic model of AC induction motor. Recall the
equation (2.23).
Ln the simulation, a user designed Flux Vector Controller with PI controller is
employed to control the rotor flux to a constant value, while a commercial Flux Vector
Controller is installed for the linearization of the AC induction motor in the experimental
setup. The original model of the Flux Vector Controller used in this thesis has been
designed by Wade, Dunnigan, and Williams (1 997).
For constant rotor flux output, the MATLAB flux commands are given below.
These values are defined in the motmm file and entered into block ''Flux Reference" in
Figure 4.1.
Flxrt = [O; 0.04; 0.045; 0.51;
Flxrv = [O; 6.3; 0.787; 0.7871;
The plots of flux reference command and the flux output in the simulation are
given in Figure 4.5. Note the high flux reference at beginning, which is then reduced.
This b ~ g s the flux to its rated value very quickly. Since it takes negligibly short time to
settle down to the steady state flux reference, about 40 milliseconds, the effect of the
transient state can be ignored.
Figure 4.5: Flux Reference and Flux Output
As shown in Figure 4.5, once the flux reach to the steady state, the flux is
controlled to a constant value so that the produced motor torque will be proportional to
the stator current, IV.
4.5 Summary
In this chapter, a simulation of AC induction motor is introduced. A commercial
software, MATLAB/SIMULINK, used for the simulation is introduced. The structure of
the simulation is also discussed.
For the simulation of AC induction motor, a full set of differential equations is
taken into account as a dynamic model of AC induction motor. Thus, simulation
program includes electrical dynamic model as well as mechanical dynamic model of AC
induction motor. The Flux Vector Controller is also prograrnmed in the simulation.
Based on the simulation model developed in this chapter, appropriate simulation
model with di fferent controller will be designed and tested for the cornparison purposes
with the expenmental results in Chapter 7 and Chapter 8.
Chapter 5
Experimental Setup
5.1 Introduction
A hi&-speed AC induction motor control system has been developed in the
Laboratory For Nonlinear Systems Control at the University of Toronto, Department of
Mechanical and Industnal Engineering. In this Chapter, the experimental setup is
described. The details of setup specifications are included in Appendix A and the wire
connections among the components are included in Appendix B. A setup modification
has been done to get consistent steady state error and this modification is explained in this
chapter as well.
Software used for experiment is introduced in this chapter. The program code for
experiments and instructions are included in Appendix E.
5.2 Description of the Experimental Setup
The expenmental setup consists of an AC induction motor, in conjunction wiih a
commercial flux vector drive imer-loop control and a set of inertial loads attached to the
motor drive shafl. Figure 5.1 illustrates the mechanical hardware. Some parts have been
added to the original setup to get more accurate performance results and this modification
is also discussed in the section 5.2.1.
G i Controllet I 1 l
Figure 5.1 : Experimentai Setup
In this section, every component is described bnefly. The detailed specifications
of the system components are included in Appendix A, and the necessary wire
connections between the components are included in Appendix B. The components of
the system according to the labeling of Figure 5.1 are listed in Table 5.1.
Table 5.1 : Experimental Facility Component S urnmary
Mode1 Number 1 Component
The AC induction motor used for experimentation is a 3-phase, 2-HP induction
motor with a rated speed of 1750rpm and a maximum speed 600ûrpm. An encoder
attached directly to the rotor detects the rotor position with a resolution of 1024
pulses/rev.
The AC induction motor is connected to the sh& by rigid couplings. An inertial
load is attached to the shaft, The load can be added to the shafi or removed from the shaft
to permit different values of moment of inertia.
To drive the AC induction motor, a commercial Flux Vector Controller is used
which is explained in Chapter 2. The Flw Vector Controller is connected to the Galil
Manu fac tuer
ZDNM3669T
H25E-FI -SS- 1024-ABZC-
4469-LED-SM 12-S
ZD 1 8H202-E
DMC-1700
ICM-1900
O1 090-052
AI 8 100-000-0 1
AC Induction Motor
Encoder
Flux Vector Drive
Digital Controller
Interconnect Module
Torque Sensor
Torque Sensor Indicator
Baldor
BEI Industrial Encoder
Division
Baldor
Galil Motion Control, Inc.
Galil Motion Control, Inc.
Durham Instruments
Aries instruments Ltd.
DMC-1700 digital controller card installed in a penonal computer connected through the
Galil ICM- 1900 intercomect module.
A Galil DMC-1700 digital controller card with input cornmand range as -1OV - +10V is used as an interface card and is used to decode encoder signals, and send an
analogue input cornmand signal to the Flwc Vector drive. A Gailil DMC-1700 digital
controller has a PID control loop embedded inside. However, the cmbedded PID control
loop is bypassed to utilize a different control law used in this thesis. The setting
configuration of the Galili DMC-1700 controller to ignore the embedded PID control
loop is explained in the section 5.2.2. This digital controller is directly installed into the
ISA bus of the penonal computer. A 400MHz personal cornputer is used to compute the
control inputs and to store al1 the data, such as the angular positions, velocities,
accelerations, and control input signais.
A torque sensor is placed in the middle of the shaft to detect the torque developed
by the motor and to send a corresponding value to the indicator in voltages. The torque
sensor is calibrated and used for detemining a torque constant, K, for dynamic modeling
of AC induction motor in Chapter 6.
5.2.1 Experimental Setup Modification
Since the shaft is supported by a set of bearings, the fiction of the bearing affects
the behavior of the motor. One of the significant effects cm be found in steady state
errors. During the closed-loop control experiments, if the control input is not big enough
to overcome the friction of bearings, the results of steady state emr are not consistent.
Thus, a weight is added to the system by hanging fiom a cable attached to the shafl as
shown in Figure 5.2. This modification gives a resistance torque to the motor due to the
gravitational force on the weight and results more consistent value of the steady state
errors .
AC Induction Motor
Figure 5.2: Expenmental Setup Modification
5.2.2 DMC-1700 Setting
A Gailil DMC-1700 digital controller has a P D control loop embedded inside as
described in Figure 5.3. However, in this thesis, the embedded P D control loop is
bypassed to utilize a different control law used, i.e. the MSS controller. Galil DMC-1700
controller can be configured to ignore the embedded PID controller by setting al1 PID
control gains, K , K,? and KD, to zero. For this procedure, the user simply type "KP 0-i. KI
OJ, KD O-i" on DMC terminal screen or program it in the computer code. Users can find
the detail sequence in Appendix C.3. Once al1 contml gains set to zero, we are able to
develop our own control law and place it as an outer control loop of DMC-1700
controller, such as MSS contmller or PID controller, as shown in Figure 5.4.
Figure 5.3: Galil DMC-1700 controller with embedded P D control loop
Position input
Position input
Figure 5.4: Galil DMC-1700 controller with outer control loop
+ AC induction motor
0 Rotor position
5.3 Software
The user program to operate the experiment setup has been developed in C
programming language. Microsoft Visual C++ Version 1.52~ compiler is used to
create the executable computer code. Library routines supplied by Galil Motion Control
Inc. must be included. The complete instruction to operate the rnotor through the
computer program is included in Appendix C.4.
The user program is programmed to interact with user, to compute the control
inputs, and to store the data of the motor, such as control inputs, rotor angular positions,
rotor angular velocities, and rotor angular accelerations.
There are three user prograrns. One is for constant input voltage test, named
const.~, another is for open loop test to estimate motor parameters, named 0pen.c and the
other is for controller test such as, PID or MSS controller, named convex.c. Prograrns are
included in Appendix E with instructions so that reader can refer them for future
modification.
5.4 Summary
In this chapter, the cornponents of the AC induction motor position control system
experimental setup are described. This system is a demonstration system that enables the
use of proposed MSS control design method. The detail specifications of the system
components are included in Appendix A and the wire connections between the
components are included in Appendix B. A necessary setup modification is discussed.
This chapter also gives an explanation of software for experiments. Complete
instruction of operating motor through cornputer program from building to executing a
project can be found in Appendix C.4. The user programs are included in Appendix E as
weli.
Chapter 6
AC Induction Motor Dynamic Modeling
6.1 Introduction
Dynamic modeling is a very important aspect in the field of control engineering.
To design a controller for an AC Induction Motor, its dynamic model has to be known
and the parameters of the system have to be determined before one can simulate the
system or conduct the experiments.
In this chapter, dynamic modeling of AC induction motor will be addressed. We
will develop a simplified linear dynamic model of the AC induction rnotor considering
some important characteristics of the set up. Lastly, the AC induction motor model in
block diagram form will be discussed in this chapter.
6.2 Dynamic Model of AC Induction Motor
In Chapter 2, it was shown that the dynamic model of an AC induction motor is
represented by a set of ordinary differential equations that consists of four electrical
equations and one mechanical torque equation. In the AC induction motor control
literature, this electromechanical dynamic modeling is commonly used for controller
synthesis. Unfortunately, the MSS control design rnethod cm be applied to only lincar
dynamic systems, as explained in Chapter 3. Therefore, to utilize the MSS control design
method to AC induction motor position control experiment, we have employed a linear
dynamic model of the AC induction motor, through the use of a flux vector control, as
given in equation (2.23). Applying the flux vector control scheme to the AC induction
motor results in linear dynamic modei. We further sirnplified the equations of motor by
ignonng the high fiequency electrical dynarnics leading to only a single equation
describing the motor mechanical system. In the expenmental setup, this linearization is
achieved by using a commercial flux vector drive in an inner control loop.
The resultant simplified linear dynamic model of the AC induction motor is given
below,
~ ë + s e = ~ , v (6. 1 )
where: K r = effective torque constant (N-mN)
V = input command voltage (V), proportional to 1,
This dynamic model in equation (6.1) will be used for the MSS control method
experiments .
6.3 Motor Torque Constant
In this section, determination of the torque constant, K, in equation (6.1) is
explained. For detemination of the torque constant, a commercial torque sensor
(Durham Instruments, Model No. 01090-052) has been used. The torque sensor
calibration procedure is described here as well.
6.3.1 Torque Sensor Calibration
A torque sensor is a device that detects induction motor torque using a strain
gauge sensor. A strain gauge produces a small voltage proportional to the torque applied
and the voltage is displayed at the indicator. In this thesis, a commercial torque sensor
has been used to estimate the torque constant, K .
Before the user conducts any experiments with the torque sensor (Durham
Instruments, Model No. 01090-052), a "zero calibration" with zero output reading with
zero torque applied and a "span calibration" giving a know output value when a known
torque is applied, must be conducted on the Torque Sensor Indicator (Aries instrument
Ltd. Model No. AI 8 100-000-01).
The "zero calibration" has been perfocmed with no measurand Le. torque. Zero
reading is achieved by adjusting the "C" (coarse) and "F" (fine) potentiometers at the
front panel of the indicator as shown in Figure 6.2.
(a) Zero calibration (b) Span calibration
Figure 6.1 : Zero Calibration and Span Calibration of Torque Sensor Indicator ( -eies Instrument Ltd. Model No. -41 8 100-000-0 1 )
Figure 6.2: Torque Sensor indicator Front Panel
Having zeroed the unit successfully, a mass supported by a rod, extending fiom
the cylindrical load is used for "span calibration". A known torque is produced by the
extension load when a rod is attached to the inertial load, The rotor is locked so it could
not tum when the load is released at a horizontal position with respect to the motor rotor
as s h o w in Figure 6.3. The dimensions of the loads and extension rods are given in
Figure 6.4. The extension loads produce a constant torque due to gravity, of 19.5 N-m
and 12.1 N-m. respectively. With the torque sensor unit set arbitrarily to a gain of 6.78
N-mN, the output voltage corresponding to 19.5 N-m and 12.1 N-m are 2.876 1V and
1.785V, respectively. Table 6.1 conhns that both "zero calibration" and "span
calibration" were pedormed successfully. The average calibration values are obtained
nom the experiments conducted seven times with 5% of deviation for al1 of them.
Table 6.1 : Zero Calibration and Span Calibration Data
Figure 6.3: Extension Load and Torque Sensor
Average (V) - 0.0042
2.8998
1.7955
Rod weight: 1.22kg 0,076 Cube weight: 3Skg
Gravitational torque: 1 9.5 N-rn Output voltage: 2.876V
4- 0.305
Rod weight: 1.6 1 kg Cube weight: 3.5kg
Gravitational torque: 12.1 N-m Output voltage: 1.78SV
Expected (V) O
2.876 1
1.785
Calibration Zero
Figure 6.4: Load Extension Rods Dimension
56
s ~ a n Long rod Short rod
6.3.2 Motor Effective Torque Constant
Note in equation (6.1) that the motor dynamic mode1 includes a term, Kr , which
relates the applied input voltage to the flux vector controller to the current 1,. This
"effective torque constant" must be detemined. To determine the motor effective torque
constant, a set of input command voltages, kO.SV, +IV, and k W , is applied to the motor
with the ineniai load held fixed. The torque measured with this approach, using a
calibrated torque sensor, is shown in Table 6.2.
With these data, a linear least squares regression is employed to determine the
Applied input voltage (V)
Torque (N-m)
effective torque constant as Kr = 2.194 N-mN. The result of regression is shown in
Figure 6.5.
Table 6.2: Motor Torque vs. Applied Input Command Voltage
-2
-4.426
Applied Input (V)
Figure 6.5 : Motor Torque vs. Applied Input Cornmand Voltage
- 1
-2.157
1
2.178
-
-0.5
-1.099
- 3
4.374
O. 5
1.101
6.4 Determining the System Dynamic Parameters
In this section, we discuss estimation of the dynamic parameters of the
mechanical mode1 of the AC induction motor using linear least-square estimation
method. Those parameters are moment of inertia of the rotor and the load, J, and
darnping coefficient, B.
6.4.1 Linear Least-Square Estimation
A linear least-square estimation method employed to estimate the dynamic
parameters of the AC induction motor, Le. J and B in equation (6.1). is introduced in this
section. Let us suppose that an r-dimensional vector, X, representing r parmeters to be
deterrnined and an n-dimensional vector, 2, representing n measurements are given.
Then the relation behveen X and Z is
where Q is a n x r matrix, which is known, and E represents unknown enors that occur in
the measurement (Sorenson, 1980). The estimated value, k, is defined as to minimize
the sum of the square of the errors, Es, with the given data, Z and Q, where
Since the objective is to minimize, E,, the following equation must be satisfied.
To isolate X from equation (6.4), rewrite the equation (6.4) as:
~ ' ( 2 - p k , = O
then x is given by,
The estimated X value can be obtained from equation (6.6) with known Q and Z
from physical experiments. In Our case, r = 2, corresponding to two unknowns. J and B
and n = 4000, corresponding to the number of data collection.
6.4.2 Motor Parameter Estimation
Now, we need to determine the parameten of the dynamic mode1 of the AC
induction motor and load as given in equation (6.1). Note, in equation ( 6 4 , that J
represents the moment of inertia of the motor rotor and the inertial load. The damping
coefficient, B. represents viscous Wction of the motor due to the bearing fiction.
Let us make use of the linear least-square estimation algorithm discussed in
section 6.4.1 for the AC induction motor parameter estimation. The estimated moment of
inertia, j , and the estimated effective damping coefficient, B , can be found by applying
a senes of twenty pseudo random input command voltages to the motor and measuring
4,000 rotor position every 2.5 rnillisecond. The velocity and the acceleration of the rotor
are estimated h m the rotor position data.
We rewrite equation (6.1) for our experimental setup as:
Cornparhg equation (6.2) and (6.7) defines the variables as:
Substituting equation (6.8) into equation (6.6) results the estimated value of j and B .
6.4.3 Parameter Estimation Simulation
Simulation was conducted for parameter estimation. A mode1 developed in
section 4.3 using MATLABlSIMULiNK was used for the simulation. A series of twenty
pseudo random input conunands are,
These input command are used for experiments as well.
The input command voltages, the rotor position, the rotor velocity, and the rotor
acceleration of simulation are depicted in Figure 6.6. j and B are determined to be
0.0623 kg-m2 and 0.0103 kg-m2/sec respectively in the simulation.
Figure 6.6: Simulation of AC Induction Motor with Pseudo Random Control Inputs (a) Applied input (V) (b) Rotor position (rad) (c) Rotor velocity (radlsec) (d) Rotor acceleration (rad/sec2)
6.4.4 Parameter Estimation Experiment
Expenments were conducted for parameter estimation. For expenments, user
program 0pen.c is developed, which is included in Appendix E. The input command
voltages, the rotor position, the rotor velocity, and the rotor acceleration of expenment
are shown in Figure 6.7. The angular velocities and accelerations are calculated from the
angular positions using a Kalrnan filter algorithm embedded in the user program.
6.5 AC Induction Motor in Block Diagram Form
The AC induction motor, with inner flux vector controller, transfer function in the
frequency domain, is obtained by substituting the parameten estimated in section 6.4 into
equation (6.1) to give
where: O (s) = Position of the rotor, 8 (t) in Laplace Transform domain
T (s) = Motor torque. s (t) in Laplace Transform domain
In the complete system model, the effective torque constant, K, is included in the
system transfer function. Therefore, block diagram given in tram fer function form of the
entire system is depicted in Figure 6.8.
Input Command Voltage ( V(s)) ____i ~~IZ~(I.-~ Js- + Bs
Position( 8 (SI
Figure 6.8: Block Diagram of the AC Induction Motor Dynamics
Here. we define the system transfer function, P(s), in frequency domain as:
Based on the estimated motor parameters, K, j , and & , and considering the block
diagram in Figure 6.8, the transfer funetion of the system, P(4, is obtained as:
A schematic block diagrarn mode1 of the system dynarnics is shown in Figure 6.9.
Input Command 35.33 Position ( Ws) Voltage ( V(s))
Figure 6.9: The AC induction Motor with Inner Flux Vector Controller Transfer Function
The dynamic mode1 in Figure 6.9 will be used for the MSS control design method
in Chapter 8.
6.6 Summary
In this chapter, estimates of inertia and damping coefficients of the motor and the
load as well as the effective AC induction motor torque constant under Flux Vector
Control are obtained through linear least-square estimation. An assumption made when
the estimation is performed, is that the dparnic parameters of the motor do not change
during the penod of data collection.
In the process of modeling, the dynamic model of the motor developed contains
both the AC induction motor and the flux vector controller. Thus, the overall system
transfer function has become linear dynarnic model. This linear dynamic model of the
AC induction rnotor will be used for the future experiment of the MSS control design
rnethod.
The dynamic models of the AC induction motor will be tesied and verified by
closed-loop simulations and expenments in the following chapten.
Chapter 7
Motor Control with PD Controller
7.1 Introduction
In this chapter, PD controller is tested on the AC induction motor.
The simulation model of AC induction motor developed in Chapter 4 is used to
test the PD controller. The expenments are also conducted and the results will be
compared to the simulation results. The experimental setup is described in Chapter 5.
nie purpose of simulation is to compare the results with the experimental results
and study how accurate the simulated model is. In the simulation presented in this
chapter, the dynarnic model of the motor does not include disturbances and noises.
Therefore, the simulation results are not expected to be exactly the same as the
expenmental results. However, the dynarnic model of the motor can be verified that
only small deviation exists.
7.2 Simulation of Step-Input Response
The PID controller is embedded in the simulation program as shown in Figure
7.1.
position
EEl+ Position
r""""""" acceleration O ! Flux Reference
I - I
Vector Controller
flux
I l
sum emor l control input Step Input : PID Controller :
Figure 7.1 : Vector Controlled AC Induction Motor SiMULZNK Block Diagram wi th
PID Controller
7.2.1 Setup Modification Dynamic Mode1
Let us consider the expenmental setup modification described in section 5.2.1.
The weight added to the systern by hanging nom a cable is attached to the shafi to give a
resistance torque to the motor. The dynamic model of this modification should be
included in the dynamic model of AC induction motor in the simulation. Figure 7.2
shows the fiee body diagram of a weight attached to the shafi with a cable.
AC Induction Motor
Shaft
Weight 2 Figure 7.2: Free Body Diagram of System Modification
Recall the mechanical dynamic model equation from equation (6.1).
When the motor shaft rolls up the cable, the weight gives a resistance due to its weight
Thus, the dynamic model equation becornes and the acceleration.
ieight (1 where: rn = H cg)
g = gravitational acceleration (m/sec2)
r = radius of motor shaft (m)
and
where: JI = J + mr2
In equation (7.3), it was measured that m = lkg, g = 9.8 m/sec2, r = 0.019m, and J =
0.0624 kg-m2. Equation (7.3) is modeled in the block I.M. Mech simulation model as
depicted in Figure 7.3.
1 sum l
Damping
Figure 7.3 : Block Diagram 1.M. Mech in the Simulation Mode1
This mechanical model will also be used for the MSS controller simulation in Chapter 8.
7.2.2 Simulation Results
In the simulation, the PD controller is used. Two sets of the PD gains are chosen
as Kpi = 7 Volthad, KclI = 0.55 Volt-sechad and Kg = 9 VoltIrad, Kti2 = 0.5 Volt-sechd.
The simulation results are shown in Table 7.1 and the plots are depicted in Figure 7.4 and
7.5.
Table 7.1 : Simulation Results of Motor Performance with PD controller
69
Percentage overshoot (%)
7.3 8
15.5 1
f
PD controller 1 (KpI=7, KdI=û.55)
PD controller 2 (K$=9, Kdf0.5)
Steady state error (rad)
0.0121
0.0094
III 1
Figure 7.4: Simulation Results of KpI = 7 Volthad and Kdl = 0.55 Volt-sechad (a) Control input (volts) (b) Rotor position (rad) (c) Rotor veloci ty (ra#sec) (d) Rotor acceieration (rad/sec2)
Figure 7.5: Simulation Results of Kpl = 9 Volthad and Kdl = 0.5 Voleseclrad (a) Control input (volts) (b) Rotor position (rad) (c) Rotor velocity (radsec) (d) Rotor acceleration (rad/sec2)
7.3 Experiment of Step-Input Response
In this section, the results of step-input response of the AC induction motor are
presented. User program, convex.c is developed to test the motor in a closed-loop step
response test. Note that coavex.c is prograrnmed for both the PID controller test and the
MSS controller test as explained in Chapter 5. The instructions to switch between the
PID controller and the MSS controller with the source code are given in Appendix E.
The program prompts the user with options to select gains and the desired angular
position.
In the experiments, PD control is used. Two sets of the PD gains are chosen,
which are the same as in the simulations, KPi = 7 Volt/rad, Gr = 0.55 Volt-seclrad and
Kp2 = 9 Voltkad, Ka = 0.5 Volt-sechad. The Experimental results are s h o w in Table
7.2 and the plots are depicted in Figure 7.4 and 7.5. By comparing Figure 7.6 to 7.4 and
Figure 7.7 to 7.5, both results are very similar to each other.
Table 7.2: Experimental Results of Motor Performance with PD controller
PD controller 1 (Kpl=7, Kdl=OSS)
PD controller 2 ( K p r 9 , &=OS)
Steady state error (rad)
0.01 39
0.0108
Percentage overshoot (%)
2.6
9.8
tirne( sec)
Figure 7.6: Experimental Results of Kpl = 7 Volthd and Kdl = 0.55 Volt-sechad (a) Control input (volts) (b) Rotor position (rad) (c) Rotor velocity (radsec) (d) Rotor acceleration (rad/sec2)
Figure 7.7: Experimental Results of K' = 9 Volthad and KJ2 = 0.5 Volt-seclrad (a) Control input (volts) (b) Rotor position (rad) (c) Rotor velocity (radsec) (d) Rotor acceleration (radlsec2)
7.4 Uncertainties in AC Induction Motor Modeling
It was shown that the results between the simulation and the experiments are very
similar to each other. However, by comparing the values of Table 1 and Table 2, there
are slight differences in steady state error and percentage overshoot between the
simulation results and the experimental results. These mismatches of the results between
the expenments and the simulations are caused by some uncertainties in AC induction
motor, which are not considered in the dynarnic modeling of the simulation. The possible
causes are rnodel parameter uncertainties, nonlinear effects of DMC-1700 controller,
unknown the Vector Controller model, disturbances and noises.
7.4.1 Mode1 Parameter Uncertainties
The inertia of the rnotor rotor and the loads, j , and the damping coefficient, B ,
used in the simulations are estimated of the motor txue values. They are obtained in
Chapter 6. It is valid to Say that j and B are never the same as the true values J and B.
Therefore, differences in simulation and experimental results exist.
7.4.2 Nonlinear Effects of DMC-1700 Controller
As discussed in Section 4.2, the range of the input command voltage of the DMC-
1700 controller is restricted such that minimum control input is -lOV and the maximum
control input is +lOV. in Figure 7.7, the plot of the control input shows that the control
input has saturated at the maximum value, +10V, for roughly 10 milliseconds while the
control input in the simulation could exceed +10V. This nonlinearity of the DMC-1700
controller could cause the difference between the simulation and the experimental results.
7.4.3 Flux Vector Controller Mode1
In Chapter 4, it was mentioned that the simulations employ the Vector Controller
mode1 prcviously programmcd by Wade, Dunnigan, and Williams (1997). The PI
controller is embedded to set the rotor flux to a constant value. Unfortunately, for the
commercial Flux Vector Controller (Baldor, ZDNM3669T), the exact model of operating
system is not known. Thus, it is possible for the commercial Flux Vector Controller to
employ a different flux vector control scheme fiom the one used for the simulations.
Especially, the flux reference value initially could be differently set in the commercial
Flux Vector Controller. The inexact model of Flux Vector Controller could cause the
difference between the simulation and the experimental results.
7.4.4 Unknown Disturbances and Noises
90th the AC induction motor with the Flux Vector Controller and the DMC- 1 700
controller card are examined and proven to be working perfectly. The cables of the
motor are shielded to eliminate any possible noises. However, noises exist virtually in al1
electronic components. These unknown disturbances and noises simply cannot be
included in dynamic modeling without complicated mathematics. The difference
between the simulation and the experimental results could be from these unknown
disturbances and noises.
7.5 Summary
Both simulation and experimental results of step-input response of the motor have
been discussed in this chapter. The cornparison of results between the simulation and the
experiments shows that the experimental results follow the simulation result very ciosely.
rhus. it is verified that the simulation mode1 is accurately designed and can be used for
future study.
The analysis of the slight difference between the results of the simulation and the
experiments are presented. We have concluded that model parameter uncertainties,
nonlinear effects of DMC- 1 700 controller, unknown Flux Vector Controller model,
unknown disturbances, and noises cause the difference between the simulations and the
experirnents.
Chapter 8
Motor Control with MSS Control
8.1 Introduction
In this chapter, the MSS controller is designed using the procedure introduced in
Chapter 3. Basically, MSS controller design process can be done in two steps given by
Liu and Mills (1998). Step 1 is sample controllers selection and Step II is combination of
sample controllen. The MSS controller will be designed mathematically through this
two step process.
Numencal examples of the sample PD controllers, the MSS controller, and the
performance specifications for the MSS controller design method will be shown in this
chapter by following the overall procedute as well. The MSS controller is then applied to
an AC induction motor control. Both simulation and experiment are conducted to ver@
the effectiveness of using the MSS control method to meet multiple simultaneous
speci tications.
8.2 System Framework Representation
Recall the equations (3.1) to (3.3) as:
If we assume that the controller is PD type, then. we can define:
where: 0" = actual rotor position (rad)
8'' = desired rotor position (rad)
e = B - B ", the position error (rad)
V = input command voltage (volt)
K, = proportional gain (volthad)
Kd = derivitive gain (volt-seclrad)
Substituting equations (8.4) to (8.8) into the unifortn framework of equation (8.1), we
obtain
where: P(s) = the motor dynamic model, equation (5.16)
Equations (8.9) to (8.1 1 ) represent transfer matrices of the system given by equation
(5.16) in the frequency domain.
8.3 Desired Performance Specifications and Sample Controllers Selection
We now carry out Step I of the MSS control design procedure. Step I of the MSS
control design is selecting sample controllers and testing the selected sample controllers
to ensure that those sample controllers are feasible to use for MSS controller design.
To design and test the MSS controller, we chose a step response as the reference
input for the expenment. Steady state error and percentage overshoot are chosen as
simultaneous performance specifications. These specifications are defined as:
Note. these specifications conflict with each other, Le. smaller steady state error leads to
greater ovenhoot and smaller overshoot leads to greater steady state error. We define the
performance specifications, written in terms of the closed-loop transfer functions as
follows:
To satisfy these two closed-bop performance specifications, two PD sample
controllers are selected, with the closed-loop performance data given in Table 8.1. Table
8.1 shows that each sample controller satisfies at least one required specification.
1 Steady State Error 1 Percentage Overshoot 1
Table 8.1 : Required Specifications and Expenmental Performance Specifications of Sarnple Controllers
Required Specifications
Sample Controller 1 (Kp1=7, &i=0.55)
Sarnple Controller 2 (Kp2=9, Kdz=OS)
With these two sample controllers selected, we carry out the procedure of
feasibility test. As discussed in section 3.4, we need to test if these two sample
controllen are feasible for convex combination. Recall fiom equation (3.14) that if there
exists a vector. u, such that
(rad)
ai = 0.01 245
h i = 0.0139
b2 = 0.0108
min ur # > uT Y H
(%)
a2 = 6
hi = 2.6
h2 = 9.8
For our case. equation (8.16) represents
and
Equations (8.17) and (8.18) can be rewritten as:
Equation (8.19) and (8.20) cm be expressed in matrix form as:
Substituting values from Table 8.1 into equation (8.21) and using the linear programming
software in ~ a t l a b ~ ~ ûptimization Toolbox result that there is no solution that satisfies
equation (8.2 1). In other words, it is proven that the selected two PD sample controllers
are feasible for the MSS controller design to satisfy two required specifications
simultaneously. Therefore, the MSS controller design procedure will be illustrated with
these sample controllen in section 8.4 to 8.6.
8.4 Combination of the Sample Controllers
With two feasible sample controllers selected, we now cary out Step II of the
procedure. Step II of the MSS control design is combination of the sample controllers.
Recall the equation (3.6) to find the combination vector A that satisfies
For our case, equation (8.22) represents
If we define the combination vector, A as:
then, equation (8.23) becomes
Substituting values 60m Table 8.1 into equation (8.26) and solving the equation with a
linear programming algorithm h m ~ a t l a b ' ~ (1 W6), gives the solution as:
and, therefore, the combination vector, A, can be obtained as:
8.5 MSS Controller Determination
With the combination vector, A. given in (8.28), it is now possible to design the
MSS controller. Recall the PD controller form of the sample controllers from equation
(8.8), Le. K(s) = Kp(s) + &(s) S. In a similar way, we define the form of the MSS
controller as follows, where the * denotes the MSS controller:
The detail procedure of MSS contmller design from the combination vector, A. is
outlined in Cho (1998). Reader should read Cho's thesis for completeness. Following
the procedure results the MSS controller gains as follows:
Note that the achieved MSS controller given in equation (8.30) and (8.3 1) is in frequency
domain which is not appropriate to apply in real time control. In next section,
descntization and realization of the MSS controller given in (8.30) and (8.31) will be
discussed.
8.6 MSS Controller Discretization and Realizatioo
To implement the MSS controller in real time control, the controller must be
descritized as discussed in section 3.5. By using the ~ a t l a b ~ ~ Control System ToolBox
(1 992), ~''(s) and &*(s) (the MSS controller expressed in the Frequency domain) can be
transformed into K,'(z) and &*(I) (the MSS controller in the sample domain) using the
Zero Order Hold method, Virk (1 99 1). The discretized convex controller tenns
corresponding to equation (8.30) and (8.31) with a one millisecond sampling time, are
given as:
Then the control algorithm is
u(k) = 1.05e(k) - 2.0924e(k - 1) + 1.0424e(k - 2)
+O.OS5 (k) - O. 1097 (k - 1) + 0.0547 (k - 2)
- (-i.9944u(k - 1) + 0.9945u(k - 2))
8.7 Simulation Results with MSS Control Method
Equation (8.34) is implemented in software to perform simulation of the MSS
control method. The MSS controller is embedded in the simulation program as shown in
Figure 8.1. The masked blocks KP', K d * , and inputs are descnbed in Figure 8.2 to 8.4.
O time 1 Clock Time - - id^ 1
cuvent
,O b ids pl
Vector Controtter I;'
flux
7 1
.I + 1 I
Step Input ++ ihput command 1 1
- 1 KP' r Suml hputs
voltage : 1
: d d u / d k I I
1
MSS 1 t
1 1
I Controller :
Figure 8.1 : Vector Controlled AC Induction Motor SIMULINK Block Diagram with
MSS Controller
Block KPb is depicted in Figure 8.2. The input is the motor position error and the
output is K,'. Block Memory has a fùnction to hold the values for one time of iteration.
Thus, previous error signal can be held and added to the current error.
error
Memory
Memoryl K P ~ LI Surn
Figure 8.2: Kpa Block Diagram
Block K d * is depicted in Figure 8.3. The input is the derivative of the motor
position error and the output is &*.
E derivative
of error (de) - Memory KdZ
-.m+ de(k-2 + Memoryl Kd3
Sum
Figure 8.3: K d * Block Diagram
Block inputs is depicted in Figure 8.4. Input is the sum of K,' and and the
output is the final input cornmand voltage of MSS controller to the AC induction motor.
w Memory
MSS controller final input
cornmand voltage
Memory 1
Figure 8.4: inputs Block Diagram
With the simulation program described above, a simulation of AC induction
rnotor position control with the MSS controller was conducted. Figure 8.5 illustrates the
simulation results of the control input, position, velocity, and acceleration time responses
of the motor and inertial load under the MSS controller.
The MSS controller gives us following results:
hUSE.) = 0.0120 rad < ai = 0.01245 rad
hco.s., = O % < C Y ~ =6 %
satiswng the two simultaneous performance specifications given by equation (8.35) and
(8.36).
Figure 8.5: AC Induction Motor Simulation of Step Response under MSS Controller (a) Control input (volts) (b) Rotor position (rad) ( c ) Rotor velocity ( d s e c ) (d) Rotor acceleration (rad/sec2)
Experimental Results with MSS Control Method
With the MSS controller determined, experiments were conducted to determine
the closed-loop performance of the AC induction motor. Wiih the step response test, we
fourid that the MSS controller given by equation (8.32) and (8.33) gives us following
results:
#lcssE.l = 0.0028 rad < ai = 0.01245 rad
h (os, = 3.2 % c = 6 %
satisfying the two simultaneous performance specifications given by equation (8.37) and
(8.38). Figure 8.6 illustraies the step responses of the two sample controllen and the
resultant MSS controller. It is s h o w that the MSS controller satisfies both specifications.
Note that sarnple controller 1 and 2 satisfies only one required specification each. Figure
8.7 illustrates the control input, position, velocity, and acceleration time responses of the
motor and inertial load under the MSS controller. As it is s h o w in Figure 8.7, the
experiment of the MSS controller gives us greatly similar results as the result of the
simulation shown in Figure 8.6. This fact confirms that the simulation was properly
modeled and the MSS controller was successfully designed in both simulation and
expenment.
Note, in Figure 8.7, that the control input is saturated at the +10V, for roughly 10
rnilliseconds. This observable fact is caused by the charactenstic of the DMC-1700
controller that is the restricted range of the input command voltage in minimum, -10V,
and the maximum, +10V. Since 10 milliseconds is a negligibly short period, we ignore
this effect.
1 . Sample controller 1 (Kpl = 7 Voltkadian, Kdl = 0.55 Volt-seclradian) 2. Sarnple controller 2 (Kp2 = 9 Volt/radian, KdZ = 0.5 Volt-sedradian) 3. MSS controller
Figure 8.6: AC Induction Motor Position versus Time under Sarnple Controllers and MSS Controller
O O 5 1 1 5 2 2 5 tim sac)
l 1 1
1
-300 1 , , 1 O 0 5 1 1 5 2 2 5
tim a(sec)
Figure 8.7: AC Induction Motor Experiment Step Response under Convex Controller (a) Control input (volts) (b) Rotor position (rad) (c) Rotor velocity (rad/sec) (d) Rotor acceleration (rad/sec2)
8.9 Summary
In this chapter, the MSS control method is used to denve a new MSS controller.
A numencal design example was given to illustrate an entire procedure for MSS
controller design method with step input as the reference input. Steady state error and
the percentage overshoot were chosen as multiple conflicting specifications.
Both simulation and experiment were conducted and the results were compared
with the MSS controller. It was shown that the results of simulation and the experirnent
are very similar to each other.
Chapter 9
Concluding Remarks
9.1 Summary
This thesis addresses the application of the MSS control design method as an
outer position-loop, applied to an AC induction motor, with a flux-vector imer control-
loop, to treat multiple simultaneous conflicting specifications. It is s h o w that the
proposed MSS control design method is straightfonvard and easily implemented on an
AC induction motor.
We have employed a greatly simplified dynarnic model of the AC induction
motor. The simplification of the AC induction motor dynamic model is achieved through
the use of a commercial flux vector controller applied to the AC induction motor. Use of
the Flux Vector Controller permits the nonlinear electrical dynarnics of the AC induction
motor to be simplified so that it is possible to directly apply the MSS control design
method. A simple mechanical model of the AC induction motor is used to design the
MSS controller.
The MSS controller, based on the simplified dynamic mode1 of the motor, is
designed to achieve two confiicting simultaneous performance specifications. The MSS
controller design procedure can dramaticaily reduce the effort to design a controller when
compared with the effort to design a single controller to meet multiple simultaneous
performance specifications. While finding sarnple controllers is still challenging, this
task is rniich simpler than that of tuning a single set of controller gains to meet a set of
multiple simultaneous conflicting performance specifications. The proposed MSS
control designed is verified through simulations and experiments. Both simulations and
expenmental results clearly confirm that the proposed control method is able to satisfy
multiple simultaneous specifications successfully.
9.2 Recommendations for Future Work
Based on the work rcported in this thesis, the following topics could be studied in
future works:
1. Experiments and simulations can be conducted to investigate the performance of
the linear positioning system with additional performance specifications such as
rising time or settling time, which are also considered as typical performance
speci fications.
2. The linear positioning table can be attached to the AC induction motor to simulate
the Surface Mounting Technology (SMT) machines more exactly and tested with
the MSS control method. Furthemore, a multiple-axis positioning system cm be
developed and the MSS control method is applied for stabilizing the system and
satisfying desired performance specifications simultaneously.
3. The MSS control method can be directly adopted for controlling SMT currently
available in the Laboratory for Nonlinear System Control, Department of
Mechanical and Indusaial Engineering, University of Toronto. For the
experiments, circuit boards can be populated with IC or silicon chips at high
speed and great precision.
Bibliography
h i e s Insirurnrnts ltd., The Strcrin Guuge: Chunieleon, 1992.
Atkinson, D.J., Acamley, P.P., Finch, J.W.. "Observen for induction motor stat
and parameter estimation", IEEE Trans. Ind. Appiicat.. vol. 27, no. 6. pp. 1 1 19
- 1127, 1991,
Baldor Motors and Drives., Series 18H AC Flux Vector Control, 1997.
Blaschke, F . , "Das prinzip der fieldonentierung, die grundlage fur der
transvector-regelung von asynchronmachinen", Siemens Zeitschrfl, pp. 757,
1971.
Boyd, S.P., Barratt, C.H., Linear Controller Design: Limits of Per/ormunce.
Prentice-Hall, Inc., New Jersey, 199 1.
Chen, T.C., Hsu, J.U., "Fuzzy sliding mode controller for induction motor
position control", IEEE IECON Proceedings, vol. 1, pp. 44 - 49, 1994.
Cho, D., Multiple Simultaneous Spec$cation Control of Brushless D. C. Motor
and High-speed Linear Positioning Systent. M.A.Sc. Thesis, Department of
Mec hanical and Industrial Engineering, University of Toronto, 1 998.
Dawson, D.M., Hu, J., Burg, T.C., Nonlinear Control of Eiectric Machinery,
Marcel Dekker, Inc., New York, 1998.
Finch, J. W., Atkinson, D.J., Acamley, P.P., "Scalar to Vector: General Principles
of Modem Induction Motor Control", Fourth International Conference on Power
Electronics and Variable-Speed Drives, pp. 364 -369, 1 990.
10. Galil Motion Control inc., Command Refeence, 1997.
1 1. Galil Motion Control hc., DMC - 1700, 1997.
12. Ho, E.Y.Y, Sen, P.C., "Decouplhg Control of Induction Motor Drives", IEEE
Transactions on Industrial Electronics, vol. 3 5 , no. 2, pp. 25 3 - 262, 1988.
13. Kokotovic, P., Khalil, H., O'Reilly, J., SNtgular Perturbation Methods in
Control: Analysis and Design. Academic, 1986.
14. Liu, H.T., Mills, J.K., "Robot trajectory control system design for multiple
simultaneous speci fications: theory and expenrnentyT, ASME J. Dynamic Systems,
Meas. And Control, vol. 120, pp. 520 - 523, December 1998.
15. Mixon, A., "induction Motor Control with Variable Frequency", Control of
Po wer Svstems Con ference, Con ference Record, pp. 48 - 5 3, 1 9 84.
16. Sensor Developments Inc., Modulor Torque Sensor, 1987.
17. Sorenson, H. W., Parameter Estimation: Principles and Problems, New York:
Marcel Dekker Inc., 1980.
18. The MATH WORKS Inc., Control System Toolbox, 1992.
19. The MATH WORKS tnc., MATLAB for Windows, 19%.
20. The MATH WORKS Inc., Writing S-Functions, 1998.
2 1. Tiitinen, P., Pohjalainen, P., Lalu, J., "The next generation motor control method
- Direct torque conrol, DTC", froc. EPE Chapter Symp., Lausanne,
Switserland, 1994.
22. Trzynadlowski, A.M., The field orientation principfe in control of induction
ntotors, Klewer Academic Publishes, 1994.
23. Vas, P., Vector control of AC Machines, Oxford Univ. Press, London, 1990.
24. Virk, G.S., Digital Computer Control Systems, Macmillan Education Ltd,
London, 199 1.
25. Vukosavic, S.N., Stojic, M.R., "On-line tuning of the rotor time constant for
vector-controlled induction motor in position control applications", IEEE
Transactions on Industrial Electronics, vol. 40, no. 1, pp. 130 - 138, 1993.
26. Wade, S., Dunnigan, M.W., Williams, B.W., "Modeling and Simulation of
induction Machine Vector Control with Rotor Resistance Identification", IEEE
Transactions on Power Electronics, vol. 12, no. 3, pp. 495-506, 1997.
Appendix A
Component Specifications
In this appendix, the specifications of the components are presented. User or
interested readen should read the component manuals for full details. The components
manuals are available in Laboratory of Nonlinear Control System at Department of
Mechanical and Industrial Engineering, University of Toronto.
A. 1 AC induction Motor Specitications
Motor data is depicted in Figure A.1 as shown below. Information c m be found
from the web site of "Baldor Motors and Drives", http://www.baldor.com/information.
CATALOG DATA
CATALOG ITEM: ZDNM3669T EFF @ FULL LOAO: 84 HORSEPOWER: 2 VOLT CODE: F
RPM: 1725 SHIPPING WEIGHT: 97 NEMA FRAME: 182TC MULTIPLIER SVM: Al
TYPE: 0628M LIST PRICE: 1534 "Cm DIMENSION: 18.91
MOTOR DATA
VOLTAGE: 230/460 ENCLOSURE: TENV FULL LOAD AMPS: 5.R12.9 MOUNTING: F1
PHASE: 3 BASE: RG HERTZ: 60 D.E. BEARING: 6206 POLES: O4 O.D.E. BURING: 6205 CODE: 04 ROTAïION: R
DESIGN: 9 SPEC NUMBER: 06F13SW782 1 SERVICE FACTOR: 1.00 RATING:
ADDITIONAL MOTOR INFORMATION
SUBSlïTUTE PART NUMBER: N/A ADJUSTABLE FREQUENCY CONTROL: ZDl8H202-E
S O R STARTER: contact factory C-FACE K f f : N/A
Figure A. 1 : Catalog Data, Motor Data, and Additional Information of the AC induction Motor
Motor Performance data is depicted in Figure A.2. Motor Performance data
information also can be found h m the web site of b'Baldor Motors and Drives",
http ://www. baIdor.com/infomation.
RATING - NOMINALS Rated Output 2 Volts 230/460 Full Laad Amps 5.8/2.9 Speed 1725 Hertz 60 Phase 3 NEMA Design Code 6 LR KVA Code M
Efficiency 84.0
Power Factor 76 Service Factor 1.00 Rating - Duty 4OC AMB-CONT
CHARACTERISTICS Break Down Torque 30 Locked-Roter Torque 25 Starting Current 25 No-Load Currsnt 1 .7
Lino-line Resistance @ 25 degress C 6.2 temperature Rise, in degrces C @ F t N;A
LOAC CHARACTERISTICS - TESTED % of Rated toad 25 50 7 5 100 12s 150 S.F. Power Factor 39 57 69 77 81 84 Efficiency 71.3 80.8 83.7 84.6 84.4 83.6 Speed (rprn) 1785 1772 1759 1745 1730 1714 tine Amperes 1.9 2.2 2 .5 2.9 3.4 4
Figure A.2: Performance Data of the AC induction Motor
A.2 Flux Vector Controller Specifications
Flux Vector Controller specifications and ratings are depicted in Figure A.3 and
Figure A.4, respectively. Readen should read the user manual of "Senes 18H AC Flux
Vector Control" from page 7-1 to 7-4 for details (Baldor Motors and Drives, 1997).
Section 7 Specifications, Ratings & Dimensions
Specif ications:
Harsepower
input Frequercy
Outwt \Joitage
OU~PLJ! Ciirrem
Scrvice Fnc:ur
Duty
Overioad Capacity
Operating Conditions:
Vcltaqe Range 230 VAC Models 460 VAC Models 575 VAC Models
input Line Impedance-
Ambient Opsrating Temperature;
Rated Storage Temperature:
Enclosure:
O to Mâxlmum Input VAC
See Ratings Table
Continuous
Constant Torque Mode: 170-200% for 3 secs 150% for 60 secs
Variable Torque Mode: 11 596 for 60 secs
180-264 VAC 31) 60 HZ / 180-230 VAC 311 50 HZ 340-528 VAC 3t9 60 HZ i 340460 VAC 30 50 HZ 495-660 VAC 30 60 HZ
3% Minimum Required
O to +40 "C Oerate Output 2% per 'C over 40 'C to 55 'C Max
- 30 'C tO +65 'C NEMA 1 . E and €0 (suffix) Modeis NEMA 4X indoor W (sufiix) Models
NEMA 1 . 10 to 90% RH Non-Condensing NEMA 4X indoor: To 100% RH Condensing
Sea tevel to 3300 Feet (1 000 Meters) Derate 2% par 1000 Feet (303 Meters) above 3300 Feet
Figure A.3: Specifications and ûperating Conditions of the Flux Vector Controller
i S : 3C ' 6 0 ' I t J C B O ' 3 7 7 0 : ' 4 ' 5 5 9 0 , '8 '
' 4 11 22 ' 1 1 1.' ' 34 1 4 9 . 22 ! L4 ' 180 2 7 ' 4 6 '
37 2 52 ' 02 u ? 62 ' '09
I' ' 53 5 '00 .m '
1 '2 -4s 760
Note: -E. -€O= -W= -MO=
NEMA 1 Enclosure NEMA 4X lndoar Enclosure Protected Chassis (not NEMAI)
Figure A.4: Ratings of the Flux Vector Controller
A.3 Encoder Specifîcations
Encoder dimensions, mechanical specifications, and electrical specifications are
depicted in Figure AS to A.7. information can be found from the web site of "BEI
Industrial Encoden", http://beiied.com/specs-h2S.html.
H25 E - 2.50 Servo Mount
Figure A.5: Dimensions of the Encoder
Shah Diomctcr: 318" nominal Flat on Sbin: 0.80 long X 0.03 decp
Shaft Loading: Up to 40 fbs. axial and 35 Ibs radid Sboft Runout: 0.0005 T.I.R. at midpoint
Starting Torque at 2SC: 1 .O insz maximum without shrifl seal; 2.5 in-oz maximum with shrift s a 1
Beariags: Cl- ABEC 7 Sbaft: 31 6 shnlcss steel
Housing and Cover: Die cast aluminum Beiring Lik: 2 X 108 revs at rated SM loading. 1 X 1Ol0 revs itt 10% of ratcd shaf?
l oading (mff s specs) Maximum RPM: 10,000
,Moment of laertia: 4.1 X oz-in-scc2
Wcigbt: 13 oz. typical
Figure A.6: Mechanical Specifications of the Encoder
Cycles Pcr SbrR Tura: I to 50,800 (Sct. Sec design guide for inicrpolation options.
Supply Voltage: SV to 24Vk5% arc available IC t&& 4469: SV to 1 SV In. VOu' = Vin 7406(R): SV standard; 7.5V to t4V optional 7272: SV to 24V In. Vaut = Vm -2V
Current Requiremeots: TTL: 175 ml\ maximum, 125 mA typical Output Format: 2 channcls in quadrature 127' ciectrical typicd. Optional index is t>picüll)
gted K cycle widc &&UQW Wavcf6rmi Output IC's: 3469,7272,7406,7406R
Protcctian Level: Rcvcrse, overvoltage and output short circuit (on 4469,7272. only)
Frequcnq Respaase: 100 kHz (cal1 factory for highcr frqucncics) . .
Output Term. Pin Outs: NOTE: Othcr electrical options available
Figure A.7: Electncal Specifications of the Encoder
A.4 Torque Sensor and Indicator Specifications
Torque sensor specifications are depicted in Figure A.8. Information can be
found t o m the user manual of "Modular Torque Sensor" (Sensor Developrnents Inc.,
1987).
STATIONARY TORQUE SENSORS
Code: lncrcmcntal Cycles Pcr Sbaft Turn: 1 to 50,800 -. Sec design guidc for intcrpotaiion
options. Supply Voltage: SV to 24Vi5% arc availablt
4469: SV to 1 SV in. VoUt = Vin 7406(R): SV standard; 7 . W to 34V optional 7272: SV to 24V In. Vaut = V m -2V
Current Rquircments: TTL: 175 mA maximum, 125 rnA rypiwl Output Format: f chsnnrls in quadrature *27* elcctricai typical. Optionül index 1s rypicdly
gatd % cycle wide Output IC's: 4469,7272,7406.7406R (sct IC
Protectioa Level: Rtvcnc. ovctvaltogc and output short circuit (on 4469.7272 only)
Illumination: LED Frcqurncy Response: LOO kHz ( d l factory for highcr frcsluencics)
. . Output Term. Pin Ou@:
NOTE: Othcr clcctrical options avaitabie
Figure A.8: Torque Sensor Specifications
Indicator specifications are depicted in Figure A.9. Information can be found
from the user manual of "The Strain Gauge: Charneleon" for details (Aries instruments
ltd, 1992).
Al 81 00 Specification INPUT: h. ,.5 and FULL BRIDGE STRAIN GAUGE
6dn ro j k i ~
EXCITATION : 2V tu 24V DC (f t V ta f 12V DC) at 7 5 m A (WITH AEMOTE SENSING)
OUTPUT: f l O V O C at 20mA standard f SV OC at 20mA optional 4-20mA - ogtional
ZERO AOJUST: f 2mVN SENSITIY1TI: O 24mVIV FS at 24V exc Io 5 O m V N FS a i 2V exc.
(e.Q ai 1 OV exc. O SmVN FS ta lOmVN F S) FREQUENCI RESPONSE: DC to SkHz (f 5%) FILTE! [SELECTABLE): Lùw pass OC to 200Hz (f 5%) INPUT IMPEDANCE: > 5 0 K n OUTPUT IMPEOLNCE: < 1 n NOISE: 3pV r n s . R.T.I. OP€RATI%G TEMPERATURE IAN6E: OcC IO +50aC
(+3ZCF to +12ZG0 TEMPERATURE COEFFlClEWTS: ZERO = f O 01%/'C
SPAN = f 0.01%PC LlNE VOLTAGE: 1 0 5 to 125V'50160Hz - standard
200 ta 2 4 0 V 50160Ht - optional 1.2V OC - aptionai
OlSPUV UPOATE: 3 times/second HUY l OiTY: O to 90% RH inon-condensingj
Figure A.9: Indicator Specifications
Appendix B
Component Connections
In this appendix, the connections among the components, such as motor encoder,
Flux Vector Controller, interconnect module, and controller card, are shown. For the
user who is going to use current experimental set up, current wire connections expressed
by the colow of the wire are included. It is strongly recommended for the user or
interested readers to read the user manual for each components OF set up before operation.
Specific page numbers for detail explanations in the user manuals are indicated in every
section.
B.l System Diagram
Figure B.l shows the connections between the system components. The Cable 4
(2990 E87647: Low Voltage Computer Cable), between the ICM-1900 Interconnect
Module and the DMC-1700 Controller, is provided by the manufacture so that wire
connection is not necessary.
Flux Vector Induction Inertial
Con troller Motor Load Toraue I
Indicator
€ [CM-1900
Interconnect Module
Con troller DMC-1700 --E '
Personal Computer
Figure B. 1 : AC Induction Motor with Flw Vector Controller System Diagram
B.2 Connection Between Encoder and Flux Vector Controller
The connections between the encoder and the Flux Vector Controller, Cable 1 , are
described in Figure 8.2. The user should read the user manual of "Senes 18H AC Flux
Vector Control" from page 3-30 to 3-3 1 for details (Baldor Motors and Drives, 1997).
Terminal Tightening Torque = 7 Lb-tn (0.8 Nm).
Figure B.2: Encoder Connections
The connections of Cable 1 in the current experimental set up are as follows:
I I w ire I Encoder
A
H I 1 1
B white 1 green
J
Flux Vector Controller
23
24
Line colour
brown
white
25
C
Strîpe colour
white
brown
green
K
white
D
Table B. 1 : Wire Connections between Encoder and Flux Vector Controller (Cable 1)
white
i 1
26
orange
28 orange
blue
I F 1 gray white I
27
white
30
white 29
The colour of the wire explained in Table B.1 can be recognized as defined in
Figure 8 .3 given below:
Line Co1--.- 1 \ / LUUT - - Stnpe Colour
Figure B.3: Wire Colour Definition
B.3 Connection Between Interconnect Module and Flux Vector Controller
There are several modes in the Flux Vector Controller we can set as discussed in
Appendix C.2. In this thesis, "Bipolar Speed and Torque Mode" is selected. The setting
procedure of Flux Vector Controller is described in Appendix C.2. Necessary wire
connections between the Interconnect Module and the Flux Vector Controller, Cable 2
and Cable 3, are described in Figure 8.4. Note that when the switch No.12 of Flw
Vector Controller is open, the mode is "Speed Mode", which means that speed is
proportional to the input comrnand voltage. In our case, 'Torque Mode" is selected by
closing the switch No.12, which means that the torque is proportional to the input
command voltage. Switch No. 8, 9, 10, 12, 16, and 17 are connected with each other as
shown in Figure BA. The user should read the user manual of "Senes 18H AC Flux
Vector Control" from page 3-41 to 3-42 (Baldor Motors and Drives, 1997) and "DMC-
1 700" from page 164 to 165 (Galil Motion Control, 1997) for details.
--------- Wire connection kom the first column of ICM- 1 900 Wire connection fiom the second column of KM-1900
ICM- 1900
E R RETURN
RETUAN
RE TURN
RETURN
Interconnect Module Figure 8.4: Interconnect Module and Flux Vector Controller Connections
The connections of Cable 2 and 3 in the current experimental set up are as
follows:
I 1 I I l
I 53 I b r o m I white I 3 1 t
Flux Vector Contro ller
ICM- 1900
1 L 1
1 85 white 1 green 1 33
84
Wire
Line colour
white
86
Stripe colour
87
orange
orange
88
Table 8.2: Wire Connections between ICM-1900 and Flux Vector Controller (Cable 2)
32
1
white 1 34
white
89
Wire
brown
36 green
gray
Flux Vector Controller
35
white
[CM- 1900
white 38
Line colour
74
Stripe colour
35
white
32 gray
29
1
78 1 brown 1 white 1 7
blue
white
h
77
1
white
white
1 1 t 1 39 1 green 1 white 1 17
I
P Y
orange
40
Table 8.3: Wire Connections between ICM-1900 and Flux Vector Controller (Cable 3)
4
green 5
white
blue
6
white 8
B.4 Connection of Torque Sensor
The connections between the torque sensor and the indicator, Cable 5, are
described in Table 8.4. The user should read the user manual of "The Strain Gauge:
Charneleon" for details (Aries Instruments Itd, 1992).
+ EX 1 + Excitation 1 RED Terminal abbreviation of Indicator Explanation
+ SEN
Wire from Torque Sensor
- SEN
+ Sense
- EX
Comect to + EX
- Sense
1
- SIG
Table 8.4: Wire Connections between Torque Sensor and Indicator (Cable 5)
Connect to - EX
- Excitation
+ SIG
CAL
COM
OP
Black
- Signal White
+ Signal
Calibration sense
Common
Output
Green *
White/orange
Orange/whi te
Appendix C
Operating Manual
In this appendix, the motor testing procedure is introduced. When the user install
the AC induction motor, Flux Vector Controller, Interconnect Module, and DMC-1700
controller card, fo llow the sequences care full y explained in this Appendix after proper
wire co~ec t ions between components as given in Appendix B. The details of the testing
sequences are introduced step by step from testing AC induction motor itself to operating
the motor with C++ language programming through the DMC-1700 controller. The
specific mode setting of the Flux Vector Controller for our expenments is also introduced
in this Appendix. The user can use this Appendix as an operating manual of current
expenrnental set up.
!! In any case of the motor turning and not being under
the control, press STOP key in the Flux Vector
Controller keypad. !!
C.l Motor Test with Flux Vector Controller
In this section, motor testing procedure is explained when it is connected to the
Flux Vector Controller only. This test must be done successfully before the user starts
operating the motor through the DMC-1700 controller. It is strongly recommended
decoupling any lond attached to the motor rotor before turning on the motor power
to avoid sny kind of damage occurred from the sudden operation of the motor. For
better understanding of the expenmental set up components, a system diagram is depicted
in Figure C. 1.
Turn off the computer the DMC-1700 controller is installed. (Discomect any
possible connection between the Flux Vector Controller and the DMC- 1700
controller card.)
Tum the power switch on which is mounted on the wall in Room MC78A. The user
may need a key to open the lock (Figure C.2).
Check the keypad of the Flux Vector Controller whether or not the mode is "LOCAL".
The keypad of the Flux Vector Controller is depicted in Figure C.3. If the mode is
"REMOTE", press STOP key. The mode will then be changed to "LOCAL"
Press J 0 G key on the keypad. Then, the light of the J û G key will be on.
Press FWD key and hold it until the motor tums with a preset JOG speed (6OOrpm in
the current set up). Do the sarne procedure with R N key.
If the motor tums coaectly, the wires between the AC induction motor and Flux
Vector Controller are properly connected.
To operate the motor with comrnunicating of DMC-1700, it is necessary to change to
"REMOT€" mode by pressing LOCAL key.
Figure C. 1 : Experimental Set up
Switch for AC Lnduction Motor
Figure C.2: Power Switch
JOG . LCCAL j PROG 1
Figure C.3 : Flux Vector Controller Keypad (Baldor, Model No. ZD 1 8H202-E)
C.2 Flux Vector Controller Setting
In the Flux Vector Controller (Baldor Series 18H Control), there are several
modes the user can select. Each mode has different wire connections between ICM- 1900
Interconnect Module and the Flux Vector Controller. Readers can find the details kom
the user manual fiom page 3-33 to 3-46 (Baldor Moton and Drives, 1997).
There are seven modes in the Flux Vector Controller as follows.
Keypad
Two Wire Control with 15 Preset Speeds
Fan Pump 2 Wire Control
Fan Pump 3 Wire Control
Bipolar Speed Torque Control
Serial
Process
In this thesis, we use Bipolar Speed and Torque mode for the expenments. The
Bipolar Speed and Torque mode can be set by operating the keypad on the Flux Vector
Controller keypad as follows.
1. Make sure that the current mode is ''LOCAL" as explained in section C.1. If it is
"REMOTE" mode, press STOP key.
2. Press PROG key once, then "PR= EMER FOR PRESET SP€€DS'will be
displayed.
3. Press A key until ''PRESS ENTER FOR INPUT" is displayed.
4. Press ENTER key, then "OPERATING MODE" will be displayed.
If "?: 61POLAR" is displayed, then the mode Bipolar Speed and Torque mode is
already selected.
If it is not (Le. KEYPAD, STANDARD RUN, ISSPD, FAN PUMP ZWIRE, FAN PUMP
3WIRE, SERIAL, or PROCÛS MODE), press ENTER key, then the cursor appean.
Press A key until "P: BIPOLAR" is displayed and press ENTER key.
When the mode selecting is finished, press A key until "PRESS EMER FOR MENU
EXIT" is displayed and press ENTER key.
Press A key until "PRESS €MER FOR PROGRAMMING EXIT' is displayed
press ENTER key.
The Flux Vector Controller keypad will show initial display. Tum off the motor
power.
!! Turn off the motor power before moving on to next step! !!
C.3 Test through DMC Terminal
Once the test of the motor with Flux Vector Controller (Appendix C. 1 ) and Flux
Vector Controller setting (Appendix C.2) are done, then the user c m test the motor
through DMC-1700 controller to confiinn that the wire connections between the ICM-
1900 Interconnect Module and the Flux Vector Controller are properly made. This
procedure can be done through DMC Terminal.
1 . Open the Shortcut to M e n 3 2 (Figure C.4). [Do not turn on the motor power at
tbis moment!)
Figure C.4: DMC Tednal Icon
124
2. Click the menu Terminal and select the appropriate controller. For the current setup,
Controller 1 should be selected (Figure C. 5).
Figure CS: DMC Terminal Window
3. First, type as follows on the DMC Terminal before turn on the motor power (Figure
C.6). Note that al1 commands should be written in the upper case.
The MT command selects the type of the rnotor and poluity of the drive signal.
Users can find the details of the cornmand MT in the COMMAND REFERANCE of
DMC-1700, page 99 (Galil Motion Control, Inc., 1997).
By typing these cornmand, any kinds of unexpected motor behaviour can be avoided
when the user turn on the motor power.
Figure C.6: Initializing DMC Terminal Window
126
4. Turn on the motor power switch and observe if the motor is charged and the Flux
Vector Controller keypad displays "REMOT€". If not, press LOCAL key.
5 . Type any command introduced in user manual of "DMC-1700" (Galil Motion
Control, 1997). This test is for P D control loop embedded in DMC-1700 as
discussed in Chapter 5 (Figure C.7).
(Example: CN -1,l~ KP 2 J KI OJ KD 0 . 1 ~ DP Oci PR 40000~ SP 10000~ AC 10000~ DC 10000~ BGJ)
Figure C.7: Cornmands in the DMC Terminal Window
6. Check the results if they are expected values using comrnands 'TP". The "TP"
command tell the current rotor position. Users cm find the details of the command
TP in the COMMAND REFERENCE of DMC-1700, page 139 (Gaiil Motion Control,
Inc., 1997). Position is expected to be around 4,000 if the user use the exarnple set
of comrnands.
7. To test with ignoring embedded PID controller, type as follows in the DMC
Terminal.
OF OJ KP OJ KI OJ KD OJ
8. With the command "OF", constant input cornmand voltage can be sent to the motor.
Type as follows in sequence.
9. Check the time to reach the maximum speed of the motor. If the motor tums with
different speed proportional to the b'Of" command value, then the rnotor and the
DMC-1700 controller are ready to be used for the experirnents.
C.4 Test through C Program
The user prograrn to operate the experimental set up has been developed in C
programming language. Microsofi TM Visual C++ Version 1 .52~ compiler is used to
create the executable computer code. In this section, the sequences to operate the motor
with C prograrn step by step.
1 . Place the user program file in the proper directory. For example, coost.c is placed in
C:\Dmcdos\C\Users\cooot input (Figure C.8).
Figure C.8 : constac in C :U)mcdos\C\Usen\coiirt in put
2. Open the Visuai C++ and open C program file that user wants to nui (Figure C.9).
Figure C.9: Visual C++ Icon
3. Under the menu Project, select bcNew". Type the name of the project (usually it is
the same as the narne of C program file, Le. const in example) and choose Project
Type as "MS-DOS application (.€XE)" (Figure C. 10).
Figure C. 10: Creating the New Project
4. It prompts the user to include files to build the project in the dialog box with the title
of "Edit - UKI pr~jCCt name.MAKi. Library routines supplied by Galil Motion
Control Inc. must be included to build and execute the project. Find the following
files under the directory of C:üDMCDOS\C\ and add them by double clicking on
their narnes. Total ten files are included in the directory including the user program
(Figure C. 1 1). Click Close.
dmcbin.~ dmccvs.~ dmcdma.~ dmcd0s.c drncfmw.~ dmcint.~ dmcisa.~ dmcsup.~ dmcuti1.c user program namex (i.e constac, openme, convexbc)
Figure C. 1 1 : Including Library Routines
5 . Select Project under the menu Options and click Compiler in Customize Build
Options (Figure C. 12).
. ~ . ~ o ~ o ~ ~ ~ ~ o ~ e e e ~ e e e e m e œ e m t œ ~ ~ ~ e e m a m e ~ m s t ~ m e m ~ e v m ~ ~ ~ a e o e m ~ e e m t e ~ ~ ~ o e œ ~ m s ~ m.
;orstan: -.u.raqe %cndzr;g çzzgsu. m/
Thir d x y ~ ~ r -5 <i s . r ~ l c '.tut I t r s e d ~ ï g a r:ny:e input coibarrd vdta3c ~ m . m a e e a e e e o ~ e e e m ~ m m m e e m e m m e a o a e m ~ s m m e e ~ ~ m ~ e e m v e * m e . i ~ m m m m m * ~ ~ m m a m e ~ m H u e e B ~ ~ a
( 1 onq
Figure C. 12: Configuring Project Options
6. Select Memory Model in Categow and set Huge in Category Settings: Memory
Model (Figure C. 13). Click OK. Click OK, again.
œ 'hW.t OOI CO- tage sen<l:Cg :=3zan ./ prcqrai ;; 4 ;:rple ' . u t t a .rcr.dirig a !s;aq;c rnput cui iord w d t o j o 9
Figure C. 13: Configuring the Memory Size
7. Select "Build uwr project name.EXE" under the menu Project (Figure C. 14).
. I l L l f ~ t l o a . , , ' y r
- )Iot;or c0Bp:otm : 109 ., hiit t m r l >Sh 1 . . m. . UFFP-R t ,rqnt-?qI 1.e~ WJ' ,
Figure C. 14: Building a Project
8. If the dialog box saying that "The current project has changed. Would you like
to build the affected files?" appears, then click Yes.
9. If there is no error found, user cm execute this project by choosing 4bExecute user
pmject name.ME'' also under the menu Projecl (Figure C. 15).
wunbag Cd136 wrrnbaq C4136 wuning Cd136 wunrng Cd047 v u n i a g C4024 r u n i n g Cd136 vuobag C4136 varnlnq Cd136 v u n i a g C l l 3 b vuarng '24136 vunrng C I 1 3 6 wuninq C4136 vunrng C413C Vuabag Cd136 vuning Cd136 vuarng Cd136 runrng 0 1 3 6 r u n t n g C4136 vuainq Cd136 vunrng C4136 vuniaq C a l 3 6 vuarng Ca136 vuning C41Ol vuning Cd101
Figure C. 15: No Error Found
10. When the user executes the program, it prompts the user to enter the input command
voltage. The user is supposed to type any number between -10 and +10 and press the
enter key. The motor tums until 4,000 data of position, velocity, and acceleration of
the rotor are stored in the specific files (Figure C. 16).
Figure C. 16: Executing the Project
1 1 . Repeat the same procedure for the different C programs, i.e. opeme, c0nvex.c.
Appendix D
MATLAB Programs
In this appendix, al1 MATLAB programs used in simulations are included.
Instructions for users to execute the program are included as well.
The readers should have basic knowledge to use the SIMULMK. In this
Appendix, the instruction to use the SIMULINK and the description of the basic blocks
will be omitted.
D. 1 Simulation Procedure
The procedure to perfonn the simulation of AC induction moior is as follows.
1 . Open MATLAB Venion 4.2 windows and change the directory to the one that
has simulation files (ex: C:\Matlab\Users\Sirnulation\open) (Figure D. 1 ).
2. Type "motorJ" to initialize the motor parameten.
3. Type "simullinki" to open the SUlLnINK window and open the "motor-rrn"
file.
4. Start the simulation.
5. When the simulation is finished, restore the MATLAB window and type "pl~tl".
Figure D. 1 : Simulation Directory Tree
clear
Rs = 3.04; % stator resistance (ohm) Rr = 2 . 7 ; % rotor resistance (ohm) Ls = 0.4497; 3 stator inductance (Hl Lr = 0.4469; % rotor inductance (Hl Me = 0.4351; 3 mutual inductance (Hl
np = 2; % pole pair number
tau = Rr/Lr; K t = 1;
sample = [O. 296075 -0.36 O. 36225 -0.3261 0.151425 -0.459525 0 .SI1275 -0.1483 0.433025 -0.251275 0.4057 -0.287225 O. 36305 -0.34125 0 .A285 -0.198375 O .4O6l8 -0 -403125 0.1911 -0.285051 ;
for i = 1:21, tt (2*i-1,l) = 0.5* (i-1) ; tt (2*i, 1) = 0.5* (i-1) +0.002;
end
for j = 1:20, tv(2*jfl) = sample(j); tv(2+j+l,l) = sample(j1;
end
Flxrt = [O; 0.04; 0.045; 0.51; Flxrv = [O; 6.3; .787; . 7 8 7 ] ;
Tqrt = tt; Tqrv = tv;
function [sys,xO] =ind(t,x,u, flag)
Rs = 3.04; % stator resistance (ohm) Rr = 2 . 7 ; % rotor resistance (ohm) Ls = 0.4497; 8 stator inductance (Hl Lr = 0.4469; % rotor inductance (Hl Me = 0.4351; % m u t u a l inductance (H)
np = 2 ; % pole p a i r number
elseif flag == I
idsn = (Rs*Lr*x(l) - U ( ~ ) * M ~ ^ ~ * X ( S ) - Rr*Me*x(3) - u(3)*Lr*Me*x(4) - ~r*u(l) 1 *aO;
iqsn = (u (3) *~e^2*x(l) + Rs*Lr*x(2) + u ( 3 ) *Lx*Me*x(3) - RrfMe*x(4) - Lrtu(2) ) *aO;
idrn = - (Rs*Me*x(l) - u ( 3 ) *Me*Ls*x(2) - Rr*Ls*x(3) - u(3) *Lr*Ls*x(4) - Me*u(l) PaO;
iqrn = - ( u ( 3 ) +Me*Ls+x(l) + Rs*Me*x(2) + u(3) *LrtLs*x(3) - Rx*Ls*x(4) - Me*u ( 2 ) *aO;
sys = [idsn;iqsn;idrn;iqrnl;
elseif flag == 3
end
function [sys,xO]=vcontrol(tfxIu1flag)
Rs = 3.04; % stator resistance (ohm) Rr = 2.7; % rotor resistance (ohm) Ls = 0.4497; % stator inductance (Hl Lr = 0.4469; % rotor inductance (H) Me = 0.4351; % mutual inductance (KI
G1 = les; % integral gain G3 = 200; % proportional gain
if flag == O s y s = [5,0,5,5,0,11; xO = zeros(5,l);
elseif flag == 1 cose = cos(rem(x(2)+~(3) ,2+pi) ; sine = sin(rern(x(2) +x(3) ,2"pi) ) ; idse = u(î)*cose + u(3Ifsine; iqse = -u(2)*sine + u(3)*cose;
tau = R r / L r ; if x ( 1 ) ==O Psir=le-6; else Psir=x (1) ; end
sys = [tau* (Meeidse-x(1) ) ; % psir ~e/Psir*tau*iqse; % theta (sl) ~ ( 1 1 ; S theta(r1 ~ l * ( ~ ( 4 ) -idse) ; % GI*idserr ~l*(u(S)-iqse)]; % Gleiqserr
elseif flag == 3 cose = cos(rem(x(2)+~(3),2'pi)); sine = sin(rem(x(2)+x(3) ,2*pi) 1 ; idse = u(2)*cose + u(3)*sine; iqse = -u(2)*sine + u(3)*cose;
iderr = u(4) - (u(2) *case + u(3) *sine) ; iqerr = u(5) - ( - u ( 2 ) *sine + u ( 3 ) *cosel ;
Vdse = x ( 4 ) +G3*iderr; Vqse = x(S)+G3*iqerr; Vdss = Vdse*cose - Vqse*sine; Vqss = Vdse*sine + Vqse*cose;
sys = [~dss;~qss;idse;iqse;x(l) 1 ;
end
subplot ( 2 2 2 ) plot (time,pos, 'b' ; title ( [ ' (b) ' 1 ) ; xlabel( ['Time(çec) ' 1 ) ; ylabel(['~osition(rad) ' 1 ) ; grid;
subplot (223) plot(time,vel, 'b') ; title( [ ' ( C I ' 1 1 ; xlabel( ['Time(sec) ' 1 ) ; ylabel ( [lvelocity (rad/sec) ' 1 ) ; axis (VI ; grid;
subplot ( 2 2 4 ) plot (time,accel, 'b') ; title( [ ' (dl ' 1 ; xlabel(['Time(sec) ' 1 ) ; ylabel ( ['~cceleration (rad/sec-sec-sec) ' 1 ) ; axis (a) ; grid;
Appendix E
User Programs
In this appendix, al1 user programs are included. Instructions for users to execute
each program are included as well. To run the program, the user needs to copy the file to
any directory and lollow the procedure introduced in Appendix C.4.
A program const.c is to test the command "OF" through DMC-1700 controller to
operate the motor.
When the program is executed, it prompts users to enter the input command
voltage. Usen are supposed to type any nurnber between -1 0 and +10 and press the enter
key. This program functions the same as "OF" command in the DMC terminal. The
motor will tum until 4,000 data of position are detecied. Rotor position, velocity, and
acceleration of the rotor are stored in the specific files so that users can look into these
files and plot the results.
i* Constant voltage sending program */ !* */
/* This program is a simple test for sending a single input command voltage */ /+*******+*$********************************************************************/
/* Programmed by Seung-Ju Lee */
!* LAST UPDATED April2,1999*/
#inchde ~c::dmcdos\c\dmcdos.h~ Xinclude ~c:\dmcdos\c\àmcdrna.h~ #inchde <time.h> #inchde <stdlib.h> Xinclude <stdio.h> #inchde <math. h> #inchde <malloc.h>
void PrintError(1ong rc); void IntenuptCallback(USH0RT usinterruptStatus); !/void sleep(clock-t wait);
float float float float Most 'ifloat .' float tloat
/* Control input going into DMC 1700 ' 1 /* Actual position of the motot */
'* Vetocity of the motor */ /* Desired position minus the actual position*!
;***Kalman Filter Variables***/ float cos~gh,sin_gh,exp_gh,dclt~t;//,cos~g~,sui~h2,expPgh2; floa t gamma 1 =500.0; float gamma2=500.0; float phi[S] [5], kal[S], xkal[5], xkal~dt[5],velocityB[10005];
long main(int argc, char* argv[]) t
long rc; /* R e m code */
int finMo tion; /Wot ion complete flag */ char buffer[256]; /* Rcsponse from controller +/
// char tcommand[8]; /* To store 'tell torque, T T commamis in binary */ // char pcommand[8]; /* To store 'tell position, TP' commands in binary */ 11 long int surn;
int i ,j,k,s,u,v; dock-t start, fmish; double duration; char q[20]; float vol,volt; float T;
FILE *fp,*fp 1 ,*fp2; BYTE bBinaryResult[32]; ULONG ulBinary ResultLength; ULONG ullength;
HANDLEDMC hdmc; /* Handle to controller */ CONTROLLEWO controllerinfo; /* Controller information structure $1
// sum = O; argc = argc; argv = argv;
, * Print Title of the program and get the controller Unfomtion */ ;******************************************************************************/
: * Open the connection with DMC 1700 $1
printf("0pen the connection\n\n"); rc = DMCOpen(&controilerinfo, &hdmc);
rc = DMCComrnand(hdmc, "MO;", buffer, sizeof(buffer)); rc = DMCCommand(hdrnc, "OFX=O;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc, "MT-l;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc, "CN 1 ,- 1 ; ", buffer, sizeoqbuffer)); rc = DMCCornmand(hdmc, "KPX=O;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc, "KIX=O;", buffer, sizeoflbuffer)); rc = DMCCornmand(hdmc, "KDX=O;", buffer, sizeoflbuffer)); rc = DMCCommand(hdrnc, "SH;", buffer, sizeoqbuffer));
PQuery the state of the inputs. If the value is 255, this mans everything is on 'High' (OK)*I printf("Query the state of the inputs\n\nn); rc = DMCCornrnand-AsciiToBinary(hdrnc, "TI;", strlen("Ti; "), bBinary Result, sizeoq bBinary Result ),
&ulBinqResultLength); iqrc = DMCNOERROR) rc = DMCBinaryCornmand(hdmc. bBinaryResult, ulBinaryResultLength, buffer, sizeoqbuffer));
if (rc) PrintError(rc);
else {
int temp; temp = atoi(buffer); printf("The value of the inputs is %d\n", temp);
1
rc = DMCCommand-AsciiToBinary(hdmc, "TM-1000;TM500:", strlen("'lM-100O;TM500;"), bBinaryResult, sizeof(bBEaryResult), &uBinaryResultLengih);
if(rc = DMCNOERROR) rc = DMCBinaryComrnand(hdmc, bBinaryResult. ulBinaryResultLength, buffer. sizeonbuffer)); if (rc) { PrintError( rc) ;
retum rc; I
/ Array to store the TT cornmand in binary / * tcommand[O] = Oxde;
tcommand[ 1 ] = 0x00; tcomrnand[2] = 0x00; tcommand[3] = 0x0 1 ; */
8 ' 1 A m y to store the TP command in binary /* pcomnd[O] = Oxd9;
pcornmand[ 1 ] = 0x00; pcommand[2] = 0x00; pcommand[3] = 0x0 1; * /
rc = DMCCommand(hdmc, "SH;". buffer. sizeoflbuffer));
**********************++++*************/ * USER INTERFACE */ ********************************a/
printq" Input voltage '? "); scant("%f ', &vol);
rc = DMCCommuid(hdmc. "DPX=O;", buffer, sizeoflbuffer));
for (i=O; ic4000; i*)
sprinaq, "OFX=?/of;",volt); rc = DMCCotnmand(hâmc, &q, buffer, sizeof(buffer));
// rc = DMCBinaryCommand(hdmc,tcomrnand,4+ buffer, sizeof(buffer)); rc = DMCCornmand(hdrnc,"TT;", bu ffer, sizeoRbuffer)) ; torque[i] = (atoqbuffer));
// rc = DMCBinaryCommand(hdmc,pcommand,4, buffer, sizeoflbuffer)); rc = DMCCommand(hdrnc,"TP;", buffer, sizeof(buffer)) ;
position[i] = (atof(buffer))*2*3.14/4000; l* change the returned value into radian */ i/ thetaA = position[s];
input[i] = volt;
finish = dock(); duration = (double)(fmish - start) / CLOCKS-PER-SEC; printf( "\n%S.7f scconds\nùi\n", dwation );
/**Kaiman Filter Mamces Set up **/ delta-t = T; cos-gh = cos(gamma 1 *delta-t); sin-gh = sin(gamma l *delta-t); exp-gh = exp(-gamma 1 *delta-t);
= cos(gamrna2*dclta_t); sin_gh = sin(gamma2*delta-t); exp-gh = exp(-gamma2*delta - t);
!*********The test is frnished, resurne the initial condition ******* *******/
rc = DMCCommand(hdrnc, "MO;", buffcr, sizeof(buffer)); rc = DMCCommand(hdmc, ''OFX=O;", buffcr, sizcof(buffcr)); rc = DMCCommand(hdmc, "SH;", buffer, sizeof(buffer));
/*** Tirne calculation ***! for (u=O; u4000: u++) {
xtime[u] = u*T;
* * * velocity calculation ** */ t'or (u= 1 ; ~ 4 0 0 0 ; u++) t
veIocity[u]=(-position[u+2]+8.0*position[u+ 11-8.0*position[u- 1 ]+position[u-2j)/( 1 2.0eT); I
j ***** Velocity calculation with Kalman Filter ****!
'*Save the various data into file, dat.txt, for Matlab use*/
printf("Saving the data into the file, dat.txt\nW); fopen("dat.txtW, "w"); if((@ = fopen("dat.txtN, "wi")) - NULL) p ~ a " C a n ' t open file"); for (u=O; u4000; u++)
{ fprincf(fp, "%f %f %f %f W, xtime[u], torque[u], position[u], velocity[u]); 1 fclose( fp);
/'*Save position into file, pos.txt, for Excel use*/
printf("Saving the data into the file, pos.txtbW); fopen("pos.txt", "wu); if((fp 1 = fopen("pos.txt", "w+")) = NWLL) pNitf("Can't open file"); for (j=û; j40ûû; j-ct)
@rintf(@ 1, "%W. position^]);
/*Save velocity into file, vel.txt, for Excel use*/
printflWSaving the data into the file, vel.ixt\n\nw); fopen("vel.txt", "w"); if((fp2 = fopen("vel.txt", "w-t")) = NULL) printflWCan't open file"); for (j=O; je4000; j++)
t fprintf(fp2. "%hW. velocityB[jl): l
prin tf("Close the connectionh");
rc = DMCClose(hdmc); if (rc) t
PrintError(rc); return cc;
i
recurn OL;
void PrintEnor(1ong rc) {
printf("An error has occurred. Return code = %ld\nu, rc); 1
void IntermptCallback(USH0RT usintemiptStatus) i
usintcmptStacus = usinterruptStatus;
A program 0peo.c is to estimate the motor parameters, J and B. by applying a
series of twenty pseudo random input command voltages to the motor. In this program
"OP' command is used to send input command voltages through DMC- 1700 controller to
operate the motor.
When the program is executed, it prompts users to press the enter key when ready.
4.000 rotor pozitions are measured every 2.5 millisecond. The velocity and the
acceleration of the rotor are estimated From the rotor position data. Input command
voltage, rotor position, velocity, and acceleration of the rotor are stored in the specific
files so that users can look into these files and plot the results.
/*************************************************************************************/ /* This is a DOS application for ISA bus communications to a (0pen.c) */ /* Galil motion controller DMC1720 (Al1 commands are written in binary fonn) * / /*************************************************************************************! /* Programmed by David Cho */ /* Modified by Seung-Ju Lee */
/* LAST UPDATED Jan 28,2000*/
!* THIS PROGRAM IS USED TO TEST THE MOTOR M OPEN LOOP MODE*/ * A) RANDOM BiNARY VOLTAGE SEQUENCE TO TEST FOR THE MOTOR PARAMETERS *i
fiinclude ~c:\dmcdos\c\dmcdos.h~ #inchde <c:\dmcdos\c\dmcdma.h> #inchde <time.h> #inchde <stdlib.h> #inchde cstdio. h> #inchde <math.h> Xinclude <malloc.h>
void PrintEnor(1ong rc); void InterruptCalIback(USHORT usIntermptStatus); void sleep(c1ock-t wait);
tloa t torque[10005], voltage[6005]; float position[l 0005]; float acAf 10005]; tloat acB[10005]; tloat A 1 [1 00051, A2[10005]; int t.random; tloat s(2 IO~,vo1[20],xtirne[10005];
/* Torque of the motor *! /* Position of the motor */
I * * * Kalrnan Filter Variables* * */ float cos~h,sin-gh,exp-gh,delta-t,cos_gh2,sin_,exp_gh2; float gamma 1 =20.0; tloa t garnma2=500.0; float phi[S][5], ka1[5], xkal[S], xkal~dt[5],vtlocityA[12005],veloci~B[12005];
long rnain(int argc, char* argv[])
long
int char char char char char char long int int dock-t double
rc; /* Return code */
flnMotion; /* Motion complete flag */ buffer[256]; l* Rcsponse from controller */
ecommand[8]; /* To store commands in binary */ tcommand[8]; /* To store 'tell toque' conunands in binary */ pcomrnand[8]; /* To store the position of the motor */ vcornmand[8];
q[20l*p; sum;
i j,a,u,k,v,counterl ,counter2; start, f ~ s h ; duration;
BYTE bBiniuyResult[32]; ULONG ulBinary Result Length; ULONG ullength;
HANDLEDMC hdmc; /* Handle to controller */ CONTROLLERNFO controllerinfo; /* Controller information structure */ sum = 0; argc = argc; argv = argv;
I* Controller imfomtion */ /*************************************************************************************/
i* Open the connection *l
printf("0pen the connectionh"); rc = DMCOpen(&controllerinfo, &hdmc); if (rc)
PrinError(rc); return rc;
i* Set the motor off */ rc = DMCCornmand(hdrnc, "MO;", buffer, sizeof(buffer)); if (rc)
PrintError(rc);
t* REvERISE THE POLANTY */ rc = DMCCommand(hdmc, "MT- 1 ;", bmer, sizeof(buffer)); if (rc)
PrintError( rc);
l* SERVO HERE *! rc = DMCCommand(hdmc, "OFX=O;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc, "SH;", buffer, sizeof(buffer));
rc = DMCCommand(hdmc, "K.PX=O;", buffer, sizeof(buffer)); if (rc)
PrintError( rc ) ;
I* Reverse the limit switches * l rc = DMCCornmand(hdrnc, "CN 1 ,- 1 ;", buffer, sizeoqbuffer)); if (rc)
PrintError(rc);
'*Query the state of the inputs*/ printf("Query the state of the inputs\n\nN);
rc = DMCCommand-AsciiToBinary(hdmc, "Ti;", strlen("TI;"), bBinaryResult, sizeoflbBinaryResult), &ulBinaryResultLength);
iqrc = DMCNOERROR) rc = DMCBinaryComrnand(hdmc, bBinaryResult, ulBinaryResultLength, buffer, sizeof(buffer));
if (rc) PrintError(rc);
e Ise {
int temp; temp = atoi(buffer); printflWThe value of the inputs is %d\nt', temp);
1
!* Set the X axis position * l printfiMSet the X axis positionh"); rc = DMCComrnand-AsciiToBinary(hdmc, "DPX=O;", strlen("DPX=O;"), bBinaryResult,
sizeof(bBinaryResult), &uBinaryResultLength); iqrc --. DMCNOERROR)
rc = DMCBinaryCornmand(hdmc, bBinaryResult, ~BinaryResultLength, buffer, sizeoflbuffer));
if (rc) PrintError(rc);
l* Query the X axis position */ printf'("Query the X axis position\n"); rc = DMCComand-AsciiToBinary(hdmc, "TPX;", strlen("TPX;"), bBinaryResult,
sizeof(bBinaryResult), &ulBinaryResultLength); if(rc = DMCNOERROR)
rc = DMCB inaryCommd(hdmc, bBinary Result, ulBinary ResultLength, bu ffer, sizeo f( bu ffer) ) ;
if (rc) PrintError(rc);
else {
long temp; temp = atol(buffer);
printf'("The value of the X axis position is %Id\nM, temp);
/* Set the default sample rate */ printflUThis sets the sample rate\n\nW ); rc = DMCCommand_AQciiToBinary(hdmc, "TM- 1000;TM 1 OOO;", strlen("TM- 1000;TM 1 OOO;"),
bBinaryResult, sizeof(bBinaryResult), &ulBinaryResultLength); iflrc == DMCNOERROR)
rc = DMCBinaryCommand(hdmc, bBinaryResult, ulBinaryResultLength, buffer, sizeof(buffer)); if (rc) t PrintError(rc);
return rc: 1
rc = DMCCommand-AsciiToBinary(hdmc, "DPX=O;", strlen("DPX=O;"), bBinaryResult, sizeoflbBinaryResult), &ulBinaryResultLength);
if(rc == DMCNOERROR) rc = DMCBinaryCommand(hdmc, bBharyResult. ul8inaryResultLcngt.h. buffer, sizeof(buffer));
if (rc) Prin tError( rc);
!* USER MTERFACE * 1 *********************************/
printflVOPEN LOOP TEST BY SENDMG 10 RANDOM BINARY VOLTAGE SEQUENCEhh (TO OBTAiN MOTOR PARAMETERS J,B)\n\n");
'* Generate 20 numbers. */
printf("When Ready, Please Press ENTER\nN); p = getcharo;
rc = DMCCommand AsciiToBinary(hdmc, "DPX=O;", strlen("DPX=O;"), bBinaryResult, sizeof(bBinaryRcsult), &;l13inary~esult~ength);
rc = DMCCommand(hdmc, "OFX=O;", buffer, sizeoqbuffer)); if(rc = DMCNOERROR)
rc = DMCBinaryCommand(hdrnc, bBinaryResult, ulSiaaryResultLength, buffer, sizeof(buff~er));
if (rc) PrintError(rc);
/********* start sending voltage and clock **********/
foa=0; j<20; j++) { sprinflq, "OFX=%f;", volb]); rc = DMCCommand(hdmc, &q, buffer, sizeof(buffer));
counter l = j4200; counter2 = counter 1 +200;
for( i=counter 1 ; iccounter2; i*) {
// rc = DMCCommand(hdmc,'TE;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc,"TT;", buffer, sizeof(buffer));
cc = DMCCommand(hhc,"TP;", buffer, sizeoflbuffer)); positionli] = atoqbuffer);
rc = DMCCommand(hhc, "MG@AN[ 1 J ;", buffer, sizeoqbuffer)); At [u] = atofibuffer);
rc = DMCCommand(hdmc, "MG@AN[3];", buffer, sizeof(buffer1); AL[u] = atoflbuffer);
finish = clock(); duration = (double)(finish - start) / CLOCKS-PER-SEC; printf( "Oh2.4f secondsh", duration );
'**Kalman Filter Matrices Set up **! delta-t = T; cos-gh = cos(gamma 1 *delta-t); sin-gh = sin(gamma 1 *delta-t); exp-gh = exp(-gamma 1 *delta-t);
cos-gh = cos(gamma2*delta-t); s i n j h = sin(gamma2*deItadt); expsh = exp(-gamma2*dclta-t);
/***+***+*******Stop the Open loop test *********&**********+*+***/ if(a !=l) { rc = DMCComrnand(hdrnc, "MO;", buffer, sizeoflbuffer)); rc = DMCComrnand(hdrnc, "KPX=O;", buffer, sizeoflbuffer)); rc = DMCComrnand(hdrnc, "OFX=O;", buffer, sizeoflbuffer)); rc = DMCCommand(hdrnc, "SH;", buffer, sizeoflbuffer));
;*** Convert the positions into radian ***! for f ti=O: i i 4 O i ) O ; ut+)
position[u] = (position[u])*2*3.14/4000.0; 1
! * *** * Velocity calculation without Kalman Filter *** **/ for(u=O; u<4000; u++)
iflucl) { velocityA[u] = (position[u+ 11-position[u])m;
1 if(u>l)
I velocityA[u]=(-position[u+2]+8.O*position[u+ t ]-8.0*position[u- 1 ]+position[u-2])/( 1 2.0*T);
1
***** Velocity calculation with Kalrnan Filter ****!
!*Acceleration datas without Kalrnan Filter*/
acA [u] = (-position[u+2]+ 1 6.0*position[u+ 11-30.0*psition[u]+ 1 6.0*position[u- 1 1-positionlu- 2])/(1 2.0ST*T);
/* *** *Acceleration calculation with Kalman Filter****/
/*** * Store datas into various files ****/
/**** Save the Accel. Vel, and datas into the matrix [Hl for Matlab use ****/ printf("Saving the velocity, and acceleration datas into the file, h.m (matrix [Hl), for Matlab use\nM); fopen("h.m", "w"); if((fp = fopen("h.mW, "w+")) = NULL)
printf("Canlt open file");
fprintf(fp, "H = [ \n"); for (i=O; i-4000; i++) {
fprintf(fp, "%.4f %.4f;\nfi, acB[i],velocityB[il);
fclose( fp);
/*** Tirne calculation ***/ for (u=O; ~ 4 0 0 0 ; u++) {
xtirne[u] = u*T; I
!*** Save the Rotor position value for Excel use ***/
princf("Saving the position datas into the file, pos,txt, for Excel useh"); f~pen('~pos.txt~~, "w+It); ifC(fp 1 = fopen("pos.txt", "w+")) = NULL)
prinâ("Cantt open fie");
for (i=O; i4000; i++) {
!**** Save the VelocityB datas for Excel use ****/ printf("Saving the velocityB datas for Excel use\nt'); fopen("velb.fxt", "w"); if((fp2 = fopen("velb.txtW, "w+")) = NULL)
printf("Canit open file");
for (i=O; i4000; i++) {
fprintf(Q2, "%.4f\n",velocityB[il);
I*** Save the VelocityA datas for Excel use ***/ printf("Saving the velocityA datas for Excel use\nV); fopen( "vela.txt", "w"); if((fp3 = fopen("vela.txt", "w4")) - NULL)
printf("Can8t open file");
for (i=O: i4000; i++)
fprintf(fp3, "0/~.4f\n",velocityA[ij);
i *** Save the AcA. datas for Excel use ***! printf("Saving the acA datas for Excel useh"); fopen("acA.txtM, "w"); if((fp4 = fopen("acA.txt", "w+")) = NULL)
printf("Canlt open file");
for (i=O; i4000; i++) { fprinflw, "%.4h",acA[i]);
/*** Save the analogue I data into ANAl.at for Exce1 use ***/
/* printf("Saving analogue 1,2 datas into the file, for check use\nM);
fopen("ANA 1 .txt", "w"); if ((@3 = fopen("ANA1 .txt", "w+")) = NULL)
printf("Cantt open île");
for u=0; j-4000; j++) { tprintf(@3, "?6.4h", A 1 b]); 1
fclose(fp3); * I
!*** Save the analogue2 data into ANA2.txt for Excel use ***!
fopen("ANAZ.mt", "w"); if ((fp4 = fopen("ANA2.mtW, "w+")) = NULL) printf("Cantt open file");
for (j=O; j-4000; j++)
fprintfl.4, "%.4ftn", A2u]); 1
fclose( fp4);
/*** Save the AcB. datas for Excel use ***l printf("Saving the acB datas for Excel use\nN); fopen("acB.txt", "w"); if((fp5 = fopen("acB.txt", "w+")) = WLL)
pnntf'("Can8t open file");
for (i=O; iC4000; i++)
fprintf( fp5, "%.Jfin",acB[i]);
/* ** Save the torque data into the maaix [VI for Matlab use * **/ printf("Saving the torque datas into the file, t0r.m (matrix [VI), for Matlab useùi"); fopen("tor.m", "w"); if7(@6 = f~pen(~ltor.rn~', "w+")) = NULL)
prin$("Canlt open file"); fprintf(fp6,"V = [ h");
for (i-O; i4000; i*) {
/*Save the torque data into the tor.txt for Excel use*/
printf("Saving the torque datas into the file, tor.txt, for Excel usein"); fopen("tor.txt", "w");
if((fp7 = fopen("tor.txtW, "w+")) = NULL) prind("Canlt open file");
for (i=0; i4000; i++) { fprintf( fp7, "%hW. torque[i]*2.194);
1 fclose(fp7);
printf("C1ose the connection\nl');
printq" \n\n durrition T = %bW,T);
rc = DMCClose(hdmc); if (rc) t
PrintError(rc); return rc;
i
return OL;
void PrintError(1ong rc)
printf("An error has occurred. Return code = %ld\n", rc); 1
void IntemptCallback(USHORT uslnterruptStanis)
uslntemptStatus = usInterruptStatus; 1
A program coovex.~ is to test the MSS controller. This program can be used for
PD controller as well as MSS controller.
If usen want to use this prograrn as the PD controller, simply comment out the
MSS control law part, which is indicated in the pmgram already. When the prograrn is
executed, it prompts users to enter desired position in radian, and then it prompts usen to
enter the gain values. When the user tests the motor, it is recommended to choose the
gains low gain values first, and then increase the gains gradually after confirming that the
motor is m i n g properly with low gains.
If usen want to use this program as MSS controller, comment out the PD control
law part, which is indicated in the prograrn. Users also need to comment out the part to
input the gain values since the MSS controller is already inside the program by default.
When the program is executed, it prompts users to enter desired position in radian.
Rotor position, velocity, acceleration, and control input data are stored in specific
files so that usen can look into these files and plot the results.
i* ConveflD controller program */ /*******************************************************************************/
/* Programmed by Seung-Ju Lee */
/* LAST UPDATED Mar 29,1999*/
void PrintError(1ong rc); void IntemptCallback(USH0RT usIntemptStatus); void sleep(c1ock-t wait);
float torque[ 1 OOOS]; float input[10005]; /* Control input going into DMCl700 */ float actualpos[10005]; /* Actual position of the motor */ float error[10005]; I* Desired position minus the actual position*/ float kpz[ 100051; tloat kdz[ 100051; tloat xtime[ l00051;
. *** Kalrnan Filter Variables***! float acB[10005]; float cos~gh,sin~h,exp~h,dcIta~t,cos~gh;!,sin_gh2,exp~ght; tloat gamma 1 =30.0; float gamma2=500.0; float phi[S][S], kal[S], xkal[5], xkal-dt[5],velocityA[10005],velocityB[ 100051;
long main(int argc, char* argv[]) {
long rc ; /* Retum code */
int char char char long int int clock-t double char float
fl nMotion; /* Motion cornpletc flag *! buffer12561; /* Response from controller */ tcommand[8]; /* To store 'tell torque, TI* cornmands in binary */ pcommand[8]; /* To store 'tell position, TP' commands in binary */ sum;
j,k,s,v; start, frnish; durati0n.T;
qW1; vol,thetaA,desÙepos,kp,kd,maxt~ 1 ;
FILE *@,*@l,*fp2; BYTE bBinaryResult[3 21; ULONG ulBinaryResultlength;
ULONG ullength;
HANDLEDMC hdmc; /* Handle to controller */ CONTROLLERiNFO controllerinfo; /* Controller information stnicture */ sum = 0; argc = argc; argv = argv;
: * Open the conncction with DMC 1700 */
printf("0pen the connection\n'~"); rc = DMCOpen(&controllerinfo, &hdmc);
rc = DMCComrnand(hdmc, "MO;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc, "OFX=O;", buffer, sizeof(buffer)); rc = DMCCornmand(hdmc, "MT- 1 ;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc, "CN 1 ,- 1 ;", buffer, sizeof(buffer)); rc = DMCComrnand(hdmc, "KPX=O;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc, "KIX=O;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc, "KDX=û;", buffer, sizeoflbuffer)); rc = DMCCommand(hdrnc, "SH;", buffer, sizeoflbuffer));
/*Query the state of the inputs. If the value is 255, this means everything is on 'High' (OK)*/ prinrfCWQuery the state of the inputs\n\a"); rc = DMCCommand-AsciiToBinary(hdmc, "TI;", strlen("TI;"), bBinaryResult, sizeof(bBinaryResult),
&ulBinaryResultLength); if(rc = DMCNOERFtOR) rc = DMCBinaryComrnand(hdmc, bBinaryResult, ulBinaryResultLengih, buffer, sizeofTbufTer));
if (rc) PrintError(rc);
else { int temp; temp = atoi(buffer); prina("The value of the inputs is %dW, temp);
rc = DMCCommanddAsciiToBinary(hdrnc, "TM- 1 OOO;TM5OO;", strlen("TM- lOOO;TM5OO;"), bBinaryResult, sizeof(bBinaryResult), &ulBharyResultLcngth);
iurc = DMCNOERROR) rc = DMCBharyCommand(hdmc, bBinaryResult, uiBinaryResultLength, buffer, sizeof(buffer)); if (rc) ( PrintError( rc ) ;
retum rc; 1
T = 0.00125;
;* Array to store the TT cornand in binary *I tcornmand[O] = Oxde; tcomrnand[ 1 ] = 0x00; tcommand[2] = 0x00; tcomrnmd[3] = 0x0 1 ;
I* Array to store the TP comrnand in binary */ pcommand(O] = Oxd9; pcommand[ 11 = 0x00; pcommand[2] = 0x00; pcommand[3] = 0x0 1 ;
,*********************************/ * USER INTERFACE *! **************************.+I
printf("P1ease input the STEP position (in radian eg. ) "); scanf'("%f ', &desirepos);
I i desirepos=t ;
prin~''hDesired position is %h\ntt, desirepos);
printflWPlease input the value for KP(eg. 0.4) "); scanf("%f', &kp); printf("Kp is %finhw, kp);
printf("P1ease input the value for KD(eg. 0.06) "); scanf("%Ct, &kd); p ~ t f ( " K d is %fùihW, kd);
rc = DMCCornmand(hdmc, "DPX=O;", buffer, sizeof(buffer)); rc = DMCCommand(hdmc, "SH; ", buffer, sizeo f(buffer)) ;
actualpos[O]=O.O; thetaA = 0.0;
/**Kalman Filter Matrices Set up **/
delta-t = T; cos-gh = cos(garnma 1 *delta-t); sin-gh = sin(gamma 1 *delta-t); exp-gh = exp(-gamma 1 *delta-t);
!**KAmm Filter Matrices Set up **/ delta-t = T; cos-gh = c o s ( g a m 1 *delta-t); sin-gh = sin(gamma 1 *delta-t); exp-gh = exp(-gma 1 *delta-t);
start = c fock();
for (s=O; ~ 4 0 0 0 ; su) {
!* If you are using as PD controller, piease comrnnet out îhis part. */ 1 *
i* If you are using as Convex controller, please comment out this pan. */
if(input[s]>=lO) vol=9.9999; eise if( input[s]<=- 1 O) vol=-9.9999;
else vol=input[s] ;
sprintf(q, "OFX=%Ctt, vol);
rc = DMCCommand(hdmc, &q, buffer, sizcof(buffer)); rc = DMCBinaryCommand(hdrnc,pcommand14, buffer, sizeof(buft'er)); actualpos[s] = (atof'(buffer))*2*3.14/4000; /* change the returned value into radian */ thetaA = actualpos[s];
rc = DMCBinaryComrnand(hâxnc,tcommand,4, buffer, sizeofibuffer)); torque[s] = atofibuffer);
/*****Velocity calculation without Kalman Filter*****/ i f(s>O)
{ velocityA[s] = (actuaipos[s] -actualpos[s- 1 ])/T;
I
/***** Velocity caiculation with Kalman Fiitcr ****/
/* * * **Acceleration calculation with Kalman FiltePn*l
finish = clock( 1: duration = (double)(finish - start) 1 CLOCKS-PER-SEC; printf( "\n%2.7f seconds\n\n\n", duration );
, *********The test is finished, resume the initial condition **************/
rc = DMCComrnand(hdmc, "MO;", buffer, sizeoflbuffer)); rc = DMCCommand(hdrnc, "OFX=O;", baer , sizeof(buffer));
//CC = DMCCornmand(hdmc, "SH;", buffer, sizeoqbuffer));
for Cj=O; j<2000; j++) i
if(rnax<=actualposlj]) { max 1 =Max; rnax=actualpos~ ] ;
1
/*** Time calculation *** I for (j=O; je000; j*) {
xtimeu] = j*T; I
/*Save the various data into file, dat.txt, for Matiab use*/
printf("Saving the data into the file, dat.txt\n"); fopen("dat.txtN, "w"); if((@ = fopen("dat.txt", "w+")) = NULL) printf'( "Can't open file"); for (j=0; jK2000; j++)
{
/*Save position into file, pos.txt, for Excel use*/
printf("Saving the data into the file, pos.txtW); fopen("pos.txtW, "w"); if((@ 1 = fopen("p~s.txt~~, "w+")) = W L L ) printf("Can't open file"); for u=0; jc2000; j*)
fprintflfp 1, "%hW, actualpos~ 1);
printfl "Close the connectionh");
11 pnntf'(" \n steady state position = '>/oh", achialpos[1999]); printf(" \n steady state error = %W, desirepos-actualpos[l999]);
ii printf'(" \n\n maximum ovefshot = %f\n", max); printq" \n percent overshoot = %h", (max-desirepos)/desircpos* 100);
rc = DMCClose(hdmc); if (rc) I
PrintError( rc) ; r e t m rc;
1
return OL;
/*************Prht error codes if the commands to DMC1700 are not sent properly****"*******/
void PrintEnor(1ong rc) {
printf("An enor has occurred. Rcturn code = %1d\nM, rc); 1
void InterruptCallback(tiSH0RT usintemptStatus) {
usIntemptStatus = us1ntemptStatus;