TMC457_1 TRINAMIC [TRINAMIC Motion Control GmbH & Co. KG.], TMC457_1 Datasheet - Page 10

no-image

TMC457_1

Manufacturer Part Number
TMC457_1
Description
S-profile motion controller with PID feedback control and high resolution micro stepping sequencer for stepper motors and piezo motors
Manufacturer
TRINAMIC [TRINAMIC Motion Control GmbH & Co. KG.]
Datasheet
TMC457 DATASHEET (V. 1.16 / 2009-Nov-25)
Vector control example settings for a 200 fullstep motor
512
1024
2048
4096
8192
16384
32768
A 400 fullstep motor needs the double setting
Different load angle limits above 90° allow for field weakening operation, which gives a faster motor
operation.
5.3.1
A precise initialization of the vector control mode is critical for best functionality. Also, the encoder
needs to have an absolute precision, which is at least ½ fullstep of the motor.
For a newly assembled drive, an initial initialization is necessary. This initialization requires that the
motor does not see any mechanical load during initialization. Later on, the vector control can be
initialized with a stored offset from the initial initialization, using absolute position information, for
example based on the encoder N channel.
For initial initialization, the following procedure can be followed:
The actual encoder position venc_us_pos needs to be initialized for vector control. The position must
match selected microstep_adr bits, when the motor is unloaded in its exact position. This for example
can be accomplished, by switching the motor to a high standby torque after power on. Directly after a
power on, all microstep_adr bits are zero. Now, the motor will be in the exact zero position, as long as
it sees no mechanical load. Therefore, now the venc_us_pos can be initialized with zero, in order to
match the encoder angle to the electrical angle of the motor.
When the absolute position of the encoder is known, the vector control register venc_us_pos can be
initialized based on this information. Therefore, the encoder needs to be read out, or the N channel
needs to be found, and afterwards the stored offset can be added to the absolute position and be
written to venc_us_pos. Be sure to do this in a high priority procedure, because the encoder should not
advance a step in the meantime. If this can not be guaranteed, a check and iteration should be done.
5.4 PID Controller - easyPID
The PID (Proportional Integral Differential) controller calculates a velocity v based on a position
difference error pid_e = enc_x – x_actual where enc_x is the actual position- the real mechanical
position -determined by the incremental encoder interface and x_actual is the actual position of the
micro step sequencer –the position the TMC457 assumes to be the actual one. With this, the TMC457
moves with this (signed) velocity v until the actual position- measured by the incremental encoder –
match. The velocity v to minimize the error e is calculated by
The motor moves with this velocity v = pid_v_actual until the error e(t) vanishes resp. falls below a
programmed limit – the hysteresis pid_tolerance. Primary, the PID regulator is parameterized by its
basic parameter P, I, D represented by registers pid_p, pid_i, pid_d. Setting pid_d = 0 makes a PI
regulator, additionally setting pid_i = 0 makes a P regulator. For micro controller interaction, the
parameter pid_dv_cpu is added to the pid_v_actual. The readable register pid_dv_clip holds the actual
value of clipping done by the PID controller of the TMC457.
Copyright © 2009 TRINAMIC Motion Control GmbH & Co. KG
Encoder resolution
Initialization of vector control mode
v
P
e
) (
t
25
12.5
6.25
3.125 = 3 1/8
1.5625 = 1 9/16
0.78125 = 25/32
0.390625 = 25/64
0
t
required vector encoder factor
I
e
) (
t
dt
D
TM
dt
d
e
) (
t
.
venc_us_const
1600
800
400
200
100
50
25
10

Related parts for TMC457_1