Hello,
I am currently working on a stochastic optimal control problem where I try to steer a probability distribution from some initial state to some final state. To make a long story short, the final covariance is dependent on the control variable, let's say sigmaf = f(K), where K is the control variable and sigmaf is the final covariance that I set myself for the problem. The whole formula is sigmaf = En * (I+BK) * sigmaY * (I+BK)' * En', for reference. The constant covariance sigmaf is a 2x2 matrix in my problem. Moreover, this function f(K) is quadratic in K, which can be seen from the formula. The whole point of this equality constraint is that I want the controller to steer the covariance to sigmaf at time T. The problem with this is that it is not convex, so what I do is I relax the constraint so that sigmaf >= f(K), so that the controller steers the final state to a covariance that is lower than sigmaf. This is now a convex constraint, which I can write as an LMI and put it into a SDP solver such as sdpt3. This works well, and I get great solutions.
What I want to try to do now is maximize the final covariance that I get, given that it must be less than or equal to sigmaf. This is to ensure my solutions are more conservative and robust to disturbances. The way to do this, naturally, is to maximize the logdet of the final covariance, and add that into the overall cost. So, what I tried to do is introduce a new optimization variable called sigmaN, add -logdet(sigmaN) into the cost, and add the constraint sigmaN <= f(K), which can be written as an LMI just as before. This way, I now have sigmaN <= f(K) in addition to sigmaf >= f(K), so it is trying to maximize the final covariance while keeping it lower than sigmaf. The problem is that when I implement this addition into the code, the solver (sdpt3) never converges, and in fact diverges and stops. I am wondering if there is any way to implement what I am trying to do into the SDP. Thank you in advance!