首页 > 其他分享 >在matlab中使用模糊编辑器实现模糊控制器的设计详解

在matlab中使用模糊编辑器实现模糊控制器的设计详解

时间:2022-11-04 11:15:52浏览次数:87  
标签:控制器 ZO NM NB 模糊 trimf 编辑器 matlab

目录

一、理论基础

二、核心程序

三、测试结果

一、理论基础

所谓模糊控制技术是指通过模糊集合和模糊逻辑等原理,并且和经典的控制理论相结合,并通过模拟人类的思考方式,对一些难以建模的控制对象进行控制的一种控制策略。模糊控制器的模糊规则的制定是建立在专家经验的基础之上的,即通过具有丰富经验的专家对控制对象进行分析,并基于个人经验建立一套合理的控制机制,通过参数化的方式将这些经验用具体的数学参数和公式进行建模,从而得到一个符合实际情况的控制。这种控制策略通过使用专家经验知识,将专家的经验转换为控制方式,对过程复杂、模型不精确的控制系统进行有效的控制。这种将个人的经验转换为具体的数学公式,并通过模糊数学理论将其转换为模糊控制的过程,就是模糊控制理论。通常情况下,模糊控制器的基本结构如图所示。

 

 

从图的模糊控制器的基本结构图可知,模糊控制器的核心部分包括控制变量计算,模糊量化处理,模糊控制规则,模糊决策以及逆模糊化处理五个模块。整个控制系统通过计算机编程来实现的,将模糊控制器的反馈输出信号和参考输入信号的误差作为整个模糊控制器的输入控制信号,将误差信号转换为模糊量,并通过模糊语言来表示,从而得到的模糊语言集合的一个子集e,然后由子集e和模糊控制规则R,然后根据模糊推理的合成规则进行模糊决策,得到模糊控制量u,u的关系。

一个标准的模糊控制系统和传统的控制方法想比较有如下几个优点:首先,模糊控制器具有较为广泛的应用范围,这种特性比较适合应用在非线性系统中;其次,模糊控制器的控制过程独立于控制对象,且对于一些较为复杂的难以建模的控制对象,可以通过模糊控制器进行有效的控制。模糊控制器具有较好的鲁棒性,对被控对象的特征变化不敏感,而且模糊控制器的设计参数可随时根据需要进行调整。模糊控制以计算机为主,模糊控制的数学计算都由计算机来完成,得到的结果精确,表现出很强的智能性,操作简单易实现。

模糊控制器中的模糊控制规则表格的制定是通过模糊条件语句来设计的,所以模糊控制器本质上也是一种模糊语言控制器,即一个标准的模糊化控制器包括模糊接口、知识库和推理以及解模糊接口。

对于一个模糊输入变量,模糊子集通的划分主要三种类型:

五个模糊集合的控制变量,即负大(Negative big,NB),负小(Negative small,NS),零(Zero,ZO),正小(Positive small,PS),正大(Positive big,PB);

六个模糊集合的控制变量,即负大(Negative big,NB),负中(Negative middle,NM),负小(Negative small,NS),零(Zero,ZO),正小(Positive small,PS),正中(Positive middle,PM),正大(Positive big,PB);

七个模糊集合的控制变量,即负大(Negative big,NB),负中(Negative middle,NM),负小(Negative small,NS),零负(Negative Zero,NZ),零正(Positive Zero,NZ),正小(Positive small,PS),正中(Positive middle,PM),正大(Positive big,PB)。

根据控制器控制精度的不同需求,选择不同划分精度的模糊输入变量。

首先对于模糊控制库,其结构上由一个规则库和一个数据库两个部分构成。其中规则库中保存的是模糊规则,模糊规则是一种基于专家经验知识,并根据某种推理获得的模糊语言表现;而数据库中保存的是输入、输出的模糊子集的隶属函数值。

其次对于模糊控制器的推理过程,其主要通过模糊控制器所输入的模糊变量,通过模糊规则来实现模糊推理来获得模糊控制输出量。此输出量是一种模糊矢量信号,需要通过模糊清晰化处理获得精确的控制输出作为最终的控制量,即解模糊过程。

在一个完整的模糊控制系统中,通过根据输入控制器的个数,将模糊控制器划分为一维模糊控制器,二维模糊控制器以及多维模糊控制器,即通过模糊控制器的输入个数定位模糊控制器的维度,图2所示的是不同输入格式的模糊控制器结构图.

 

 

模糊控制器的语言等级,从负最大到正最大依次为:NB负大、NM负中、NS负小、ZO零、PS正小、PM正中、PB正大。选取模糊语言输入变量E、Ec和输出变量、的模糊值域分别为{NB,NM,NS,ZO,PS,PM,PB}。

在MATLAB中,使用模糊函数编辑工具设计上述讲述的模糊模糊集和隶属函数。

 

 在图的模糊控制器工具箱设计界面,根据模糊隶属函数的选择原则,系统中的NB和PB采用正态型分布;NM、NS、20、Ps、PM则采用三角形分布,模糊控制器输入输出参数的隶属度函数图。

 

 

 图4 模糊控制器输入输出参数隶属度函数

通过上面的设置,可以获得如下结构的模糊控制器:

 

 根据模糊规则的性质,并由模糊语言的等级可以得知,模糊控制规则有49条模糊条件语句。故本文所建立的模糊规则表如下所示。

 

 

 

 

上述模糊规则,其相应的判决条件如下所示:

if (E is NB) and (Ec is NB) then (Kp is PB) and (Ki is NB)

if (E is NM) and (Ec is NB) then (Kp is PB) and (Ki is NB)

if (E is NS) and (Ec is NB) then (Kp is PM) and (Ki is NB)

if (E is ZO) and (Ec is NB) then (Kp is PM) and (Ki is NM)

if (E is PS) and (Ec is NB) then (Kp is PS) and (Ki is NM)

if (E is PM) and (Ec is NB) then (Kp is PS) and (Ki is ZO)

if (E is PB) and (Ec is NB) then (Kp is ZO) and (Ki is ZO)

if (E is NB) and (Ec is NM) then (Kp is PB) and (Ki is NB)

if (E is NM) and (Ec is NM) then (Kp is PB) and (Ki is NB)

if (E is NS) and (Ec is NM) then (Kp is PM) and (Ki is NM)

if (E is ZO) and (Ec is NM) then (Kp is PM) and (Ki is NM)

if (E is PS) and (Ec is NM) then (Kp is PS) and (Ki is NS)

if (E is PM) and (Ec is NM) then (Kp is ZO) and (Ki is ZO)

if (E is PB) and (Ec is NM) then (Kp is ZO) and (Ki is ZO)


 

反模糊化处理运算主要是根据模糊推理模块所产生的模糊集求出控制器的输出。目前为止,较为常用的反模糊化处理算法有最大隶属度法、加权平均法、隶属度限幅元素平均法以及重心法等。本文将使用重心法来进行反模糊化处理运算,该方法通过选择模糊隶属函数曲线与横坐标围成面积的重心为代表点输出,其数学计算公式为:

 

 最后,对于一个二维输入的模糊控制器,通过一个三维坐标图绘制出模糊控制的输出与输入之间的关系。该三维坐标图的纵坐标表示模糊控制器输出控制量的曲面。曲面用简洁的形式表现出模糊控制器的所有信息,采用MATLAB模糊控制工具箱绘制本文所设计的模糊控制器的控制面如图所示。

二、核心程序

 

 我们的模糊规则fis文件如下:

[System]
Name='files2'
Type='mamdani'
Version=2.0
NumInputs=2
NumOutputs=2
NumRules=49
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'
[Input1]
Name='E'
Range=[-6 6]
NumMFs=7
MF1='NB':'gauss2mf',[0.5182 -6.39 0.5182 -5.61]
MF2='NM':'trimf',[-6 -4 -2]
MF3='NS':'trimf',[-4 -2 0]
MF4='ZO':'trimf',[-2 0 2]
MF5='PS':'trimf',[0 2 4]
MF6='PM':'trimf',[2 4 6]
MF7='PB':'gauss2mf',[0.5182 5.61 0.5182 6.39]
[Input2]
Name='Ec'
Range=[-6 6]
NumMFs=7
MF1='NB':'gauss2mf',[0.5182 -6.39 0.5182 -5.61]
MF2='NM':'trimf',[-6 -4 -2]
MF3='NS':'trimf',[-4 -2 0]
MF4='ZO':'trimf',[-2 0 2]
MF5='PS':'trimf',[0 2 4]
MF6='PM':'trimf',[2 4 6]
MF7='PB':'gauss2mf',[0.5182 5.61 0.5182 6.39]
[Output1]
Name='Kp'
Range=[-6 6]
NumMFs=7
MF1='NB':'trimf',[-8 -6 -4]
MF2='NM':'trimf',[-6 -4 -2]
MF3='NS':'trimf',[-4 -2 0]
MF4='ZO':'trimf',[-2 0 2]
MF5='PS':'trimf',[0 2 4]
MF6='PM':'trimf',[2 4 6]
MF7='PB':'trimf',[4 6 8]
[Output2]
Name='Ki'
Range=[-6 6]
NumMFs=7
MF1='NB':'trimf',[-8 -6 -4]
MF2='NM':'trimf',[-6 -4 -2]
MF3='NS':'trimf',[-4 -2 1.776e-015]
MF4='ZO':'trimf',[-2 0 2]
MF5='PS':'trimf',[1.776e-015 2 4]
MF6='PM':'trimf',[2 4 6]
MF7='PB':'trimf',[4 6 8]
[Rules]
1 1, 7 1 (1) : 1
2 1, 7 1 (1) : 1
3 1, 6 1 (1) : 1
4 1, 6 2 (1) : 1
5 1, 5 2 (1) : 1
6 1, 5 4 (1) : 1
7 1, 4 4 (1) : 1
1 2, 7 1 (1) : 1
2 2, 7 1 (1) : 1
3 2, 6 2 (1) : 1
4 2, 6 2 (1) : 1
5 2, 5 3 (1) : 1
6 2, 4 4 (1) : 1
7 2, 4 4 (1) : 1
1 3, 6 2 (1) : 1
2 3, 6 2 (1) : 1
3 3, 6 3 (1) : 1
4 3, 5 3 (1) : 1
5 3, 4 4 (1) : 1
6 3, 3 5 (1) : 1
7 3, 2 5 (1) : 1
1 4, 6 2 (1) : 1
2 4, 5 3 (1) : 1
3 4, 5 3 (1) : 1
4 4, 4 4 (1) : 1
5 4, 3 5 (1) : 1
6 4, 2 5 (1) : 1
7 4, 2 6 (1) : 1
1 5, 5 3 (1) : 1
2 5, 5 3 (1) : 1
3 5, 4 4 (1) : 1
4 5, 3 5 (1) : 1
5 5, 3 5 (1) : 1
6 5, 2 6 (1) : 1
7 5, 2 6 (1) : 1
1 6, 4 4 (1) : 1
2 6, 4 4 (1) : 1
3 6, 3 5 (1) : 1
4 6, 2 6 (1) : 1
5 6, 2 6 (1) : 1
6 6, 2 7 (1) : 1
7 6, 1 7 (1) : 1
1 7, 4 4 (1) : 1
2 7, 3 4 (1) : 1
3 7, 3 5 (1) : 1
4 7, 2 6 (1) : 1
5 7, 2 7 (1) : 1
6 7, 1 7 (1) : 1
7 7, 1 7 (1) : 1

三、测试结果

 

 08-54

标签:控制器,ZO,NM,NB,模糊,trimf,编辑器,matlab
From: https://www.cnblogs.com/matlabfpga/p/16857049.html

相关文章

  • 基于gamebased算法的动态频谱访问matlab仿真
    目录一、理论基础二、核心程序三、测试结果一、理论基础随着越来越多的新型无线应用,对频谱资源的需求越来越大。在这种情况下,这是举世公认的认知无线电的出现已经成为......
  • 模糊查询并且对HBase进行CRUD的操作
     我这是两次的实验用的一个项目,第二次的实验是在第一次上的实验的基础上增加而来     pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="......
  • matlab画三维图像
    当我们学习surface命令时,已经看到了三维作图的一些端倪。在matlab中我么可以调用mesh(x,y,z)函数来产生三维图像。首先,我们用z=cos(x)sin(y)在-2pi≤x,y≤2pi内的图像来......
  • ckeditor增加自定义工具栏暨百度编辑器上传WORD文档并保留源格式自动填充到编辑框
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘......
  • kindeditor实现导入word并将内容显示到编辑器中
    ​ 项目需求可发布文章需求涉及到富文本编辑器经过查阅我选择了较为简便不需要后端支持可独立完成的tinymce框架官方文档也是相当完整虽然都是全英文但是有强大的......
  • kindeditor粘贴word里图文内容到编辑器中
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-......
  • [Java web]-- jquery自动填充input框(如百度搜索一样,出现模糊提示)
    一、基本思路如下 第一个html页面:<htmllang="en"><head>  <metacharset="GBK"/>  <title>页面</title>  <linkrel="stylesheet"href="http://code.jq......
  • 3、高斯模糊
    1、解释高斯滤波是一种线性平滑滤波。高斯滤波是对整幅图像进行加权平均的过程,每一个像素点的值都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤......
  • vue富文本编辑器
    Vue-Quill-Editor主流富文本编辑器对比前言:vue中很多项目都需要用到富文本编辑器,在使用了ueditor和tinymce后,发现并不理想。所以果断使用vue-quill-editor来实现。wan......
  • 富文本编辑器 quill.js 开发(二): 升级与表格功能
    前言在富文本编辑器场景中,表格是一种不可忽视的功能,但是在当前quill.js的正式版本(1.x)中,却不支持此功能所以本文承接上文链接,来讲述下quill.js升级到2.x......