How does state space form include input delay in MATLAB?
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I got this code from 'Time Delays in Linear System' MATLAB help.
A=-2; B=3; C=[1;-1];D=0;
G = ss(A,B,C,D,'InputDelay',1.5)
Now I want to implement this in another model where matrix are-
A=[1 2 3;4 3 2;1 2 3]; C=[0 3 0];
D=[0 -1];
B=[3;5;7];
H = ss(A,B,C,D,'InputDelay',[1.5;2.1;3.2])
But after running the above code, we got an error. "The values of the "a" and "b" properties must be matrices with the same number of rows.".
Please help me in this regard. Thank you.
3 Commenti
Risposta accettata
Sam Chak
il 9 Apr 2022
Modificato: Sam Chak
il 9 Apr 2022
If you look at the matrices for the desired state-space system
A =
1 2 3
4 3 2
1 2 3
B =
3
5
7
C =
0 3 0
D =
0 -1
you'll see that the system matrices C(1x3), B(3x1) and D(1x2) are definitely incompatible.
The dimension of D should be (1x1) because the dimension of is .
Another possibility is that if the dimension of D is (1x2), then it implies there are two inputs and the dimension of B must be (3x2).
In general, it should satisfy this:
when you type this out:
[A B; C D]
2 Commenti
Sam Chak
il 10 Apr 2022
Modificato: Sam Chak
il 10 Apr 2022
Hi @Sol Elec
The error stemmed from a set of 3 tau's for a single input, u1:
'InputDelay', [1.5; 2.1; 3.2]
If there is only 1 tau in the input u1, then your state-space model looks like this:
A = [1 2 3; 4 3 2; 1 2 3];
B = [3; 5; 7];
C = [0 3 0];
D = [-1];
sys = ss(A, B, C, D, 'InputDelay', 1.5)
sys =
A =
x1 x2 x3
x1 1 2 3
x2 4 3 2
x3 1 2 3
B =
u1
x1 3
x2 5
x3 7
C =
x1 x2 x3
y1 0 3 0
D =
u1
y1 -1
Input delays (seconds): 1.5
Continuous-time state-space model.
Please mathematically show how your time-delay LTI system looks like.
In transfer function form of the time-delayed SISO system looks like this:
[num, den] = ss2tf(A, B, C, D);
G = tf(num, den, 'InputDelay', 1.5)
G =
-s^3 + 22 s^2 + 18 s + 120
exp(-1.5*s) * ------------------------------------
s^3 - 7 s^2 - 7.47e-15 s + 4.174e-15
Continuous-time transfer function.
If you confirm that there are 3 inputs with time delays, then the sample code is given by:
A = [1 2 3; 4 3 2; 1 2 3];
B = eye(3);
C = [0 3 0];
D = [0 0 0];
sys = ss(A, B, C, D, 'InputDelay', [1.5; 2.1; 3.2])
sys =
A =
x1 x2 x3
x1 1 2 3
x2 4 3 2
x3 1 2 3
B =
u1 u2 u3
x1 1 0 0
x2 0 1 0
x3 0 0 1
C =
x1 x2 x3
y1 0 3 0
D =
u1 u2 u3
y1 0 0 0
Input delays (seconds): 1.5 2.1 3.2
Continuous-time state-space model.
Hope this clears up your confusion.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Dynamic System Models in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!