A computational framework for integrating campaign scheduling, dynamic optimization and optimal control in multi-unit batch processes. (5th December 2017)