CO2已知质量分数求摩尔分数求解计算,MEA吸收CO2


# -*- coding: utf-8 -*-
"""
Created on Wed Jan 13 14:20:38 2021

@author: xujifa
"""
from sympy import *
import numpy as np

''' 待求解方程:61.08x/(61.08x+18.02*(1-x-0.15*x)) = 0.3
61.08x/(61.08x+18.02*(1-x-0.15*x))-0.3 = 0
其中0.3表示mea的质量分数为0.3
0.15*x中的0.15表示co2的负载为0.15mol/mol,y/x = 0.15
x表示mea的摩尔分数
61.08为mea的分子量
18.02为h2o的分子量
44.009 为co2的分子量
'''
#q = 0.27  #co2的负载
#mf =0.288 #mea的质量浓度
print('1 → MEA质量浓度为变量\n2 → co2的负载为变量\n3 → 负荷和浓度为一个数,无变量')
dec = eval(input('请选择变量(输入对应数字):'))
if dec == 1:
    q = eval(input('请输入co2的负载'))
    mf1 = eval(input('请输入MEA质量分数的 最小值'))
    mf2 = eval(input('请输入MEA质量分数的 最大值'))
    mf3 = eval(input('请输入MEA质量分数的 间距'))
    mf = np.arange(mf1,mf2+mf3,mf3)
    a = np.zeros([len(mf),3]) #用来储存摩尔分数
    
    for li in range(len(mf)):
        x = symbols('x')
        print('MEA的质量分数为:',mf[li])
        print('co2的负荷为:',q)
        z = solve(61.08*x/(61.08*x+18.02*(1-x-q*x)) - mf[li], x)
        mmea = round(z[0],4)
        mco2 = round(mmea*q,4)
        mh2o = 1-mmea-mco2

        
        a[li,0] = mmea
        a[li,1] = mh2o
        a[li,2] = mco2
    print('共------%s------个工况'%(len(mf)))
    print('计算的摩尔分数如下:')
    print('1 → mea,2 → H2O,3 → CO2')
    print(a)


elif dec ==2:
    q = eval(input('请输入MEA的质量分数'))
    mf1 = eval(input('请输入co2负载的 最小值'))
    mf2 = eval(input('请输入co2负载的 最大值'))
    mf3 = eval(input('请输入co2负载的 间距'))
    mf = np.arange(mf1,mf2+mf3,mf3)
    a = np.zeros([len(mf),3]) #用来储存摩尔分数

    for li in range(len(mf)):
        print('MEA的质量分数为:',q)
        print('co2的负荷为:',mf[li])
        x = symbols('x')
        z = solve(61.08*x/(61.08*x+18.02*(1-x-mf[li]*x)) - q, x)
        mmea = round(z[0],4)
        mco2 = round(mmea*mf[li],4)
        mh2o = round(1-mmea-mco2,4)

        
        a[li,0] = mmea
        a[li,1] = mh2o
        a[li,2] = mco2
    print('共------%s------个工况'%(len(mf)))
    print('计算的摩尔分数如下:')
    print('1 → mea,2 → H2O,3 → CO2')
    print(a)

else:
    q = eval(input('请输入co2的负载'))  #co2的负载
    mf = eval(input('请输入MEA的质量浓度'))  #mea的质量浓度
    x = symbols('x')
    z = solve(61.08*x/(61.08*x+18.02*(1-x-q*x)) - mf, x)
    
    '''保留4位小数'''
    mea = round(z[0],4)
    co2 = round(mea*q,4)
    h2o = 1-mea-co2
    print('mea的摩尔分数为:',mea)
    print('co2的摩尔分数为:',co2)
    print('h2o的摩尔分数为:',h2o)

    

#'''保留4位小数'''
#mea = round(z[0],4)
#co2 = round(mea*q,4)
#h2o = round(1-mea-co2,4)
#print('mea的摩尔分数为:',mea)
#print('co2的摩尔分数为:',co2)
#print('h2o的摩尔分数为:',h2o)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值