| CPC G05B 19/4155 (2013.01) [G05B 2219/41406 (2013.01)] | 23 Claims |

|
1. A controller for controlling an operation of a machine according to a task, the controller comprising: a memory configured to store executable instructions; and a processor configured to execute the executable instructions to cause the controller to:
collect a feedback signal indicative of a current state of the operation of the machine;
formulate an original quadratic program (QP) for optimizing an objective function subject to equality constraints and inequality constraints on one or a combination of state and control variables of the machine based on the task and the current state of the operation of the machine;
lift the equality constraints and the inequality constraints into a lifted space having a dimension higher than a dimension of an original space of the original QP by a lifting operation introducing an additional non-negative variable such that a subspace defined by the equality constraints in the lifted space intersects a subspace defined by the inequality constraints in the lifted space at least at a point of origin of the lifted space;
transform the objective function of the original QP into a quadratic objective function involving variables of the original QP and the additional non-negative variable, wherein the quadratic objective function subject to the lifted equality and inequality constraints forms a homogeneous QP in the lifted space such that first-order optimality conditions of the homogeneous QP correspond to first-order optimality conditions of the original QP lifted in the higher space by the lifting operation;
solve the homogeneous QP to produce a solution in the lifted space;
control the machine according to an infeasibility protocol when a value of the additional non-negative variable in the solution in the lifted space equals zero; and otherwise
project the solution in the lifted space into the original space using a projection operation reversing the lifting operation to produce a solution of the original QP; and
control the machine using a control command determined based on the solution of the original QP.
|