Control System Toolbox

Free examples

See examples

Linear Models

Create linear models of your control system using transfer function, state-space, and other representations. Discretize models. Simplify models by reducing their order.

Transfer Functions and State-Space Models

Create linear time-invariant system models using transfer function or state-space representations. Manipulate PID controllers and frequency response data. Model systems that are SISO or MIMO, and continuous or discrete. Build complex block diagrams by connecting basic models in series, parallel, or feedback.

Model Discretization

Use command-line functions or interactive Live Editor Tasks to resample dynamic system models and convert models between continuous-time and discrete-time domains. Use zero-order hold, bilinear (Tustin), zero-pole matching, and other rate conversion methods.

Explore gallery (2 images)

Model Reduction

Use the Model Reducer app, Live Editor Task, or command-line functions to interactively reduce plant or controller model order while preserving dynamics that are important to your application. Use balanced truncation, pole-zero simplification, or mode selection techniques.

Linear Analysis

Visualize system behavior in the time domain and frequency domain. Compute system characteristics such as rise time, overshoot, and settling time. Analyze system stability.

Time and Frequency Domain Analysis

Use the Linear System Analyzer app to view and compare time and frequency responses across multiple models using step response, impulse response, Bode, Nichols, Nyquist, singular value, and zero-pole plots. Inspect characteristics such as rise time, settling time, and maximum overshoot.

Stability Analysis

Compute gain margin, phase margin, and crossover frequencies. Examine pole and zero locations of dynamic systems graphically and numerically. Calculate the damping ratio, natural frequency, and time constant of the poles of a linear model.

Computing gain margins, phase margins, and crossover frequencies.

Passivity and Sector Bounds

Compute various measures of passivity for linear time-invariant systems. Analyze systems for passivity and arbitrary conic-sector bounds.

Explore gallery (2 images)

PID Control

Tune PID controller gains using automatic and interactive tuning tools.

PID Tuning

Use the PID Tuner app, Live Editor Task, or command-line functions to automatically tune PID controller gains to balance performance and robustness. Specify tuning parameters, such as desired response time and phase margin. Tune continuous or discrete PID controllers.

Interactive Estimation of Plant Dynamics

Create a plant model from measured input-output data directly in the PID Tuner app using System Identification Toolbox. Alternatively, use Live Editor to identify plant dynamics and tune a PID controller.

2-DOF PID Control

Tune two-degree-of-freedom (2-DOF) PID controllers. Use a 2-DOF PID controller instead of a 1-DOF PID controller to achieve better disturbance rejection without significant increase of overshoot in setpoint tracking.

Tuning a 2-DOF PID controller (solid line) and comparing it with a 1-DOF PID controller (dashed line) in the PID Tuner app.

Compensator Design

Interactively design and analyze control systems.

Interactive Design with Root Locus and Bode Diagrams

Use the Control System Designer app to interactively design and analyze SISO control systems. Graphically tune common control components, such as PIDs, lead/lag networks, and notch filters using root locus, Bode diagrams, and Nichols charts.

Closed-Loop Response Monitoring

Visualize closed-loop and open-loop responses with step response, Nyquist, and other plots that dynamically update as you tune your controller. Specify and evaluate time-domain and frequency-domain design requirements such as rise time, maximum overshoot, gain margin, and phase margin.

Multiloop Design

Tune controllers that consist of multiple SISO loops. Close SISO loops sequentially, visualize loop interactions, and iteratively tune each loop to optimize overall performance.

Explore gallery (3 images)

Automated Tuning

Automatically tune control systems to meet high-level design requirements.

SISO and MIMO Loops

Use the Control System Tuner app or command-line functions to model and tune SISO or MIMO control system architectures with simple tunable elements such as gains, PID controllers, or low-order filters. Jointly tune several loops in a multiloop control system.

Time and Frequency-Domain Objectives

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

Tuning Against a Set of Plant Models

Design a controller that is robust to changes in plant dynamics due to parameter variations, variations in operating conditions, and sensor or actuator failures.

Designing a controller that is robust to plant parameter variations.

Gain Scheduling

Design and tune gain-scheduled controllers for nonlinear or time-varying plants.

Gain-Scheduled Controllers in Simulink

Model gain-scheduled control systems in Simulink using blocks such as Varying PID Controller, Varying Transfer Function, Varying Notch Filter, and Varying Lowpass Filter.

Library for modeling gain-scheduled controllers in Simulink.

Gain Surface Tuning

Automatically tune gain surface coefficients to meet performance requirements throughout the system’s operating envelope and achieve smooth transitions between operating points. Specify requirements that vary with operating condition. Validate tuning results over the full operating range of your design.

State Estimation and LQG Design

Use state-space control design methods, such as LQG/LQR and pole-placement algorithms. Design observers, including linear and nonlinear Kalman filters.

LQR/LQG and Pole Placement

Design continuous and discrete linear-quadratic regulators (LQR) and linear-quadratic-Gaussian (LQG) controllers. Compute feedback gain matrices to place closed-loop poles at desired locations.

Kalman filters

Design and simulate linear steady-state and time-varying Kalman filters. Generate C/C++ code for these filters using MATLAB Coder and Simulink Coder.

Nonlinear State Estimators

Estimate states of nonlinear systems using extended Kalman filters, unscented Kalman filters, or particle filters in MATLAB and Simulink. Generate C/C++ code for these filters using MATLAB Coder and Simulink Coder.

Control Design in Simulink

Analyze and tune control systems modeled in Simulink.

Linear Analysis

Use the Linear Analysis Tool in Simulink Control Design to linearize Simulink models. Compute time and frequency responses of linearized models using step response, impulse response, Bode, Nichols, Nyquist, singular value, and zero-pole plots.

Compensator Design

Graphically tune SISO feedback loops modeled in Simulink using Simulink Control Design. Design controllers using interactive Bode, root locus, and Nichols graphical editors for adding, modifying, and removing controller poles, zeros, and gains.

Compensator Tuning

Automatically tune gains of PID controllers modeled in Simulink. Use the Control System Tuner app or command-line tools in Simulink Control Design to automatically tune the gains and dynamics of control elements distributed across any number of feedback loops in Simulink.