octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: matrix exponential used by the control package


From: Torsten Lilge
Subject: Re: matrix exponential used by the control package
Date: Tue, 21 Jul 2020 07:22:55 +0200

On Mon, 2020-07-20 at 17:22 -0400, Doug Stewart wrote:
> 
> 
> On Mon, Jul 20, 2020 at 4:38 PM Torsten Lilge1960 Blue Heron Drive, <
> ttl-octave@mailbox.org> wrote:
> > Hi everyone,
> > 
> > the control package uses the SLICOT function mb05nd [1]
> > (__sl_mb05nd__()) instead of the octave function expm() for the
> > matrix
> > exponential. The problem with mb05nd is that when discretizing a
> > static
> > gain in state space results in 
> > 
> > >> [a,b,c,d] = ssdata (c2d (ss (tf (1,1)),1))
> > a = [](1x0)
> > b = 0
> > c = [](1x0)
> > d = 1
> > 
> > Instead, using expm() leads to the correct result
> > 
> > >> [a,b,c,d] = ssdata (c2d (ss (tf (1,1)),1))
> > a = [](0x0)
> > b = [](0x1)
> > c =
> > [](1x0)
> > d = 1
> > 
> > Are there any reasons against using expm()?
> > 
> > Torsten
> > 
> > 
> > [1] http://slicot.org/objects/software/shared/doc/MB05ND.html
> > 
> > 
> 
> Is there a difference in speed?
> If it is slower then we should look and see where the '0" is coming
> from.


__sl_mb05nd__ is a compiled function and - at least on my system -
approx. 20 times faster.

Torsten





reply via email to

[Prev in Thread] Current Thread [Next in Thread]