From feedback fundamentals to a complete control design.
20 modules and 60 lessons in 4 stages. Every lesson has real Python practice that runs in your browser and a short quiz. The course is free and open to everyone. For engineering students and curious builders. Begin with basic algebra and Python variables, functions, and loops. Calculus, complex numbers, and matrices are introduced as they are used. Use the Python course foundations if programming is new to you.
Start the first lessonBefore you begin: prerequisites, tools, and learning plan
For engineering students and curious builders. Begin with basic algebra and Python variables, functions, and loops. Calculus, complex numbers, and matrices are introduced as they are used. Use the Python course foundations if programming is new to you.
Plan about 3 to 5 hours each week. Lesson estimates include the guided practicals; project time is additional. Each lesson has a runnable example, a checked exercise, two quiz questions, and a downloadable notebook. Complete the practice and quiz to mark a lesson done.
Use Python, NumPy, SciPy, and Matplotlib in the browser, or install them in a local Jupyter environment. Project notebooks also use pandas. The first browser run downloads Python and the required packages. No MATLAB licence, paid service, or hardware is needed.
All required practical sessions use simulations in your browser. Optional physical work belongs on an approved low-voltage trainer with qualified supervision and independent protection.
Review Python foundationsFoundations
Modules 01 to 05
Understand feedback
Identify the signals in a control loop and run your first feedback experiment.
- Signals, units, and the feedback loop
- Open loop and closed loop
- Practical: regulate a motor speed
Build the mathematical toolkit
Use exponentials, complex numbers, integration, and numerical error.
- Exponentials and complex poles
- Derivatives, integrals, and sampled data
- Practical: test your numerical solver
Model physical systems
Translate force, voltage, heat, and flow balances into dynamic models.
- Mechanical and electrical balances
- Thermal and liquid level models
- Practical: identify a first order plant
Use transfer functions
Work with Laplace models, block diagrams, and disturbance paths.
- From differential equation to transfer function
- Combine blocks and close the loop
- Practical: trace a disturbance
Measure time response
Turn rise time, overshoot, settling, and error into measurable requirements.
- First order response specifications
- Second order damping and overshoot
- Practical: build a response scorecard
Classical control
Modules 06 to 10
Analyse stability
Use pole locations and Routh tests to find stable gain ranges.
- Poles and internal stability
- Routh stability without solving roots
- Practical: find the stability boundary
Reduce steady error
Distinguish system type, tracking error, disturbances, and integral action.
- System type and the final value theorem
- Integral action and load rejection
- Practical: reject a load step
Design practical PID control
Tune PI and PID with noise, saturation, and anti-windup in mind.
- Tune proportional and integral terms
- Filter the derivative and prevent windup
- Practical: compare saturation recovery
Design with root locus
Follow closed-loop poles as gain changes and choose damping deliberately.
- Root locus rules and gain
- Choose gain from a damping target
- Practical: map gain to performance
Design in the frequency domain
Read Bode plots, reason about Nyquist, and add phase lead.
- Frequency response and Bode plots
- Margins, Nyquist, and delay
- Practical: add phase lead
Digital & state space
Modules 11 to 15
Sample and discretise
Understand aliasing, sample-and-hold behaviour, and digital implementation.
- Sampling, aliasing, and sensor filters
- Zero-order hold models
- Practical: choose a controller sample period
Implement discrete controllers
Use difference equations and test delay, quantisation, and timing.
- The z domain and difference equations
- Incremental PI and quantisation
- Practical: test a one-sample delay
Control with state space
Build matrix models, test controllability, and place feedback poles.
- States, inputs, and outputs
- Controllability and pole placement
- Practical: build a position servo
Estimate hidden states
Test observability and build an observer for an unmeasured velocity.
- Observability and sensor choice
- Luenberger observer dynamics
- Practical: observe velocity from position
Optimise control and estimation
Introduce LQR, Kalman filtering, and their model assumptions.
- Linear quadratic regulation
- Kalman prediction and correction
- Practical: combine a controller and estimator
Applied control
Modules 16 to 20
Identify and validate a plant
Estimate models from experiments and test them on unseen input sequences.
- Fit a discrete model with least squares
- Excitation, residuals, and validation
- Practical: identify, validate, then control
Handle nonlinear behaviour
Linearise around an operating point and examine where local models fail.
- Equilibria and local linearisation
- Lyapunov reasoning and nonlinear limits
- Practical: schedule gains across tank levels
Design for uncertainty and interaction
Use sensitivity, uncertainty sweeps, cascade loops, and simple decoupling.
- Sensitivity and robustness tradeoffs
- Cascade control and interacting loops
- Practical: stress-test uncertain plants
Plan constrained control
Introduce predictive control, real-time logic, and explicit fallback behaviour.
- Finite-horizon predictive control
- Real-time control logic and fault handling
- Practical: implement a constrained horizon
Complete an engineering design
Turn requirements, experiments, and reproducible evidence into a defensible project.
- Write requirements and acceptance tests
- Reproducible experiments and supervised bench work
- Practical: defend a complete controller design
Free, open and run by a nonprofit.
This page is part of Control Engineering, a free course of 20 modules and 60 lessons in the engineering.fit( ) Learning Lab. The Learning Lab is built and run by engineering.fit( ), a nonprofit founded by Abdullateef Opeyemi Bakare that helps African engineering students gain research experience. You do not need an account or pay a fee to learn.