System
Performance in Sampled Systems
The questions that need to be answered are the following.
-
How do I compute DC gain?
-
How long does it take
for a signal to die out?
-
Are there a lot of oscillations?
We will answer these questions
in order.
Computing DC Gain
in a Sampled System
In continuous systems the answer to this question really relies on the
final value theorem. In linear systems we have:

In other words, the final
value (as time becomes very large) can be computed from the value of the
transform at s = 0. In sampled systems, the point z = 1 often plays
the role that s = 0 plays in continuous systems. The final value
theorem for sampled systems is:

Now, the transform of
a sampled unit step is:
Transform of a Sampled
Step = z/(z - 1)
And, that is the transform
of this signal:

So, if you multiply
the transform of the step times the transfer function and take the limit,
you get the limit shown below.

And, that's the story
on DC gain.
How
Quickly Does a Response Die Out?
How quickly a system response is always an issue in control systems.
Often the control problem is to speed up the response of a system to get
it within some sort of specification. In continuous systems rise
time and settling time are measures of response time. In sampled
systems it is best to start by determining how long it takes the system
to get within a certain percentage of the final response (settling time)
but by measuring that as a number of sample periods. In ordere to
get a handle on response time, we will need to examine the response of
some typical, low order systems.
First Order Step Response
We will assume that we have a first order system with a step input.
-
The transfer function
of the system is G[z] = G/(z - a)
-
That means that the DC
gain of the system is G/(1 - a)
-
The transform of the step
input is z/(z - 1)
-
The difference equation
satisfied by the system is:
Now, to compute the response
of the system, we can use Z-transform methods.
-
The output transform is
the produce of the input transform and the transfer function.
-
Output transform = Y[z]
= zG[z]/(z - 1)
-
Y[z] = zG/[(z - a)(z
- 1)]
-
If we do a partial fraction
expansion on this we have:
-
Y[z]/z = A/(z - a)
+ B/(z - 1)
-
We do Y[z]/z to get a
standard form later.
-
A = -G/(1 - a)
-
B = G/(1 - a)
-
And, the output sequence
is:
-
Y[z] = G/[(1 - a)(z
- 1)] - G/[(1 - a)(z
- a)]
-
yk =
G/(1 - a)
- (ak)[G/(1
- a)]
-
So, the response will
asymptotically approach the steady state value of G/(1 - a)
(which is the DC gain multiplied by the input, 1.0)
-
The distance from the
steady state value decreases as (ak)[G/(1
- a)].
The (ak)
factor is like a deacying exponential in a continuous system - and when
you graph it, it looks like samples taken from a decaying exponential.
Consider this:
-
(ak)
<=> (e-kT/t)
=(e-T/t)k
-
So, we can say: a
= e-T/t
-
or, ln(a)
= -T/t
-
or, and equivalent time
constant in this system is:
-
t
= -T/ln(a)
(And, remember a
is less than one, so the logarithm is negative.)
-
And, this equivalent time
constant is peculiar because it changes if you change the sample period,
T. If you sample faster, the system responds faster. That's
because we assumed that a
was constant. If you have a first order continuous system, and you
change the sampling period, a
would change - if you are driving the system with a zero order hold signal.
So, be very careful applying this concept.
-
One question that arises
is how long will it take for the response to die out to within a certain
percentage of the final value. We can do that calculation.
-
Basically, you are asking
"When does (ak)
become equal to FractionalValue?"
-
(ak)
= FractionalValue
-
kln(a)
= ln(FractionalValue)
-
k = ln(FractionalValue)/ln(a)
-
And, remember that both
the FractionalValue and a
are numbers less than 1.0 so both ln() values are negative.
Example:
You want to design a system that settles out to within 5% in five sample
periods. What is the value of a?
To solve for the value of, use k = 5, and FractionalValue = 5%. Then
we have.
-
k = ln(FractionalValue)/ln(a),
or
-
ln(a)
= ln(FractionalValue)/k
-
a
= FractionalValue1/k
-
a
= .051/5 = 0.549
What
if a
is negative?
If a
is negative, the same argument holds, but the amount of decay each sample
period is given by |a
|. We need to adjust our result to:
-
k = ln(FractionalValue)/ln(|a|)
Now, the same question can be posed for a system with two (complex?) poles.
How can we estimate the time it takes a second order sampled system to
get within some given fractional value and stay there.
We assume that the the system will have a transfer function with a denominator
of z2 + a z+ b.
-
We know that a quadratic
factor like this will contribute two terms to the response.
-
C1z1k+
C2z2k
-
Here, z1
and z1 are the roots of the quadratic polynomial in z
(above) and are given by:
-
z1 =
(b
+ jd)
= Aejf
-
z2 =
(b
- jd)
= Ae-jf
-
Here, the coefficients
in the quadratic are:
-
a = 2b
and b = b2
+ d2
= |A|2
And, the response, is
going to have two terms.
C1Akejfk+
C2Ake-jfk
We can bound the response
(taking advantage of the fact that C1
= C1*, so |C1|
= |C2|).
C1Akejfk+
C2Ake-jfk
< 2|C1||A|k
And this will decay
to some fractional value when:
|A|k
= FractionalValue
or when:
kln(|A|) = ln(FractionalValue)
or when:
k = [FractionalValue]/ln(|A|)
Interpreting
This Result
The result is really the same for both cases. We can rephrase the
result in this manner.
-
The amount of decay in
a single sample period is the distance of the pole from the origin of the
z-plane.
-
For a single real pole,
the distance from the origin is |a|
and that is how much the response due to that pole decays in magnitude
each sample period.
-
For complex poles, the
distance from the origin is SQRT(b2
+ d2)=
A. (Remember b
and d
are the real and the imaginary parts of the pole.)