control algorithm design methods