PID算法实现,(转载)PID算法简单实现-简书

  PID算法实现,(转载)PID算法简单实现-简书

  【PID优化】基于人工蜂群算法PID控制器优化设计含矩阵实验室源码_MATLAB仿真博客的技术博客_博客

  一内容介绍由于PID控制器算法简单,鲁棒性强的特点,是目前使用最多的一种控制器,被广泛应用在各类工业控制领域。将基于人工蜂群算法的PID参数优化,在葡萄酒发酵温度控制系统中的应用进行了深入研究。

  2部分代码

  色度控制中心

  清晰;

  全部关闭;

  %%问题定义

  代价函数=@(x)球面(x);%成本函数

  nVar=5;决策变量的百分比

  VarSize=[1 nVar];%决策变量矩阵大小

  var min=-10;%决策变量下限

  VarMax=10%决策变量上限

  %% ABC设置

  最大值=200%最大迭代次数

  nPop=100%群体大小(群体大小)

  nOnlooker=nPop旁观者蜜蜂的百分比

  l=round(0.6 * nVar * nPop);%放弃限制参数(试验限制)

  a=1;%加速系数上限

  %%初始化

  %空蜜蜂结构

  空_蜂。位置=[];

  空_蜂。成本=[];

  %初始化填充数组

  pop=repmat(empty_bee,nPop,1);

  %初始化找到的最佳解决方案

  贝斯特索尔。成本=inf

  %创建初始群体

  对于i=1:nPop

  波普(我)。Position=unifrnd(VarMin,VarMax,VarSize);

  波普(我)。成本=CostFunction(pop(i)).位置);

  如果流行(我)。成本=BestSol .费用

  best sol=pop(I);

  目标

  目标

  %放弃计数器

  c=零(nPop,1);

  用于保存最佳成本值的%数组

  BestCost=zeros(MaxIt,1);

  %% ABC主循环

  for it=1:MaxIt

  招募的蜜蜂百分比

  对于i=1:nPop

  %随机选择k,不等于我

  k=[1:I-1i 1:nPop];

  K=K(randi([1 numel(K)]);

  %定义加速系数。

  phi=a*unifrnd(-1,1,VarSize);

  %新蜜蜂位置

  纽比。位置=pop(i).位置phi .*(流行乐(一).位置-弹出(k)2005年.位置);

  %评估

  纽比。成本=CostFunction(newbee .位置);

  %比较

  如果纽比。成本=pop(i).费用

  pop(I)=新蜜蜂;

  其他

  C(I)=C(I)1;

  目标

  目标

  %计算适合值和选择概率

  f=零(nPop,1);

  平均成本=平均.成本]);

  对于i=1:nPop

  F(i)=exp(-pop(i).成本/平均成本);%将成本转化为健身

  目标

  p=F/sum(F);

  旁观者蜜蜂百分比

  对于m=1:非洛克者

  %选择源站点

  I=RouletteWheelSelection(P);

  %随机选择k,不等于我

  k=[1:I-1i 1:nPop];

  K=K(randi([1 numel(K)]);

  %定义加速系数。

  phi=a*unifrnd(-1,1,VarSize);

  %新蜜蜂位置

  纽比。位置=pop(i).位置phi .*(流行乐(一).位置-弹出(k)2005年.位置);

  %评估

  纽比。成本=CostFunction(newbee .位置);

  %比较

  如果纽比。成本=pop(i).费用

  pop(I)=新蜜蜂;

  其他

  C(I)=C(I)1;

  目标

  目标

  侦察蜂百分比

  对于i=1:nPop

  如果C(i)=L

  波普(我)。Position=unifrnd(VarMin,VarMax,VarSize);

  波普(我)。成本=CostFunction(pop(i)).位置);

  c(I)=0;

  目标

  目标

  %更新找到的最佳解决方案

  对于i=1:nPop

  如果流行(我)。成本=BestSol .费用

  best sol=pop(I);

  目标

  目标

  找到的商店最佳成本百分比

  BestCost(it)=BestSol .成本;

  %显示迭代信息

  disp([迭代 num 2 str(it):最佳成本= num 2 str(最佳成本(it))]);

  目标

  %%结果

  图;

  %绘图(最佳成本,线宽,2);

  semilogy(最佳成本,线宽,2);

  xlabel(“迭代");

  ylabel(最佳成本);

  网格打开;

  img=gcf%获取当前画图的句柄

  print(img,-dpng ,-r600 , ./运行结果. png) %即可得到对应格式和期望(灰)点/英寸(扫描仪的清晰度参数)的图像

  3运行结果

  四参考文献[1]马步云,赵世海。基于人工蜂群算法的PID控制技术应用研究[J]的缩写.机械管理开发, 2016, 31(002):24-26.

  [2]胡海涛,高嵩,陈超波,等。一种改进人工蜂群的分数阶PID控制器优化算法[J]的缩写.计算机测量与控制, 2017(7).

  原创作品来自matlab研究助手,

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: