| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2563 人关注过本帖
标题:关于模糊控制里的隶属度函数的一个问题
只看楼主 加入收藏
chenjian0715
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-11-3
收藏
 问题点数:0 回复次数:1 
关于模糊控制里的隶属度函数的一个问题
模糊控制里的隶属度函数有的使用了:linear这个函数,可是在MATLAB的帮助文件里找不到这个函数的解释,
哪位大哥帮忙解释一下linear函数的使用方法啊~~~~,小弟先谢谢了
给个例子吧:
这是一个关于一级道理摆控制的模糊控制程序,程序运行结果是正确的,但是不明白为什么这里有的隶属度函数用了linear这个函数,帮忙解释一下,
clc
close all;
clear all;
tc=newfis('tc','sugeno');
tc=addvar(tc,'input','theta',[-90 90]);
tc=addmf(tc,'input',1,'about 0','trimf',[-90 0 90]);
tc=addmf(tc,'input',1,'about 90','trimf',[0 90 90]);
tc=addmf(tc,'input',1,'about-90','trimf',[-90 -90 0]);

tc=addvar(tc,'input','omega',[-5 5]);
tc=addmf(tc,'input',2,'NG','gaussmf',[1.8 -5]);
tc=addmf(tc,'input',2,'ZR','gaussmf',[1.8 0]);
tc=addmf(tc,'input',2,'PO','gaussmf',[1.8 5]);
 
tc=addvar(tc,'output','u',[-2 2]);
tc=addmf(tc,'output',1,'No.1','linear',[126.07 26.3 0]);
tc=addmf(tc,'output',1,'No.2','linear',[2722.3 883.4 0]);

rulelist=[1 0 1 1 1;2 0 2 1 1;3 0 2 1 1];
tc=addrule(tc,rulelist);


model=newfis('model','sugeno');
model=addvar(model,'input','theta',[-90 90]);
model=addmf(model,'input',1,'about 0','trimf',[-90 0 90]);
model=addmf(model,'input',1,'about 90','trimf',[0 90 90]);
model=addmf(model,'input',1,'about-90','trimf',[-90 -90 0]);

model=addvar(model,'input','omega',[-5 5]);
model=addmf(model,'input',2,'NG','gaussmf',[1.8 -5]);
model=addmf(model,'input',2,'ZR','gaussmf',[1.8 0]);
model=addmf(model,'input',2,'PO','gaussmf',[1.8 5]);
 
model=addvar(model,'input','u',[-5 5]);
model=addmf(model,'input',3,'any','gaussmf',[1.5 -5]);
 
model=addvar(model,'output','d_theta',[-2 2]);
model=addmf(model,'output',1,'No.1','linear',[0 1 0 0]);
model=addmf(model,'output',1,'No.2','linear',[0 1 0 0]);

model=addvar(model,'output','d_omega',[-2 2]);
model=addmf(model,'output',2,'No.1','linear',[17.2941 0 -0.1765 0]);
model=addmf(model,'output',2,'No.2','linear',[14.4706 0 -0.1765 0]);
rulelist1=[1 0 0 1 1 1 1;2 0 0 2 2 1 1;3 0 0 2 2 1 1];
model=addrule(model,rulelist1);

showrule(tc)
showrule(model)

N=1000;h=0.005; %N为迭代次数,h为步长
x=[1.309;0];    %设定系统的初值
y=zeros(2,N);
u=zeros(1,N);
for k=2:N              %R-K迭代法
 u(k)=evalfis([x(1),x(2)],tc);
 k0=evalfis([x(1),x(2),u(k)],model)';
 x1=x+h*k0/2;
 k1=evalfis([x1(1),x1(2),u(k)],model)';
 x1=x+h*k1/2;
 k2=evalfis([x1(1),x1(2),u(k)],model)';
 x1=x+h*k2;
 k3=evalfis([x1(1),x1(2),u(k)],model)';
 x=x+(k0+2*k1+2*k2+k3)*h/6;
 y(:,k)=x;
end
kk=[1:N]*h;
figure
plot(kk,y),grid on
xlabel('x'),ylabel('系统状态')
axis([0 5 -2 1.5])

figure
plot(kk,u),grid on
xlabel('u(k)'),ylabel('模糊控制器输出')
axis([0 5 0 250])
搜索更多相关主题的帖子: 模糊控制 函数 
2008-11-27 17:10
meteora1106
Rank: 2
等 级:新手上路
威 望:5
帖 子:126
专家分:0
注 册:2008-9-15
收藏
得分:0 
首先声明,我不懂你这个问题。但我可以告诉你,这几个linear都出现在参数设置的地方,像在插值中linear就表示线性插值,所以linear根本不是一个函数,只是一个参数,一般表示线性的意思。
2008-12-11 00:15
快速回复:关于模糊控制里的隶属度函数的一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014493 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved