www.gusucode.com > ​《模糊逻辑工具箱新》(Fuzzy Logic Toolbox Add-On)程序源码 > phase_portrait.m

    % 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')