【PID优化】基于花朵授粉算法PID控制器优化设计含Matlab源码
1 内容介绍
PID参数优化对PID控制性能起着决定性作用,针对PID参数寻优问题,提出运用一种花授粉算法(FPA).该算法启发于自然界中花粉的传播授粉过程,以三个PID参数组成每个花粉单元的位置坐标,根据一定的全局授粉与局部授粉规则更新花粉单元的位置,使其向最优解迭代.仿真结果表明,与粒子群算法和人群搜索算法相比,花授粉算法优化参数使系统具备更短的响应时间,更高的系统控制精度以及更好的鲁棒性,为PID控制系统的参数整定提供了参考.
2 仿真代码
function [aa,fminf,Ntime ] = fpa(n,p,N_iter,d )
%UNTITLED3 此处显示有关此函数的摘要
% 此处显示详细说明
Lb=-600*ones(1,d);
Ub=600*ones(1,d);
Sol=zeros(n,d);
Fitness=zeros(1,n);
for i=1:n,
Sol(i,:)=Lb+(Ub-Lb)*rand;
Fitness(i)=Fun(Sol(i,:));
end
% Find the current best
[fmin,I]=min(Fitness);
best=Sol(I,:);
S=Sol;
Ntime=1;
Ntime= Ntime-1;
for t=1:N_iter,
% Loop over all bats/solutions
for i=1:n,
% Pollens are carried by insects and thus can move in
% large scale, large distance.
% This L should replace by Levy flights
% Formula: x_i^{t+1}=x_i^t+ L (x_i^t-gbest)
if rand<p,
%% L=rand;
L=Levy(d);
dS=L.*(Sol(i,:)-best);
S(i,:)=Sol(i,:)+dS;
% Check if the simple limits/bounds are OK
S(i,:)=simplebounds(S(i,:),Lb,Ub);
% If not, then local pollenation of neighbor flowers
else
epsilon=rand;
% Find random flowers in the neighbourhood
JK=randperm(n);
% end
% As they are random, the first two entries also random
% If the flower are the same or similar species, then
% they can be pollenated, otherwise, no action.
% Formula: x_i^{t+1}+epsilon*(x_j^t-x_k^t)
%
S(i,:)=S(i,:)+epsilon*(Sol(JK(1))-Sol(JK(2)));
%
% Check if the simple limits/bounds are OK
S(i,:)=simplebounds(S(i,:),Lb,Ub);
end
% Evaluate new solutions
Fnew=Fun(S(i,:));
% If fitness improves (better solutions found), update then
if (Fnew<=Fitness(i)),
Sol(i,:)=S(i,:);
Fitness(i)=Fnew;
end
% Update the current global best
if Fnew<=fmin,
best=S(i,:) ;
fmin=Fnew ;
end
Ntime=Ntime+1;
aa( Ntime)=fmin;
end
% Display results every 100 iterations
% if round(t/10)==t/10,
% best
% fmin
% fmin
%
% best
% end
end
fminf=fmin;
end
3 运行结果
4 参考文献
[1]贺圣彦, 曹中清, 余胜威. 基于花授粉算法的PID参数优化[J]. 计算机工程与应用, 2016, 52(17):4.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
【PID优化】基于花朵授粉算法PID控制器优化设计含Matlab源码相关推荐
- 【PID优化】基于蝗虫算法PID控制器优化设计含Matlab源码
1 内容介绍 该文针对广泛应用的PID控制器,在MATLAB仿真软件环境下,开发出一个过程控制系统的仿真软件包,能够实现模型辨识和PID参数调节,为过程控制系统仿真研究提供了方便. 该软件界面友好,操 ...
- 【配电网重构】基于粒子群算法实现配电网重构含Matlab源码
1 简介 随着大规模,跨区域的配电网不断发展,对配电网运行的经济性和可靠性要求越来越高,在配电网发生大范围停电事故后,需要对配电网的拓扑结构进行重新组合,从而达到恢复供电的目的,这个重新组合配电网拓扑 ...
- 【数字信号去噪】基于matlab粒子群算法优化VMD分解分量选择数字信号降噪【含Matlab源码 1979期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数字信号去噪]基于matlab粒子群算法优化VMD分解分量选择数字信号降噪[含Matlab源码 1979期] 点击上面蓝色字体,直接付费 ...
- 【MVO TSP】基于matlab灰狼算法求解旅行商问题【含Matlab源码 1327期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab灰狼算法求解旅行商问题[含Matlab源码 1327期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- 【图像重建】基于matlab布雷格曼迭代算法集合ART算法CT图像重建【含Matlab源码 1905期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像重建]基于matlab布雷格曼迭代算法集合ART算法CT图像重建[含Matlab源码 1905期] 获取代码方式2: 通过订阅紫极神光 ...
- 【AFSA TSP】基于matlab人工鱼群算法求解旅行商问题【含Matlab源码 422期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab人工鱼群算法求解旅行商问题[含Matlab源码 422期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...
- 【BA TSP】基于matlab蜜蜂算法求解旅行商问题【含matlab源码 1248期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab蜜蜂算法求解旅行商问题[含matlab源码 1248期] 获取代码方式2: 付费专栏Matlab路径规划(初级版 ...
- 【IA TSP】基于matlab免疫算法求解旅行商问题【含Matlab源码 195期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[旅行商问题]基于matlab免疫算法求解旅行商问题[含Matlab源码 195期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...
- matlab三维路径规划,【路径规划】基于A星算法的三维路径规划matlab源码
%% 该函数用于演示基于A_Star算法的三维路径规划算法 %% 清空环境 clc clear %% 数据初始化 %下载数据 starttime=cputime; load HeightData z ...
最新文章
- [k8s] 第七章 Service详解
- glsl-BufferObject- change
- c语言数组数据的输入,在C语言中,数组中的值如何输入到函数中?
- 【转】ASP.NET中文验证码详解
- [转]总结使用Unity 3D优化游戏运行性能的经验
- shiro会话监听_SpringBoot集成Shiro会话管理
- PHP 中错误控制符@
- 西北大学计算机学院王郭玲,西北大学关于表彰2010-2011学年度学生先进集体
- 「代码随想录」121. 买卖股票的最佳时机【贪心】【动态规划】力扣/leetcode详解
- 6.Linux性能诊断 --- 远程通信gRPC,kafka,docker
- Android 横竖屏切换问题
- 数字后端概念——Wire Shape
- Linux上搭建ElasticSearch-8.x集群以及安装Kibana(保姆级安装教程)
- 网页视频怎么录制?这两个方法操作简单,录制高清!
- 小学计算机管理员教学计划,小学教学计划汇总六篇
- 让家长巧限孩子玩网络游戏、看网络电影
- RT-Thread系统 STM32 DAC设备改进,直接调用系统DAC驱动函数设置输出电压
- 关于学习渲染的心得第一篇
- 性能测试从零开始(视频笔记 20210504)
- 六、Hystrix详解三:Hystrix的健康监测