This paper describes a fault diagnosis algorithm for a class of nonlinear dynamic systems with modeling uncertainties, using input/output measurements. Two types of faults are considered: parametric faults which characterize fault functions of known structure but unknown parameters, and non-parametric faults where the structure of the fault function is unknown. A nonlinear estimation model with a learning algorithm is developed and the fault separability concept for parametric faults is discussed.