World number two Carlos Alcaraz retains his Madrid Open title with a three-set victory over Germany’s Jan-Lennard Struff.