copyright 2006 tuning with spiiplus controllers time domain approach boaz kramer control &...
TRANSCRIPT
Copyright 2006
Tuning with SPiiPlusControllers
Time Domain Approach
Boaz KramerControl & Applications Development Manager
2Copyright 2006
Basic Control System
General control system can be divided into: Controller – control laws Drive – power converter Machine – plant, motors and feedback devices
The plant receives two types of signals: Controller output from the drive Disturbances
ControlLaws
-
+Command Response
Machine
Feedback
Disturbance
Drive
++
3Copyright 2006
Basic Control Principles
The goal of the control system:Make the plant follow the command “as good as possible” despite the presence of disturbances while ensuring that the system is stable.
The process of tuning:Adjusting the parameters of the control laws to attain a quick, stable command response.
Robust operation:Control laws must be designed with enough marginsto accommodate reasonable changes in the system, and from one system to another, such as change in motor constant, driver gain…
4Copyright 2006
SPiiPlus Control Loops
Cascaded control loops structure, ideal for motion control applications:
Current loop (external / internal drive) Velocity loop Position loop
PositionController
VelocityController
CurrentController
DriveMotor,Stage
VelocityEstimation
-- -
++ +
PositionCommand
VelocityCommand
CurrentCommand
Voltage (PWM)Command Voltage
Position
current loop
velocity loop
position loop
The position loop generates a command to the velocity loop.
The velocity loop generates a command to the current loop.
5Copyright 2006
SPiiPlus Servo Algorithm
Position and Velocity Loops
6Copyright 2006
Tuning Approach (1)
An inner loop should be faster than an outer loop Current response should be faster than velocity
response Velocity response should be faster than position
response “Faster” => higher bandwidth The inner loops operates with higher bandwidth, at a
higher frequency zone. Typical values of bandwidths :
Current loop – 0.5 kHz- 1 kHz Velocity loop – 50 Hz – 200 Hz Position loop - 10 Hz – 50 Hz
High Frequency zone
Low Frequency zone
7Copyright 2006
Tuning Approach (2)
An inner loop should be faster than an outer loop Current response should be faster than velocity response Velocity response should be faster than position response
Each closed loop looks like a low pass filter To the velocity loop, the current closed loop looks almost like
an amplifier with pure gain To the position loop, the velocity closed loop looks almost like
an amplifier with pure gain
Current loopVelocity loopPosition loop
Hz1,00020050
8Copyright 2006
Zone-based Tuning Approach (1)
A frequency zone-based tuning approach: Tune one loop at a time, in the following order:
Current loop (the fastest control loop) Velocity loop Position loop (the slowest control loop
While tuning a control loop, turn off all outer loops When tuning the current loop, turn off the velocity and position loops When tuning the velocity loop, turn off the position loop
Inside the loop, turn off all low frequency elements and tune high frequency elements first
The higher the bandwidth of an inner loop (= the internal loop responds faster), the better the stability of the outer loop.
So the goal is to tune a loop the maximum bandwidth possible while keeping it stable and robust (= low sensitivity to small changes)
9Copyright 2006
Zone-based Tuning Approach (2)
Always tune the control loop with higher frequency zone first. Turn off all outer, slower loops and tune the inner loop first. Inside the loop turn off all lower frequency elements and
tune high frequency elements first. When inner loop is tuned, it acts like a low-pass filter within
the outer loop. Continue and tune the next outer loop. Higher bandwidth of internal loop (the internal loop responds
faster) improves the stability of the external loop.
10Copyright 2006
Zone-based Tuning Approach (3)
Command CurrentController
Drive Motor-
+Current
VelocityControl
Algorithmmotor
Closed Current Loop
feedback velocity
velocity command
-
positionControl
Algorithmintegrator
Closed velocity Loop
feedback position
position command
-
11Copyright 2006
Zone-based Tuning Approach (4)
Current loop: SLIKP SLIKI
Velocity loop: SLVSOF SLVKP SLVKI
Position loop: SLPKP
Tune the PI filter in the current loop (first proportional gain, then integral gain)
Set the low pass filter to 700 Hz. Disable the Notch filter. Tune the PI filter in the velocity loop (first proportional gain, then
integral gain) Tune the low-pass filter/ Notch filter to attenuate high-frequency
resonances. Tune the P filter in the position loop
High Frequency zone
Low Frequency zone
12Copyright 2006
Control algorithms in the SPiiPlus
Control elements used in the SPiiPlus control algorithm: PI filter Low pass filter Notch filter
13Copyright 2006
PI Filter (1)
The proportional-integral (PI) filter is a basic control element. It is included in the current loop and velocity loop. In certain cases also in the position loop.
Sum of two signals: One proportional to the error = P x Error One proportional to the integral of the error =
The proportional term (SLxKP) provides responsiveness, affects the bandwidth (how fast the response is)
The integral term (SLxKI) ensures that the average error is driven to zero.
KI
KP+
u y
ErrorI *
14Copyright 2006
PI Filter (2)
Frequency response of a PI filter:
The proportional gain dominates the higher frequency zone. The integrator gain dominates the lower frequency zone.
So, first tune the gain, while turning off the integrator! In SPiiPlus the frequency of the PI zero is always at:
SLxKI/20 [Hz]
PI filterGain
f [Hz]
SLxKP
SLxKI
SLxKI/20 [Hz]
15Copyright 2006
PI Filter (3)
PI Filter Digital Implementation:
16Copyright 2006
SPiiPlus provides a second order low-pass filter. In many cases, it can be used to increase the overall bandwidth of the velocity loop. It attenuates high frequency noise and resonances (=phenomenon in which the plant has high gain around one frequency).
Low Pass Filter (1)
Bode plot of 2nd order low-pass filterwith different damping factors.-60
-40
-20
0
20
Mag
nitu
de (
dB)
101
102
103
104
-180
-135
-90
-45
0
Pha
se (
deg)
Bode Diagram
Frequency (Hz)
17Copyright 2006
The second order low-pass filter attenuates all signal components above a certain frequency. The frequency is specified by the SLVSOF variable.
Filter damping is determined by SLVSOFD variable. In many cases a proper reduction of the low pass
filter bandwidth (relative to its default value) allows to further increase the velocity gain.
The major disadvantage of the second order low pass filter is that it affects stability by adding a significant amount of phase lag and thus reducing the phase margin.
Usually, SLVSOF has to be 10-20 times above the velocity loop bandwidth. Thumb rule: set SLVSOF=SLVKI.
Low Pass Filter (2)
18Copyright 2006
SPiiPlus provides a Notch Filter. In many cases, it can be used to increase the overall bandwidth of the velocity loop.
The Notch filter attenuates only a narrow band of frequencies.
It is usually set above the bandwidth of the velocity loop.
Notch Filter(1)
-8
-6
-4
-2
0
Mag
nitu
de (
dB)
102
103
104
105
-20
-10
0
10
20
Pha
se (
deg)
Bode Diagram
Frequency (rad/sec)
Bode plot of Notch filterwith different widths
19Copyright 2006
Notch filter advantage: less phase lag contribution in comparison to the low-
pass filter.
Notch filter disadvantages Usually the transfer function of the plant has to be
known in order to place the Notch filter properly. The Notch bandwidth has to be sufficiently wide :
resonant frequencies may vary slightly in different machines of the same kind. The resonant frequency may depend also on the position of the axes.
Notch Filter(2)
20Copyright 2006
Notch filter parameters: SLVNFRQ – Notch frequency SLVNWID – Notch width (3 dB points) SLVNATT – attenuation (absolute units)
It is not recommended to use the Notch filter before measuring the frequency response of the system using SPiiPlus FRF Analyzer.
Notch Filter(3)
21Copyright 2006
Before starting tuning…
Open the Adjuster Define the Safety Parameters Define the drive/motor/encoder
parameters in Axis Setup dialog
22Copyright 2006
Important Safety Parameters
Critical position error: CERRI(idle)CERRV(velocity)CERRA(acceleration)
RMS protection : XRMS (nominal current in %)XRMST (time constant in
msec) Current limits: XCURI(idle)
XCURV(velocity) Maximum velocity: XVEL
has important effect on velocity scale factor!
Maximum acceleration: XACC
23Copyright 2006
Axis Setup
Define the following: Control configuration: single loop or dual loop control. Drive type and parameters: DC amplifier, DC brushless
amplifier with hardware or software commutation. Motor type and parameters: type, number of poles (for rotary
motor), magnetic pitch (for linear motor). Encoder type and parameters: primary/secondary encoders,
type (AQB, SIN-COS etc), resolution, multiplier(internal/external).
Some parameters (like amplifier/motor ratings) are not used by the controller.
24Copyright 2006
Current Loop Tuning
Open the Current Loop Adjustment in the Adjuster.
Set SLIKI to zero, or set it very low (like 100). Set SLIKP low (like 10).
Apply a square wave : set the amplitude 5-10%Set the pulse length 4-10msec. Press “Run”.
Raise SLIKP gradually as long as high frequency effects (noise) are not noticed and there is little or no overshoot.
Changing SLIKI should not require returning to change SLIKP.
Raise SLIKI starting with zero, until overshoot is excessive, usually 10% - 15%.Typical values : 1000-10,000
If later on, you notice that the current loop is noisy, then it is recommended to further reduce SLIKP.
25Copyright 2006
Current Loop Tuning
Zero SLIKI (or set it very low),Set SLIKP low
Apply a square wave current command
Raise SLIKP for little orno overshoot
Too noisy ?Lower SLIKP
or reduce noise
Raise SLIKI for up to15% overshoot
Done
26Copyright 2006
Before Going on…
Before going on to velocity and position loop tuning. There are few additional steps that should be made Commutation for Brushless motors Open loop verification
27Copyright 2006
Commutation
In any electrical motor, the electromagnetic torque is generated because of an interaction between a magnetic field and a current.
The produced torque is proportional to the following cross product:
where::magnetic flux vector
:current vector
:angle between the vectors
If the two vectors are perpendicular, the torque is proportional to the current, which is the basic and most important requirement for high performance servo action.
sinITIT
I
28Copyright 2006
DC –Brush Motor Commutation
The magnetic field is generated by permanent magnets. The brushes and commutator make sure the armature current is
always maintained perpendicular to the magnetic field.
29Copyright 2006
Brushless Motor Commutation (1)
In case of DC Brushless motor (permanent magnet synchronous motor): The magnetic field is generated by the permanent magnets. 3-phase sinusoidal currents generate a current vector.
“Sinusoidal Commutation”:
The commutation angle determines the current vectororientation.
It is desirable to keep the current vector perpendicularto the magnetic field.
)120sin())()(()(
)120sin()(
sin)(
mc
mb
ma
ItIbtIatI
ItI
ItI
=CP
a
b
c
ia
ic
ib
S
N
fieldvector
currentvector
y
30Copyright 2006
Brushless Motor Commutation (2)
In the commutation process of brushless motors: A stationary current vector is generated.The motor “jumps” to align with
it
The current vector is then shifted 90. The current vector is maintained perpendicular:
If the permanent magnet field moves, the current vector moves with it.
S
N
fieldvector
currentvector
S N
fieldvector
currentvector
S N
fieldvector
currentvector
S
N
fieldvector
currentvector
31Copyright 2006
Brushless Motor Commutation (3)
If the encoder is incremental, the process has to be repeated after each controller powerup.
We have to distinguish between: Initial commutation adjustment (during the first setup) Commutation after each powerup.
Initial commutation setup also includes: Phase sequence identification Commutation parameters verification
32Copyright 2006
Commutation Preferences (1)
First-time commutation is executed by running commutation setup from the Adjuster.
33Copyright 2006
Commutation Preferences (2)
Commutation Preferences Dialog:
34Copyright 2006
Commutation Preferences (3)
Excitation Current - define amplitude of generated current vector in %, sufficiently high to overcome system friction and active load. Default is 0.95 x XRMS.
Search Velocity – determines velocity of commutation process in user units/second. It is recommended to set velocity between 1 – 1/5 of magnetic pitch per second.
Settling Time - determines time assigned to motor for settling in detent points. Default is 1000 msec.
Initial Commutation Offset – determines initial detent point in degrees. By setting a proper value (if known, for example, if the axis is known to rest close to a limit when off) user can avoid or decrease an initial motor jump. Default value is 0 degrees.
35Copyright 2006
Commutation Preferences (4)
Commutation Schemes –different commutation schemes are provided: “Detent Point” (default) – encoder based only. Index based commutation schemes: finds the
correct commutation phase at the index. The value can be used later on in startup/homing programs.
Hall commutation scheme (for SPiiPlus CM) – commutation is initiated based on Hall sensors,and closed-loop operation can start immediately after powerup.
Maximum Search Distance – sets maximum allowed distance for searching for a limit or an index.
Check Motor & Feedback Parameters Default (button) – loads default values.
36Copyright 2006
After Powerup….
Method 1:The Adjuster can generate a startup program based on the chosen commutation scheme. The program can be used as part of the homing routine. In all schemes the motor initially jumps to align with the current vector.
Method 2:Use the “COMMUT” command: brings the current vector to the motor in closed-loop. The current vector can be controlled with high bandwidth and motor hardly moves.
Method 3:Initial hall-based commutation: Move in six steps till the first hall transition and automatically switch to sinusoidal commutation.
S
N
fieldvector
currentvector
S
N
fieldvector
currentvector
37Copyright 2006
Commutation Method 1
When the commutation bit (MFLAGS.9) is off and motor is enabled: the commutation phase is incremented according to the desired position (“stepper mode”):
KPOLE converts encoder counts to electrical degrees
When fields are aligned it is assumed: DP=CP
When MFLAGS.9 =0 and motor is disabled: the commutation phase is incremented according to the feedback position.
When MFLAGS.9 =1 the commutation phase is incremented according to the feedback position and 90 degrees are added:
DPK pole *
CPK pole 0
00 90 CPK pole
38Copyright 2006
Commutation Method 1
Example for Method 1:X_MFLAGS.9 = 0 ! Commutation bit offX_DCOM = 30 ! Constant drive commandENABLE X ! Align fieldsWAIT 1000 ! Wait for motor to settlePTP/RVE X, X_SLCPRD/4 , X_SLCPRD/4 ! Move slowlyWAIT 1000 ! Wait for motor to settleDISABLE X X_DCOM = 0 ! Reset constant drive commandX_MFLAGS.9=1 ! Commutation onSTOP
Q: Is it really required to move ? Q: What about hard stops ? Vertical axis ? Important note:
When MFLAGS.9 = 0 the motor can be moved in stepper mode, without relaying on feedback. This is an important feature, that can also be used for troubleshooting the hardware !
39Copyright 2006
COMMUT Command
Closed loop control of the commutation phase:
Examples: COMMUT X !use default current and settling timeCOMMUT X, 10 !use 10% current and default settling timeCOMMUT X, 10, 1000 ! Use 10% current and 1000msec
The algorithm is executed 3 times (3 “ticks”) to eliminate unstable equilibrium.
Before using COMMUT for the first time: First time Adjustment must be performed. Motor has to adjusted with proper stability
margins.
DP=CPo
Closed-LoopAlgorithm
Im
CommutationBlock
Imsin
Imsin( Drive Motor
CP
-
40Copyright 2006
Open Loop Verification
Required to eliminate positive feedback for DC motors.Positive drive command should yield positive move (=encoder counts up).
Can be also used to compensate amplifier offset.
In case of brushless motors: after the initial commutation process the polarity is guaranteed.
41Copyright 2006
Velocity Loop Tuning
Set SLVKI to zero, or set it very low. Set SLVKP low.
Enable the motor. If it is noisy – reduce SLVKP Apply a square wave velocity command and raise SLVKP
no higher than the high frequency effects (noise, resonances) allow.
When motor is noisy or oscillating, it is recommended to lower SLVKP by 50%(to ensure gain margin).
Changing SLVKI should not require returning to change SLVKP.
Raise SLVKI from zero until overshoot is excessive, usually 10% - 15%.
42Copyright 2006
Velocity Loop Tuning
Zero SLVKI (or set it very low),Set SLVKP low
Apply a square wave velocitycommand
Raise SLVKP till systembecomes noisy
Too noisy ?Lower SLVKP
50%
Raise SLVKI for up to15% overshoot
Done
43Copyright 2006
Verify the value of the maximum velocity, XVEL before starting the
velocity loop tuning! The parameter has two major roles: Limits the amplitude of the velocity command. Defines the feedback velocity scale factor.
If XVEL is larger than 2E+6 counts/sec, the velocity scale factor is reduced proportionally to the XVEL parameter.
This affects the dynamic range of the velocity gain SLVKP.
Effect of XVEL Parameter
SFVelocity
-
PI filter
VelocityCommand
Velocity scale factor -reduced according to XVEL
44Copyright 2006
Integrator Limit
The integrator limit is used to prevent the integrator from exceeding a certain value.
For the velocity loop the parameter is SLVLI. Default value -50%.
The integrator limit should be sufficiently high, zeroing the velocity error while the system is moving at maximum constant velocity.
The default value of 50% is usually adequate for many systems. Nevertheless, in some cases it is desirable to modify the value. If the value is too high it may cause undesirable overshoots or saturation, especially in high-inertia or short stroke systems.
45Copyright 2006
The position loop is tuned after the velocity loop. The position loop includes a proportional gain KP. Apply a point-to-point profile with the highest-
acceleration command to be used in the application. Increase KP to minimize the position error.
Position Loop Tuning
46Copyright 2006
Set KP low
Apply a point-to-point profile with thehighest-acceleration command to be
used in the application.
Raise KP to minimize thePosition error
Still stable ? Lower KP
Done.
Position Loop Tuning (2)
47Copyright 2006
[rad/sec]
open-loop transferfunction
KP
KP
close-loop transferfunction
0 dB
If the velocity loop is properly tuned, the position loop bandwidth approximately equals KP (rad/sec) independent
of the motor parameters.
positionControl
Algorithmintegrator
Closed velocity Loop
feedback position
position command
-
Position Loop Tuning (3)
48Copyright 2006
Feedforward compensations greatly improve the command
response without producing stability problems.The ideal feedforward produces the expected command.Thus, the control loop only needs to add corrections due
to disturbances.
Velocity Feedforward – is set automatically to compensate the velocity feedback. As a result, the average position error is zeroed during constant velocity.
Acceleration Feedforward (SLAFF)– should be tuned to maximally decrease the position error during acceleration and deceleration.
Velocity and Acceleration Feedforward
49Copyright 2006
Summary (1)
The SPiiPlus provides a cascaded control loops structure:An internal current loop, a velocity loop on top of it and a position loop on top of the velocity loop.
This structure is ideal for most motion control applications and allows easy and fast tuning using a frequency zone-based approach.
Internal loops are tuned first, with the external loops disabled.
The tuning goal should be to get the maximum bandwidth for each loop while maintaining its stability.
A methodical tuning flow-chart was provided for each loop. High-order filters, like a 2nd order low pass and a Notch
filter, can be used to attenuate resonances and further increase the system bandwidth.
Advance commutation methods allow easy and reliable commutation of brushless motors.
50Copyright 2006
Summary (2)
Further improvement can be achieved by using frequency response tools, like the SPiiPlus FRF Analyzer.
The SPiiPlus standard control algorithm will result exceptional results in most motion control applications.
Nevertheless, in very demanding applications a customized algorithm that was specifically tailored for an application can further improve performance
ACS-Tech80 has established a Control and Application Development group to help customers optimize the performance of their machines and to provide them with a competitive advantage over their industry peers.
51Copyright 2006
Control & Application Development
Services provided by the Control & Application Development group include: Tailored customization of the standard servo algorithms offered in ACS-
Tech80 products for specific applications Development of unique algorithms to maximize machine performance and
modeling Simulation and analysis of control systems.
Particular expertise has been gained in the following areas: Mitigation of mechanical resonances Non-linear control algorithms Dual loop systems Gantry systems Observers Control of special motors Gain scheduling techniques Disturbance rejection improvement Special motion profiles