bugGNU Octave - Bugs: bug #29337, is_stabilizable does not use...

 
 

bug #29337: is_stabilizable does not use tolerance for eigenvalues

Submitted by:  Brett T Stewart <btstewart>
Submitted on:  Thu 25 Mar 2010 05:06:12 PM UTC  
 
Category: NoneSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Incorrect Result
Status: Octave ForgeAssigned to: None
Originator Name: Brett T StewartOpen/Closed: Closed
Release: 3.2.4Operating System: GNU/Linux

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Thu 25 Mar 2010 05:34:45 PM UTC, comment #1:

This function was moved from Octave to the Octave Forge control package when Octave 3.2.0 was released, so I'm closing this report for Octave. You should report this problem to the maintainer of the Octave Forge control package instead. See http://octave.sourceforge.net/bugs.html

John W. Eaton <jwe>
Project Administrator
Thu 25 Mar 2010 05:06:12 PM UTC, original submission:

The function is_stabilizable accepts a tolerance

retval = is_stabilizable (A, B, tol, dflg)

but this tolerance is not used when determining if the eigenvalues of A are stable.

Here is an example:

A = -sqrt(eps)/2;
B = 0;

tol = sqrt(eps);

octave:1> retval = is_stabilizable(A,B,tol)
retval = 1

In this case, tol > eig(A) > 0, and therefore (A,B) should be considered not stabilizable.

Below is a patch

##Computing the eigenvalue of A
L = eig (a);
retval = 1;
specflag = 0;
for i = 1:n
if (disc == 0)
## Continuous time case
rL = real (L(i));
if (rL >= -tol)
H = [eye(n)*L(i)-a, b];
f = (rank (H, tol) == n);
if (f == 0)
retval = 0;
if (abs(rL) <= tol)
specflag = 1;
endif
endif
endif
else
## Discrete time case
rL = abs (L(i));
if (rL >= 1-tol)
H = [eye(n)*L(i)-a, b];
f = (rank (H, tol) == n);
if (f == 0)
retval = 0;
if (abs(rL-1) <= tol)
specflag = 1;
endif
endif
endif
endif
endfor

I haven't looked at is_detectable, but I assume this function will need to be similarly changed too.

Thanks,
Brett

Brett T Stewart <btstewart>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #20028:  is_stabilizable.m added by btstewart (3KiB - text/x-objcsrc)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by jwe (Posted a comment)
  • -unavailable- added by btstewart (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 25 Mar 2010 05:39:42 PM UTCjweStatusNone=>Octave Forge
      Open/ClosedOpen=>Closed
    Thu 25 Mar 2010 05:06:12 PM UTCbtstewartAttached File-=>Added is_stabilizable.m, #20028

    Back to the top


    Powered by Savane 3.1-cleanup1