资源简介
MATLAB上的仿真程序
用于PID的仿真。。。。。
代码片段和文件信息
%Fuzzy Controller
clear all;
close all;
a=newfis(‘fuzzf‘);
f1=1;
a=addvar(a‘input‘‘e‘[-3*f13*f1]); %Parameter e
a=addmf(a‘input‘1‘NB‘‘zmf‘[-3*f1-1*f1]);
a=addmf(a‘input‘1‘NM‘‘trimf‘[-3*f1-2*f10]);
a=addmf(a‘input‘1‘NS‘‘trimf‘[-3*f1-1*f11*f1]);
a=addmf(a‘input‘1‘Z‘‘trimf‘[-2*f102*f1]);
a=addmf(a‘input‘1‘PS‘‘trimf‘[-1*f11*f13*f1]);
a=addmf(a‘input‘1‘PM‘‘trimf‘[02*f13*f1]);
a=addmf(a‘input‘1‘PB‘‘smf‘[1*f13*f1]);
f2=1;
a=addvar(a‘input‘‘ec‘[-3*f23*f2]); %Parameter ec
a=addmf(a‘input‘2‘NB‘‘zmf‘[-3*f2-1*f2]);
a=addmf(a‘input‘2‘NM‘‘trimf‘[-3*f2-2*f20]);
a=addmf(a‘input‘2‘NS‘‘trimf‘[-3*f2-1*f21*f2]);
a=addmf(a‘input‘2‘Z‘‘trimf‘[-2*f202*f2]);
a=addmf(a‘input‘2‘PS‘‘trimf‘[-1*f21*f23*f2]);
a=addmf(a‘input‘2‘PM‘‘trimf‘[02*f23*f2]);
a=addmf(a‘input‘2‘PB‘‘smf‘[1*f23*f2]);
f3=1.5;
a=addvar(a‘output‘‘u‘[-3*f33*f3]); %Parameter u
a=addmf(a‘output‘1‘NB‘‘zmf‘[-3*f3-1*f3]);
a=addmf(a‘output‘1‘NM‘‘trimf‘[-3*f3-2*f30]);
a=addmf(a‘output‘1‘NS‘‘trimf‘[-3*f3-1*f31*f3]);
a=addmf(a‘output‘1‘Z‘‘trimf‘[-2*f302*f3]);
a=addmf(a‘output‘1‘PS‘‘trimf‘[-1*f31*f33*f3]);
a=addmf(a‘output‘1‘PM‘‘trimf‘[02*f33*f3]);
a=addmf(a‘output‘1‘PB‘‘smf‘[1*f33*f3]);
rulelist=[1 1 1 1 1; %Edit rule base
1 2 1 1 1;
1 3 2 1 1;
1 4 2 1 1;
1 5 3 1 1;
1 6 3 1 1;
1 7 4 1 1;
2 1 1 1 1;
2 2 2 1 1;
评论
共有 条评论