模糊逻辑学习--模糊推理过程

这里推荐搭建先看这个ppt,再看后面matlab的实现,这样你会很清晰,为了赚点积分,这里设置一下积分,抱歉大家了。

详细讲解模糊逻辑的ppt

模糊推理是使用模糊逻辑制定从给定输入到输出的映射的过程。然后,映射提供了基础,从中可以做出决策或识别出模式。模糊推理的过程涉及隶属函数逻辑运算If-Then规则中描述的所有部分。

本节介绍了模糊推理过程,并使用双输入,单输出,三规则小费问题的例子基本小费的问题,你在更详细的介绍看到的。下图显示了此示例的基本结构:

 

信息从左到右,从两个输入流到一个输出。规则的并行性质是模糊逻辑系统更重要的方面之一。逻辑不是从基于断点的模式之间进行尖锐的切换,而是从系统行为受一条规则或另一条规则支配的区域平稳地流动。

模糊推理过程包括五个部分:

模糊推理图显示模糊推理过程的所有部分-从模糊化通过去模糊化。

步骤1.模糊化输入

第一步是获取输入,并通过隶属函数确定输入所属的适当模糊集的程度。在Fuzzy Logic Toolbox™软件中,输入始终是一个清晰的数值,限于输入变量的论述范围(在这种情况下为0到10之间的间隔),而输出则是合格语言集中的模糊隶属度(总是介于0和1之间的间隔)。输入的模糊化等于表查找或功能评估。

该示例基于三个规则,每个规则都取决于将输入分解为许多不同的模糊语言集:服务差,服务好,食物腐烂,食物可口,等等。在评估规则之前,必须根据这些语言集中的每一个对输入进行模糊处理。例如,食物在多大程度上真正美味?下图显示了假设餐厅的食物(等级从0到10)通过语言的隶属度,其作为语言变量的美味程度。在这种情况下,我们将食物的等级评定为8,根据您对美味的图形化定义,美味成员关系函数的µ = 0.7。

以这种方式,每个输入都模糊了规则要求的所有合格成员资格函数。

步骤2.应用模糊运算符

在对输入进行模糊处理之后,您将知道每个规则对前提的每个部分的满意程度。如果给定规则的前提有一个以上的部分,则应用模糊算子获得一个数字,该数字表示该规则的前提的结果。然后将此数字应用于输出功能。模糊运算符的输入是来自模糊输入变量的两个或多个隶属度值。输出是单个真值。

如“ 逻辑运算”部分所述,可以为AND运算或OR运算填充任意数量的定义明确的方法。在工具箱中,支持两种内置的AND方法:min(最小)和prod(产品)。还支持两种内置的OR方法:max(maximum)和概率OR方法probor。的根据等式计算概率OR方法(也称为代数和)

probor a b)= a + b - ab

除了这些内置方法之外,您还可以通过编写任何函数并将其设置为选择的方法来为AND和OR创建自己的方法。

下图显示了工作中的OR运算符max,它评估了小费计算的规则3的前提。前项的两个不同部分(服务非常好,食物也很美味)的模糊隶属度值分别为0.0和0.7。模糊或运算符只需选择两个值中的最大值0.7,即可完成规则3的模糊运算。概率OR方法仍将得到0.7。

步骤3.应用蕴涵方法

在应用隐含方法之前,必须确定规则的权重。每个规则都有一个权重(0到1之间的一个数字),该权重将应用于前一个给定的数字。通常,此权重为1(如本例所示),因此对暗示过程完全没有影响。您可能会不时地想通过将一个规则的权重值更改为1而不是其他来加权。

在为每个规则分配了适当的权重之后,便会实施隐含方法。结果是由隶属度函数表示的模糊集,该模糊集适当地加权了归因于该模糊集的语言特征。结果使用与该前提关联的功能(单个数字)进行整形。隐含过程的输入是一个由先决条件给出的数字,而输出是一个模糊集。隐含实现每个规则。支持两种内置方法,它们与AND方法使用的功能相同:min(最小)将截断输出模糊集,而prod(乘积)将缩放输出模糊集。

步骤4.汇总所有输出

由于决策基于对FIS中所有规则的测试,因此必须以某种方式组合规则才能做出决策。聚合是将代表每个规则的输出的模糊集组合为单个模糊集的过程。对于每个输出变量,聚合仅发生一次,就在第五个也是最后一步,即去模糊化之前。聚合过程的输入是隐含过程为每个规则返回的截断输出函数的列表。聚合过程的输出是每个输出变量的一个模糊集。

只要聚合方法是可交换的(始终应该如此),那么执行规则的顺序就不重要了。支持三种内置方法:

  • max (最大值)

  • probor (概率OR)

  • sum (仅是每个规则的输出集的总和)

在下图中,所有这三个规则已放在一起,以显示每个规则的输出如何组合或聚合到单个模糊集中,该模糊集的隶属函数为每个输出(提示)值分配权重。

第5步。

输入 解模糊处理是一个模糊集(合计输出模糊集),并且输出是单个数字。尽管模糊有助于中间步骤中的规则评估,但每个变量的最终期望输出通常为单个数字。但是,模糊集的集合包含一系列输出值,因此必须对其进行去模糊处理,以便从该集中解析单个输出值。

支持五种内置的反模糊化方法:质心,平分线,最大值的中间值(输出集最大值的平均值),最大值的最大值和最小值的最大值。也许最流行的去模糊方法是质心计算,它返回曲线下方的区域中心,如下所示:

虽然总输出模糊集的覆盖范围是从0%到30%,但去模糊值在5%到25%之间。这些限制分别对应于cheapgenerous隶属函数的质心。

模糊推理图

模糊推理图是本节到目前为止介绍的所有较小图的合成。它同时显示您检查过的模糊推理过程的所有部分。信息流经模糊推理图,如下图所示。

在此图中,流程从左下方的输入开始向上,然后跨每一行或每个规则,然后向下的规则输出在右下方完成。从语言变量的模糊化一直到总输出的去模糊化,这种紧凑的流程可以立即显示所有内容。

下图显示了实际的全尺寸模糊推理图。在模糊推理图中有很多可以看的东西,但是当您习惯了它之后,就可以很快地学习到很多关于系统的知识。例如,从带有这些特定输入的图表中,您可以轻松地看到,蕴含方法是使用最小功能。该最大值函数被用于模糊或操作。规则3(前面显示的图中最底部的一行)对输出的影响最大。等等。规则浏览器中所描述的规则浏览器是一个MATLAB ®模糊推理图的实施。

 

  • 15
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
S7-300是西门子推出的一款小型可编程控制器(PLC),适用于工业自动化领域。SCL(Structured Control Language)是一种用于编程S7-300的高级语言,使用它可以完成复杂的控制逻辑。CSDN是国内知名的IT技术社区,提供了大量关于S7-300和SCL的教程和资源。 模糊逻辑(Fuzzy Logic)是一种数学工具,用于处理不确定和模糊的信息。与传统的逻辑不同,模糊逻辑引入了模糊集合、模糊推理和隶属度等概念,可以用来处理现实世界中存在的模糊问题。模糊逻辑在工业自动化领域中有着广泛的应用,能够处理各种复杂的控制逻辑。 S7-300 PLC提供了多种编程语言,包括图形化编程语言(Ladder Diagram)、指令列表(Instruction List)和高级结构化编程语言(Structured Text)。SCL就是其中一种结构化文本语言,它是在Instruction List的基础上发展而来的,具有结构化的特点,适合用于编写复杂控制逻辑。使用SCL语言编写PLC程序时,可以充分发挥模糊逻辑的优势,解决复杂的控制问题。 在CSDN上可以找到关于S7-300和SCL编程的教程和资源。这些资源可以帮助PLC工程师了解S7-300的基本原理和功能,并学习如何使用SCL语言编写控制程序。此外,CSDN上还有其他与S7-300相关的讨论和交流,可以帮助工程师解决在实际应用中遇到的问题。 总之,S7-300 PLC和SCL语言是工业自动化领域中常用的控制设备和编程语言,而模糊逻辑则是处理复杂控制问题的重要工具。对于有需要的工程师来说,通过CSDN上的相关资源,可以学习到更多关于S7-300和SCL的知识,提升在工业自动化领域的应用能力。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值