This
from control import ss, hinfsyn
# from control import tf, augw
# g = tf([1],[1,0.75])
# w1 = tf([1,1.25],[1.25,0.0125])
# p = augw(g,w1)
p = ss([[-0.01, -0.992],
[ 0. , -0.75 ]],
[[ 0.992, 0. ],
[ 0. , 1. ]],
[[ 1. , -0.8],
[ 0. , -1. ]],
[[ 0.8, 0. ],
[ 1., 0. ]])
k,n,gamma,rcond = hinfsyn(p,1,1)
takes very long to report that a stabilizing controller cannot be found (or so I assume: I gave up waiting). I changed the initial gamma in control.robust.hinfsyn from 1e100 (!!!) from 1e2, up to 1e5, and found execution time (best of 3 in each case):
| gamma |
time [s] |
| 1e2 |
0.8 |
| 1e3 |
0.9 |
| 1e4 |
2.3 |
| 1e5 |
15.7 |
If I add "job=1" to the sb10ad argument list, the run-time drops back to 0.8s for initial gamma of 1e5, and also for 1e100.
The sb10ad SLICOT SB10AD comments say "job=3", the Slycot default, is the fastest. job=1 might be bisection search (I don't understand what the SLICOT docs say; Slycot help comment claims job=1 is bisection.)
I don't know what a good initial gamma value is; an old reference of mine says 1e6 is "very large"; this is Maciejowski, published in 1989.
So, possible fixes are to change the SB10AD search type via the job parameter, or to reduce the initial gamma value.
This
takes very long to report that a stabilizing controller cannot be found (or so I assume: I gave up waiting). I changed the initial gamma in control.robust.hinfsyn from 1e100 (!!!) from 1e2, up to 1e5, and found execution time (best of 3 in each case):
If I add "job=1" to the sb10ad argument list, the run-time drops back to 0.8s for initial gamma of 1e5, and also for 1e100.
The sb10ad SLICOT SB10AD comments say "job=3", the Slycot default, is the fastest. job=1 might be bisection search (I don't understand what the SLICOT docs say; Slycot help comment claims job=1 is bisection.)
I don't know what a good initial gamma value is; an old reference of mine says 1e6 is "very large"; this is Maciejowski, published in 1989.
So, possible fixes are to change the SB10AD search type via the job parameter, or to reduce the initial gamma value.