SERVO MOTOR DYNAMICS

SERVO MOTOR DYNAMICS Rajesh Rajamani Department of Mechanical Engineering University of Minnesota PRINCIPLES  Conductor of length L in a magnetic ...
Author: Tiffany Barton
14 downloads 0 Views 511KB Size
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

FI 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 mi  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  1Tm s  1

Te 

L R

Tm 

J



Including amplifier and encoder dynamics: V (s )

Ka Ta s  1

G

Te s  1Tm 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  1Tm 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 

9