필터 지우기
필터 지우기

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

조회 수: 4 (최근 30일)
PVR
PVR 2014년 11월 12일
댓글: Star Strider 2014년 11월 13일
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