Fault Diagnosis for Complex Systems Using Coloured Petri Nets