智能优化算法应用:基于麻雀搜索算法PID参数优化 - 附代码

文章目录

  • 智能优化算法应用:基于麻雀搜索算法PID参数优化 - 附代码
    • 1.PID简介
    • 2.麻雀搜索算法简介
    • 3.适应度函数设计
    • 4.算法实验与结果
    • 5.参考文献:
    • 6.Matlab 代码

摘要:本文主要介绍如何用麻雀搜索算法进行PID参数的优化。

1.PID简介

PID(Proportion-Integration-Differentiation)控 制 器通过比例单元 P、积分单元 I和微分单元 D 的线性组合构成控制量来实现对被控对象的控制,主要适用于基本线性和动态特性不随时间变化的系统。不同的控制规律适用于不同的生产过程,必须合理选择相应的控制规律,否则PID控制器将达不到预期的控制效果当PID控制器采样周期较小时,可以将连续系统离散化,即以一阶差分代替微商,求和代替积分,矩形积分近似代替连续积分,得到如下差分方程:
Δu(t)=KpΔe(k)+KiΔe(k)+KdΔ2e(k)(1)\Delta u(t)=K_p \Delta e(k) + K_i \Delta e(k) + K_d \Delta ^2e(k)\tag{1} Δu(t)=Kp​Δe(k)+Ki​Δe(k)+Kd​Δ2e(k)(1)
其中e为输入,KpK_pKp​ 为比例系数, KiK_iKi​ 为积分时间常数, KdK_dKd​ 为微分时间常数。

2.麻雀搜索算法简介

麻雀搜索算法具体原理请参照:https://blog.csdn.net/u011835903/article/details/108830958。

3.适应度函数设计

在此算法中,目标函数设置如下:
F=∫0∞(w1∣e(t)∣+w2u2(t))dt(2)F = \int_{0}^{\infty}(w_1|e(t)|+w_2u^2(t))dt \tag{2} F=∫0∞​(w1​∣e(t)∣+w2​u2(t))dt(2)

其中, e(t)e(t)e(t) 为输入值与输出值之间的误差,考虑到迭代过程的动态特性,采取其绝对值的积分; u(t)u(t)u(t) 为控制值,加入此项是为了避免控制幅度过大;w1w_1w1​ 和 ω2ω_2ω2​ 为权重,取值范围[0,1]。

此外,还需采取限制措施防止超调,即当出现超调时,在目标函数中额外引入超调项,此时的设置如下:
F=∫0∞(w1∣e(t)∣+w2u2(t)+w3∣e(t)∣)dt,e(t)<0(3)F =\int_{0}^{\infty}(w_1|e(t)| + w_2u^2(t)+w_3|e(t)|)dt,e(t)<0 \tag{3} F=∫0∞​(w1​∣e(t)∣+w2​u2(t)+w3​∣e(t)∣)dt,e(t)<0(3)
其中, w3w_3w3​为权值,且 w3>>w1w_3 >>w_1w3​>>w1​ ,一般情况下,w1=0.999,w2=0.001,w3=100w_1 =0.999,w_2 =0.001 , w_3 =100w1​=0.999,w2​=0.001,w3​=100。

所以麻雀算法的目标就是找到一组pid值,使得F误差最小。

4.算法实验与结果

本文选择二阶系统的传递函数:
G(s)=50/(0.125s2+7s)(4)G(s) = 50/(0.125s^2+7s) \tag{4} G(s)=50/(0.125s2+7s)(4)
麻雀算法参数设置如下:

SearchAgents_no=50; %  种群数量
Max_iteration=100; %  设定最大迭代次数
lb = -5; %下边界
ub = 5;  %上边界
dim = 3; %维度pid3个参数
S = 1;% 1为单位阶跃响应,其他为正弦输入
fobj = @(X) PID_controller(X,S);%适应度函数

单位阶跃响应寻优结果:

kp,ki,kd的值为:5 0.047998 0.045294

正弦函数输入结果:

kp,ki,kd的值为:5 -5 2.0404

从收敛曲线来看,单位阶跃和正弦输入,算法都在不断寻优。从单位阶跃响应来看,系统上升时间和超调均较小,控制效果明显。从正弦输入结果来看,输入与输出控制量误差较小。

5.参考文献:

[1] 贺圣彦, 曹中清, 余胜威. 基于花授粉算法的PID参数优化[J]. 计算机工程与应用, 2016.

6.Matlab 代码

基于麻雀搜索算法PID参数优化
粒子群优化的PID参数优化
灰狼优化的PID参数优化
鲸鱼优化的PID参数优化
人工蜂群优化的PID参数优化
萤火虫优化的PID参数优化
布谷鸟优化的PID参数优化
海鸥优化的PID参数优化
鸡群优化的PID参数优化
花授粉优化的PID参数优化
头脑风暴优化的PID参数优化
蝗虫优化的PID参数优化
鸟群优化的PID参数优化
差分进化优化的PID参数优化
遗传算法优化的PID参数优化
樽海鞘算法优化的PID参数优化
教与学算法优化的PID参数优化

个人资料介绍

智能优化算法应用:基于麻雀搜索算法PID参数优化 - 附代码相关推荐

  1. 【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)

    目录 0.背景 1.粒子群算法 1.1.算法简介 1.2.算法步骤 1.3.算法举例 2.PID自整定 2.1.基于M文件编写的PID参数自整定 *2.2.复杂系统的PID自整定(基于simulink ...

  2. 智能优化算法应用:基于麻雀搜索算法的工程优化案例

    智能优化算法应用:基于麻雀搜索算法的工程优化案例 文章目录 智能优化算法应用:基于麻雀搜索算法的工程优化案例 1.麻雀搜索算法 2.压力容器设计问题 3.三杆桁架设计问题 4.拉压弹簧设计问题 4.M ...

  3. 基于麻雀搜索算法的同步优化特征选择 - 附代码

    基于麻雀搜索算法的同步优化特征选择 - 附代码 文章目录 基于麻雀搜索算法的同步优化特征选择 - 附代码 1.数据集 2.SVM模型建立 3.麻雀搜索算法同步优化特征选择 4.测试结果 5.参考文献: ...

  4. 【智能优化算法】基于遗传算法实现城市交通信号优化附matlab代码

    1 简介 本文设计实时优化的配置方案对道路畅通的应急决策管理具有重要意义.本文在分析交通控制基本理论的基础上,根据交叉口的实际情况并考虑信号灯的转换与车辆的启动损失时间,采用四相位对称式放行方案,以车 ...

  5. 两种鲸鱼优化算法 (whale optimization algorithm, WOA)及仿真实验——附代码

    目录 摘要: 算法设计: WOA总体流程图如下: 增强型WOA(E-WOA) 仿真运行效果: 完整程序: 摘要: 鲸鱼优化算法 (whale optimization algorithm,WOA)是 ...

  6. 鲸鱼优化算法(WOA)函数寻优、附代码

    目录 一.WOA算法数学模型 1.1 包围捕食(Encircling prey) 1.2  气泡网攻击方式(Bubble-net attacking method) 1.3 搜索猎物(Search f ...

  7. 单目标应用:蜣螂优化算法DBO与麻雀搜索算法SSA求解无人机三维航迹规划(提供Matlab代码)

    一.无人机三维航迹规划 三维航迹规划是无人机在执行任务过程中的非常关键的环节,三维航迹规划的主要目的是在满足任务需求和自主飞行约束的基础上,计算出发点和目标点之间的最佳航路. 1.1路径最短约束 无人 ...

  8. 基于麻雀搜索算法优化的支持向量机回归预测-附代码

    基于麻雀搜索算法优化的支持向量机预测及其MATLAB代码实现 文章目录 基于麻雀搜索算法优化的支持向量机预测及其MATLAB代码实现 1. 基于麻雀搜索算法优化的支持向量机预测简介 1.1 支持向量机 ...

  9. 【优化算法】基于matlab反向策略的麻雀搜索算法【含Matlab源码 1918期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]基于matlab反向策略的麻雀搜索算法[含Matlab源码 1918期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...

  10. 智能优化算法:天牛须搜索算法

    往期内容: 智能优化算法(一):海鸥算法原理及Matlab代码 智能优化算法(二):海鸥算法之改进篇 智能优化算法(三):基于量子的鸽群优化算法 智能优化算法(四):基于Powell优化的鸽群优化算法 ...

最新文章

  1. 每日一皮:这张图送给正在努力改Bug的你
  2. linux中如何查找文件中内容
  3. DSP之GPIO(转)
  4. html全局浮窗,Html 实现浮动窗口
  5. 如何在IE浏览器播放RTSP或RTMP流
  6. 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点
  7. 微软推出 Power Platform 漏洞奖励计划
  8. java怎么给文档加水印_Java 如何给Word文档添加多行文字水印
  9. [20] 鼓状物(Drum)图形的生成算法
  10. 浙大mooc翁凯 C语言笔记
  11. 与美不期而遇:Carry on Till Tomorrow
  12. 项目质量管理:规划质量管理与控制
  13. 下单后,订单拆单能怎拆?
  14. JavaWeb-云日志
  15. 小米(MIUI)手机监听短信的两种解决方案
  16. Java通过openOffice实现word,excel,ppt转成pdf实现在线预览
  17. 侍魂胧月传说服务器维护中,侍魂胧月传说手游3月2日停机维护更新公告
  18. Word2Vec中的gensim报错from gensim.models.word2vec import Vocab报错问题
  19. 如何判断HTML页面加载完成
  20. 天津滨海服务外包产业园年底投入使用

热门文章

  1. 微服务学习之OpenFeign【Hoxton.SR1版】
  2. springboot项目PageHelper分页插件的使用
  3. 每天一道剑指offer-链表中环的入口节点
  4. python求小于n的所有素数_关于求N以内素数的python实现以及优化方法
  5. raid5用户mbr还是gpt_系统硬盘gpt转换的操作方法
  6. HighCharts:隐藏最下方logo
  7. HTML:常用代码(自用)
  8. c语言课后作业答案第五版第4章,《C语言程序设计》课后习题答案(第四章)
  9. 杨奇龙 mysql 分区_MySQL Group Replication 入坑指北 | By杨奇龙
  10. Java8+函数式开发库Vavr使用入门