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.

Réponses (1)

thoughtGarden
thoughtGarden le 20 Sep 2019
Modifié(e) : thoughtGarden le 20 Sep 2019

0 votes

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 commentaires

Chokri Sendi
Chokri Sendi le 20 Sep 2019
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 le 20 Sep 2019
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 le 24 Sep 2019
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 le 24 Sep 2019
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

Connectez-vous pour commenter.

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by