Transfer function with delay generates weird step response

1 次查看(过去 30 天)
Hi!
My step response plots have a weird shape as soon as I ad an input delay to the system. I cant figure out why. Depending on the delay it creates all kind of sharp edges.
Any suggestion?
PT1b = tf(10,[3 1],'inputdelay',0.8);
C = pid(0.1,0.1,0.1);
step(feedback(PT1b*C,1))

回答(1 个)

Benedikt
Benedikt 2022-6-2
ok, I figured it out. Its not a strange Matlab solver behaviour but it comes from the fact that the closed loop (feedback) actually is a N=2/D=2. This makes no sense in the real world since the controllers D-output goes to infinity for a step input. However it results is a state space model with a direct feet-thru.
PT1b = tf(10,[3 1],'inputdelay',0.5);
C = pid(0.1,0.1,0.1);
feedback(PT1b*C,1)
ans = A = x1 x2 x1 -0.5 -0.5 x2 0.5 0 B = u1 x1 0.75 x2 0 C = x1 x2 y1 0.1667 0.5 D = u1 y1 0.25 (values computed with all internal delays set to zero) Internal delays (seconds): 0.5 Continuous-time state-space model.
A solution for real world is to use a Tf on the D-term of the controller
PT1b = tf(10,[3 1],'inputdelay',0.5);
C = pid(0.1,0.1,0.1 ,0.2);
step(feedback(PT1b*C,1))

类别

Help CenterFile Exchange 中查找有关 Dynamic System Models 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by