示例#1
0
        if int(sys.argv[1]):
            with_plots = False

    # read 500x2 S matrix
    wl_span = np.arange(180, 230, 10)
    S_parameters = Lorentzian_parameters()
    S_frame = generate_absorbance_data(wl_span, S_parameters)

    # components
    concentrations = {'A': 1, 'B': 0}
    # create template model
    builder = TemplateBuilder()
    builder.add_mixture_component(concentrations)
    builder.add_parameter('k', 0.1)
    builder.add_absorption_data(S_frame)
    builder.add_measurement_times([i for i in range(0, 50, 10)])

    dataDirectory = os.path.abspath(
        os.path.join(
            os.path.dirname(
                os.path.abspath(inspect.getfile(inspect.currentframe()))),
            '..', 'data_sets'))
    # filename =  os.path.join(dataDirectory,'Dij_case52a.txt')
    filename = os.path.join(dataDirectory, 'Sij_small.txt')

    write_absorption_data_to_txt(filename, S_frame)

    # define explicit system of ODEs
    def rule_odes(m, t):
        exprs = dict()
        exprs['A'] = -m.P['k'] * m.Z[t, 'A']
示例#2
0
            os.path.dirname(
                os.path.abspath(inspect.getfile(inspect.currentframe()))),
            '..', '..', 'data_sets'))
    filename = os.path.join(dataDirectory, 'Slk_case51a.txt')
    S_frame = read_absorption_data_from_txt(filename)

    # create template model
    builder = TemplateBuilder()
    builder.add_mixture_component('A', 1)
    builder.add_mixture_component('B', 0)
    builder.add_mixture_component('C', 0)
    builder.add_parameter('k1', 2.0)
    builder.add_parameter('k2', 0.2)
    # includes absorption data in the template and defines measurement sets
    builder.add_absorption_data(S_frame)
    builder.add_measurement_times([i * 0.0333 for i in range(300)])

    # define explicit system of ODEs
    def rule_odes(m, t):
        exprs = dict()
        exprs['A'] = -m.P['k1'] * m.Z[t, 'A']
        exprs['B'] = m.P['k1'] * m.Z[t, 'A'] - m.P['k2'] * m.Z[t, 'B']
        exprs['C'] = m.P['k2'] * m.Z[t, 'B']
        return exprs

    builder.set_odes_rule(rule_odes)

    # create an instance of a pyomo model template
    # the template includes
    #   - Z variables indexed over time and components names e.g. m.Z[t,'A']
    #   - C variables indexed over measurement t_i and components names e.g. m.C[t_i,'A']
示例#3
0
    # this defines the measurement points t_i and l_j as well
    dataDirectory = os.path.abspath(
        os.path.join(
            os.path.dirname(
                os.path.abspath(inspect.getfile(inspect.currentframe()))),
            '..', '..', 'data_sets'))
    filename = os.path.join(dataDirectory, 'Slk_sawall.txt')
    S_frame = read_absorption_data_from_txt(filename)

    # create template model
    builder = TemplateBuilder()
    builder.add_mixture_component({'A': 1, 'B': 0})
    builder.add_parameter('k', 0.01)
    # includes spectra data in the template and defines measurement sets
    builder.add_absorption_data(S_frame)
    builder.add_measurement_times([i for i in range(200)])

    # define explicit system of ODEs
    def rule_odes(m, t):
        exprs = dict()
        exprs['A'] = -m.P['k'] * m.Z[t, 'A']
        exprs['B'] = m.P['k'] * m.Z[t, 'A']
        return exprs

    builder.set_odes_rule(rule_odes)

    # create an instance of a casadi model template
    # the template includes
    #   - Z variables indexed over time and components names e.g. m.Z[t,'A']
    #   - C variables indexed over measurement t_i and components names e.g. m.C[t_i,'A']
    #   - P parameters indexed over the parameter names m.P['k']
示例#4
0
    builder.add_parameter(params)

    def rule_odes(m,t):
        exprs = dict()
        exprs['A'] = -m.P['k1']*m.Z[t,'A']
        exprs['B'] = m.P['k1']*m.Z[t,'A']-m.P['k2']*m.Z[t,'B']
        exprs['C'] = m.P['k2']*m.Z[t,'B']
        exprs['D'] = -m.P['k3']*m.Z[t,'D']
        exprs['E'] = m.P['k3']*m.Z[t,'D']
        return exprs


    builder.set_odes_rule(rule_odes)

    builder.add_measurement_times([i for i in frange(0., 10., 0.1)])
    
    #Add time points where feed as discrete jump should take place:
    #feed_times=[101.035, 303.126]#, 400.
    #builder.add_feed_times(feed_times)

    model = builder.create_pyomo_model(0, 10)
    
    builder.add_absorption_data(S_frame)
    write_absorption_data_to_txt('Sij_multexp1.txt', S_frame)

    model = builder.create_pyomo_model(0., 10.) 

    #=========================================================================
    #USER INPUT SECTION - FE Factory
    #=========================================================================
示例#5
0
                      (210.0 - m.Y[t, '5']) /
                      ((210.0 - m.Y[t, '5'])**2 + eta**2)**0.5)
        exprs['V'] = 7.27609e-05 * step
        V = m.X[t, 'V']
        # mass balances
        for c in m.mixture_components:
            exprs[c] = gammas[c][0] * m.Y[t, '0'] + gammas[c][1] * m.Y[
                t, '1'] + gammas[c][2] * m.Y[t, '2'] + gammas[c][3] * m.Y[
                    t, '3'] + gammas[c][4] * m.Y[
                        t, '4'] - exprs['V'] / V * m.Z[t, c]
            if c == 'C':
                exprs[c] += 0.02247311828 / (m.X[t, 'V'] * 210) * step
        return exprs

    builder.set_odes_rule(rule_odes)
    builder.add_measurement_times([i for i in frange(0., 600., 2.)])

    #Add time points where feed as discrete jump should take place:
    feed_times = [101.035, 303.126]  #, 400.
    builder.add_feed_times(feed_times)

    model = builder.create_pyomo_model(0, 600.)

    builder.add_absorption_data(S_frame)
    write_absorption_data_to_txt('Sij_FEcaseexample5-2.txt', S_frame)

    model = builder.create_pyomo_model(0., 600.)

    #=========================================================================
    #USER INPUT SECTION - FE Factory
    #=========================================================================