Cruise control for a mine utility vehicle
Summary
How can a mine utility vehicle maintain a selected speed when resistance to motion changes? Students investigate this question using a fictional vehicle and a simple longitudinal force balance. They derive its transfer function, predict an open-loop force-step response in MATLAB, and construct a speed-feedback loop in Simulink. Matched P, PI and PID experiments reveal differences in tracking error, settling time and control effort. Students then test an added resistive load and a repeatable sensor disturbance, change one design choice, and defend a controller recommendation with evidence.
Learning Goals
After completing the activity, students should be able to:
1. Derive a vehicle transfer function from a force balance and state its assumptions and units.
2. Relate a pole, time constant and steady-state gain to an open-loop step response.
3. Distinguish a force-step input from a commanded-speed step in a feedback system.
4. Compare P, PI and PID using matched experiments, including load and sensor disturbances.
5. Justify a controller choice using speed tracking, actuator limits and control effort.
Context for Use
This activity is designed for second- or third-year undergraduates in mining, mechanical or electrical engineering. It fits an introductory control, modelling or engineering computation course. Allow two 75-minute computer laboratories, with students working in pairs.
The mining setting is a small service vehicle travelling along a straight access lane. Every numerical parameter is invented for teaching. The activity concerns maintaining a prescribed speed, with no equipment or site dataset required.
Students should know Newton's second law, basic differential equations and MATLAB plotting. Introduce Laplace transforms and negative feedback before the activity or supply the derivation in the handout. MATLAB and Simulink support the core exercise. Control System Toolbox adds the optional tf, step, pid and feedback calculations; an analytical response is supplied when it is unavailable.
Description and Teaching Materials
A fictional mine utility vehicle has mass 1,800 kg and linear resistance coefficient 90 N s/m. Students first apply a constant 450 N driving force without feedback. They then regulate speed at 5 m/s, with driving force limited to 0-2,000 N. At 90 seconds an additional 300 N resistance is introduced. Each control trial lasts 180 seconds.
Session 1 - From force balance to step response (75 minutes)
Students sketch a response before running any code. They derive G(s) = 1/(ms + b), calculate the time constant and final speed, and compare those predictions with a MATLAB response. Changing mass and resistance separately helps distinguish transient behaviour from steady-state behaviour.
Session 2 - Close the loop and compare controllers (75 minutes)
Students trace reference speed, error, controller, driving force and measured speed in Simulink. They compare P, PI and filtered PID under identical conditions, then add the same sensor disturbance to PI and PID. Each pair changes one gain or vehicle parameter and explains the consequences for tracking and actuator behaviour.
Students submit a brief laboratory note with plots, a comparison table and a reasoned controller choice. A short individual explanation checks that both partners understand the role of integral action.
Materials
The student handout supplies equations, prompts and assessment criteria. Cruise_Control_Materials.zip includes editable MATLAB scripts, a Simulink model, a student experiment starter, generated reference data and an instructor guide.
Student handout: Cruise control for a mine utility vehicle (Microsoft Word 2007 (.docx) 74kB Oct25 26)
Cruise control MATLAB and Simulink teaching package (Zip Archive 1.4MB Oct25 26)
Teaching Notes and Tips
Ask students to predict whether a constant driving force produces constant acceleration forever. Use the first response to connect a physical balance with a transfer function. Explain that the resistance term b v is a linear teaching approximation.
Make the input change explicit: open-loop plots show response to force in newtons; closed-loop plots show response to a speed reference in metres per second. A unit-step plot without input units can obscure this distinction.
Keep plant parameters and disturbances fixed when comparing controllers. The supplied PI gains provide a starting point, not an optimization result. Filtered derivative action, force saturation and clamping anti-windup are included in Simulink. Linear transfer-function predictions exclude saturation.
The package measures tracking against the commanded speed. A P-controlled response can settle around the wrong speed, so distinguish settling to its own asymptote from settling within the reference-speed tolerance. NaN means the specified criterion was not met during the observation window.
Pairs predict, run, inspect and explain each test. Swap the coding and checking roles between sessions. Optional AI assistance can support debugging, but students must verify units and equations, describe what they checked, and explain their final choice independently.
Assessment
Each pair submits its edited experiment script and a two-page laboratory note containing an open-loop plot, a controller-comparison plot and a results table. The note must identify what was held fixed, explain one result that differed from the initial prediction, and recommend a controller.
Force balance, transfer function and units: 25 points.
Open-loop prediction and interpretation: 20 points.
Matched feedback tests and correct metrics: 30 points.
Controller justification and individual explanation: 25 points.
Grade the reasoning and reproducibility, not the largest gain or a predetermined controller choice. Each student separately explains why integral action can remove an offset that proportional control leaves.
References and Resources
University of Michigan CTMS - Cruise control modelling and teaching background.
https://ctms.engin.umich.edu/CTMS/?example=CruiseControl§ion=SystemModeling
MathWorks tf - Transfer-function models in Control System Toolbox.
https://www.mathworks.com/help/control/ref/tf.html
MathWorks PID Controller - Filtering, force limits and anti-windup implementation.
https://www.mathworks.com/help/simulink/slref/pidcontroller.html
MathWorks stepinfo - Response metrics and the choice of final value.
https://www.mathworks.com/help/control/ref/dynamicsystem.stepinfo.html