I'm supposed to plot (x1 vs x2) for a system. (Dynamics and Controls)

3 次查看(过去 30 天)
I have a system in state space model x'=Ax where A = [0 1; -14 -4]. The system quation is x(t) = e^At*x(0) where given x(0) is [-0.2; 0.2] Now I'm supposed to solve for x(t) which gives a matrix [x1(t);x2(t)] and plot the graph of the elements x1(t) vs x2(t) which is also known as Phase portrait. I believe its a simple code but I'm going wrong somewhere. Can you help me where and what's wrong? Any help is appreciated. Thank you!
A=[0 1;-14 -4];
t=linspace(0,10,300);
x=zeros(2,300);
matA = zeros(2,2,300);
x0 = [-0.2;0.2];
for k=1:300, matA(:,k) = expm(A*t(k)); x(:,k) = matA(:,k)*x0;end;
plot(x(:,1),x(:,2))

采纳的回答

Star Strider
Star Strider 2014-11-13
You’re almost there. You did everything correctly, but you need a ‘C’ output matrix (part of the ‘ABCD’ matrices in a state space system). I added one I considered appropriate to your problem, and since this creates ‘x’ as a (2x300) array, I changed the plot references to reflect that:
A=[0 1;-14 -4];
t=linspace(0,10,300);
x=zeros(2,300);
matA = zeros(2,2,300);
x0 = [-0.2;0.2];
C = [1 0; 0 1];
for k=1:300,
matA(:,:,k) = expm(A*t(k));
x(:,k) = C*matA(:,:,k)*x0;
end
figure(1)
plot(x(1,:),x(2,:))
grid
The plot looks as a phase space plot should!
  4 个评论
PVR
PVR 2014-11-13
Yeah, no wonder the command window showed errors related to dimensions. It's all good now. I got exactly what I want. Thanks!
Star Strider
Star Strider 2014-11-13
My pleasure!
Have fun in your controls course, and take as many others as you can!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with Control System Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by