模糊PID(自适应模糊PID、fuzzy PID)的基本原理及应用举例 by 研三笔记 您所在的位置:网站首页 自适应的概念 模糊PID(自适应模糊PID、fuzzy PID)的基本原理及应用举例 by 研三笔记

模糊PID(自适应模糊PID、fuzzy PID)的基本原理及应用举例 by 研三笔记

#模糊PID(自适应模糊PID、fuzzy PID)的基本原理及应用举例 by 研三笔记| 来源: 网络整理| 查看: 265

目录 1 控制框图2 概述3 基本原理3.1 一些基本的概念、定义3.2 模糊化3.3 模糊推理3.4 清晰化(解模糊、反模糊化)3.5 模糊PID3.6 使用.fis文件 4 利用matlab模糊控制工具箱设计模糊控制器

1 控制框图

在这里插入图片描述

2 概述

模糊控制PID又叫模糊自适应PID,因为三个PID参数能够实时调整。 模糊PID控制,即利用模糊逻辑并根据一定的模糊规则对PID的参数进行实时的优化,以克服传统PID参数无法实时调整PID参数的缺点。 模糊PID控制包括:

模糊化确定模糊规则(模糊推力)解模糊(清晰化)

例如小车通过传感器采集赛道信息,确定当前距赛道中线的偏差E以及当前偏差和上次偏差的变化ec,根据给定的模糊规则进行模糊推理,最后对模糊参数进行解模糊,输出PID控制参数。

3 基本原理

模糊控制器主要由三个模块组成:模糊化,模糊推理,清晰化。 在这里插入图片描述

3.1 一些基本的概念、定义 模糊量: 如 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)录属度函数:用于求解录属度,有线性的、非线性的。 3.2 模糊化

实质:根据录属度函数求取录属度

把-180,-120,-60,0,60,120,180分别用NB,NM,NS,ZO,PS,PM,PB表示。例如,当E = 170时,此时的E属于PM和PB之间,而此时的E也会对应2(或1)个隶属度。E隶属于PM(120)的百分比为(180 - 170) / (180 - 120) = 1 / 6 ,而同理隶属于PB(180)的百分比为(170 - 120) / (180 - 120) = 5 / 6 。意思就是120到180进行线性分割了,E离PM和PB哪个更近,则隶属于哪个就更大(当输出值E大于180(PB)时,则隶属度为1,隶属度值为PB,即E完全隶属于PB,同理当E小于 - 180 (NB)时也一样)。同理也可以对EC进行模糊化。那么E分别隶属于模糊子集NB,NM,NS,ZO,PS,PM,PB的各个录属度都可以求出。 3.3 模糊推理

实质:根据模糊规则表求取输出值U的隶属度。即根据模糊控制规则进行模糊推理,并决策出模糊输出量 首先要确定模糊规则,即专家经验。对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则(一般来说,这些规则都是现成的,很多教科书上都有)

我们假设为E的两个隶属度值为PM、PB。 假设E属于PM的隶属度为a,则属于PB的隶属度为(1 - a)。 再假设EC的两个隶属度值为NB、NM。 假设EC属于NM的隶属度为b,则属于NB的隶属度为(1 - b)。 根据模糊规则表,当E隶属于PM且EC隶属于NB时,可知输出值U隶属于ZO, 此时输出值U隶属于ZO的录属度为 a *( 1 - b ),其他同理。 在这里插入图片描述 根据以上求解规则,那么可以求得输出值U隶属于各个模糊子集的录属度为: 录属于ZO的隶属度为: a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) 录属于NS的隶属度为 : ( 1 - a ) * b 在这里插入图片描述

3.4 清晰化(解模糊、反模糊化)

对于输出值,我们同样采用给予隶属度的办法。例如,我们把输出值假设为[1000,1400](即舵机的摆角值范围)的区间同样划分为八个部分,即7个模糊子集NB_U,NM_U,NS_U,ZO_U,PS_U,PM_U,PB_U。根据上一步所得出的结论,我们就可以用隶属度乘以相应的隶属值算出输出值的解,即 (a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ) * ZO_U + ( 1 - a ) * b * NS_U。到此为止,整个模糊过程就结束了。 对输出模糊量的解模糊:模糊控制器的输出量是一个模糊集合,通过反模糊化方法判决出一个确切的精确量,反模糊化方法很多,我们这里选取重心法。 在这里插入图片描述

3.5 模糊PID

我们已经知道了整个模糊的过程,但上述的输出值只有一个输出,并没有实现PID。因此我们可以先对E和EC进行模糊化,然后分别根据不同的逻辑模糊子集、录属度函数、模糊规则表求得输出值kp、ki和kd的录属度,然后反模糊化求得kp、ki和kd。再将kp、ki和kd套入PID公式。 即将u分别为Ki、Kd、Kp求取各自的录属度,然后清晰化。

3.6 使用.fis文件

simulink中使用fis文件,首先加入fuzzy模块,然后写入模糊文件,注意应用格式加单引号: ‘fuzzpid.fis’ 或者,现在命令空间中运行: fis = readfis(‘fuzzpid.fis’) 然后 block中田fis 。 在这里插入图片描述

4 利用matlab模糊控制工具箱设计模糊控制器

matlab版本:matlab2010b

在matlab命令窗口中输入 fuzzy ,打开模糊控制工具箱。确定输入、输出量。 Edit -> Add Variable -> Input 在这里插入图片描述 查看规则编辑器和曲面观测器(view/rules view/surface) 在这里插入图片描述 在这里插入图片描述

可参考博客

https://blog.csdn.net/qingfengxd1/article/details/88023414

https://blog.csdn.net/qq_43907537/article/details/105258484



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有