>Thank you all for the responses. It seems that there is a consensus
>that what I was asking (a method for calculating the settling time for
>a general transfer function) does not exist.
>
>This brings up another question: How is Matlab getting their value for
>the settling time? Are they just doing an approximation of their own
>that is less general than the approximations I provided? Might their
>approximation be using knowledge of the steady-state value of the
>transfer function's step response and from that calculating a value of
>the settling time somehow from the step response values, to within a
>certain percentage specified by the user (default is 2%)?
>
>On Aug 27, 6:05=A0pm, Tim Wescott <t...@seemywebsite.com> wrote:
>> For a discrete transfer function it's easy enough to just run the
filter
>> with a step input and check. =A0It'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.
>
>Interesting. I was hoping there would be a general equation that could
>be used to display the settling time of a transfer function's unit
>step response without having to look a step response plot. Much in the
>way that Matlab calculates and displays the value for settling time
>using the function "stepdata(transferFunctionName)."
>
>On Aug 27, 8:04=A0pm, HardySpicer <gyansor...@gmail.com> wrote:
>> Doesn't exist except for 2nd order cases.
>>
>> Hardy
>
>There is not even a way to calculate it exactly for a first order
>transfer function?
>
>On Aug 27, 7:36=A0pm, spop...@speedymail.org (Steve Pope) wrote:
>> 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
>
>Steve,
>
>I was looking for a general equation, or method, to exactly calculate
>the settling time to within a certain percentage of the steady-state
>value for the step response, without having to look at the step
>response. I was hoping this could somehow be derived from the
>continuous transfer function, much in the same way that the steady-
>state value of a unit step response can be found with just the
>transfer function.
>
>I am interested in a method which would allow me to find the settling
>time for a "general" transfer function (might be 1st order, might be
>2nd order, might be 3rd order).
>
>On Aug 29, 5:21=A0pm, Fred Marshall <fmarshall_xremove_the...@xacm.org>
>wrote:
>> Compute the step response and apply your favorite definition of
>> "settling time" to the result. =A0After all, the definition will have
som=
>e
>> impact on the result and will likely have some practical relevance.
>>
>> Fred
>
>Fred,
>
>Do you have a "favorite definition of 'settling time'," that you are
>partial to? Is there an approximation that might be good for a general
>transfer function? The problem is that I might want to change the
>transfer function dimensions for testing or practice, but would still
>like to be able to calculate the settling time, not just for "special
>cases."
>
>Are the examples I provided pretty standard? The Franklin text
>indicates that, "In analysis and design, it is used to obtain a rough
>estimate of settling time for just about any system." Does that mean
>that this is a pretty standard way of estimating the settling time of
>a step response, or just their "standard" way of doing it? That is,
>the equation that uses:
>
>4.6
>----
>maxRealPoleValue
>
>> 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.
>
>I am computing the step response by converting to a discrete transfer
>function (Matlab's c2d) and then running the result through Matlab's
>filter, which, from what I gather is the way that Matlab might be
>doing it.
>
>I was hoping there was a way to calculate the settling time directly
>from the continuous transfer function, given that other information,
>like the steady-state can be found just by looking at the continuous
>transfer function and doing a simple calculation.
>
>On Aug 29, 11:08=A0pm, Rune Allnor <all...@tele.ntnu.no> wrote:
>> Lots of very smart people have worked for ages on most problems.
>> The fact that you either
>>
>> 1) Don't find examples / methods at all for what you want
>> 2) Only find 'qualitative' guides
>>
>> go a long way as a hint: What you want is not possible.
>> If it were, it would have been all over the textbooks aeons ago.
>>
>> Rune
>
>Rune,
>
>I know and definitely much smarter than me... However, I asked the
>question because most of the references I had seen (textbooks, etc.)
>blindly say something to the extent of:
>
>"To calculate the settling time, open Matlab, and do the following:
>
>g =3D tf([num],[den]);
>stepinfo(g)
>
>From this we can see the settling time of the transfer function's step
>response is: someNumber sec."
>
>Therefore, I asked the question because evidently Matlab is using a
>different approximation than the simple equations I found to generate
>their value of the settling time. I can't find anyone who explains
>what algorithm or analysis they are using to get that result. I
>thought that they might be using an exact calculation, since the
>settling time is returned for any size of transfer function (a general
>case equation or algorithm). I suppose that might have been naive on
>my part, but sometimes texts glaze over seemingly simple details or
>rigorous calculations when there is an easier, quicker way to type it.
>I tried looking through Matlab's documentation and didn't find any
>explanation, thus I arrived here to pose the question.
>
>Thank you all for your responses.
>John N.
>
>
I suddenly stumbed on this discussion held long back on the settling time
computation. John's quest for a computational solution was negated by all
replies and hence he wondered how MATLAB is then computing it. Well, I have
a limited knowledge on this topic and hence I may like to add a few of mine
into this discussion. It is though after a long gap from the date of
discussion and so I wonder if anybody would go through it ever, I still
like to add a few lines.
First, the solution or computation depends on the range of zeta. The curve
drawn for the settling time tolerance band (2% or 5%) vs different zeta
values shows discontinuity, that can be checked from standard Control
System texts. Within a known range of zeta the calculation is done by
equating:
[sqrt(1-zeta*zeta)]*exp(-zeta*OmegaN*Settling Time) = 0.05 or 0.02
One can recognize the lhs expression as the part of the transient portion
of the time response of second order system when the sine function is
ignored, because this damping factor is responsible for the settling time.
Now, if we consider very low value of zeta, then [sqrt(1-zeta*zeta)] can be
ignored. This gives
Settling Time = -ln(0.02)/[zeta*OmegaN] or -ln(0.05)/[zeta*OmegaN]
Since ln(0.02) = -2.996 and ln(0.05) = -3.912, we consider approximate
value of settling time as 3/sigma or 4/sigma.
In MATLAB, one can get the exact values. For this one can write a small
script analysing the response curve. Check from the farther end (the other
end of axis) when the value of any response point just crosses the
tolerance band. The time coordinate at this point will give the settling
time. You can get the script from the text book on Modern Control System by
Katsuhiko Ogata.
Hope this gives you some answer, John, if you are still there.