ACC with NXT

Block diagram of LabVIEW/MATLAB ACC code.

Block diagram of LabVIEW/MATLAB ACC code.

The objective of this project was to design a digital controller for an Active Clearance Control (ACC) system using NXT hardware. ACC is a technique used in turbofans or gas turbines where the gap between the circumference of turbine blades and the inner surface of engine casing is constantly monitored and adjusted. Research has shown that ACC increases efficiency.

In the project, a PC controlled NXT motors based on predetermined control laws. Minimizing delays between the PC and NXT was a big priority: big delays (>40ms) caused the system to be unstable whilst delays of less than 40ms resulted in a stable system. My group and I were getting delays of 35ms on one laptop and 100ms on another laptop.

In order to decrease the delays, I wrote MATLAB scripts inside LabVIEW environment. After implementing this solution, delays on my laptop went from 100ms to 20ms and the system was stable.

    In the project, I used the following control theory techniques :

  • LQR for calculating control gains.
  • Pole placement for calculating estimator gains.
  • Kalman filter for calculating estimator gains.
  • Matlab tools (e.g., poles(), ode45(), ode23(), initial(), step(), ss(), tf(), impulse(),kalman(), lqr(), lsim(),etc) to simulate the ACC system.


Our design did not respond to gap changes fast enough, so did other designs in the class. This is because of the limitations in the NXT sensing hardware (namely, light sensor and encoders). However, some parts of our design did well:
(1) Combination of MATLAB and LabVIEW resulted in easy debugging and less delays.
(2) Calibration of the light sensor was precise.

You can download the code here.