CSCI1600: Embedded and Real Time Software Lecture 12: Modeling V: Control Systems and Feedback Steven Reiss, Fall 2015
CSCI1600: Embedded and Real Time SoftwareLecture 12: Modeling V: Control Systems and Feedback
Steven Reiss, Fall 2015
Control Systems Desired output value: target value
Actual output value: measured value
Actuator input: controls the plant’s behavior
Error: desired - actual
Control Variables
The actuator input can be binary or continuous Amount of heat, turn, gas, …
Turn left/right, turn on heat, accelerate
The outputs (and error) can be a vector or a scalar Optimize for a single factor (speed, temperature, …)
Optimize for multiple factors (temp + humidity, …)
On-Off Control
Suppose we do the simple thing for a heater If actual temp < target then turn on heater, else off
What is going to happen to the temperature Overshoot
Time to heat up (undershoot)
Oscillation
Smarter On-Off Control
A little more sophisticated temp < target – delta1 : HEAT ON
temp >= target – delta2 : HEAT OFF
temp > target + delta3 : COOL ON
temp <= target + delta4 : COOL OFF
What’s going to happen here What is it is very cold (hot) outside
Proportional Control
Suppose we have control over the actuator Can give it a range of values (low/high, continuous, …)
Acceleration in a car, heater with low/high flame (emergency mode), variable speed fan
What would we want to do in that case
Proportional Control
Make the actuator input proportional to the error Large error -> large input (accelerate fast)
Small error -> small input (accelerate slow)
No error -> do nothing
Assume doing nothing drives system the other way
Or that there is a corresponding input on the other side
Actuator = Kp * Error
Problem: What should Kp be
Should be > 0
Actual value depends on the system
How could you determine the value? Modeling
Mathematics
Experimentation
Is This Sufficient
Will it eliminate overshoot, oscillation, slow rise time Depends on the actual system
If the system is not perfectly linear or the actuator is not immediate, then probably not
We can do better
Proportional-Derivative Control
A and B are two situations leading to point T
What should the output be for each?
Proportional-Derivative Control
Want to take the rate of change into account Fast rate – slow down the response
Slow rate – speed up the response
Actuator = Kp * error - Kd * deriv deriv = the derivative of the error
deriv = change in error over time
deriv = change in error from last time to this
Choosing Kp and Kd
Now we have two parameters to determine How could you do this
Generally Kd is > Kp Note the Kd is subtracted, but stated as positive
Is This Sufficient
Steady state error How could this occur
Determining Steady State Error
Look at the sum of the error In the past
Not necessarily full past
Or constrain in bounds
This is the integral of the error How might you compute this
Computing Integral of Error
Approximate with sum integ = integ + error;
if (integ > MAX) integ = MAX;
else if (integ < MIN) integ = MIN
Actuator = Kp*error – Kd*deriv + Ki*integ
Ki now needs to be chosen Typically much smaller than Kp
Issues in Controllers
Actual input might have a limit range/set of values Set the actuator to the nearest value
Off/on based on threshold
Sampling rate affects the computation Might want to average the derivative
Computations are typically non-integer
Understanding PID
http://demonstrations.wolfram.com/PIDControlOfATankLevel
http://sites.google.com/site/fpgaandco/pid
PID Tuning
Set Ki=0, Kd=0, Kp=1
Increase Kp until the actual oscillates with a constant amplitude Let U = this Kp
Let P = oscillation period (in seconds)
Set Kp = U/1.7, Ki = (Kp*2), Kd = (Kp*P)/8
PID Tuning
In general requires a bit of sophistication Control theory
Control system design
Control engineers
For More Information
Wikipedia : PID
http://www.embedded.com/design/embedded/4211211/PID-without-a-PhD
Homework
Design a SIMON game https://www.youtube.com/watch?v=4YhVyt4q5HI
What are the tasks
What types of models are appropriate
Develop appropriate models (of at least one task)
Be prepared to show and explain models for the tasks
Be prepared to hand in the models