[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