Software-in-the-loop simulation for improving flight control system design: a quadrotor case study