Distributed model predictive controller design based on distributed optimization