[SciPy-User] Integrating a matrix exponential

Ryan Krauss ryanlists@gmail....
Tue Jul 27 10:23:10 CDT 2010


I am trying to discretize a state-space model.  linalg.expm makes this
easy for the plant matrix.  I am having trouble with the input matrix.

The continuous model is

xdot = A*x(t) + B*u

and the discrete time model will be

x(k+1) = G(T) *x(k) + H(T)*u(k)

Following Ogata's "Discrete-Time Control Systems" second edition, page 317:
G(T) = linalg.expm(A*T) #this works great
H(T) = int(expm(A*t)) dt from 0 to T then dot with B

That seems easy enough, and I think I want to use numeric integration
to approximate the integral of expm(A*t).  But is there a method in
scipy.integrate for definite integration of a matrix of integrands?

And is this the best approach?

Thanks,

Ryan


More information about the SciPy-User mailing list