2021年全国大学生数学建模竞赛B题乙醇偶合制备烯烃(含word论文和源代码资源)

一、部分题目

2021 年高教社杯全国大学生数学建模竞赛题目

B 题 乙醇偶合制备 C4 烯烃

C4 烯烃广泛应用于化工产品及医药的生产,乙醇是生产制备 C4 烯烃的原料。 在制备过程中,催化剂组合(即:Co 负载量、Co/SiO2 和 HAP 装料比、乙醇浓度 的组合)与温度对 C4 烯烃的选择性和 C4 烯烃收率将产生影响(名词解释见附录)。 因此通过对催化剂组合设计,探索乙醇催化偶合制备 C4 烯烃的工艺条件具有非常 重要的意义和价值。

某化工实验室针对不同催化剂在不同温度下做了一系列实验,结果如附件 1 和 附件 2 所示。请通过数学建模完成下列问题:

问题1 对附件 1 中每种催化剂组合,分别研究乙醇转化率、C4 烯烃的选择性与温 度的关系,并对附件 2 中 350 度时给定的催化剂组合在一次实验不同时间的测试结 果进行分析。

问题2 探讨不同催化剂组合及温度对乙醇转化率以及 C4 烯烃选择性大小的影响。

问题3 如何选择催化剂组合与温度,使得在相同实验条件下 C4 烯烃收率尽可能 高。若使温度低于 350 度,又如何选择催化剂组合与温度,使得 C4 烯烃收率尽可 能高。

问题4 如果允许再增加 5 次实验,应如何设计,并给出详细理由。

二、部分论文

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

三、部分源代码

问题1

clear;

X = [20 70 110 163 197 240 273];

YC = [43.5 	37.8 	36.6 	32.7 	31.7 	29.9 	29.9];

YY = [];

a=29.04;
b=18.15;
c=0.01;


for s=1:length(X)
    x=X(s);
    YY(s) = a + b*exp(-c*x);
end

          
plot(X, YC, '.', 'Markersize', 20);
hold on;
plot(X, YY, 'linewidth', 2);
xlabel('温度/°C');
ylim([28 46]);
ylabel('乙醇转换率/%');
title('乙醇转换率与温度曲线拟合')
legend('实际值', '拟合曲线');




clear;

X = [20 70 110 163 197 240 273];

YX = [4.23	4.28	4.46	4.63	4.62	4.76	4.68
];

YY = [];

a=-7.95E-8;
b=2.91E-5;
c=-2.76E-4;
d=4.22;


for s=1:length(X)
    x=X(s);
    YY(s) = a*x^3+b*x^2+c*x+d;
end

          
plot(X, YX, '.', 'Markersize', 20);
hold on;
plot(X, YY, 'linewidth', 2);
xlabel('温度/°C');
%ylim([28 46]);
ylabel('乙烯选择性');
title('乙烯选择性与温度曲线拟合')
legend('实际值', '拟合曲线');




clear;
X = [20 70 110 163 197 240 273];

YX = [4.23	4.28	4.46	4.63	4.62	4.76	4.68
];

k = 94.98;
a=20;
b =0;

k=1;
a=1;
b=1;

YY = [];

for s=1:length(X)
    x=X(s);
    f = k/(1+a*exp(-b*x));
    YY(s) = f;
end


plot(X, YX, '*');

问题3

clear;


X1 = 190 : 1 : 200;      % Co负载量
X2 = 10 : 1 : 20;      % HAP质量
X3 = 2 : 0.01 : 3;       % 质量比
X4 = 0.3 : 0.01 : 2.1;     % 乙醇浓度
X5 = 340 : 1 : 350;     % 温度


maxq = 4980.8;
Z_arr = [];

Z_X1 = [];
Z_X2 = [];
Z_X3 = [];
Z_X4 = [];
Z_X5 = [];

n=0;
Index = [];

% x2 负相关
% x1 正相关

for i1=1:length(X1)
    x1 = X1(i1);
    for i2=1:length(X2)
        x2 = X2(i2);
        for i3=1:length(X3)
            x3 = X3(i3);
            for i4=1:length(X4)
                x4 = X4(i4);
                for i5=1:length(X5)
                    x5 = X5(i5);
                    
                    z = 0.018*x5 + 0.035*x1 - 0.039*x2 - 0.19*x3*x3 + 0.007*x2*x4 - ...
                        0.002*x4*x5 + 0.816*x3 - 8.015;
                    zz = 5000*exp(z)/(1+exp(z));
                    if (zz > maxq)
                        n=n+1;
                        Z_X1(n) = x1;
                        Z_X2(n) = x2;
                        Z_X3(n) = x3;
                        Z_X4(n) = x4;
                        Z_X5(n) = x5;
                        Index(n) = n;
                        Z_arr(n) = zz;
                    end
                end
            end
        end
    end
end

[maxValue, index] = max(Z_arr);
scatter(Index, Z_arr, 8, 'b');
xlabel('序号');
ylabel('目标值');
title('各个目标值');
Z_X1(index)
Z_X2(index)
Z_X3(index)
Z_X4(index)
Z_X5(index)




clear;

maxq = 4960;
Z_arr = [];

Z_X1 = [];
Z_X2 = [];
Z_X3 = [];
Z_X4 = [];
Z_X5 = [];

n=0;
Index = [];

left1 = 10;
right1 = 200;
mid1 = 0;

left2 = 10;
right2 = 200;
mid2 = 0;

left4 = 0.3;
right4 = 2.1;
mid4 = 0;


left5 = 250;
right5 = 350;
mid5 = 0;


X3 = 0.5 : 0.1 : 5;       % 质量比

for i1=1:20
    mid1 = right1 - (right1-left1)/2;
    x1 = mid1;
    left1 = mid1;   
    mid2 = left2 + (right2-left2)/2;
    x2 = mid2;
    right2 = mid2;        
    mid4 = left4 + (right4-left4)/2;
    x4 = mid4;
    right4 = mid4;
    mid5 = right5 - (right5-left5)/2;
    x5 = mid5;
    left5 = mid5;
        for i3=1:length(X3)
            x3 = X3(i3);
            z = 0.018*x5 + 0.035*x1 - 0.039*x2 - 0.19*x3*x3 + 0.007*x2*x4 - ...
                0.002*x4*x5 + 0.816*x3 - 8.015;
            zz = 5000*exp(z)/(1+exp(z));
            if (zz > maxq)
                n=n+1;
                Z_X1(n) = x1;
                Z_X2(n) = x2;
                Z_X3(n) = x3;
                Z_X4(n) = x4;
                Z_X5(n) = x5;
                Index(n) = n;
                Z_arr(n) = zz;
            end
        end
    end


[maxValue, index] = max(Z_arr);
scatter(Index, Z_arr, 8, 'b');
xlabel('序号');
ylabel('目标值');
title('各个目标值');
Z_X1(index)
Z_X2(index)
Z_X3(index)
Z_X4(index)
Z_X5(index)



四、完整word论文和源代码

请添加图片描述

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

亦是远方

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

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

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

打赏作者

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

抵扣说明:

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

余额充值