170 likes | 193 Views
Explore feedback control principles in circuit design, focusing on position, speed, and force control. Learn how to design, test controllers in Simulink, stabilize systems using PD controllers, and optimize with PID controllers. Understand discrete lowpass amplifier concepts and automatic code generation with real-time workshop for implementation.
E N D
Design Realization lecture 22 John Canny 11/6/03
Last time • Some physics: • Bending and stretching • Construction methods: • Molding • Welding • Structural components • Modular systems
This time • Circuit design critique • Control principles • Simulation – Matlab/Simulink
Feedback Control • Often we want to move a system in a particular way, by controlling a parameter such as: • Position control • Speed control • Force control • Feedback control uses sensor(s) to measure this parameter and make corrections. • Feedback must be applied with care to avoid ever-increasing corrections (instability).
- + Feedback Control • Naively, we want to do something like this: V+ Amplifier Input(voltagerepresentingdesired angle) Potentiometer on shaft(angle sensor) Motor
- + Feedback Control • Any difference between input and measured shaft angle will be amplified, moving the motor. • If the direction is correct, the motor will reduce the difference. With high gain, the error 0. V+ Amplifier Input Potentiometer on shaft(angle sensor) Motor
Simulink Models • Tools like Matlab/Simulink allow us to design and test controllers before building them. • Here is the controller just shown in Simulink: Voltage angle
Feedback Instability • Problem: the amplifier has delay, the motor has inertia, keeps moving even after error 0. • If gain is too high, it will overshoot, “ring” or possibly oscillate.
PD Stabilizing Controller • The simplest way to control feedback is with a “PD” (Proportional Derivative) controller. • A multiple of the derivative of the output is subtracted from the amplifier input.
PD Stabilization • Why does derivative feedback stabilize the system? • Derivative feedback simulates a damper. • Motion in a fluid creates viscous drag (F -v). • Viscous drag quickly robs the system of energy.
PID Control • Sometimes there is a residual error between desired and actual output (not for DC motors). • Computing the integral of the difference signal will reduce it to zero in the steady state.
PID Tracking Controller • All three terms P,I,D are computed on the difference signal: PID controller
Implementing PID Controllers • Normally, the controller CPU is running at fixed discrete time steps. • Derivates can be computed by differencing consecutive samples, integrals by summing samples. • This approach introduces delays and can cause problems at high frequency. • Make sure that amplifiers “roll off” at high frequency – use a low-pass amplifier.
Discrete lowpass amplifier • Input is (x1,…,xn), output is (y1,…,yn) yk = a yk-1 + (1-a)b xk a, b constants, a < 1. • If x = 0, y non-zero, then the amplifier outputs a decreasing geometric sequence, which is a discrete approximation to exponential decay. • It simulates a simple RC low-pass circuit.
Discrete lowpass amplifier • The amplifier’s DC Gain is b • Corner frequency c = (- ln a)/t = 2fcwhere t is the discrete step time.
Automatic code generation • There is a companion to Matlab/Simulink called “real-time workshop” (RTW). • RTW automatically generates C code to run a Simulink model. It can handle new user-defined blocks (e.g. for sensor input or motor output). • This code can be compiled and run on the control processor.
Automatic code generation • RTW code generation includes scheduling and event-handling and allows blocks to run at different rates. • It also allows complicated models that may not run correctly with a simple discrete-step approximation.