File to run: mainproc.m
Control vector parameterization, also known as direct sequential method,
is one of the direct optimization methods for solving optimal control problems. The basic idea of direct optimization methods is to discretize the control problem, and then apply nonlinear programming (NLP) techniques to the resulting finite-dimensional optimization problem.
The problem is that you wish to steer from point $A=(0,0)$ at time $t = 0$ to close to point $B=(4,4)$ at time T. The motion takes place in the $x_1, x_2$ plane. Your control variables are thrust $u$ and angle of thrust $\theta$. The angle $\theta$ is measured from the $x_1$ axis. To make life interesting there is large mass at (3,0) that exerts a force proportional to the inverse of the square of the distance you are from the mass. (See published code for details)
* The problem is from a Optimal Control course (by Dr. Stephen Campbell) at NCSU.
I am using the method to obtain steering commands for an arm movement.
My problem is that the solver does not converge but stops because of a very small step size. The stepsize becomes very small even if we are not close to the optimum. Also optimatility increases a lot. If I then change the weighting factors in final_cost the problem converges for some time but after a while the same thing happens.
Any ideas ?
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.