模糊控制(matlab)(4)
MATLAB模糊逻辑工具箱函数[精编文档]
![MATLAB模糊逻辑工具箱函数[精编文档]](https://img.taocdn.com/s3/m/ade673282a160b4e767f5acfa1c7aa00b42a9d4e.png)
2. 从磁盘中加载模糊推理系统函数readfis( ) 调用格式 fisMat=readfis(‘filemame’)
例如利用以下命令可加载一个MATLAB自带的关于“小费”问题的模糊推理系统tipper.fis。 >>fisMat=readfis('tipper');getfis(fisMat); 结果显示: Name = tipper Type = mamdani NumInputs = 2 InLabels = service food NumOutputs = 1 OutLabels = tip NumRules = 3 AndMethod = min OrMethod = max ImpMethod = min AggMethod = max DefuzzMethod = centroid
3. 支持模糊逻辑中的高级技术 • 自适应神经模糊推理系统(ANFIS,Adaptive Neural Fuzzy Inference System); • 用于模式识别的模糊聚类技术; • 模糊推理方法的选择,用户可在广泛采用的 Mamdani型推理方法和 Sugeno型推理方法两者之间选择。
模糊控制查询表的MATLAB实现

p de c ies n er s rb i deai h way o tl e t h w t get f z y -c tol qu y a e y he o a u z onr — er tbl b t MATL pr AB ogr amm ig. s n Thi cor l a e to —tbl m a be tr d n h c y so e i t e ompue t wi t f m of tbl W hih t he or h a a e. c ca i n mpr e o gr a l te et y h ope ain e f en ySuc a PL r t al fi o ci c h s C co tol rec. o e n r l ,t wh s me o y s v y il a o e m r i er lt te,nd n—l ras nig an s ral e i ne e o n c alo be e i d. z Ke wOrs: z y onr l y d f z c to qu r a eM AT AB. c to,n—l e e o ig u ey t bl. L PI onr l o i ras nn n
级 保持 为 卜6 一 , 4 一 ,2 一 , , ,, , , ,} ,5 一 ,3 一 , 10 12 3 4 5 6。
输 入 变 量偏 差 e和偏 差 变化 率 e c和输 出变 量 A P A i K 、 T 的
模 糊 语 言 值 均 为 { B, N NM, S, O,S, M, B 。 为 了 编 程 方 N Z P P P }
值 , 为 12, 4 7 即 , 3,… 。
表 1 用 数 字 语 言 值表 示 输 入 变 量 × 1及 x 2的 隶 属度 矢 量 表
MATLAB中的模糊逻辑应用技巧

MATLAB中的模糊逻辑应用技巧绪论近年来,随着人工智能技术的不断发展与应用,模糊逻辑作为一种弥补了传统二值逻辑的不足的方法,被广泛应用于各个领域。
MATLAB作为一种功能强大的数学计算软件,提供了丰富的工具箱,使得模糊逻辑的建模和分析变得更加方便和高效。
本文将重点介绍MATLAB中模糊逻辑的应用技巧。
一、模糊集合的定义与表示在MATLAB中,模糊集合可以通过使用fuzzy工具箱来定义和表示。
在定义模糊集合时,我们需要明确模糊集合的隶属度函数以及对应的隶属度值。
可以使用trimf函数、trapmf函数、gaussmf函数等来定义隶属度函数的形状,并通过给定参数来确定具体的形状。
例如,我们可以使用trimf函数来定义一个三角隶属度函数,代码如下:```matlabx = 0:0.1:10;y = trimf(x, [3 5 7]);plot(x, y);```通过上述代码,我们可以绘制出一个在[3, 5, 7]范围内的三角形隶属度函数。
二、模糊关系的建立与描述在MATLAB中,可以使用fuzzy工具箱来建立和描述模糊关系。
模糊关系可以通过关联隶属度函数的模糊集合来定义,可以是矩阵形式或规则形式。
矩阵形式的模糊关系可以通过编写代码实现。
例如,我们可以建立一个三维矩阵表示的模糊关系,代码如下:```matlabx1 = 0:0.1:10;x2 = 0:0.1:10;x3 = 0:0.1:10;R = zeros(length(x1), length(x2), length(x3));for i = 1:length(x1)for j = 1:length(x2)for k = 1:length(x3)R(i, j, k) = min(trimf(x1(i), [2 3 4]), trimf(x2(j), [5 6 7]), trimf(x3(k), [8 9 10]));endendend```通过上述代码,我们可以建立一个三维矩阵表示的模糊关系,其中每个元素表示了一个具体的隶属度值。
Fuzzytoolbox4步教你学会使用matlab模煳控制工具箱共3页文档

4步教你学会使用matlab模糊控制工具箱(2008-09-2023:42:02)Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。
下面将根据模糊控制器设计步骤,一步步利用Matlab工具箱设计模糊控制器。
首先我们在Matlab的命令窗口(command window)中输入fuzzy,回车就会出来这样一个窗口。
下面我们都是在这样一个窗口中进行模糊控制器的设计。
1.确定模糊控制器结构:即根据具体的系统确定输入、输出量。
这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。
注意这里的变量还都是精确量。
相应的模糊量为E,EC和U,我们可以选择增加输入(Add Variable)来实现双入单出控制结构。
2.输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。
首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并设置输入输出变量的论域,例如我们可以设置误差E(此时为模糊量)、误差变化EC、控制量U的论域均为{-3,-2,-1,0,1,2,3};然后我们为模糊语言变量选取相应的隶属度函数。
在模糊控制工具箱中,我们在Member Function Edit中即可完成这些步骤。
首先我们打开Member Function Edit窗口.然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为[-3 3],添加隶属函数的个数为7.然后根据设计要求分别对这些隶属函数进行修改,包括对应的语言变量,隶属函数类型。
3.模糊推理决策算法设计:即根据模糊控制规则进行模糊推理,并决策出模糊输出量。
首先要确定模糊规则,即专家经验。
对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则(一般来说,这些规则都是现成的,很多教科书上都有),如图。
模糊控制

实验一:洗衣机的模糊控制实验目的:用MATLAB实现模糊控制器的设计实验步骤:(1)模糊控制器的结构设计选用单变量二维模糊控制器。
控制器的输入为衣物的污泥和油脂,输出为洗涤时间。
(2)定义输入输出模糊集将污泥分为三个模糊集:SD(污泥少),MD(污泥中),LD(污泥多),取值范围为[0,100]。
(3)定义隶属函数选用如下隶属函数:采用三角形隶属函数实现污泥的模糊化,采用三角形隶属函数实现污泥的模糊化,如图1-1所示。
图1-1 污泥隶属函数采用Matlab仿真,可实现污泥隶属函数的设计,仿真程序为:附录一将油脂分为三个模糊集:NG(无油脂),MG(油脂中),LG(油脂多),取值范围为[0,100]。
选用如下隶属函数:采用三角形隶属函数实现污泥的模糊化,如下图1-2所示。
仿真程序同污泥隶属函数(附录一)。
图1-2 油脂隶属函数将洗涤时间分为三个模糊集:VS(很短),S(短),M(中等),L (长),VL (很长),取值范围为[0,60]。
选用如下隶属函数:采用三角形隶属函数实现洗涤时间的模糊化,如图1-3所示。
图1-3 洗涤时间隶属函数采用Matlab 仿真,可实现洗涤时间隶属函数的设计,仿真程序为:模糊一(4)建立模糊控制规则根据人的操作经验设计模糊规则,模糊规则设计的标准为:“污泥越多,油脂越多,洗涤时间越长”;“污泥适中,油脂适中,洗涤时间适中”;“污泥越少,油脂越少,洗涤时间越短”。
(5)建立模糊控制表根据模糊规则的设计标准,建立模糊规则表1-1。
表1-1 模糊洗衣机的洗涤规则第*条规则为:“IF 衣物污泥少 且 没有油脂 THEN 洗涤时间很短”。
(6)模糊推理分以下几步进行:① 规则匹配。
假定当前传感器测得的信息为:x0(污泥)=60,y0(油脂)=70,分别带入所属的隶属函数中求隶属度:通过上述四种隶属度,可得到四条相匹配的模糊规则,如表1-2所示: 表1-2 模糊推理结果② 规则触发。
模糊控制系统及其MATLAB实现

1.模糊控制的相关理论和概念1.1 模糊控制的发展模糊控制理论是在美国加州伯克利大学的L. A.Zadeh教授于1965年建立的模糊集合论的数学基础上发展起来的。
之后的几年间Zadeh又提出了模糊算法、模糊决策、模糊排序、语言变量和模糊IF-THEN规则等理论,为模糊理论的发展奠定了基础。
1975年, Mamdan和Assilian创立了模糊控制器的基本框架,并用于控制蒸汽机。
1978年,Holmblad和Ostergaard为整个工业过程开发出了第一个模糊控制器——模糊水泥窑控制器。
20世纪80年代,模糊控制开始在工业中得到比较广泛的应用,日本仙台地铁模糊控制系统的成功应用引起了模糊领域的一场巨变。
到20世纪90年代初,市场上已经出现了大量的模糊消费产品。
近30 年来, 因其不依赖于控制对象的数学模型、鲁棒性好、简单实用等优点, 模糊控制已广泛地应用到图像识别、语言处理、自动控制、故障诊断、信息检索、地震研究、环境预测、楼宇自动化等学科和领域, 并且渗透到社会科学和自然科学许多分支中去, 在理论和实际运用上都取得了引人注目的成果。
1.2 模糊控制的一些相关概念用隶属度法来定义论域U中的集合A,引入了集合A的0-1隶属度函数,用A(x) 表示,它满足:A(x)用0-1之间的数来表示x属于集合A的程度,集合A等价与它的隶属度函数A(x)模糊系统是一种基于知识或基于规则的系统。
它的核心就是由所谓的IF-THEN规则所组成的知识库。
一个模糊的IF-THEN规则就是一个用连续隶属度函数对所描述的某些句子所做的IF-THEN形式的陈述。
例如:如果一辆汽车的速度快,则施加给油门的力较小。
这里的“快”和“较小”分别用隶属度函数加以描述。
模糊系统就是通过组合IF-THEN规则构成的。
构造一个模糊系统的出发点就是要得到一组来自于专家或基于该领域知识的模糊IF-THEN规则,然后将这些规则组合到单一系统中。
不同的模糊系统可采用不用的组合原则。
一阶倒立摆模糊控制matlab仿真
一阶倒立摆模糊控制仿真实验分析报告%mainclearclose all%load table.matglobal Table;global RULE;global UCenter;global Width;global num;global RuleMatch; %前件匹配方式0 取小;1乘积global Defuzzy; %反模糊化方法0: COG ; 1:COA; 2:MAXglobal g0;global g1;global h;x=[0.4,0,0];RuleMatch = 1; %前件匹配方式0 取小;1乘积Defuzzy = 0;%反模糊化方法0: COG ; 1:COA; 2:MAXg0=1.5;g1=0.1;h=1;% u=0;% Table = u;% [m,n]=size(u);% num = (m-1)/2;%u=[];RULE =[2, 2, 2, 1, 0; ...2, 2, 1, 0,-1;...2, 1, 0,-1,-2;...1, 0,-1,-2,-2;...0,-1,-2,-2,-2];%% RULE =[2,2,1,1,0; ...% 2,1,1,0,-1;...% 1,1,0,-1,-1;...% 1,0,-1,-1,-2;...% 0,-1,-1,-2,-2];RULE=RULE + 3*ones(size(RULE));%原始的%UCenter=[-20,-10,0,10,20];%改进的%UCenter=[-25,-15,0,15,25];UCenter=[-20,-15,0,15,20];Width(1)=(UCenter(5)-UCenter(4))/2;Width(2)=(UCenter(5)-UCenter(3));Width(3)=(UCenter(4)-UCenter(3))*2;Width(4)=Width(2);Width(5)=Width(1);x=x';[t,y]= ode45('P_Pendulum',[0,5],x);% [t,y]= ode45('P_Pendulum_tab',[0,10],x);% y2=y.*y;% inty = intnum(t,y2)%% int_e2 = inty(1)+inty(2);% int_u2 = inty(3);%int_y2 = sum(y.^2);%int_e2 = int_y2(1)+int_y2(2);%int_u2 = int_y2(3);figuresubplot(2,1,1)plot(t,y(:,1 ),'r',t,y(:,2),'k')%xlabel('t(sec)')% str1 = sprintf('x(0)=[%2.2f,%2.2f]',x(1),x(2)); % Title(str1,'Interpreter','latex','fontsize',14)%% str1=sprintf('t(sec)---index:$\\int{e^{T}(t)e(t)dt}=$ %f', int_e2);%str1 = '$\int{e^2}dt$'% text(6,0,str1,'Interpreter','latex','fontsize',14)%% xlabel(str1,'Interpreter','latex','fontsize',14)legend('x1(rad)', 'x2(rad/s)')title('输出隶属函数中心值:[-20,-15,0,15,20]')subplot(2,1,2)plot(t,y(:,3),'r')xlabel('t(sec)')ylabel('u(N)')% str1=sprintf('t(sec)--index:$\\int{u^{2}(t)dt}$= %f', int_u2);% %H = Title(str1,'Interpreter','latex','fontsize',14)% xlabel(str1,'Interpreter','latex','fontsize',14)% inverted pendulum stabilized% program on 2006,10,26function xdot = P_Pendulum(t,x)global RULE;global UCenter;global step;global k;global Kc;global QQ;global Width;global RuleMatch; %前件匹配方式0 取小;1乘积global Defuzzy; %反模糊化方法0: COG ; 1:COA; 2:MAXglobal g0;global g1;global h;M = 1;m =0.5;g = 9.8;l = 0.5;a = 1/(m+M);%计算隶属度mu_e= emembershipdegree(-x(1)*g0);mu_de = demembershipdegree(-x(2)*g1);%pausemu_e_id = find(mu_e>0);mu_de_id = find(mu_de>0);eLen= length(mu_e_id);deLen = length(mu_de_id);mu_pre= zeros(1,4);fuzzy_out = zeros(1,4);weight = zeros(1,4);in =1;%规则匹配for (i=1:eLen)for(j=1:deLen)switch RuleMatchcase 0%前件采用取小推理mu_pre(in)= min(mu_e(mu_e_id(i)),mu_de(mu_de_id(j)));case 1%前件采用乘积推理mu_pre(in)= mu_e(mu_e_id(i))*mu_de(mu_de_id(j));end%计算规则匹配度fuzzy_out(in) = RULE(mu_e_id(i),mu_de_id(j));in=in+1;endendnRule = eLen *deLen;u = 0;summu =0;%反模糊化for(i=1:nRule)switch Defuzzycase 0%按照重心法计算(COG)weight(i)= Width(fuzzy_out(i))*(mu_pre(i)-mu_pre(i)*mu_pre(i)/2);case 1% 按照中心平均法weight(i)=mu_pre(i);case 2% 取大法(大中求中)[max_v,max_id] = max(mu_pre);weight(max_id)=1;endu = weight(i)*UCenter(fuzzy_out(i))+u;summu =summu + weight(i);end%u=0;u=h*u/summu;if (u>20)u=20;endif (u<-20)u=-20;endt% if(t>2.5 && t<2.6 )% u=u+20;% end% if (u>20)% u=20;% end%% if (u<-20)% u=-20;% end% xdot(1)=x(2);% xdot(2)=(g*sin(x(1))-a*m*l*x(2)*x(2)*sin(2*x(1))/2-a*cos(x(1))*x(3))/(4*l/3-a*m*l*cos(x(1))*cos(x(1))); % xdot(3)=-100*x(3)+100*u;% x(3) = u;xdot(1)=x(2);xdot(2)=(g*sin(x(1))-a*m*l*x(2)*x(2)*sin(2*x(1))/2-a*cos(x(1))*x(3))/(4*l/3-a*m*l*cos(x(1))*cos(x(1))); xdot(3)=-100*x(3)+100*u;xdot = xdot';y=zeros(1,5);if (x<= -pi/2)y(1) =1 ;elseif (x<=-pi/4)y(1) = abs(x+pi/4)/(pi/4);y(2) = 1-abs(x+pi/4)/(pi/4); elseif (x<= 0)y(2) = 1-abs(x+pi/4)/(pi/4);y(3) = 1- abs(x)/(pi/4);elseif (x<=pi/4)y(3) = 1- abs(x)/(pi/4);y(4) = 1-abs(x-pi/4)/(pi/4); elseif (x<=pi/2)y(4) = 1-abs(x-pi/4)/(pi/4);y(5) = abs(x-pi/4)/(pi/4);elseif (x>pi/2)y(5) =1;endfunction y = demembershipdegree(x) y=zeros(1,5);if (x<= -pi/4)y(1) =1 ;elseif (x<=-pi/8)y(1) = abs(x+pi/8)/(pi/8);y(2) = 1-abs(x+pi/8)/(pi/8); elseif (x<= 0)y(2) = 1-abs(x+pi/8)/(pi/8);y(3) = 1- abs(x)/(pi/8);elseif (x<=pi/8)y(3) = 1- abs(x)/(pi/8);y(4) = 1-abs(x-pi/8)/(pi/8); elseif (x<=pi/4)y(4) = 1-abs(x-pi/8)/(pi/8);y(5) = abs(x-pi/8)/(pi/8);elseif (x>pi/4)y(5) =1;endy=zeros(1,5); if (x<= -30) y(1) =0 ; elseif (x<=-20)y(1) = 1-abs(x+20)/(10); elseif (x<=-10)y(1) = 1-abs(x+20)/(10); y(2) = 1-abs(x+10)/(10); elseif (x<= 0)y(2) = 1-abs(x+10)/(10); y(3) = 1- abs(x)/(10); elseif (x<=10)y(3) = 1- abs(x)/(10); y(4) = 1-abs(x-10)/(10); elseif (x<=20)y(4) = 1-abs(x-10)/(10); y (5) = 1-abs(x-20)/(10); elseif (x>30) elseif (x<=30)y(5) = 1-abs(x-20)/(10); elseif (x>30) y(5) =0; end不同的推理方式,反模糊化方法初始值:x0=[0.1 0]’t(sec)u (N )t(sec)u (N )t(sec)u (N )t(sec)u (N )t(sec)u (N )t(sec)u (N )不同的初始条件前件隶属度函数计算方法:乘积模糊蕴含关系计算方法:取小 反模糊化方法:COGt(sec)u (N )t(sec)u (N )t(sec)u (N )t(sec)u (N )结论:当初始角达到一定程度时,控制力趋向饱和,系统不稳定。
模糊PID控制器设计及MATLAB仿真_李健
图 1 模糊 PID 控制结构图
PID 参 数 模 糊 自 整 定 是 先 找 出 PID 控 制 器 的 3 个 参 数 Kp、 Ki 和 Kd 与偏差 e 和偏差变化率 ec 之间的模糊关系, 在运行中 通过不断检测 e 和 ec,根据模糊控制规则来对 3 个参量进行在
线修改 ,以 满 足 不 同 e 和 ec 对 控 制 器 参 数 的 不 同 要 求 ,从 而 使
起较大的超调 。 微 分 系 数 Kd 影 响 系 统 的 动 态 特 性 ,Kd 越 大 ,越
能抑制偏差变化,但过大会延长调节时间,降低抗干扰能力。
根 据 参 数 Kp、Ki、Kd 对 系 统 输 出 特 性 的 影 响 情 况 ,可 归 纳 出 系统在被控过程中对于不同的偏差和偏差变化率 , 参数 Kp、Ki、 Kd 的自整定原则:
摘要 将模糊控制器和 PID 控制器结合在一起,构造了一个模糊 PID 控制器,利用模糊推理的方法调整 PID 控制器的参数, 并利用 MATLAB 的 SUMLINK 工具箱,对系统进行仿真,仿真结果表明模糊 PID 控制器能使系统达到满意的控制效果。 关键词:PID 控制器,模糊控制,MATLAB,SIMULINK,系统仿真
1.3 模糊控制算法的确立
PID 参数的整定必须考虑到在不同时刻 3 个参数的作 用 以
及相互之间的互联关系。 模糊自整定 PID 是在 PID 算法的基础
上通过计算当前系统误差 e 和误差变化 ec,利用模糊规则 进 行
模糊推理,查询模糊矩阵表进行参数调整。 参数修正公式:
'
Kp =Kp +(e,ec)p
被控对象具有良好的动、静态性能。
1.2 PID 控制器的确立
通常,PID 控制器的控制算式为:
matlab模糊控制工具箱
第一章绪论1.1课题的提出和意义随着我国电力事业的发展,电网管理日趋现代化。
负荷预测问题的研究逐渐引起了人们的关注,在电力系统学科中占据了重要的地位,是一个重要的组成部分。
在实际中,制定电力系统规划以及实现电力系统自动化这两项重要的工作,对它们进行应有的负荷预测都是基本要求。
众所周知,电力系统的作用应当是为各类的用户提供可靠而合乎质量要求的电能,使得各种客户的要求得到满足,而所有用户所使用的电能即为负荷。
负荷的大小与特性,对于系统的运行研究以及系统的设计,都是重中之中。
所以,对负荷的变化与特性,有一个事先的估计,是电力系统发展与运行研究的重要内容。
电力系统运行管理现代化中最看重的就是负荷预测,其水平决定了现代化的程度以及技术的高度,能够保证整个系统能够在正确的思维指导下调度和运行。
精准而优良的预测系统不仅在电力系统的安全、可靠、经济运行中起着支柱的作用,在节约能源方面也有着不俗的发挥。
负荷预测会受到很多方面的影响,不单单由以往的数据所决定,还要各方面非电力系统负荷的影响。
那整个系统为什么会要对将来的用电进行预测?因为系统内的可用发电容量,在正常运行的情况下,无论什么时候都要满足客户的需求,即满足所要提供的负荷。
发电容量一旦不够,则必须采取相应的措施来增加其发电容量,比如新增发电机组或从相邻的电网借来所差容量;反之,若发电容量过剩,则也应该采取必要的措施,如有选择性的止某台电机的运行或者向相邻的网络输出多余的电容量。
为了对选择对应的机组,确定所要具备的电源的结构,以及对于燃料的需求等,我们就应该要做到对负荷有一个准确的预测。
负荷曲线的预测可为研究电力系统的峰值、抽水蓄能电站的容量以及发输电设备的协调运行提供数据支持。
电力用户是电力工业的服务对象,电力负荷的不断增长是电力工业发展的根据。
正确地预测电力负荷,既是为了保证无条件供应国民经济各部门及人民生活以充足的电力的需要,也是电力工业自身健康发展的需要。
模糊控制简介
R=(NBe × PBu ) + ( NSe × PSu ) + (0e × 0u ) + ( PSe × NSu ) + ( PBe × NSu )
NBe × PBu = (1, 0.5, 0, 0, 0, 0, 0) × (0, 0, 0, 0, 0, 0.5,1) NSe × PSu = (0, 0.5,1, 0, 0, 0, 0) × (0, 0, 0, 0,1, 0.5, 0) 0e × 0u = (0, 0, 0.5,1, 0.5, 0, 0) × (0, 0, 0.5,1, 0.5, 0, 0) PSe × NSu = (0, 0, 0, 0,1, 0.5, 0) × (0, 0.5,1, 0, 0, 0, 0) PBe × NSu = (0, 0, 0, 0, 0, 0.5,1) × (1, 0.5, 0, 0, 0, 0, 0) 0 0 0 0 0.5 1 0 0 0 0 0 0.5 0.5 0.5 0 0 0.5 0.5 1 0 0 R= 0 0 0.5 1 0.5 0 0 0 0.5 1 0.5 0.5 0 0 0 0 0 0.5 0.5 0.5 0 1 0.5 0 0 0 0 0
学习功能
数据存储 单元
y
∗ k
e
r + —
∆
∆
k
e
e
k
c
2
e
k
Байду номын сангаас
r
模糊 控制 规则
k
∆
u
u
u
u
k −1
k
+ +
被 控 对 象
y
k
六.思考
矛盾对立统一规律: 矛盾对立统一规律:两面性 • 优点:模糊逻辑本身提供了由专家构造语 优点: 言信息并将其转化为控制策略的一种系统 的推理方法, 的推理方法,因而能够解决许多复杂而无 法建立精确数学模型系统的控制问题, 法建立精确数学模型系统的控制问题,所 以它是处理推理系统和控制系统中不精确 和不确定性的一种有效方法。从广义上讲, 和不确定性的一种有效方法。从广义上讲, 模糊控制是适于模糊推理, 模糊控制是适于模糊推理,模仿人的思维 方式, 方式,对难以建立精确数学模型的对象实 施的一种控制策略。 施的一种控制策略。它是模糊数学同控制 理论相结合的产物, 理论相结合的产物,同时也是智能控制的 重要组成部分。 重要组成部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解模糊后,还要经过尺度变换,求出实际输出。
y y u u man min max min y k ( u ) u 1 2 2
u1 :为精确量; ymax,ymin:为控制量的变化范围;4~20mA 或 1~5V。 y:为计算机输出的控制量; ku:比例因子。
小结:
模糊控制系统的基本构成以及模糊控制器各部分的功能。 模糊化 知识库 决策逻辑
1)确定输入量 2)对输入量进行尺度变换,使其在各自的论域范围。 3)对输入量进行模糊处理,用相应的模糊集合表示。 1、最大隶属度函数法 反模糊化 作业: P66 2、加权平均法(重心法) 3、取中位数法 3-1 3-2
第二节 模糊控制系统的设计
模糊逻辑控制器的工作过程:
每采集一组数(data)(ei,dei),经模糊化 (Fuzzy)→ E,DE→ Fuzzy推理(inference)合成运算得Ui →精确化(defuzzification) 得ui →尺度变换得yi 。 上述所有工作为在线(on-line)运算 速度慢,实时性差 能否先(off-line)制出表格数据(模糊查询表)looking up table 在线时,只要有一组(ei,dei),即可从表中查出u。
0 . 3 0 . 7 1 0 . 7 0 . 3 PM 2 3 4 5 6
这样就将一个精确数转变成了模糊数。
二、模糊控制规则
有四种方法:专家经验法、观察法、基于模糊模型、自组织法 专家经验法:通过对专家控制经验的咨询形成控制规则库。 采用“if-then”规则语言来表达经验。
规则库:用语言值表示的控制规则。反映控制专家的经验 和知识。
▲模糊化
▲决策逻辑
模糊控制系统的核心,对模糊量由给定的规则进 行模糊推理 ▲反模糊化 将模糊输出量转化为精确量 1)将模糊量变换成精确量 2)精确量经尺度变换成实际的控制量。
一、模糊化过程
1、确定输入、输出变量 对于二维的 Fuzzy Controller 输入: 输出: 2、量化因子和比例因子 基本论域: e 和de的实际变化范围,记为[-emin,emax], [-demin, demax] 将连续量离散化: 取X=[-n,-n+1,…0,1,… n-1,n] 进行论域变换 n-----档数
-1 0.0 0.0 0.7 0.7 0.0 0.0 0.0
0 0.0 0.0 0.3 1.0 0.3 0.0 0.0
1 0.0 0.0 0.0 0.7 0.7 0.0 0.0
2 0.0 0.0 0.0 0.3 1.0 0.3 0.0
3 0.0 0.0 0.0 0.0 0.7 0.7 0.0
4 0.0 0.0 0.0 0.0 0.3 1.0 0.3
观察法:观察操作人员的实际控制过程。 采用“if-then”规则语言来进行控制。
基于模糊模型:用语言描述建立对象的模糊模型,以便得到 模糊控制规则。
规律 3 :如果 Y PS 且 U NS 那么 Y ZE n n n 1
由规律3可得出一条控制规则:
如果 Y ZE 且 Y PS 那么 U NS n 1 n
i 1
(扎德推理)
简单,但控制效果不佳,适用于随动、定值控制系统等。
液位控制系统
控制器
Q1
K1
浮子
电位器
R
用水开关 SM
减速器 电动机
手动调节:
Q2
if 如水位高于R时,则应关小K1 ,且高得越多关得越多。 如水位在R附近时,则开度基本不变 。
如水位低于R时,则应打开K1 ,且低得越多开得越大。
u
U 1 ( u ) du
离散:
u1
i1 m
u i
U 1
(u i )
i1
U 1
(u i )
上例:
0 . 7 ( 7 ) 0 . 7 ( 6 ) 0 . 3 ( 5 ) 0 . 3 ( 4 ) 0 . 3 ( 3 ) 0 . 2 ( 2 ) 0 . 3 7 u 1 0 . 7 0 . 7 0 . 3 0 . 3 0 . 3 0 . 2 0 . 7 0 . 7 0 . 7 0 . 2 0 . 2 0 . 3 0 . 3 7 . 6 1 . 36 5 . 6 对u1取整后可用-1级对应的精确量u1作为输出。
“PZ” “NZ”
一般取7~8个语言值
☆ 模糊变量的语言值的数目选取。在细分和粗分之间进 行折中。下图的语言值的数目为3~9 。
4、语言值的模糊子集
常用的论域n=6
三角形
( xa b )
2
模糊子集的MF一般取法(连续): 正态函数 a值一般取法
F (x) e
b>0
μPB(x)=1 x=+6 μPM(x)=1 x=+4 μPS(x)=1 x=+2 μPZ(x)=1 x=+0 μNZ(x)=1 x=-0 μNS(x)=1 x=-2 μNM(x)=1 x=-4 μNB(x)=1 x=-6
e k 测量 给定 de k e k e k 1
(E) (DE)
(U)
u
定义量化因子:
ke
n e max
Ke确定后,任何e值都可以转化为X上的某一元素。
e e max min ( x ) 一般可用下面线性公式: x 0 e e 2 max min 2 n
Xo:为实际的输入量; emax emin:为输入量的变化范围。 如已知n=6, 当X o = emin, 当X o = emax, x:为转换后的离散量。 例: Ke=0.6 e=6 x = -6 x = 6 x=0
第三章 模糊控制系统
模糊逻辑控制器的基本结构 模糊控制系统的设计 模糊PID控制器的设计 利用MATLAB设计模糊控制器 先进模糊控制
第一节
模糊控制系统的组成
模糊控制系统:是一种自动控制系统,它是以模糊数学、模糊
语言形式的知识表示和模糊逻辑推理为理论基础,采用计算机控制
技术构成的一种具有闭环结构的数字控制系统。
T 1
1、最大隶属度函数法
U1仍然为一模糊子集
在输出的模糊集合中取隶属度最大的元素作为结果,如果同时出 现几个元素具有最大隶属度,则取它们的平均值作为结果。
例:
0 . 7 0 . 7 0 . 3 0 . 3 0 . 3 0 . 2 0 . 7 0 . 7 0 . 7 0 . 2 0 0 0 . 2 0 . 3 0 . 3 U 1 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7
自组织法:模糊控制规则能随着环境或对象的变化进行修改。
1、常用的模糊控制规则
①单输入输出的一维FC
If x=A then y=B 模糊关系:
n
R(a, b) A Bi i
i 1
(玛达尼推理)
If x=A then y=B else y=C 模糊关系:
n
R ( a ,b ) [( A B ) ( A C )] i i i i
k 1 、 k 2、 k 3
三个语言变量的量化等级均取9级,即, x,y,z={-4,-3,-2,-1,0,1,2,3,4} 量化因子的确定: 设e的论域是[-50℃,50℃];de的论域是[-150,150];u的 论域是[-64,64];则各因子为
k 4 /50 2 /25 1
(2)算术加权
u1 m
x ik k
i
3、取中位数法
i 1
i
取模糊隶属度函数曲线与横坐标围成面积平分为两等份的数 作为结果。计算麻烦。
面积均分: ( x ) dx U
a x 0 b x 0
( x ) dx U
结论:
不同的去模糊算法,得到的控制量结果是不同 的;第(3)种准确但繁琐,第(1)种简单但 不准确,第(2)种较好。
If E = PS then U = NS
If E =ZE then U= ZE If E= NS then U = PS If E= NB then U = PB PS NS ZE ZE NS PS NB PB
②双输入单输出的二维FC
If x1=A and(0R) x2= B then y=C e 模糊关系:
e
u
de
–6 –5 –4 –3–2 –1 0 1 2 3 4 5 6
-6 ∶ 0 ∶
查询表的设计步骤(以温度控制系统为例)
1、确定模糊控制器的输入、输出变量 输入语言变量: 误差e 和误差变化de
e T Td
(T为实际温度;
T
d
为温度给定值);
输出语言变量:选为控制加热装置的供电电压u。
2、确定各输入、输出变量的变化范围、量化等级和量化因子
转换后:Ke e=3.6≈4
Xo =
e max e min 2
同理: k de
n de
m ax
定义比例因子:
ku
u max n
注: e 和de的连续值与其论域中的离散值并不是一一对应。 3、语言值的选取
正大—“PB” 正中—“PM” 正小—“PS” 零 —“ZE” 负小—“NS” 负中—“NM” 负大—“NB”
-6 1.0 0.3 0.0 0.0 0.0 0.0 0.0
-5 0.7 0.7 0.0 0.0 0.0 0.0 0.0
-4 0.3 1.0 0.3 0.0 0.0 0.0 0.0
-3 0.0 0.7 0.7 0.0 0.0 0.0 0.0
-2 0.0 0.3 1.0 0.3 0.0 0.0 0.0
精确量: u
1
( 7 6 1 0 1 ) 5