首页 > 编程语言 >基于鱼群算法的散热片形状优化matlab仿真

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

时间:2024-09-05 21:52:28浏览次数:13  
标签:散热片 算法 个体 鱼群 matlab 最优 gen

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

1.png

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

 函数可以简化为:

2.png

更详细原理可参考文献:

3.png

2.系统仿真结果

5.png6.png4.png7.png9.png8.png

3.核心程序与模型 版本:MATLAB2022a

Value_Limit_Store = Value_Limit2(1:Ker,:);

gen          =  1;
BestY        = -1*ones(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 散热片形状优化数学模型 浴盆曲线函数如下所示:

10.png

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

11.png

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

12.png

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

标签:散热片,算法,个体,鱼群,matlab,最优,gen
From: https://blog.51cto.com/u_16286350/11930598

相关文章

  • 大规模MIMO通信系统信道估计matlab性能仿真,对比LS,OMP,MOMP以及CoSaMP
    1.算法仿真效果matlab2022a仿真结果如下(完整代码运行后无水印):2.算法涉及理论知识概要大规模MIMO(Multiple-InputMultiple-Output)通信系统因其能够显著提高无线通信系统的容量和频谱效率而受到广泛关注。在这样的系统中,基站配备了大量的天线(通常数百个),而用户设备通常只有少数几......
  • 大规模MIMO通信系统信道估计matlab性能仿真,对比LS,OMP,MOMP以及CoSaMP
    1.算法仿真效果matlab2022a仿真结果如下(完整代码运行后无水印):   2.算法涉及理论知识概要       大规模MIMO(Multiple-InputMultiple-Output)通信系统因其能够显著提高无线通信系统的容量和频谱效率而受到广泛关注。在这样的系统中,基站配备了大量的天线(通常数百......
  • 基于鱼群算法的散热片形状优化matlab仿真
    1.课题概述        使用浴盆曲线进行空隙外形的模拟,然后通过优化,计算得到最优的浴盆曲线的各个参数,从而计算出最优的R值。浴盆曲线函数如下所示:          从上面的仿真结果可知,直接对目标函数进行优化,仿真速度非常慢,这里我们使用浴缸曲线结合鱼群算法进......
  • 基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
    1.程序功能描述奇异谱分析(SingularSpectrumAnalysis,简称SSA)是一种强大的非线性和非参数时间序列分析方法。该方法基于奇异值分解(SVD)和轨迹矩阵的概念,用于提取时间序列中的趋势、周期性和噪声成分。在本课题中,通过SSA算法,从强干扰序列中提取其趋势线。2.测试软件版本以及......
  • 【全网最全】2024年数学建模国赛C题保奖思路+成品论文+matlab/python代码等(后续会更新
    您的点赞收藏是我继续更新的最大动力!一定要点击末文的卡片,那是获取资料的入口!解题思路数据读取:使用Pandas库读取Excel文件中的数据。数据清洗:检查数据是否完整,处理可能的重复项或异常值。数据分析:基于地块类型、面积等特征进行基本的数据分析,例如统计每种地块类型的总面积......
  • [全网首发]2024国赛数学建模ABCE题完整思路+py(matlab)代码+成品论文参考+持续更新
    AB题详细思路(含问题一问题二模型)CE题问题一代码+思路已经写好[python+matlab两种都会更新需要完整版的看这里:点击链接加入群聊【2024数学建模国赛资料汇总】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=lZncBILk30DuPRI1Bd8X-3Djv7ZVZyAv&authKey=kKqNSSEbbZN%2FVKn%2BICO......
  • MATLAB警告: 桌面配置文件已损坏或格式不正确。 Problem parsing Desktop restore xml
    电脑蓝屏后,重新打开MATLAB,出现此问题解决方案如下:如果您正在启动MATLAB并收到以下错误,则可能使用的是与MATLAB附带的Java版本不同的Java版本。ERROR:Warning:Anerroroccurredwhilereadingthedesktopconfigurationfile为了检查MATLAB使用的Java版本,启动MATLAB并运......
  • 狐狸算法(FOX)优化BP神经网络原理及Matlab代码
    目录0引言1数学模型2优化方式3Maltab代码3.1伪代码3.2FOX主函数代码3.3FOX-BP4视频讲解0引言狐狸算法(Foxoptimizer,FOX)是由HardiMohammed在2023年提出群智能算法,该算法模拟了自然界中狐狸在捕猎时的觅食。FOX基于测量狐狸和猎物之间的距离来执行有效的跳......
  • 狐狸算法(FOX)优化支持向量机原理及Matlab代码
    目录0引言1数学模型2优化方式3Maltab代码3.1伪代码3.2FOX主函数代码3.3FOX-SVM4视频讲解0引言狐狸算法(Foxoptimizer,FOX)是由HardiMohammed在2023年提出群智能算法,该算法模拟了自然界中狐狸在捕猎时的觅食。FOX基于测量狐狸和猎物之间的距离来执行有效的跳......
  • 狐狸算法(FOX)优化长短期记忆神经网络原理及Matlab代码
    目录0引言1数学模型2优化方式3Maltab代码3.1伪代码3.2FOX主函数代码3.3FOX-LSTM4视频讲解0引言狐狸算法(Foxoptimizer,FOX)是由HardiMohammed在2023年提出群智能算法,该算法模拟了自然界中狐狸在捕猎时的觅食。FOX基于测量狐狸和猎物之间的距离来执行有效的......