精华内容
下载资源
问答
  • 模糊PID算法

    2019-12-19 15:24:06
    在讲解模糊PID前,我们先要了解PID控制器的原理(本文主要介绍模糊PID的运用,对PID控制器的原理不做详细介绍)。PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分...

     在讲解模糊PID前,我们先要了解PID控制器的原理(本文主要介绍模糊PID的运用,对PID控制器的原理不做详细介绍)。PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分单元I和微分单元D组成。PID控制的基础是比例控制;积分控制可消除稳态误差,但可能增加超调;微分控制可加快大惯性系统响应速度以及减弱超调趋势。


    1.1传统PID控制

    传统PID控制器自出现以来,凭借其结构简单、稳定性好、工作可靠、调整方便等优点成为工业控制主要技术。当被控对象的结构和参数具有一定的不确定性,无法对其建立精确的模型时,采用PID控制技术尤为方便。PID控制原理简单、易于实现,但是其参数整定异常麻烦。对于小车的速度控制系统而言,由于其为时变非线性系统不同时刻需要选用不同的PID参数,采用传统的PID控制器,很难使整个运行过程具有较好的运行效果。

     

    1.2模糊PID控制

     

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

    2.1模糊化

     

     模糊控制器主要由三个模块组成:模糊化,模糊推理,清晰化。具体如下图所示。而我们将一步步讲解如何将模糊PID算法运用到智能车上。(最好用笔一步步自己写一遍!!!)

     首先我们的智能车会采集到赛道的相关数据,例如摄像头车,其采集到的数据经过算法处理之后会得到与中线的偏差E,以及当前偏差和上次偏差的变化(差值)EC两个值(即此算法为2维输入,同理也可以是1维和3维,但2维更适合智能车)。例如此时车偏离中线的距离为150,而上一时刻偏离中线的距离为120,则E为150,EC为150 - 120 = 30。

     其次我们要对这两个值进行模糊化。这里我们对E进行举例。摄像头车采集回来的E是有范围的,即与中线的偏差是在一个区间内可行的。在这里我们假设该区间为-240到240,即小车偏离中线的最大距离为240,正负即为左右。再假设中线偏差变化率的可行区间为-40到+40。

     

            接着我们要对这两个值进行模糊化。我现在将E的区间(-240 到 240)分成8个部分,那么他们分别为-240 ~ -180,-180 ~ -120 ,-120 ~ -60,-60 ~ 0,0 ~ 60,60 ~ 120,120 ~ 180,180 ~ 240。然后我们把-180,-120,-60,0,60,120,180分别用NB,NM,NS,ZO,PS,PM,PB表示(个人理解N为negative,P为positive,B为big,M为middle,S为small,ZO为zero)。例如,当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进行模糊化。

     

    2.2 模糊推理

           对于采集回来的E和EC,我们可以推出它们各所占的隶属度,此时我们可以根据模糊规则表去找出输出值所对应的隶属度。

     

         我们假设为E的两个隶属度值为PM、PB,E属于PM的隶属度为a(a < 1),则属于PB的隶属度为(1 - a)。再假设EC的两个隶属度值为NB、NM,EC属于NM的隶属度为b,则属于NB的隶属度为(1 - b)。而在假设中,E属于PM的隶属度为a,EC属于NB的隶属度为( 1 - b ),则输出值属于ZO的隶属度为a *( 1 - b )(看图)。

           同理我们可以得出,当输出值属于ZO的另外两个隶属度为a * b, ( 1 - a ) * ( 1 - b) ,而输出值属于NS的隶属度为 ( 1 - a ) *  b。

           在这里我们先证明一个条件,将这四个隶属度加起来,刚好等于1。这是因为

            (a + (1 - a)) * (b + (1 - b)) = a * b + ( 1 - a ) *  b  + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b )   (下图)

           即一个十字相乘的概念。这个等式说明输出值的隶属度之和等于1(第三步求解的时候需要用到隶属度之和)。

    因此,我们知道了输出值为ZO的隶属度和为 a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ,输出值为NS的隶属度为 ( 1 - a ) *  b 。

     

    2.3 清晰化

           对于输出值,我们同样采用给予隶属度的办法。例如,我们把输出值假设为[1000,1400](即舵机的摆角值范围)的区间同样划分为八个部分,即7个隶属值NB,NM,NS,ZO,PS,PM,PB。根据上一步所得出的结论,我们就可以用隶属度乘以相应的隶属值算出输出值的解,即 (a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ) * ZO   +    ( 1 - a ) *  b * NS。到此为止,整个模糊过程就结束了。

         

    3 模糊PID

          我们已经知道了整个模糊的过程,但上述的过程还不够完美。因为我们的输出值只有一个输出,并没有实现PID。因此我们可以先对E和EC进行模糊化,然后分别对kp和ki和kd(PID的三个参数)进行求解,再套入公式。

         一般的我们也可以只用kp,kd,不用ki。而模糊规则表一般的论文已经基本给出。因此带入算法之后我们的难度也只是在于调节kp,kd,和适当调节规则表。当然调节的难度会大于普通的PID,因为还要定kp,kd的输出范围,调得不好可能效果并没有普通的PID好。

     

    4. 部分解释

         4.1对于部分论文所说的重心法解模糊,其实就是上述方法。公式如下。

          式中μ(Zi) * Zi相当于文章上面的(a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ) * ZO   +    ( 1 - a ) *  b * NS,即隶属度乘以隶属度值之和,而μ(Zi)之和就是输出值的隶属度之和,我们已经证明它是等于1的。
     

    参考

    [1] https://blog.csdn.net/weixin_36340979/article/details/79168052

    [2] https://blog.csdn.net/foxclever/article/details/83932107

    展开全文
  • 模糊PID算法及其MATLAB仿真(2)

    万次阅读 多人点赞 2019-04-16 18:05:07
    MATLAB进行模糊PID仿真 1、准备工作 2、模糊控制器的设计 补充内容:如何计算临界稳定下的开环增益 Ku 和震荡周期 Tu 学过控制工程或者相关理论的同学应该比较了解,判断系统稳定性的条件一般用到劳斯表(劳斯...

    上一篇写了模糊自整定PID的理论,这篇来做MATLAB仿真。

    目录

    补充内容:如何计算临界稳定下的开环增益 Ku 和震荡周期 Tu

    MATLAB进行模糊PID仿真

    1、准备工作

    2、模糊控制器的设计


    补充内容:如何计算临界稳定下的开环增益 Ku 和震荡周期 Tu

        学过控制工程或者相关理论的同学应该比较了解,判断系统稳定性的条件一般用到劳斯表(劳斯判据)。而PID控制和模糊PID控制极大地依赖系统传递函数的建立,因此如果对于系统复杂,难以建立模型的,还是需要考虑一下。

    (1)通过自己对所需要控制的系统进行建模,拉普拉斯变换得到传递函数Gc(s),然后求得其特征方程(形式如下):

     其闭环系统特征方程可以表示为:

    特征方程的计算就是要求闭环系统传递函数的分母为0,如果是开环系统,就将传递函数的分子和分母加起来作为特征方程。

    (2)将系统特征方程中的s用(-jw)代替,然后令实部和虚部分别等于0,解出特征根。特征根 w 就是震荡频率,K 为开环增益。

    则,周期 Td = 2PI/w 。这样就可以用来求取PID参数的论域了。

    MATLAB进行模糊PID仿真

    1、准备工作

        首先需要选取传递函数,设系统传递函数方程如下:

    纯属为了计算方便。解得 K=8,w^2=3。

    先看使用 Simulink 自带的仿真结果,其PID参数整定的情况:

    接下来设计模糊自整定PID。

    2、模糊控制器的设计

    步骤:

    (1)打开 MATLAB ,选择一个工作目录,这里一般选择一个可写的磁盘即可。为什么要可写的呢,因为C盘有些目录下你的用户权限是不可写的,所以就算你设计的没有问题也没法运行。

    (2)命令行输入fuzzy,打开模糊规则编辑器。

    (3)Edit -> Add variables -> Input;Edit -> Add variables -> Output;Edit -> Add variables -> Output。单击选中,分别对 input1 、input2、output1、output2、output3 进行隶属度编辑。对于输入进行命名,分别为误差 E 和误差变化率 EC。输出分别命名为P、I、D,其他不变。

    (4)双击 Input1 进入隶属度编辑器,Edit -> Add MFS 。添加隶属度函数,这里采用三角形隶属度函数,添加4个,实际应该对每一个都添加4个,并进行编辑。

    (5)其中 E 和 EC 的论域(Range)取 [-6 6],然后对每个隶属度曲线进行编辑。这里有两个小问题(或者说是小技巧)。

      a. 论域的划分,抛开模糊PID理论来说,其实论域的划分很大程度上取决于个人的方法,灵活性很大。你可以认为身高180的人很高、也可以认为较高,甚至可以认为较矮,只是隶属度不同。这些都取决于你的系统,但是常规是均匀划分的,例如这篇博客。然后我自己想了一种方法(适用于7隶属度):半区间宽度=(论域总长度/12)*2,也就是说一个大三角由两个半区间组成。

      b. 还有就是隶属度函数命名的时候,最好是有顺序的,单击隶属度函数曲线,设计顺序:mf1->NL;mf2->NM;mf3->NS;mf4->ZE;mf5->PS;mf6->PM;mf7->PL。这样设置的好处是后面添加模糊规则的时候很方便。 

    (6)设计PID三个参数的输出隶属度

       按照上一篇的介绍,三个参数的隶属度选择范围如下,近似的话建议扩大论域区间:

    Kp = [0.32Ku 0.6Ku] = [2.56 4.80] \approx [2,5]

    Ki = [0.32Tu 0.47Tu] = [1.1608 1.7050] \approx [1 2]     // 这里用[1 2]可能存在结果1的情况,结果2用的[1 3]

    Kd = [2Tu 5Tu] = [7.2552 18.1380] \approx [7 19]

    按照之前的方法进行划分,获得隶属度函数分布区间:

                                                                                   Kp 的论域划分

    隶属度 NL NM NS ZE PS PM PL
    区间 [1.5 2 2.5] [2 2.5 3] [2.5 3 3.5] [3 3.5 4] [3.5 4 4.5] [4 4.5 5] [4.5 5 5.5]

                                                                                  Ki 的论域划分

    隶属度 NL NM NS ZE PS PM PL
    区间 [0.833 1 1.167] [1 1.167 1.333] [1.167 1.333 1.5] [1.333 1.5 1.667] [1.5 1.667 1.833] [1.667 1.833 2] [1.833 2 2.167]

                                                                                 Kd 的论域划分

    隶属度 NL NM NS ZE PS PM PL
    区间 [5 7 9] [7 9 11] [9 11 13] [11 13 15] [13 15 17] [15 17 19] [17 19 21]

    直接复制上去吧!!!!

    其实这里还有很多不严谨的地方,比如隶属度论域的计算方法。

    (7)设计模糊规则,这里的设计规则选取的是一篇文献中的规则表,我主要是考虑方便,实际上,这种模糊规则表是决定模糊PID效果的关键之一(还有就是隶属度函数的确定)。如果这里设计的不好,最后出来的PID阶跃响应可能还不如手工调整PID,虽然这种方式对于在线调整是不太可能实现的。调整规则如下,参考文献 [2]。

    双击下图圈中方框:

    调整规则: 

    第一个隶属度图中的圈内换成PL,第二个图换成ZE(其实这里不确定,我换的ZE)。

    根据隶属度规则表挨个添加进 Rule Editor 即可

    (8)导入工作空间

    关闭规则编辑器。单击 file-> export -> To file... 命名为Fuzzy_PID.fis -> 保存。

    单击 File -> Export -> To workspace -> OK。

    我们会发现在MATLLAB的工作区(Workspace)有来了一个1*1 struct的值。

    (9)Simulink中进行仿真。

        在命令行里输入simulink,或者在MATLAB主页点击Simulink,打开Simulink工具箱。新建一个空白Blank。

    在库里面找到Fuzzy Logic Controlller模块,拖到Blank里面。相关的还需要step(阶跃信号),sum(输入输出反馈),PID(一个完整的控制算法块,也可以自己写),mux(用于整合图形),scope(显示结果)。

    (10)然后一步一步设置:

    双击sum,将sum的配置改为下图:

    双击PID Controller,使source为external,也就是PID接收外部参数。

    PID改完之后是这样的:

    双击传递函数(Transfer Fun),修改如下:

    如果显示 num(s)/den(s) 的形式,可以把它放大,和你放大窗口是一样的。

    设置Fuzzy controller,同样双击。

    这个名字要和你工作空间的一样才行,有些同学虽然改了,但是还是不成功,可能就是你没能导入到工作空间里面。自寻解决办法(readfis()函数)。

    结果1:

    结果2:Ki 的区间从[1,2] 修改为[1,3].

     

     

    目前结果是这样,我再调一调看看。

    不妥之处恳请广大朋友指出。

    增加:评论区有位指出积分时间常数和PID系数Ki的问题,这里贴个PID的方程:

    典型PID控制器的传递函数为:

    G_{c}(s)=K_{p}(1+\frac{1}{T_{i}s}+T_{d}s)

    而离散PID控制方程可以表示为:

    U(n)=K_{p}[e(n)+\frac{T}{T_{i}}\sum e(i)+\frac{T_{d}}{T}(e(n)-e(n-1)))]

    源程序!源程序!https://github.com/NidhoghostX/Fuzzy-PID-on-Matlab

    CSDN 要收费下载,资源转到Github了。

    ——————————————————————————————————————————————

    更新:

    二维模糊PID的matlab仿真(官网教程):https://www.mathworks.com/help/fuzzy/fuzzy-pid-control-with-type-2-fis.html

    现在在忙,没有时间研究,今后可能会做一下。

    参考文献

    [1] https://sci-hub.tw/10.1115/1.2899060 (最早经典的PID参数整定文章,大部分文献都会用到)

    [2] S. krishna, S. Vasu,Fuzzy PID based adaptive control on industrial robot system,Materials Today: Proceedings,Volume 5, Issue 5, Part 2,2018,Pages 13055-13060.
     

     

     

    展开全文
  • 基于模糊PID算法的球形两栖机器人运动控制
  • 基于模糊PID算法的履带式机器人.pdf
  • 采用一种基于模糊PID算法的温控理论,使CCD电路工作在稳定的环境。实验结果表明,在20℃时,CCD电路的暗电流变化相对平稳,同时,采用改进的模糊PID算法可以较快、较准确地达到20℃的目标控制温度,误差范围在0.1℃...
  • 模糊算法能解决传统方法难以解决... 结合这 2种方法,提出模糊 PID算法, 应用于通用烘箱的温度控制,通过仿真分析,表明:对不同烘箱、不同环境下,用该算法控制, 有高精度、超调量小,无需调节PID参数,具有智能控制等功能。
  • 本文采用模糊PID算法对婴儿培养箱的温度加以控制,系统的动静态特性得到进一步改善。
  • 基于模糊PID算法的双闭环直流调速系统仿真研究
  • 阐述了电控共轨燃油喷射系统结构及压力调节基本原理,针对压力控制传统PID算法的不足,引入参数自调整模糊PID算法,通过Matlab仿真确定了不同误差输入时的参数调整规律。为提高压力控制动态响应,设计了前馈参数自...
  • 模糊pid算法c语言

    2017-10-13 13:47:08
    可以用的模糊pid.原代码,稍加修改变成自己的,c语言,注释详细
  • 模糊PID算法控制

    2018-08-09 09:11:47
    PID模糊化控制,将需要使用的场景根据实际需要建模模糊化处理,进而PID的进一步调控,可用于飞思卡尔小车的控制,代码有详细注解
  • 蛋类孵化对温度控制的要求较高,为了提高孵化机温控系统的控制效果,基于专家-模糊PID算法理论,通过MATLAB仿真和实验,验证了文中所阐述的方法与常用的PID控制相比,能使孵化机温控系统根据热负荷变化在线修改控制参数,...
  • 模糊PID-C代码
  • 基于模糊PID算法的无刷直流电机控制器研究,阙大顺,张浩,基于TMS320LF2407,采用脉宽调制(PWM)调节电机转速,利用模糊PID算法来实现高精度控制,建立了无刷直流电机全数字控制系统。通过Matlab/Sim
  • 分析了现有光伏电池MPPT控制方法的优点和不足,提出了一种基于自整定模糊PID算法的光伏电池MPPT控制系统。在Matlab/Simulink环境下建立了光伏电池模型和基于自整定模糊PID算法的MPPT控制系统。仿真结果表明:该系统...
  • 飞思卡尔智能车----模糊PID算法通俗讲

    万次阅读 多人点赞 2018-02-02 11:14:15
    在讲解模糊PID前,我们先要了解PID控制器的原理(本文主要介绍模糊PID的运用,对PID控制器的原理不做详细介绍)。PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分...

     在讲解模糊PID前,我们先要了解PID控制器的原理(本文主要介绍模糊PID的运用,对PID控制器的原理不做详细介绍)。PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分单元I和微分单元D组成。PID控制的基础是比例控制;积分控制可消除稳态误差,但可能增加超调;微分控制可加快大惯性系统响应速度以及减弱超调趋势。

     

    1.1传统PID控制

     

     

     

     传统PID控制器自出现以来,凭借其结构简单、稳定性好、工作可靠、调整方便等优点成为工业控制主要技术。当被控对象的结构和参数具有一定的不确定性,无法对其建立精确的模型时,采用PID控制技术尤为方便。PID控制原理简单、易于实现,但是其参数整定异常麻烦。对于小车的速度控制系统而言,由于其为时变非线性系统不同时刻需要选用不同的PID参数,采用传统的PID控制器,很难使整个运行过程具有较好的运行效果。

     

    1.2模糊PID控制

     

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

     

     

     

    2.1模糊化

     

     模糊控制器主要由三个模块组成:模糊化,模糊推理,清晰化。具体如下图所示。而我们将一步步讲解如何将模糊PID算法运用到智能车上。(最好用笔一步步自己写一遍!!!)

     

     

     

     

     首先我们的智能车会采集到赛道的相关数据,例如摄像头车,其采集到的数据经过算法处理之后会得到与中线的偏差E,以及当前偏差和上次偏差的变化(差值)EC两个值(即此算法为2维输入,同理也可以是1维和3维,但2维更适合智能车)。例如此时车偏离中线的距离为150,而上一时刻偏离中线的距离为120,则E为150,EC为150 - 120 = 30。

     其次我们要对这两个值进行模糊化。这里我们对E进行举例。摄像头车采集回来的E是有范围的,即与中线的偏差是在一个区间内可行的。在这里我们假设该区间为-240到240,即小车偏离中线的最大距离为240,正负即为左右。再假设中线偏差变化率的可行区间为-40到+40。

     

            接着我们要对这两个值进行模糊化。我现在将E的区间(-240 到 240)分成8个部分,那么他们分别为-240 ~ -180,-180 ~ -120 ,-120 ~ -60,-60 ~ 0,0 ~ 60,60 ~ 120,120 ~ 180,180 ~ 240。然后我们把-180,-120,-60,0,60,120,180分别用NB,NM,NS,ZO,PS,PM,PB表示(个人理解N为negative,P为positive,B为big,M为middle,S为small,ZO为zero)。例如,当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进行模糊化

     

    2.2 模糊推理

           对于采集回来的E和EC,我们可以推出它们各所占的隶属度,此时我们可以根据模糊规则表去找出输出值所对应的隶属度

     

     

         我们假设为E的两个隶属度值为PM、PB,E属于PM的隶属度为a(a < 1),则属于PB的隶属度为(1 - a)。再假设EC的两个隶属度值为NB、NM,EC属于NM的隶属度为b,则属于NB的隶属度为(1 - b)。而在假设中,E属于PM的隶属度为a,EC属于NB的隶属度为( 1 - b ),则输出值属于ZO的隶属度为a *( 1 - b )(看图)。

     

     

           同理我们可以得出,当输出值属于ZO的另外两个隶属度为a * b, ( 1 - a ) * ( 1 - b) ,而输出值属于NS的隶属度为 ( 1 - a ) *  b

           在这里我们先证明一个条件,将这四个隶属度加起来,刚好等于1。这是因为

            (a + (1 - a)) * (b + (1 - b)) = a * b + ( 1 - a ) *  b  + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b )   (下图)

           即一个十字相乘的概念。这个等式说明输出值的隶属度之和等于1(第三步求解的时候需要用到隶属度之和)

     

     

    因此,我们知道了输出值为ZO的隶属度和为 a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ,输出值为NS的隶属度为 ( 1 - a ) *  b 。

     

    2.3 清晰化

           对于输出值,我们同样采用给予隶属度的办法。例如,我们把输出值假设为[1000,1400](即舵机的摆角值范围)的区间同样划分为八个部分,即7个隶属值NB,NM,NS,ZO,PS,PM,PB。根据上一步所得出的结论,我们就可以用隶属度乘以相应的隶属值算出输出值的解,即 (a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ) * ZO   +    ( 1 - a ) *  b * NS。到此为止,整个模糊过程就结束了。

         

    3 模糊PID

          我们已经知道了整个模糊的过程,但上述的过程还不够完美。因为我们的输出值只有一个输出,并没有实现PID。因此我们可以先对E和EC进行模糊化,然后分别对kp和ki和kd(PID的三个参数)进行求解,再套入公式。

     

     

         一般的我们也可以只用kp,kd,不用ki。而模糊规则表一般的论文已经基本给出。因此带入算法之后我们的难度也只是在于调节kp,kd,和适当调节规则表。当然调节的难度会大于普通的PID,因为还要定kp,kd的输出范围,调得不好可能效果并没有普通的PID好。

     

    4. 部分解释

         4.1对于部分论文所说的重心法解模糊,其实就是上述方法。公式如下。

     

          式中μ(Zi) * Zi相当于文章上面的a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ) * ZO   +    ( 1 - a ) *  b * NS,即隶属度乘以隶属度值之和,而μ(Zi)之和就是输出值的隶属度之和,我们已经证明它是等于1的。

     

     

     

     

    展开全文
  • 本文档主要讲述了模糊PID算法在直流电机控制系统中的应用
  • 基于模糊PID算法的呼吸机的设计,张珏,,呼吸机是临床抢救和治疗各种原因引起的急慢性呼吸衰减或呼吸功能不全的不可缺少的重要工具。目前国内的呼吸机的控制系统一般采用
  • 模糊PID算法的simulink仿真 一、模糊PID是什么? 最近要用到模糊PID控制,分享一下自己的学习心得。模糊PID说白了就是制定模糊规则以后,PID的参数值会随着e、ec的值改变,调整PID参数,使控制效果更好,更快趋于...

    模糊PID算法的simulink仿真

    一、模糊PID是什么?

    最近要用到模糊PID控制,分享一下自己的学习心得。模糊PID说白了就是制定模糊规则以后,PID的参数值会随着e、ec的值改变,调整PID参数,使控制效果更好,更快趋于稳定。因此模糊PID的控制效果取决于模糊规则的制定,然而就和调PID参数一样,现在没有具体求解模糊规则的方法,只能试凑。在本文中,先搭建了传递函数的PID仿真,利用tune求得到较好控制效果的kp、ki、kd参数,在此基础上建立模糊PID控制,这样有利于减小模糊PID调试的不确定性。

    二、simulink中搭建模糊PID系统

    链接: [link(https://blog.csdn.net/m0_37763336/article/details/89325795?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159903065819195162159533%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159903065819195162159533&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v3~pc_rank_v4-2-89325795.first_rank_ecpm_v3_pc_rank_v4&utm_term=%E6%A8%A1%E7%B3%8APID%E4%BB%BF%E7%9C%9F&spm=1018.2118.3001.4187).这篇文章详细的讲解了模糊PID的仿真搭建步骤,这篇文章介绍了模糊PID调整参数的原理 [link](https://blog.csdn.net/weixin_36340979/article/details/79168052)。在此不作累述。
    本文选取传递函数为在这里插入图片描述
    现在PID控制中得到合适的kp、ki、kd参数,如下图所示,双击PID模块,再点tune…。
    在这里插入图片描述
    调整slower以及aggressive,使得图像进入较理想的状态,点击update,应用kp、ki、kd参数。最后选取kp、ki、kd参数的值分别为2.2,0.8,1.47.
    在这里插入图片描述
    运行结果如下在这里插入图片描述
    加入模糊系统,模糊控制规则步骤如上链接,选取模糊隶属度e[-6 6],ec[-6 6],kp[-1 1],ki[-0.3 0.3],kd[-3 3]。系统如下图
    在这里插入图片描述
    结果如下图所示在这里插入图片描述
    可以看到输出曲线超调量减小,控制效果并没有很明细,老哥们可以试着改变隶属度以及隶属函数曲线得到更好的控制效果。

    展开全文
  • 引言 婴儿培养箱主要应用...本文采用模糊PID算法对婴儿培养箱的温度加以控制,系统的动静态特性得到进一步改善。 1 婴儿培养箱温度控制系统的设计 本系统利用单片机技术对培养箱温度实施伺服控制,开机即可自动进入
  • 基于模糊PID算法的转速控制系统的研究 本文提出了一种基于模糊PID 算法的直流电机转速控制系统。利用模糊控制理论对电机转速偏差和转速偏差率进行 模糊控制的一系列处理,实现对PID 参数的在线整定,输出PWM 波驱动...
  • 基于Smith 预估补偿模糊 PID算法的航空发动机控制 一篇文章希望对大家有用
  • 备战第16届智能车-控制处理进阶-模糊PID算法一、前言二、代码部分1、模糊分布表2、计算模糊完成的Kp\Kd三、总结 一、前言 模糊PID算法近几年被广泛用于智能车竞赛之中 博主将用最简单的方式让初学者明白如何使用 ...
  • 模糊PID算法及其MATLAB仿真(1)

    万次阅读 多人点赞 2019-04-15 20:34:35
    3、模糊PID简介 4、模糊自整定PID的理论内容(重点内容) 4.1 基本原理 4.2 模糊子集及其论域的确定 4.3 模糊规则的建立 4.4 模糊推理 1、PID控制 PID控制是及其普遍的控制方法,主要分为位置式PID和增量式...
  • 基于模糊PID算法的电阻炉温度控制系统设计
  • 模糊pid算法实现(Java)

    千次阅读 多人点赞 2019-05-23 15:10:49
    模糊pid属于智能算法的一种,智能算法也可以叫非模型算法,也就是说,当我们无法确定系统模型时智能算法常常能够起到不小的作用。在现实世界中,大多数系统系统都是非线性的,不可预测的。 智能算法包括专家系统,...
  • 针对中央空调系统房间温度控制系统的大惯性、纯滞后和时变性特点,设计了将等维新息灰色预测控制与模糊自整定PID相结合的新型控制器,建立中央空调房间温度控制系统的数学模型,介绍灰色预测模糊PID控制器结构,并对...
  • 为了解决矿井防爆制冷装置冷却水泵PID变频控制系统动态响应较差问题,针对该系统惯性大、滞后现象严重、建模困难的特点,利用模糊控制机制,通过对冷却水泵控制系统特点的分析,构建模糊控制规律表。并分别对冷却水泵的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 847
精华内容 338
关键字:

模糊pid算法