This work introduces a design methodology for intelligent controllers. Its goal is to provide a measure of the performance applicable to any of the subsystems, and use that measure to learn on-line the best among the set of pre-designed alternatives, given the state of the machine's environment.