Main Content

Design Optimization to Meet Custom Signal Requirements (GUI)

This example shows how to optimize a design to meet a custom signal requirement. You optimize the controller parameters to minimize the plant actuation signal energy while satisfying step response requirements.

Load a saved Response Optimizer session.

load sldo_model1_custom_signal_session
sdotool(SDOSessionData);

Model with a PID controller and a plant in a feedback loop with a unit step input

The Response Optimizer, configured with the following settings, also opens:

  1. Step response characteristics, specified on the output of the Plant block, that the model output must satisfy:

  • Maximum overshoot of 5%

  • Maximum rise time of 10 seconds

  • Maximum settling time of 30 seconds

2. Design variable set with the controller parameters Kp, Ki, and Kd. These parameters have a minimum value of 0.

3. The variables for step requirements (PlantResponse), logged signal (PlantOutput) and design variables (DesignVars) which appear in the Data area.

Response optimizer app with the Data area prepopulated on the left and a plot tab showing the bounds

Specify a signal to log. You apply the custom requirement on this logged signal.

  1. Select New > Signal. A window opens where you select a signal to log.

  2. In the Simulink model window, click the output of the Controller block. The window updates to display the selected signal.

  3. In Signal set, enter PlantActuator. Click OK. A new variable PlantActuator appears in the Data area.

Specify the custom requirement to apply to the signal. The custom requirement calls the objective function sldo_model1_minimize_energy which returns the energy in the PlantActuator signal. The signal energy is minimized. This function accepts:

  • An input argument data which is a structure with fields for the design variables in the Data area. Signals are logged for the nominal and uncertain parameter values if there are any.

  • Returns the objective value to be minimized.

To see the contents of this function, type edit sldo_model1_minimize_energy.

Create the custom requirement.

  1. Select New > Custom Requirement. A window opens where you specify the custom requirement.

  2. Specify MinimizeEnergy as the Name.

  3. Specify @sldo_model1_minimize_energy as the Function.

  4. Select Minimize the function output as the Type.

Create Requirement dialog box with the specified values entered

In the Select Signals and Systems to Bound area, select the PlantActuator check box to associate the custom requirement with that signal.

PlantActuator check box selected

Click OK. A new variable appears in the Data area of the app. The window also updates to graphically display the custom signal requirement.

To optimize the model response, click Optimize.

Optimize is highlighted in the Response Optimization tab in the Response Optimizer app

After a few iterations, the optimization converges to meet both the custom signal and step response requirements.

Optimization Progress Report showing the F-count, MinimizeEnergy, and PlantResponse for every iteration

Close the model.

setOption(sdotool('sldo_model1'),'NoPromptClose',true)
bdclose('sldo_model1')

Related Topics