This repository presents a control system design project for a Vertical Take-Off and Landing (VTOL) aircraft using MATLAB and Simulink.
The project focuses on modeling, simulation, controller tuning, and stability evaluation of a VTOL system. It includes linear and nonlinear Simulink models, PID-based controller implementations, and a MATLAB script for checking system stability using the Routh–Hurwitz stability criterion.
VTOL systems are challenging because they combine aircraft-like motion with hover-capable vertical movement. This makes control design important for maintaining stability, accurate positioning, and reliable dynamic response.
The main goals of this project are:
- Model the VTOL system dynamics in MATLAB/Simulink
- Design and tune PID controllers for the system
- Compare linear and nonlinear simulation behavior
- Analyze system stability using the Routh–Hurwitz criterion
- Study the effect of including or excluding position coordinates in the nonlinear model
- Provide simulation files and presentation material for academic documentation
- 🚁 VTOL control system modeling
- 📊 MATLAB and Simulink simulations
- 🎛️ PID controller tuning
- 📐 Linear and nonlinear system models
- ✅ Routh–Hurwitz stability analysis
- 📁 Organized simulation files
- 📽️ Included project presentation
| Tool / Technology | Purpose |
|---|---|
| MATLAB | Numerical computation and stability analysis |
| Simulink | Dynamic system modeling and simulation |
| Control System Concepts | Controller design and system analysis |
| PID Control | Regulation and stabilization of VTOL dynamics |
| Routh–Hurwitz Criterion | Stability verification |
This folder contains the main Simulink simulation models used in the project.
| File | Description |
|---|---|
TunedLinearSystem.slx |
Simulink model of the tuned linear VTOL system |
Nonlinear_System_Tuned_by_linear_PID_With_X_Y.slx |
Nonlinear VTOL model controlled by a PID controller, including X-Y position coordinates |
Nonlinear_System_Tuned_by_linear_PID_Without_X_Y.slx |
Nonlinear VTOL model controlled by a PID controller without X-Y position coordinates |
MATLAB script for evaluating the stability of a system using the Routh–Hurwitz stability criterion.
The script:
- Accepts polynomial coefficients from the user
- Builds the Routh–Hurwitz table
- Detects sign changes in the first column
- Determines whether the system is stable or unstable
- Optionally displays the roots of the characteristic equation
Example input format:
[an an-1 an-2 ... a0]Example:
[1 5 6]This represents the polynomial:
s² + 5s + 6
The Routh–Hurwitz criterion is used to determine whether a linear time-invariant system is stable without directly calculating all system roots.
For a characteristic polynomial:
aₙsⁿ + aₙ₋₁sⁿ⁻¹ + ... + a₁s + a₀
the Routh table is constructed using the polynomial coefficients. If all elements in the first column of the Routh table have the same sign, the system is stable. A sign change indicates the existence of poles in the right half of the complex plane, meaning the system is unstable.
This project includes a MATLAB implementation of this method to support the control design process.
The general workflow of the project is:
VTOL System Modeling
↓
Linear Model Design
↓
PID Controller Tuning
↓
Linear System Simulation
↓
Nonlinear System Simulation
↓
Stability Analysis
↓
Performance Evaluation
The project follows a classical control design approach:
-
Model the VTOL system
- Define the system dynamics
- Represent the behavior in Simulink
-
Design a controller
- Apply PID control
- Tune the controller using the linear system model
-
Test on nonlinear models
- Apply the tuned controller to nonlinear VTOL simulations
- Compare the system response with and without X-Y coordinates
-
Analyze stability
- Use the Routh–Hurwitz criterion
- Check whether the characteristic equation leads to a stable system
The simulations are intended to help evaluate:
- System stability
- PID controller effectiveness
- VTOL dynamic response
- Differences between linear and nonlinear behavior
- Influence of X-Y coordinate modeling on system response
- Suitability of the tuned controller for nonlinear simulation
To run the project, you need:
- MATLAB
- Simulink
- Control System Toolbox recommended
The project was designed around MATLAB/Simulink simulation files, so MATLAB is required to open and run the
.slxmodels.
Through this project, you can learn about:
- VTOL system dynamics
- Classical control system design
- PID controller tuning
- Linear vs. nonlinear simulation
- Simulink-based dynamic modeling
- Routh–Hurwitz stability criterion
- Stability interpretation using characteristic polynomials
Mohammad Barabadi
- GitHub: @mohammadbrd
- LinkedIn: mohammadbrd
No license file is currently provided in this repository.
If you plan to reuse or modify this project, please contact the author or add an appropriate license.