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) from CADETProcess.fractionation import optimize_fractionation batch_long_ternary_frac = optimize_fractionation( batch_long_ternary_sim_results.chromatograms, batch_long_ternary.process_meta, purity_required=[0, 0.95, 0]) batch_long_ternary_frac.save(case_dir)
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 ssr_binary.feed_duration.time = 42.956 ssr_binary.recycle_on.time = 354.081 ssr_binary.recycle_off.time = 358.552 if __name__ == '__main__': from CADETProcess.simulation import Cadet process_simulator = Cadet() process_simulator.evaluate_stationarity = True process_simulator.n_cycles_min = 4 ssr_binary_sim_results = process_simulator.simulate(ssr_binary) ssr_binary_sim_results.save(case_dir) from CADETProcess.fractionation import optimize_fractionation ssr_binary_frac = optimize_fractionation( ssr_binary_sim_results.chromatograms, ssr_binary.process_meta, purity_required=0.95) ssr_binary_frac.save(case_dir)
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 serial_ternary.feed_duration.time = 45.859 serial_ternary.serial_on.time = 119.017 serial_ternary.serial_off.time = 47.634 if __name__ == '__main__': from CADETProcess.simulation import Cadet process_simulator = Cadet() process_simulator.evaluate_stationarity = True serial_ternary_sim_results = process_simulator.simulate(serial_ternary) serial_ternary_sim_results.save(case_dir) from CADETProcess.fractionation import optimize_fractionation serial_ternary_frac = optimize_fractionation( serial_ternary_sim_results.chromatograms, serial_ternary.process_meta, purity_required=[0.95, 0.95, 0]) serial_ternary_frac.save(case_dir)