0% found this document useful (0 votes)
231 views58 pages

Computer Implementation of Control Systems: Karl-Erik Årzen, Anton Cervin

This document discusses computer implementation of control systems using sampled-data control. It covers topics like discretization of continuous-time controllers, implementation of PID controllers, networked control systems, sampling, aliasing, anti-aliasing filters, design approaches like discrete-time design and continuous time design with discretization, and an example using a disk drive system. It also discusses sampled control theory and periodic sampling of systems.

Uploaded by

nnikog
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
231 views58 pages

Computer Implementation of Control Systems: Karl-Erik Årzen, Anton Cervin

This document discusses computer implementation of control systems using sampled-data control. It covers topics like discretization of continuous-time controllers, implementation of PID controllers, networked control systems, sampling, aliasing, anti-aliasing filters, design approaches like discrete-time design and continuous time design with discretization, and an example using a disk drive system. It also discusses sampled control theory and periodic sampling of systems.

Uploaded by

nnikog
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 58

Computer Implementation of Control Systems

Karl-Erik Årzen, Anton Cervin


Session outline
• Sampled-data control
• Discretization of continuous-time controllers
• Implementation of PID Controllers
Sampled-data control systems
u (t ) y (t )

t t
u (t ) y (t )
Process

Hold Sampler
uk yk
uk D-A Computer A-D yk

t t

• Mix of continuous-time and discrete-time signals


Networked control systems

. .
u(t)

. ... u(t) y(t)


y(t)

Process

t t

D−A Sampler
and and
Hold A−D

Communication network

. .
uk

. ...
yk
. ...
uk
Computer
yk
. .
t t

• Extra delay, possibly lost packets


Sampling
Computer u
y
A/D Algorithm D/A Process

AD-converter acts as sampler


A/D

DA-converter acts as a hold device


Normally, zero-order-hold is used  piecewise constant control
signals
Aliasing
1

−1
0 5 10
Time

ωs = h
= sampling frequency
ωs
ωN = 2
= Nyquist frequency
Frequencies above the Nyquist frequency are folded and appear as
low-frequency signals.
The fundamental alias for a frequency f1 is given by

f = ( f1 + f N ) mod ( fs ) − f N 

Above: f1 = 0.9, fs = 1, f N = 0.5, f = 0.1


Anti-aliasing filter
Analog low-pass filter that eliminates all frequencies above the
Nyquist frequency

• Analog filter
– 2-6th order Bessel or Butterworth filter
– Difficulties with changing h (sampling interval)
• Analog + digital filter
– Fixed, fast sampling with fixed analog filter
– Downsampling using digital LP-filter
– Control algorithm at the lower rate
– Easy to change sampling interval

The filter may have to be included in the control design


Example – Prefiltering
(a) (b)
1 1

0 0

−1 −1
0 10 20 30 0 10 20 30
(c) (d)
1 1

0 0

−1 −1
0 10 20 30 0 10 20 30
Time Time

ω d = 0.9, ω N = 0.5, ω alias = 0.1


6th order Bessel with ω B = 0.25
Design approaches

Digital controllers can be designed in two different ways:


• Discrete-time design – sampled control theory
– Sample the continuous system
– Design a digital controller for the sampled system
∗ Z-transform domain
∗ state-space domain
• Continuous time design + discretization
– Design a continuous controller for the continuous system
– Approximate the continuous design
– Use fast sampling
Disk drive example
Control of the arm of a disk drive
k
G (s) =
Js2
Continuous time controller
bK s+b
U (s) = Uc (s) − K Y (s)
a s+a
Discrete time controller (continuous time design + discretization)

u(t k) = K ( ab uc (t k) − y(t k) + x(t k))


x(t k + h) = x(t k) + h ((a − b) y(t k) − ax(t k))

1
Disk drive example

y: = adin(in2) Clock
u:=K*(b/a*uc-y+x)
dout(u) Algorithm
x:=x+h*((a-b)*y-a*x)

Sampling period h = 0.2/ω 0


1
Output

0
0 5 10
0.5
Input

−0.5
1
0 5 10
Time (ω0t)
Increased sampling period

a) h = 0.5/ω 0 b) h = 1.08/ω 0
(a) (b)
Output

Output
1 1

0 0
0 5 10 0 5 10
0.5 0.5
Input

Input
0 0

−0.5 −0.5
0 5 10 15 0 5 10 15
Time (ω0t) Time (ω0t)

1
Better performance?
Dead-beat control h = 1.4/ω 0

u(t k) = t0 uc (t k) + t1 uc (t k−1 ) − s0 y(t k) − s1 y(t k−1 ) − r1 u(t k−1 )

1
Position

0
0 5 10
Velocity

0.5

0 5 10
0.5
Input

−0.5
0 5 10 1
Time (ω0t)
However, long sampling periods also have problems
• open loop between the samples
• disturbance and reference changes that occur between sam-
ples will remain undetected until the next sample

1
Sampled control theory
Computer

Clock

{y(t k )} {u(t k )} u(t) y(t )


A-D Algorithm D-A Process

Basic idea: look at the sampling instances only


• System theory analogous to continuous-time systems
• Better performance can be achieved
• Potential problem with intersample behaviour
1
Sampling of systems

Look at the system from the point of view of the computer

Clock

{u(t k )} u(t) y(t) { y (tk )}


D-A System A-D

Zero-order-hold sampling of a system


• Let the inputs be piecewise constant
• Look at the sampling points only
• Solve the system equation
1
Sampling a continuous-time system
Process:
dx
= Ax(t) + Bu(t)
dt
y(t) = Cx(t) + Du(t)

Solve the system equation:


 t
A(t−tk ) A(t−s )
x ( t) = e x(t k) + e Bu(s ) ds
tk
 t
A(t−tk ) A(t−s )
=e x(t k) + e ds Bu(t k) (u const.)
tk
 t−tk
= eA(t−tk) x(tk) + eAs ds Bu(t k) (variable change)
0
= Φ(t, tk) x(tk) + Γ(t, tk)u(tk) 1
Periodic sampling
Assume periodic sampling, i.e. tk = kh. Then

x( kh + h) = Φ x( kh) + Γ u( kh)
y( kh) = Cx( kh) + Du( kh)

where

Φ = eAh
 h
Γ= eAs ds B
0

Time-invariant linear system!

1
Example: Sampling of inverted pendulum
⎧ ⎫ ⎧ ⎫
dx ⎪ 0 1⎪ ⎪ 0⎪
=⎪⎩ ⎭x+⎪
⎪ ⎩ ⎪ ⎭u
dt 1 0 1
⎧ ⎫
y = ⎩1 0⎭x

We get
⎧ ⎫

⎪ cosh h sinh h ⎪

Φ=e =⎩
Ah

sinh h cosh h
 h⎧ ⎫ ⎧ ⎫
⎪ sinh s ⎪ ⎪ cosh h − 1 ⎪
Γ= ⎪
⎩ ⎪ ⎪
⎭ ds = ⎩ ⎪

0 cosh s sinh h

Several ways to calculate Φ and Γ. Matlab


1
Sampling a system with a time delay
Sampling the system
dx(t)
dt
= Ax(t) + Bu(t − τ ), τ ≤h

we get the discrete-time system

x( kh + h) = Φ x( kh) + Γ 0 u( kh) + Γ 1 u( kh − h)

where
Φ = eAh
 h−τ
Γ0 = eAs ds B
0

Γ 1 = eA(h−τ ) eAs ds B
0
 2

We get one extra state u( kh − h) in the sampled system


Stability region

• In continuous time the stability region is the complex left half


plane, i.e., the system is stable if all the poles are in the left
half plane.
• In discrete time the stability region is the unit circle.

2
Digital control design
Similar to analog control design, but
• Z-transform instead of Laplace transform
– zX ( z)  x(t k+1 )
– z−1 X ( z)  x(t k−1 )
• Poles are placed within the unit circle
• The frequency response is more difficult to compute
• The sampling interval h is a new design parameter

2
Choice of sampling interval
Nyquist’s sampling theorem:

“We must sample at least twice as fast as the highest


frequency we are interested in”

• What frequencies are we interested in?

2
Typical loop transfer function L(iω ) = P(iω ) C(iω ):
1
10

0
10
ωc
Förstärkning

−1
10

−2
10
−1 0
10 10

−50

−100

ϕm
Fas

−150

−200

−250
−1 0
10 10
Frekvens [rad/s]

• ω c = cross-over frequency, ϕ m = phase margin


• We should have ω s ≫ 2ω c
2
Sampling interval rule of thumb
A sample-and-hold (S&H) circuit can be approximated by a delay of
h/2.
G S&H (s)  e−sh/2
This will decrease the phase margin by

arg G S&H (iω c ) = arg e−iω c h/2 = −ω c h/2

Assume we can accept a phase loss between 5○ and 15○ . Then


0.15 < ω c h < 0.5

This corresponds to a Nyquist frequency about 6 to 20 times larger


than the crossover frequency
2
Example: control of inverted pendulum
h = 0.1, h = 0.3, h = 0.5,
ω c h = 0.28 ω c h = 0.78 ω c h = 1.12
2 2 2

1 1 1
y

0 0 0

−1 −1 −1
0 5 0 5 0 5

10 10 10

0 0 0
u

−10 −10 −10

−20 −20 −20


0 5 0 5 0 5
Time Time Time

• Large ω c h may seem OK, but beware!


– Digital design assuming perfect model
2

– Controller perfectly synchronized with initial disturbance


Pendulum with non-synchronized disturbance
h = 0.1, h = 0.3, h = 0.5,
ω c h = 0.28 ω c h = 0.78 ω c h = 1.12
2 2 2

1 1 1
y

0 0 0

−1 −1 −1
0 5 0 5 0 5

10 10 10

0 0 0
u

−10 −10 −10

−20 −20 −20


0 5 0 5 0 5
Time Time Time

2
Accounting for the anti-aliasing filter
Assume we also have a second-order Butterworth anti-aliasing
filter with a gain of 0.1 at the Nyquist frequency. The filter gives an
additional phase margin loss of  1.4ω c h.
Again assume we can accept a phase loss of 5○ to 15○ . Then
0.05 < ω c h < 0.14

This corresponds to a Nyquist frequency about 23 to 70 times


larger than the crossover frequency

2
Session outline
• Sampled-data control
• Discretization of continuous-time controllers
• Implementation of PID Controllers

2
Discretization of continuous-time controllers
Basic idea: Reuse the analog design
H ( z) ≈ G (s)

u(t) {u ( kh )} { y ( kh )} y (t)
A-D Algorithm D-A

Clock

Want to get:
• A/D + Algorithm + D/A  G (s)
Methods:
• Approximate s, i.e., H ( z) = G (s )
• Other discretization methods (Matlab) 3
Approximation methods
Forward Difference (Euler’s method):
dx(t) x(t k+1 ) − x(t k)

dt h
s = z−1
h
Backward Difference:
dx(t) x(t k) − x(t k−1 )

dt h
s = z−1
zh
Tustin:
dx(t)
+ dx(dt
tk+1 )
x(t k+1 ) − x(t k)
dt

2 h
s = h2 zz−
3
1
+1
Stability of approximations

How is the continuous-time stability region (left half plane) mapped?

Forward differences Backward differences Tustin

3
Discretization example
Controller designed in continuous-time:
b
U (s) = E(s)
s+a
z−1
Discretization using Forward Euler (s = h
):

b
u( k) = e( k)
( z − 1)/h + a
( z − 1 + ha)u( k) = bhe( k)
u( k + 1) = (1 − ha)u( k) + bhe( k)
u( k) = (1 − ha)u( k − 1) + bhe( k − 1)

Controller stable if −1 < (1 − ha) < 1, i.e., 0 < h < 2/a (does not 3
imply that the closed loop system is stable, though)
Controller Synthesis
Process Model
ẋ = Ax + Bu
G(s) y = Cx + Du

Control Design in Continuous-Time Discretize the process


• Loop shaping • e.g. ZOH Sampling
• Pole placement x(k + 1) = Φx(k) + Γu(k)
• PID
• …. y(k) = Cx(k) + Du(k)

Discretize the Controller Control Design in Discrete-Time


• Euler • Pole placement
• Tustin • LQG
• …. • ….

Difference Equation

Software algorithm
Session outline
• Sampled-data control
• Discretization of continuous-time controllers
• Implementation of PID Controllers

3
PID Algorithm

Textbook Algorithm:

t
u(t) = K ( e(t) + 1
TI
e(τ )dτ + TD dedt(t) )

U (s) = K ( E(s) + 1
sTI
E(s) + TD sE(s))

= P + I + D
3
Algorithm Modifications

Modifications are needed to make the controller practically useful

• Limitations of derivative gain


• Derivative weighting
• Setpoint weighting

3
Limitations of derivative gain

We do not want to apply derivation to high frequency measurement


noise, therefore the following modification is used:

sTD
sTD 
1 + sTD / N

N = maximum derivative gain, often 10 − 20

3
Derivative weighting

The setpoint is often constant for long periods of time


Setpoint often changed in steps → D-part becomes very large.
Derivative part applied on part of the setpoint or only on the mea-
surement signal.

sTD
D (s) = (γ Ysp(s) − Y (s))
1 + sTD / N

Often, γ = 0 in process control, γ = 1 in servo control


3
Setpoint weighting

An advantage to also use weighting on the setpoint.

u = K ( ysp − y)
replaced by
u = K (β ysp − y)

0≤β ≤1
A way of introducing feedforward from the reference signal (position
a closed loop zero)
Improved set-point responses.
3
A better algorithm

1 TD s
U (s) = K (β yr − y + E(s) − Y (s))
sTI 1 + sTD / N

Modifications:
• Setpoint weighting (β ) in the proportional term improves set-
point response
• Limitation of the derivative gain (low-pass filter) to avoid deriva-
tion of measurement noise
• Derivative action only on y to avoid bumps for step changes in
the reference signal
4
Control Signal Limitations
All actuators saturate.
Problems for controllers with integration.
When the control signal saturates the integral part will continue to grow –
integrator (reset) windup.
When the control signal saturates the integral part will integrate up to a
very large value. This may cause large overshoots.
2 Output y and yref

1.5

0.5

0
0 10 20
Control variable u

0.2

−0.2
4
0 10 20
Anti-Reset Windup

Several solutions exist:


• controllers on velocity form (not discussed here))
• limit the setpoint variations (saturation never reached)
• conditional integration (integration is switched off when the
control is far from the steady-state)
• tracking (back-calculation)

4
Tracking

• when the control signal saturates, the integral is recomputed so


that its new value gives a control signal at the saturation limit
• to avoid resetting the integral due to, e.g., measurement noise,
the re-computation is done dynamically, i.e., through a LP-filter
with a time constant Tr .

4
Tracking

–y
KTds

Actuator
e = r− y v u
K Σ

K – +
Σ 1 Σ
Ti s

es
1
Tt

–y
KT d s
Actuator
model Actuator
e = r− y
K Σ

K 1 – +
Ti
Σ Σ
s

1 es 4
Tt
Tracking

0.5

0
0 10 20 30

0.15

0.05

−0.05
0 10 20 30

−0.4

−0.8
0 10 20 30 4
Discretization

P-part:

u P ( k) = K (β ysp( k) − y( k))

4
Discretization
I-part:
t
K dI K
I ( t) = e(τ )dτ , = e
TI dt TI
0

• Forward difference
I (t k+1 ) − I (t k) K
= e(t k)
h TI
I(k+1) := I(k) + (K*h/Ti)*e(k)
The I-part can be precalculated in UpdateStates
• Backward difference
The I-part cannot be precalculated, i(k) = f(e(k))
• Others 4
Discretization
D-part (assume γ = 0):
sTD
D=K (− Y (s))
1 + sTD / N

TD dD dy
+ D = − K TD
N dt dt
• Forward difference (unstable for small TD )

4
Discretization, cont.
D-part:
• Backward difference
TD D (t k) − D (t k−1 )
+ D (t k)
N h
y(t k) − y(t k−1 )
= − K TD
h
TD
D (t k) = D (t k−1 )
TD + Nh
K TD N
− ( y(tk) − y(tk−1 ))
TD + Nh

4
Discretization

Tracking:

v := P + I + D;
u := sat(v,umax,umin);
I := I + (K*h/Ti)*e + (h/Tr)*(u - v);

5
PID code
PID-controller with anti-reset windup
y = yIn.get(); // A-D conversion
e = yref - y;
D = ad * D - bd * (y - yold);
v = K*(beta*yref - y) + I + D;
u = sat(v,umax,umin)}
uOut.put(u); // D-A conversion
I = I + (K*h/Ti)*e + (h/Tr)*(u - v);
yold = y

ad and bd are precalculated parameters given by the backward


difference approximation of the D-term.
Execution time for CalculateOutput can be minimized even further.
5
Alternative PID Implementation

The PID controller described so far has constant gain, K (1 + N ), a


high frequencies, i.e., no roll-off at high frequencies.
An alternative is to instead of having a low pass filter only on the
derivative part use a second-order low-pass filter on the measured
signal before it enters a PID controller with a pure derivative part.

1
Y f (s) = 2 2 Y (s)
T f s + 1.4T f s + 1
1
U (s) = K (β Yre f (s) − Y f (s) + ( Yre f (s) − Y f (s)) − TD sY f (s))
TI s

5
Class SimplePID
public class SimplePID {
private double u,e,v,y;
private double K,Ti,Td,Beta,Tr,N,h;
private double ad,bd;
private double D,I,yOld;

public SimplePID(double nK, double nTi, double NTd,


double nBeta, double nTr, double nN, double nh) {
updateParameters(nK,nTi,nTd,nBeta,nTr,nN,nh);
}

public void updateParameters(double nK, double nTi, double NTd,


double nBeta, double nTr, double nN, double nh) {
K = nK; Ti = nTi; Td = nTd; Beta = nBeta;
Tr = nTr
N = nN;
h = nh;
ad = Td / (Td + N*h);
bd = K*ad*N;
}
5
public double calculateOutput(double yref, double newY) {

y = newY;
e = yref - y;
D = ad*D - bd*(y - yOld);
v = K*(Beta*yref - y) + I + D;
return v;
}

public void updateState(double u) {

I = I + (K*h/Ti)*e + (h/Tr)*(u - v);


yOld = y;
}

5
Extract from Regul
public class Regul extends Thread {
private SimplePID pid;

public Regul() {
pid = new SimplePID(1,10,0,1,10,5,0.1);
}

public void run() {


// Other stuff

while (true) {
y = getY();
yref = getYref():
u = pid.calculateOutput(yref,y);
u = limit(u);
setU(u);
pid.updateState(u);
// Timing Code
}
}
5
}
Task Models

5
Further reading

• B. Wittenmark, K. J. Åström, K.-E. Årzén: “Computer Control:


An Overview.” IFAC Professional Brief, 2002.
(Available at http://www.control.lth.se)
• K. J. Åström, B. Wittenmark: Computer-Controlled Systems,
Third Ed. Prentice Hall, 1997.
• K. J. Åström, Tore Hägglund: Advanced PID Control. The
Instrumentation, Systems, and Automation Society, 2005.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy