A RecursionError is thrown if we try to multiply a statespace MIMO (Multi input single output or Single input Multi output ) model with a statespace/Transfer SISO model. This issue can be worked around by converting the MIMO model to a Transfer object before multiplying.
Sample Multi input single output
G1 = Transfer(
[
[ [1], [1] ]
], # end of num
[1,2,1] # common den
)
G2 = transfer_to_state(G1)
G3 = Transfer([1], [1,0]) #Pure integrator
G4 = G1 G3 will work, but G5 = G2 G3 will cause a RecursionError.
Sample Single input Multi output
G1 = Transfer(
[
[1],
[1]
], # end of num
[1,2,1] # common den
)
G2 = transfer_to_state(G1)
G3 = Transfer([1], [1,0]) #Pure integrator
G4 = G1 G3 will work, but G5 = G2 G3 will cause a RecursionError.
A RecursionError is thrown if we try to multiply a statespace MIMO (Multi input single output or Single input Multi output ) model with a statespace/Transfer SISO model. This issue can be worked around by converting the MIMO model to a Transfer object before multiplying.
Sample Multi input single output
G1 = Transfer( [ [ [1], [1] ] ], # end of num [1,2,1] # common den ) G2 = transfer_to_state(G1) G3 = Transfer([1], [1,0]) #Pure integrator
G4 = G1 G3 will work, but G5 = G2 G3 will cause a RecursionError.
Sample Single input Multi output
G1 = Transfer( [ [1], [1] ], # end of num [1,2,1] # common den ) G2 = transfer_to_state(G1) G3 = Transfer([1], [1,0]) #Pure integrator
G4 = G1 G3 will work, but G5 = G2 G3 will cause a RecursionError.