Course: Digital Control Systems — Electrical Engineering
Environment: MATLAB / Simulink
Topics: Z-transform, discrete-time design, frequency response, PID/lead-lag controllers
| Lab | Topic | Files |
|---|---|---|
| Lab 2 | Z-Transform & Discrete-Time Basics | Lab2/lab2_ztransform.m |
| Lab 3 | Frequency Response & Bode Analysis | Lab3/lab3_bode.m |
| Lab 4 | PID Controller Design | Lab4/lab4_pid.m |
| Lab 5 | Lead-Lag Compensator Design | Lab5/lab5_lead_lag.m |
| Lab 6 | Closed-Loop Sensitivity & Robustness | Lab6/lab6_sensitivity.m |
Objective: Analyse discrete-time signals using Z-transform, compare with continuous-time equivalents.
Key operations performed:
- Forward/inverse Z-transform via
iztransand manual partial fractions - Pole-zero mapping (
pzmap) to verify stability - Step response comparison: continuous vs. sampled system
Objective: Design a discrete controller satisfying gain/phase margin specs using Bode plots.
Key operations performed:
- Open-loop Bode plot (
bode) with margin analysis (margin) - Lead compensator placement to meet φₘ ≥ 45°
- Closed-loop verification:
step,bode(feedback(...))
Objective: Design a discrete PID controller and analyse step response performance.
| Parameter | Value |
|---|---|
| Rise Time | < 0.5 s |
| Overshoot | < 10 % |
| Settling Time | < 2 s |
Key operations performed:
- Ziegler-Nichols tuning in discrete domain
- Anti-windup implementation
- Root-locus analysis (
rlocus) to verify pole placement
Objective: Design a cascaded lead-lag compensator to improve transient and steady-state response.
Key operations performed:
- Phase-lead design for bandwidth improvement
- Phase-lag design for steady-state error reduction
- Combined lead-lag:
series(C_lead, C_lag) - Sensitivity / complementary-sensitivity plot
Objective: Analyse sensitivity functions and verify robustness margins.
Key operations performed:
- Mixed sensitivity design: minimise ‖Wp·S‖∞
- Bode plot of S (sensitivity) and T (complementary sensitivity)
lsimwith step + sinusoidal disturbance to validate rejection
% In MATLAB, navigate to the lab folder and run:
run('Lab2/lab2_ztransform.m')
run('Lab3/lab3_bode.m')
% ... etc.- All scripts require MATLAB R2021a or later with the Control System Toolbox
- Simulink models (
.slx) are included where applicable - Results match those submitted in the formal lab reports