Documente Academic
Documente Profesional
Documente Cultură
\
|
+ + = 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