system with time delay

I would like to know if there is a command in Matlab to extract matrices of system with time delay, I have a nominal system :
x_dot = A(t)*x(t)+B(t)*u(t)
I would like to simulate the system with time delay t_x and t_u as :
x_dot = A(t)*x(t)+B(t)*u(t) + A_d*x(t-t_x)+B_d(t)*u(t-t_u)
then extract the matrices A_d(t), B_d(t) to use them to design a controller.
your help is appreciated.

回答(1 个)

thoughtGarden
thoughtGarden 2019-9-20
编辑:thoughtGarden 2019-9-20
This answer has been updated to better match the OP.
doc ss %search for "InternalDelay" and "OutputDelay"
% Define Delays
t_x = 0.005;
t_u = 0.001;
% Fill in your system matrix here
A = [1,0; 0, 1];
B = [0; 0.5];
C = [1, 0];
D = 0;
% Create the no delay system
sys =ss(A,B,C,D,'InputDelay',t_x,'OutputDelay',t_u);

4 个评论

Would you please elaborate more on : sys = sys *pade(delayTime,1)
also is the delayTime = 0.01; represent t_x the delay in x or t_u the delay in u.
Thank you
I just updated the answer showing more clearly the input and output delay. You might also be interested in https://www.mathworks.com/help/control/ug/time-delays-in-linear-systems.html
If you found this answer to be correct, please accept it. Otherwise, please add aditional comments so that it may be improved.
Thank you for your reply, I still dont see how I can use
" sys =ss(A,B,C,D,'InputDelay',t_x,'OutputDelay',t_u),
to write the system as:
x_dot = A(t)*x(t)+B(t)*u(t) + A_d*x(t-t_x)+B_d(t)*u(t-t_u)
in other word since A and B are known how I can find A_d and B_d from "sys" that I just created .
Thanks

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Time and Frequency Domain Analysis 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by