- RiseTime — Time it takes for the response to rise from 10% to 90% of the steady-state response.
Accurate rise time with stepinfo()
72 views (last 30 days)
Show older comments
I have the following code:
g = tf([0 0 5000],[1 200 5000]);
step(g); grid on;
S = stepinfo(step(g),'RiseTimeLimits',[0 0.632])
the figure producued by step(g) is here:
from looking at this, it is obvious that the rise time to 63.2% of the steady state output is approximately 0.04. However, the stepinfo() command says the rise time is
RiseTime: 74.6661
This number makes no sense at all. Is there something I am missing? I have used stepinfo() before and got accurate results but this has me stumped.
0 Comments
Accepted Answer
Star Strider
on 9 Dec 2020
From the documentation for stepinfo:
If you want the time constant τ use step with this calling syntax:
then interpolate (if necessary) to get the time constant:
g = tf([0 0 5000],[1 200 5000]);
[y,tOut] = step(g);
tau = interp1(y, tOut, exp(-0.5))
producing:
tau =
0.038246779260296
.
4 Comments
Star Strider
on 10 Dec 2020
Only in this situation. I do not intend it to generalise to all such situations.
‘Note that this works because the system is overdamped (or appears to be, I didn’t do the maths to analyse that in detail). If it had overshoot, it would be necessary to find the time of the (first) peak, and then use only the time and amplitude values up to that point to interpolate the time constant.’
More Answers (1)
Paul
on 9 Dec 2020
The first input to stepinfo is incorrect. It should just be g
>> S = stepinfo(g,'RiseTimeLimits',[0 0.632])
S =
struct with fields:
RiseTime: 4.0539e-02
SettlingTime: 1.3999e-01
SettlingMin: 6.3697e-01
SettlingMax: 9.9839e-01
Overshoot: 0
Undershoot: 0
Peak: 9.9839e-01
PeakTime: 2.2606e-01
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!