1. Background
I'm interested in hybrid systems, mostly simple mechanical models with some driving clock signals. I'm an experimentalist -- so to me, models are usually interesting as candidates for fitting experimental datasets. I like to think of hybrid systems as a state machine with an ODE in each state, and a transition alphabet defined in terms of events of that ODE. This is pretty much how they are implemented, but it turns out it's not quite enough in order to make them "well behaved" mathematical objects.
Hybrid systems raise lots of thorny theoretical issues, like not being defined over the whole parameter range, and also practical problems like propagation of ODE state information between states. I'm using PyDSTool in hopes that it will help me study such hybrid systems more easily than other tools.
2. Concepts
2.1. Trajectories
Most other tools out there use discrete samples for everything. At first blush, I completely missed the centrality of Trajectories to how PyDSTool was designed to be used. Arithmetic on time-series derived from models should be done with the trajectory objects and NOT with the data sampled from them.
2.2. Variables, Auxiliary Variables, etc.
Generators can't use auxiliary variables on the RHS of variables or other Aux variables. That's pretty confusing, and can be somewhat ameliorated using reuseterms (see UserDocumentation) and lots of function specifications. It gets really nasty if parameters of one flow should come from the variables of another flow. I'm working with Rob on some ideas to make this much easier.