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일

0 개 추천

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

Chokri Sendi
Chokri Sendi 2019년 9월 20일
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
thoughtGarden
thoughtGarden 2019년 9월 20일
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
thoughtGarden
thoughtGarden 2019년 9월 24일
If you found this answer to be correct, please accept it. Otherwise, please add aditional comments so that it may be improved.
Chokri Sendi
Chokri Sendi 2019년 9월 24일
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에 대해 자세히 알아보기

태그

질문:

2019년 9월 20일

댓글:

2019년 9월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by