JuliaControl / ControlSystems.jl

A Control Systems Toolbox for Julia
https://juliacontrol.github.io/ControlSystems.jl/stable/
Other
509 stars 85 forks source link

Implementation of `place` for MIMO systems #854

Closed baggepinnen closed 1 year ago

baggepinnen commented 1 year ago

This PR implements the robust pole placement algorithm from

"Robust Pole Assignment in Linear State Feedback", Kautsky, Nichols, Van Dooren

This implementation uses "method 0" for the X-step and the QR factorization for all factorizations.

The current implementation works most of the time, but struggles with accuracy for some systems. A possible improvement is to switch "method 0" for any of "methods 2/3" from the paper for the X step.

codecov[bot] commented 1 year ago

Codecov Report

Merging #854 (6b0b9e3) into master (a82bf19) will not change coverage. The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #854   +/-   ##
=======================================
  Coverage   92.72%   92.72%           
=======================================
  Files           5        5           
  Lines         330      330           
=======================================
  Hits          306      306           
  Misses         24       24           
JuliaControlBot commented 1 year ago
This is an automated message. Plots were compared to references. 11/11 images have changed, see differences below. After pulling this PR, please update the reference images by creating a PR to ControlExamplePlots.jl here. Difference Reference Image New Image
:x: 0.047 Reference New
:heavy_check_mark: 0.011 Reference New
:heavy_check_mark: 0.001 Reference New
:heavy_check_mark: 0.001 Reference New
:heavy_check_mark: 0.007 Reference New
:heavy_check_mark: 0.003 Reference New
:heavy_check_mark: 0.0 Reference New
:warning: 0.028 Reference New
:x: 0.06 Reference New
:heavy_check_mark: 0.0 Reference New
:warning: 0.017 Reference New
JuliaControlBot commented 1 year ago
This is an automated message. Plots were compared to references. 11/11 images have changed, see differences below. After pulling this PR, please update the reference images by creating a PR to ControlExamplePlots.jl here. Difference Reference Image New Image
:x: 0.047 Reference New
:heavy_check_mark: 0.011 Reference New
:heavy_check_mark: 0.001 Reference New
:heavy_check_mark: 0.001 Reference New
:heavy_check_mark: 0.007 Reference New
:heavy_check_mark: 0.003 Reference New
:heavy_check_mark: 0.0 Reference New
:warning: 0.028 Reference New
:x: 0.06 Reference New
:heavy_check_mark: 0.0 Reference New
:warning: 0.017 Reference New
JuliaControlBot commented 1 year ago
This is an automated message. Plots were compared to references. 11/11 images have changed, see differences below. After pulling this PR, please update the reference images by creating a PR to ControlExamplePlots.jl here. Difference Reference Image New Image
:x: 0.047 Reference New
:heavy_check_mark: 0.011 Reference New
:heavy_check_mark: 0.001 Reference New
:heavy_check_mark: 0.001 Reference New
:heavy_check_mark: 0.007 Reference New
:heavy_check_mark: 0.003 Reference New
:heavy_check_mark: 0.0 Reference New
:warning: 0.028 Reference New
:x: 0.06 Reference New
:heavy_check_mark: 0.0 Reference New
:warning: 0.017 Reference New
JuliaControlBot commented 1 year ago
This is an automated message. Plots were compared to references. 11/11 images have changed, see differences below. After pulling this PR, please update the reference images by creating a PR to ControlExamplePlots.jl here. Difference Reference Image New Image
:x: 0.047 Reference New
:heavy_check_mark: 0.011 Reference New
:heavy_check_mark: 0.001 Reference New
:heavy_check_mark: 0.001 Reference New
:heavy_check_mark: 0.007 Reference New
:heavy_check_mark: 0.003 Reference New
:heavy_check_mark: 0.0 Reference New
:warning: 0.028 Reference New
:x: 0.06 Reference New
:heavy_check_mark: 0.0 Reference New
:warning: 0.017 Reference New