4.1模糊逻辑控制

一种采用模糊集合理论的控制技术,

将模糊数学应用于控制系统,也是一种非线性的智能控制系统。

采用IF条件判断语句和THEN结果语句的方式呈现,其中条件判断语句是利用人的常识判断对控制对象进行控制。

因此,所谓的模糊逻辑控制就是利用人的知识能力,模糊的进行系统控制的方法。

4.2控制系统的架构

4.2.1变量的定义

定义模糊化变量的函数:

FIS <<-addVar (FIS, varType, varName, varBounds)

FIS:模糊推论系统的名称,必须提供

varType:变量类型,必须指定是输入input还是输出output

varName:完整的变量名称

varBounds:变量值域区间,如:1:10

4.2.2输入与输出模糊化

模糊化输出一般采用最小法则

在R中可定义多种隶属函数,以便将变量模糊化

函数:高斯gaussMF/ 梯形trapMF/ 三角形triMF ( mfName, x, mfParams )

mfName:隶属函数名称字符串

x:隶属函数矢量区间

mfParams:若为gaussMF,输入的参数必须是三个数值的矢量,

其中c(1.5,0,1)中的三个数字代表标准差、平均数和最大值。

例:

Input1:

MF1=gaussMF(“low”,0,c(1.5,0,1))              [low/middle/high]

MF2…

MF3…

Input2:

MF4=trapMF(“few”,0:10,c(0,0,1,3,1))         [few/many]

MF5…

Output1:

MF6=triMF(“middle”,0:30,c(10,15,20,1))    [low/middle/high]

MF7…

MF8…

4.2.3逻辑知识库

又称模糊规则库,一般形式为“IF…and…then…”

在R中可定义模糊规则库,函数为addRule

例:FIS=addRule(FIS,c(3,1,1,1,2))

3,1,1分别代表input1中的MF3,input2的MF5,output1的MF6

第四个数代表权重,一般设定为1,

第五个数代表1=AND,2=OR

4.2.4逻辑判断

模仿人类采用模糊的概念进行判断,

应用之前的模糊规则库模糊推理得到模糊逻辑控制结果信号

4.2.5解模糊

将推论结果的模糊值转化为明确的控制信号数值,

函数:evalFIS(data,FIS)

data:推论结果的模糊值

FIS:模糊推论系统名称

4.3实例-对教学质量的评价:

注意,这里强调的是数据分析,这些数据怎么来的此处不做解释。

代码:

#求出各层次判断矩阵的权重值

#专家判断矩阵目标层

a=c(1,5,3,1/3, 1/5,1,1/3,1/7, 1/3,3,1,1/5, 3,7,5,1)

a=matrix(a, ncol=4, byrow=T)

ev=eigen(a)

lamda=ev$values[1]                        #取出数组第一个值

cil=(lamda-4)/3

crl=cil/0.9

w1=ev$vectors[,1]/sum(ev$vectors[,1])

#准则层1 教学内容

b1=c(1,3/5,3/7,3, 5/3,1,5/7,5, 7/3,7/5,1,7, 1/3,1/5,1/7,1)

b1=matrix(b1, ncol=4, byrow=T)

ev=eigen(b1)

lamda=ev$values[1]

ci21=(lamda-4)/3

cr21=ci21/0.9

cr21

w21=ev$vectors[,1]/sum(ev$vectors[,1])

#准则层2 教学态度

b2=c(1,7/5,7,7/3, 5/7,1,5,5/3, 1/7,1/5,1,1/3, 3/7,3/5,3,1)

b2=matrix(b2, ncol=4, byrow=T)

ev=eigen(b2)

lamda=ev$values[1]

ci22=(lamda-4)/3

cr22=ci22/0.9

cr22

w22=ev$vectors[,1]/sum(ev$vectors[,1])

#准则层3 教学方法

b3=c(1,5/3,5,5/7, 3/5,1,3,3/7, 1/5,1/3,1,1/7, 7/5,7/3,7/1,1)

b3=matrix(b3, ncol=4, byrow=T)

ev=eigen(b3)

lamda=ev$values[1]

ci23=(lamda-4)/3

cr23=ci23/0.9

cr23

w23=ev$vectors[,1]/sum(ev$vectors[,1])

#准则层4 教学效果

b4=c(1,5,5/3,5/7, 1/5,1,1/3,1/7, 3/5,3/1,1,3/7, 7/5,7,7/3,1)

b4=matrix(b4, ncol=4, byrow=T)

ev=eigen(b4)

lamda=ev$values[1]

ci24=(lamda-4)/3

cr24=ci24/0.9

cr24

w24=ev$vectors[,1]/sum(ev$vectors[,1])

----------以上代码若有不懂的,请移步本人的另一篇文章《R语言-层次分析法--AHP》-------

-----------------以下数据仍是需要自己调查计算出来的-----------------

由上面的表格得到下面的矩阵。

代码:

#运用模糊隶属度矩阵R/K与各层次判断矩阵权重W,求模糊评价

#下述r1,r2,r3,r4为隶属度矩阵,数字为500名大学生问卷在优良中可差五等级比例%

r1=c(0.146,0.500,0.192,0.146,0.016,0.442,0.320,0.080,0.098,0.060,0.220,0.674,0.088,0.012,0.006, 0.374,0.296,0.210,0.080,0.040)

r1=matrix(r1, ncol=5, byrow=T)

r2=c(0.420,0.322,0.154,0.090,0.014,0.394,0.526,0.068,0.006,0.006,0.314,0.286,0.290,0.060,0.050, 0.210,0.414,0.178,0.108,0.090)

r2=matrix(r2, ncol=5, byrow=T)

r3=c(0.338,0.412,0.130,0.100,0.020,0.366,0.296,0.186,0.140,0.012,0.290,0.318,0.174,0.118,0.100, 0.356,0.370,0.150,0.120,0.004)

r3=matrix(r3, ncol=5, byrow=T)

r4=c(0.260,0.404,0.238,0.060,0.038,0.288,0.464,0.118,0.080,0.050,0.288,0.268,0.240,0.100,0.104, 0.226,0.376,0.162,0.210,0.026)

r4=matrix(r4, ncol=5, byrow=T)

#教学质量单因素一级模糊评价k1,k2,k3,k4

k1=w21%*%r1

k2=w22%*%r2

k3=w23%*%r3

k4=w24%*%r4

#教学质量综合二级评价p

k=c(k1,k2,k3,k4)

k=matrix(k, ncol=5, byrow=T)

#k为一级模糊评价矩阵

#我们最终想得到的是二级模糊综合评估

#即用矩阵K和前面求得的判断矩阵的权重w,做矩阵相乘

p=w1%*%k

--------------------------------以上便是全部代码-----------------------------------------------------------

----------------------下面我给出最后二级模糊综合评估的结果,教大家如何分析结果-----------------------

分析:

27.83%为优,40.72%为良,16.68%为中,11.12%为可,3.65%为差。

大小比较:40.72%>27.83%>16.68%>11.12%>3.65%

所以综合评价结果为“良”。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

【还不知道要怎么用改数据的看下面这个例子】

除去教学效果,即不需要r4了,也就不需要计算w24了。

修改后代码:

#专家判断矩阵目标层

a=c(1,5,3, 1/5,1,1/3, 1/3,3,1)

a=matrix(a, ncol=3, byrow=T)

ev=eigen(a)

#取出数组第一个值

lamda=ev$values[1]

cil=(lamda-3)/3

crl=cil/0.58

w1=ev$vectors[,1]/sum(ev$vectors[,1])

#准则层1 教学内容

b1=c(1,3/5,3/7, 5/3,1,5/7, 7/3,7/5,1)

b1=matrix(b1, ncol=3, byrow=T)

ev=eigen(b1)

lamda=ev$values[1]

ci21=(lamda-3)/3

cr21=ci21/0.58

cr21

w21=ev$vectors[,1]/sum(ev$vectors[,1])

#准则层2 教学态度

b2=c(1,7/5,7, 5/7,1,5, 1/7,1/5,1)

b2=matrix(b2, ncol=3, byrow=T)

ev=eigen(b2)

lamda=ev$values[1]

ci22=(lamda-3)/3

cr22=ci22/0.58

cr22

w22=ev$vectors[,1]/sum(ev$vectors[,1])

#准则层3 教学方法

b3=c(1,5/3,5, 3/5,1,3, 1/5,1/3,1)

b3=matrix(b3, ncol=3, byrow=T)

ev=eigen(b3)

lamda=ev$values[1]

ci23=(lamda-3)/3

cr23=ci23/0.58

cr23

w23=ev$vectors[,1]/sum(ev$vectors[,1])

#底下 r1,r2,r3为隶属度矩阵,数字为500名大学生问卷在优良中可差五等级比例%

r1=c(0.146,0.500,0.192,0.146,0.016,0.442,0.320,0.080,0.098,0.060,0.220,0.674,0.088,0.012,0.006, 0.374,0.296,0.210,0.080,0.040)

r1=matrix(r1, ncol=5, byrow=T)

r2=c(0.420,0.322,0.154,0.090,0.014,0.394,0.526,0.068,0.006,0.006,0.314,0.286,0.290,0.060,0.050, 0.210,0.414,0.178,0.108,0.090)

r2=matrix(r2, ncol=5, byrow=T)

r3=c(0.338,0.412,0.130,0.100,0.020,0.366,0.296,0.186,0.140,0.012,0.290,0.318,0.174,0.118,0.100, 0.356,0.370,0.150,0.120,0.004)

r3=matrix(r3, ncol=5, byrow=T)

#教学质量单因素一级模糊评价k1,k2,k3

k1=w21%*%r1

k2=w22%*%r2

k3=w23%*%r3

#教学质量综合二级评价p

k=c(k1,k2,k3)

k=matrix(k, ncol=5, byrow=T)

p=w1%*%k

R语言-模糊逻辑控制相关推荐

  1. R语言【逻辑控制】【数学运算】

    目录 一.逻辑运算符 二.布尔运算符 索引及其相关内容 三.数学运算符 二次函数 三角函数 极坐标 以e为底的指数函数 对数函数 四.矩阵相关运算 1.向量的内积 2.向量的外积 3.矩阵的转置 4. ...

  2. R 语言中的高级图像处理包

    最新的 magick 包是为能够在 R 中更现代化.简单化高质量图像处理而进行的一次努力.该包封装了目前最强大的开源图片处理库 ImageMagick STL . ImageMagick 库具有大量功 ...

  3. R语言笔记3:提取R对象的子集

    R语言基础系列前情提要: 1数据类型(向量.数组.矩阵. 列表和数据框) 2读写数据所需的主要函数.与外部环境交互 Subsetting R Objects 取子集的三种基本方法 [ :"单 ...

  4. 《R语言实战》读书笔记--第一章 R语言介绍

    1.典型的数据分析过程可以总结为一下图形: 注意,在模型建立和验证的过程中,可能需要重新进行数据清理和模型建立. 2.R语言一般用 <- 作为赋值运算符,一般不用 = ,原因待考证.用-> ...

  5. R语言爬取imdb电影海报

    提前声明,这不是一个好的例子,所以不要向我学习.让我先冷静一下! OK,开始,今天我们开始从下面链接爬虫. http://www.imdb.com/search/title?count=100& ...

  6. python和r语言比较_Python和R语言之分析对比 - 数据分析

    在Python中调用R或在R中调用Python,为什么是"和"而不是"或"? 在互联网中,关于"R和Python"的文章,排名前十的搜索结果 ...

  7. r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf

    ​注: 本文是R语言sf包的核心开发者和维护者--来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位.功能. ...

  8. 1071svm函数 r语言_R语言机器学习之核心包e1071 - 数据分析

    R语言有很多包可以做机器学习(Machine Learning)的任务.机器学习的任务主要有有监督的学习方式和无监督的学习方式. 有监督学习:在正确结果指导下的学习方式,若是正确结果是定性的,属于分类 ...

  9. r语言regexpr函数_R语言学习笔记-文本挖掘之字符处理(1)

    在挖掘分析的过程当中对字符串的处理是极为重要的,且出现也较为频繁,R语言作为当前最为流行的开源数据分析和可视化平台,虽然文本的处理并不是它的强项, 但是R语言还是包含大量的字符串操作工具,本章着重整理 ...

最新文章

  1. 利用正高Dolphin智能广告监测系统做好违法广告监测
  2. 调整ViewState的位置,让你的asp.net页面对搜索引擎更友好
  3. 第一篇博客,用以规划我的编程人生
  4. kernel panic 和 kernel Oops
  5. JPA 2 | 获取联接以及我们是否应该使用它们
  6. 论文浅尝 - AAAI2020 | 基于知识图谱进行对话目标规划的开放域对话生成技术
  7. nginx php 协同工作,nginx和php之间工作原理
  8. Jquery中AJAX的应用
  9. CS229 Lecture 17
  10. 热炉法则:规章制度面前人人平等 | 每天成就更大成功
  11. js基础知识总结大全
  12. Win10如何将语言栏移回右下角
  13. SAP-MM-PA精解分析系列之供应商(02)-账户组解析
  14. 什么叫wipe,安卓用户如何去wipe?
  15. c语言中switch0,C语言switch0.ppt
  16. vscode怎样新建项目和文件
  17. 核芯显卡和集成显卡、独立显卡的区别是什么
  18. ec12编码器电路图_光电编码器电路图.DOC
  19. 关于移动端token解决方案
  20. 软考中级系统集成项目管理工程师自学好不好过?

热门文章

  1. h5微信内跳转ios商店报错
  2. 一篇文章教你修改软件版权
  3. 测试测控软件,测控软件技术
  4. 螺旋天线有方向性吗_新型谐振式螺旋天线的工作原理、关键技术及实验结果
  5. E: 无法下载 https://download.docker.com/linux/ubuntu/dists/Xenial/stable/binary-amd64/Packages 404 Not
  6. 第一篇文章~~~~~~~~~~~~~~
  7. 双边网格学习、Bilateral Learning
  8. PS中合并图层的快捷键?
  9. JAVAFX实现多媒体播放器
  10. 红色警报核弹大爆炸,恐怖!铃声 红色警报核弹大爆炸,恐怖!手...