|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.kernel.CompositeEntity
ptolemy.actor.CompositeActor
ptolemy.actor.TypedCompositeActor
ptolemy.domains.continuous.lib.LinearStateSpace
public class LinearStateSpace
Linear state space model in the CT domain.
The State-Space model implements a system whose behavior is defined by:
dx/dt = Ax + Bu y = Cx + Du x(0) = x0where x is the state vector, u is the input vector, and y is the output vector. The matrix coefficients must have the following characteristics:
A must be an n-by-n matrix, where n is the number of states. B must be an n-by-m matrix, where m is the number of inputs. C must be an r-by-n matrix, where r is the number of outputs. D must be an r-by-m matrix.The actor accepts m inputs and generates r outputs through a multi-input port and a multi-output port. The widths of the ports must match the number of rows and columns in corresponding matrices, otherwise, an exception will be thrown.
This actor works like a higher-order function. It is opaque after construction or the change of parameters. Upon preinitialization, the actor will create a subsystem using integrators, adders, and scales. After that, the actor becomes transparent, and the director takes over the control of the actors contained by this actor.
This actor is based on the
LinearStateSpace
actor by Jie Liu.
CTBaseIntegrator
,
Serialized Form
Red (cxh) |
Red (liuj) |
Nested Class Summary |
---|
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity |
---|
CompositeEntity.ContainedObjectsIterator |
Field Summary | |
---|---|
private boolean |
_opaque
|
private boolean |
_requestInitialization
|
Parameter |
A
The A matrix in the state-space representation. |
Parameter |
B
The B matrix in the state-space representation. |
Parameter |
C
The C matrix in the state-space representation. |
Parameter |
D
The D matrix in the state-space representation. |
Parameter |
initialStates
The initial condition for the state variables. |
TypedIOPort |
input
Multi-input port. |
TypedIOPort |
output
Multi-output port. |
TypedIOPort |
stateOutput
State output multiport. |
Fields inherited from class ptolemy.actor.CompositeActor |
---|
_actorFiringListeners, _causalityInterface, _initializables, _notifyingActorFiring, _publishedPorts, _publisherRelations, _stopRequested |
Fields inherited from class ptolemy.kernel.CompositeEntity |
---|
_levelCrossingLinks |
Fields inherited from class ptolemy.kernel.util.NamedObj |
---|
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Fields inherited from interface ptolemy.actor.Executable |
---|
COMPLETED, NOT_READY, STOP_ITERATING |
Constructor Summary | |
---|---|
LinearStateSpace(CompositeEntity container,
java.lang.String name)
Construct the composite actor with a name and a container. |
|
LinearStateSpace(Workspace workspace)
Construct a LinearStateSpace in the specified workspace with no container and an empty string as a name. |
Method Summary | |
---|---|
private void |
_checkParameters()
Check the dimensions of all parameters and ports. |
private void |
_init()
Initialize the class. |
private void |
_requestInitialization()
Set this composite actor to opaque and request for reinitialization from the director if there is one. |
void |
attributeChanged(Attribute attribute)
If the argument is A, B, C, D or initialState parameters, check that they are indeed matrices and vectors, and request for initialization from the director if there is one. |
Director |
getDirector()
Return the executive director, regardless what isOpaque() returns. |
boolean |
isOpaque()
Return the opaqueness of this composite actor. |
boolean |
postfire()
Request the reinitialization. |
void |
preinitialize()
Sanity check the parameters; if the parameters are legal create a continuous-time subsystem that implement the model, preinitialize all the actors in the subsystem, and set the opaqueness of this actor to true. |
void |
stopFire()
Stop the current firing. |
void |
wrapup()
Set the opaqueness back to true and call the wrapup() method of the super class. |
Methods inherited from class ptolemy.actor.TypedCompositeActor |
---|
_addEntity, _addPort, _addRelation, _checkTypesFromTo, _typeConstraintsFromTo, newPort, newRelation, resolveTypes, typeConstraintList, typeConstraints |
Methods inherited from class ptolemy.kernel.ComponentEntity |
---|
_checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
---|
_removePort, connectedPortList, connectedPorts, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts |
Methods inherited from class ptolemy.kernel.InstantiableNamedObj |
---|
_setParent, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface ptolemy.actor.Actor |
---|
createReceivers, getCausalityInterface, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList |
Methods inherited from interface ptolemy.actor.Executable |
---|
fire, isFireFunctional, isStrict, iterate, prefire, stop, terminate |
Methods inherited from interface ptolemy.actor.Initializable |
---|
addInitializable, initialize, removeInitializable |
Methods inherited from interface ptolemy.kernel.util.Nameable |
---|
description, getContainer, getDisplayName, getFullName, getName, getName, setName |
Methods inherited from interface ptolemy.kernel.util.Derivable |
---|
getDerivedLevel, getDerivedList, propagateValue |
Field Detail |
---|
public TypedIOPort input
public TypedIOPort output
public TypedIOPort stateOutput
public Parameter A
public Parameter B
public Parameter C
public Parameter D
public Parameter initialStates
private boolean _opaque
private boolean _requestInitialization
Constructor Detail |
---|
public LinearStateSpace(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
container
- The container.name
- The name.
NameDuplicationException
- If another entity already had
this name.
IllegalActionException
- If there was an internal problem.public LinearStateSpace(Workspace workspace) throws IllegalActionException, NameDuplicationException
workspace
- The workspace that will list the actor.
IllegalActionException
- If the name has a period in it, or
the director is not compatible with the specified container.
NameDuplicationException
- If the container already contains
an entity with the specified name.Method Detail |
---|
public void attributeChanged(Attribute attribute) throws IllegalActionException
attributeChanged
in class NamedObj
attribute
- The attribute that changed.
IllegalActionException
- If the numerator and the
denominator matrix is not a row vector.public Director getDirector()
getDirector
in interface Actor
getDirector
in class CompositeActor
CompositeActor.setDirector(Director)
public boolean isOpaque()
isOpaque
in class CompositeActor
CompositeEntity
public boolean postfire() throws IllegalActionException
postfire
in interface Executable
postfire
in class CompositeActor
IllegalActionException
- If thrown by super class.public void preinitialize() throws IllegalActionException
preinitialize
in interface Initializable
preinitialize
in class CompositeActor
IllegalActionException
- If there is no CTDirector,
or any contained actors throw it in its preinitialize() method.public void stopFire()
stopFire
in interface Executable
stopFire
in class CompositeActor
public void wrapup() throws IllegalActionException
wrapup
in interface Initializable
wrapup
in class CompositeActor
IllegalActionException
- If there is no director.private void _checkParameters() throws IllegalActionException
IllegalActionException
- If the dimensions are illegal.private void _init() throws IllegalActionException, NameDuplicationException
IllegalActionException
NameDuplicationException
private void _requestInitialization()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |