Finding the point of inflection on a curve

15 ビュー (過去 30 日間)
Wern-Juin Choy
Wern-Juin Choy 2012 年 1 月 2 日
回答済み: Osita Onyejekwe 2016 年 10 月 31 日
Hi everyone, I have a question.
Is there any code that allows one to find the point of inflection on a step response curve of a transfer function? An example is given below.
Ts = 0.0005;
%Continuous system
Ps = tf(2,[1,12,20.02]);
Pz = c2d(Ps,Ts,'zoh');
%response
figure(1)
hold on
step(Pz)
hold off

採用された回答

Teja Muppirala
Teja Muppirala 2012 年 1 月 4 日
You need to find where the 2nd derivative is zero. There are many different ways to approach this. This is one possible way:
Ts = 0.0005;
%Continuous system
Ps = tf(2,[1,12,20.02]);
Pz = c2d(Ps,Ts,'zoh');
%response
[y,t] = step(Pz);
plot(t,y);
hold on;
% Estimate the 2nd deriv. by finite differences
ypp = diff(y,2);
% Find the root using FZERO
t_infl = fzero(@(T) interp1(t(2:end-1),ypp,T,'linear','extrap'),0)
y_infl = interp1(t,y,t_infl,'linear')
plot(t_infl,y_infl,'ro');
Another way would be to find the roots of the step response of
tf([2 0 0],[1,12,20.02]);

その他の回答 (1 件)

Osita Onyejekwe
Osita Onyejekwe 2016 年 10 月 31 日
how do i do it for this?
x = 1:500; X = x; J = 1; Fs = 499; N = J*Fs; t = 0: 1/Fs : J; Fn = 3; % this control the number of cycles/periods %deltax = 0.0020; deltax = 1;
y_sine_25HZ = sin(Fn*2*pi*t); y = y_sine_25HZ ;

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by