The diagnosis of systems is one of the major steps in their control and its purpose is to determine the possible presence of dysfunctions, which affect the sensors and actuators associated with a system but also the internal components of the system itself. On the one hand, the diagnosis must therefore focus on the detection of a dysfunction and, on the other hand, on the physical localization of the dysfunction by specifying the component in a faulty situation, and then on its temporal localization. In this contribution, the emphasis is on the use of software redundancy applied to the detection of anomalies within the measurements collected in the system. The systems considered here are characterized by non-linear behaviours whose model is not known apriori. The proposed strategy therefore focuses on processing the data acquired on the system for which it is assumed that a healthy operating regime is known. Diagnostic procedures usually use this data corresponding to good operating regimes by comparing them with new situations that may contain faults. Our approach is fundamentally different in that the good functioning data allow us, by means of a non-linear prediction technique, to generate a lot of data that reflect all the faults under different excitation situations of the system. The database thus created characterizes the dysfunctions and then serves as a reference to be compared with real situations. This comparison, which then makes it possible to recognize the faulty situation, is based on a technique for evaluating the main angle between subspaces of system dysfunction situations. An important point of the discussion concerns the robustness and sensitivity of fault indicators. In particular, it is shown how, by non-linear combinations, it is possible to increase the size of these indicators in such a way as to facilitate the location of faults.