⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fuzz_pid.m

📁 模糊控制器:利用matlab建立复杂的模糊规则。既可以编写程序实现
💻 M
字号:
a = newfis('fuzz_pid');

k1 = 1.0; 
k11 = 0.5;
a = addvar(a,'input','deta1',[-4*k1,4*k1]);
a = addmf(a,'input',1,'NVH','gaussmf',[k11,-4*k1]);
a = addmf(a,'input',1,'NH','gaussmf',[k11,-3*k1]);
a = addmf(a,'input',1,'NL','gaussmf',[k11,-2*k1]);
a = addmf(a,'input',1,'NVL','gaussmf',[k11,-1*k1]);
a = addmf(a,'input',1,'ZERO','gaussmf',[k11,0*k1]);
a = addmf(a,'input',1,'PVL','gaussmf',[k11,1*k1]);
a = addmf(a,'input',1,'PL','gaussmf',[k11,2*k1]);
a = addmf(a,'input',1,'PH','gaussmf',[k11,3*k1]);
a = addmf(a,'input',1,'PVH','gaussmf',[k11,4*k1]);

k2 = 1.0;
k21 = 0.5;
a = addvar(a,'input','deta2',[-4*k2,4*k2]);
a = addmf(a,'input',2,'NVH','gaussmf',[k21,-4*k2]);
a = addmf(a,'input',2,'NH','gaussmf',[k21,-3*k2]);
a = addmf(a,'input',2,'NL','gaussmf',[k21,-2*k2]);
a = addmf(a,'input',2,'NVL','gaussmf',[k21,-1*k2]);
a = addmf(a,'input',2,'ZERO','gaussmf',[k21,0*k2]);
a = addmf(a,'input',2,'PVL','gaussmf',[k21,1*k2]);
a = addmf(a,'input',2,'PL','gaussmf',[k21,2*k2]);
a = addmf(a,'input',2,'PH','gaussmf',[k21,3*k2]);
a = addmf(a,'input',2,'PVH','gaussmf',[k21,4*k2]);

k3 = 1.0;
k31 = 0.05;
a = addvar(a,'output','lamed',[0*k3,1*k3]);
a = addmf(a,'output',1,'ZERO','gaussmf',[k31,0*k3]);
a = addmf(a,'output',1,'PVVL','gaussmf',[k31,0.125*k3]);
a = addmf(a,'output',1,'PVL','gaussmf',[k31,0.25*k3]);
a = addmf(a,'output',1,'PL','gaussmf',[k31,0.375*k3]);
a = addmf(a,'output',1,'PM','gaussmf',[k31,0.5*k3]);
a = addmf(a,'output',1,'PH','gaussmf',[k31,0.625*k3]);
a = addmf(a,'output',1,'PVH','gaussmf',[k31,0.75*k3]);
a = addmf(a,'output',1,'PVVH','gaussmf',[k31,0.875*k3]);
a = addmf(a,'output',1,'PMAX','gaussmf',[k31,1*k3]);

rulelist = [1 1 9 1 1;
            1 2 8 1 1;
            1 3 7 1 1;
            1 4 6 1 1;
            1 5 5 1 1;
            1 6 6 1 1;
            1 7 7 1 1;
            1 8 8 1 1;
            1 9 9 1 1;
            
            2 1 8 1 1;
            2 2 7 1 1;
            2 3 6 1 1;
            2 4 5 1 1;
            2 5 4 1 1;
            2 6 5 1 1;
            2 7 6 1 1;
            2 8 7 1 1;
            2 9 8 1 1;
            
            3 1 7 1 1;
            3 2 6 1 1;
            3 3 5 1 1;
            3 4 4 1 1;
            3 5 3 1 1;
            3 6 4 1 1;
            3 7 5 1 1;
            3 8 6 1 1;
            3 9 7 1 1;
            
            4 1 6 1 1;
            4 2 5 1 1            4 3 4 1 1;
            4 4 3 1 1;
            4 5 2 1 1;
            4 6 3 1 1;
            4 7 4 1 1;
            4 8 5 1 1;
            4 9 6 1 1;
            
            5 1 5 1 1;
            5 2 4 1 1;
            5 3 3 1 1;
            5 4 2 1 1;
            5 5 1 1 1;
            5 6 2 1 1;
            5 7 3 1 1;
            5 8 4 1 1;
            5 9 5 1 1;
            
            6 1 6 1 1;
            6 2 5 1 1;
            6 3 4 1 1;
            6 4 3 1 1;
            6 5 2 1 1;
            6 6 3 1 1;
            6 7 4 1 1;
            6 8 5 1 1;
            6 9 6 1 1;
            
            7 1 7 1 1;
            7 2 6 1 1;
            7 3 5 1 1;
            7 4 4 1 1;
            7 5 3 1 1;
            7 6 4 1 1;
            7 7 5 1 1;
            7 8 6 1 1;
            7 9 7 1 1;
            
            8 1 8 1 1;
            8 2 7 1 1;
            8 3 6 1 1;
            8 4 5 1 1;
            8 5 4 1 1;
            8 6 5 1 1;
            8 7 6 1 1;
            8 8 7 1 1;
            8 9 8 1 1;
            
            9 1 9 1 1;
            9 2 8 1 1;
            9 3 7 1 1;
            9 4 6 1 1;
            9 5 5 1 1;
            9 6 6 1 1;
            9 7 7 1 1;
            9 8 8 1 1;
            9 9 9 1 1;
 ];
 
 a = addrule(a,rulelist);
 %showrule(a);
 %ruleview(a);
 a1 = setfis(a,'DefuzzMethod','centroid');  %defuzzy
 writefis(a1,'fuzzyPID');
 fuzzyload = readfis('fuzzyPID');
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -