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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。