A framework for observer-based robust fault detection in nonlinear systems with application to synchronous generators in power systems