智能控制技术 您所在的位置:网站首页 二阶非线性分析 智能控制技术

智能控制技术

2023-10-03 12:04| 来源: 网络整理| 查看: 265

一:题目描述

二:控制器和规律描述

假设系统输入为 r = 1. 0 ,可取系统输出误差e和误差变化ec作为模糊控制器的输入 ,模糊控制器的输出u作为被控对象的控制输入。则可根据系统输出的误差和误差变化设计出模糊控制器fz,并根据一系列的模糊推理过程推导出最终的输出控制量u。其中误差e,误差变化量ec以及输出u所对应的模糊语言变量分别为E、EC和U。表示如下:

E={-6,-5,-4,-3,-2,-1,0,+1,+2,+3,+4,+5,+6}

EC={-6,-5,-4,-3,-2,-1,0,+1,+2,+3,+4,+5,+6}

U={-6,-5,-4,-3,-2,-1,0,+1,+2,+3,+4,+5,+6}

建立双输入,单输出的结构如图:

隶属度函数图像如下:

模糊规则定义:

表1 模糊控制规则

对规则进行编辑:

 

规则编辑界面图

Simulink仿真:

三:Simulink仿真图像:

代码:

% ----------------------------------------- % 典型二阶系统的模糊控制 % ----------------------------------------- a=newfis('fuzzy'); f1=1; a=addvar(a,'input','e',[-6 6]); %添加误差输入变量 a=addmf(a,'input',1,'NB','trapmf',[-6,-6,-5,-3]); %添加误差隶属函数 a=addmf(a,'input',1,'NS','trapmf',[-5,-3,-2 0]); a=addmf(a,'input',1,'ZR','trimf',[-2,0,2]); a=addmf(a,'input',1,'PS','trapmf',[0,2,3,5]); a=addmf(a,'input',1,'PB','trapmf',[3,5,6,6]); f2=1; a=addvar(a,'input','de',[-6 6]); %添加误差变化输入变量 a=addmf(a,'input',2,'NB','trapmf',[-6,-6,-5,-3]); %添加误差变化隶属函数 a=addmf(a,'input',2,'NS','trapmf',[-5,-3,-2,0]); a=addmf(a,'input',2,'ZR','trimf',[-2,0,2]); a=addmf(a,'input',2,'PS','trapmf',[0,2,3,5]); a=addmf(a,'input',2,'PB','trapmf',[3,5,6,6]); f3=1.5; a=addvar(a,'output','u',[-3 3]); %添加输出变量 a=addmf(a,'output',1,'NB','trapmf',[-3,-3,-2,-1]); %添加输出隶属函数 a=addmf(a,'output',1,'NS','trimf',[-2,-1,0]); a=addmf(a,'output',1,'ZR','trimf',[-1,0,1]); a=addmf(a,'output',1,'PS','trimf',[0,1,2]); a=addmf(a,'output',1,'PB','trapmf',[1,2,3,3]); rr =[5 5 4 4 3; %以下为建立控制规则表 5 4 4 3 3; 4 4 3 3 2; 4 3 3 2 2; 3 3 2 2 1; 1 1 5 1 1; 1 2 5 1 1; 1 3 4 1 1; 1 4 4 1 1; 1 5 3 1 1; 3 1 4 1 1; 3 2 4 1 1; 3 3 3 1 1; 3 4 3 1 1; 3 5 2 1 1; 4 1 4 1 1; 4 2 3 1 1; 4 3 3 1 1; 4 4 2 1 1; 4 5 2 1 1; 5 1 3 1 1; 5 2 3 1 1; 5 3 2 1 1; 5 4 2 1 1; 5 5 1 1 1; ]; a=addrule(a,rulelist); %添加模糊规则到模糊控制器 a1=setfis(a, 'DefuzzMethod', 'mom'); %设置去模糊化方法 writefis(a1,'fuzzf'); a2=readfis('fuzzf'); Ulist=zeros(7,7); for i=1:7 for j=1:7 e(i) = -4+i; ec(j) = -4+j; Ulist(i, j) = evalfis([e(i), ec(j)], a2); end end figure(1); plotfis(a2); figure(2); plotmf(a, 'input', 1); figure(3); plotmf(a, 'input', 2); figure(4); plotmf(a, 'output', 1);  

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有