A self-tuning fuzzy controller