You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Implement a better algorithm for pole placement #117
Hello!
I've happened to compare pole placement with Matlab's, and found out that returned matrix doesn't make the poles fall in the chosen values.
I made an example script just like python-control/examples/slicot-test.py for matlab and python.
The problemis related to the MIMO system: it doesn't have a unique
solution! SW like Matlab or Scilab or Scicoslab use algorithms that are
able to find well conditioned solutions, python not!
For my lab I've implemented a replacement of the usual python "place"
command, in order to implement a wrapper to old fortran functions, able
to solve this problem finding a good solution. The solution is not
exactly the same found in Matlab, but it is well conditioned and usable
in real experiments.
The implemented SW is available at my homepage (robertobucher.dti.supsi.ch)
Roberto
On 10/11/2016 04:44 PM, Vitor Matos wrote:
Hello!
I've happened to compare pole placement with Matlab's, and found out
that returned matrix doesn't make the poles fall in the chosen values.
I made an example script just like
|python-control/examples/slicot-test.py| for matlab and python.
I think we should leave this issue open. We should do one of the following:
Replace the current python-control place function with 'scipy.signal.place_poles'
Rewrite the current python-control place to provide well-conditioned solutions
I think I prefer the first as long as scipy.signal.place_poles is compatible. We would just convert control.place to a wrapper function (we already require scipy as a dependency).
It seems like this issue is already solved as there are now 4 possible ways to make pole placement (2 from scipy, one from slycot and one last without dependency).
Activity
robertobucher commentedon Oct 11, 2016
The problemis related to the MIMO system: it doesn't have a unique
solution! SW like Matlab or Scilab or Scicoslab use algorithms that are
able to find well conditioned solutions, python not!
For my lab I've implemented a replacement of the usual python "place"
command, in order to implement a wrapper to old fortran functions, able
to solve this problem finding a good solution. The solution is not
exactly the same found in Matlab, but it is well conditioned and usable
in real experiments.
The implemented SW is available at my homepage (robertobucher.dti.supsi.ch)
Roberto
On 10/11/2016 04:44 PM, Vitor Matos wrote:
vmatos commentedon Oct 11, 2016
Thank you Roberto!
Meanwhile I found that scipy already has
scipy.signal.place_poles, which results in the same as Matlab for this system.murrayrm commentedon Oct 11, 2016
I think we should leave this issue open. We should do one of the following:
placefunction with 'scipy.signal.place_poles'placeto provide well-conditioned solutionsI think I prefer the first as long as
scipy.signal.place_polesis compatible. We would just convertcontrol.placeto a wrapper function (we already require scipy as a dependency).[-]Pole placement not right?[/-][+]Implement a better algorithm for pole placement[/+]don4get commentedon Jan 5, 2019
It seems like this issue is already solved as there are now 4 possible ways to make pole placement (2 from scipy, one from slycot and one last without dependency).
murrayrm commentedon Jun 9, 2019
Issue is resolved. Current
placefunction uses SciPy and there are alternatives available (place_varga,acker).