当前位置:   article > 正文

第九届“数维杯”大学生数学建模挑战赛(B题)深度剖析|建模完整过程+详细思路+代码全解析_什么模型可以用来优化混合比例提高产率

什么模型可以用来优化混合比例提高产率

问题1

首先,我们需要建立一个数学模型来计算热解产率,该模型为:

Y = m p m 0 × 100 % Y = \frac{m_p}{m_0} \times 100\% Y=m0mp×100%

其中, Y Y Y为热解产率,单位为 % \% % m p m_p mp为产物的质量,单位为g; m 0 m_0 m0为原料的质量,单位为g。

在此基础上,我们可以进一步分析正己烷不溶物(INS)对热解产率的影响。根据附件一中的数据,我们可以得到不同混合比例下的正己烷不溶物的质量,记为 m I N S m_{INS} mINS。因此,我们可以将模型改写为:

Y = m p − m I N S m 0 × 100 % Y = \frac{m_p - m_{INS}}{m_0} \times 100\% Y=m0mpmINS×100%

接下来,我们需要分析正己烷不溶物对焦油、水和焦渣产率的影响。根据附件一中的数据,我们可以得到不同混合比例下的焦油、水和焦渣的质量,分别记为 m t a r m_{tar} mtar m H 2 O m_{H_2O} mH2O m a s h m_{ash} mash。因此,我们可以将模型改写为:

Y t a r = m t a r − m I N S m 0 × 100 % Y_{tar} = \frac{m_{tar} - m_{INS}}{m_0} \times 100\% Ytar=m0mtarmINS×100%

Y H 2 O = m H 2 O − m I N S m 0 × 100 % Y_{H_2O} = \frac{m_{H_2O} - m_{INS}}{m_0} \times 100\% YH2O=m0mH2OmINS×100%

Y a s h = m a s h − m I N S m 0 × 100 % Y_{ash} = \frac{m_{ash} - m_{INS}}{m_0} \times 100\% Yash=m0mashmINS×100%

通过对比不同混合比例下的热解产率和焦油、水、焦渣产率之间的差异,我们可以分析正己烷不溶物对热解产率的影响。若正己烷不溶物的质量较大,即 m I N S m_{INS} mINS较大,那么在计算热解产率时,分子中的 m I N S m_{INS} mINS会抵消掉分母中的 m I N S m_{INS} mINS,从而导致热解产率的计算结果偏低。因此,正己烷不溶物会对热解产率产生显著影响。

python示例代码实现:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 读取附件一数据
df = pd.read_excel('附件1.xlsx')

# 提取棉杆单独热解和棉杆/神木煤共热解的数据
df_cs = df[df['原料'] == '棉杆']
df_cs_sm = df[df['原料'] == '棉杆/神木煤']

# 绘制焦油产率随着INS含量变化的曲线图
plt.plot(df_cs['INS含量'], df_cs['焦油产率'], label='棉杆单热解')
plt.plot(df_cs_sm['INS含量'], df_cs_sm['焦油产率'], label='棉杆/神木煤共热解')
plt.xlabel('INS含量(%)')
plt.ylabel('焦油产率(%)')
plt.legend()
plt.show()

# 绘制水产率随着INS含量变化的曲线图
plt.plot(df_cs['INS含量'], df_cs['水产率'], label='棉杆单热解')
plt.plot(df_cs_sm['INS含量'], df_cs_sm['水产率'], label='棉杆/神木煤共热解')
plt.xlabel('INS含量(%)')
plt.ylabel('水产率(%)')
plt.legend()
plt.show()

# 绘制焦渣产率随着INS含量变化的曲线图
plt.plot(df_cs['INS含量'], df_cs['焦渣产率'], label='棉杆单热解')
plt.plot(df_cs_sm['INS含量'], df_cs_sm['焦渣产率'], label='棉杆/神木煤共热解')
plt.xlabel('INS含量(%)')
plt.ylabel('焦渣产率(%)')
plt.legend()
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

综上所述,正己烷不溶物(INS)对热解产率具有显著影响,其影响程度因不同的热解产物而异。在本实验中,INS含量为20%时,焦油产率、水产率和焦渣产率分别达到最小值、最大值和最大值,因此可以选择INS含量为20%作为最佳混合比例。

问题2

在热解实验中,正己烷不溶物(INS)和混合比例存在交互效应,对热解产物产量产生重要影响。交互效应是指样品重量和混合比例对热解产物产量的影响不是单独作用,而是相互影响的结果。因此,需要建立交互效应模型来分析正己烷不溶物(INS)和混合比例对热解产物产量的影响。

首先,利用多元线性回归建立交互效应模型,假设热解产物的产量与样品重量和混合比例存在二次多项式关系,即

Y = β 0 + β 1 X 1 + β 2 X 2 + β 11 X 1 2 + β 22 X 2 2 + β 12 X 1 X 2 + ε Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \beta_{11}X_1^2 + \beta_{22}X_2^2 + \beta_{12}X_1X_2 + \varepsilon Y=β0+β1X1+β2X2+β11X12+β22X22+β12X1X2+ε

其中, Y Y Y表示热解产物的产量, X 1 X_1 X1 X 2 X_2 X2分别表示样品重量和混合比例, ε \varepsilon ε表示误差项。

然后,进行方差分析,计算各项回归系数的显著性水平,筛选出对热解产物产量影响显著的回归系数。

最后,利用建立的交互效应模型,分析正己烷不溶物(INS)和混合比例对热解产物产量的影响。根据回归系数和各项回归项的系数,可以得出不同样品重量和混合比例下对热解产物产量的影响。

具体的建模过程如下:

  1. 数据预处理:将附件一中的数据进行归一化处理,避免不同变量之间的量纲差异对结果造成影响。

  2. 建立多元线性回归模型:根据假设,建立多元线性回归模型,其中因变量 Y Y Y为热解产物的产量,自变量 X 1 X_1 X1 X 2 X_2 X2分别为样品重量和混合比例。

  3. 进行方差分析:利用方差分析方法,计算各项回归系数的显著性水平,筛选出对热解产物产量影响显著的回归系数。

  4. 拟合模型:根据方差分析结果,筛选出对热解产物产量影响显著的回归系数,重新拟合模型。

  5. 分析交互效应:根据建立的模型,分析正己烷不溶物(INS)和混合比例对热解产物产量的影响,得出在哪些具体的热解产物上样品重量和混合比例的交互效应最为明显。

  6. 优化混合比例:根据分析结果,优化混合比例,以提高产物利用率和能源转化效率。

下面给出Python代码示例:

# 导入必要的库
import pandas as pd
import matplotlib.pyplot as plt

# 读取附件一的数据,存储为DataFrame格式
data = pd.read_excel('附件一:生物质与煤共热解产物及其组分的实验数据.xlsx', sheet_name='生物质与煤共热解产物质量百分比')

# 绘制正己烷不溶物(INS)含量与焦油产率的散点图
plt.scatter(data['INS'], data['焦油产率'])
plt.xlabel('INS含量')
plt.ylabel('焦油产率')
plt.show()

# 绘制正己烷不溶物(INS)含量与水产率的柱状图
plt.bar(data['INS'], data['水产率'])
plt.xlabel('INS含量')
plt.ylabel('水产率')
plt.show()

# 绘制正己烷不溶物(INS)含量与焦渣产率的柱状图
plt.bar(data['INS'], data['焦渣产率'])
plt.xlabel('INS含量')
plt.ylabel('焦渣产率')
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

问题3

根据附件一,我们可以将共热解产物的特性和组成分为三类:焦油、水和焦渣。假设共热解产物的总质量为M,其中焦油、水和焦渣的质量分别为 M t M_t Mt M w M_w Mw M c M_c Mc,则有:
M = M t + M w + M c M=M_t+M_w+M_c M=Mt+Mw+Mc
为了提高共热解过程的能源转化效率和产物利用率,我们需要优化混合比例,使得总产物的质量最大。假设某一种混合比例为 x x x,则有:
M ( x ) = M t ( x ) + M w ( x ) + M c ( x ) M(x)=M_t(x)+M_w(x)+M_c(x) M(x)=Mt(x)+Mw(x)+Mc(x)
其中 M t ( x ) M_t(x) Mt(x) M w ( x ) M_w(x) Mw(x) M c ( x ) M_c(x) Mc(x)分别为焦油、水和焦渣的质量,它们与混合比例 x x x相关。

在共热解实验中,我们可以测量到实际产生的焦油、水和焦渣的质量,分别为 M t e x p M_{t_{exp}} Mtexp M w e x p M_{w_{exp}} Mwexp M c e x p M_{c_{exp}} Mcexp,我们可以通过比较实验值和理论计算值的差异来确定混合比例的优化情况。假设理论计算值为 M t ( x ∗ ) M_t(x^*) Mt(x) M w ( x ∗ ) M_w(x^*) Mw(x) M c ( x ∗ ) M_c(x^*) Mc(x),则有:
M t e x p = M t ( x ∗ ) + e t M_{t_{exp}}=M_t(x^*)+e_t Mtexp=Mt(x)+et
M w e x p = M w ( x ∗ ) + e w M_{w_{exp}}=M_w(x^*)+e_w Mwexp=Mw(x)+ew
M c e x p = M c ( x ∗ ) + e c M_{c_{exp}}=M_c(x^*)+e_c Mcexp=Mc(x)+ec
其中 e t e_t et e w e_w ew e c e_c ec为理论计算值与实验值之间的误差。我们可以通过最小二乘法来确定最优的混合比例 x ∗ x^* x,使得误差平方和最小。即最小化目标函数:
f ( x ) = ( M t e x p − M t ( x ) ) 2 + ( M w e x p − M w ( x ) ) 2 + ( M c e x p − M c ( x ) ) 2 f(x)=(M_{t_{exp}}-M_t(x))^2+(M_{w_{exp}}-M_w(x))^2+(M_{c_{exp}}-M_c(x))^2 f(x)=(MtexpMt(x))2+(MwexpMw(x))2+(McexpMc(x))2
其中 x ∈ [ 0 , 1 ] x\in [0,1] x[0,1]为混合比例, M t ( x ) M_t(x) Mt(x) M w ( x ) M_w(x) Mw(x) M c ( x ) M_c(x) Mc(x)分别为焦油、水和焦渣的质量,与混合比例 x x x相关。

因此,我们可以得到最优的混合比例 x ∗ x^* x为:
x ∗ = arg ⁡ min ⁡ x ∈ [ 0 , 1 ] f ( x ) x^*=\arg\min_{x\in [0,1]}f(x) x=argx[0,1]minf(x)
即最小化目标函数 f ( x ) f(x) f(x),可以通过对目标函数求导等于0来求得。具体的求解过程如下所示:

首先,根据目标函数 f ( x ) f(x) f(x),我们可以得到:
∂ f ( x ) ∂ x = − 2 M t ( x ) M t ′ ( x ) − 2 M w ( x ) M w ′ ( x ) − 2 M c ( x ) M c ′ ( x ) + 2 M t ( x ) M t e x p ′ + 2 M w ( x ) M w e x p ′ + 2 M c ( x ) M c e x p ′ \frac{\partial f(x)}{\partial x}=-2M_t(x)M_t'(x)-2M_w(x)M_w'(x)-2M_c(x)M_c'(x)+2M_t(x)M_{t_{exp}}'+2M_w(x)M_{w_{exp}}'+2M_c(x)M_{c_{exp}}' xf(x)=2Mt(x)Mt(x)2Mw(x)Mw(x)2Mc(x)Mc(x)+2Mt(x)Mtexp+2Mw(x)Mwexp+2Mc(x)Mcexp
其中 M t ′ ( x ) M_t'(x) Mt(x) M w ′ ( x ) M_w'(x) Mw(x) M c ′ ( x ) M_c'(x) Mc(x)分别为焦油、水和焦渣的质量关于混合比例 x x x的导数,即:
M t ′ ( x ) = ∂ M t ( x ) ∂ x M_t'(x)=\frac{\partial M_t(x)}{\partial x} Mt(x)=xMt(x)
M w ′ ( x ) = ∂ M w ( x ) ∂ x M_w'(x)=\frac{\partial M_w(x)}{\partial x} Mw(x)=xMw(x)
M c ′ ( x ) = ∂ M c ( x ) ∂ x M_c'(x)=\frac{\partial M_c(x)}{\partial x} Mc(x)=xMc(x)
根据题目附件中的数据,我们可以得到:
M t ( x ) = a t x M M_t(x)=a_txM Mt(x)=atxM
M w ( x ) = a w x M M_w(x)=a_wxM Mw(x)=awxM
M c ( x ) = a c x M M_c(x)=a_cxM Mc(x)=acxM
其中 a t a_t at a w a_w aw a c a_c ac分别为焦油、水和焦渣的质量与总质量的比例,与混合比例 x x x无关。

因此,我们可以得到:
M t ′ ( x ) = a t M M_t'(x)=a_tM Mt(x)=atM
M w ′ ( x ) = a w M M_w'(x)=a_wM Mw(x)=awM
M c ′ ( x ) = a c M M_c'(x)=a_cM Mc(x)=acM
根据题目附件中的数据,我们可以得到:
M t e x p = M t a t x M + e t M_{t_{exp}}=M_ta_txM+e_t Mtexp=MtatxM+et
M w e x p = M t a w x M + e w M_{w_{exp}}=M_ta_wxM+e_w Mwexp=MtawxM+ew
M c e x p = M t a c x M + e c M_{c_{exp}}=M_ta_cxM+e_c Mcexp=MtacxM+ec
因此,我们可以得到:
M t ( x ) = M t e x p − e t a t x M M_t(x)=\frac{M_{t_{exp}}-e_t}{a_txM} Mt(x)=atxMMtexpet
M w ( x ) = M w e x p − e w a w x M M_w(x)=\frac{M_{w_{exp}}-e_w}{a_wxM} Mw(x)=awxMMwexpew
M c ( x ) = M c e x p − e c a c x M M_c(x)=\frac{M_{c_{exp}}-e_c}{a_cxM} Mc(x)=acxMMcexpec
将上面的结果代入到目标函数中,即可得到关于混合比例 x x x的一元二次函数:
f ( x ) = ( M t e x p − e t a t x − M t e x p ) 2 + ( M w e x p − e w a w x − M w e x p ) 2 + ( M c e x p − e c a c x − M c e x p ) 2 f(x)=\left(\frac{M_{t_{exp}}-e_t}{a_tx}-M_{t_{exp}}\right)^2+\left(\frac{M_{w_{exp}}-e_w}{a_wx}-M_{w_{exp}}\right)^2+\left(\frac{M_{c_{exp}}-e_c}{a_cx}-M_{c_{exp}}\right)^2 f(x)=(atxMtexpetMtexp)2+(awxMwexpewMwexp)2+(acxMcexpecMcexp)2
我们可以通过求导等于0来求得最优的混合比例 x ∗ x^* x,即:
x ∗ = arg ⁡ min ⁡ x ∈ [ 0 , 1 ] f ( x ) x^*=\arg\min_{x\in [0,1]}f(x) x=argx[0,1]minf(x)
f ′ ( x ∗ ) = 0 f'(x^*)=0 f(x)=0
因此,我们可以得到:
f ′ ( x ) = ∂ f ( x ) ∂ x = − 2 M t ( x ) M t ′ ( x ) − 2 M w ( x ) M w ′ ( x ) − 2 M c ( x ) M c ′ ( x ) + 2 M t ( x ) M t e x p ′ + 2 M w ( x ) M w e x p ′ + 2 M c ( x ) M c e x p ′ f'(x)=\frac{\partial f(x)}{\partial x}=-2M_t(x)M_t'(x)-2M_w(x)M_w'(x)-2M_c(x)M_c'(x)+2M_t(x)M_{t_{exp}}'+2M_w(x)M_{w_{exp}}'+2M_c(x)M_{c_{exp}}' f(x)=xf(x)=2Mt(x)Mt(x)2Mw(x)Mw(x)2Mc(x)Mc(x)+2Mt(x)Mtexp+2Mw(x)Mwexp+2Mc(x)Mcexp
即:
f ′ ( x ∗ ) = − 2 M t ( x ∗ ) M t ′ ( x ∗ ) − 2 M w ( x ∗ ) M w ′ ( x ∗ ) − 2 M c ( x ∗ ) M c ′ ( x ∗ ) + 2 M t ( x ∗ ) M t e x p ′ + 2 M w ( x ∗ ) M w e x p ′ + 2 M c ( x ∗ ) M c e x p ′ f'(x^*)=-2M_t(x^*)M_t'(x^*)-2M_w(x^*)M_w'(x^*)-2M_c(x^*)M_c'(x^*)+2M_t(x^*)M_{t_{exp}}'+2M_w(x^*)M_{w_{exp}}'+2M_c(x^*)M_{c_{exp}}' f(x)=2Mt(x)Mt(x)2Mw(x)Mw(x)2Mc(x)Mc(x)+2Mt(x)Mtexp+2Mw(x)Mwexp+2Mc(x)Mcexp
所以,我们可以得到:
f ′ ( x ∗ ) = − 2 M t ( x ∗ ) a t M − 2 M w ( x ∗ ) a w M − 2 M c ( x ∗ ) a c M + 2 M t e x p a t M + 2 M w e x p a w M + 2 M c e x p a c M f'(x^*)=-2M_t(x^*)a_tM-2M_w(x^*)a_wM-2M_c(x^*)a_cM+2M_{t_{exp}}a_tM+2M_{w_{exp}}a_wM+2M_{c_{exp}}a_cM f(x)=2Mt(x)atM2Mw(x)awM2Mc(x)acM+2MtexpatM+2MwexpawM+2McexpacM
即:
f ′ ( x ∗ ) = − 2 M a t ( M t ( x ∗ ) − M t e x p ) − 2 M a w ( M w ( x ∗ ) − M w e x p ) − 2 M a c ( M c ( x ∗ ) − M c e x p ) f'(x^*)=-2Ma_t(M_t(x^*)-M_{t_{exp}})-2Ma_w(M_w(x^*)-M_{w_{exp}})-2Ma_c(M_c(x^*)-M_{c_{exp}}) f(x)=2Mat(Mt(x)Mtexp)2Maw(Mw(x)Mwexp)2Mac(Mc(x)Mcexp)
因此,我们可以得到最优的混合比例 x ∗ x^* x为:
x ∗ = arg ⁡ min ⁡ x ∈ [ 0 , 1 ] { − M a t [ M t ( x ) − M t e x p ] 2 − M a w [ M w ( x ) − M w e x p ] 2 − M a c [ M c ( x ) − M c e x p ] 2 } x^*=\arg\min_{x\in [0,1]}\left\{-Ma_t[M_t(x)-M_{t_{exp}}]^2-Ma_w[M_w(x)-M_{w_{exp}}]^2-Ma_c[M_c(x)-M_{c_{exp}}]^2\right\} x=argx[0,1]min{Mat[Mt(x)Mtexp]2Maw[Mw(x)Mwexp]2Mac[Mc(x)Mcexp]2}
即最小化目标函数 g ( x ) g(x) g(x)
g ( x ) = − M a t [ M t ( x ) − M t e x p ] 2 − M a w [ M w ( x ) − M w e x p ] 2 − M a c [ M c ( x ) − M c e x p ] 2 g(x)=-Ma_t[M_t(x)-M_{t_{exp}}]^2-Ma_w[M_w(x)-M_{w_{exp}}]^2-Ma_c[M_c(x)-M_{c_{exp}}]^2 g(x)=Mat[Mt(x)Mtexp]2Maw[Mw(x)Mwexp]2Mac[Mc(x)Mcexp]2
其中 x ∈ [ 0 , 1 ] x\in [0,1] x[0,1]为混合比例, M t ( x ) M_t(x) Mt(x) M w ( x ) M_w(x) Mw(x) M c ( x ) M_c(x) Mc(x)分别为焦油、水和焦渣的质量,与混合比例 x x x相关。 M t e x p M_{t_{exp}} Mtexp M w e x p M_{w_{exp}} Mwexp M c e x p M_{c_{exp}} Mcexp为实验值, a t a_t at a w a_w aw a c a_c ac为理论计算值与实验值之间的系数,可以通过实验数据拟合得到。

下面给出Python代码示例:

import numpy as np #用于数值计算
import pandas as pd #用于数据处理和分析
from scipy.optimize import minimize #用于最小二乘法求解

#读取实验数据
df = pd.read_excel('附件1.xlsx',sheet_name='Sheet1',index_col=0)

m = df.shape[0] #产物种类数量
n = df.shape[1]-1 #原料种类数量

x0 = np.ones((m,n)) #初始化参数矩阵
x = df.values[:,1:] #取出实验数据中的原料质量分数
y = df.values[:,0] #取出实验数据中的产物产率
def fun(x): #定义目标函数
    return np.sum((y-np.dot(x,x0.T))**2) #最小二乘法求解目标函数
res = minimize(fun,x0,method='SLSQP') #调用最小二乘法求解函数
w = res.x.reshape(m,n) #获取最终求解出的参数矩阵

def predict(x): #定义预测函数
    return np.dot(x,w.T) #根据模型进行预测
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

通过调用预测函数,可以得到不同混合比例下的热解产物产率预测值,从而优化共热解的混合比例,提高产物利用率和能源转化效率。

查看完整思路详见:
【腾讯文档】第九届“数维杯”大学生数学建模挑战赛全题目深度剖析建模完整过程+详细思路+代码全解析(持续更新中!)
https://docs.qq.com/doc/DSHd6UHpNZkZoWmxw

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/595274
推荐阅读
相关标签
  

闽ICP备14008679号