Control System Toolbox
Design and analyze control systems
Control System Toolbox™ provides algorithms and apps for systematically analyzing, designing, and tuning linear control systems. You can specify your system as a transfer function, state-space, zero-pole-gain, or frequency-response model. Apps and functions, such as step response plot and Bode plot, let you analyze and visualize system behavior in the time and frequency domains.
You can tune compensator parameters using interactive techniques such as Bode loop shaping and the root locus method. The toolbox automatically tunes both SISO and MIMO compensators, including PID controllers. Compensators can include multiple tunable blocks spanning several feedback loops. You can tune gain-scheduled controllers and specify multiple tuning objectives, such as reference tracking, disturbance rejection, and stability margins. You can validate your design by verifying rise time, overshoot, settling time, gain and phase margins, and other requirements.
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.
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.
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.
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.
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.
Passivity and Sector Bounds
Compute various measures of passivity for linear time-invariant systems. Analyze systems for passivity and arbitrary conic-sector bounds.
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.
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.
Tune controllers that consist of multiple SISO loops. Close SISO loops sequentially, visualize loop interactions, and iteratively tune each loop to optimize overall performance.
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.
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.
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.
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.
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.
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.
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.
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.
Live Editor Tasks
Perform model transformation and control design tasks interactively, and generate MATLAB code in a live script