Package ptolemy.domains.de.lib
Class Integrator
- java.lang.Object
- 
- All Implemented Interfaces:
- java.lang.Cloneable,- Actor,- Executable,- FiringsRecordable,- Initializable,- SequenceActor,- TimedActor,- TypedActor,- Changeable,- Debuggable,- DebugListener,- Derivable,- Instantiable,- ModelErrorHandler,- MoMLExportable,- Moveable,- Nameable
 
 public class Integrator extends DETransformer Output the discrete integral of the input. Inputs are multiplied by the time gap from the previous input and accumulated. Output is not generated until two inputs have been consumed.The output type of this actor is forced to be double. In postfire(), if an event is present on the reset port, this actor resets to its initial state, and will not output until two subsequent inputs have been consumed. This is useful if the input signal is switched on and off, in which case the time gap between events becomes large and would otherwise effect the value of the integral. The integrator performs linear interpolation between input events, where the output of the integrator follows the equation y[n] = y[n-1] + (x[n-1] + x[n])*dt/2 where dt is the time differential between events. This equates to the trapezoidal method of approximating a Riemann integral. - Since:
- Ptolemy II 8.0
- Version:
- $Id$
- Author:
- Jeff C. Jensen
- See Also:
- Accumulator
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from class ptolemy.kernel.EntityEntity.ContainedObjectsIterator
 
- 
 - 
Field SummaryFields Modifier and Type Field Description ParameterinitialValueThe value produced by the actor on its first iteration.TypedIOPortresetThe reset port, which has undeclared type.- 
Fields inherited from class ptolemy.domains.de.lib.DETransformerinput, output
 - 
Fields inherited from class ptolemy.actor.TypedAtomicActor_typesValid
 - 
Fields inherited from class ptolemy.actor.AtomicActor_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
 - 
Fields inherited from class ptolemy.kernel.util.NamedObj_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 - 
Fields inherited from interface ptolemy.actor.ExecutableCOMPLETED, NOT_READY, STOP_ITERATING
 
- 
 - 
Constructor SummaryConstructors Constructor Description Integrator(CompositeEntity container, java.lang.String name)Construct an actor with the given container and name.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectclone(Workspace workspace)Clone the actor into the specified workspace.voidfire()Consume at most one token from the input port and output the average of it and the previous input (linear interpolation), multiplied by the time gap between the two events.voidinitialize()Reset to indicate that no input has yet been seen.booleanpostfire()Record the most recent input as the latest input.protected voidresetAccumulation()Reset value of the accumulator to either an initial value or null.- 
Methods inherited from class ptolemy.actor.TypedAtomicActor_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
 - 
Methods inherited from class ptolemy.actor.AtomicActor_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup
 - 
Methods inherited from class ptolemy.kernel.ComponentEntity_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
 - 
Methods inherited from class ptolemy.kernel.Entity_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
 - 
Methods inherited from class ptolemy.kernel.InstantiableNamedObj_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
 - 
Methods inherited from class ptolemy.kernel.util.NamedObj_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
 - 
Methods inherited from class java.lang.Objectequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from interface ptolemy.actor.ActorcreateReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 - 
Methods inherited from interface ptolemy.kernel.util.DerivablegetDerivedLevel, getDerivedList, propagateValue
 - 
Methods inherited from interface ptolemy.actor.ExecutableisFireFunctional, isStrict, iterate, prefire, stop, stopFire, terminate
 - 
Methods inherited from interface ptolemy.actor.InitializableaddInitializable, preinitialize, removeInitializable, wrapup
 - 
Methods inherited from interface ptolemy.kernel.util.Nameabledescription, getContainer, getDisplayName, getFullName, getName, getName, setName
 
- 
 
- 
- 
- 
Field Detail- 
resetpublic TypedIOPort reset The reset port, which has undeclared type. If this port receives a token, this actor resets to its initial state, and no output is generated until two inputs have been received.
 - 
initialValuepublic Parameter initialValue The value produced by the actor on its first iteration. The default value of this parameter is the double 0.0.
 
- 
 - 
Constructor Detail- 
Integratorpublic Integrator(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException Construct an actor with the given container and name.- Parameters:
- container- The container.
- name- The name of this actor.
- Throws:
- IllegalActionException- If the actor cannot be contained by the proposed container.
- NameDuplicationException- If the container already has an actor with this name.
 
 
- 
 - 
Method Detail- 
clonepublic java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException Clone the actor into the specified workspace. This calls the base class and then sets the ports.- Overrides:
- clonein class- TypedAtomicActor
- Parameters:
- workspace- The workspace for the new object.
- Returns:
- A new actor.
- Throws:
- java.lang.CloneNotSupportedException- If a derived class has has an attribute that cannot be cloned.
- See Also:
- NamedObj.exportMoML(Writer, int, String),- NamedObj.setDeferringChangeRequests(boolean)
 
 - 
firepublic void fire() throws IllegalActionExceptionConsume at most one token from the input port and output the average of it and the previous input (linear interpolation), multiplied by the time gap between the two events. If there has been no previous iteration, no output is sent unless an initial token has been set. If there is no input, then produce no output.- Specified by:
- firein interface- Executable
- Overrides:
- firein class- AtomicActor<TypedIOPort>
- Throws:
- IllegalActionException- If subtraction or division is not supported by the supplied tokens.
 
 - 
initializepublic void initialize() throws IllegalActionExceptionReset to indicate that no input has yet been seen.- Specified by:
- initializein interface- Initializable
- Overrides:
- initializein class- AtomicActor<TypedIOPort>
- Throws:
- IllegalActionException- If the parent class throws it.
 
 - 
postfirepublic boolean postfire() throws IllegalActionExceptionRecord the most recent input as the latest input. If a reset event has been received, process it here.- Specified by:
- postfirein interface- Executable
- Overrides:
- postfirein class- AtomicActor<TypedIOPort>
- Returns:
- True if execution can continue into the next iteration.
- Throws:
- IllegalActionException- If the base class throws it.
 
 - 
resetAccumulationprotected void resetAccumulation() throws IllegalActionExceptionReset value of the accumulator to either an initial value or null.- Throws:
- IllegalActionException- If the base class throws it
 
 
- 
 
-