Cyber Security
NetLens: A Passive Network Traffic Analyser and Visibility Dashboard for a College Computer Lab
Flows, top talkers and scan indicators for the lab's own network — headers only, no blocking, full history
- Python
- Scapy
- MySQL
- +2
Two acrylic tanks, one pump and a tuned PID loop — build the classic level-control problem on a bench and log every step response
Mapped to your syllabusVTU 2022 Scheme (OBE/CBCS) · BXX685 (BEI685 / BME685 / BCV685) Major Project Phase-I · Semester 6Coupled-Tank PID Level-Control Trainer is a benchtop process-control rig that reproduces the classic liquid-level problem every instrumentation and control engineer meets in industry: keep the level in a tank at its setpoint while the outflow keeps changing. Two clear acrylic tanks are coupled in series — a 12 V booster pump fills the upper tank, water gravity-feeds through a manually adjustable valve into the lower tank, and an ultrasonic sensor measures the lower-tank level. An ESP32 runs a discrete PID loop at 1 Hz, drives the pump through a MOSFET with PWM, and streams time-stamped level and duty readings over serial.
The hardware is only half the project. A companion Python toolchain logs every run to CSV, fits a first-order-plus-dead-time (FOPDT) model from open-loop step tests, and compares Ziegler-Nichols settings against a manually tuned loop using rise time, overshoot, settling time and integral absolute error. A small Flask dashboard shows the live loop so demonstrations do not need a serial terminal.
Commercial level-control trainers used in control labs cost ₹60,000–₹1,50,000, which is why most students only ever see this problem inside a simulator. This rig recreates the same learning — sensor calibration, process lag, valve-induced disturbances, integral windup, tuning trade-offs — with real sensor noise and real hydraulics, for under ₹4,000. It is a viva-defensible Instrumentation & Control project: every design decision, from sampling rate to anti-windup clamping, can be justified from logged data.
Syllabus alignment
Loop tuning is the core skill of an instrumentation engineer, but students almost never practise it on real hardware: commercial coupled-tank trainers are too expensive for a college to give every batch repeated tuning time, and simulators hide the measurement noise, actuator non-linearity and dead time that make industrial loops hard. As a result, Ziegler-Nichols formulas are memorised without evidence, and the trade-off between overshoot and settling time is never actually observed.
There is a need for an affordable, open coupled-tank level-control rig with logged data that a four-member student team can build for under ₹4,000, calibrate against a steel-rule reference, and use to (a) identify a first-order-plus-dead-time model from step tests, (b) implement a discrete PID loop with anti-windup, and (c) compare tuning rules with quantitative closed-loop metrics — producing a repeatable lab trainer and a data-backed report instead of a guesswork demo.
Level loops are the workhorse of process industries — boiler drum level, distillation column sumps, storage tanks and effluent plants all depend on them. Yet loop tuning is usually taught from slides or pure simulation, because commercial coupled-tank trainers are too expensive for a student budget. This project builds a low-cost coupled-tank trainer and uses it to run a proper tuning study: open-loop identification, PID design, closed-loop verification, all backed by logged data.
In a series coupled-tank system the pump drives the upper tank, whose outflow is the inflow of the lower tank — so the process is second-order with interaction, exactly like scaled-down versions of plant level cascades. The controller must hold the lower-tank level at setpoint while the manual valve (the load) changes. This is the benchmark problem used in textbooks such as Åström and Hägglund's PID Controllers: Theory, Design, and Tuning, and it exercises every part of an instrumentation syllabus: transducers, signal conditioning, actuators, digital control and data recording.
In scope
Out of scope
The project follows an iterative build-and-test methodology — each phase ends with a measured result that the next phase consumes, which suits a control rig where nothing can be tuned before the plant exists and is calibrated.
| Phase | Weeks | Activities | Deliverable |
|---|---|---|---|
| 1. Requirements & hydraulic design | 1–2 | Tank sizing from pump curve, stilling-tube design, electrical schematic, BOM costing | Design document + Phase-I synopsis |
| 2. Rig build & calibration | 3–4 | Fabricate tanks and mounts, wire pump/MOSFET/sensor, 10-point sensor calibration against steel rule, error budget | Calibration sheet and curves |
| 3. Open-loop identification | 5–6 | Step tests at 3 duties, data cleaning, FOPDT fit (two-point method) in Scilab, model validation | Model (K, τ, θ) with R² |
| 4. Controller firmware | 7–8 | 1 Hz PID task, derivative-on-measurement, anti-windup clamp, serial protocol, watchdog | Firmware v1.0 + unit checks |
| 5. Tuning study | 9–11 | Ziegler-Nichols (open-loop rules) vs manual tuning; repeated runs for repeatability | Tuning comparison tables and plots |
| 6. Validation & documentation | 12–14 | Setpoint tracking (±20 % steps), load disturbance (valve change), Flask dashboard, report and demo script | Final report, demo, lab-manual sheet |
Testing approach: calibration is checked by re-running the 10-point scale twice (repeatability ≤ 2 mm); the FOPDT model must predict an independent step test within ±10 %; every closed-loop configuration is run three times and reported as mean ± spread; safety checks (leak test, MOSFET temperature after 30 min) are logged in the test matrix.
The system is a classic single-loop feedback architecture with a digital controller and a serial data path.
flowchart LR
SP["Setpoint: lower-tank level (cm)"] -->|"error e(k)"| PID["PID task on ESP32<br/>Kp, Ki, Kd + anti-windup"]
PID -->|"PWM duty 0-100 %"| DRV["Logic-level MOSFET driver"]
DRV --> PMP["12 V booster pump"]
PMP --> T1["Upper acrylic tank"]
T1 -->|"gravity outflow"| VL["Manual load valve (disturbance)"]
VL --> T2["Lower acrylic tank"]
T2 --> US["HC-SR04 in stilling tube"]
US -->|"echo time"| FILT["Median-of-5 filter"]
FILT --> PID
FILT -->|"CSV at 1 Hz"| LOG["Python serial logger"]
LOG --> ANA["Scilab FOPDT fit + Matplotlib metrics"]
LOG --> DASH["Flask live dashboard"]The sampling choice is deliberate: identified tank time constants are 2–6 minutes, so a 1 Hz loop is about 100× faster than the process, keeping the discrete PID essentially equivalent to its continuous form while leaving USB bandwidth free for logging. All actuator authority sits on the pump side, so the valve stays purely as a disturbance generator — this keeps the loop single-input single-output and the study clean.
Module 01
Designs and fabricates the two 1.5 L acrylic tanks with inter-tank coupling, stilling tube, base plate and splash guard; selects the pump from its flow-head curve; installs the manual load valve and break-slot to prevent siphoning; leak-tests and dimensionally verifies the rig before any electronics are connected.
Module 02
Mounts the HC-SR04 over the lower tank, designs the stilling tube to kill surface waves and foam echoes, and runs a 10-point calibration against a steel ruler; reports offset, gain, non-linearity and repeatability, implements the median-of-5 software filter and quantifies residual noise in the measurement.
Module 03
Implements the 1 Hz discrete PID task in C on ESP32 with derivative-on-measurement, integral clamping on PWM saturation and a watchdog; defines the one-line CSV serial protocol (millis, setpoint, level_cm, duty), adds live setpoint entry over serial, and unit-checks the controller against a simulated plant before water is run.
Module 04
Runs open-loop step tests at three pump duties, cleans the logs, fits the first-order-plus-dead-time model using the two-point method in Scilab, computes Ziegler-Nichols settings, executes the closed-loop test matrix (three repetitions per configuration) and compares rise time, overshoot, settling time and IAE in the final recommendation.
Module 05
Builds the Flask dashboard that plots level vs setpoint live, executes the setpoint-tracking and load-disturbance validation tests, compiles the test-case matrix with pass/fail evidence, writes the calibration and operating sheets that turn the rig into a reusable lab trainer, and assembles the Phase-II report chapter.
Slide 1
Coupled-Tank PID Level-Control Trainer
Slide 2
Why Level Control?
Slide 3
Problem Statement
Slide 4
Objectives
Slide 5
System Architecture
Slide 6
Hardware Build
Slide 7
Sensing & Calibration
Slide 8
Identification & Firmware
Slide 9
Tuning Study & Results
Slide 10
Testing & Validation
Slide 11
Conclusion & Future Scope
Bullets, speaker notes and the .pptx · ₹2,000
Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.
In a single tank the level responds roughly first-order to pump flow, but in our series coupled tanks the outflow of the first tank is the inflow of the second, so the process is interacting and second-order. The time constant of the second tank depends on the first tank's dynamics, which produces slower response and more phase lag — exactly why it is a good benchmark for studying controller tuning.
Our identified tank time constants were between two and six minutes, so a 1 Hz loop is more than a hundred times faster than the process. At that ratio the discrete PID is essentially equivalent to the continuous controller, yet it leaves plenty of serial bandwidth for logging, and it keeps CPU load trivial on the ESP32.
When the pump saturates at 100 percent duty during a large level error, the integral term keeps accumulating an error it cannot act on, so when the level finally reaches setpoint the controller overshoots badly. We clamp the integral whenever the PWM output is saturated and the error would push it further, which is the standard conditional-integration anti-windup approach.
+12 more questions, with answers
Unlocks with the project · ₹2,000
Unlock for ₹2,000What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.
Unlocks with the project · ₹2,000
Unlock for ₹2,000How to study it, adapt it and walk your examiner through it, step by step.
Unlocks with the project · ₹2,000
Unlock for ₹2,000OnlyProjects. (2026). Coupled-Tank PID Level-Control Trainer with Logged Step Response: B.Tech / B.E. Instrumentation & Control project bundle [Educational resource]. https://onlyprojects.online/projects/btech-ic-coupled-tank-pid-level-control-trainer
Keep browsing
Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.
Cyber Security
Flows, top talkers and scan indicators for the lab's own network — headers only, no blocking, full history
Mechanical Engineering
A human-powered spiked-roller dehusker for small coconut growers around Pollachi — designed, fabricated and tested for ₹ under 20,000
Aerospace / Aeronautical
Build a subsonic test tunnel on a student budget, then trace lift and drag on a 3D-printed NACA 0012 against theory
Agricultural Engineering
Irrigates vegetable beds by soil-moisture thresholds instead of habit, and proves every litre with a flow meter
Artificial Intelligence & Machine Learning
Forecasts kharif yield for Karnataka districts from six decades of ICRISAT district data and tells extension officers which crops look safe this season
Artificial Intelligence & Machine Learning
Screens CPCB river-water samples into quality bands, flags stations that fail bathing criteria and predicts likely BOD exceedance when lab results are missing