Skip to content

Bugs in InterconnectedSystem: different dt's [fixed] and non-proper TFs [open] #399

@samlaf

Description

@samlaf

Hi, I found a bug in InterconnectedSystem when connecting two systems with different dt, one of which is None. I believe the correct semantic is for the new system to take the dt of the non-None system, but the way it is implemented, the order of the systems matters.

import control as ct
sys1 = ct.tf2io(ct.tf('s'))
sys2 = ct.NonlinearIOSystem(lambda t,x,u: x, name='sys2', states=('x'), inputs=('u'))
ct.InterconnectedSystem((sys2,sys1))

This code works, but changing the order of sys1 and sys2, as in ct.InterconnectedSystem((sys1,sys2)) gives a bug:

TypeError Traceback (most recent call last)
in
2 sys1 = ct.tf2io(ct.tf('s'))
3 sys2 = ct.NonlinearIOSystem(lambda t,x,u: x, name='sys2', states=('x'), inputs=('u'))
----> 4 ct.InterconnectedSystem((sys1,sys2))

/usr/local/lib/python3.7/site-packages/control-0.8.3-py3.7.egg/control/iosys.py in init(self, syslist, connections, inplist, outlist, inputs, outputs, states, params, dt, name)
892 dt = sys.dt
893 elif dt != sys.dt:
--> 894 raise TypeError("System timebases are not compatible")
895
896 # Make sure number of inputs, outputs, states is given

TypeError: System timebases are not compatible

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    pFad - Phonifier reborn

    Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

    Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


    Alternative Proxies:

    Alternative Proxy

    pFad Proxy

    pFad v3 Proxy

    pFad v4 Proxy