MATLAB自适应果蝇优化算法整定PID控制器参数—— 一阶带时延的被控对象

Posted 昔时扬尘处

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB自适应果蝇优化算法整定PID控制器参数—— 一阶带时延的被控对象相关的知识,希望对你有一定的参考价值。

【MATLAB】自适应果蝇优化算法整定PID控制器参数(六)—— 一阶带时延的被控对象

0研究背景

写在前面:
 1.本代码基于MATLAB2019a版本,低版本或者不同版本可能会报错,mdl文件或slx文件打开可能会失败;
 2.如果运行时间过长,请观察迭代次数是否有变化。
 3.本博客附上算法运行图并详细介绍,如果转载请注明出处;
 4.如果本博客恰巧与您的研究有所关联,欢迎您的咨询qq1366196286



  参考前面的几篇博客

【Simulink】PSO优化算法整定PID控制器参数(一)一一一高阶不稳定系统

【Simulink】PSO算法优化Simulink模型的参数在线整定(二)一一一高阶不稳定系统

【MATLAB】GA优化算法整定PID控制器参数(三)—— 一阶带时延的被控对象

【MATLAB】NSGA-2优化算法整定PID控制器参数(四)—— 一阶带时延的被控对象

【MATLAB】FOA优化算法整定PID控制器参数(五)—— 一阶带时延的被控对象

1自适应果蝇优化算法的改进介绍

  复现的期刊论文如下:
  [1] 李明辉,曹泽,王玉洁.基于自适应果蝇优化算法的PID参数优化[J].机床与液压,2018,46(20):144-147.

1.1 搜索步长的改进设计

  果蝇优化算法在寻优第(2)步中(果蝇位置的初始化 )搜寻范围一直是[-1,1]之间,即半径为1的区域。这样的弊端是在搜索前期可能会因选择步长较小而使搜索效率下降,在搜索后期又因步长较大而错过最优解。为此在搜寻过程当中引入半径调节系数 λ \\lambda λ。自适应果蝇优化算法(Improved Fruit-fly Optimization Algorithm,IFOA)调整搜寻范围的策略是果蝇个体采用嗅觉搜寻食物,其随机方向和距离为:

x i = x + ω × ( 2 rand ⁡ ( ) − 1 ) x_{i}=x+\\omega \\times(2 \\operatorname{rand}()-1) xi=x+ω×(2rand()1)

其中, ω = ω × λ i \\omega=\\omega \\times \\lambda^{i} ω=ω×λi,初始值设定为 ω = 1 \\omega=1 ω=1 i i i为当前迭代次数。在搜索初期,可以先进行全局搜索,在搜索后期随着迭代次数的增加,搜索范围逐步减小,进行局部搜索。这样可以根据果蝇搜索初期和后期的不同阶段,使搜索范围随迭代次数自适应调整。

1.2 搜索方向的改进设计

  基本果蝇优化算法在第(3)步(计算果蝇味道浓度判定值 )计算果蝇味道浓度判定值 S i S_{i} Si时始终为正值,从而得出的适应度函数不精确。为了便于处理,直接将气味浓度判定值 S i = S_{i}= Si= x x xi,从而计算出最小的气味浓度适应度值。自适应果蝇优化算法(Improved Fruit-fly Optimization Algorithm,IFOA)具体流程如图1所示。
在这里插入图片描述
图1 自适应果蝇优化算法的具体流程


2被控对象与适应度函数的设计

2.1 被控对象的传递函数

  以下式二阶Ⅰ型时延系统的传递函数为例,运用NSGA-2算法进行PID参数优化,其中系统设置为采样时间1 ms,指令为单位阶跃信号,仿真运行时间为1.0 s。其中,性能优化函数Best_J采取时间与误差绝对值乘积的积分方程(Integral of Time Multiplied by the Absolute Value of Error,ITAE),同时为避免控制量过大而产生超调,在性能优化函数Best_J中添加PID控制器输入量的平方项。这仅仅是其中某个目标的适应度函数,此外还需设计另外目标的适应度函数,如2.2适应度函数的设计。
  二阶Ⅰ型时延系统的传递函数,如下所示。可按照自己的实际系统进行设计,既可以.m文件进行编写
在这里插入图片描述

2.2 适应度函数的设计

  为获取较为满意的过渡过程,采用误差绝对值时间积分性能指标作为适应度评价函数Best_J。同时为防止控制输入过大,在Best_J加入控制输入的评分项,如式(1-2)所示。

在这里插入图片描述

式(1-2)中e(t)为系统输出误差,u(t)为PID控制器输入量,ρ1,ρ2为权重值。
  为避免超调,采用罚函数对超调量进行优先处理,则如式(1-3)所示。
在这里插入图片描述

式(1-3)中ρ3>>max(ρ1,ρ2和ρ4),且y(t)为被控对象输出,ey(t)=y(t)-y(t-1)。
  以此作为目标适应度函数的设计。

2.3 IFOA算法的PID参数整定实现

最佳指标适应度值如下
在这里插入图片描述

阶跃响应输出如下
在这里插入图片描述


3与FOA算法的PID参数整定结果对比

论文算法对比图如下
在这里插入图片描述

最佳指标适应度值如下

在这里插入图片描述

阶跃响应输出如下

在这里插入图片描述


在这里插入图片描述

以上是关于MATLAB自适应果蝇优化算法整定PID控制器参数—— 一阶带时延的被控对象的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB不同优化算法整定PID控制器参数—— 一阶带时延的被控对象

MATLAB不同优化算法整定PID控制器参数—— 一阶带时延的被控对象

模糊控制——模糊自适应整定PID控制

精品课设不同优化算法整定PID控制参数

果蝇优化算法

模糊PID控温算法的具体实现:参数自整定模糊PID算法概念