plotting an exponential will a matrix over time

3 vues (au cours des 30 derniers jours)
IP KWAN SO
IP KWAN SO le 13 Avr 2019
Modifié(e) : David Wilson le 18 Avr 2019
Hi guys, i want to plot Y respect to time in 40 seconds. AF is a 4x4 matrix,
t= [0:2:40];
iden= eye(4);
AF= [ 0 1 0 0; 0.00010714 0.00275 10.049 0.98385; 0 0 0 1; -7.6531e-05 -0.0019643 -0.17761 -0.70275];
meme=iden*AF;
figure(1)
Y = exp(AF.*meme);
plot(t,Y);
It results in vector must be in the same length, i do not know how to fix it.
  3 commentaires
IP KWAN SO
IP KWAN SO le 13 Avr 2019
Sorry i have typing error,
i want to plot Y= exp(AF.*t) overtime in 40 seconds.
Vineeth Nair
Vineeth Nair le 18 Avr 2019
The matrix dimensions must agree before multiplication can happen. Hence the above expression Y= exp(AF.*t) is incorrect.
To read more about elementwise multiplication please visty this link https://in.mathworks.com/help/matlab/ref/times.html

Connectez-vous pour commenter.

Réponses (1)

David Wilson
David Wilson le 18 Avr 2019
Modifié(e) : David Wilson le 18 Avr 2019
OK, your question is a bit vauge, and there are missing bits, i.e. the start point for y.
I'm assuming you are trying to solve a control problem. As mentioned above, you need to carefully look at dimensions, and I think you want the matrix exponental function, expm, (don't forget the "m").
I started my simulation below at some random point.
t= [0:2:40]; % time vector
AF= [ 0 1 0 0;
0.00010714 0.00275 10.049 0.98385;
0 0 0 1;
-7.6531e-05 -0.0019643 -0.17761 -0.70275];
Y = randn(1,4); % start position (who knows??)
for i=2:length(t)
Y(i,:) = expm(AF*t(i))*Y(i-1,:)';
end
plot(t,Y);
Of course if you have the control toolbox, there are many better ways to do this, e.g.
>> help lti/initial
or,
G = ss(AF, zeros(4,1), eye(4,4), 0)
Y0 = randn(1,4); % another random start poit
[Y,t] = initial(G,Y0,t) % simulate the free response

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by