Está en la página 1de 9

1

SERVO MOTOR DYNAMICS







Rajesh Rajamani
Department of Mechanical Engineering
University of Minnesota
PRINCIPLES
Conductor of length L in a magnetic field of flux
density B carrying a current I
Force on the conductor
When a conductor moves in a magnetic field with flux
u=BA , a current is induced in it

equal to

called back-emf: it is in such a direction as to produce a
current that sets up magnetic fields which tend to neutralize
the change in magnetic flux
dt
d
e
u
=
B I F

x =
2
SERVO MOTOR BACKGROUND
Lorenzs law of electromagnetic forces
SERVO MOTOR BACKGROUND
Loop of wire in the presence of magnets
Current flows in direction shown (red arrows)
Left part of loop moves down. Right part moves up.
3
SERVO MOTOR BACKGROUND
Creating rotary motion
Commutators allow loop to rotate 180 degrees
Current then reverses direction
Hence there is continuous CCW rotation
SERVO MOTOR BACKGROUND
Brushed DC motor
Spinning armature or rotor with current carrying coils
Stator with permanent magnets
Used in the ME 4231 Lab
Brushless DC motor
Permanent magnets are on the rotor
The current carrying coils are on the stator
Higher initial cost, but more precise control and no brushes
4
SERVO MOTOR DYNAMICS
0 ) ( =
m
e Ri
dt
di
L t V
i K T
dt
d
J
m
= = + |e
e
e
m m
K e =
i K T
m
=
L R
) (t V
e
m
e
J
|
i
Electrical system:
Mechanical system:
The back emf and torque
constants are equal
SERVO MOTOR DYNAMICS
The back emf and motor torque constants are equal
Proof: Mechanical power output equals electrical
power input minus heating losses
R i P P
e m
2
=
R i
dt
di
Li Vi T
2
= e
R i
dt
di
Li i e
dt
di
L iR T
m
2

|
.
|

\
|
+ + = e
i e T
m
= e
i K i K
m t
e e =
m t
K K =
5
SERVO MOTOR DYNAMICS
JL
K
J
s
L
R
s
J
s
L
s V
s I
s H
m
2
1
) (
) (
) (
+
|
.
|

\
|
+
|
.
|

\
|
+
|
.
|

\
|
+
= =
|
|
|
|
.
|

\
|
+
|
.
|

\
|
+
~
+
|
.
|

\
|
+
|
.
|

\
|
+
=
O
=
1 1
) (
) (
) (
2
s
J
s
R
L
R
K
JL
K
J
s
L
R
s
JL
K
s V
s
s G
m
m
m
|
|
|
L R
) (t V
e
m
e
J
|
i
SERVO MOTOR DYNAMICS
( )( ) 1 1 ) (
) (
) (
+ +
=
O
=
s T s T
G
s V
s
s G
m e
R
L
T
e
=
|
J
T
m
=
1 + s T
K
a
a
( )( ) 1 1 + + s T s T
G
m e s
K
enc
Including amplifier and encoder dynamics:
Motor:
) (t V
+
Amplifier
Motor Encoder
u
) (s O
) (s V
6
( ) 1 + s T s
K
m
Assume
a e m
T T T , >>
) (s V ) (s O
ms T
m
8 . 8 =
ms T
e
27 . 2 =
ms T
a
2 =
) (t V
+
Amplifier
Motor Encoder
u
1 + s T
K
a
a
( )( ) 1 1 + + s T s T
G
m e s
K
enc
) (s O ) (s V
Good approximation:
{
SERVO MOTOR DYNAMICS
SERVO MOTOR DYNAMICS
m
e
K
1
e
| ) ( | e j G
10
-20 dB/dec
-40 dB/dec
( ) 1 + s T s
K
m
) (s V ) (s O
7
SYSTEM IDENTIFICATION IN LAB 6
Transfer function relation between input and output


If is a sinusoid at any one frequency



Find the Bode magnitude plot of by using the
above relation and having sinusoidal inputs, one
frequency at a time
) ( ) ( ) ( s X s G s Y =
x
y
j G
of amplitude
of amplitude
= ) ( e
) (t x e
) ( e j G
SYSTEM IDENTIFICATION IN LAB 6
Procedure
Send a sinusoidal analog voltage to motor (input)
Set frequency to 2.5 Hz
Read encoder signal which measures rotational
motor motion
High pass filter the encoder signal (output)
Find the ratio of output amplitude to input
amplitude
This provides magnitude of transfer function at that frequency
Repeat at other frequencies (up to 75 Hz)
8
SYSTEM IDENTIFICATION IN LAB 6
Schematic of C-code
for loop (while !kbhit)
{
Send analog voltage to motor
Read signal from encoder
Store encoder signals in array
Wait until 1 ms is up
}
High pass filter the encoder signals

In Matlab
Find peak to peak amplitude of motor angular motion

SYSTEM IDENTIFICATION IN LAB 6
C program tips
Start with sine_io.cpp
We dont need to read any analog voltages in this
lab (the motor motion is read from an encoder)
Remove the a2d portion of the program
Add code from encoder.cpp to read the encoder
Outside the real-time loop, use the high pass filter
function provided to you
void high_pass_filter(int *original_data, double
*processed_data, int element_number);

This function also generates a Matlab file called
enc_plot.m that plots both the original encoder
data and the high pass filtered data
9
SYSTEM IDENTIFICATION IN LAB 6
Why do we need to use a high pass filter ?
What is a high pass filter ?
These topics will be discussed in detail in the next
lecture
SYSTEM IDENTIFICATION IN LAB 6
m
e
K
1
e
| ) ( | e j G
10
-20 dB/dec
-40
dB/dec
( ) 1 + s T s
K
m
) (s V ) (s O
Need to fit a
transfer function
to the
experimental
data
Need to find gain
and corner
frequency

También podría gustarte