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

Introduction of C Programming for DSP Applications

There are **9** messages in this thread.

You are currently looking at messages 1 to .

**Is this discussion worth a thumbs up?**

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

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

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

```
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
```

```
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
```