How to Store Time constant from "damp"

When I use damp(sys) it spits out poles, damping, frequency and time constant. When looking up the help damp I only see ways to store the frequency, damping and poles. Is there a way to store the time constant too?

 Accepted Answer

The τ is relatively easy to calculate —
s = tf('s');
H = (s^2 - 2*s - 5) / (s^3 + 5*s^2 - 7*s - 20);
damp(H) % Output
Pole Damping Frequency Time Constant (rad/seconds) (seconds) -1.61e+00 1.00e+00 1.61e+00 6.23e-01 2.22e+00 -1.00e+00 2.22e+00 -4.51e-01 -5.61e+00 1.00e+00 5.61e+00 1.78e-01
[wn,zeta,p] = damp(H)
wn = 3×1
1.6063 2.2186 5.6123
zeta = 3×1
1 -1 1
p = 3×1
-1.6063 2.2186 -5.6123
tau = 1./(wn.*zeta) % Calculated
tau = 3×1
0.6226 -0.4507 0.1782
.

1 Comment

That is the time constant calculation in damp(), but it's only an approximation, and not the actual time constant for a pair of second order poles. In this example damp() is off by more than 0.1 seconds.
>> h = tf(1,[1 1.3 1]);
>> damp(h)
Pole Damping Frequency Time Constant
(rad/seconds) (seconds)
-6.50e-01 + 7.60e-01i 6.50e-01 1.00e+00 1.54e+00
-6.50e-01 - 7.60e-01i 6.50e-01 1.00e+00 1.54e+00
>> s=stepinfo(h,'RiseTimeThreshold',[0 0.63]);
>> s.RiseTime
ans =
1.6848

Sign in to comment.

More Answers (0)

Products

Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!