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?

 Réponse acceptée

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 commentaire

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

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by