【每天一点算法】模糊控制器的设计

概述
模糊控制器是以模糊集合论、模糊语言变量、模糊逻辑推理为基础的一种智能控制方法。关于这三个方面的基础知识,不知道的,自己去补充。
模糊集合理论
一种描述模糊现象的方法,隶属度函数是它的核心概念。
模糊语言变量
主要有四个方面内容,定义变量名称、定义变量论域、定义语言值(实质是模糊集合)、定义每个语言的隶属度函数。
模糊蕴含关系
两个语言变量之间存在的模糊关系,这种模糊关系的求解可以有多种方法,常见的有Zadeh法、Mamdani法。
模糊逻辑推理
有模糊关系、以及输入后,如何得到输出。

正文
模糊控制器的设计主要分为如下步骤:
1、模糊控制器结构的确定:几个输出变量?几个输出变量?分别是什么变量?
2、定义输入输出变量模糊集:确定各个变量的论域语言值、各个模糊集合的隶属度函数
3、构建模糊控制规则表,这个表由专家经验所得。
4、求解模糊蕴含关系:利用模糊规则表结合对应的推理机来得到模糊蕴含关系,常用的有Zadeh法、Mamdani法。
5、总结模糊查询表
6、解模糊得到输出值:常用的方法有最大隶属度法、重心法、加权平均法。

这样说得可能比较抽象,下面我们以一个MATLAB中的simulink实例来讲解模糊控制器的设计与仿真
首先明确我们是为什么设计的模糊控制器,这是我们选择专家经验的前提,这里我们设计的是一个以偏差e和偏差变化率ec为输入的模糊控制器,类似于PID控制器。
一、设计模糊控制器
1、选择输入输出变量及其个数,这里我们选择的是偏差e和ec(注意,在真实系统中,这两个量是要经过量化因子处理后才能送给模糊控制器的,因为模糊控制器的论语通常在(-6, 6)这个范围内,但是实际系统的输入输出值却不是在这个范围,所以我们需要对其进行比例换算,但是这里由于是仿真,我们就不处理了)。
在这里插入图片描述
2、为模糊变量设计论域,选择语言值、确定每个语言值对应的隶属度函数
在这里插入图片描述
3、设计规则
在这里插入图片描述
到这里一个模糊控制器就设计完成了,接下来我们把这个模糊控制器保存到我们的某个目录下面,然后在MATLAB主界面下跳转到这个目录下,使用>>a2=readfis(‘fuzzf.fis’)这个命令来将模糊控制器读取到工作空间中,用来后面调用。
二、搭建simulink仿真模型
在这里插入图片描述
模糊控制器参数
在这里插入图片描述
仿真结果
在这里插入图片描述
在这里插入图片描述
在这个案例中,我们使用了49条规则,我尝试着将规则减少,但是发现这样做会严重影响控制器的跟踪效果,还有就是这种控制规则是需要专家经验来设定的,如果专家经验不合适也会造成控制器的跟踪效果不好。

模糊控制器的优缺点
优点:不需要被控对象的精确模型,只需要掌握人类的控制经验,系统鲁棒性强,尤其适用于强非线性时变、大滞后系统的控制。
缺点:过于依赖经验, 有时候经验难以获得,不方便在线调整,同时由于模糊控制器不具有积分环节,所以会稳态精度不高。基于以上缺点,实际应用中,常将模糊控制器与其它控制器进行组合使用,如一些自校正模糊控制器。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值