Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Abstraction for manipulating LTI systems #13

Closed
arvoelke opened this issue Jan 22, 2016 · 2 comments
Closed

Abstraction for manipulating LTI systems #13

arvoelke opened this issue Jan 22, 2016 · 2 comments

Comments

@arvoelke
Copy link
Owner

Create a class that accepts a system in any number of forms:

  • state-space
  • transfer function
  • zero-pole
  • nengo.synapses.LinearFilter

Then functions such as impulse, is_exp_stable, scale_state, and state_norm must accept these objects. The objects may also support multiplication, operation, and comparisons.

@arvoelke arvoelke added this to the Alpha milestone Jan 22, 2016
@arvoelke arvoelke mentioned this issue Jan 22, 2016
20 tasks
@arvoelke
Copy link
Owner Author

Also might as well make it handle MIMO, thereby addressing scipy/scipy#5753

@arvoelke
Copy link
Owner Author

Basic functionality in 641662c, supports:

  • state-space
  • SISO transfer function
  • addition
  • multiplication
  • powers
  • inversion

Currently reconsidering the challenge of handling MIMO. One issue is that multiplication is no longer associative. Another issue is it becomes difficult to disambiguate the many possible representations for the system. In particular, if the shape of the array has two dimensions, it could be SIMO, MISO, or even MIMO with a mismatch in the lengths of the numerator polynomials. Finally all the use cases and examples are currently SISO and so I'm afraid this just introduces unnecessary complexity (at least for now).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant