process_simulator.evaluate_stationarity = True

ranking = [1, 1, 1]
purity_required = [0.95, 0.95, 0.95]
evaluator = ProcessEvaluator(process_simulator, purity_required, ranking)

optimization_problem = OptimizationProblem(batch_long_ternary,
                                           evaluator,
                                           name='case_2a',
                                           save_log=True)


def objective_function(performance):
    ranked = RankedPerformance(performance, ranking)
    return -ranked.productivity * ranked.recovery * ranked.eluent_consumption


optimization_problem.objective_fun = objective_function

optimization_problem.add_variable('cycle_time', lb=10, ub=1200)
optimization_problem.add_variable('feed_duration.time', lb=10, ub=100)

optimization_problem.add_linear_constraint(
    opt_vars=['feed_duration.time', 'cycle_time'], factors=[1, -1], b=0)

if __name__ == "__main__":
    from CADETProcess.optimization import DEAP as Solver

    opt_solver = Solver()
    results = opt_solver.optimize(optimization_problem, save_results=True)
Esempio n. 2
0
fractionation_optimizer = FractionationOptimizer(purity_required,
                                                 fractionation_objective)

evaluator = ProcessEvaluator(process_simulator, fractionation_optimizer)

optimization_problem = OptimizationProblem(batch_binary,
                                           evaluator,
                                           save_log=True)


def objective_function(performance):
    performance = RankedPerformance(performance, ranking)
    return -performance.mass * performance.recovery * performance.eluent_consumption


optimization_problem.add_objective(objective_function)

optimization_problem.add_variable('cycle_time', lb=10, ub=600)
optimization_problem.add_variable('feed_duration.time', lb=10, ub=300)

optimization_problem.add_linear_constraint(
    ['feed_duration.time', 'cycle_time'], [1, -1])

if __name__ == "__main__":
    from CADETProcess.optimization import DEAP as Solver

    opt_solver = Solver()
    results = opt_solver.optimize(optimization_problem,
                                  save_results=True,
                                  use_multicore=False)