Why does the STABSEP function in the Control System Toolbox 6.2 (R14SP2) give incorrect results?
12 views (last 30 days)
Show older comments
I use the STABSEP function on a system "sys" to decompose it into its stable and unstable parts. If the system "sys" is stable, I expect that the unstable part received on the execution of the STABSEP will be 0. However, I observe that the STABSEP function gives a non-zero unstable part, which is incorrect.
pole(sys);
[syss, sysus] = stabsep(sys);
Accepted Answer
MathWorks Support Team
on 27 Jun 2009
This enhancement has been incorporated in Release 2006b (R2006b). For previous product releases, read below for any possible workarounds:
This enhancement has been incorporated in Release 2006a (R2006a). For previous product releases, read below for any possible workarounds:
This issue has been addressed by the new scaling algorithms in Control System Toolbox 7.0 (R2006a). If you are using a previous version, read the following:
There are some numerical difficulties in the Control System Toolbox 6.2 (R14SP2) in the way the STABSEP function handles systems with poles spread over a wide range.
As a workaround you can use
a = [1 1e4 1e2;0 1e2 1e5;10 1 0];
b = [1;1;1];
c = [0.1 10 1e2];
sys = ss(a,b,c,0) %create a system sys
[syss, sysus] = stabsep(ssbal(sys)); % performs full balancing of sys.a
instead of
[syss, sysus] = stabsep(sys);
where “sys” is the LTI model you want to decompose into its stable and unstable parts.
0 Comments
More Answers (0)
See Also
Categories
Find more on Model Order Reduction in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!