2019年MathorCup数学建模D题钢水“脱氧合金化“配料方案的优化解题全过程文档及程序

2019年第九届MathorCup高校数学建模挑战赛

D题 钢水“脱氧合金化"配料方案的优化

原题再现:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

整体求解过程概述(摘要)

  我国积极推动钢铁工业转型升级,对脱氧合金化工艺环节的配料方案进行优化是技术升级的重要部分。本文结合灰色关联分析模型(GRA)和 SPSS 相关系数分析结果得到了影响 C,Mn 收得率的主要因素。利用支持向量回归模型(SVR)与贝叶斯岭回归模型对 C,Mn 元素收得率进行预测,最后利用改进粒子群模型优化了合金配料方案。
  针对问题一,本文先对附件 1 的数据进行了预处理,得到了较完整的实验数据,从而计算了 C、Mn 元素的历史平均收得率,分别为 91.09%、88.39%。其次,通过运用灰色关联模型和 SPSS 相关性系数分析得到两种主要因素的分析结果。综合考虑,分析出对 C 收得率的主要影响因素为转炉终点温度、钢水净重、锰硅合金 FeMn68Si18、石油焦增碳剂、碳化硅(55%)、硅钙碳脱氧剂;对 Mn 收得率的主要影响因素为终点温度、钢水净重、硅锰面、锰硅合金 FeMn68Si18,锰硅合金 FeMn64Si27。
  针对问题二,本文选取 80%的数据作为训练集,20%作为测试集。先利用支持向量回归(SVR)模型进行收得率预测,结果得到 SVR 模型的 C、Mn 预测准确率分别为:54%、53%。提出了两种优化方案:从数据集层面,我们调整输入数据集,使预测准确率分别提高至 55%、57%;从模型层面,采用贝叶斯岭回归模型进行预测。对比发现贝叶斯岭回归预测模型效果优于 SVR 预测模型,贝叶斯岭回归模型的预测成功率为:57%、56%。
  针对问题三,本文将问题二中预测合金收得率的结果作为已知数据。为了计算最低成本的合金料配比,先假设了目标函数并添加约束条件,利用改进粒子群优化算法(PSO)进行求解。在合金收得率最优条件下,此时得到碳,锰元素最优化合金配料总成本分别为 11186.83,9764.95 元。
  针对问题四,我们通过建立的模型计算出的结果与实际情况,向炼钢厂领导提出了具有一定参考价值的建议,希望能对实际生产有一些积极影响。

模型假设:

  ● 假设钢水质量在脱氧合金化前后不会发生变化
  ● 假设脱氧合金化过程不受工人的技术水平影响
  ● 假设所使用的转炉规格与质量一致
  ● 暂不研究时间因素对结果的影响
  ● 暂不研究脱氧方法的不同的影响
  ● 暂不研究加入合金顺序的影响

问题分析:

  问题一分析:解决问题一最先要做的是处理附件一数据的残缺问题,我们选择通过回归方法补齐大量空白数据。具体来说主要通过多元线性回归,以已知的连铸正样碳当量(Ceq)为因变量,通过查询文献,找出其相关的自变量,使用 SPSS 对已知数据集进行多元线性回归,得到相关的数学模型后计算未知数据;其他部分的较多空白数据,我们以简单线性回归即可拟合,剩余个别缺失我们采用均值补齐;同时,对于少量的不符合生产要求、数值波动过大的异常数据,直接剔除。经过数据的预处理后,我们得到一个较为完整的数据表,通过题目中已经给出的合金收得率的公式,就能够直接套用计算得出历史收得率。第二小问,我们选择灰色关联分析和相关性系数两种方法分别提取对收得率贡献比较大的元素:使用 Python 对数据选取合适的关联系数进行灰色关联的计算,同时使用 SPSS 对数据进行 Pearson 和 Kendall 相关系数的检验,通过对比两个方案的结果,选择综合结果贡献最大的数据集作为影响收得率的主要因素。
  问题二分析:根据问题一的结果,通过查阅转炉炼钢与脱氧合金化的相关文献,从回归预测模型的角度,自主选择 80%的数据为训练集,选择构建支持向量回归(SVR)模型预测所求元素收得率,并以剩余的 20%数据作为测试集,检验模型的可行性。在优化模型方面,从数据和模型两个方面进行改进:在数据上,增加影响因素、对在数据预处理中补齐的数据进行重新排列组合,再次运行得到新的收得率,并通过与先前结果的对比,比较优化情况;在模型上,选择贝叶斯岭回归模型进行重新描述,比较测试集的准确度、误差等参数,讨论模型优化的方向和成功率。
  问题三分析:将问题二预测出的收得率作为已知数据,结合附录二中的价格,建立粒子群(PSO)模型来进行优化计算,其中,将总成本作为目标函数,以元素质量、元素总量、钢号的内控区间作为约束条件,结合模型求解构成目标函数最小值合金配比结果,并给出最优合金配料方案。在运行中通过计算机自主优化参数,控制迭代次数,得到全局最优解。
  问题四分析:根据前文研究的结果,结合炼钢厂实际情况,写一封具有实际指导价值的建议信给炼钢厂领导。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

C 与 Mn 收得率计算程序

1. import pandas as pd
2. import csv
3. data = pd.read_csv('dataOne.csv', encoding='GBK')
4. Data = data.values
5. Cm = []
6. Cz = []
7. Mnm = []
8. Mnz = []
9. #计算钢水中合金元素质量
10. for i in range(len(Data)):
11. a = float(Data[i][7])*(Data[i][8]-float(Data[i][2]))
12. b = float(Data[i][7]) * (Data[i][9] - float(Data[i][3]))
13. Cz.append(a)
14. if(i<len(Data)):
15. Mnz.append(b)
16. #计算加入的合金元素总质量
17. for i in range(len(Data)):
18. Cm.append(Data[i][16]*0.031 + Data[i][17]*0.031 + Data[i][19]*0.00374 +Data[i][21]*0.017
19. + Data[i][22]*0.00006 + Data[i][23]*0.00006 + Data[i][24]*0.96 +
Data[i][25]*0.017
20. + Data[i][26]*0.017 + Data[i][27]*0.3 + Data[i][28]*0.225692308)
21. if(i<=len(Data)):
22. Mnm.append(Data[i][21]*0.3 + Data[i][22]*0.664 + Data[i][25]*0.664+Data[i][26]*0.664)
23. C_rate = []
24. Mn_rate = []
25. num = len(Data)
26. for i in range(num-9):
27. if(Mnm[i] == 0):
28. del Mnm[i]
29. del Mnz[i]
30. 31. #计算 C,Mn 元素的每次的可得率
32. for i in range(len(Cz)):
33. C_rate.append(Cz[i]/Cm[i])
34. if (i < len(Mnz)):
35. Mn_rate.append(Mnz[i]/Mnm[i])
36. num = len(C_rate)
37. #去除异常数据
38. for i in range(1600):
39. if (C_rate[i] >= 1 or C_rate[i] <= 0):
40. C_rate[i] = 0.0
41. num -= 1
42. 43. 44. #计算 C 元素的均收得率
45. sum2 = 0.0
46. for k in range(1600):
47. sum2 += C_rate[k]
48. C_yield = sum2/num
49. print('碳元素的收得率:', C_yield)
50. 51. #计算 Mn 元素的平均收得率
52. num = len(Mn_rate)
53. for j in range(1600):
54. if(Mn_rate[j] >= 1 or Mn_rate[j] <= 0):
55. Mn_rate[j] = 0.0
56. num -= 1
57. sum1 = 0.0
58. 59. for k in range(1600):
60. sum1 += Mn_rate[k]
61. Mn_yield = sum1/num
62. print('锰元素的收得率:', 

灰色关联分析程序

1. import pandas as pan
2. 3. #数据预处理 初始化
4. x=pan.read_csv('mn.csv')
5. x=x.iloc[:,:].T
6. c=0.5
7. 8. # 均值化处理
9. x_mean=x.mean(axis=1)
10. for i in range(x.index.size):
11. x.iloc[i,:] = x.iloc[i,:]/x_mean[i]
12. 13. # 提取子队列和母队列
14. pa=x.iloc[0,:]
15. ps=x.iloc[1:,:]
16. 17. # 比较队列与参考队列相减
18. t=pan.DataFrame()
19. 20. for j in range(ps.index.size):
21. temp=pan.Series(ps.iloc[j,:]-pa)
22. t=t.append(temp,ignore_index=True)
23. 24. #求最大差和最小差
25. maxx=t.abs().max().max()
26. minn=t.abs().min().min()
27. ksi=((minn+c*maxx)/(abs(t)+c*maxx))
28. 29. #关联度
30. r=ksi.sum(axis=1)/ksi.columns.size
31. 32. #关联度排序
33. result=r.sort_values(ascending=False)
34. print(result)
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2019MathorCup高校数学建模挑战赛D 2019第九届MathorCup高校数学建模挑战赛 竞赛信息 竞赛简介 为了培养学生的创新意识及运用数学方法和计算机技术解决实际问的能力,中国优选法统筹法与经济数学研究会决定主办2019第九届MathorCup高校数学建模挑战赛,欢迎各高等院校按照竞赛章程及有关规定组织同学报名参赛。 组织机构 主办单位:中国优选法统筹法与经济数学研究会 【中国优选法统筹法与经济数学研究会是在中国科学技术协会直接领导下的学术性社会团体,是国家一级学会。学会由华罗庚教授于1981发起成立,至今成立了评价方法与应用、项目管理、计算机模拟、统筹、管理决策与信息系统、工业工程、高等教育管理、数学教育、经济数学与管理数学、应急管理、灰色系统研究,复杂系统研究等十余个专业分会】 竞赛时间 报名时间:即日起至2019 4 月 10日 12:00 竞赛时间:20194 月 11 日08:00至2019 4 月 15 日08:00 参赛对象 普通高校全日制在校生(研究生、本科生、专科生)以队为单位参赛,每队不超过3人,不允许跨校组队参赛。 参赛费用 每支队伍需缴纳200元的报名费用。 奖项设置 参赛队伍:全国一等奖(约5%)、全国二等奖(约15%)、全国三等奖(约30%),从一等奖队伍中经过决赛答辩决出4支队伍获得“MathorCup”荣誉奖杯; 组织单位:优秀组织单位、优秀组织社团、优秀组织个人; 其它奖励政策:参见《 MathorCup高校数学建模挑战赛奖励细则》( 可从官方主页下载)。
很抱歉,我无法提供关于2024 Mathorcup建模比赛的具体信息,因为我无法获取最新的比赛目和相关资料。但是,我可以给你一些关于数学建模比赛的一般性介绍和建议。 数学建模比赛是一个测试参赛者在给定时间内解决实际问的能力的竞赛。通常,比赛会提供一个实际问的描述,参赛者需要通过数学建模的方法来分析问、提出模型、进行计算和推理,并给出相应的解决方案和结论。 对于数学建模比赛的D,具体的目内容会根据每比赛的主而有所不同。一般来说,D可能会涉及更复杂的问,需要参赛者综合运用多个数学知识和技巧来解决。这可能包括但不限于数值计算、优化算法、统计分析、图论等等。 参加数学建模比赛时,以下几点建议可能对你有帮助: 1. 仔细阅读目:理解问的背景、要求和限制条件是解决问的第一步。 2. 建立合适的数学模型:根据问的特点和要求,选择适当的数学方法和模型来描述和求解问。 3. 数据分析和处理:对于给定的数据,进行必要的分析和处理,以便更好地理解问和提取有用的信息。 4. 解决方案的求解和验证:根据建立的数学模型,使用合适的算法和工具进行计算和求解,并验证解决方案的有效性和可行性。 5. 结果的呈现和分析:将解决方案的结果进行清晰、准确地呈现,并进行相应的分析和讨论。 希望以上信息对你有所帮助!如果你有其他相关问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值