(thanks to gary fedder)
DESCRIPTION
Controls Review of Motor Model Open Loop (controller-free) Response Proportional Control Stable Faster Response = Bigger Overshoot Steady State Error PI Control Maintain Stability Decrease Steady State Error = Bigger Overshoot PID Control Derivative term reduces overshoot, settling time Feed Forward Overcome dampingTRANSCRIPT
PID Controls of Motors
Howie Choset(thanks to Gary Fedder)
http://www.library.cmu.edu/ctms/ctms/examples/motor/motor.htm
Controls• Review of Motor Model • Open Loop (controller-free) Response• Proportional Control
– Stable– Faster Response = Bigger Overshoot– Steady State Error
• PI Control– Maintain Stability– Decrease Steady State Error = Bigger Overshoot
• PID Control– Derivative term reduces overshoot, settling time
• Feed Forward– Overcome damping
Mass-Spring-Damper Model(Analogy)
Model of mass spring damper system
z(t) position, z(t) velocityt0 initial time, z(t0), z(t0) initial position & velocity
Review of Motor Model
•electric inductance (L) = [H](VL = L di/dt)
* input (V): Source Voltage* output (theta): position of shaft* The rotor and shaft are assumed to be rigid
• moment of inertia of the rotor (J) [kg.m^2/s^2]* damping ratio of the mechanical system (b) [Nms]* electromotive force constant
•Ke is volt (electromotive force) per radians per second (V/ rad/sec)
• torque constance•Kt is torque amp (Nm/Amp)
* electric resistance (R) = [ohm]
Review of Motor ModelTorque is proportional to current (Lenz’s Law)
Back emf is proportional to motor speed (Faraday’s Law)
Mechanical Equation of Motion
Electrical Equation of Motion KVRidtdiL
KibJ
)(KI )( J ssbss )(KV)(R)I(L ssss
2KRLb JK
V
sss
Assume (K=Ke=Kt)
Solve for sVSpeed, theta dot
Transfer Function of Motor (with Approximations)
=
=
= Open Loop Transfer Function
Can rewrite function in terms of an electrical and mechanical behavior
For small motors, the mechanical behavior dominates (electrical transients die faster).
example motor with equivalent time constants
.
.
.
Electrical time constant on motor is much smaller
Open Loop Response (to a Step)• Apply constant voltage• Slow response time (lag)• Weird Apples-to-Orange relationship between input and output
– If you want to set speed, what voltage do you input?– Weird type of steady state error
• No reaction to perturbations
PlantInputVoltage
OutputSpeed
Closed Loop Controller
Controller EvaluationSteady State ErrorRise Time (to get to ~90%)OvershootSettling Time (Ring) (time to steady state)Stability
Give it a velocity command and get a velocity output
PlantController-
+Ref error voltage
Close the loop analogy
Stability
Asymptotic Stability:
Closed Loop Response (Proportional Feedback)
PlantController-
+R error voltage
Proportional Control
Easy to implementInput/Output units agreeImproved rise time
Steady State Error (true)
P: Rise Time vs. OvershootP: Rise Time vs. Settling time
pK
Voltage = Kp error
Closed Loop Response (PI Feedback)
Plant-
+Ref error voltage
Proportional/Integral Control Ip K
sK 1
No Steady State Error
Bigger Overshoot and SettlingSaturate counters/op-amps
P: Rise Time vs. OvershootP: Rise Time vs. Settling time
I: Steady State Error vs. Overshoot
Voltage = (Kp+1/s Ki) error
Ip Ks
K 1
Closed Loop Response (PID Feedback)
Plant-
+R error voltage
Proportional/Integral/Differential
Quick responseReduced Overshoot
Sensitive to high frequency noiseHard to tune
P: Rise Time vs. OvershootP: Rise Time vs. Settling time
I: Steady State Error vs. Overshoot
D: Overshoot vs. Steady State Error
DIp sKKs
K 1
DIp sKKs
K 1
Voltage = (Kp+1/s Ki + sKd) error
Feed ForwardDecouples Damping from PID
To compute Try different open loop inputs and measure output velocitiesFor each trial i, Tweak from there.
bK
Plant-
+R errorController
++ volt
K
bK
ibb
i
iib KKuK avg ,
.
Volt
Follow a straight line with differential drive
Make both wheels spin the same speedasynchronous – false startwheels can have slight differences (radius, etc)
Make sure both wheels spin the same amount and speedfalse start
More complicated control laws – track orientation m1vref = vref + K1 * thetaerror + K2 * offset error
modeling kinematics of robotdead-reckoning
Error can be difference in wheel velocities or accrued distances
Encoders
Encoders – Incremental
LED Photoemitter
Photodetector
Encoder disk
Encoders - Incremental
Encoders - Incremental
• Quadrature (resolution enhancing)
Where are we?
• If we know our encoder values after the motion, do we know where we are?
Where are we?
• If we know our encoder values after the motion, do we know where we are?
• What about error?
Encoders - Absolute
4 Bit Example
More expensive
Resolution = 360° / 2N
where N is number of tracks