1 / 22

Pulse Width Modulation and Motor Control

Pulse Width Modulation and Motor Control. Mark Barnhill R oy Dong Andrew Kleeves Micajah Worden Dave Seaton Facilitator: Professor Strangas. Agenda. Pulse Width Modulation Brushed DC Motor How to Code PWM DACs and PWM Amplification Back EMF Ramp Control PID Controller

zamir
Download Presentation

Pulse Width Modulation and Motor Control

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pulse Width Modulationand Motor Control Mark Barnhill Roy Dong Andrew Kleeves Micajah Worden Dave Seaton Facilitator: Professor Strangas

  2. Agenda • Pulse Width Modulation • Brushed DC Motor • How to Code PWM • DACs and PWM Amplification • Back EMF • Ramp Control • PID Controller • Motor Characterization • PID Simulation

  3. Pulse Width Modulation • Speed Control • Duty Cycle • Advantages • Disadvantages

  4. Brushed DC Motor • Field Magnets • Stator • DC Power Supply • Armature or Rotor • Axle • Commutator • Brushes

  5. How to Code PWM • Example here will cover MSP430 • Concepts can be easily extended

  6. Reading the Datasheet • One pin has multiple functions • Set PxSEL accordingly • P2DIR |= BIT2; // set P2.2 as output • P2SEL |= BIT2; // use pin as TA1.1 • Why |= operator?

  7. Setting Timer Values • Counter counts up each clock cycle • What do the different modes mean? • CCR0 = 1000-1; • Why minus 1?

  8. Looking into ‘MSP430G2231.h‘ • We are using Timer A • We must set TACTL • TACTL = TASSEL_2 + MC_1; // SMCLK, up to CCR0 • Which clock do you want to use?

  9. PWM Output Modes • We are using Timer A1.1 • CCTL1 = OUTMOD_7; // reset at CCR1 • ; // set at CCR0 • OUTMOD_1 sets at CCRx • OUTMOD_2 toggles at CCRx, resets at CCR0

  10. Setting the Duty Cycle • We are using Timer A1.1 • Recall: • TACTL = TASSEL_2 + MC_1; // SMCLK, up to CCR0 • CCR0 = 1000-1; • CCTL1 = OUTMOD_7; // reset at CCR1 • ; // set at CCR0 • Now: • CCR1 = 200-1; // 20% duty cycle • What will this do?

  11. DACs and PWM Amplification • DACs are used to convert a digital signal to analog • Why does a PWM signal become a steady DC value? • Microprocessors can’t provide enough current to drive a motor

  12. Back Electromotive Force (EMF) • A motor converts electrical energy to mechanical energy • This conversion can go both ways • If a motor is spinning it will generate electrical energy • Called back emf

  13. Example of Back EMF

  14. Example of BEMF with a Load

  15. Functional Block Diagram of PWM DC Motor Control

  16. Ramp Control • Is an integrator • Adjusts the set point up to the desired value.

  17. PID Control • e(t)= Setpoint - measured • Kp, Ki and Kd must be tuned according to desired output characteristics

  18. DC Motor Model • Basic DC motor systems can be represented by this electromechanical schematic. (bottom-left) • The motor speed () as a function of input voltage ()is governed by an open loop transfer function. (bottom-right) • It is helpful to characterize the motor to obtain simulations/projected results along with PID estimates for the system.

  19. Motor Characterization • In order to obtain the motor parameters, basic DC machine tests must be used. • To get an estimate for Rwdg: • The rotor must be locked. • 5 different voltages are supplied to the windings. • The current is measured. • Ohm’s Law: to find average resistance Rwdg= 1.2932Ω

  20. Motor Characterization Cont. • Rotor speed and input voltage are directly related by the motor constant (K) in the equation: • A no-load test supplying 12.0 Volts to the motor results in 830 mA drawn at a speed of ~14,200 rpm (1,487.0205 rad/s). • Using the winding resistance from before, the Back EMF is subtracted from the supply which results in: K= 0.007348V/rad

  21. Open Loop Simulation RiseTime: 0.4871 SettlingTime: 0.8853 SteadyState: 0.6120 Overshoot: 1.1044 J=0.002; b=0.00924; K=0.007348; R=1.2932; L=0.05; step(K,[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)]);

  22. PID/Closed Loop Simulation RiseTime: 0.1788 SettlingTime: 0.2168 SteadyState: 1.0000 Overshoot: 0 J=0.002; b=0.00924; K=0.007348; R=1.2932; L=0.05; Kp=20; Ki=30; Kd=29; num_PID=[Kd, Kp, Ki]; den_LOOP=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)]; num_B=conv(K,num_PID); den_B=conv(den_LOOP,[1 0]); [num_SYS,den_SYS]=cloop(num_B,den_B); step(num_SYS,den_SYS) Kp: 20 Ki: 30 Kd: 29

More Related