Exemplo n.º 1
0
 def P_sat_rule1(block, i):
     if i in m.COMP_PARAFFIN:
         n_n0 = cal_cnumber(i) - e.nonhenry.n0_paraffin
     elif i in m.COMP_OLEFIN:
         n_n0 = cal_cnumber(i) - e.nonhenry.n0_olefin
     return block.P_sat_Y[i] == e.nonhenry.Y_inf_0 + block.P_sat_dY_inf*(n_n0) \
                 - block.P_sat_dY0*pe.exp(-e.nonhenry.beta*(n_n0)**e.nonhenry.gamma)
Exemplo n.º 2
0
 def V_L_nonHen_rule(block, i):
     if i in m.COMP_PARAFFIN:
         n_n0 = cal_cnumber(i) - e.V_L_nonhenry.n0_paraffin
         n_n0_ = cal_cnumber(i) + e.V_L_nonhenry.n0_paraffin
     elif i in m.COMP_OLEFIN:
         n_n0 = cal_cnumber(i) - e.V_L_nonhenry.n0_olefin
         n_n0_ = cal_cnumber(i) + e.V_L_nonhenry.n0_olefin
     return block.V_L[i] == e.V_L_nonhenry.Y_inf_0 + block.V_L_dY_inf*(n_n0) \
                 - block.V_L_dY0*pe.exp(-e.V_L_nonhenry.beta*(n_n0_)**e.V_L_nonhenry.gamma)
Exemplo n.º 3
0
def trans_cnumber(dic):
    molefraction = {}
    for i in cnumber_range:
        molefraction[i] = []
    for i in m.COMP_ORG:
        molefraction[cal_cnumber(i)].append(np.array(dic[i]))
    for i in cnumber_range:
        molefraction[i] = np.sum(molefraction[i], 0)
    tmp = []
    for i in cnumber_range:
        tmp.append(molefraction[i])
    return tmp
Exemplo n.º 4
0
def trans_cnumber(dic):
    molefraction = {}
    for i in range(1, 57):
        molefraction[i] = []
    for i in m.COMP_ORG:
        molefraction[cal_cnumber(i)].append(np.array(dic[i]))
    for i in range(1, 57):
        molefraction[i] = np.sum(molefraction[i], 0)
    length = len(molefraction[1])
    tmp = {}
    for j in range(length):
        tmp[j] = []
        for i in range(1, 57):
            tmp[j].append(molefraction[i][j])
    return tmp
Exemplo n.º 5
0
 def n_ave_rule(block):
     return block.n_ave_cal == sum(block.parent_block().x[i]*cal_cnumber(i) for i in m.COMP_PARAFFIN | \
             m.COMP_OLEFIN)/(1-sum(block.parent_block().x[i] for i in m.COMP_INORG))
Exemplo n.º 6
0
 def gamma_rule(block, i):
     return pe.log(block.gamma[i])*(block.n_ave - cal_cnumber('C6H14')) == \
             pe.log(block.gamma_ref)*(block.n_ave - cal_cnumber(i))
Exemplo n.º 7
0
def trans_product_mole(dic):
    product = {}
    product['c1'] = [i for i in m.COMP_ORG if cal_cnumber(i) == 1]
    product['c2'] = [i for i in m.COMP_ORG if cal_cnumber(i) == 2]
    product['c3'] = [i for i in m.COMP_ORG if cal_cnumber(i) == 3]
    product['c4'] = [i for i in m.COMP_ORG if cal_cnumber(i) == 4]
    product['napha'] = [
        i for i in m.COMP_ORG if cal_cnumber(i) >= 5 and cal_cnumber(i) <= 7
    ]
    product['gasoline'] = [
        i for i in m.COMP_ORG if cal_cnumber(i) >= 8 and cal_cnumber(i) <= 12
    ]
    product['diesel'] = [
        i for i in m.COMP_ORG if cal_cnumber(i) >= 13 and cal_cnumber(i) <= 18
    ]
    product['heavy'] = [
        i for i in m.COMP_ORG if cal_cnumber(i) >= 19 and cal_cnumber(i) <= 56
    ]

    # compute mole flow rate
    dataset = {}
    for c in product.keys():
        for i in product[c]:
            tmp = np.array([np.array(dic[i]) for i in product[c]])
            dataset[c] = np.sum(tmp, 0)

    # compute mole % scaled
    dataset_scaled = copy.deepcopy(dataset)
    scale_factor = 1 / sum(dataset_scaled[i] for i in dataset_scaled.keys())
    for i in dataset_scaled.keys():
        dataset_scaled[i] = dataset_scaled[i] * scale_factor

    return {'unscaled': dataset, 'scaled': dataset_scaled}
Exemplo n.º 8
0
m = pe.ConcreteModel()

m.COMP_OLEFIN = pe.Set(initialize=['C{0}H{1}'.format(i,2*i) for i in range(2,21)],ordered=True)
m.COMP_PARAFFIN = pe.Set(initialize=['C{0}H{1}'.format(i,2*i+2) for i in range(1,57)],ordered=True)
m.COMP_INORG = pe.Set(initialize=['H2','CO','CO2','H2O'],ordered=True)
m.COMP_ORG = m.COMP_OLEFIN | m.COMP_PARAFFIN
m.COMP_TOTAL = m.COMP_INORG | m.COMP_OLEFIN | m.COMP_PARAFFIN

m.COMP_FEED = pe.Set(initialize=['H2','CO','C30H62'],ordered=True)
# m.COMP_FEED = m.COMP_INORG | m.COMP_OLEFIN | m.COMP_PARAFFIN

'''
Sort components based on boiling point
'''
product_boiling_C = [(i,Tb[i]) for i in m.COMP_ORG]
def pick_comp(x):
    return x[1]
m.COMP_SORTED_BP = pe.Set(initialize=[i for i,T in sorted(product_boiling_C,key =pick_comp )],ordered=True)

'''
Product definition
'''
m.PRODUCT = pe.Set(initialize=['naphtha','gasoline','diesel','heavy','intermediate'],ordered=True)
m.PRODUCT_cnumber = pe.Set(m.PRODUCT)
m.PRODUCT_cnumber['naphtha'] = [i for i in m.COMP_ORG if cal_cnumber(i) >= 5 and cal_cnumber(i) <= 7]
m.PRODUCT_cnumber['gasoline'] = [i for i in m.COMP_ORG if cal_cnumber(i) >= 8 and cal_cnumber(i) <= 12]
m.PRODUCT_cnumber['diesel'] = [i for i in m.COMP_ORG if cal_cnumber(i) >= 13 and cal_cnumber(i) <= 18]
m.PRODUCT_cnumber['heavy'] = [i for i in m.COMP_ORG if cal_cnumber(i) >= 19 and cal_cnumber(i) <= 56]
m.PRODUCT_cnumber['intermediate'] = [i for i in m.COMP_ORG if cal_cnumber(i) >= 1 and cal_cnumber(i) <= 56]