Controller Tuning in Simulink with LOOPTUNE
The looptune command provides a quick way to tune MIMO feedback loops. When the
control system is modeled in Simulink, you just specify the tuned blocks, the control and
measurement signals, and the desired bandwidth, and looptune automatically sets up
the problem and tunes the controller parameters. looptune shapes the open-loop
response to provide integral action, roll-off, and adequate MIMO stability margins.
Use the slTuner interface to specify the tuned blocks, the controller I/Os, and signals of
interest for closed-loop validation.
ST0 = slTuner('rct_distillation',{'PI_L','PI_V','DM'});
% Signals of interest
addPoint(ST0,{'r','dL','dV','L','V','y'})
Set the control bandwidth by specifying the gain crossover frequency for the open-loop
response. For a response time of 4 minutes, the crossover frequency should be
approximately 2/4 = 0.5 rad/min.
wc = 0.5;
Use TuningGoal objects to specify the remaining control objectives. The response to a
step command should have less than 15% overshoot. The response to a step disturbance
at the plant input should be well damped, settle in less than 20 minutes, and not exceed 4
in amplitude.
OS = TuningGoal.Overshoot('r','y',15);
DR = TuningGoal.StepRejection({'dL','dV'},'y',4,20);
Next use looptune to tune the controller blocks PI_L, PI_V, and DM subject to the
disturbance rejection requirement.
Controls = {'L','V'};
Measurements = 'y';
[ST,gam,Info] = looptune(ST0,Controls,Measurements,wc,OS,DR);
Final: Peak gain = 0.986, Iterations = 52
Achieved target gain value TargetGain=1.
The final value is near 1 which indicates that all requirements were met. Use loopview
to check the resulting design. The responses should stay outside the shaded areas.
Decoupling Controller for a Distillation Column