On this page, you can find
- Tutorials on classical control and analysis methods
- Tutorials on state-space control and analysis methods
- Tutorials on nonlinear control and analysis methods
- Tutorials on system identification
- Tutorials on state estimation techniques
- Tutorials on adaptive control
- Tutorials on model predictive control
- Tutorials on the implementation of the control and estimation algorithms in C and C++
- Tutorials on the implementation of the control and estimation algorithms in Python
- Tutorials on the implementation of the control and estimation algorithms in MATLAB
- Applied control engineering tutorials
Almost every tutorial is accompanied by a YouTube tutorial.
Tutorials on Classical Control and Analysis Methods
Below are the tutorials on classical control engineering methods. The tutorials are based on the Laplace transform, frequency domain analysis and design, and transfer function analysis and design.
- Fourier series and frequency response
- Laplace transform
- Partial fraction expansion with MATLAB – Part I
- Partial fraction expansion with MATLAB – Part II
- Partial fraction expansion with MATLAB – Part III
- Inverse Laplace Transform by Using Partial Fraction Expansion and Cover-Up Method – Case of (Real) Distinct Poles
- Basic principles of feedback control
- Bode plots of integral and derivative transfer functions
- Influence of zeros and non-minimum phase zeros of transfer functions on dynamical system behavior
- Clear explanation of the Ziegler-Nichols PID control tuning method (second method) with MATLAB codes + model-assisted tuning
- Routh-Hurwitz stability criterion and test (no special cases)
- Transient response of a prototype second-order dynamical system with detailed derivation using inverse Laplace transform (damping, natural frequency, and damping ratio)
- Transient response specifications: Peak time, settling time, rise time, overshoot, and percent overshoot
- Overshoot and peak time as functions of damping ratio and natural undamped frequency – complete derivation
- Definition of phase margin and intuitive understanding with MATLAB examples
- Phase lead compensator – derivation of equations and design procedure
- Example of designing a phase lead controller (compensator) in MATLAB
- Design procedure for the phase lag compensator with example in MATLAB
- PID controller discretization and implementation in Arduino
- From differential equations to transfer functions and response simulation in MATLAB
- Application of Routh stability criterion to select parameters of Proportional Integral (PI) controllers
- Open-loop control with MATLAB simulations
- Simulate control systems with actuator limits in Simulink – Introduction to Simulink simulation
- How to Design Parameter of Proportional-Integral Controllers by Using Routh-Hurwitz Stability Test
- Z-Transform Introductory Tutorial with Examples of Z-Transform of Unit Impulse Sequence and Unit Step Sequence
- Clear and Graphical Explanation of Signal Convolution with MATLAB Implementation – Digital Signal Processing Tutorial
- State-Space Modeling of Double Mass-Spring-Damper System with Python Modeling
- Pole Placement Example 1- Design PID Controller to Achieve Desired Closed-Loop Behavior
- How to Sketch Bode Diagrams by Hand – First Order Transfer Function Without Zeros
- Limitations of Proportional Control – Why We Need an Integrator in the Control Loop – Control Engineering Lecture
Linear State-Space Control System Analysis and Control Design Method Tutorials
Below are the tutorials on linear state-space models as well as tutorials on linear state-space control system analysis and design.
- Simulation of linear ordinary differential equations using Python and state-space modeling
- DC motor state-space modeling and MATLAB’s Control System Toolbox
- Introduction to MATLAB Control Systems Toolbox – defining models and computing responses
- Compute and simulate Linear Quadratic Regulator (LQR) in MATLAB for set point tracking
- Solve differential equations analytically using MATLAB Symbolic Math Toolbox
- Backward Euler discretization of state-space models in MATLAB
- An easy introduction to observability and open-loop observers with MATLAB implementation.
- Quadratic forms, positive definite, negative definite, and semi-definite matrices
- Lyapunov equation: How to compute the solution and origins in stability analysis of dynamical systems
- Convert state-space models into transfer functions with MATLAB codes
- Pole placement with integral control action to eliminate steady-state error (state-space control design)
- An easy-to-understand explanation of controllable canonical form (also known as reachable or control canonical form)
- Pole placement to meet the requirements on desired overshoot and rise time
- Simulate in Simulink ordinary differential equations – step-by-step tutorial
- Matrix exponential tutorial: definition, calculation, and its application in control engineering and control theory – part 1.
- Implementation of the Solution of the Linear Quadratic Regulator (LQR) Control Algorithm in C++ by Using the Eigen Matrix Library
- Design and Test Observers of Dynamical Systems in MATLAB
- Correct Explanation of State Observers for State Estimation of State-Space Models with Python Simulations
- Correct and Intuitive Explanation of Observability of Linear Dynamical Systems
- Linear Quadratic Regulator (LQR) for Non-Zero Set-Points in Python by Using Control Systems Library
- Linear Quadratic Regulator (LQR) Control of State-Space Models in Simulink and MATLAB
- Easily Solve the Lyapunov Equation by Using the Kronecker Product – Detailed Explanation with Python Codes
System Identification Tutorials
Below are tutorials on system identification.
- Introduction to subspace system identification with Python – system identification tutorial
- Introduction to MATLAB System Identification Toolbox – Transfer function identification
State and Parameter Estimation Tutorials
Here, we present state and parameter estimation tutorials.
- Extended Kalman Filter Tutorial With Example and Disciplined Python Codes – PART I -Derivation
- Extended Kalman Filter Tutorial With Example and Disciplined Python Code – PART II -Test Example and Python Codes
Nonlinear Dynamical Systems and Nonlinear Control Tutorials
Below are tutorials on nonlinear dynamical systems and nonlinear control.
- Lyapunov equation: How to compute the solution and origins in stability analysis of dynamical systems
- Introduction to feedback linearization
- Simulink simulation of nonlinear control laws – application to feedback linearization control law
- Intuitive understanding of Lyapunov’s stability analysis – 1D example
- Introduction to (direct) Lyapunov stability analysis with examples
- Correct and clear explanation of linearization of dynamical systems
- Failure of Linearization Approach for Control System Analysis and Design of Nonlinear Systems
- Phase Portraits of State-Space Models and Differential Equations in Python
Adaptive Control Tutorials
Below are tutorials on adaptive control.
Model Predictive Control Tutorials
Below are tutorials on Model Predictive Control (MPC)
- Model Predictive Control (MPC) Tutorial 1: Unconstrained Formulation, Derivation, and Implementation in Python from Scratch
- Model Predictive Control (MPC) Tutorial 2: Unconstrained Solution for Linear Systems and Implementation in C++ from Scratch by Using Eigen C++ Library
Tutorials on Control and Estimation Algorithms in C and C++
Below are tutorials on the implementation of control and estimation algorithms in C and C++ programming languages.
- Model Predictive Control (MPC) Tutorial 2: Unconstrained Solution for Linear Systems and Implementation in C++ from Scratch by Using Eigen C++ Library
- Implementation of the Solution of the Linear Quadratic Regulator (LQR) Control Algorithm in C++ by Using the Eigen Matrix Library.
Tutorials on Control and Estimation Algorithms in Python
- Definition and Simulation of State-Space Models of Linear Systems in Python by Using Control Systems Library
- Simulation of Transfer Function Response in Python – Control Engineering Tutorials
- Animate Dynamics of Cart-Pendulum System in Python by Using Pygame Library
- Automatic State-Space Derivation and Simulation of Nonlinear Dynamical Systems in Python with Inverted Pendulum on a Cart Example
- Symbolic and Automatic Linearization of Nonlinear Systems in Python by Using SymPy Library
- Compute Magnitude and Phase Responses (Frequency Response) of Digital Filters and Discrete-Time Systems in Python
- Clear and Concise Explanation of Fourier Series With Solved Examples and Python code
- Compute Fourier Series in Python by Using Symbolic Library and Generate Plots of Approximation Functions
- How to Check Observability of a Dynamical System in Python
- Correct Explanation of State Observers for State Estimation of State-Space Models with Python Simulations
- Tutorial on Simple Position Controller for Differential Drive Robot (Mobile Robot) with Simulation and 2D Animation in Python
- Numerical Solution of Forward Kinematics Problem of Differential Drive Robot and 2D Simulation/Animation of Trajectory in Python and Pygame
- Python Control Systems Library Tutorial 2: Define State-Space Models, Generate Step Response, Discretize, and Perform Basics Operations
- Python Control Systems Library Tutorial 1: Define Transfer Functions and Compute Step, Initial State, and Input Responses
- Phase Portraits of State-Space Models and Differential Equations in Python
- Easily Solve the Lyapunov Equation by Using the Kronecker Product – Detailed Explanation with Python Codes
Tutorials on Control and Estimation Algorithms in MATLAB and Simulink
- Design and Test Observers of Dynamical Systems in MATLAB
- Linear Quadratic Regulator (LQR) for Non-Zero Set-Points in Python by Using Control Systems Library
- Linear Quadratic Regulator (LQR) Control of State-Space Models in Simulink and MATLAB
- Pole Placement State-Space Control in Simulink Together With Integral Control to Eliminate Steady State Error
Applied control engineering tutorials
Here, we present applied control engineering and estimation tutorials explaining how to control or estimate the state of mechanical, electric, robotics, or mechatronics systems.
- Tutorial on Simple Position Controller for Differential Drive Robot (Mobile Robot) with Simulation and 2D Animation in Python
- Automatic State-Space Derivation and Simulation of Nonlinear Dynamical Systems in Python with Inverted Pendulum on a Cart Example
- Animate Dynamics of Cart-Pendulum System in Python by Using Pygame Library
- Numerical Solution of Forward Kinematics Problem of Differential Drive Robot and 2D Simulation/Animation of Trajectory in Python and Pygame
- Clear and Detailed Explanation of Kinematics, Equations, and Geometry of Motion of Differential Wheeled Robot (Differential Drive Robot)