Simulink Control Design

Linearize models and design control systems

Simulink Control Design™ lets you design and analyze control systems modeled in Simulink®. You can automatically tune arbitrary SISO and MIMO control architectures, including PID controllers. PID autotuning can be deployed to embedded software for automatically computing PID gains in real time.

You can find operating points and compute exact linearizations of Simulink models at various operating conditions. Simulink Control Design provides tools that let you compute simulation-based frequency responses without modifying your model.

Get Started:

PID Control

Automatically tune PID controllers in a Simulink model

Model-Based PID Tuning

Use the PID Tuner app to automatically linearize Simulink models and compute gains of PID Controller blocks with a single click. You can interactively refine controller performance by adjusting bandwidth (speed of response) and phase margin(robustness) to meet design requirements.

Estimation of Plant Dynamics from Simulation Data

For Simulink models that do not linearize due to discontinuities such as pulse width modulation (PWM), use the PID Tuner app to create a linear plant model from simulation input-output data using system identification (requires System Identification Toolbox™).  Alternatively, automatically tune PID controller gains based on an estimated frequency response of your plant model.

Real-Time PID Autotuning

Use the Closed-Loop PID Autotuner block to automatically tune PID gains in real-time, based on plant frequency responses estimated from hardware experiments. Generate C code to implement the tuning algorithm in embedded software. Conduct real-time experiments on plant hardware and automatically compute PID controller gains without Simulink in the loop(requires Simulink Coder™ ).

Compensator Design

Tune SISO control loops directly in Simulink using the graphical and automated tuning tools

Interactive Design

Model an arbitrary control structure in your Simulink model by using Gain, Transfer Function, State-Space, PID controller, and other tunable blocks. Graphically tune discrete or continuous loops by using root locus plots, Bode diagrams, and Nichols charts. Update Simulink model with tuned gains and verify your design using simulation.

Multiloop Design

Interactively tune controllers with multiple SISO loops and specify loop openings without modifying your Simulink model. You can visualize loop interactions and coupling effects while tuning parameters to optimize overall performance.

Bode design for multiloop controllers

Automated Tuning

Automatically tune decentralized controllers modeled in Simulink to meet design requirements.

SISO and MIMO Loops

Automatically tune arbitrary SISO and MIMO control structures using the Control System Tuner app or command-line functions. You can tune decentralized control architectures with simple tunable elements such as gains, PID controllers, or low-order filters. You can also jointly tune several loops in a multiloop control system in Simulink.

Time and Frequency Doman Objectives

Specify and visualize tuning requirements such as reference tracking goals, sensitivity goals, disturbance rejection, closed-loop pole locations, and stability margins. Automatically tune controller parameters to satisfy these must-have requirements (design constraints) and to best meet the remaining requirements (objectives).

Tuning Against a Set of Plant Models

Linearize Simulink models across different operating points, parameter variations, and failure conditions to create a set of linear plant models. Then, tune the control system to meet performance objectives for all those plant models.

Creating linear plant models with parameter variations


Compute linear approximation of a nonlinear Simulink model

Linear Analysis

Linearize continuous, discrete, and multirate Simulink models. Use the Linear Analysis Tool or command line functions to specify loop openings and linearization inputs and outputs. You can linearize the whole model, a portion of the model, or a single block or subsystem. Visualize the results in a step-response plot or Bode diagram and compute open-loop and closed-loop responses.

Linearization Across Operating Points and Parameter Variations

Extract and analyze multiple linearizations for a model; vary parameter values, operating points, I/O sets; implement linear parameter varying (LPV) models.

Linearization Advisor

Identify and fix common linearization issues using Linearization Advisor. You can find blocks on the linearization path and isolate blocks with specified linearization behavior, such as blocks that have linearized to zero.

Diagnose linearization issues with Linearization Adviser

Frequency Response Estimation

Estimate and examine frequency domain characteristics of Simulink models or physical plants

Offline Frequency Response Estimation

Use the Linear Analysis Tool or command-line functions to estimate frequency response of a system modeled in Simulink without modifying the model. You can:

  • Construct the excitation signals, such as sine sweeps or chirp signals.
  • Run the simulations; collect the data; and calculate and plot the model’s frequency response.
  • Examine frequency-domain characteristics and validate linearization of Simulink model.

Online Frequency Response Estimation

Measure the frequency response of your system in operation. You can deploy an embedded estimation algorithm as a standalone application for real-time estimation of a physical plant.

Frequency response estimator block

Parametric models

Compute linear parametric models by using System Identification Toolbox with computed frequency response of a Simulink model.

Create parametric models from frequency response  of a Simulink model

Learning-Based Control

Implement data-driven, learning-based control techniques

Extremum Seeking Control

Automatically adapt control system parameters to maximize an objective function using model-free real-time optimization with the Extremum Seeking Controller block. Use extremum seeking control for adaptive cruise control, maximum power point tracking (MPPT) for solar arrays, anti-lock braking systems (ABS), and other applications.

Extremum seeking control for Anti-lock Braking System (ABS)

Constraint Enforcement

Modify control actions to satisfy constraints and action bounds using the Constraint Enforcement block. Apply constraint enforcement to control systems implemented with model predictive control, reinforcement learning, and PID control for automated driving, robotics, and other applications.

Constraint enforcement for PID controllers

Gain Scheduling

Automatically tune gain-scheduled controllers for nonlinear or time-varying plants

Gain Surface Tuning

Model gain scheduled control systems using Simulink blocks such as Varying PID Controller, Varying Transfer Function, Varying Notch Filter and Varying Lowpass Filter. Automatically tune gain surface coefficients to meet performance requirements throughout the system’s operating envelope and achieve smooth transitions between operating points. You can specify requirements that vary with operating condition and validate tuning results over the full operating range of the design.

Estimating gain surfaces for tuning

Operating Points

Find operating points of the model using specifications or simulation times and initialize model at operating point

Steady-State Analysis

Calculate operating points from user-defined specifications. You can define custom constraints and objectives for trimming. You can also take operating point snapshots at specific times or events during simulation.

Estimating gain surfaces for tuning

Steady-State Manager

Use the Steady State Manager app to interactively compute operating points from state, input, and output specifications. Validate operating points against specifications andinteractively obtain operating points from simulation snapshots.

Model Initialization

Initialize the model with computed operating points to start simulation from a steady-state condition or from a simulation snapshot. You can start the simulation at the beginning of the scenario that needs to be tested.

Intialize model at operating point