研究项目

模糊PID(Fuzzy)的仿真测试

研究内容

本篇文章主要研究如何通过matlab软件实现模糊PID(Fuzzy)的仿真测试。

研究材料

  • matlab 2017a软件
  • 基本概念和定义
    • 模糊量:如E、EC;
    • 论域(上下限):-240~240;
    • 划分区间:-240 ~ -180;-180 ~ -120 ;-120 ~ -60;-60 ~ 0;0 ~ 60;60 ~ 120;120 ~ 180;180 ~ 240;
    • 隶属度:隶属于某个模糊子集的隶属度,程度;
    • 模糊子集:
      • 负大NB(Negative Big)
      • 负中NM(NegativeMedium)
      • 负小NS(NegativeSmall)
      • 零ZE或ZO(Zero)
      • 正小PS(PositiveSmall)
      • 正中PM(PositiveMedium)
      • 正大PB(Positive Big)
    • 隶属度函数:用于求解隶属度,有线性的、非线性的。

研究方法

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

  • 模糊控制工具箱使用
    首先我们在Matlab的命令窗口(command window)中输入“fuzzy”,回车就会弹出fuzzy模糊控制器窗口(window)。

    接下来我们都是在这个窗口中进行fuzzy模糊控制器的设计。

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

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

    2. 输入输出变量的模糊化:即把输入/输出的精确量转化为对应语言的模糊集合。
      首先确定描述输入输出变量语言的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并设置输入/输出变量的论域,例如我们可以设置误差E(此时为模糊量)、误差变化EC、控制量U的论域均为{-3,-2,-1,0,1,2,3};然后为模糊语言选取相应的隶属度函数。
      在模糊控制工具箱中,我们在Edit->MemberShip Function 中即可完成这些步骤。首先打开Edit->MemberShip Function窗口。

      然后分别对输入/输出变量定义论域范围,添加隶属函数(Edit->MFs),以E为例,设置论域范围 为[-1 1],隶属函数的类型为:trimf(三角函数),添加隶属函数的个数为7。

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

    3. 模糊推理决策算法设计:根据模糊控制规则进行模糊推理,并决策出模糊输出量。
      首先要确定模糊规则,即专家经验。对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则(双击“fuzzy pid”控制器)(一般来说,这些规则都是现成的,很多教科书上都有),如图。

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

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

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

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

研究例子

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

KP的模糊规则控制表

KI的模糊规则控制表
KD的模糊规则控制表

模糊规则PID推理系统结构图

模糊推理系统结构图讲解
  • 输入变量的隶属函数三角形函数,误差变量E的隶属函数:
  • 误差变化变量EC的隶属函数
输出变量隶属函数
  • 输出变量KP的隶属函数
  • 输出变量KI的隶属函数
  • 输出变量KD的隶属函数
模糊规则编辑器

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

经过模糊规则编辑器编入规则之后,此时得到的三个参数的变化如下图:

  • 模糊推理KP变化图
  • 模糊推理KI变化图
  • 模糊推理KD变化图

    最后运行仿真得到结果

研究结果

经过上述一步一步构建仿真结果,最终得到实现通过matlab对模糊PID(Fuzzy)的仿真。

Matlab模拟仿真模糊PID(Fuzzy)相关推荐

  1. matlab simulink实现模糊pid对中央空调时延温度控制系统控制

    1.内容简介 matlab simulink实现模糊pid对中央空调时延温度控制系统控制 439-可以交流.咨询.答疑 2.内容说明 中央空调系统是一个复杂系统,其能耗占整个建筑能耗的50%以上,是耗 ...

  2. matlab打开界面模糊,模糊PID(fuzzy PID)仿真举例

    模糊控制提出至今已有半个世纪,但在控制领域至今仍未工程上广泛应用.但学习了解还是很有必要的,matlab/simulink有专门的模糊控制的库,足以说明其重要性,本文通过简单的simulink模糊PI ...

  3. 汽车abs matlab仿真模糊pid控制

    1.汽车ABS的控制原理 在现代的汽车上,ABS防抱死的控制原理基本上是在每个车轮上都安装一个车轮转动速度的传感器,将相关的各个车轮转速的信号传送到汽车的电子控制装置ECU).电子控制装置ECU)会按 ...

  4. 模糊pid控制的温度系统matlab源代码_模糊PID控制系统(二)对比分析

    0 参考资料 模糊PID是以误差e和误差的变化率ec作为输入,利用设定好的模糊规则表,找出PID三个参数与e和ec之间的模糊关系. 在运行中不断检测e和ec,根据模糊控制原理,来对3个参数进行在线修改 ...

  5. 模糊神经网络matlab模拟仿真

    1.基础知识理论 BP网络的传递函数有多种.Log-sigmoid型函数的输入值可取任意值,输出值在0和1之间:tan-sigmod型传递函数tansig的输入值可取任意值,输出值在-1到+1之间:线 ...

  6. matlab模拟神经模糊自适应控制器

    神经模糊自适应控制器 神经模糊自适应控制器的结构     该分析系统由一个普通的反馈控制器(FC)和一个神经控制器(NNC)组成,两控制器的输出信号之和作为实际控制量对系统进行控制,即 而神经控制器的 ...

  7. matlab单边带调制仿真,000单边带调制MATLAB模拟仿真

    三 三三 三. .. . 设计过程 设计过程设计过程 设计过程 1.信号的产生 利用相移法来调制单边带调制信号,调制信号如下: Fs=100000:%信号脉冲 t=[0:1/Fs:0.01] :%一个 ...

  8. 杨氏双缝干涉和牛顿环MATLAB模拟仿真

    目录 1.算法仿真效果 2.MATLAB源码 3.算法概述 4.部分参考文献 1.算法仿真效果 matlab2022a仿真结果如下:

  9. 杨氏干涉的matlab模拟仿真

    目录 1.算法仿真效果 2.MATLAB源码 3.算法概述 4.部分参考文献 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB源码 %********************* ...

最新文章

  1. MySQL-数据库增删改查
  2. HarmonyOS之常用组件ProgressBar的功能和使用
  3. python将元祖设为整形_python基础(5)---整型、字符串、列表、元组、字典内置方法和文件操作介绍...
  4. axure 画小程序效果图_APP详情页如何用Axure画出来
  5. 谷歌浏览器修复工具_奇安信代码卫士协助谷歌修复漏洞 获官方致谢
  6. 2.跳转到指定的位置
  7. 用web查看hadoop运行状态
  8. hypermesh 错误 2005
  9. 视频教程-职场办公Excel技巧精粹灵活妙用集锦-Office/WPS
  10. Python递归绘制谢尔宾斯基三角形
  11. OSPF特殊区域(末梢区域、NSSA) 路由优化
  12. 能量换算,方便减肥控制饮食
  13. SQL语句 SQL Server中Text类型操作
  14. When you are old - 当你老去时(译)
  15. [转]关于GI/IR(我想理解这个应该具备一定财务知识才行)
  16. 超级硬干货| 电脑蓝屏代码大全及解决办法合集
  17. 神经网络常用的训练方式,神经网络训练过程详解
  18. 抽象类 枚举 反射 接口
  19. 强制IE使用兼容模式
  20. JS实现导航栏下滑悬浮透明置顶

热门文章

  1. 74138译码器详解
  2. 思维导图系列——计算机网络
  3. 矛与盾的较量(1)——花指令
  4. 美团校招php笔试题,【美团点评】2020校招数据分析方向笔试题
  5. python实现循环注册登录_Python入门案例-用户注册和登录
  6. java上传文件到七牛_java 上传文件到七牛云
  7. 【AHB协议解读 三】传输(Transfers)
  8. 小米6用哪个软件测试电池,小米6暴力续航官方测试:用一天稳妥妥
  9. WordPress主题/两栏响应式博客主题:翠竹林CUI v2.06
  10. 安卓应用开发小程序!字节跳动+京东+360+网易面试题整理,聪明人已经收藏了!