Sign in

Not a member? | Forgot your Password?

Search compdsp

Search tips

Free PDF Downloads

A Quadrature Signals Tutorial: Complex, But Not Complicated

Understanding the 'Phasing Method' of Single Sideband Demodulation

Complex Digital Signal Processing in Telecommunications

Introduction to Sound Processing

C++ Tutorial

Introduction of C Programming for DSP Applications

Fixed-Point Arithmetic: An Introduction

Cascaded Integrator-Comb (CIC) Filter Introduction

Discussion Groups

FIR Filter Design Software

Free Online Books

See Also

Embedded SystemsFPGA

Discussion Groups | Comp.DSP | Calculate Settling Time of a Transfer Function

There are 9 messages in this thread.

You are currently looking at messages 1 to .


Is this discussion worth a thumbs up?

0

Calculate Settling Time of a Transfer Function - John N. - 2010-08-27 18:35:00

I was wondering if anyone could explain the best method is to
calculate the settling time of a continuous transfer function when
given a unit step input?

The settling time, or time to steady-state, can be approximated, I
think (what I've tried to outline below), but I would like to know how
to calculate it exactly for any transfer function (1st order, 2nd
order, 3rd order, etc.).

Below is just some approximation testing, the above question is what
I'm interested in, below I'm just going through a little work to prove
the approximations are not what Matlab is returning for the settling
time of a step response. I want to be able to calculate the settling
time that Matlab returns for a step response (assuming that is the
correct settling time value). I have not been able to find a source or
examples that discuss the best method to perform this calculation. I
have been using Matlab as my comparison test. If this is not the best,
please let me know... it just happens to be what I have access to.

In reading through "Digital Control of Dynamic Systems" by Franklin,
they present the "qualitative guide" formula for the settling time as:

4.6
----
zeta*omegaN

Which equals:

4.6
----
sigma

Where the equation characterizes, "the transient response of a system
having no finite zeros and two complex poles with undamped natural
frequency omegaN, damping ratio zeta, and negative real part, sigma.
In analysis and design, it is used to obtain a rough estimate of
settling time for just about any system."

Also, when I look at the Wikipedia entry for settling time (http://
en.wikipedia.org/wiki/Settling_time), they present, "Settling time
depends on the system response and time constant. The settling time
for a 2nd order, underdamped system responding to a step response can
be approximated if the damping ratio zeta << 1," which yields the
equation:

   ln(tolerance fraction
- ---------------------------------------------
   damping ratio * natural frequency

Which equals, for a settling time to within 2%:

    ln(0.02)
- ------------
   zeta*omegaN

I tried these two approximation methods in Matlab with the transfer
function:

2s + 4
-----------------
s^2 + 3s + 7

Matlab:
>> g = tf([2 4],[1 3 7]);
>> stepinfo(g)
ans 
        RiseTime: 0.2967
    SettlingTime: 2.7446
     SettlingMin: 0.5447
     SettlingMax: 0.7566
       Overshoot: 32.4125
      Undershoot: 0
            Peak: 0.7566
        PeakTime: 0.8477

A settling time of 2.7446

The approximation from Franklin provides:

Poles = -1.5 +- 2.1794i
SettlingTime = 4.6 / 1.5 = 3.0667

Or, from Wikipedia:

SettlingTime = log(0.02) / 1.5 = 2.6080

These approximations are close, but I would like to be able to
calculate the actual settling time, using whatever calculation may be
required. If anyone could provide me some insight, I would be very
appreciative.

Thanks,
John N.


Re: Calculate Settling Time of a Transfer Function - Tim Wescott - 2010-08-27 19:05:00

On 08/27/2010 03:35 PM, John N. wrote:
> I was wondering if anyone could explain the best method is to
> calculate the settling time of a continuous transfer function when
> given a unit step input?
>
> The settling time, or time to steady-state, can be approximated, I
> think (what I've tried to outline below), but I would like to know how
> to calculate it exactly for any transfer function (1st order, 2nd
> order, 3rd order, etc.).
>
> Below is just some approximation testing, the above question is what
> I'm interested in, below I'm just going through a little work to prove
> the approximations are not what Matlab is returning for the settling
> time of a step response. I want to be able to calculate the settling
> time that Matlab returns for a step response (assuming that is the

  -- snip --

> These approximations are close, but I would like to be able to
> calculate the actual settling time, using whatever calculation may be
> required. If anyone could provide me some insight, I would be very
> appreciative.

For a discrete transfer function it's easy enough to just run the filter 
with a step input and check.  It's not that much harder to do so with a 
continuous-time transfer function.

To my knowledge there aren't any universal closed-form solutions.

-- 

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" was written for you.
See details at http://www.wescottdesign.com/actfes/actfes.html


Re: Calculate Settling Time of a Transfer Function - Steve Pope - 2010-08-27 20:36:00

John N. <o...@gmail.com> wrote:

>I was wondering if anyone could explain the best method is to
>calculate the settling time of a continuous transfer function when
>given a unit step input?
>[snip]
>These approximations are close, but I would like to be able to
>calculate the actual settling time
>[snip]

It would be very helpful to know which of the following you
are looking for:

An analytical expression for settling time (given some defined
class of transfer functions);

An approximation to the settling time (given some defined
class of transfer functions);

or a methodology for measuring the settling time, given a
waveform.

I read your post twice and could not discern which of these
you are looking for, but that could just be poor reading
comprehension on my part.

Steve


Re: Calculate Settling Time of a Transfer Function - Vladimir Vassilevsky - 2010-08-27 20:54:00

John N. wrote:

> I was wondering if anyone could explain the best method is to
> calculate the settling time of a continuous transfer function when
> given a unit step input?
> The settling time, or time to steady-state, can be approximated, I
> think (what I've tried to outline below), but I would like to know how
> to calculate it exactly for any transfer function (1st order, 2nd
> order, 3rd order, etc.).


You have to:

1) get the time domain step response function in the closed form, which 
is going to be a transcendental function.
2) solve the transcendental equation for the settling time.

There could be closed form solutions for some special cases however 
neither 1) nor 2) is doable in the general case.

VLV


Re: Calculate Settling Time of a Transfer Function - HardySpicer - 2010-08-27 21:04:00



Re: Calculate Settling Time of a Transfer Function - Fred Marshall - 2010-08-29 18:21:00

John N. wrote:
> I was wondering if anyone could explain the best method is to
> calculate the settling time of a continuous transfer function when
> given a unit step input?
> 
> The settling time, or time to steady-state, can be approximated, I
> think (what I've tried to outline below), but I would like to know how
> to calculate it exactly for any transfer function (1st order, 2nd
> order, 3rd order, etc.).
> 
> Below is just some approximation testing, the above question is what
> I'm interested in, below I'm just going through a little work to prove
> the approximations are not what Matlab is returning for the settling
> time of a step response. I want to be able to calculate the settling
> time that Matlab returns for a step response (assuming that is the
> correct settling time value). I have not been able to find a source or
> examples that discuss the best method to perform this calculation. I
> have been using Matlab as my comparison test. If this is not the best,
> please let me know... it just happens to be what I have access to.
> 
> In reading through "Digital Control of Dynamic Systems" by Franklin,
> they present the "qualitative guide" formula for the settling time as:
> 
> 4.6
> ----
> zeta*omegaN
> 
> Which equals:
> 
> 4.6
> ----
> sigma
> 
> Where the equation characterizes, "the transient response of a system
> having no finite zeros and two complex poles with undamped natural
> frequency omegaN, damping ratio zeta, and negative real part, sigma.
> In analysis and design, it is used to obtain a rough estimate of
> settling time for just about any system."
> 
> Also, when I look at the Wikipedia entry for settling time (http://
> en.wikipedia.org/wiki/Settling_time), they present, "Settling time
> depends on the system response and time constant. The settling time
> for a 2nd order, underdamped system responding to a step response can
> be approximated if the damping ratio zeta << 1," which yields the
> equation:
> 
>    ln(tolerance fraction
> - ---------------------------------------------
>    damping ratio * natural frequency
> 
> Which equals, for a settling time to within 2%:
> 
>     ln(0.02)
> - ------------
>    zeta*omegaN
> 
> I tried these two approximation methods in Matlab with the transfer
> function:
> 
> 2s + 4
> -----------------
> s^2 + 3s + 7
> 
> Matlab:
>>> g = tf([2 4],[1 3 7]);
>>> stepinfo(g)
> ans > 
>         RiseTime: 0.2967
>     SettlingTime: 2.7446
>      SettlingMin: 0.5447
>      SettlingMax: 0.7566
>        Overshoot: 32.4125
>       Undershoot: 0
>             Peak: 0.7566
>         PeakTime: 0.8477
> 
> A settling time of 2.7446
> 
> The approximation from Franklin provides:
> 
> Poles = -1.5 +- 2.1794i
> SettlingTime = 4.6 / 1.5 = 3.0667
> 
> Or, from Wikipedia:
> 
> SettlingTime = log(0.02) / 1.5 = 2.6080
> 
> These approximations are close, but I would like to be able to
> calculate the actual settling time, using whatever calculation may be
> required. If anyone could provide me some insight, I would be very
> appreciative.
> 
> Thanks,
> John N.

Compute the step response and apply your favorite definition of 
"settling time" to the result.  After all, the definition will have some 
impact on the result and will likely have some practical relevance.

How to compute the step response?
You said that you have a "continous transfer function" so I'll presume 
that it's the Laplace Transform version of the transfer function.
Multiply by 1/s to get the unit step response.
Inverse transform to get the time response.

Fred


Re: Calculate Settling Time of a Transfer Function - Rune Allnor - 2010-08-30 00:08:00



Re: Calculate Settling Time of a Transfer Function - John N. - 2010-08-31 12:23:00



Re: Calculate Settling Time of a Transfer Function - bidyut_c - 2011-02-20 08:25:00