Design Realization lecture 22 John Canny 11/6/03

Preview:

Citation preview

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:

-

+

MotorPotentiometer on shaft

(angle sensor)

V+

Input(voltagerepresentingdesired angle)

Amplifier

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.

-

+

MotorPotentiometer on shaft

(angle sensor)

V+

Input

Amplifier

Simulink Models

Tools like Matlab/Simulink allow us to design and test controllers before building them.

Here is the controller just shown in Simulink:

angleVoltage

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 = 2fc

where 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.

Recommended