% This script prints Phase Portrait for close loop system in range X1,X2=[-10:10]
%Plant=txt2fis('Plant.txt');
%Controller=txt2fis('Controller.txt');
Plant=readfis('Plant.fis');
Controller=readfis('Controller.fis');
Accuracy=.5;
tend=.6;
Limit=10;
X1=-Limit:Accuracy:Limit;
X2=X1;
figure,hold on
X0=[0;0];
for j=1:length(X2)
if (j==1 || j==length(X2))
index=1:length(X1);
else
index=[1,length(X1)];
end
for i=index
X0=[X1(i),X2(j)];
[t,dX]=ode45(@fuzeval,[0,tend],X0,[],Plant,Controller);
plot(dX(:,1),dX(:,2))
end
end
hold on,plot([-Limit-1,Limit+1],[0,0],'k-.',[0,0],[-Limit-1,Limit+1],'k-.')
axis([min(X1)-1 max(X1)+1 min(X2)-1 max(X2)+1]);
xlabel('X1'),ylabel('X2')
title('Phase Portrait')