Observer design for systems with an energy-preserving non-linearity