help-octave
[Top][All Lists]
Advanced

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

control-2.8.2 issues (was Re: control package, odd behavior multiplying


From: Nicholas Jankowski
Subject: control-2.8.2 issues (was Re: control package, odd behavior multiplying tf's)
Date: Mon, 15 Jun 2015 22:58:07 -0400

On Sat, Jun 13, 2015 at 1:21 AM, Sunil Shah <address@hidden> wrote:
Nothing in floating point arithmetic is really associative; only within numerical conditioning bounds.

Perhaps you are creating a Jordan structure, connecting identical  tf chains in series, and blowing up the matrix conditioning.   

Check the conditioning of the eigenvectors system matrix of the series connected system to see if this is the case.  

If each of the series connected system is numerically different, this problem goes away.  

Sunil Shah


On Fri, Jun 12, 2015 at 9:11 PM, Nicholas Jankowski <address@hidden> wrote:


>
> I confirm your results.
>
> I also tried a SISO system
>
>  a3=tf( [2 24],[1 4 7] )
>  a4=a3*a3
>  a5=a3*a4
>  a6=a4*a3
> but this worked correctly.
>
> a simpler example of your equation is:
>  a1 = tf({[2 24],[12];[1 48 0],[2 24]},{[-1 24],[-1 24];[-4 96],[-1 24]});
> a2=a1*a1;
> a3=a2*a1
> a4=a1*a2
>
>  
>
> --
> DAS
>

Thanks Doug. So, bug? Or some expected behavior I do not fathom yet?




just tried rerunning in control-2.8.2, wondering if the behavior was the same.  get an error trying to multiply tfs (maybe something about the  conversion to state-space?)

>> a1 = tf({[2 24],[12];[1 48 0],[2 24]},{[-1 24],[-1 24];[-4 96],[-1 24]});
>> a2 =a1; a3 = a1; a4 = a1;
>> a1*a2*a3*a4
warning: tf: converting to minimal state-space for MIMO TF interconnections
warning: called from
    __sys_connect__ at line 115 column 5
    mtimes at line 58 column 7
warning: tf: converting to minimal state-space for MIMO TF interconnections
warning: tf: converting to minimal state-space for MIMO TF interconnections
error: subscript indices must be either positive integers less than 2^31 or logicals
error: called from
    __sys2ss__> at line -1 column -1
    __sys2ss__ at line 50 column 10
    ss at line 175 column 17
    __sys_connect__ at line 116 column 9
    mtimes at line 58 column 7
error: evaluating argument list element number 1
error: called from
    __sys_connect__ at line 116 column 9
    mtimes at line 58 column 7
error: evaluating argument list element number 1
error: called from
    __sys_connect__ at line 116 column 9
    mtimes at line 58 column 7


taking it a step at a time:
a1*a2 works fine
ans*a3 gives a strange output
ans*a4 gives the same error.



**note: I went back to 2.8.1, and things work.  But also noticed that a 5th multiply gives you an odd, erroneous output.  (a1*a1*a1*a1*a1 or a1**5)

**note2: anytime I try to uninstall the control package (any version), I get:
error: couldn't delete directory C:\Octave\octave-4.0.0\lib\octave\package
s\control-2.8.2\i686-w64-mingw32-api-v50+: Permission denied.


nick j.

reply via email to

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