Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。下面将根据模糊控制器设计步骤,一步步利用Matlab工具箱设计模糊控制器。

1、模糊控制工具箱使用

首先我们在Matlab的命令窗口(command window)中输入fuzzy,回车就会出来这样一个窗口。

下面我们都是在这样一个窗口中进行模糊控制器的设计。

1确定模糊控制器结构:即根据具体的系统确定输入、输出量。

这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。注意这里的变量还都是精确量。相应的模糊量为EECU,我们可以选择增加输入(Add Variable)来实现双入单出控制结构。

2输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。

首先我们要确定描述输入输出变量语言值的模糊子集,如{NBNMNSZOPSPMPB},并设置输入输出变量的论域,例如我们可以设置误差E(此时为模糊量)、误差变化EC、控制量U的论域均为{-3-2-10123};然后我们为模糊语言变量选取相应的隶属度函数。

在模糊控制工具箱中,我们在Member Function Edit中即可完成这些步骤。首先我们打开Member Function Edit窗口.

然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为[-3 3],添加隶属函数的个数为7.

 

然后根据设计要求分别对这些隶属函数进行修改,包括对应的语言变量,隶属函数类型。

3模糊推理决策算法设计:即根据模糊控制规则进行模糊推理,并决策出模糊输出量。

首先要确定模糊规则,即专家经验。对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则(一般来说,这些规则都是现成的,很多教科书上都有),如图。

制定完之后,会形成一个模糊控制规则矩阵,然后根据模糊输入量按照相应的模糊推理算法完成计算,并决策出模糊输出量。

4对输出模糊量的解模糊:模糊控制器的输出量是一个模糊集合,通过反模糊化方法判决出一个确切的精确量,凡模糊化方法很多,我们这里选取重心法。

5)然后Export to disk,即可得到一个.fis文件,这就是你所设计的模糊控制器。

6)simulink中使用fis文件,首先加入fuzzy模块,然后写入模糊文件,注意应用格式加单引号: 'fuzzpid.fis'

2、模糊控制pid实例

模糊PID控制,即利用模糊逻辑并根据一定的模糊规则对PID的参数进行实时的优化,以克服传统PID参数无法实时调整PID参数的缺点。模糊PID控制包括模糊化,确定模糊规则,解模糊等组成部分。小车通过传感器采集赛道信息,确定当前距赛道中线的偏差E以及当前偏差和上次偏差的变化ec,根据给定的模糊规则进行模糊推理,最后对模糊参数进行解模糊,输出PID控制参数。

KP的模糊规则控制表

∆kp

EC

NB

NM

MS

ZO

PS

PM

PB

E

NB

PB

PB

PM

PM

PS

ZO

ZO

NM

PB

PB

PM

PS

PS

ZO

NS

NS

PM

PM

PM

PS

ZO

NS

NS

ZO

PM

PM

PS

ZO

NS

NM

NM

PS

PS

PS

ZO

NS

NS

NM

NM

PM

PS

ZO

NS

NM

NM

NM

NB

PS

ZO

ZO

NM

NM

NM

NB

NB

KI的模糊规则控制表

∆ki

EC

NB

NM

NS

ZO

PS

PM

PB

E

NB

NB

NB

NM

NM

NS

ZO

ZO

NM

NB

NB

NM

NS

NS

ZO

ZO

NS

NB

NM

NS

NS

ZO

PS

PS

ZO

NM

NM

NS

ZO

PS

PM

PM

PS

NM

NS

ZO

PS

PS

PM

PB

PM

ZO

ZO

PS

PS

PM

PB

PB

PB

ZO

ZO

PS

PM

PM

PB

PB

KD的模糊规则控制表

∆kd

EC

NB

NM

NS

ZO

PS

PM

PB

E

NB

PS

NS

NB

NB

NB

NM

PS

NM

PS

NS

NB

NM

NM

NS

ZO

NS

ZO

NS

NM

NM

NS

NS

ZO

ZO

ZO

NS

NS

NS

NS

NS

ZO

PS

ZO

ZO

ZO

ZO

ZO

ZO

ZO

PM

PB

NS

PS

PS

PS

PS

PB

PB

PB

PM

PM

PM

PS

PS

PB

模糊推理系统结构图

输入变量的隶属取三角形函数,如下:

误差变量E的隶属函数

误差变化变量EC的隶属函数

输出变量的隶属同样取三角形函数,如下:

输出变量KP的隶属函数

输出变量KD的隶属函数

输出变量KI的隶属函数

确定了输入和输出隶属函数后,在模糊规则编辑器中,输入表格中的模糊推理规则,共49条,如下图

模糊推理编辑器

此时得到的三参数的变化如下图

模糊推理KP变化图

模糊推理KI变化图

模糊推理KD变化图

运行仿真得到结果

PS:有定制开发需求,可以QQ联系:1762016542

提供matlab simulink 培训 1v1教学 或者思路沟通 答疑等咨询服务,尤其擅长汽车控制、信号处理、数学建模、电机领域

欢迎关注公众号:算法工程师的学习日志

matlab模糊控制工具箱使用和模糊控制pid实例参考相关推荐

  1. matlab混沌工具箱教程,Matlab混沌工具箱

    [实例简介] 很好的matlab混沌工具箱 可以看到源代码 [实例截图] [核心代码] 2.0(开源非陆振波版) └── 混沌工具箱2.0(开源 非陆振波版) ├── Main │   ├── C_C ...

  2. matlab模糊控制图怎么导出_matlab模糊控制工具箱的使用

    本学期选修了周川老师的智能控制及应用这门课程,大三时候曾上过周老师的英文版的控制工程基础这门课程,比较喜欢周老师上课的风格,智能控制这门课也收获不小,模糊控制是课程中讲到的第一个智能控制算法. 模糊不 ...

  3. 模糊控制matlab算例,matlab模糊逻辑工具箱

    基本FIS编辑器(MATLAB模糊逻辑工具箱函数)_IT/计算机_专业资料.基本FIS编辑器 MATLAB模糊逻辑工具箱函数 基本FIS 编辑器函数 fuzzy 格式 fuzzy %弹出未定义的基本 ...

  4. 4步教你学会使用matlab模糊控制工具箱

    原帖地址:http://blog.sina.com.cn/s/blog_408540af0100avnv.html Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需 ...

  5. matlab中打不开保存好的模糊控制器,(完整版)matlab模糊控制工具箱的使用

    matlab模糊控制工具箱的使用 本学期选修了周川老师的智能控制及应用这门课程,大三时候曾上过周老师的英文版的控制工程基础这门课程,比较喜欢周老师上课的风格,智能控制这门课也收获不小,模糊控制是课程中 ...

  6. matlab ts模糊工具箱,通过算例熟悉MATLAB模糊控制工具箱

    通过算例熟悉MATLAB模糊控制工具箱 设计一个二维模糊控制器控制一个一阶被控对象 1 () 1 G s Ts = + ,然后改变控制对象参 数的大小,观察模糊控制的鲁棒性. 1.模糊推理的五个步骤 ...

  7. matlab模糊控制图怎么导出_4步教你学会使用matlab模糊控制工具箱 | 学步园

    Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化.模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便 ...

  8. MATLAB模糊控制工具箱的使用及常见问题处理

    一.在命令行输入fuzzy,调用出来模糊控制工具箱 模糊控制箱如下: 二.第二步增加输入输出个数,如下午所示 三.双击input或者output进入隶属度函数设置 四.设置隶属度函数 依次完成所有输入 ...

  9. 博途PLC的模糊PID(Matlab “fuzzy“工具箱使用介绍)

    模糊控制和模糊PID的相关内容,其它专栏有详细讲解,大家可以自行搜索查看.这篇博客主要和大家分享.学习如何使用MATLAB fuzzy工具箱,帮助理解设计模糊控制器,受水平和能力所限,文中难免出现错误 ...

最新文章

  1. Kaggle第一人 | 详细解读2021Google地标识别第一名
  2. 数据可视化完美指南-R-Python
  3. axios的简单封装和http请求实践
  4. 高会的计算机模块,2017高会《职称计算机》模块精讲:写字板和便笺
  5. Android开发 - 掌握ConstraintLayout(七)辅助线(Guideline)
  6. codeproject上的一款分页控件
  7. java中arraycopy的用法_[jdk源码阅读系列]Java中System.arraycopy()的用法
  8. java微信支付必要参数_微信支付 开发账号体系各参数详解
  9. IntelliJ IDEA配置与搭建web项目入门使用
  10. [NOIp2016]天天爱跑步 线段树合并
  11. idea shell 中的函数 跳转_6 个珍藏已久 IDEA 小技巧,这一波全部分享给你!
  12. 大叔手记(2):为每个应用程序池单独设置aspnet.config配置文件
  13. Java web简单注册和登陆项目案例
  14. 2023最新苹果APP上架App Store流程(超详细)
  15. 数据库设计之冗余、索引以及查询优化
  16. java.lang.IllegalStateException: Web app root system property already set to different value: 'webap
  17. python对淘宝运营有帮助吗_干货分享 | 两年的淘宝运营经验
  18. ubuntu删除提示权限不够permission denied,以及cannot remove “file“,is a directory.
  19. 计算机教师中级职称个人总结,教师评职称个人总结
  20. 如何15分钟快速入门LaTeX公式?

热门文章

  1. 数据挖掘学习笔记之人工神经网络(二)
  2. 基于深度学习的交通标识别算法对比研究-TensorFlow2实现
  3. Python入门100题 | 第039题
  4. 机器学习第6天:数据可视化神器--Matplotlib
  5. 获取列表中最大N个数的索引
  6. andriod sdk哪些是必须下载安装的包
  7. 99% 的人都能看懂的「补偿」以及最佳实践
  8. 序列化和反序列化--转
  9. 1号店11.11:从应用架构落地点谈高可用高并发高性能--转载
  10. 使用四种框架分别实现百万websocket常连接的服务器--转