0

I'm working on passivity preserving techniques for frequency weighted model order reduction. In my case I have to solve an algebraic Riccati equation using MATLAB. But in MATLAB function reference the equation must be something like this: $$A^TX+XA-XBB^TX+Q =0$$ but my equation is something like this:$$A^TX+XA+XBB^TX+Q =0$$ I have to use "care" command of MATLAB but I'm having difficulty here. Any help would be appreciated.

kingW3
  • 13,496

1 Answers1

1

By multiplying your equation with $-1$ we get \begin{aligned} A^TX+XA+XBB^TX+Q &= 0 \implies\\ -A^TX-XA -XBB^TX -Q &= 0 \implies\\ A^T(-X)+(-X)A -(-X)BB^T(-X) -Q &= 0 \end{aligned}

Hence you can solve $$A^T Y +YA-YBB^TY+R=0 $$ where $Y = -X$ (hence, after solving for $Y$ you need to reverse its sign to get $X$) and $R = -Q$.

(This is assuming that there are not some requirements on the matrices that are invalidated when reversing the sign. It's been a while since I worked on Riccati equations)

Eff
  • 12,989
  • @MrYouMath That was a mistake. – Eff Oct 10 '17 at 15:54
  • This works most of the time but it often shows the error like "Unable to solve the specified Riccati equation because the Hamiltonian spectrum is too close to the imaginary axis." because of putting R = -Q. I would appreciate if you share with me how to deal with this. – Syed Ali Haider Oct 11 '17 at 14:07
  • And if you could guide me about solving dual Riccati equations for finding Observability and Controllability Grammians I would be grateful to you. – Syed Ali Haider Oct 11 '17 at 14:14
  • @SyedAliHaider Unfortunately, I don't know. – Eff Oct 11 '17 at 14:56