2020数学建模国赛A题思路与代码(全)

article/2025/8/23 11:25:01

对于炉温曲线的优化主要是通过牛顿冷却定律来对回焊炉的温度以及过炉速度的控制研究最适的炉温曲线.

主要使用牛顿冷却定律的差分格式,其中 T a ( t ) T_a(t) Ta(t)为t时刻的环境温度
T ( t + Δ t ) − T ( t ) Δ t = k [ T a ( t ) − T ( t ) ] \frac{T(t+\Delta t )-T(t)}{\Delta t} = k[T_a(t)-T(t)] ΔtT(t+Δt)T(t)=k[Ta(t)T(t)]

环境温度

想要使用牛顿冷却定律首先要确定好环境温度的变化情况,本文对温区间的影响做简化处理,认为再小温区中前一温区最后5cm到后一温区5cm环境温度随空间距离线性变化
u ( t , x ) = k x + b u(t,x) = kx+b u(t,x)=kx+b
这其中 k = T i + 1 − T i 15 k=\frac{T_{i+1}-T_i}{15} k=15Ti+1Ti b = T i b=T_i b=Ti

通过模拟得到的环境温度如下
在这里插入图片描述

参数拟合

将K设定为关于位置的分段函数,分段通过最小二乘法拟合最优值. 通过对时间的差分,通过递推的方式从开始的25℃,不断向后计算每个0.5s的温度值,再将该值与附件中对应时间的温度值通过最小二乘法计算目标函数值.最小化该目标函数,不断修改k值大小.最终得到结果再整个模拟计算温度变化与 实验数据进行对比.计算R2来作为拟合度优劣的评判.

start = 0  #21 174 204 234 295 
end = round(x0/V)  #xk 温区边界点Start = [0]*6End = [x0,x1_5,x6,x7,x8_9,x10_]
for i in range(5):Start[i+1] =round(End[i]/V)
K  = []
Ylast = 25
# print(end)
for i in range(6):start = Start[i]end = round(End[i]/V)X = np.linspace(start,end,(end-start)*2,endpoint=False)# print(X[:-1])y_true = data.loc[(data['时间']>=start) & (data['时间']<end),:]['温度']delta_score =float('inf')pre_score = float('inf')i = 100k = 0.3bestk = 0bestscore = float('inf')bestkypred = Nonewhile delta_score>1e-5 and i<10000:ypred = Newton(X,k,Ylast,V)score = np.sum((y_true-ypred[(X>=19).argmax():])**2,axis=0)delta_score = abs(score-pre_score)if score < bestscore:bestscore = scorebestk = kbestkypred=ypredpre_score = scorei+=1k = k - 1.0 / (i +1e3)print(bestkypred[(X>=19).argmax():(X>=19).argmax()+10])print(y_true.head(10))print(bestscore)print(bestk)Ylast = bestkypred[-1]K.append(bestk)print(K)

得到的最终结果 计算R2>99.6%.

温区炉前温区1-5温区6温区7温区8-9温区10至炉后
K0.01972,0.017670.018360.023860.021100.007446

在这里插入图片描述

结果求解

根据上述求出的k值,带入温度以及过炉速度计算出温度走势
在这里插入图片描述

#对比附件实验数据 计算R^2
# 问题一求解类似
K =[0.01972, 0.01767, 0.01836, 0.02386, 0.02110, 0.007446]
Start = [0]*6End = [x0,x1_5,x6,x7,x8_9,x10_]
for i in range(5):Start[i+1] =round(End[i]/V)last = 25
Y_pred = []
Xlist = []
for i in range(6):k = K[i]start = Start[i]end = round(End[i]/V)X = np.linspace(start, end, (end - start) * 2 ,endpoint=False)if i == 5:X= np.append(X,np.array([X[-1]+0.5]))ypred = Newton(X, k, last,V)last = ypred[-1]Y_pred.extend(ypred)Xlist.extend(X)
Xlist = np.array(Xlist)
Y_pred = np.array(Y_pred)# print(r2_score(data['温度'],Y_pred[(Xlist>=19).argmax():]))plt.plot(Xlist,Y_pred,label='模拟温度')
plt.legend()
plt.show()

最优过炉速度确定

由于题目中的制程限制,通过代入各个小温区的温度参数进行对问题二的求解。在此过程中,我们对所要求的传送带速度进行了离散化处理,通过坐标下降计算各个速度值最终得到了传送带的最大的可行速度值。

从最大速度不断下降,只要不满足制程条件就继续继续下降计算,直到满足条件的第一个速度值即为所求

flag = -1
V = 100/60
for k in range(100,60,-1):flag = -1V = k/60K =[0.01972, 0.01767, 0.01836, 0.02386, 0.02110, 0.007446]Start = [0]*6End = [x0,x1_5,x6,x7,x8_9,x10_]for i in range(5):Start[i+1] =round(End[i]/V)last = 25Y_pred = []Xlist = []for i in range(6):k = K[i]start = Start[i]end = round(End[i]/V)X = np.linspace(start, end, (end - start) * 2 ,endpoint=False)if i == 5:X= np.append(X,np.array([X[-1]+0.5]))ypred = Newton(X, k, last,V)if  ypred.any()==False :flag = 0continuelast = ypred[-1]Y_pred.extend(ypred)Xlist.extend(X)# if   Y_pred == False:#     flag = 0#     continueXlist = np.array(Xlist)Y_pred = np.array(Y_pred)Y_pred_S = pd.Series(Y_pred)Up_time = Y_pred_S[:Y_pred_S.argmax()].loc[(Y_pred_S >= 150) & (Y_pred_S <= 190)].shape[0] / 2High_time = Y_pred_S.loc[Y_pred_S > 217].shape[0] / 2Max_heat = Y_pred_S.max()if Up_time>120 or Up_time<60:flag = 0continueelif High_time>90 or High_time<40:flag = 0continueelif Max_heat>250 or Max_heat<240:flag = 0continueif flag == -1:break
print(V*60)
问题三

通过单目标规划求解理想的炉温曲线

应使超过217ºC到峰值温度所覆盖的面积最小,

决策参数分别由过炉速度以及每个温区的温度值

约束条件为回焊炉的制程范围。

在满足该制程范围的条件下,使用粒子群算法(当然可以是其他的启发式搜索算法),

1.求解最优由于温度的范围为65-100cm/min,以及每个温区的温度变化范围为10℃,从而限制出搜索空间.

  1. 随机初始化100个粒子,迭代次数200次,.

  2. 在粒子群算法中, 由于温度的范围为65-100cm/min,以及每个温区的温度变化范围为10℃,从而限制出搜索空间.

  3. 随机初始化粒子数,经过若干次的迭代搜索求解出最合适的过炉速度以及每个可设定的温区值.

最终结果

参数过炉速度温区1-5温区6温区7温区8-9
94cm/min185℃185℃234℃265℃

在这里插入图片描述

第四问使用多目标规划模型,然后将两个目标结合起来处理成单目标

最终也可以同样使用启发式算法进行搜索,但时间有限并没有算出最终答案😁


http://chatgpt.dhexx.cn/article/8UeuyGRt.shtml

相关文章

2020东三省数学建模A题

问题重述 根据与疫情发展相关的时间序列数据&#xff0c;分析世界范围内主要国家的疫情发展特点及抗击疫情状况&#xff0c;并进行合理的分类。 选取合理的指标&#xff0c;构建数学模型&#xff0c;对世界范围内主要国家对疫情的管控效果进行综合评价。 分别建立模型对世界范…

2021数学建模国赛A题

2021数学建模国赛A题 2021 年高教社杯全国大学生数学建模竞赛题目 &#xff08;请先阅读“全国大学生数学建模竞赛论文格式规范”&#xff09; A 题 “FAST”主动反射面的形状调节 中国天眼——500 米口径球面射电望远镜&#xff08;Five-hundred-meter Aperture Spherical r…

2017数学建模B题回顾与解题分享

先恭喜我校这次取得了史上最好成绩&#xff01;不是数学专业的&#xff0c;与王老师接触不太久&#xff0c;但他短短几天每晚穿睡衣来机房陪我们&#xff0c;真是感人。很负责的老师。这下他也能圆满的退居二线啦 。感谢所有&#xff0c;下面就这次国赛B题的解决过程做一个回顾…

2022长三角数学建模A题:学在长三角

鼓励大家参加数学建模&#xff0c;目的是为了提升个人能力&#xff0c;所谓奖项并不很重要&#xff0c;我写一点导读帮助大家理解&#xff0c;关于赛题的程序我一般会在比赛结束后才会更新。 导读 我们一起读题&#xff0c;理一下大概方向&#xff0c;这是我才打开题目第一次…

2021中青杯数学建模A题

2021中青杯数学建模A题 话不多说&#xff0c;先上证书&#xff0c;小编获得了2021年中青杯数学建模本科生组一等奖 以下是证书和参赛论文 A 题:汽车组装车间流水线物料配送问题 汽车制造有四大关键工艺——冲压、焊接、涂装和总装&#xff0c;其中总装车间的占地面积最大、工…

2022长三角数学建模A题

A题思路审核未通过&#xff0c;已经在公众号上重新发布。 回复【长三角A】获取。 总结&#xff1a; A题的难度不大&#xff0c;但是就是比较奇怪。很多题其实百度就有答案&#xff0c;但毕竟是数学建模&#xff0c;大家就多少写几个模型算法啥的。能自己做就自己做&#xff0…

2022全国大学生数学建模A题的思路与解法

题目回顾与写在前面 首先&#xff0c;我们队在历经了千辛万苦之后&#xff0c;光荣得获得了 省三......队伍构成 物理*2 计算机*1队伍分工 计算机-->受力分析 物理-->数值计算总评&#xff1a;图一乐&#xff0c;狠乐&#xff01;物理系&#xff0c;计算机系嘛&…

2021数学建模A题详细思路

2021数学建模A题详细思路 适合遇到瓶颈&#xff0c;没有开始写论文&#xff0c;甚至还没有思路的同学“参考” 实在写不出论文的同学&#xff0c;也可以直接根据思路以及提供的资料&#xff0c;进行“语文建模”完成论文&#xff0c;至少交了就有个成绩。 2021数学建模国赛A…

2020 数学建模 A题

2020 数学建模 A 题 炉温曲线 感受体会 题目介绍原题题目分析整体热传到模型分析问题一问题二问题三问题四 核心&#xff1a;一维热传导模型模型参数设定温度间隙的温度分布&#xff09; 回流区过渡到 冷却区 之后 的温度电路板中心 区域 温度 变化的 机理 模型的求解问题一结论…

2017年数学建模大赛A题剖析(第一问求解间距思路分析)

第一问&#xff1a;间距问题 制作人&#xff1a;王代文一种典型的二维CT系统如图1所示&#xff0c;平行入射的X射线垂直于探测器平面&#xff0c;每个探测器单元看成一个接收点&#xff0c;且等距排列。X射线的发射器和探测器相对位置固定不变&#xff0c;整个发射-接收系统绕某…

全国大学生数学建模竞赛——2017A题(学习笔记)

目录 一、任务分析 二、题目一求解 题目分析&#xff1a; 模型建立&#xff1a; 模型求解&#xff1a; 3.1读数据&#xff0c;绘图 3.2探测器之间的距离计算 3.3小圆与发射—接收系统的相对运动 3.4提取小圆圆心位置坐标 三、题目二求解 一、任务分析 历年赛题 任…

PinPoint使用手册(图文并茂版)

用了一段时间PinPoint&#xff0c;感觉很有效果&#xff0c;值得推广&#xff0c;在这里把使用时总结出来的知识分享给大家&#xff0c;网上有很多Pinpoint安装部署的教程以及与其他APM比对的文章&#xff0c;这里就不赘述了&#xff0c;直接上图 01首页 02Server切换 03链路及…

Pinpoint部署和踩坑记录

pinpoint是韩国人开源的 APM (Application Performance Management/应用性能管理)工具 - Pinpoint。它基于google Dapper开发&#xff0c;目标就是为n(n>1)层架构开发新的跟踪平台&#xff0c;为n层架构的系统提供解决方案。pinpoint能够对基于java的大规模分布式系统和应用…

Pinpoint 技术架构及部署

目录 一、背景 二、简介 三、Pinpoint Collector 收集端 四、Pinpoint Web 五、Pinpoint Agent 六、监控效果图 七、其他 一、背景 随着项目微服务的进行&#xff0c;微服务数量逐渐增加&#xff0c;服务间的调用也越来越复杂&#xff0c;我们急切需要一个APM工具帮我们…

性能测试利器 — 全链路监控工具Pinpoint安装教程(非docker版本)

1、pinpoint介绍 1.1、相关简介 pinpoint是开源在github上的一款APM监控工具&#xff0c;它是由Java编写的&#xff0c;用于大规模分布式系统的监控&#xff1b;它对性能的影响最小(只增加约3%资源利用率)&#xff0c;安装agent是无侵入式的&#xff0c;只需要在被测试的Tomc…

pinpoint监控学习笔记

pinpoint分以下主要模块&#xff1a; pinpoint-agent&#xff0c;这个工程引用了其它核心jar&#xff0c;整个pinpoint监控的配置文件在这个项目中: pinpoint.config。 pinpoint-bootstrap: 这个工程定义了当jvm启动时&#xff0c;利用java instrument&#xff0c;实现对于后续…

Pinpoint 快速开始

Pinpoint有三个主要组件(collector, web, agent)&#xff0c;并使用HBase作为存储。Collector和Web被打包为单个war文件&#xff0c;而agent被打包以便可以作为java agent附加到应用。 Pinpoint quickstart 为agent提供一个示例TestApp&#xff0c; 并使用tomcat maven插件来启…

Pinpoint 一款强大的APM工具

背景 程序的监控一直是程序员最头痛的事情之一&#xff0c;现网程序有问题怎么办&#xff1f;看进程看端口 top/free/df 三件套&#xff1f;网络抓包&#xff1f;看日志&#xff1f;所以为了满足这些初级需求很多公司都做了主机监控&#xff0c;进程端口监听等功能&#xff0c…

pinpoint新增自定义插件监控

pinpoint&#xff1a;源码地址&#xff1a;https://github.com/pinpoint-apm/pinpoint.git 定义&#xff1a;基于Google的Dapper理论&#xff0c;通过在程序内部的class的方法&#xff0c;构造方法等地方埋点&#xff0c;通过Java-agent技术实现类增强的一种链路追踪的监控&…

pinpoint 安装 for spring cloud

pinpoint 安装 for spring cloud 1.环境说明2.安装步骤2.1 安装pinpoint2.2 安装agent2.2.1 下载2.2.2 agent配置2.2.3 JVM 配置2.2.4 日志中输出traceId 3.部署问题3.1 多个相同名称的项目放在一个pinpoint下监控3.2 agent id 过长问题&#xff08;最大长度不能超过24个字符&a…