MATLAB: Closedloop with delay and difference between Inputdelay and Outputdelay

Control System Toolbox

Hi all!!
Well, My problem is that I can't find the transfer function of closed loop model with delay.
I use
s=tf('s');
Gp = 250/(s*(1+s/10));
Gp.OutputDelay = 0.05;
feedback(Gp,tf([1],[1]))
and I receive this error
??? Error using ==> lti.feedback at 127 System interconnection gives rise to internal delays and can only be represented in state space. Convert at least one of the models to state space using the "ss" command.
And I don't want to use my model in state space. And i don't wanna use any approximation (pade…), too. Any idea?
I have one more question. Which is the difference between "Gp.InputDelay" and "Gp.OutputDelay" ?

Best Answer

You have no choice but to use state-space:
>> feedback(ss(Gp),tf([1],[1]))
a =
x1 x2
x1 -10 -2500
x2 1 0
b =
u1
x1 64
x2 0
c =
x1 x2
y1 0 39.06
d =
u1
y1 0
(values computed with all internal delays set to zero)
Internal delays: 0.05
Continuous-time model.
Note that in R2011a, it works without converting to state-space:
>> feedback(Gp,tf([1],[1]))
a =
x1 x2
x1 -10 -2500
x2 1 0
b =
u1
x1 64
x2 0
c =
x1 x2
y1 0 39.06
d =
u1
y1 0
(values computed with all internal delays set to zero)
Internal delays (seconds): 0.05
Continuous-time model.
HTH,
Arnaud