Best Control Signal

function computeBestU(x, y, stateTransitionFnc, N, dt, targetX, targetY) {

    uStar = 0.0;

    var minPos;
    var dMin = 100000.0;
    for (let ut1=-uMax; ut1<uMax; ut1 += uMax/10) {
        for (let ut2=-uMax; ut2<uMax; ut2 += uMax/10) {

            let positions = futurePositions(x, y, [ut1, ut2], stateTransitionFnc, N, dt);

            let d = closestDistanceToPositions(targetX, targetY, positions)

            if (d<dMin) {
                dMin = d;
                uStar = ut1;

                minPos = positions;
            }
        }
    }


    drawPositions(minPos);


    return uStar;
}