Exemple #1
0
fs.add_connection(column, outlet)

# Process
ssr_binary = Process(fs, name=process_name)

Q = 60 / (60 * 1e6)
# Create Events and Durations
ssr_binary.add_event('feed_on', 'flow_sheet.feed.flow_rate', Q)
ssr_binary.add_event('feed_off', 'flow_sheet.feed.flow_rate', 0.0)
ssr_binary.add_duration('feed_duration', 'feed_on', 'feed_off')

ssr_binary.add_event('inject_on', 'flow_sheet.tank.flow_rate', Q)
ssr_binary.add_event('inject_off', 'flow_sheet.tank.flow_rate', 0.0)

ssr_binary.add_event('eluent_on', 'flow_sheet.eluent.flow_rate', Q)
ssr_binary.add_event_dependency('eluent_on', ['inject_off'])
ssr_binary.add_event('eluent_off', 'flow_sheet.eluent.flow_rate', 0.0)
ssr_binary.add_event_dependency('eluent_off', ['inject_on'])

ssr_binary.add_event('recycle_on', 'flow_sheet.column.output_state', 0)
ssr_binary.add_event('recycle_off', 'flow_sheet.column.output_state', 1)

ssr_binary.add_event_dependency('feed_on', ['inject_off'])
ssr_binary.add_event_dependency('feed_off', ['feed_on', 'feed_duration'],
                                [1, 1])
ssr_binary.add_event_dependency(
    'inject_off', ['inject_on', 'feed_duration', 'recycle_off', 'recycle_on'],
    [1, 1, 1, -1])

# Set process times
ssr_binary.cycle_time = 191.11
fs.add_connection(column, outlet)

# Process
batch_long_ternary = Process(fs, name=process_name)

Q = 60 / (60 * 1e6)

# Create Events and Durations
batch_long_ternary.add_event('feed_on', 'flow_sheet.feed.flow_rate', Q)
batch_long_ternary.add_event('feed_off', 'flow_sheet.feed.flow_rate', 0.0)
batch_long_ternary.add_duration('feed_duration', 'feed_on', 'feed_off')

batch_long_ternary.add_event('eluent_on', 'flow_sheet.eluent.flow_rate', Q)
batch_long_ternary.add_event('eluent_off', 'flow_sheet.eluent.flow_rate', 0.0)

batch_long_ternary.add_event_dependency('eluent_on', ['feed_off'])
batch_long_ternary.add_event_dependency('eluent_off', ['feed_on'])
batch_long_ternary.add_event_dependency('feed_off',
                                        ['feed_on', 'feed_duration'], [1, 1])

batch_long_ternary.cycle_time = 135.134
batch_long_ternary.feed_duration.time = 16.268

if __name__ == '__main__':
    from CADETProcess.simulation import Cadet
    process_simulator = Cadet()
    process_simulator.evaluate_stationarity = True

    batch_long_ternary_sim_results = process_simulator.simulate(
        batch_long_ternary)
    batch_long_ternary_sim_results.save(case_dir)
Exemple #3
0
fs.add_connection(column, outlet)

# Process
lwe = Process(fs, 'lwe')
lwe.cycle_time = 15000.0

## Create Events and Durations
Q = 2.88e-8
feed_duration = 7500.0
gradient_start = 9500.0
gradient_slope = Q / (lwe.cycle_time - gradient_start)

lwe.add_event('feed_on', 'flow_sheet.feed.flow_rate', Q)
lwe.add_event('feed_off', 'flow_sheet.feed.flow_rate', 0.0)
lwe.add_duration('feed_duration', time=feed_duration)
lwe.add_event_dependency('feed_off', ['feed_on', 'feed_duration'], [1, 1])

lwe.add_event('eluent_initialization', 'flow_sheet.eluent.flow_rate', 0)
lwe.add_event('eluent_salt_initialization', 'flow_sheet.eluent_salt.flow_rate',
              0)

lwe.add_event('wash', 'flow_sheet.eluent.flow_rate', Q, time=feed_duration)
lwe.add_event_dependency('wash', ['feed_off'])

lwe.add_event('neg_grad_start', 'flow_sheet.eluent.flow_rate',
              [Q, -gradient_slope], gradient_start)
lwe.add_event('pos_grad_start', 'flow_sheet.eluent_salt.flow_rate',
              [0, gradient_slope])
lwe.add_event_dependency('pos_grad_start', ['neg_grad_start'])

if __name__ == '__main__':
Exemple #4
0
fs.add_connection(column_2, outlet_2)

# Process
serial_ternary = Process(fs, name=process_name)

Q = 60 / (60 * 1e6)

# Create Events and Durations
serial_ternary.add_event('feed_on', 'flow_sheet.feed.flow_rate', Q)
serial_ternary.add_event('feed_off', 'flow_sheet.feed.flow_rate', 0.0)
serial_ternary.add_duration('feed_duration', 'feed_on', 'feed_off')

serial_ternary.add_event('eluent_1_on', 'flow_sheet.eluent_1.flow_rate', Q)
serial_ternary.add_event('eluent_1_off', 'flow_sheet.eluent_1.flow_rate', 0.0)

serial_ternary.add_event_dependency('eluent_1_on', ['feed_off'], [1])
serial_ternary.add_event_dependency('eluent_1_off', ['feed_on'], [1])
serial_ternary.add_event_dependency('feed_off', ['feed_on', 'feed_duration'],
                                    [1, 1])

serial_ternary.add_event('serial_on', 'flow_sheet.column_1.output_state', 1)
serial_ternary.add_event('serial_off', 'flow_sheet.column_1.output_state', 0)

serial_ternary.add_event('eluent_2_on', 'flow_sheet.eluent_2.flow_rate', Q)
serial_ternary.add_event('eluent_2_off', 'flow_sheet.eluent_2.flow_rate', 0.0)

serial_ternary.add_event_dependency('eluent_2_on', ['serial_off'], [1])
serial_ternary.add_event_dependency('eluent_2_off', ['serial_on'], [1])

# Set process times
serial_ternary.cycle_time = 210.121