Fault-tolerant control allocation: An Unknown Input Observer based approach with constrained output fault directions