plotting an exponential will a matrix over time

8 visualizzazioni (ultimi 30 giorni)
IP KWAN SO
IP KWAN SO il 13 Apr 2019
Modificato: David Wilson il 18 Apr 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 Commenti
IP KWAN SO
IP KWAN SO il 13 Apr 2019
Sorry i have typing error,
i want to plot Y= exp(AF.*t) overtime in 40 seconds.
Vineeth Nair
Vineeth Nair il 18 Apr 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

Accedi per commentare.

Risposte (1)

David Wilson
David Wilson il 18 Apr 2019
Modificato: David Wilson il 18 Apr 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

Categorie

Scopri di più su Creating and Concatenating Matrices 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!

Translated by