1.软件版本

matlab2013b

2.基本原理

根据散热性能->热阻大小->散热片性质,所以整个算法就变为了如下的数学分析式:

【散热片形状参数优化】基于鱼群优化算法的散热片形状参数优化matlab仿真_散热片形状优化

这里,根据相关的文献资料可知,里面的参数为:

【散热片形状参数优化】基于鱼群优化算法的散热片形状参数优化matlab仿真_fish_02

 如上的参数,具体优化目标函数简化表达式:

【散热片形状参数优化】基于鱼群优化算法的散热片形状参数优化matlab仿真_最优解_03

 而

【散热片形状参数优化】基于鱼群优化算法的散热片形状参数优化matlab仿真_fish_04

又是Y的表达式,所以问题转换为R关于H和Y的目标函数。

 这是一个二元函数的优化实例:

即,这里通过算法,搜索到合适的,使R值得到最小。

3.部分核心代码

tic

clc;
clear;
close all;
warning off;
addpath 'my_fishswarm_toolbox\'
addpath 'fitness_box\'



Num_Fish = 15; %鱼个数
Iteration = 80; %迭代次数
Num_search = 5; %最多试探次数
Dist_Visual = 2.5; %感知距离
crowd = 0.618; %拥挤度因子
step = 0.1; %步长
Ker = 3; %优化参数维度


%鱼群初始化
Value_Limit =[-1,1,Ker];
%这里修改,作为优化搜索的范围区间
Value_Limit2=[0 ,0.999;
0 ,0.999;
-0.9 ,0.9];

X = func_init(Num_Fish,Value_Limit,Value_Limit2);
Value_Limit_Store = Value_Limit2(1:Ker,:);

gen = 1;
BestY = -1*ones(1,Iteration); %最优的函数值
BestX = -1*ones(Ker,Iteration); %最优的自变量
besty = -999; %最优函数值
[Y] = func_consistence(X);

while(gen<=Iteration)
gen

for J=1:Num_Fish
J
%聚群行为
[Xi1,Yi1]=func_Fish_swarm (X,J,Dist_Visual,step,crowd,Num_search,Value_Limit_Store,Y);
%追尾行为
[Xi2,Yi2]=func_Fish_Follow(X,J,Dist_Visual,step,crowd,Num_search,Value_Limit_Store,Y);

if Yi1>Yi2
X(:,J)=Xi1;
Y(1,J)=Yi1;
else
X(:,J)=Xi2;
Y(1,J)=Yi2;
end
end

[Ymax,index]=max(Y);

if Ymax > besty
besty = Ymax;
bestx = X(:,index);
BestY(gen) = Ymax;
[BestX(:,gen)] = X(:,index);
else
BestY(gen) = BestY(gen-1);
[BestX(:,gen)] = BestX(:,gen-1);
end
gen = gen + 1;
end

figure
plot(1:Iteration,1./BestY)
xlabel('迭代次数');
ylabel('优化值');


disp(['最优解X:',num2str(bestx' ,'%1.5f ')]);
disp(['最优解Y:',num2str(1/besty,'%1.5f ')]);

%矩形
if Ker == 2
save test1.mat Iteration bestx besty BestY
end
%三角形
if Ker == 3
save test2.mat Iteration bestx besty BestY
end
toc

4.操作步骤与仿真结论

【散热片形状参数优化】基于鱼群优化算法的散热片形状参数优化matlab仿真_fish_05

最优解X0.48113  0.67727

最优解Y0.09793

Elapsed time is 811.453446 seconds.

即最优的解是H = 0. 47921 

E  = 0. 67551

 

【散热片形状参数优化】基于鱼群优化算法的散热片形状参数优化matlab仿真_鱼群优化_06

如上面的仿真验证可知,0.48113  0.67727的时候,R达到最小值。

这里,部分参数的选择

最优解Y0. 09793

然后取Ker = 3,优化三角形的散热片

 

【散热片形状参数优化】基于鱼群优化算法的散热片形状参数优化matlab仿真_最优解_07

 最优解X0.68355   0.74385  -0.29181

最优解Y0.09650

Elapsed time is 811.453446 seconds.

即最优的解是H = 0.68355 

E  = 0.74385-0.29181Y

【散热片形状参数优化】基于鱼群优化算法的散热片形状参数优化matlab仿真_散热片形状优化_08

5.参考文献

[1]叶平, 朱冬生, 吴治将,等. 电磁炉散热片尺寸优化试验研究[J]. 化学工业与工程, 2007, 24(2):7.A02-14