模糊逻辑工具箱在Simulink中的使用
基于simulink的模糊PID控制例子

基于simulink的模糊PID控制例⼦1模糊PID⽤命令Fuzzy打开模糊控制⼯具箱。
Anfisedit打开⾃适应神经模糊控制器,它⽤给定的输⼊输出数据建个⼀个模糊推理系统,并⽤⼀个反向传播或者与最⼩⼆乘法结合的来完成⾪属函数的调节。
Surfview(newfis)可以打开表⾯视图窗⼝8.1 模糊PID 串联型新建⼀个simulink模型同时拖⼊⼀个fuzzy logic controller 模块,双击输⼊已经保存的fis模糊控制器的名字。
由于这个控制模块只有⼀个输⼊端⼝,需要⽤到mux模块。
模糊结合PID,当输出误差较⼤时,⽤模糊校正,当较⼩时,⽤PID校正。
8.2 模糊⾃适应PID(1)PID 参数模糊⾃整定的原则PID 调节器的控制规律为: u( k) = Kp e( k) + Ki Σe( i) + Kd ec( k)其中: Kp 为⽐例系数; Ki 为积分系数; Kd为微分系数; e( k) 、ec( k) 分别为偏差和偏差变化率.模糊⾃整定PID 参数的⽬的是使参数Kp 、Ki 、Kd随着e 和ec 的变化⽽⾃⾏调整,故应⾸先建⽴它们间的关系. 根据实际经验,参数Kp 、Ki 、Kd在不同的e 和ec下的⾃调整要满⾜如下调整原则:(1) 当e 较⼤时,为加快系统的响应速度,防⽌因开始时e 的瞬间变⼤可能会引起的微分溢出,应取较⼤的Kp 和较⼩的Kd ,同时由于积分作⽤太强会使系统超调加⼤,因⽽要对积分作⽤加以限制,通常取较⼩的Ki值;(2) 当 e 中等⼤⼩时,为减⼩系统的超调量, 保证⼀定的响应速度, Kp 应适当减⼩;同时Kd 和Ki的取值⼤⼩要适中;(3) 当e 较⼩时,为了减⼩稳态误差, Kp 与Ki 应取得⼤些,为了避免输出响应在设定值附近振荡,同时考虑系统的抗⼲扰性能,Kd 值的选择根据|ec|值较⼤时,Kd 取较⼩值,通常Kd 为中等⼤⼩。
同时按照需要,将输⼊语⾔变量E 和EC 分为7 个模糊⼦集,分别⽤语⾔值正⼤( PB) 、正中( PM) 、正⼩( PS) 、零(Z) 、负⼩(NS) 、负中(NM) 、负⼤(NB) 来表⽰,它们的⾪属函数为⾼斯型(gaussmf) ,输出语⾔变量Kp′、Ki′、Kd′⽤语⾔值⼩正⼤( PB) 、正中( PM) 、正⼩( PS) 、零(Z) 、负⼩(NS) 、负中(NM) 、负⼤(NB) 来表⽰⾪属函数为三⾓型(t rimf) ,⽅法⼆:图-1模糊⾃适应simulink模型根据各模糊⼦集的⾪属度赋值表和各参数模糊控制模型,应⽤模糊合成推理设计分数阶PID参数的模糊矩阵表,算出参数代⼊下式计算:Kp=Kp0+(E,EC)p;Ki=Ki0+(E,EC)I;Kd=Kd0+(E,EC)d式中:Kp0、Ki0、Kd0为PID参数的初始设计值,由传统的PID控制器的参数整定⽅法设计。
Simulink模糊控制教程

给出复杂模糊控制器设计实例和 结果展示
实战演练三:模糊控制器优化与改进
模糊控制器优化方法:遗传算法、粒子群算法等 改进模糊控制器性能的措施:调整隶属度函数、增加模糊规则数量等 实际应用中模糊控制器的调试与测试 案例分析:某工业过程控制中模糊控制器的应用与优化
实战演练四:模糊控制器在实时系统中的应用
更多可能性。
模糊控制理论的研 究将更加注重实际 应用,与工程实践 的结合将更加紧密, 推动工业自动化领 域的进步与发展。
模糊控制在工业自动化领域的应用前景
工业自动化领域的现状和 趋势
模糊控制技术的优势和特 点
模糊控制在工业自动化领 域的应用案例
模糊控制在工业自动化领 域的未来发展前景
感谢观看
汇报人:XX
控制器性能评估
评估指标:准确性、稳定性、鲁棒性 评估方法:仿真实验、实际测试 评估工具:Simulink、Matlab/Simulink 评估步骤:设计控制器、搭建仿真模型、进行实验测试、分析实验结果
05
Simulink模糊控制应用实例
模糊控制在电机控制系统中的应用
模糊控制原理简介
模糊控制在电机控制中的应用实 例
练
01
添加章节标题
02
Simulink模糊控制简介
模糊控制基本概念
模糊控制是一种 基于模糊集合理 论的控制方法, 通过将输入变量 模糊化,将模糊 逻辑应用于控制
系统。
模糊控制的基 本原理是通过 模糊化、模糊 推理和去模糊 化三个步骤实
现控制。
模糊集合理论是 模糊控制的基础, 它通过模糊集合 来表示输入和输 出变量,并使用 模糊逻辑规则进
去模糊化操作
定义:将模糊逻辑系统输出 的模糊集合转换为清晰值的 过程
模糊逻辑工具箱在Simulink中的使用资料

模糊逻辑工具箱在Simulink中的使用最近在写小论文,用到了Matlab中的模糊逻辑工具箱和虚拟现实工具箱,发现网上的资料很少,特别是没有讲到在Simulink中怎么使用这两个工具箱,这里简单介绍一下怎样在simulink中加入模糊逻辑。
我用的Matlab 7.0。
模糊逻辑的理论知识就不介绍了,要想知道的话…去查书吧,多得很。
下面用一个简单的例子作介绍:(本例不是特别针对实现什么功能,只是为了介绍方便)第一部分创建一个模糊逻辑(.fis文件)第一步:打开模糊推理系统编辑器步骤:在Commond Window 键入fuzzy回车打开如下窗口,既模糊推理系统编辑器第二步:使用模糊推理系统编辑器本例用到两个输入,两个输出,但默认是一个输人,一个输出步骤:1、添加一个输入添加一个输出得如下图2、选择Input、output(选中为红框),在Name框里修改各输入的名称并将And method 改为prod,将Or method 改为 probor提示:在命名时’_’在显示时为下标,可从上图看出。
第三步:使用隶属函数编辑器该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。
步骤:1、双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器。
2、在左下处Range和Display Range处添加取值范围,本例中In_x和In_y的取值范围均为[0 10], Out_x和Out_y的取值范围均为[0 1]3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自己添加:选中其中一个输入输出参数点击Edit菜单,选Add MFS…打开下列对话框将MF type设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型)将Number of MFs 设置为2点击OK按钮同样给其他三个加入隶属度函数4、选中任何一个隶属度函数(选中为红色),在Name 中键入名称,在Type中选择形状,在Params中键入范围,然后回车如下图:本例中:In_x,In_y隶属度函数相同,如下打开下了对话框2、添加规则选中IXL2,IYL2,OXL2,none(表示不被选中任何隶属度函数),and选项,权重Weight均设为1,然后点击Add rule 添加规则,同理添加其他规则。
模糊控制simulink实例

模糊控制simulink实例一、模糊控制概述模糊控制是一种基于人工智能的控制方法,它模拟人类的思维方式进行控制决策。
模糊控制的核心思想是将模糊语言和模糊推理应用于控制系统中,通过建立模糊规则和模糊集合来实现对系统的控制。
模糊控制具有适应性强、处理非线性和复杂系统能力强等优点,在工业控制领域得到了广泛应用。
二、Simulink简介Simulink是MathWorks公司开发的一款基于MATLAB的通用仿真平台。
Simulink提供了一个直观的图形化界面,可以用于设计、模拟和实现各种系统模型。
Simulink 支持多领域的仿真,包括控制系统、信号处理、通信系统等,同时也提供了丰富的库函数和工具箱,方便用户进行系统建模与仿真。
三、模糊控制在Simulink中的应用模糊控制在Simulink中的应用可以通过Fuzzy Logic Toolbox来实现,该工具箱提供了一系列用于模糊控制设计和仿真的函数和模块。
下面介绍一个简单的模糊控制实例来说明模糊控制在Simulink中的应用。
3.1 系统建模首先,我们需要确定模糊控制系统的输入、输出和控制规则。
假设我们要设计一个小型的温度控制系统,系统的输入是环境温度(T),输出是加热器的电压(V)。
根据经验,我们可以定义几个模糊集合来描述温度和电压的状态,例如”冷”、“适中”和”热”。
然后,我们可以根据这些模糊集合定义一些模糊规则,例如”当温度冷时,增加电压”等。
3.2 模糊控制器设计在Simulink中,我们可以使用Fuzzy Logic Controller模块来设计模糊控制器。
该模块提供了一种快速且简单的方法来创建模糊控制器。
首先,我们需要定义输入和输出的模糊集合,以及模糊规则。
然后,我们可以将这些参数传递给Fuzzy Logic Controller模块,并设置输入输出的信号传递方式。
3.3 系统仿真在完成模糊控制器的设计后,我们可以进行系统的仿真。
在Simulink中,我们可以通过连接输入信号和模拟环境来模拟系统的行为。
模糊控制的Matlab仿真实例

其他例子
模型Shower.mdl―淋浴温度调节模糊控制系统仿真; 模型slcp.mdl―单级小车倒摆模糊控制系统仿真; 模型 slcp1.mdl―变长度倒摆小车模糊控制系统仿
真; 模型 slcpp1.mdl—定长、变长二倒摆模糊控制系
统仿真; 模型slbb.mdl―球棒模糊控制系统仿真; 模型sltbu.mdl―卡车智能模糊控制倒车系统仿真; 模型sltank2.mdl ― 用子系统封装的水箱控制仿
为简单起见,我们直接利用系统里已经编辑好的 模糊推理系统,在它的基础上进行修改。这里我 们采用与tank . fis中输入输出变量模糊集合完 全相同的集合隶属度函数定义,只是对模糊规则 进行一些改动,来学习模糊工具箱与仿真工具的 结合运用。对于这个问题,根据经验和直觉很显 然可以得到如下的模糊度示 波器
冷水阀子系统
这个仿真模型的输出是用示波器来表示的,如 图所示。通过示波器上的图形我们可以清楚地 看到温度和水流量跟踪目标要求的性能。
水温示波器
水流示波器
水温偏差区间模糊划分及隶属度函数
水流量偏差区间模糊划分及隶属度函数
输出对冷水阀控制策略的模糊化分及隶属度函数
选Edit菜单,选择Rules, 弹出一新界面Rule Editor. 在底部的选择框内,选择相应的 IF…AND…THEN 规则,点击Add rule 键,上部 框内将显示相应的规则。本例中用9条左右的规 则,依次加入。如下图所示:
模糊逻辑工具箱仿真结果
模糊规则浏览器用于显示各条模糊控制规则对 应的输入量和输出量的隶属度函数。通过指定 输入量,可以直接的显示所采用的控制规则, 以及通过模糊推理得到相应输出量的全过程, 以便对模糊规则进行修改和优化。
这样的结果与实际情况还是有些不符。通常顾客都是给15%的 小费,只有服务特别好或特别不好的时候才有改变,也就是说, 希望在图形中间部分的响应平坦些,而在两端(服务好或坏) 有凸起或凹陷。这时服务与小费是分段线性的关系。例如,用 下面 MATLAB 语句绘出的下图的情况。
Simulink模糊控制教程

( x c ) 2 2 2
MATLAB应用技术
3
(4)Sigmoid函数型隶属度函数 f ( x, a, b, c) (5)差型sigmoid隶属度函数f ( x, a1 , c1 , a 2 , c2 )
1 1 e
1 e
a ( x c )
1
a1 ( x c1 )
输入模糊化 确定出if…then规则前提中每个命题或断言为真的程度(即隶属度)。 应用模糊算子 召唤果规则的前提有几部分,则利用模糊算子可以确定出整个前提为真的程度(即整个 前提的隶属度)。 应用蕴含算子 由前提的隶属度和蕴含琥子,可以确定出结论为真的程度 (即结论的隶属度)。
MATLAB应用技术
7
模糊规则的建立
①总结操作人员工、专家的经验和知识。 ②基于过程的模糊模型。 ③基于学习的方法。 MATLAB应用技术
6
最简单的if…then规则的形式是:“如果x是A,则y是B。”复合型的if…then 规则的形式很多,例如: “ if m是A且x 是B then y 是C,否则z是D” ; “ if m是A且x 是B 且 y 是C,then z是D” ; “ if m是A或x 是B then y 是C,或z是D” ; “ if m是A且x 是B then y 是C,且z是D” ; 这里A,B,C,D分别是论域M,X,Y,Z,中模糊集的主义值,if 部分是前 提或前件,then 部分是结论或后件。
4 模糊规则
模糊 推理系统工程中,模糊规则以模糊语言 的形式描述人类的经验和知识, 规则是否正确反映人类专家的经验和知识更新,是否能反映对象的特性, 直接决定了模糊推理系统的性能,通常通过模糊规则的形式是“if…then”, 前提由对模糊语言变量的语言什描述构成,如“温度较高”,“压力较低” 等,结论由对输出模糊语言变量表示成输入量的精确什的组合,模糊规则 的这种形式化表示的符合人们通过自然对许多知识的描述和记忆习惯的。
模糊pidmatlab(simulink)仿真详细步骤

下面用一个简单的例子作介绍:(本例不是特别针对实现什么功能,只是为了介绍方便)第一部分创建一个模糊逻辑(.fis文件)第一步:打开模糊推理系统编辑器步骤:在Commond Window 键入fuzzy回车打开如下窗口,既模糊推理系统编辑器第二步:使用模糊推理系统编辑器本例用到两个输入,两个输出,但默认是一个输人,一个输出步骤:1、添加一个输入添加一个输出得如下图2、选择Input、output(选中为红框),在Name框里修改各输入的名称并将And method 改为prod,将Or method 改为probor提示:在命名时’_’在显示时为下标,可从上图看出。
第三步:使用隶属函数编辑器该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。
步骤:1、双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器。
2、在左下处Range和Display Range处添加取值范围,本例中In_x和In_y的取值范围均为[0 10], Out_x和Out_y的取值范围均为[0 1]3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自己添加:选中其中一个输入输出参数点击Edit菜单,选Add MFS…打开下列对话框将MF type设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型) 将Number of MFs设置为2点击OK按钮同样给其他三个加入隶属度函数4、选中任何一个隶属度函数(选中为红色),在Name中键入名称,在Type 中选择形状,在Params中键入范围,然后回车如下图:5、关闭隶属函数编辑器第四步:使用规则编辑器通过隶规则编辑器来设计和修改“IF...THEN”形式的模糊控制规则。
模糊控制simulink实例

模糊控制simulink实例模糊控制是一种基于人类智能的控制方法,其能够克服传统控制方法中的困难和不足,使得控制系统能够更加稳定和灵活地进行控制。
在模糊控制中,模糊规则和模糊推理是非常关键的,而Simulink正是一款非常适合模拟和控制系统的MATLAB工具箱。
现在,我们就来看一个基于Simulink的模糊控制实例。
假设我们有一个小车可以沿着一条直线上下运动,并且需要通过模糊控制来控制小车的运动。
我们将小车的速度和位置分别作为系统的输入和输出,其中小车的速度可以在0-10m/s之间变化,而小车的位置则可以在0-50m之间变化。
需要注意的是,在这个系统中,小车的速度和位置都是模糊的,我们需要通过模糊规则和推理来确定小车应该如何移动。
首先,我们需要确定一组模糊规则来描述小车的运动。
这里我们设定了三个模糊规则,分别是:1. 如果小车位置很靠近上限,那么小车速度应该减缓。
2. 如果小车位置中间,那么小车速度应该保持不变。
3. 如果小车位置很靠近下限,那么小车速度应该加速。
然后,我们需要建立一组模糊推理机制来根据当前状态来确定小车的下一个状态。
这里我们选择了三个模糊推理机制:模糊最小性、模糊加法和模糊乘法。
其中,模糊最小性是用来确定模糊集合之间的交集,模糊加法是用来确定两个模糊集合之间的并集,而模糊乘法则是用来确定两个模糊集合之间的乘积。
最后,我们需要使用Simulink建立一个模糊控制系统,并将上述规则和推理机制应用到这个系统中。
在Simulink中,我们可以使用Fuzzy Logic Controller来实现这个过程。
首先,我们需要将输入和输出变量添加到Fuzzy Logic Controller中。
然后,我们需要为每个变量设置一个模糊集合,以便能够将当前状态转换为模糊状态。
接下来,我们需要将模糊规则添加到Fuzzy Logic Controller中,并为每个规则设置一些权重,以便能够决定规则的优先级。
基于simulink的模糊PID控制例子06465(谷风软件)

1模糊PID用命令Fuzzy打开模糊控制工具箱。
Anfisedit打开自适应神经模糊控制器,它用给定的输入输出数据建个一个模糊推理系统,并用一个反向传播或者与最小二乘法结合的来完成隶属函数的调节。
Surfview(newfis)可以打开表面视图窗口8.1 模糊PID 串联型新建一个simulink模型同时拖入一个fuzzy logic controller 模块,双击输入已经保存的fis模糊控制器的名字。
由于这个控制模块只有一个输入端口,需要用到mux模块。
模糊结合PID,当输出误差较大时,用模糊校正,当较小时,用PID校正。
8.2 模糊自适应PID(1)PID 参数模糊自整定的原则PID 调节器的控制规律为: u( k) = Kp e( k) + Ki Σe( i) + Kd ec( k)其中: Kp 为比例系数; Ki 为积分系数; Kd为微分系数; e( k) 、ec( k) 分别为偏差和偏差变化率.模糊自整定PID 参数的目的是使参数Kp 、Ki 、Kd随着e 和ec 的变化而自行调整,故应首先建立它们间的关系. 根据实际经验,参数Kp 、Ki 、Kd在不同的e 和ec 下的自调整要满足如下调整原则:(1) 当e 较大时,为加快系统的响应速度,防止因开始时e 的瞬间变大可能会引起的微分溢出,应取较大的Kp 和较小的Kd ,同时由于积分作用太强会使系统超调加大,因而要对积分作用加以限制,通常取较小的Ki值;(2) 当 e 中等大小时,为减小系统的超调量, 保证一定的响应速度, Kp 应适当减小;同时Kd 和Ki的取值大小要适中;(3) 当e 较小时,为了减小稳态误差, Kp 与Ki 应取得大些,为了避免输出响应在设定值附近振荡,同时考虑系统的抗干扰性能,Kd 值的选择根据|ec|值较大时,Kd 取较小值,通常Kd 为中等大小。
同时按照需要,将输入语言变量E 和EC 分为7 个模糊子集,分别用语言值正大( PB) 、正中( PM) 、正小( PS) 、零(Z) 、负小(NS) 、负中(NM) 、负大(NB) 来表示,它们的隶属函数为高斯型(gaussmf) ,输出语言变量Kp′、Ki′、Kd′用语言值小正大( PB) 、正中( PM) 、正小( PS) 、零(Z) 、负小(NS) 、负中(NM) 、负大(NB) 来表示隶属函数为三角型(t rimf) ,方法二:图-1模糊自适应simulink模型根据各模糊子集的隶属度赋值表和各参数模糊控制模型,应用模糊合成推理设计分数阶PID参数的模糊矩阵表,算出参数代入下式计算:Kp=Kp0+(E,EC)p;Ki=Ki0+(E,EC)I;Kd=Kd0+(E,EC)d式中:Kp0、Ki0、Kd0为PID参数的初始设计值,由传统的PID控制器的参数整定方法设计。
Simulink模糊控制教程汇总

xX
,都指定了一个数
隶属度函数有以下11种: (1)高斯型隶属度函数
( xc)2
f (x, , c) e 2 2
(2) 双侧高斯型隶属度函数
(3) 钟形隶属度函数
f (x, a,b, c)
1
1 ( x c)2b
a
MATLAB应用技术
3
(4)Sigmoid函数型隶属度函数
f
(x,
a,
b,
c)
1
1 ea( xc)
(5)差型sigmoid隶属度函数f (x, a1,c1, a2 ,c2 )
1
1 e a1 ( xc1 )
1
1 ea2 (xc2 )
(6) 积型sigmoid隶属度函数 (7) Z形隶属度函数
1
1
f
(x, a1, c1, a2 , c2 )
1 e a1( xc1)
• 1 ea2 (xc2 )
5模糊推理 模推理是采用模糊逻辑由给定的输入到输出的映射过程。模糊推理包括
五个方面: (1)输入变量模糊化,即把确定的输入转化为由隶属度描述的模糊集。 (2)在模糊规则的前件中应用模糊算子(与、或、非)。 (3)根据模糊蕴含运算由前提推断结论。 (4)合成每一个规则的结论部分,得出总的结论。 (5)反模糊化,即把输出的模糊量转化为确定的输出。
MATLAB应用技术
9
6.1.2 模糊推理系统与MATLAB的应用
1 模糊推理系统结构
最常见的模糊推理系统的三类: 1、纯模糊逻辑系统 2、Sugeno型模糊逻辑系统 3、Mamdani型模糊系统
模糊产生器
模糊推理机
模糊消除器
模糊规则库
MATLAB应用技术
参数自整定PID模糊控制器的设计及Simulink仿真

$4 %
$7 % 图# 轿车行驶仿真模型
* %%*
设 计!研 究
糊控制器 +-./ 控制器和轿车模型子模块 ) 同时运用 两种控制器的目的在于把它们的速度波动情况同时 送入01234显示器以比较它们的优劣 ) 由图& 和图5 所ቤተ መጻሕፍቲ ባይዱ示 子 模 块 可 以 看 出 -./ 模 糊 控 制 器 和 -./ 控 制 器 的 不同在于 -./ 模糊控制器的参数由模糊推理系统根 据 "!" 和"!""的状态给出 )
#+##’与#(的自整定要求可归纳为 ’
"%$ 当 &$ & 较 大 时 ! 为 使 系 统 具 有 较 好 的 跟 踪 性 能 ! 应取较大的#+与较小的#(! 同时为了避免系统响 应出现较大的超调 !应对积分作用加以限制 ! 通常取
#’!"(
方法二用MATLAB的模糊逻辑工具箱(Fuzzy toolbox)实现.

方法二:用MATLAB的模糊逻辑工具箱(Fuzzy toolbox)实现(陈老师整理)一、模糊逻辑推理系统的总体特征模糊控制由于不依赖对象的数学模型而受到广泛的重视,计算机仿真是研究模糊控制系统的重要手段之一。
由Math Works公司推出的Matlab软件,为控制系统的计算机仿真提供了强有力的工具,特别是在Matlab4.2以后的版本中推出的模糊工具箱(Fuzzy Toolbox),为仿真模糊控制系统提供了很大的方便。
由于这样的模块都是由相关领域的著名学者开发的,所以其可信度都是很高的,仿真结果是可靠的。
在Simulink环境下对PID控制系统进行建模是非常方便的,而模糊控制系统与PID控制系统的结构基本相同,仅仅是控制器不同。
所以,对模糊控制系统的建模关键是对模糊控制器的建模。
Matlab软件提供了一个模糊推理系统(FIS)编辑器,只要在Matlab命令窗口键入Fuzzy就可进入模糊控制器编辑环境。
二、Matlab模糊逻辑工具箱仿真1.模糊推理系统编辑器(Fuzzy)模糊推理系统编辑器用于设计和显示模糊推理系统的一些基本信息,如推理系统的名称,输入、输出变量的个数与名称,模糊推理系统的类型、解模糊方法等。
其中模糊推理系统可以采用Mandani或Sugeuo两种类型,解模糊方法有最大隶属度法、重心法、加权平均等。
打开模糊推理系统编辑器,在MATLAB的命令窗(command window)内键入:fuzzy 命令,弹出模糊推理系统编辑器界面,如下图所示。
因为我们用的是两个输入,所以在Edit菜单中,选Add variable… ->input,加入新的输入input,如下图所示。
选择input(选中为红框),在界面右边文字输入处键入相应的输入名称,例如,温度输入用tmp-input, 磁能输入用 mag-input,等。
2.隶属度函数编辑器(Mfedit)该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。
模糊pid_matlab(simulink)仿真详细步骤

下面用一个简单的例子作介绍:(本例不是特别针对实现什么功能,只是为了介绍方便)第一部分创建一个模糊逻辑(.fis文件)第一步:打开模糊推理系统编辑器步骤:在Commond Window 键入fuzzy回车打开如下窗口,既模糊推理系统编辑器第二步:使用模糊推理系统编辑器本例用到两个输入,两个输出,但默认是一个输人,一个输出步骤:1、添加一个输入添加一个输出得如下图2、选择Input、output(选中为红框),在Name框里修改各输入的名称并将And method 改为prod,将Or method 改为 probor提示:在命名时’_’在显示时为下标,可从上图看出。
第三步:使用隶属函数编辑器该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。
步骤:1、双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器。
2、在左下处Range和Display Range处添加取值围,本例中In_x和In_y的取值围均为[0 10], Out_x和Out_y的取值围均为[0 1]3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自己添加:选中其中一个输入输出参数点击Edit菜单,选Add MFS…打开下列对话框将MF type设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型) 将Number of MFs 设置为2点击OK按钮同样给其他三个加入隶属度函数4、选中任何一个隶属度函数(选中为红色),在Name 中键入名称,在Type 中选择形状,在Params中键入围,然后回车如下图:5、关闭隶属函数编辑器第四步:使用规则编辑器通过隶规则编辑器来设计和修改“IF...THEN”形式的模糊控制规则。
Simulink模糊控制教程

22
模糊控制器参数类型转换图
MATLAB应用技术
23
系统输出
MATLAB应用技术
24
6.2 MATLAB模糊逻辑工具箱命令行函数应用
6.2.1 MATLAB模糊逻辑工具箱函数
GUI(图形用户界面)工具 函数
功能
anfisedit fuzzy
打开ANFIS编辑器的GUI(图形界 面)
1
1 ea( xc)
(5)差型sigmoid隶属度函数f (x, a1,c1, a2 ,c2 )
1
1 e a1 ( xc1 )
1
1 ea2 (xc2 )
(6) 积型sigmoid隶属度函数 (7) Z形隶属度函数
1
1
f
(x, a1, c1, a2 , c2 )
1 e a1( xc1)
• 1 ea2 (xc2 )
4
3模糊逻辑运算
普通逻辑:
与运算
A B x : x A且x B
或运算 A B x : x A或x B
非运算 A x : x A, x U ,U为全集
模糊逻辑 逻辑与(A AND B)
逻辑或(A OR B) 逻辑非(NOT A)
直积 A B ( (a,b) : a A,b B
AB (x) min( A (x),
5模糊推理 模推理是采用模糊逻辑由给定的输入到输出的映射过程。模糊推理包括
五个方面: (1)输入变量模糊化,即把确定的输入转化为由隶属度描述的模糊集。 (2)在模糊规则的前件中应用模糊算子(与、或、非)。 (3)根据模糊蕴含运算由前提推断结论。 (4)合成每一个规则的结论部分,得出总的结论。 (5)反模糊化,即把输出的模糊量转化为确定的输出。
[应用]SIMULINK模块介绍
![[应用]SIMULINK模块介绍](https://img.taocdn.com/s3/m/46a360836aec0975f46527d3240c844769eaa0a9.png)
示波器的使用和数据保存1.示波器的参数" Number of axes" 项用于设定示波器的Y 轴数量,即示波器的输入信号端口的个数,其预设值为"1" ,也就是说该示波器可以用来观察一路信号,将其设为"2" ,则可以同时观察两路信号,并且示波器的图标也自动变为有两个输入端口,依次类推,这样一个示波器可以同时观察多路信号。
"Time range" (时间范围) ,用于设定示波器时间轴的最大值,这一般可以选自动(auto) ,这样X 轴就自动以系统仿真参数设置中的起始和终止时间作为示披器的时间显示范围。
第三项用于选择标签的贴放位置。
第四项用于选择数据取样方式,其中Decimation 方式是当右边栏设为"3" 时,则每3 个数据取一个,设为"5" 时,则是5 中取1 ,设的数字越大显示的波形就越粗糙,但是数据存储的空间可以减少。
一般该项保持预置值"1" ,这样输入的数据都显示,画出的波形较光滑漂亮。
如果取样方式选Sample time 采样方式,则其右栏里输入的是采样的时间间隔,这时将按采样间隔提取数据显示。
该页中还有一项"Floating scope" 选择,如果在它左方的小框中点击选中,则该示波器成为浮动的示波器,即没有输入接口,但可以接收其他模块发送来的数据。
示波器设置的第二页是数据页,这里有两项选择。
第一项是数据点数,预置值是5000 ,即可以显示5000个数据,若超过5000 个数据,则删掉前面的保留后面的。
也可以不选该项,这样所有数据都显示,在计算量大时对内存的要求高一些。
如果选中了数据页的第二项"Save data to workspace" ,即将数据放到工作间去,则仿真的结果可以保存起来,并可以用MATLAB 的绘图命令来处理,也可以用其他绘图软件画出更漂亮的图形。
如何使用Simulink模糊控制

如何使⽤Simulink模糊控制在⽤这个控制器之前,需要⽤readfis指令将fuzzy1.fis加载到matlab的⼯作空间,⽐如我们⽤这样的指令:fis1=readfis(‘fis1.fis’);就创建了⼀个叫myFLC的结构体到⼯作空间,并在fuzzy logic controller中参数设为:fis1。
可以看到,在模糊控制器的输⼊和输出均有⼀个⽐例系数,我们叫它量化因⼦,它反映的是模糊论域范围与实际范围之间的⽐例关系,例如,模糊控制器输⼊输出的论域范围均为[-3,3],⽽实际误差的范围是[-10,10],误差变化率范围是[-100,100],控制量的范围是[-24,24],那么我们就可以算出量化因⼦分别为0.3,0.03,8。
量化因⼦的选取对于模糊控制器的控制效果有很⼤的影响,因此要根据实际情况认真选取哦。
好,现在我们可以设定仿真步长,⽐如定步长的10ms,就可以运⾏了。
运⾏后,产⽣这样⼀个错误:MinMax blocks do not accept 'boolean' signals. The input signal(s) of block 'test_fuzzy/Fuzzy Logic Controller/FISWizard/Defuzzification1/Max (COA)' must be one of the MATLAB 'uint8', 'uint16', 'uint32', 'int8', 'int16', 'int32', 'single', or 'double' data types 我想很多朋友做模糊控制的时候都会遇到这个情况。
没关系,这⾥提供两个解决办法:1.直接在Defuzzification1这个模块中的那个⽐较环节后加⼊数据类型转换模块,将boolean转化为double型,或者双击那个⽐较模块,选中show additional parameters,将输出数据类型改为specify via dialog,然后选uint(8)即可;但是在仿真之后,⼜会发现很多地⽅都存在这个问题,因此你不得不⼀个⼀个去修改,如果你不怕累的话。
Simulink模糊控制教程

在20世纪70年代和80年代,模糊控制的理论框架逐渐形成,模糊 集合、模糊逻辑和模糊推理等基本概念得到深入研究和应用。
应用
随着计算机技术的发展,模糊控制的应用领域不断扩大,涉及工业控 制、智能家居、医疗等领域。
模糊控制的应用领域
01
工业控制
模糊控制在工业控制领域中得到了广泛应用,例如温度控制、压力控制、
最小值清晰化
将最小值推理得到的输出模糊集合映射到清晰输出上,通常采用中心平均法或 中心最大值法。
04
模糊控制系统的仿真与实 现
模糊控制系统的仿真
模糊逻辑工具箱
使用Simulink的模糊逻辑工具箱 进行模糊控制系统的仿真,可以 方便地创建模糊控制器并进行仿 真分析。
模糊化与去模糊化
在仿真过程中,需要将输入信号 模糊化,将输出信号去模糊化, 以模拟实际模糊控制器的行为。
使用这个工具箱,用户可以轻松地构建和测试各种类 型的模糊控制系统,包括单输入单输出(SISO)系统
和多输入多输出(MIMO)系统。
03
模糊控制器设计
模糊化方法
输入模糊化
将输入信号映射到对应的模糊集合上 ,通常采用三角形、梯形或任何可用 的形状来表示模糊集合。
输出模糊化
根据系统输出和期望输出的偏差,调 整模糊集合的中心和宽度,以实现输 出模糊化。
模糊控制在液位控制系统中的应用
总结词
液位控制系统要求精确控制液位高度,同时要考虑到液体的流动性和容器的形状等因素,模糊控制能够实现高精 度的液位控制。
详细描述
在液位控制系统中,模糊控制器可以根据液位传感器的实时数据和设定值,通过模糊逻辑推理快速调整进液或出 液阀门的开度,实现液位的精确控制。同时,模糊控制器还可以根据液体的物理特性和容器的大小等因素对液位 变化进行预测和控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模糊逻辑工具箱在Simulink中的使用
最近在写小论文,用到了Matlab中的模糊逻辑工具箱和虚拟现实工具箱,发现网上的资料很少,特别是没有讲到在Simulink中怎么使用这两个工具箱,这里简单介绍一下怎样在simulink中加入模糊逻辑。
我用的Matlab 7.0。
模糊逻辑的理论知识就不介绍了,要想知道的话…去查书吧,多得很。
下面用一个简单的例子作介绍:
(本例不是特别针对实现什么功能,只是为了介绍方便)
第一部分创建一个模糊逻辑(.fis文件)
第一步:打开模糊推理系统编辑器
步骤:
在Commond Window 键入fuzzy
回车
打开如下窗口,既模糊推理系统编辑器
第二步:使用模糊推理系统编辑器
本例用到两个输入,两个输出,但默认是一个输人,一个输出步骤:
1、添加一个输入
添加一个输出
得如下图
2、选择Input、output(选中为红框),在Name框里修改各输入的名称并将And method 改为prod,将Or method 改为 probor
提示:在命名时’_’在显示时为下标,可从上图看出。
第三步:使用隶属函数编辑器
该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。
步骤:
1、双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器。
2、在左下处Range和Display Range处添加取值范围,本例中In_x和In_y的取值范围均为[0 10], Out_x和Out_y的取值范围均为[0 1]
3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自己添加:
选中其中一个输入输出参数
点击Edit菜单,选Add MFS…打开下列对话框
将MF type设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型)
将Number of MFs 设置为2
点击OK按钮
同样给其他三个加入隶属度函数
4、选中任何一个隶属度函数(选中为红色),在Name 中键入名称,在Type中选择形状,在Params中键入范围,然后回车如下图:
本例中:In_x,In_y隶属度函数相同,如下
Name Type Params
IXL2\IYL2zmf[1 1.5]
IXL1\IYL1trimf[1 2.5 4]
IXZ\IYZ trimf[3 5 7]
IXR1\IYR1trimf[6 7.5 9]
IXR2\IYR2smf[8.5 9]
Out_x,Out_y隶属度函数相同,如下:
Name Type Params
OXL2\OYL2zmf[0.1 0.15]
OXL1\OYL2trimf[0.1 0.25 0.4]
OXZ\OYZ trimf[0.3 0.5 0.7]
OXR1\OYR1trimf[0.6 0.75 0.9]
OXR2\OYR2smf[0.85 0.9]
5、关闭隶属函数编辑器
第四步:使用规则编辑器
通过隶规则编辑器来设计和修改“IF...THEN”形式的模糊控制规则。
由该编辑器进行模糊控制规则的设计非常方便,它将输入量各语言变量自动匹配,而设计者只要通过交互式的图形环境选择相应的输出语言变量,这大大简化了规则的设计和修改。
另外,还可为每条规则选择权重,以便进行模糊规则的优化。
步骤:
1、打开规则编辑器
点击Edit菜单,选Rules…
打开下了对话框
2、添加规则
选中IXL2,IYL2,OXL2,none(表示不被选中任何隶属度函数),and选项,权重Weight均设为1,然后点击Add rule 添加规则,同理添加其他规则。
下图为添加所有role后:
3、关闭规则编辑器
第五步:保存并查看结果步骤:
1、保存
保存为Test.fis
2、View->Rules打开Rule Viewer
3、View->Surface打开Surface Viewer
第二部分:将模糊逻辑添加到Simulink中第一步:创建一个Simulink文件
步骤:
1、打开Simulink
2、点击新建按钮建立一个新的.mdl文件
第二步:添加模糊逻辑
步骤:
1、在Simulink Library Brower 的搜索框内键入Fuzzy Logic Controller找到Fuzzy Logic Controller,并将其拖拽到新建的mdl文件中
2、双击Fuzzy Logic Controller,打开如下对话框,并在其内部键入Test
3、关闭对话框
第三步:添加其他模块
如下图,都是常用模块,请自己添加
第四步:保存并运行
步骤:
1、保存为Test.mdl
2、初始化模糊逻辑控制器,即在Command Window中键入Test = readfis('Test.fis'),回车
1、运行Test.mdl
这里可以比较一下结果。