一、模糊控制基本概念

1. 定义

以模糊集合理论、模糊语言变量及模糊推理为基础的一类控制方法。模糊控制原理框图如图1-1所示。

图1-1 模糊控制原理框图

注:图片来源于《智能控制》(第4版),刘金坤

2. 组成

模糊控制器(Fuzzy Controller ,FC)也称为模糊逻辑控制器(Fuzzy Logic Controller ,FLC),整个控制器包括:模糊化接口、知识库、推理机、解模糊接口。

图1-2 模糊控制器组成框图

注:图片来源于《智能控制》(第4版),刘金坤。

二、模糊控制特点

(1)模糊控制不需要被控对象的数学模型;

(2)模糊控制是一种反映人类智慧的智能控制方法;

(3)构造容易,鲁棒性和适应性好。

三、模糊控制器设计—以洗衣机的模糊控制为例

模糊控制器最简单的实现方法是将一系列模糊控制规则离线转化为一个查询表(又称为控制表) ,存储在计算机中供在线控制时使用。这种模糊控制器结构简单,使用方便,是最基本的一种形式。

步骤1:确定模糊控制器结构

选用两输入单输出模糊控制器。控制器的输入为衣物的污泥和油脂,输出为洗涤时间。

步骤2:定义输入、输出模糊集

将污泥分为3 个模糊集:SD(污泥少), MD(污泥中), LD(污泥多);将油脂分为3 个模糊集:NG(油脂少), MG(油脂中), LG(油脂多);将洗涤时间分为5 个模糊集:VS(很短),S(短), M (中等),L(长), VL(很长)。

步骤3:定义隶属度

(1)选用如下三角形隶属函数可实现污泥的模糊化。

实现代码如下:

clear all;
close all;
N=2;x=0:0.1:100;
for i=1:N+1f(i)=100/N*(i-1);
endu=trimf(x,[f(1),f(1),f(2)]);
figure(1);
plot(x,u);for j=2:Nu=trimf(x,[f(j-1),f(j),f(j+1)]);hold on;plot(x,u);
end
u=trimf(x,[f(N),f(N+1),f(N+1)]);
hold on;
plot(x,u);
xlabel('x');
ylabel('Degree of membership');

图3-1 污泥的隶属度函数

(2)同理,选用如下三角形隶属函数可实现油脂的模糊化。

图3-2 油脂的隶属度函数

(3)同理,选用如下三角形隶属函数可实现洗涤时间的模糊化。

图3-3  洗涤时间的隶属度函数

步骤4:建立模糊规则,并绘制模糊控制表

表3-1 模糊控制表

    

步骤5:实现模糊推理,分为以下几步

(1)规则匹配

假设,分别代入所属隶属度函数中,求得隶属度为

可得到4 条相匹配的模糊规则,如下表

表3-2 模糊推理结果

(2)规则触发

由表3-2可知,被触发的规则有4 条,即

(3)规则前提可信度与规则总可信度

在同一规则内,前提之间通过“与”关系得到规则的结论。前提的可信度之间通过取小运算,由表3-2可得到没一条规则总前提的可信度为

由此得到洗衣机规则前提可信度表,即规则强度表,见表3-3。

表3-3 规则前提可信度

将表3-2和表3-3进行“与运算”,得到每条规则的总可信度,见表3-4所示。

表3-4 规则总可信度

(4)模糊系统总的输出

模糊系统总的可信度为各条规则可信度推理结果的并集,即

可见,有三条规则被触发。

步骤6:解模糊化(以最大隶属度平均法为例)

由表3-4及总的可信度输出结果可知,洗涤时间的隶属度最大值为

图3-4  洗衣机的3个规则被触发

带入洗涤时间的隶属度函数中,得

得到

图3-4  洗衣机的组合输出及解模糊化

采用最大平均法,可得精确输出为

源代码:

%Fuzzy Control for washer
clear all;
close all;
clca=newfis('fuzz_wash');%% 输入变量和输出变量模糊化
a=addvar(a,'input','x',[0,100]);                %Fuzzy Stain
a=addmf(a,'input',1,'SD','trimf',[0,0,50]);
a=addmf(a,'input',1,'MD','trimf',[0,50,100]);
a=addmf(a,'input',1,'LD','trimf',[50,100,100]);a=addvar(a,'input','y',[0,100]);                %Fuzzy Axunge
a=addmf(a,'input',2,'NG','trimf',[0,0,50]);
a=addmf(a,'input',2,'MG','trimf',[0,50,100]);
a=addmf(a,'input',2,'LG','trimf',[50,100,100]);a=addvar(a,'output','z',[0,60]);                %Fuzzy Time
a=addmf(a,'output',1,'VS','trimf',[0,0,10]);
a=addmf(a,'output',1,'S','trimf',[0,10,25]);
a=addmf(a,'output',1,'M','trimf',[10,25,40]);
a=addmf(a,'output',1,'L','trimf',[25,40,60]);
a=addmf(a,'output',1,'VL','trimf',[40,60,60]);%% 建立模糊规则表
rulelist=[1 1 1 1 1;                   %Edit rule base1 2 3 1 1;1 3 4 1 1;2 1 2 1 1;2 2 3 1 1;2 3 4 1 1;3 1 3 1 1;3 2 4 1 1;3 3 5 1 1];a=addrule(a,rulelist);
showrule(a)                         %Show fuzzy rule base%% 解模糊,采用平均最大隶属度法
a1=setfis(a,'DefuzzMethod','mom');  %Defuzzy%% 读写模糊控制器
writefis(a1,'wash');                %Save to fuzzy file "wash.fis"
a2=readfis('wash');figure(1);
plotfis(a2);
figure(2);
plotmf(a,'input',1);
figure(3);
plotmf(a,'input',2);
figure(4);
plotmf(a,'output',1);ruleview('wash');  %Dynamic Simulation%% 利用模糊控制器求解
x=60;
y=70;
z=evalfis([x,y],a2)   %Using fuzzy inference

运行结果:

注释:程序中规则表为什么是3行5列的,具体解释如下:

非线性控制1.0——模糊控制理论基础相关推荐

  1. 非线性控制2.0——模糊逼近

    一.逼近器的种类及由来 1. 常用逼近器 (1)多项式逼近器: (2)神经网络逼近器: (3)模糊逼近器. 2. 研究意义 对于参数不确定系统,可以利用自适应控制或者鲁棒控制解决,通过李亚普洛夫法构造 ...

  2. 基于非线性控制参数组合策略的灰狼优化算法

    文章目录 一.理论基础 1.灰狼优化算法基本模型 2.改进GWO (1)非线性控制参数 (2)改进的非线性控制参数策略 (3)改进策略调节参数的设定 (4)改进的算法流程 二.仿真实验与分析 1.基本 ...

  3. 电力系统非线性控制_第二届电气,控制,自动化和机器人国际学术会议 (ECAR2020)...

    2020年第二届电气,控制,自动化和机器人国际学术会议 (ECAR2020),大会将于2020年12月22-23日在中国三亚-三亚凤凰岛度假酒店召开.ECAR2020将围绕"电气.控制.自动 ...

  4. simulink仿真单极性spwm_FC系统|基于Matlab/Simulink的PEMFC建模与非线性控制

    点击上方蓝字关注我们! 摘要:建立了质子交换膜燃料电池动态多输入多输出模型并基于反馈线性化方法设计了适用于该模型的非线性控制器。由于燃料电池阳极和阴极气体之间过大的压力差会引起质子交换膜严重损坏,所以 ...

  5. Chapter8.4:非线性控制系统分析考研参考题

    此系列属于胡寿松<自动控制原理题海与考研指导>(第三版)习题精选,仅包含部分经典习题,需要完整版习题答案请自行查找,本系列属于知识点巩固部分,搭配如下几个系列进行学习,可用于期末考试和考研 ...

  6. Chapter8.1:非线性控制系统分析

    此系列属于胡寿松<自动控制原理题海与考研指导>(第三版)习题精选,仅包含部分经典习题,需要完整版习题答案请自行查找,本系列属于知识点巩固部分,搭配如下几个系列进行学习,可用于期末考试和考研 ...

  7. Chapter8.2:非线性控制系统分析

    此系列属于胡寿松<自动控制原理题海与考研指导>(第三版)习题精选,仅包含部分经典习题,需要完整版习题答案请自行查找,本系列属于知识点巩固部分,搭配如下几个系列进行学习,可用于期末考试和考研 ...

  8. 控制是否展示_非线性控制(四)描述函数法

    注释:在传统教材中,稳定性理论还会介绍适用于线性子系统和非线性子系统串联在一起时的分析理论,即绝对稳定性理论,考虑到这套理论在自适应控制等的用处,将在以后的自适应部分进行适当介绍. 在经典控制理论中, ...

  9. 【工具使用系列】关于 MATLAB 非线性控制,你需要知道的事

    2019独角兽企业重金招聘Python工程师标准>>> 如何进行非线性控制 转载于:https://my.oschina.net/shamrocks/blog/1619908

  10. 《应用非线性控制》第一章(完)——介绍 1.3 本书的结构

    教材结构 因为非线性控制系统有着更加丰富且复杂的行为,因此它们的分析也相应得变得困难.从数学层面来说,困难来自于两个方面:1. 首先非线性方程不像线性方程,它们没有解析解,因此我们不能直接通过非线性方 ...

最新文章

  1. oracle 丁勇 从零开始学_8.3.1 多表查询分类
  2. mysql查询补丁更新_OS:服务器系统补丁及数据库补丁更新说明
  3. servlet设置cookie实验
  4. halcon学习(算子汇总)
  5. python实现二分查找算法_两种方法实现Python二分查找算法
  6. perl调用shell
  7. 解决:Google代码achartengine曲线代码报错问题(转)
  8. 从头捋一遍Java项目中的五大设计原则,就不信你学不会!
  9. tensorflow MySQL_tensorflow从入门到放弃....
  10. (转载)Linux启动过程详解
  11. 【CentOS 7架构16】,限制user_agent#171226
  12. NPAPI插件无法加载,有可能跟JDK相关
  13. 无代码动态数据可视化大屏
  14. 3D结构光摄像头深度算法介绍
  15. 关于结构光问题的总结
  16. win10更新安装会卡在44%怎么办
  17. Heatmap-based Vanishing Point boosts Lane Detection 论文翻译
  18. 视频压缩原理之 预测编码
  19. CAN协议扩展帧ID
  20. git merge命令

热门文章

  1. 一千啊计算机英语,计算机英语900句
  2. FastStone Capture:Windows系统下小巧好用的宝藏电脑截图软件
  3. bios 昂达h61c_Onda昂达主板BIOS,ONDA昂达H61N全固版(ver 3.00)主板BIOS 3.02版,主板BIOS,硬件驱动下载...
  4. smart原则_绩效指标如何设定?SMART原则轻松搞定
  5. 阿里巴巴全资收购中国网络配送平台饿了么
  6. python qq自动接收文件_python学习之 实现QQ自动发送消息
  7. WAP1.x协议栈浅析
  8. flash游戏和HTML5游戏,Flash动画和H5小游戏哪个更好?
  9. Ubuntu 18.04 安装 NVIDIA 显卡驱动超详细步骤
  10. FFmpeg源代码简单分析-通用-结构体分析-AVCodec