Hello Lukas I am not sure I understand this scaling thing. Does it means simply to scale the states by some constant so that the CARE will be well conditioned? I will try that. If I am wrong I will appreciate if you can provide me some Ref.
I started to read a little bit on the methods for the solution of CARE. It seems that when R is nearly singular the "The Inverse-Free Generalized Schur Method" is preferable than the "Generalized Schur Method" [1]. He also states that this is the method used in MATLAB for the case when R is nearly singular. That might be another possible approach for the solution of this problem. Sincerely Ido [1] Biswa Nath Datta (2004) ``Numerical Methods for Linear Control Systems - Design and Analysis". Elsevier -----Original Message----- From: Lukas Reichlin <lukas.reichlin.li...@gmail.com> To: Ido Halperin <idoh...@gmail.com> Cc: octave-dev@lists.sourceforge.net Subject: Re: [OctDev] problem in solving CARE (continuos algebraic Riccati's equation) for large model Date: Mon, 18 Jun 2012 14:28:12 +0200 On 17.06.2012, at 23:17, Ido Halperin wrote: > Hello Lukas > > I appreciate your quick reply and I a apologize for the delay in my > response. It took me some time to compile octave. Usually I makes use of > debian binaries. > > a. Relating the results you attached, they seems to me erroneous. I > compared the stable eigenvalues of the Hamiltonian: > > S = Bum*(R\Bum'); > H = [Am -S; -Qm -Am']; > lambda1 = eig(H) > > and the eigenvalues of the closed loop system, according to the 'Km' you > attached: > lambda2 = eig(Am - Bum*Km); > > and they differ. > > > > b. I downloaded octave 3.6.2 source and lapack 3.4.1 from netlib and > compiled them. It didn't helped. It gives the following: > > > octave:33> [Km riccPm] = lqr(Am,Bum,Qm,R); > error: are: 4: after reordering, roundoff changed values of some complex > eigenvalues so that leading eigenvalues in the (generalized) Schur form > no longer satisfy the stability condition; this could also be caused due > to scaling > error: called from: > error: /home/ido/octave/control-2.3.51/care.m at line 162, column 15 > error: /home/ido/octave/control-2.3.51/lqr.m at line 95, column 16 > octave:33> [Km riccPm] = lqr(Am,Bum,Qm,R*3); > error: are: 5: the computed dimension of the solution does not equal N > error: called from: > error: /home/ido/octave/control-2.3.51/care.m at line 162, column 15 > error: /home/ido/octave/control-2.3.51/lqr.m at line 95, column 16 > octave:33> > > > Ido Hi Ido Have you tried to scale your equations in order to enhance numerics? SLICOT has +/- 3 solvers for AREs: SB02MD, SB02OD and SB02RD: Riccati Equations SB02MD Solution of algebraic Riccati equations (Schur vectors method) SB02MT Conversion of problems with coupling terms to standard problems SB02ND Optimal state feedback matrix for an optimal control problem SB02OD Solution of algebraic Riccati equations (generalized Schur method) SB02PD Solution of continuous algebraic Riccati equations (matrix sign function method) with condition and forward error bound estimates SB02QD Condition and forward error for continuous Riccati equation solution SB02RD Solution of algebraic Riccati equations (refined Schur vectors method) with condition and forward error bound estimates SB02SD Condition and forward error for discrete Riccati equation solution I chose SB02OD back in 2010 because it was the easiest one to implement. Unfortunately, SB02OD has no automatic scaling (the other 2 have it) and one of my profs told me that the algorithm is not the most reliable one. Maybe we should try SB02RD in conjunction with SB02MT, and I could ask the SLICOT authors for their advice. Lukas ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Octave-dev mailing list Octave-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/octave-dev