Flatness-based adaptive fuzzy control of autonomous submarines