Fault recovery in control systems : a discrete event system approach