plotting an exponential will a matrix over time
9 views (last 30 days)
Hi guys, i want to plot Y respect to time in 40 seconds. AF is a 4x4 matrix,
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 = exp(AF.*meme);
It results in vector must be in the same length, i do not know how to fix it.
David Wilson on 18 Apr 2019
Edited: David Wilson on 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??)
Y(i,:) = expm(AF*t(i))*Y(i-1,:)';
Of course if you have the control toolbox, there are many better ways to do this, e.g.
>> help lti/initial
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