Krishna Myneni <
krishna...@ccreweb.org> writes Re: evplace (eigenvalue placement)
> On Jun 4, 1:47 pm,
m...@iae.nl (Marcel Hendrix) wrote:
[..]
> Is this the ev->coeffs word that caused you a problem?
> Does the
> present code work for the general case?
In my application p(z) will always have real coefficients. This is
equivalent to saying that the poles p1,..pn are either real or appear
in complex conjugated pairs. Arbitrary isolated complex poles don't
happen in electrical networks. I use this fact to make the type of
p(z) DOUBLE instead of COMPLEX. However, with a slight change the
code should work for complex coefficients, too (and be even simpler).
[..]
>> Having evplace, obsv, and ctrb means one doesn't need access to Matlab
>> for the design of simple digital controllers.
> Does it apply as well to continuous analog controllers, or does your
> implementation assume some sort of discretization?
I use this for digitally controlled power electronics circuitry.
The code that I've shown only works when an analog circuits is
sampled, i.e. dx/dt = A x + B u should be converted to x[k+1] =
Phi x[k] + Gamma u[k]. This can be done by using the EXPM function
(exponential matrix) and Van Loan's famous formula to prevent
integrating the B u term. The pi are poles in the Z domain, and
for a stable system they have the property that zabs(pi) <= 1.
Maybe this can be used to further simplify the code.
An SMPS is inherently a discrete circuit.
-marcel