多目标条件下矿山充填材料配比优化C++实现

目录

一、背景

二、C++代码

三、结果


一、背景

为进一步实现了矿山的高效开采,保证采矿作业的安全,降低充填成本是某金矿提高经济效益的重要途径。矿山开采二步骤对采场充填体强度的要求为7d达到0.3 MPa,28d达到0.5 MPa,56d达到0.8 MPa。其中7d、28d、56d的单轴抗压强度分别为:

7d单轴抗压强度:

Y1=-29.32637+0.858937X1+0.204500X2+0.046460X3-0.002600X1X2-0.000620X1X3-0.000784X2X3-0.006344X12-0.000545X22+0.001053X32(Adjusted R2= 0.9844)

28d单轴抗压强度:

Y2=-18.18050+0.665938X1+0.106150X2-0.454540X3-0.002075X1X2+0.005520X1X3+0.000552X2X3-0.005563X12-(3.53492E-17) X22+ 0.004192X32(Adjusted R2= 0.9545)

56d单轴抗压强度:

Y3=-35.55125+1.07144X1+0.252775X2-0.161840X3-0.003400X1X2 + 0.002780X1X3-0.001112X2X3-0.008125X12-0.000440X22+0.002259X32(Adjusted R2=0.9801)

采用多目标函数寻优方法优化料浆配比,以单位体积充填成本最低为优化目标即 min f,各材料充填成本为:矿山中和渣由全尾砂与酸性废水制作而成,加工费为1.2元/t;废石破碎加工价格为17元/t;水泥的价格为380元/t;工业用水的价格为1.6元/t。

现根据料浆质量分数(X1)、废石掺量(X2)和灰砂比(X3) 分别计算出1 m3充填料浆中和渣的质量Ma、废石质量Ms、水泥质量Mj和水的质量Mw,以充填体强度为约束条件,即Y1≥0.3 MPa;Y2≥0.5 MPa;Y3≥0.8 MPa,建立优化模型下式所示

二、C++代码

#include<iostream>

using namespace std;

void linspace(double start,double end,int n,float* y){
	
	double interval = (end-start)/n;
	
	for(int i = 0;i < n ;i++){
		y[i] = start + interval * i;
	}
}

int main(void){
	int length = 100;
	float ma[length];
	float ms[length];
	float mj[length];
	float mw[length];
	
	float X1,X2,X3,y1,y2,y3,result;
	
	linspace(0.001,2.418,length,ma);
	linspace(0.001,2.67,length,ms);
	linspace(0.001,3,length,mj);
	linspace(0.001,1,length,mw);
	
	long long count = 0;
	int solveCount = 0;
	for(int i = 0;i < length;i++){
		for(int j = 0;j < length;j++){
			for(int k = 0;k < length;k++){
				for(int l = 0;l < length;l++){
					count++;
					if(ma[i]/2.418 + ms[j]/2.67 + mj[k]/3 + mw[l] - 1 < 0.01 && ma[i]/2.418 + ms[j]/2.67 + mj[k]/3 + mw[l] - 1 > -0.01){
//						cout << ma[i] << " " << ms[j] << " " << mj[k] << " " << mw[l] << endl;
						X1 = (ma[i]+ms[j]+mj[k])/(ma[i]+ms[j]+mj[k]+mw[l])*100;
	                    X2 = ms[j]/(ma[i]+ms[j])*100;
	                    X3 = mj[k]/(ma[i]+ms[j])*100;
//	                    cout << X1 << " " << X2 << " " << X3 << endl;
						if(X1 <= 60 && X1 >= 56 && X2 >=30 &&  X2 <= 40 && X3 >= 12.5 && X3 <= 25){
//						if(true){
							y1 = -29.32637+0.858937*X1+0.204500*X2+0.046460*X3-0.002600*X1*X2-0.000620*X1*X3-0.000784*X2*X3-0.006344*X1*X1-0.000545*X2*X2+0.001053*X3*X3;
	//						cout << count << " " << X1 << " " << X2 << " " << X3 << " " << y1 << endl;
							if(y1 >= 0.3){
								y2 = -18.18050+0.665938*X1+0.106150*X2-0.454540*X3-0.002075*X1*X2+0.005520*X1*X3+0.000552*X2*X3-0.005563*X1*X1-(3.53492E-17)*X2*X2+ 0.004192*X3*X3;
								if(y2 >= 0.5){
									y3=-35.55125+1.07144*X1+0.252775*X2-0.161840*X3-0.003400*X1*X2 + 0.002780*X1*X3-0.001112*X2*X3-0.008125*X1*X1-0.000440*X2*X2+0.002259*X3*X3;
									if(y3 >= 0.8){
										result = 1.2*ma[i] + 17*ms[j] + 380*mj[k] + 1.6*mw[l];
										cout << count << " " <<ma[i] << " " << ms[j] << " " << mj[k] << " " << mw[l] << " " << X1 << " " << X2 << " " << X3 << " " <<  result << endl;

									}
								}
							}	
						}    
					}
				}
			}
		}
	}
		return 0;
} 

暴力求解:代码采用最简单的暴力求解方法,即将待求值中和渣的质量Ma、废石质量Ms、水泥质量Mj和水的质量Mw采用linspace进行创建等差数列(组合密度取决于变量length),采用循环遍历每一种组合,并判断每一种组合是否满足模型的各个优化条件,若满足则输出。

三、结果

countMaMsMjMwX1X2X3f
191006650.460230.26790.180940.6403658.671336.792924.8574.8884
191006660.460230.26790.180940.6503558.295436.792924.8574.9043
191105650.460230.294590.150950.6403658.58339.027819.998163.9459
191106640.460230.294590.180940.6303759.749839.027823.971375.3261
191106650.460230.294590.180940.6403659.371139.027823.971375.3421
200906650.48440.241210.180940.6403658.603933.242424.936374.4636
200906660.48440.241210.180940.6503558.227933.242424.936374.4796
201005650.48440.26790.150950.6403658.515435.610820.065163.5212
201006640.48440.26790.180940.6303759.68535.610824.051674.9014
201006650.48440.26790.180940.6403659.30635.610824.051674.9174
201105640.48440.294590.150950.6303759.599737.816919.377763.9589
201105650.48440.294590.150950.6403659.220537.816919.377763.9749
210905650.508570.241210.150950.6403658.447632.170820.132663.0964
210906640.508570.241210.180940.6303759.619932.170824.132474.4766
210906650.508570.241210.180940.6403659.240832.170824.132474.4926
211005640.508570.26790.150950.6303759.534334.502319.440563.5342
211005650.508570.26790.150950.6403659.15534.502319.440563.5502
220905640.532740.241210.150950.6303759.468831.166119.503863.1095
220905650.532740.241210.150950.6403659.089231.166119.503863.1254

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 圆环结构复合材料是一种广泛应用于航空航天、汽车、船舶、建筑等领域的重要材料,其具有优异的力学性能和轻质化特点。其中VARI树脂是一种常用的复合材料树脂,其具有良好的高温性能和化学稳定性,被广泛应用于复合材料制造中。 在圆环结构复合材料制造过程中,充填模拟是一个重要的工艺环节。通过对圆环结构内部的VARI树脂充填过程进行数值模拟,可以优化工艺参数,提高制造质量和效率。充填模拟需要考虑多个因素,如树脂流动性、充填速度、充填压力等,同时考虑圆环结构的几何形状和材料特性。 目前,常用的圆环结构复合材料VARI树脂充填模拟方法主要包括数值模拟和实验方法。数值模拟方法可以通过有限元分析和计算流体力学等方法进行,可以预测圆环结构内部流场分布、充填速度和压力等参数。实验方法主要包括模型制备和实际制造过程中的监测,可以直接获取充填过程中的实验数据,但需要较高的成本和时间。 总之,圆环结构复合材料VARI树脂充填模拟是一个重要的工艺环节,可以通过数值模拟和实验方法进行研究。在实际制造过程中,需要根据具体情况选择合适的方法进行优化和控制。 ### 回答2: 圆环结构复合材料是一种具有良好机械性能和轻量化特点的材料。在设计和制造过程中,充填模拟研究是一项重要的工作,它可以帮助我们理解和优化材料的性能。 VARI树脂是一种常用的充填材料,它以环氧树脂为基础,通过添加填料和添加剂来改变其性能。在圆环结构中,VARI树脂被用作充填材料,可以填充在环状结构的空隙中,起到增强和保护的作用。 充填模拟研究可以通过数值模拟和实验方法进行。数值模拟可以使用有限元方法,建立圆环结构的几何模型,确定加载条件材料性能,并进行应力应变分析。这可以帮助我们确定材料的耐力和疲劳寿命,以及优化充填材料的含量和组方。 实验方法可以通过制作充填模型进行加载试验。这可以帮助我们验证数值模拟的结果,并观察材料在加载条件下的行为。同时,还可以通过对比不同组合的VARI树脂进行充填模型研究,评估不同组合对材料性能的影响。 充填模拟研究对圆环结构复合材料的设计和制造具有重要意义。它可以帮助我们理解材料的力学性能和耐用性,指导优化材料的组方和加工工艺,提高材料的工程应用价值。 ### 回答3: 圆环结构复合材料VARI树脂充填模拟研究是对VARI树脂在圆环结构中的充填情况进行模拟和研究的过程。该研究的目的是为了深入了解VARI树脂在充填过程中的行为及其对圆环结构的影响,以帮助优化充填工艺和提高材料性能。 在研究中,首先会建立VARI树脂的充填模型,考虑到圆环结构的特点和材料的物理性质等因素,确定合适的模拟方法和参数。然后,通过计算机仿真的方式进行模拟,模拟出VARI树脂在圆环结构中的充填过程。 通过模拟研究,可以观察VARI树脂在充填过程中的流动情况、填充速度、温度变化等信息,并通过分析模拟结果得出一系列结论和数据。这些结论和数据可以用于指导实际生产过程中的工艺参数设置以及材料性能的改进。 此外,模拟研究还可以帮助研究人员更好地理解VARI树脂在圆环结构中的填充机理,进一步探索材料的内部结构和性能之间的关系。 总之,圆环结构复合材料VARI树脂充填模拟研究是一项重要的研究工作,它可以提供有关VARI树脂在圆环结构中的充填情况的详细信息,为材料的加工工艺优化和性能改进提供理论依据和技术支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿木霖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值