[SciPy-Dev] Pole placement

Irvin Probst irvin.probst at ensta-bretagne.fr
Wed Nov 26 16:06:23 EST 2014


On Wed, 26 Nov 2014 21:29:11 +0100, Ralf Gommers wrote:
>
> This function would be useful to add to scipy.signal it looks like.
> Contribution very welcome. You cannot submit code that you translated
> from Matlab though, you'd have to implement it based on a paper
> describing the algorithm or translate it from BSD-compatible code.


The problem is that matlab's function was written in 1986 using the 
paper describing the algorithm I wished to implement (I realized that 
only after looking at this paper).
Whatever I'll do it will still be the same algorithm providing the same 
solution, which in the end is not a bad thing as matlab's place() is 
probably the most used pole placement function.
Of course I can obfuscate it such as it does not look like matlab's 
code but you can't change the fact that I wrote it while reading 
matlab's code...

Do you have any advices on what I should do ? If it can be of any help 
see at the end of this email the header of matlab's place.m.

There is also an algorithm in Scilab (I can't remember the main author 
name) but it's written in Fortran and I'm not fluent in this language...

Source is here: 
http://people.eng.unimelb.edu.au/mcgood/ctrl433/matlab/place.m


function [K,prec,message] = place(A,B,P)
%PLACE  Pole placement technique
%
%   K = PLACE(A,B,P)  computes a state-feedback matrix K such that
%   the eigenvalues of  A-B*K  are those specified in vector P.
%   No eigenvalue should have a multiplicity greater than the
%   number of inputs.
%
%   [K,PREC,MESSAGE] = PLACE(A,B,P)  returns PREC, an estimate of how
%   closely the eigenvalues of A-B*K match the specified locations P
%   (PREC measures the number of accurate decimal digits in the actual
%   closed-loop poles).  If some nonzero closed-loop pole is more than
%   10% off from the desired location, MESSAGE contains a warning
%   message.
%
%   See also  ACKER.

%   M. Wette 10-1-86
%   Revised 9-25-87 JNL
%   Revised 8-4-92 Wes Wang
%   Revised 10-5-93, 6-1-94 Andy Potvin
%   Revised 4-11-2001 John Glass, Pascal Gahinet
%
%   Ref:: Kautsky, Nichols, Van Dooren, "Robust Pole Assignment in 
Linear
%         State Feedback," Intl. J. Control, 41(1985)5, pp 1129-1155
%

%   Copyright 1986-2001 The MathWorks, Inc.
%   $Revision: 1.13 $  $Date: 2001/08/27 12:58:53 $



More information about the SciPy-Dev mailing list