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
FI xB
When a conductor moves in a magnetic field with flux F=BA , a current is induced in it
e
dF dt
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
1
SERVO MOTOR BACKGROUND
Lorenz’s 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.
2
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
3
SERVO MOTOR DYNAMICS R
L V (t )
i
em
Electrical system: di V (t ) L Ri em 0 dt Mechanical system: J
J
em K m The back emf and torque constants are equal
d T K mi dt
T K mi
SERVO MOTOR DYNAMICS
The back emf and motor torque constants are equal Proof: Mechanical power output equals electrical power input minus heating losses
Pm Pe i 2 R di T Vi Li i 2 R dt di di T iR L em i Li i 2 R dt dt T emi
K t i K mi Kt K m
4
SERVO MOTOR DYNAMICS R
L V (t )
em
i
J
1 s L J
I ( s) V ( s) R K 2 s s m L J JL Km Km ( s ) R JL G(s) V ( s) R K 2 L s 1 J s 1 s s m L J JL R
H (s)
SERVO MOTOR DYNAMICS V (t )
+
Motor
Amplifier
Encoder
Motor: G (s)
( s ) G V ( s ) Te s 1Tm s 1
Te
L R
Tm
J
Including amplifier and encoder dynamics: V (s )
Ka Ta s 1
G
Te s 1Tm s 1
K enc s
(s )
5
SERVO MOTOR DYNAMICS V (t ) V (s )
+
Motor
Amplifier Ka Ta s 1
Assume
Encoder
G Te s 1Tm s 1
Tm Te , Ta
(s )
K enc s
{
Tm 8.8ms Ta 2ms Te 2.27ms
Good approximation: K s Tm s 1
V (s )
(s )
SERVO MOTOR DYNAMICS K s Tm s 1
V (s )
(s )
-20 dB/dec
K
| G ( j ) |
-40 dB/dec
1
10
m
6
SYSTEM IDENTIFICATION IN LAB 5
Transfer function relation between input and output
Y (s) G (s) X (s)
If x(t ) is a sinusoid at any one frequency
G ( j )
amplitude of y amplitude of x
Find the Bode magnitude plot of G ( j ) by using the above relation and having sinusoidal inputs, one frequency at a time
SYSTEM IDENTIFICATION IN LAB 5
Procedure
Send a sinusoidal analog voltage to motor (input)
Read encoder signal which measures rotational motor motion High pass filter the encoder signal (output) Find the ratio of output amplitude to input amplitude
Set frequency to 2.5 Hz
This provides magnitude of transfer function at that frequency
Repeat at other frequencies (up to 75 Hz)
7
SYSTEM IDENTIFICATION IN LAB 5
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 5
C program tips
Start with sine_io.cpp We don’t 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
8
SYSTEM IDENTIFICATION IN LAB 5
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 5 K s Tm s 1
V (s )
(s )
| G ( j ) |
K
-20 dB/dec
-40 dB/dec 1
10
m
Need to fit a transfer function to the experimental data Need to find gain and corner frequency