Вы находитесь на странице: 1из 5

436-405 Advanced Control Systems

Assignment 1: Performance Limits of an X-Y Contouring System

Learning Objectives
• Familiarity with the conventional control architecture for motion control systems
• Appreciation of some contouring performance limitations with the conventional control
• Appreciation of the effects on contouring performance of mechanical ‘imperfections’
such as transmission compliance, nonlinear friction and backlash
• Knowledge of the hardware and software used in the laboratory equipment, required for
subsequent assignments to be performed outside the laboratory

This assignment is the first of three assignments concerned with the control of an X-Y table
for contouring tasks – i.e., motion of a point on the table at a defined speed along a defined
path in the x-y plane. In industrial applications of equipment of this type, both the contouring
speed and precision are important performance attributes.
In this first assignment you will become familiar with the hardware, how it is controlled, and
how well the system performs. In the second assignment you will be provided with a detailed
simulation model of the laboratory system, and asked to investigate the performance-limiting
features of the system in more detail. In the final assignment you will be asked to investigate
alternative control strategies, and to test them on the laboratory system via remote web-based
The system components, illustrated in figure 1, include:
• Two Daedal 404100XR precision linear tables
− 5 mm/rev ballscrew
− maximum screw speed 60 rev/s
− maximum table acceleration 20 m/s2
− 1 µm resolution linear encoders for position feedback
• Two Baldor BSM50A-375AA brushless AC servomotors
− rated speed 4000 rev/min
− peak torque 5.44 Nm
− resolver shaft position sensor
• Two flexible couplings, with deliberately introduced torsional compliance and backlash
• Two Baldor DBSC102 servo drives
− ±10 V analog command of motor speed or current
− 1024 pulse/rev synthetic encoder output
• dSPACE DS1102 controller board, based on TMS320C31 digital signal processor (DSP)
− executes position control in conventional CNC control architecture; issues velocity
command to servo drives
− may be used to implement alternative control architectures, issuing current commands
to servo drive
• PC control computer for overall system control

Figure 1: X-Y table system components

The software development environment on the PC includes:
• MATLAB/Simulink
− define controller to be implemented on DSP
− acquire and plot response data
• Mlib
− communicate between MATLAB workspace and DSP
• Real-Time Workshop and dSPACE RTI interface
− compile Simulink diagrams into C code and native DSP code

Control Architecture
In this first assignment the system is set up with a conventional CNC control architecture, as
illustrated for one axis in figure 2.
PC digital DSP analog Drive
position velocity
command command Motor Resolver
PI-ctrl of
of 3Ø motor
P-ctrl of
of velocity
workspace position
position and
trace synthetic resolver position
variables encoder feedback

Figure 2: CNC control architecture

The contour to be traced by the table is defined by the MATLAB workspace vectors
x_profile, and y_profile, which specify the commanded positions at equal
increments of time. The total duration of the contour move is specified by a parameter
MAXTIME in the workspace. The profiles are read by the DSP position controller, which
operates with a 1 ms sample period. The encoder pulse stream generated by the servo drive is
also sampled and decoded by the DSP. It then implements simple Proportional-control on the
position error to produce a motor velocity command, which is passed to the servo drive via a
digital-to-analog converter (DAC). The Simulink representation of the position controller is
shown in figure 3.

1 Kpx 1
X_cmd X_vel
gain - x

2 Kpy 2
Y_cmd Y_vel
gain - y


Figure 3: Simulink representation of position controller

The servo drive implements current and velocity servo loops, and supplies the motor with 3-
phase currents. In the past this would have been done with analog electronics, but in modern
equipment, such as the Baldor drive, the functions are performed with microprocessors. The
sample period for the servo drive is 500 µs. A resolver mounted on the motor shaft provides
accurate feedback of the motor position. The drive uses this information to control the
switching of the 3-phase motor stator currents so as to create a rotating magnetic field 90°
ahead of the field of the rotor permanent magnet. It also uses the resolver signal to estimate
the motor velocity, for use in a Proportional + Integral (PI) velocity controller, and to
synthesise a rotary encoder output signal (for use by the CNC position controller). The
proportional and integral gains of the velocity controller may be set by software commands.
The output of the velocity controller is a commanded quadrature axis (q axis) current (this is
the torque-producing component of the motor current). The direct axis (d axis) component
(the magnetising current) is controlled to be zero, because the rotor field is produced by a
permanent magnet in a brushless AC servo motor. Both these current components are
controlled by PI current-loop controllers.
A schematic of the servo drive operation is shown in figure 4.

Velocity Current
servo servo
+ PI Vv Motor phase currents
PI − Vw

or current Vq
− Iu
Id Iu
estimator Iq

Encoder Resolver
output synthetic θ decoder

Figure 4: Schematic of servo drive operations

The system will be set up for each student with a unique combination of control gains for the
position and velocity loops.

Assignment tasks
1. Before your laboratory session, consider what contouring tasks would best reveal the
performance limits of the system, recognising that compliance in the coupling, Coulomb
friction and backlash are features which could compromise performance. Some
‘canonical’ tasks include a straight line, a circle and a rectangle. Write MATLAB scripts
to generate the position command vectors x_profile and y_profile for your
chosen contouring tasks.
2. In the laboratory, you will be introduced to the system and methods of operation, by way
of a straight-line contouring task. Investigate the contouring error obtained with the given
controller gains.
3. The steady-state straight-line contouring error can be eliminated if the x- and y-axes are
“matched” in terms of their static velocity error coefficients – the so-called kv factor, or
the Bode gain of the position loop. Work out how the position loop gains Kpx and Kpx
should be modified to match the axes, and investigate the contouring error again.
4. When you are happy with the straight-line contouring performance, investigate the
contouring accuracy for your chosen contouring tasks. Decide on some accuracy criteria,
and determine the “performance envelope” within which these criteria are satisfied.
5. For a given contouring task, investigate how the performance might be improved by
adjusting the values of the proportional gain for the position loop, and the proportional
and integral gains for the velocity loop.
Document each the above assignment tasks, including arguments in support of decisions
made, and provide results of experiments performed with the laboratory equipment.