模糊控制实现
21. 如何通过模糊控制实现自适应系统?
21. 如何通过模糊控制实现自适应系统?21、如何通过模糊控制实现自适应系统?在当今科技飞速发展的时代,自适应系统在众多领域中发挥着至关重要的作用。
从工业自动化到智能交通,从智能家居到医疗设备,自适应系统能够根据环境的变化和输入的不确定性,自动调整自身的参数和行为,以达到最优的性能和效果。
而模糊控制作为一种智能控制方法,为实现自适应系统提供了一种有效的途径。
那么,什么是模糊控制呢?简单来说,模糊控制是一种基于模糊逻辑的控制方法,它不像传统的控制方法那样依赖于精确的数学模型,而是能够处理和利用模糊性和不确定性的信息。
在实际应用中,很多系统的行为和特性往往难以用精确的数学模型来描述,比如人的思维、判断和决策过程,或者一些复杂的非线性系统。
而模糊控制正是为了解决这类问题而应运而生的。
要通过模糊控制实现自适应系统,首先需要对系统进行模糊化处理。
这就意味着将系统的输入和输出变量转化为模糊集合。
例如,对于温度这个输入变量,我们可以定义“低温”、“中温”和“高温”等模糊集合。
同样,对于输出变量,比如风扇的转速,我们可以定义“慢速”、“中速”和“快速”等模糊集合。
接下来,要建立模糊规则库。
模糊规则库是模糊控制的核心部分,它包含了一系列基于专家经验或实验数据的规则。
这些规则通常以“如果……那么……”的形式表示。
比如,“如果温度是高温,那么风扇转速应该是快速”。
通过制定合理的模糊规则,可以使系统在不同的输入情况下做出相应的调整。
在模糊推理过程中,根据输入变量所属的模糊集合以及模糊规则库,通过一定的推理算法来确定输出变量所属的模糊集合。
这个过程类似于人类的推理和判断,是基于模糊逻辑进行的。
为了得到具体的输出值,还需要进行去模糊化处理。
去模糊化的方法有很多种,常见的有重心法、最大隶属度法等。
通过去模糊化,将模糊的输出集合转化为精确的数值,从而实现对系统的控制。
在实现自适应系统的过程中,模糊控制具有很多优势。
首先,它对系统模型的精确性要求不高,能够适应那些难以建立精确数学模型的系统。
模糊控制系统及其MATLAB实现
1.模糊控制的相关理论和概念1.1 模糊控制的发展模糊控制理论是在美国加州伯克利大学的L. A.Zadeh教授于1965年建立的模糊集合论的数学基础上发展起来的。
之后的几年间Zadeh又提出了模糊算法、模糊决策、模糊排序、语言变量和模糊IF-THEN规则等理论,为模糊理论的发展奠定了基础。
1975年, Mamdan和Assilian创立了模糊控制器的基本框架,并用于控制蒸汽机。
1978年,Holmblad和Ostergaard为整个工业过程开发出了第一个模糊控制器——模糊水泥窑控制器。
20世纪80年代,模糊控制开始在工业中得到比较广泛的应用,日本仙台地铁模糊控制系统的成功应用引起了模糊领域的一场巨变。
到20世纪90年代初,市场上已经出现了大量的模糊消费产品。
近30 年来, 因其不依赖于控制对象的数学模型、鲁棒性好、简单实用等优点, 模糊控制已广泛地应用到图像识别、语言处理、自动控制、故障诊断、信息检索、地震研究、环境预测、楼宇自动化等学科和领域, 并且渗透到社会科学和自然科学许多分支中去, 在理论和实际运用上都取得了引人注目的成果。
1.2 模糊控制的一些相关概念用隶属度法来定义论域U中的集合A,引入了集合A的0-1隶属度函数,用A(x) 表示,它满足:A(x)用0-1之间的数来表示x属于集合A的程度,集合A等价与它的隶属度函数A(x)模糊系统是一种基于知识或基于规则的系统。
它的核心就是由所谓的IF-THEN规则所组成的知识库。
一个模糊的IF-THEN规则就是一个用连续隶属度函数对所描述的某些句子所做的IF-THEN形式的陈述。
例如:如果一辆汽车的速度快,则施加给油门的力较小。
这里的“快”和“较小”分别用隶属度函数加以描述。
模糊系统就是通过组合IF-THEN规则构成的。
构造一个模糊系统的出发点就是要得到一组来自于专家或基于该领域知识的模糊IF-THEN规则,然后将这些规则组合到单一系统中。
不同的模糊系统可采用不用的组合原则。
模糊控制算法原理
模糊控制算法原理
模糊控制是一种基于经验的控制方法,它可以处理不确定性、模糊性和复杂性等问题,因此在工业控制、自动化、机器人等领域得到了广泛应用。
模糊控制算法的基本原理是将输入变量和输出变量映射成模糊集合,通过模糊推理来得到控制输出。
在这个过程中,需要使用模糊逻辑运算和模糊推理规则进行计算,最终得到模糊输出,再通过去模糊化转换为实际控制信号。
模糊控制算法的关键是如何构建模糊规则库。
规则库是由一系列模糊规则组成的,每个模糊规则包括一个前提和一个结论。
前提是由输入变量的模糊集合组成的,结论是由输出变量的模糊集合组成的。
在构建规则库时,需要依据专家经验或实验数据来确定模糊集合和模糊规则。
模糊控制算法的实现过程包括模糊化、模糊推理和去模糊化三个步骤。
模糊化是将输入变量映射成模糊集合的过程,它可以通过隶属度函数将输入变量的值转换为对应的隶属度值,表示它属于各个模糊集合的程度。
模糊推理是根据模糊规则库进行推理的过程,它可以通过模糊逻辑运算来计算各个规则的置信度,进而得到模糊输出。
去模糊化是将模糊输出转换为实际控制信号的过程,它可以通过一些去模糊化方法来实现,比如最大隶属度法、平均值法等。
模糊控制算法的优点是可以处理不确定性和模糊性,适用于复杂系统的控制;缺点是需要依赖专家经验或实验数据来构建规则库,而且计算复杂度较高,运算速度较慢。
因此,在实际应用中需要根据具体情况来选择控制算法。
模糊控制算法是一种基于经验的控制方法,可以处理不确定性、模糊性和复杂性等问题,在工业控制、自动化、机器人等领域得到了广泛应用。
在实际应用中,需要根据具体情况来选择控制算法,以保证控制效果和运算速度的平衡。
模糊pid控制-python实现
模糊pid控制 python实现模糊PID控制(Fuzzy PID control)是一种基于模糊逻辑的控制方法,它结合了模糊控制和经典PID控制的优点,可以在复杂和不确定的环境中实现精确的控制。
本文将介绍模糊PID控制的原理、实现方法以及在Python中的应用。
一、模糊PID控制的原理PID控制是一种经典的控制方法,它通过比较实际输出与期望输出之间的误差,根据比例、积分和微分三个参数进行调节,使系统输出逐渐趋近于期望值。
然而,传统的PID控制方法在面对非线性、时变和不确定性系统时表现不佳。
模糊PID控制通过引入模糊逻辑来解决传统PID控制的问题。
模糊逻辑是一种能够处理模糊信息的数学方法,它可以将模糊的输入映射到模糊的输出。
模糊PID控制器通过将误差、误差变化率和误差积分三个输入量模糊化,然后根据一组模糊规则进行推理,得到模糊输出。
最后,通过解模糊化的方法将模糊输出转化为具体的控制量。
二、模糊PID控制的实现方法1. 模糊化模糊化是将具体的输入量映射到模糊集合上的过程。
常用的模糊化方法有三角隶属函数、梯形隶属函数和高斯隶属函数等。
根据具体的问题和经验,选择合适的隶属函数进行模糊化。
2. 规则库规则库是模糊PID控制的核心。
它包含了一组模糊规则,用于根据输入量的模糊值推理出输出量的模糊值。
模糊规则一般采用IF-THEN的形式,例如“IF 误差是A1 AND 误差变化率是B2 THEN 输出是C3”。
规则库的设计需要根据具体问题进行,可以基于经验或者专家知识。
3. 推理机制推理机制是根据模糊规则进行推理的过程。
常用的推理方法有最大最小合成、模糊推理和模糊推理和等。
推理机制将模糊输入与规则库进行匹配,然后根据匹配的程度计算出模糊输出的隶属度。
4. 解模糊化解模糊化是将模糊输出转化为具体的控制量的过程。
常用的解模糊化方法有最大隶属度法、面积法和重心法等。
解模糊化方法根据模糊输出的隶属度分布,计算出具体的控制量。
控制系统中的模糊控制算法设计与实现
控制系统中的模糊控制算法设计与实现现代控制系统在实际应用中,往往面临着多变、复杂、非线性的控制问题。
传统的多变量控制方法往往无法有效应对这些问题,因此,模糊控制算法作为一种强大的控制手段逐渐受到广泛关注和应用。
本文将从控制系统中的模糊控制算法的设计和实现两个方面进行介绍,以帮助读者更好地了解和掌握这一领域的知识。
一、模糊控制算法的设计1. 模糊控制系统的基本原理模糊控制系统是一种基于模糊逻辑的控制系统,其基本思想是通过将输入和输出变量模糊化,利用一系列模糊规则来实现对系统的控制。
模糊控制系统主要由模糊化、规则库、模糊推理和解模糊四个基本部分组成,其中规则库是模糊控制系统的核心部分,包含了一系列的模糊规则,用于描述输入和输出变量之间的关系。
2. 模糊控制算法的设计步骤(1)确定输入和输出变量:首先需要明确系统中的输入和输出变量,例如温度、压力等。
(2)模糊化:将确定的输入和输出变量进行模糊化,即将其转换为模糊集合。
(3)建立模糊规则库:根据实际问题和经验知识,建立一系列模糊规则。
模糊规则关联了输入和输出变量的模糊集合之间的关系。
(4)模糊推理:根据当前的输入变量和模糊规则库,利用模糊推理方法求解输出变量的模糊集合。
(5)解模糊:将求解得到的模糊集合转换为实际的输出值,常用的方法包括最大值法、加权平均法等。
3. 模糊控制算法的设计技巧(1)合理选择输入和输出变量的模糊集合:根据系统的实际需求和属性,选择合适的隶属函数,以便更好地描述系统的特性。
(2)精心设计模糊规则库:模糊规则库的设计是模糊控制算法的关键,应根据实际问题与经验知识进行合理的规则构建。
可以利用专家经验、试验数据或者模拟仿真等方法进行规则的获取和优化。
(3)选用合适的解模糊方法:解模糊是模糊控制算法中的一项重要步骤,选择合适的解模糊方法可以提高控制系统的性能。
常用的解模糊方法有最大值法、加权平均法、中心平均法等,应根据系统的需求进行选择。
结合实例完成模糊控制算法的原理与实现
结合实例完成模糊控制算法的原理与实现一、引言模糊控制算法是一种基于模糊逻辑的控制算法,它可以在处理模糊或不确定性问题时提供一种有效的解决方案。
本文将从模糊控制算法的基本原理、实现步骤、实例应用等方面进行详细阐述。
二、模糊控制算法的基本原理1. 模糊集合在传统的数学中,集合是由元素组成的,而在模糊数学中,集合可以是由隶属度函数描述的元素组成。
隶属度函数可以将元素划分为不同程度上属于该集合的部分,这就是模糊集合。
例如:假设有一个温度传感器,它可以测量当前环境温度,并将其表示为一个值。
我们可以定义一个“舒适”的温度范围为20到25摄氏度,并使用一个隶属度函数来描述这个范围内每个温度值的隶属程度。
这样就形成了一个“舒适”温度范围的模糊集合。
2. 模糊逻辑在传统逻辑中,命题只有真和假两种情况。
而在模糊逻辑中,命题可能具有介于真和假之间的模糊值。
模糊逻辑可以通过一些规则来推断出结果,这些规则通常采用IF-THEN形式。
例如:假设我们有一个模糊集合“舒适”的温度范围,当当前温度为22摄氏度时,我们可以使用IF-THEN规则来判断当前环境是否舒适。
如果当前温度隶属于“舒适”范围,则可以得出结论:“当前环境舒适”。
3. 模糊控制器模糊控制器是一种基于模糊集合和模糊逻辑的控制器。
它将输入变量映射到输出变量,并使用IF-THEN规则来决定输出变量的值。
通常情况下,输入变量和输出变量都是连续的。
例如:假设我们有一个室内温度调节器,它需要根据当前环境温度来调整空调或暖气的输出功率。
我们可以将当前环境温度作为输入变量,将空调或暖气的输出功率作为输出变量,并使用IF-THEN规则来决定输出功率的大小。
三、模糊控制算法的实现步骤1. 模糊化将输入变量转换为相应的隶属度函数,以便能够使用模糊逻辑进行推断。
通常情况下,输入变量的隶属度函数可以使用三角形、梯形等形状来表示。
例如:假设我们有一个温度传感器,它可以测量当前环境温度,并将其表示为一个值。
结合实例完成模糊控制算法的原理与实现
模糊控制算法的原理与实现1. 介绍模糊控制是一种基于模糊逻辑的控制方法,它利用模糊规则来描述和模拟人类专家的经验和知识,以实现对复杂系统的控制。
模糊控制算法是通过模糊推理和模糊辨识来构建模糊控制系统。
本文将详细介绍模糊控制算法的原理与实现。
2. 模糊逻辑基础模糊逻辑是一种适用于处理模糊信息和不确定性问题的逻辑系统。
它是将模糊变量、模糊集合和模糊规则引入传统逻辑中的一种扩展。
模糊变量是指在一定范围内具有模糊性质的变量,模糊集合是指包含了事物之间模糊关系的集合,模糊规则是指用于描述输入与输出之间模糊关系的规则。
3. 模糊推理模糊推理是模糊控制算法的核心部分,它是基于模糊规则和模糊逻辑运算来进行的。
模糊推理过程包括模糊化、模糊规则匹配、模糊逻辑运算和去模糊化四个步骤。
3.1 模糊化模糊化是将实际输入值转换为模糊集合的过程。
通过模糊化,我们可以将精确的输入值映射到模糊集合上,并且可以灵活地描述输入值之间的模糊关系。
3.2 模糊规则匹配模糊规则匹配是将模糊化后的输入值与模糊规则进行匹配的过程。
每条模糊规则都由输入和输出之间的模糊关系构成,通过匹配规则,我们可以得到每条规则的激活度。
3.3 模糊逻辑运算模糊逻辑运算是根据模糊规则的激活度和模糊集合上的运算规则来进行的。
常用的模糊逻辑运算包括模糊交集、模糊并集和模糊推理。
3.4 去模糊化去模糊化是将模糊逻辑运算得到的模糊输出值转换为实际输出值的过程。
通过去模糊化,我们可以将模糊输出值映射到输入值所在的实际输出空间上。
4. 模糊辨识模糊辨识是模糊控制算法的关键步骤,它用于确定模糊控制系统的模糊规则和模糊变量。
模糊辨识可以通过专家经验、试验数据和数学建模等方法来实现。
4.1 专家经验法专家经验法是通过专家的经验和直觉来确定模糊规则和模糊变量。
专家根据对系统的了解和经验,提出一组模糊规则,并定义相应的模糊集合,从而构建模糊控制系统。
4.2 试验数据法试验数据法是通过对系统进行一系列试验,获取输入与输出之间的关系,进而确定模糊规则和模糊变量。
模糊控制基本原理
模糊控制的基本原理模糊控制是以模糊集合理论、模糊语言及模糊逻辑为基础的控制,它是模糊数学在控制系统中的应用,是一种非线性智能控制。
模糊控制是利用人的知识对控制对象进行控制的一种方法,通常用“if条件,then结果”的形式来表现,所以又通俗地称为语言控制。
一般用于无法以严密的数学表示的控制对象模型,即可利用人(熟练专家)的经验和知识来很好地控制。
因此,利用人的智力,模糊地进行系统控制的方法就是模糊控制。
模糊控制的基本原理如图所示:模糊控制系统原理框图它的核心部分为模糊控制器。
模糊控制器的控制规律由计算机的程序实现,实现一步模糊控制算法的过程是:微机采样获取被控制量的精确值,然后将此量与给定值比较得到误差信号E;一般选误差信号E作为模糊控制器的一个输入量,把E的精确量进行模糊量化变成模糊量,误差E的模糊量可用相应的模糊语言表示;从而得到误差E的模糊语言集合的一个子集e(e实际上是一个模糊向量)。
再由e和模糊控制规则R(模糊关系)根据推理的合成规则进行模糊决策,得到模糊控制量u为:式中u为一个模糊量;为了对被控对象施加精确的控制,还需要将模糊量u进行非模糊化处理转换为精确量:得到精确数字量后,经数模转换变为精确的模拟量送给执行机构,对被控对象进行一步控制;然后,进行第二次采样,完成第二步控制……。
这样循环下去,就实现了被控对象的模糊控制。
模糊控制(Fuzzy Control)是以模糊集合理论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制。
模糊控制同常规的控制方案相比,主要特点有:(1)模糊控制只要求掌握现场操作人员或有关专家的经验、知识或操作数据,不需要建立过程的数学模型,所以适用于不易获得精确数学模型的被控过程,或结构参数不很清楚等场合。
(2)模糊控制是一种语言变量控制器,其控制规则只用语言变量的形式定性的表达,不用传递函数与状态方程,只要对人们的经验加以总结,进而从中提炼出规则,直接给出语言变量,再应用推理方法进行观察与控制。
基于西门子 S7-300PLC 的模糊控制的实现
数据寄存区,在寻址之后 ,再将模糊控 制量 的 数据结果进行解模糊运算,得到精确 值,倘若 在这一过程 中出现 了误差 ,那么应当先判断出 现 的误 差 是 正 是 负 ,根 据 误 差 的 大 小 , 可 以得 出偏移地址 的变化 ,进而找到模糊控制变量在 数据库 中的具体的位置 以及具体的内容。之后 在所有 的内容都得到确认之后再进行输 出,使
强对于模块执行机构的控 制。在 制定模 糊控制
算法的时候,将 模糊控 制查询表 中的查询设计 做 好 是 非 常 必 要 的 , 最 常 使用 的 就是 变 址 的 寻
址 方 式 ,将 模糊 控 制量 表 中 的控 制 结 果 按 照 由 上 到下、 由左到 右的 顺序一 次 的填入 到 P L C
控 制 规 则 。对 于 一个 模 糊 控 制 器 来 说 , 每 一个 模糊 控制 方法 就 是将 工作人 员的 工作经 模 糊 控 制 器 之 间 都 有属 于 自己 的 独特 的 控 制 规 验 以一组操作语句 的形式组织起 来,采用模糊 则 ,为 了使得模糊控制器在不 同的系 统之间的 逻辑将人类 的工作经验量化 ,使得机器 的控模 工作 更加 的具有针对 性,所 以在 进行设计工作 仿人类的操作策略 ,也就是说 ,改造成为 了模 的时候一 定要注 意控制量 内的每 条规 则之间的 糊 的控制器 ,不完全来依赖数 学模型,此外, 关 系,根据 模糊 控制器 结构 之间 的 E、E C和 模糊控制器还可 以完全 的代 替人 工操作 ,克服 u之 间的关 系,确 定每 一条模糊 语句 之间的关 人类 的不确定性 因素,使得控制 系统的工作 具 系 ,之后再将每 一个模糊 语句 的关系整 合在 一 有可靠性 ,解决 了线性 系统理论难 以解 决的问 起 ,得 出整体 的模糊 决策和模糊控制 之间的规
基于西门子S7-300的模糊控制实现
基于西门子S7—300 PLC的模糊控制实现
第六图书馆
针对现场装置对象中大时滞、非线性和难以建立精确数学模型等问题,考虑将先进的智能控制方法与传统的自动化装置相结合以实现低成本自动化;根据模糊控制原理和PLC的特点,提出了模糊控制在PLC上的实现方法;给出了基于西门子S7—300PLC的模糊控制器的设计方法和梯形图程序.在实验装置上完成了对三级水箱的有效控制,实验显示该控制系统运行可靠、有效,在控制性能上明显优于传统的PID控制方法.针对现场装置对象中大时滞、非线性和难以建立精确数学模型等问题,考虑将先进的智能控制方法与传统的自动化装置相结合以实现低成本自动化;根据模糊控制原理和PLC的特点,提出了模糊控制在PLC上的实现方法;给出了基于西门子S7—300PLC的模糊控制器的设计方法和梯形图程序.在实验装置上完成了对三级水箱的有效控制,实验显示该控制系统运行可靠、有效,在控制性能上明显优于传统的PID控制方法.智能控制 模糊控制 可编程逻辑控制器南京师范大学学报:工程技术版瞿枫 徐中宏 孙冀 [1]南京师范大学数学与计算机科学学院,江苏南京210097 [2]南京市市政设计研究院,江苏南京210001 [3]南京师范大学电气与自动化工程学院,江苏南京2100422007第六图书馆
第六图书馆
第六图书馆
第六图书馆
第六图书馆
第六图书馆
第六图书馆。
控制系统中模糊控制器的设计与实现
控制系统中模糊控制器的设计与实现控制系统中采用的控制器可以分为许多种类,其中一种常用的控制器是模糊控制器。
模糊控制器是一种基于模糊逻辑理论的控制器,它可以处理模糊的输入和输出,适用于非线性和复杂的控制系统。
本文将介绍模糊控制器的设计和实现步骤。
一. 模糊控制器的基本原理模糊控制器的基本原理是模糊逻辑理论,它采用了一种模糊的方式来处理不确定性和模糊性的问题。
其基本思想是将系统输入或输出的模糊化,使输入和输出变成了隶属于某种模糊集合之内的量,并根据一定的模糊规则,将输入转化为输出。
模糊控制器的工作流程如下:首先将输入信号进行模糊化,将其转化为一组隶属度值。
然后根据预设的模糊规则,将输入转化为输出信号。
最后将输出信号进行去模糊化,得到具体的控制量,然后输出给被控对象。
二. 模糊控制器的设计步骤模糊控制器的设计步骤主要包括以下几个方面:1. 确定系统的模糊输入和输出模糊控制器的输入和输出通常表示为模糊变量,其基本形式是一个三元组(Name, Universe of discourse, Membership function)。
其中Name表示模糊变量的名称,Universe of discourse表示变量所描述的宇域,Membership function是变量的隶属度函数。
2. 确定模糊控制器的规则库模糊控制器的输入和输出之间建立的模糊规则来自于专家知识和经验。
将这些知识和经验编码成规则库,每个规则的形式为:“If X1 is A1 and X2 is A2 and…Xnis An, Then Y is B”。
其中X1,X2 …Xn 是输入模糊变量,A1,A2…An是它们的隶属程度,Y是输出模糊变量,B是它的隶属程度。
3. 确定模糊控制器的推理机制模糊控制器的推理机制是指如何从规则库中推导出具体的输出。
常用的推理机制有最小最大合成、中心平均合成等。
4. 确定模糊控制器的去模糊化方法模糊控制器的输出是一组隶属度值,需要将其转化为具体的控制量。
如何进行模糊控制的Matlab实现
如何进行模糊控制的Matlab实现模糊控制是一种基于模糊逻辑的控制方法,它能够在复杂的环境下进行精确的控制。
在现实世界中,很多问题存在不确定性和模糊性,传统的控制方法很难解决这些问题。
而模糊控制通过建立模糊规则来模拟人的思维过程,能够灵活地应对这些问题。
Matlab是一种功能强大的科学计算软件,它提供了丰富的工具箱和函数,可以帮助我们快速实现模糊控制算法。
本文将介绍如何使用Matlab进行模糊控制的实现,并结合一个实际案例进行说明。
首先,我们需要了解模糊控制的基本原理。
模糊控制是基于模糊逻辑进行推理和决策的一种方法。
它将输入和输出的模糊集合表示为隶属度函数,并通过模糊规则对模糊输入进行推理,得到模糊输出。
最后,将模糊输出通过去模糊化方法转换为具体的控制量。
在Matlab中,可以使用Fuzzy Logic Toolbox工具箱来实现模糊控制。
首先,需要定义输入和输出的模糊集合。
可以使用trimf函数来定义三角形隶属度函数,也可以使用gaussmf函数来定义高斯隶属度函数。
然后,需要定义模糊规则。
可以使用fuzarith函数来定义规则的操作,如AND、OR、NOT等。
最后,使用evalfis 函数对输入进行推理,得到模糊输出。
接下来,我们以温度控制为例,介绍如何使用Matlab进行模糊控制的实现。
假设我们要设计一个模糊控制器来控制一个房间的温度,使其尽可能接近一个设定的目标温度。
首先,定义输入的模糊集合和隶属度函数。
假设输入是当前的温度,模糊集合包括"冷"、"舒适"和"热"三个隶属度函数。
可以使用trimf函数来定义这些隶属度函数。
然后,定义输出的模糊集合和隶属度函数。
假设输出是空调的功率,模糊集合包括"低"、"中"和"高"三个隶属度函数。
同样,可以使用trimf函数来定义这些隶属度函数。
21. 如何通过模糊控制实现自适应系统?
21. 如何通过模糊控制实现自适应系统?21、如何通过模糊控制实现自适应系统?在当今科技飞速发展的时代,自适应系统的应用越来越广泛,从工业生产中的自动化控制到智能家居的环境调节,从交通管理的智能优化到医疗设备的精准控制,都离不开自适应系统的身影。
而模糊控制作为一种强大的控制策略,为实现自适应系统提供了一种独特而有效的途径。
那么,什么是模糊控制呢?简单来说,模糊控制是一种基于模糊逻辑的控制方法。
与传统的精确控制不同,模糊控制能够处理那些不精确、不确定甚至模糊的信息。
在现实世界中,很多情况都是模糊的,比如“温度较高”“速度较慢”,这些概念并没有明确的界限,而模糊控制正是善于处理这种模糊性。
要理解如何通过模糊控制实现自适应系统,我们首先需要了解模糊控制的几个关键组成部分。
输入变量的模糊化是第一步。
在实际系统中,我们获取到的输入变量往往是精确的数值,比如温度的具体度数、速度的具体数值等。
但模糊控制需要将这些精确的输入转化为模糊的语言变量,例如“低”“中”“高”。
这就需要我们定义模糊集合和隶属函数。
模糊集合用来描述这些模糊的语言变量,而隶属函数则确定了某个具体数值属于某个模糊集合的程度。
接下来是模糊规则库的建立。
这就像是为系统制定一系列的“经验法则”。
比如,如果温度“高”且湿度“低”,那么风扇速度应该“快”。
这些规则是基于专家经验、实验数据或者对系统的深入理解而制定的。
规则的数量和复杂性取决于系统的特性和控制要求。
有了输入变量的模糊化和模糊规则库,接下来就是模糊推理。
模糊推理根据输入变量的模糊化结果和模糊规则库,通过一定的推理算法,得出模糊的输出结果。
这个过程就像是根据一系列的“如果那么”规则进行推理判断。
但是,模糊推理得出的输出结果仍然是模糊的,所以还需要进行输出变量的清晰化。
这一步将模糊的输出转化为精确的控制量,以便实际应用于系统中。
那么,模糊控制是如何实现自适应的呢?这就涉及到对系统的实时监测和参数调整。
C语言实现模糊控制
1.该程序是在TMS320F28335上运行过的,并与MATLAB仿真结果做了对比,计算结果一致。
2.该C语言程序是以洗衣机的模糊控制(可自行百度)为例写的(具体可参考刘金琨智能控制(第四版)对照理解)。
3.该程序不是离线查表形式的模糊控制,是实时在线计算的,解模糊采用的是重心法(不是百度文库里一搜就出来的那个文档,那个解模糊是有问题的),希望对初学者有用。
4.完整的工程文件及MATLAB对比结果有上传到CSDN,可搜索下载。
(当然这个文档也没有缺斤少两,MAIN.C文件的内容均在)#include"DSP2833x_Device.h"#include"DSP2833x_Examples.h"float Fuzzy(float XIN,float YIN);float X=0,Y=0,U[100];void main(void){long i;InitSysCtrl();InitXintf16Gpio();DINT;InitPieCtrl();IER = 0x0000;IFR = 0x0000;for(;;){for(i=0;i<100;i++){X=X+1;Y=X;U[i]=Fuzzy(X,Y);if(i==99)X=0;}}}float XF[3]={0,50,100};//污泥X隶属函数划分区间float YF[3]={0,50,100};//油脂Y隶属函数划分区间float ZF[5]={0,10,25,40,60};//洗涤时长Z隶属函数划分区间//污泥X 0,1,2 //油脂Yint Rule[3][3]={{0,2,3}, // 0{1,2,3}, // 1{2,3,4}};// 2float Fuzzy(float XIN,float YIN)//污泥输入X,油脂输入Y{float XU[2],YU[2],ZU[4];//隶属度int Xn,Yn;//隶属度对应的下标int Zn[4];//4条有效推理结果float Temp[4];int i,j,iu;float Zij,ZUmax[4];//输出隶属度最大值//计算污泥X的隶属度if(XIN<=XF[1])//0<=XIN<=50{Xn=0;//隶属度对应的下标XU[0]=(XF[1]-XIN)/(XF[1]-XF[0]);XU[1]=1-XU[0];}else if(XIN<=XF[2])//50<XIN<=100{Xn=1;//隶属度对应的下标XU[0]=(XF[2]-XIN)/(XF[2]-XF[1]);XU[1]=1-XU[0];//XU[1]=(XIN-XF[1])/(XF[2]-XF[1]); }//计算油脂Y的隶属度if(YIN<=YF[1])//0<=YIN<=50{Yn=0;//隶属度对应的下标YU[0]=(YF[1]-YIN)/(YF[1]-YF[0]);YU[1]=1-YU[0];}else if(YIN<=YF[2])//50<YIN<=100{Yn=1;//隶属度对应的下标YU[0]=(YF[2]-YIN)/(YF[2]-YF[1]);YU[1]=1-YU[0];}//根据Rule[3][3]规则表得出4条有效推理结果Zn[0]=Rule[Xn][Yn];Zn[1]=Rule[Xn+1][Yn];Zn[2]=Rule[Xn][Yn+1];Zn[3]=Rule[Xn+1][Yn+1];if(XU[0]<=YU[0])//规则前提的可信度取小运算ZU[0]=XU[0];elseZU[0]=YU[0];if(XU[1]<=YU[0])//规则前提的可信度取小运算elseZU[1]=YU[0];if(XU[0]<=YU[1])//规则前提的可信度取小运算ZU[2]=XU[0];elseZU[2]=YU[1];if(XU[1]<=YU[1])//规则前提的可信度取小运算ZU[3]=XU[1];elseZU[3]=YU[1];if(Zn[0]==Zn[1])//同隶属函数总规则的可信度取大运算 {if(ZU[0]>ZU[1])ZU[1]=0;elseZU[0]=0;}if(Zn[0]==Zn[2])//同隶属函数总规则的可信度取大运算 {if(ZU[0]>ZU[2])ZU[2]=0;elseZU[0]=0;}if(Zn[0]==Zn[3])//同隶属函数总规则的可信度取大运算 {if(ZU[0]>ZU[3])ZU[3]=0;elseZU[0]=0;}if(Zn[1]==Zn[2])//同隶属函数总规则的可信度取大运算 {if(ZU[1]>ZU[2])ZU[2]=0;elseZU[1]=0;}if(Zn[1]==Zn[3])//同隶属函数总规则的可信度取大运算 {if(ZU[1]>ZU[3])ZU[3]=0;else}if(Zn[2]==Zn[3])//同隶属函数总规则的可信度取大运算 {if(ZU[2]>ZU[3])ZU[3]=0;elseZU[2]=0;}for(i=0;i<4;i++)ZUmax[i]=ZU[i];for(j=0;j<3;j++)//冒泡法排序从小到大排for(i=0;i<3-j;i++)if(ZUmax[i]>=ZUmax[i+1]){Zij=ZUmax[i];ZUmax[i]=ZUmax[i+1];ZUmax[i+1]=Zij;}if(ZUmax[3]>ZUmax[2])//最大隶属度只有一个{for(i=0;i<4;i++) //找最大隶属度对应的隶属函数if(ZUmax[3]==ZU[i]){iu=i;break;}if(Zn[iu]==0)//VS{Temp[0]=ZF[0];Temp[1]=ZF[1]-(ZU[iu]*(ZF[1]-ZF[0]));}else if(Zn[iu]==1)//S{Temp[0]=ZU[iu]*(ZF[1]-ZF[0]);Temp[1]=ZF[2]-(ZU[iu]*(ZF[2]-ZF[1]));}else if(Zn[iu]==2)//M{Temp[0]=ZU[iu]*(ZF[2]-ZF[1])+ZF[1];Temp[1]=ZF[3]-(ZU[iu]*(ZF[3]-ZF[2]));}else if(Zn[iu]==3)//L{Temp[0]=ZU[iu]*(ZF[3]-ZF[2])+ZF[2];Temp[1]=ZF[4]-(ZU[iu]*(ZF[4]-ZF[3]));}else if(Zn[iu]==4)//VL{Temp[0]=ZU[iu]*(ZF[4]-ZF[3])+ZF[3];Temp[1]=ZF[4];}return (Temp[0]+Temp[1])/2;}if(ZUmax[3]==ZUmax[2])//最大隶属度有2个{for(i=0;i<4;i++) //找最大隶属度对应的隶属函数if(ZUmax[3]==ZU[i]){iu=i;break;}if(Zn[iu]==0)//VS+S{Temp[0]=ZF[0];Temp[1]=ZF[1]-(ZU[iu]*(ZF[1]-ZF[0]));Temp[2]=ZU[iu]*(ZF[1]-ZF[0]);Temp[3]=ZF[2]-(ZU[iu]*(ZF[2]-ZF[1]));}else if(Zn[iu]==1)//S+M{Temp[0]=ZU[iu]*(ZF[1]-ZF[0]);Temp[1]=ZF[2]-(ZU[iu]*(ZF[2]-ZF[1]));Temp[2]=ZU[iu]*(ZF[2]-ZF[1])+ZF[1];Temp[3]=ZF[3]-(ZU[iu]*(ZF[3]-ZF[2]));}else if(Zn[iu]==2)//M+L{Temp[0]=ZU[iu]*(ZF[2]-ZF[1])+ZF[1];Temp[1]=ZF[3]-(ZU[iu]*(ZF[3]-ZF[2]));Temp[2]=ZU[iu]*(ZF[3]-ZF[2])+ZF[2];Temp[3]=ZF[4]-(ZU[iu]*(ZF[4]-ZF[3]));}else if(Zn[iu]==3)//L+VL{Temp[0]=ZU[iu]*(ZF[3]-ZF[2])+ZF[2];Temp[1]=ZF[4]-(ZU[iu]*(ZF[4]-ZF[3]));Temp[2]=ZU[iu]*(ZF[4]-ZF[3])+ZF[3];Temp[3]=ZF[4];}return (Temp[0]+Temp[1]+Temp[2]+Temp[3])/4; }}。
基于西门子S7—200PLC的模糊控制程序的实现
基于西门子S7—200PLC的模糊控制程序的实现【摘要】矿用通风机是矿井生产的重要设备,其运行状态对安全生产至关重要。
本文结合矿用通风机,探讨了如何通过PLC可编程逻辑控制器件来实现模糊控制算法,从而来控制风机转速,实现了对巷道内CO及瓦斯浓度主要参数的监控。
本设计首先通过matlab仿真得到控制规则表,储存在PLC数据区,,然后用建立指针的查询办法实现数据的查询,这样实现的模糊控制算法是可以离线使用的。
论文对所设计的西门子模糊控制进行了实验验证。
实验结果表明,论文所确定的测试方法正确,所设计仪器满足测试要求。
【关键词】矿用通风机模糊控制CO及瓦斯浓度1 模糊控制的概述在传统的控制领域里,控制系统动态模式的精确与否是影响控制优劣的最主要关键,系统动态的信息越详细,则越能达到精确控制的目的。
然而,对于复杂的系统,由于变量太多,往往难以正确的描述系统的动态,于是工程师便利用各种方法来简化系统动态,以达成控制的目的。
在上世纪70年代,美国加州大学博客利分校电器工程系控制专家L.A.Zadeh提出了模糊集合理论,为模糊控制技术的产生奠定了理论基础。
模糊控制系统是以模糊语言变量、模糊逻辑推理以及模糊集理论做为基础,结合基于规则的专家系统和控制理论的一种智能的控制系统,同时也是运用到计算机的控制技术构成的一种具备反馈通道的闭环结构的数字控制系统。
模糊控制器包括五个主要部分,即:定义变量、模糊化、模糊规则、模糊推理及解模糊。
(1)定义变量;也就是决定程序被观察的状况及考虑控制的动作,例如在一般控制问题上,输入变量有输出误差E与输出误差之变化率EC,而控制变量则为下一个状态之输入U。
其中E、EC、U统称为模糊变量。
(2)模糊化;将输入值以适当的比例转换到论域的数值,利用口语化变量来描述测量物理量的过程,以适合的语言值求该值相对之隶属度,此口语化变量我们称之为模糊子集合。
(3)模糊规则;包括数据库与规则库两部分,其中数据库是提供处理模糊数据之相关定义;而规则库则藉由一群语言控制规则描述控制目标和策略。
模糊控制的基本原理
模糊控制的基本原理
模糊控制是一种基于模糊逻辑的控制方法,它的基本原理是利用模糊集合与模糊规则来进行控制决策,从而实现系统的稳定控制。
在模糊控制中,控制器的输入和输出都是模糊集合,而不是精确的数值,这使得模糊控制具有更强的鲁棒性和适应性,能够适应系统模型的不确定性和复杂性。
模糊控制的基本原理可以概括为以下几个步骤:
1. 设计模糊集合:根据控制对象的特性,设计输入和输出变量的模糊集合,并确定它们之间的关系。
2. 建立模糊规则:利用经验和专家知识,建立模糊规则库,将输入变量与输出变量之间的关系表示成一系列模糊规则。
3. 模糊推理:根据输入变量的值,使用模糊规则库进行模糊推理,得到输出变量的模糊集合。
4. 解模糊:将输出变量的模糊集合转化为实际控制信号,通常使用模糊平均法或模糊最大化法进行解模糊。
5. 反馈控制:根据输出变量的实际值,进行反馈控制,调节输入变量,使系统达到稳定的控制状态。
模糊控制的基本原理可以应用于各种控制对象,例如机器人、汽车、电机等,具有广泛的应用前景。
同时,随着计算机技术的发展,模糊控制已经成为一种有效的控制方法,为实现自动化、智能化的控制系统提供了重要的技术支持。
- 1 -。
模糊控制的基本原理
模糊控制的基本原理:什么是模糊控制?如
何实现模糊控制?
模糊控制是一种用于处理不确定性、不精确性和模糊性问题的控制方法。
与传统的精确控制方法不同,模糊控制不需要具体的数学模型,而是通过一系列模糊规则来实现决策。
具体来说,模糊控制系统分为四个部分:输入变量、输出变量、模糊规则库和模糊推理机。
输入变量是控制系统的输入,输出变量是控制系统的输出,模糊规则库是用于存储模糊规则的地方,模糊推理机则是用于根据输入计算输出的核心部分。
实现模糊控制需要进行以下步骤:
1. 确定系统的输入、输出和控制目标
在控制设计过程中,首先要搞清楚需要控制的变量、目标和系统的特性,这些都将成为模糊控制系统设计的基础。
需要注意的是,模糊控制一般适用于那些难以建立精确数学模型、难以确定清晰边界的问题。
2. 确定输入和输出的量化方法
将输入、输出变量以及控制目标进行量化是模糊控制的基础。
通过模糊量化方法,可以将问题建模为模糊规则集合,从而实现对复杂问题进行模糊控制。
3. 确定模糊规则
模糊规则是模糊控制系统的核心部分,它是由一系列模糊条件和模糊结论组成的规则。
模糊规则的数量和质量直接影响到模糊控制系统的性能和精度,因此需要精心设计和优化。
4. 确定模糊推理机
模糊推理机是模糊控制系统的决策中枢,它是用于对输入进行处理并生成输出的核心部分。
常见的模糊推理方法包括最大值法、加权平均法、常用平均法等。
通过以上步骤,可以实现对不确定性、不精确性和模糊性问题的控制。
虽然模糊控制在实际应用中仍有很多的局限性,但它已经成为了控制领域中的重要方法之一,并在工业、交通、医疗等领域得到了广泛应用。
第8章模糊控制器的实现技术
第7章模糊控制器的实现技术实现模糊控制一般有两种方法,一是用软件编程实现控制算法,另一种是利用模糊芯片,实际上软件和硬件是相互配合的。
究竟使用哪种方式要根据实际对象具体情况加以选择,不能一概而论。
对于生产过程控制,通常采用中央处理机、还有下位机,再如单片机等。
对于家电之类,专用产品通常采用专用模糊芯片。
如同大家熟悉的单片机要有开发工具一样,模糊芯片也有专用开发工具。
7.1模糊控制器的软件实现1.Motorola 模糊软件开发工具采用模糊直接推理方法,而不是采用查表法。
其一般的过程是:输入量—>模糊化隶属函数(输入模糊集)—>模糊推理—>输出隶属函数(输出模糊集)—>非模糊化2.美国FIDE模糊推理开发环境该开发软件可完成使用Motorola单片机模糊推理器的设计、调试、模拟和生成等各种功能。
具体包括:输入功能、调试功能、系统合成、程序生成等。
3.德国fuzzy TECH软件开发工具该系统的定义指模糊语言变量的定义、系统结构设计和模糊逻辑规则库的形式化处理系统定义(具体包括:语言变量的定义、基本变量名称和论域范围定义、模糊变量取值的定义、隶属函数定义、结构设计和模糊规则的形式化)。
此外还能实现系统的离线最优化调试、系统的在线最优化调试、系统的C编码生成和汇编码生成。
7.2模糊控制芯片模糊控制芯片通常分为三代:第一代模糊芯片于1975年由美国的T. I. 公司研制成功,而第一代模糊微处理器于1987年由日本研制成功,没有实际应用价值。
第二代模糊微处理器于1990年由美国T. I. L. 公司制成,为8位微处理器,具有微代码构成的模糊命令句。
日本的Omron公司的FP-3000、美国Neuralogix 公司的NLX230都属于这一代产品。
第三代模糊微处理器于1992年由德国Siemens公司和Inform公司联合研制的Fuzzy-166芯片,号称为第三代模糊微处理器。
它是在现存的16位微处理器80C166上添加了一个模糊单元,且与标准的80C166管脚兼容,可以使用ANSIC 编码器或RISI-汇编。
99. 如何分析模糊控制的实现过程?
99. 如何分析模糊控制的实现过程?99、如何分析模糊控制的实现过程?在当今的控制领域中,模糊控制作为一种智能控制方法,因其能够处理复杂、不确定的系统而备受关注。
那么,如何深入分析模糊控制的实现过程呢?让我们一步步来探讨。
首先,我们需要理解模糊控制的基本概念。
模糊控制并不是基于精确的数学模型,而是模仿人类的模糊思维方式来进行决策和控制。
它将输入量转化为模糊量,通过模糊推理和模糊规则来产生模糊的输出,最后再将模糊输出清晰化,以得到实际的控制量。
接下来,看看模糊控制的实现过程中的关键步骤。
第一步是模糊化。
在这一环节,我们需要将精确的输入量转化为模糊量。
比如说,我们要控制一个温度系统,实际测量的温度值是 25 摄氏度,但是在模糊控制中,我们要把这个精确的数值转化为模糊语言变量,比如“低温”“中温”“高温”等。
这就需要定义模糊集合和隶属函数。
模糊集合是对某个概念的模糊描述,而隶属函数则用来确定某个具体的值属于某个模糊集合的程度。
第二步是建立模糊规则库。
这可以说是模糊控制的核心部分。
模糊规则是基于专家经验或者系统的先验知识制定的。
例如,“如果温度是低温,并且湿度是低湿度,那么加热功率应该是高功率”。
这些规则描述了输入变量与输出变量之间的关系。
规则的数量和质量直接影响着模糊控制的性能。
第三步是模糊推理。
当有了输入的模糊量和模糊规则库之后,就需要进行模糊推理。
模糊推理的方法有很多种,比如 Mamdani 推理法、TakagiSugeno 推理法等。
推理的过程就是根据输入的模糊量和模糊规则,得出模糊的输出结果。
第四步是清晰化。
经过模糊推理得到的输出是模糊量,但是实际的控制系统需要的是精确的控制量。
所以,需要通过清晰化的方法将模糊输出转化为精确的输出。
常见的清晰化方法有最大隶属度法、重心法、加权平均法等。
在分析模糊控制的实现过程中,还需要考虑一些重要的因素。
一是输入变量的选择和测量精度。
输入变量的选择要能够准确反映系统的状态和特征,如果选择不当,可能会导致控制效果不佳。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例:fismat=readfis(‘tipper’); //tipper.fis已经存在
③函数getfis
功能:取得模糊推理系统的部分或全部属性。 格式:getfis(a) //显示系统所有属性 //显示系统某一属性
getfis(a,’fisprop’)
getfis(a,’vartype’,varindex,’varprop’)
功能:绘制语言变量所有语言值的隶属度函数曲线。
格式:plotmf(fismat,varType,varIndex) 说明:参数fismat指明模糊推理系统的对应矩阵变量 名称;varType指明变量类型(’input’或’output’); varIndex指明输入或输出语言变量的编号。 例: plotmf(a,’input’,2)
⑤函数smf 功能:建立S型隶属度函数。
格式:y=smf(x,[a b])
说明:曲线在(a,b)之间是光滑的样条曲线,在a左 段为0,b右段为1,跳跃点是(a+b)/2。参数x指定变量论 域范围。 例: x=0:0.1:10; y=smf(x, [2 8]); plot(x,y) xlable(‘smf,P=[2 8]’)
1 x c 2 ( ) 2
④函数zmf 功能:建立Z型隶属度函数。
格式:y=zmf(x,[a b])
说明:曲线在(a,b)之间是光滑的样条曲线,在a左 段为1,b右段为0,跳跃点是(a+b)/2。参数x指定变量论 域范围。 例: x=0:0.1:10; y=zmf(x, [2 8]); plot(x,y) xlable(‘zmf,P=[2 8]’)
③ 函数gaussmf 功能:建立高斯型隶属度函数。
格式:y=gaussmf(x,[sig c])
其中:参数x指定变量论域范围,参数c决定了函数的中心 点,sig决定了函数曲线的宽度σ 。 高斯函数的表达式为: y e 例: x=0:0.1:10; y=gaussmf(x, [2 5]); plot(x,y) xlable(‘gaussmf,P=[2 5]’)
5、模糊规则建立 ①函数addrule 功能:向模糊推理系统添加模糊规则。 格式:a=addrule(a,rulelist) 说明:参数a为模糊推理系统对应的矩阵变量名称,rulelist 以向量的形式给出需要添加的模糊规则。如果模糊推理系 统有m个输入语言变量和n个输出语言变量,则向量rulelist 的列数必须为m+n+2,而行数等于需要添加的规则数目。
min prod (乘积法)
3. 输出的合成计算Aggregation(模糊规则综合采用的方法) max prober(a,b)=a+b-ab Aggregation sum(求和法) prober (概率法)
4. 逆模糊化计算(Defuzzification)
centroid(重心法) bisector(面积平分法) lom(最大隶属度函数中的取最大值法) som(最大隶属度函数中的取最小值法)
plot(a,’input’,1)
注意:对于每个语言变量的隶属度函数按该函数被添加的顺 序编号,编号从1开始,依次递增。
3、FIS系统相关操作
① 函数newfis
功能:创建并返回一个新的模糊推理系统。
格式:a=newfis(‘fisName’) ②函数readfis 功能:从磁盘中读出并返回模糊推理系统结构变量。 格式:Fismat=readfis(‘filename’) 说明:打开一个由filename指定的数据文件(.fis),并将 其加载到当前的工作空间(Workspace)中的变量Fismat中。
mom(平均最大隶属度法)
⑵ 在命令窗口键 入mfedit可激活隶 属度函数编辑器
MATLAB的FIS结构和存储 1、FIS(模糊推理系统)结构 模糊推理系统是以一种FIS的结构来表示和存储的 ①GUI工具 访问方法 ②函数 ③结构名.成员名 2、存储( .fis文件) 访问 readfis-读 writefis-写
例:a=newfis(‘tipper’);
a=addvar(a,’input’,’service’,[0 10]); a=addmf(a,’input’,1,’poor’,’guassmf’,[1.5 0]); a=addmf(a,’input’,1,’good’,’guassmf’,[1.5 5]); a=addmf(a,’input’,1,’excellent’,’guassmf’,[1.5 10]);
NumMFs=3 MFLabels=poor good excellent Range=[0 10] 例:getfis(a,’input’,1,’name’) 输出结果:service
④ 函数showfis
功能:以分行的形式显示模糊推理系统矩阵的所有属性。 格式:showfis(fismat) ⑤ 函数writefis 功能:将以矩阵形式保存在内存中的模糊推理系统的数 据写入磁盘文件中。 格式:writefis(fismat,filename)
centroid(重心法:系统默认) lom(最大隶属度函数中的取最大值法) bisector(面积平分法) mom(平均最大隶属度法) som(最大隶属度函数中的取最小值法)
4、系统图形显示函数
① 函数plotfis 功能:绘制模糊推理系统的推理过程结构框图。 例:plotfis(‘tipper’) ② 函数plotmf
例:fis=readfis(‘tipper’);
out=evalfis([2 1; 4 9],fis) 输出结果:out=7.0169
19.6810
MATLAB模糊控制系统设计实例1
一、设计目的:了解用MATLAB模糊工具箱的图形界面可视化 工具实现模糊控制系统的方法。 二、系统设计要求: 1、输入变量:偏差e、偏差变化率de;输出变量:u 相应隶属度函数为:
命令函数
1、隶属度函数 ①函数trimf(表示triangular membership function) 功能:建立三角形隶属度函数。 格式:y=trimf(x,[a b c])
其中:参数x指定变量论域范围,参数a,b和c指定三角形 函数的形状,该函数在b点处取最大值1,a,c点为0。 例:建立三角形隶属度函数并绘制曲线。
②函数addmf
功能:向模糊推理系统的语言变量添加隶属度函数。
格式:a=addmf(a, varType, varIndex,mfName,mfType, mfParams)
说明:隶属度函数只能为模糊推理系统中已经存在的某 一语言变量的语言值添加隶属度函数。参数列表中,a为 模糊推理系统对应的矩阵变量名, varType指定语言变量 类型的字符串(如‘input’或‘output’); varIndex指定 语言变量编号的数字;mfName指定隶属度函数名称; mfType指定隶属度函数类型; mfParams指定隶属度函数 的参数。
在rulelist的每一行中,前m个数字表示各输入语言 变量的语言值(隶属度函数的编号),随后的n个数字表 示输出语言变量的语言值,第n+m+1个数字是该规则的 权重,权重的值在0到1之间,一般设定为1;第n+m+2 个数字为0或1两者之一,为1表示模糊规则各输入语言 变量之间是and关系,为0则表示是or关系。
模糊推理输入输出曲面视图Surfview (Surface)
⑴ 模糊推理系统编辑器Fuzzy 处理最顶层构建问题,例如输入输出变量的数目、变量名等 激活(进入)方法:命令窗口(command window)执行 Fuzzy命令。
激活模糊推理系统系统编辑器 :
基本属性
输入模糊变量图形框 组成 模糊规则图形框
例:writefis(a,’my_file’)
type my_file.fis
⑥ 函数setfis
功能:设置、改变模糊推理系统的属性。 格式:FIS2=setfis(fis1,’fispropname’,newPropValue) 说明:参数fis1指明模糊推理系统的名称;fispropname 指明模糊推理系统的全局属性; newPropValue指明此 属性的新值。 例:a=readfis(‘tipper’); a2=setfis(a,’DefuzzMethod’,’mom’); Defuzzification:
例:a=readfis(‘tipper’);
getfis(a) 输出结果:Name=tipper Type=mamdani NumInputs=2
………
例:getfis(a,’input’,1) 注:属性为‘input’或‘output’时,后面的第三个参数 指定某一个输入或输出语言变量。
输出结果:Name=service
双击
双击
Mfedit Ruleedit
Mfedit
输出模糊变量图形框
双击
基本属性包括:
1. 模糊集合合成运算(连接词的运算) min(最小法) ① and prod(乘积法)
② or
max(最大法) prober(概率法)
prober(a,b)=a+b-ab
2. 蕴涵计算(Implication)
1 2,2(1):1
6、计算模糊推理输出结果函数evalfis 格式:y=evalfis(U,FIS)
说明:参数U是输入数据,FIS是模糊推理矩阵。 U的每一行是一个特定的输入向量,Y的每一行是 一个特定的输出向量。
如果输入U是M*N矩阵,则系统是N输入的, 返回的Y是M*L矩阵,L是系统的输出的数目。
②函数showrule
格式:showrule(fis) showrule(fis,indexlist) showrule(fis,indexlist,format) 说明:fis为模糊推理系统矩阵变量的名称;indexlist为 规则编号,可以以向量形式指定显示多条规则; format为显示方式,有三种显示方式,即语句方式 (verbose),符号方式(symbolic)和索引方式 (indexed)。 例:showrule(a,1:2,’indexed’) 输出结果:1 1,1(1):1m文件存放)