|
|
where x is the state of the system, u is the input, y is the output, f() is the state transition map and g() is the output map.dx/dt = f(x, u, t)
y = g(x, u, t)
The system is built using actors. That is, all the functions, f() and g(), are built up by chains of actors. For higher order systems, x is a vector, built using more than one integrator. In general, actors that have the functionality of integration from their inputs to their outputs are called dynamic actors. Other actors are called arithmetic actors.
In order to interact with discrete domains, some actors in the CT domain are able to convert continuous waveforms to discrete events, and vice versa. An actor that has continuous input and discrete output is call an event generator; an actor that has discrete input and continuous output is called a waveform generator.
The interaction with some discrete domains requires that the CT simulation be able to remember its state and roll-back to the remembered state when needed. This in turn requires that all actors that have internal states to be able to remember and restore their states. These actors are called stateful actors.
In continuous-time simulation, time progresses in a discrete way. The distance between two consecutive time points is called the integration step size or step size, for short. Some actors may put constraints on the choice of the step size. These actors are called step size control actors. Examples of step size control actors include integrators, which control the accuracy and speed of numerical ODE solutions, and event generators, which produce discrete events.
To help with scheduling, the actors are partitioned into several clusters, including continuous actors, discrete actors, arithmetic actors, stateTransition actors, dynamic actors, sink actors, event generators, waveform generators, CT subsystems , and non-CT subsystems. This scheduler uses the cluster information and the system topology to provide the firing sequences for evaluating f() and g(). It also provides a firing order for all the dynamic actors. The firing sequence for evaluating f() is called the state transition schedule; the firing sequence for evaluating g() is called the output schedule; and the firing sequence for dynamic actors is called the dynamic actor schedule.
The state transition schedule is the actors in the f() function sorted in topological order, such that, after the integrators emit their state x, a chain of firings according to the schedule evaluates the f() function and returns tokens corresponding to dx/dt to the integrators.
The output schedule is the actors in the g() function sorted in their topological order.
The dynamic actor schedule is a list of dynamic actors in their reverse topological order.
If there are loops of arithmetic actors or loops of integrators, then the (sub)system are not schedulable, and a NotSchedulableException will be thrown if schedules are requested.
This CTScheduler does not support mutation.
Author(s): Jie Liu, Haiyang Zheng, Ye Zhou
Version:$Id: CTScheduler.java,v 1.161 2006/04/14 18:52:00 hyzheng Exp $
Pt.Proposed Rating:Yellow (hyzheng)
Pt.Accepted Rating:Red (hyzheng)
|
|