基于鱼群算法的散热片形状优化matlab仿真

简介: 本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。

1.课题概述
使用浴盆曲线进行空隙外形的模拟,然后通过优化,计算得到最优的浴盆曲线的各个参数,从而计算出最优的R值。浴盆曲线函数如下所示:

924400eae22458baf2b6fd395ef6cbd8_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

    从上面的仿真结果可知,直接对目标函数进行优化,仿真速度非常慢,这里我们使用浴缸曲线结合鱼群算法进行优化。从而得到最佳的孔隙度值和H对应的R值。对于浴缸函数,首先可以将部分参数设置为0,从而简化参数,这里,我们假设为0.

 函数可以简化为:

db603e23165bb641ffdb25310ac67d74_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

更详细原理可参考文献:

9badcf3651180ada82c8967a3c7b699e_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.系统仿真结果

4.png
5.png
6.png
7.png
8.png
9.png

3.核心程序与模型
版本:MATLAB2022a
```X = func_init(Num_Fish,Value_Limit,Value_Limit2);
Value_Limit_Store = Value_Limit2(1:Ker,:);

gen = 1;
BestY = -1ones(1,Iteration); %最优的函数值
BestX = -1
ones(Ker,Iteration); %最优的自变量
besty = -9999; %最优函数值
[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,'-bs',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.0,0.0]);
xlabel('迭代次数');
ylabel('优化值');

disp(['最优解X:',num2str(bestx' ,'%1.5f ')]);
disp(['最优解Y:',num2str(1/besty,'%1.5f ')]);
save test.mat Iteration bestx besty BestY

alpha = 0;
beta = bestx(2);
gama = bestx(4);
siga = bestx(3);
delt = 0;
ling = bestx(1);
t = -2.5:0.02:2.5;
for i = 1:length(t)
if abs(i-alpha) >= beta
b(i) = -(abs(t(i) - alpha)-beta)^siga/gama;
else
b(i) = 0;
end
lemda(i) = delt + ling*(1-exp(b(i)));
end
figure;
plot(t,lemda,'b-o','LineWidth',1);
title('优化后的散热片内部空隙结构——利用bathtub构造');
grid on
02_014m
toc

```

4.系统原理简介
鱼群算法(Fish Swarm Algorithm,FSA)是一种模拟自然界中鱼群行为的优化算法,具有全局搜索能力强、收敛速度快等优点。基于鱼群算法的散热片形状优化,是通过引入鱼群算法来寻找散热片最佳形状的一种方法。

4.1鱼群算法原理
鱼群算法通过模拟鱼群中个体的行为来实现寻优。在自然界中,鱼群往往呈现出一种自组织、自适应的行为特征,如聚群、避障、觅食等。鱼群算法将这些行为抽象为数学模型,通过迭代计算来寻找最优解。在鱼群算法中,每个个体(鱼)的行为受以下三个规则影响:

(1)聚群规则:个体趋向于向邻近个体聚集,以保持群体凝聚力。数学上,这可以通过计算个体与邻近个体的平均距离来实现。

(2)避障规则:个体在游动过程中会避开障碍物,以保证生存空间。数学上,这可以通过计算个体与障碍物之间的距离来实现。

(3) 觅食规则:个体趋向于向食物丰富的区域游动,以获取更多食物。数学上,这可以通过计算个体的适应度值来实现。

4.2鱼群算法的流程
(1)初始化:设定鱼群规模、迭代次数等参数,随机生成初始鱼群。

(2)计算适应度值:根据散热片形状优化的目标函数,计算每个个体的适应度值。

(3)更新位置:根据聚群规则、避障规则和觅食规则,更新每个个体的位置。

(4)判断终止条件:判断是否达到最大迭代次数或满足其他终止条件。若满足,则输出最优解;否则,返回步骤(2)。

4.3 散热片形状优化数学模型
浴盆曲线函数如下所示:

9c8ed9a9f06b703133a0d52178736c15_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

上述结果在优化过程中,可以表示为:

a617a27f74964891c06f90e252839474_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

   其余参数只改变浴缸曲线的位置,所以,这里我们只要对上面红色的三个参数和外部的H进行最优搜索即可。其对应的结果为:

5d81353a762f24ec850d0b97345b8bca_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

确定优化变量:选择散热片的形状参数作为优化变量。
建立目标函数:根据散热片性能评价指标,建立目标函数。
确定约束条件:根据散热片设计要求,确定约束条件。
初始化鱼群:设定鱼群规模和迭代次数,随机生成初始鱼群。
计算适应度值:根据目标函数和约束条件,计算每个个体的适应度值。
更新位置:根据聚群规则、避障规则和觅食规则,更新每个个体的位置。在更新过程中,需要考虑散热片的形状约束和制造工艺约束。可通过引入罚函数法或可行方向法来处理约束条件。
判断终止条件:判断是否达到最大迭代次数或满足其他终止条件。若满足,则输出最优解;否则,返回步骤(5)。

相关文章
|
13天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
6天前
|
算法
基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真
本项目基于MATLAB2022a,采用模糊PI控制算法结合龙格-库塔方法,对CSTR模型进行Simulink建模与仿真。通过模糊控制处理误差及变化率,实现精确控制。核心在于将模糊逻辑与经典数值方法融合,提升系统性能。
|
6天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
6天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如&quot;How are you&quot;、&quot;I am fine&quot;、&quot;I love you&quot;等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
12天前
|
算法
基于WOA鲸鱼优化的购售电收益与风险评估算法matlab仿真
本研究提出了一种基于鲸鱼优化算法(WOA)的购售电收益与风险评估算法。通过将售电公司购售电收益风险计算公式作为WOA的目标函数,经过迭代优化计算出最优购电策略。实验结果表明,在迭代次数超过10次后,风险价值收益优化值达到1715.1万元的最大值。WOA还确定了中长期市场、现货市场及可再生能源等不同市场的最优购电量,验证了算法的有效性。核心程序使用MATLAB2022a实现,通过多次迭代优化,实现了售电公司收益最大化和风险最小化的目标。
|
12天前
|
算法
通过matlab对比遗传算法优化前后染色体的变化情况
该程序使用MATLAB2022A实现遗传算法优化染色体的过程,通过迭代选择、交叉和变异操作,提高染色体适应度,优化解的质量,同时保持种群多样性,避免局部最优。代码展示了算法的核心流程,包括适应度计算、选择、交叉、变异等步骤,并通过图表直观展示了优化前后染色体的变化情况。
|
9天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
216 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
139 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
105 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码