This repository contains MATLAB scripts and Simulink models for the analysis, simulation, and control of a brushed DC motor with a rigid inertial load. It was created as part of a university control engineering coursework project.
File | Description |
---|---|
motor_parameters.m |
Defines all motor and load parameters used across all models. |
open_loop_model.m |
Models and plots the open-loop speed response using a transfer function. |
closed_loop_P_PI_PID.m |
Simulates unity-feedback control with P, PI, and PID controllers. |
frequency_analysis.m |
Generates Bode and Nyquist plots of the open-loop system. |
disturbance_simulation_PI.m |
Simulates a PI controller under step changes and load disturbances. |
Model File | Description |
---|---|
OpenLoopModel.slx |
Open-loop DC motor simulation |
ClosedLoop_P_Controller.slx |
Closed-loop speed control with P controller |
ClosedLoop_PI_Controller.slx |
Closed-loop with PI controller |
ClosedLoop_PID_Controller.slx |
Closed-loop with full PID |
Disturbance_Simulation_PI.slx |
PI control with speed changes and a simulated load torque disturbance |
- DC motor modeling using transfer functions derived from first principles.
- Open-loop and closed-loop performance analysis.
- Time-domain simulation of step responses.
- Frequency-domain analysis using Bode and Nyquist plots.
- Disturbance rejection testing under 50% and 100% load.
- Comparison of P, PI, and PID controllers.
- Gearbox effect discussion included in final report.
- MATLAB R2021a or later
- Simulink
- Control System Toolbox
Based on the Allied Motion CL40 coreless DC motor datasheet and standard DC motor modeling principles.
See the [report PDF] for full analysis, results, and documentation.
Alexander Turley
Electrical & Electronic Engineering Student, MMU (2025)
This project is licensed for educational and academic use.