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

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

目录

  • 【MATLAB】自适应果蝇优化算法整定PID控制器参数(六)—— 一阶带时延的被控对象
    • 0研究背景
    • 1自适应果蝇优化算法的改进介绍
      • 1.1 搜索步长的改进设计
      • 1.2 搜索方向的改进设计
    • 2被控对象与适应度函数的设计
      • 2.1 被控对象的传递函数
      • 2.2 适应度函数的设计
      • 2.3 IFOA算法的PID参数整定实现
    • 3与FOA算法的PID参数整定结果对比

0研究背景

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


  参考前面的几篇博客

【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所示。
【MATLAB】自适应果蝇优化算法整定PID控制器参数(六)—— 一阶带时延的被控对象_第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参数整定实现

最佳指标适应度值如下
【MATLAB】自适应果蝇优化算法整定PID控制器参数(六)—— 一阶带时延的被控对象_第2张图片

阶跃响应输出如下
【MATLAB】自适应果蝇优化算法整定PID控制器参数(六)—— 一阶带时延的被控对象_第3张图片


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

论文算法对比图如下
【MATLAB】自适应果蝇优化算法整定PID控制器参数(六)—— 一阶带时延的被控对象_第4张图片

最佳指标适应度值如下

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

阶跃响应输出如下

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


你可能感兴趣的:(PID参数整定,智能优化算法,FOA算法,自适应果蝇优化算法,IFOA算法)