Date post: | 22-Dec-2015 |
Category: |
Documents |
Upload: | morgan-wright |
View: | 410 times |
Download: | 10 times |
Chapter 9:
Discrete Controller Design
(Deadbeat & Dahlin Controllers)
1
Discrete-time controller design
The design procedure is outlined as follows:
1. Derive the transfer function of the plant (process).2. Transform the system transfer function into the z-plane.3. Design a suitable digital controller in the z-plane.4. Implement the controller algorithm on a digital computer.
2
Discrete-time controller design
Today, we will study two methods for discrete controller design:
• Deadbeat controllera technique to achieve an ideal response but require excessive control signals.
• Dahlin controllera technique to approximate the deadbeat controller but does not require excessive control signals.
3
• The closed-loop transfer function of the system shown is
• Suppose that the closed-loop transfer function is chosen to be:
• Then, the controller required to achieve T(z) is given by:
4
.)()(1
)()(
)(
)(
zGHzD
zGHzD
zR
zY
.)(
)()(
zR
zYzT
.)(1
)(
)(
1)(
zT
zT
zGHzD
Digital controllers
• The equation,
states that the required controller D(z) can be designed if we know the model of the process GH(z).
• The controller D(z) must be realizable. That is, D(z) must not have a numerator whose order exceeds that of the numerator.
5
Digital controllers
,)(1
)(
)(
1)(
zT
zT
zGHzD
Deadbeat Controller
Deadbeat controller is one in which a step input is followed by the system but delayed by one or more sampling periods, i.e. the system response is required to be equal to unity at every sampling instant after the application of a unit step input.
6
Therefore, the desired closed-loop transfer function is
and the controller achieving this is
7
.1
1
)(
1
1)(
1
)(1
)(
)(
1)(
kk
k
zzGHz
z
zGHzT
zT
zGHzD
.1,)( kzzT k
Deadbeat Controller
Example 9.1
The open-loop transfer function of a plant is given by
Design a dead-beat digital controller for the system. Assume that T = 1 s.Answer: The transfer function of the system with a ZOHis given by
8
.110
)(2
s
esG
s
)110(
1)1(
)110()1()(
1)(
21
21
ssZzz
ss
eZzsG
s
eZzGH
TsTs
• From the z-transform tables
• So,
• Hence, the controller is given by
9
))(1(
)1(
)( aT
aTZ
ezz
ez
ass
a
23
1.0
1.021
21
904.0
095.0
))(1(
)1()1(
)1.0(
1.0)1()(
zz
ezz
ezzz
ssZzzzGH
.1
1
095.0
904.0
)(1
)(
)(
1)(
23
kz
zz
zT
zT
zGHzD
• For realizability, we must choose k ≥ 3. • Choosing k = 3, we obtain the controller
• With this controller, the block diagram of the closed-loop is
• To analyze the designed system performance, let us simulate the step response of the closed-loop and the control signal.
10
.)1(095.0
904.0
1
1
095.0
904.0)(
3
23
3
23
z
zz
z
zzzD
As designed, the step response is unity after 3 secconds and stays at this value. Note: It is important to realize that the response is correct only at the sampling instants and the response can have an oscillatory behavior between the sampling instants.
11
12
For the control signal, we can realize that the maximum magnitude of the control signal is very high at the beginning (≈11). Usually, this is not acceptable in practice.
Drawbacks of deadbeat control
• It requires large control signals which may not be acceptable.
• It is very sensitive to plant characteristics and a small change in the plant may lead to ringing or oscillatory response.
13
MATLAB code for Deadbeat control % Deadbeat control, Dogan Ibrahim, Chapter 9, Example 9.1 Gp = tf(1,[10 1],'iodelay',2);Gpd = c2d(Gp,1);Gc = tf([1 -0.904 0 0],[0.095 0 0 -0.095],1);Gcl=Gc*Gpd/(1+Gc*Gpd);t=0:1:10;y=step(Gcl,t)figure(1)plot(t,y,'o','MarkerSize',6)xlabel('time, sec')ylabel('output, y')xlabel('time, t')axis([0 10 0 1.2])title('Step response') Gru=Gc/(1+Gc*Gpd);u=step(Gru,t)figure(2)plot(t,u,'o','MarkerSize',6)xlabel('time, sec')ylabel('control signal, u')axis([0 10 0 15])title('Control signal')
14
Dahlin Controller• Dahlin controller is a modification of the deadbeat
controller which produces an exponential response that is smoother than deadbeat control.• The desired closed-loop response for step input looks like:
15
• Hence, the desired closed-loop transfer function is:
• As step input is assumed (which is constant between samples), the desired closed-loop transfer function in the z-domain will be
16
1)(
s
esG
Ls
cl
1
1)}()({)(
s
e
s
eZsGsGZzT
LsTs
clzoh
Dahlin Controller
Example
The open-loop transfer function of a plant is given by
Design a Dahlin digital controller for the system to achieve a closed-loop time constant of 5 sec. Assume that the sampling period, T = 1 s.
17
110)(
2
s
esG
s
Answer • First, we need to find the z-transform of the process (preceded
by a ZOH). From the previous example, this is found to be:
• Second, we need to find the z-transform of the desired closed-loop transfer function, T(z).
• As the desired closed-loop time constant, τ, is 5 sec,
18
23 904.0
095.0)(
zzzGH
15)(
s
esT
Ls
• Therefore,
19)819.0(
)181.0(
))(1(
)1()1(
)2.0(
2.0)1(
)15(
1)1(
15
1)(
2.0
2.01
1
/1
zz
ezz
ezzz
ssZzz
ssZzz
s
e
s
eZzT
k
T
Tk
k
TL
Lss
The Dahlin controller is thus given by
20
.017.0078.0095.0
164.0181.0
181.0819.0
181.0
095.0
904.0
)819.0()181.0(
1
)819.0()181.0(
095.0
904.0
)(1
)(
)(
1)(
23
23
23
k
kk
k
k
k
k
zz
zz
zz
zzz
zz
zz
zz
zT
zT
zGzD
• For the controller to be realizable, the degree of the numerator must be less than or equal to the degree of the denominator, i.e.
• Choosing k=2, the controller is, then, given by:
• Using the designed controller, the closed-loop step response and control signal are shown next.
21
017.0078.0095.0
164.0181.0
017.0078.0095.0
164.0181.0)(
23
23
2
zz
zz
zz
zzD
213 kk
• It is clear that the response is exponential as designed but slower than deadbeat control.
• What is response time delay? time constant?22
It is clear that the maximum magnitude of the control signal (≈1.9) is much smaller than the control signal obtained using a deadbeat controller (≈11), which is more acceptable in practice.
23
MATLAB code for Dahlin controller % Dahlin control, Dogan Ibrahim, Chapter 9, Example 9.1 Gp = tf(1,[10 1],'iodelay',2);Gpd = c2d(Gp,1);Gc = tf([0.181 -0.164 0 0],[0.095 -0.078 0 -0.017],1);Gcl=Gc*Gpd/(1+Gc*Gpd);t=0:1:30;y=step(Gcl,t)figure(1)plot(t,y,'o','MarkerSize',6)xlabel('time, sec')ylabel('output, y')xlabel('time, t')axis([0 30 0 1.2])title('Step response') Gru=Gc/(1+Gc*Gpd);u=step(Gru,t)figure(2)plot(t,u,'o','MarkerSize',6)xlabel('time, sec')ylabel('control signal, u')axis([0 30 0 5])title('Control signal')
24