Distillation Controller Tuning
This example shows how to use Simulink® Design Optimization™ to optimize the multi-loop controller parameters of a distillation column. The Distillation column produces methanol and is represented as a linear model with delays. The digital multi-loop controller consists a decoupling matrix and two single-loop PI controllers. The parameters of both the single-loop controllers are tuned simultaneously to satisfy a 14 percent overshoot and 13 minute rise-time step response characteristics.
Open the distillation_demo model using the command below and run the simulation. The simulation produces the unoptimized composition of methanol in the column and the initial data for optimization.
Double-click the Scope block to view the unoptimized methanol composition in the top and bottom of the column.
Double-click the Linearized Model of Distillation Column block. Note that this is a subsystem and shows the model for variation of methanol in the top and bottom of the distillation column.
Double-click the Desired Step Response block to view constraints on the step response of the distillation column. These constraints are used to simultaneously tune both of the single-loop controller parameters.
You can launch Response Optimization Tool using the Analysis menu in Simulink, or the sdotool command in MATLAB. You can launch a pre-configured optimization task in Response Optimization Tool by first opening the model and by double-clicking on the orange block at the bottom of the model. From the Response Optimization Tool, press the Plot Model Response button to simulate the model and show how well the initial design satisfies the design requirements.
There are two curves in the plot representing the methanol composition in the top and bottom of the column.
We start the optimization by pressing the Optimize button from the Response Optimization Tool. The plots are updated to indicate that the design requirements are now satisfied.
The two solid curves show the final optimized methanol composition in the top and bottom of the distillation column.
% Close the model bdclose('distillation_demo')