Drake
 All Classes Files Functions Variables
DrakeSystem Class Reference

A DynamicalSystem with the functionality (dynamics, update, outputs, etc) implemented in matlab, so that it is amenable to, for instance, symbolic manipulations. More...

Inheritance diagram for DrakeSystem:
Collaboration diagram for DrakeSystem:

Public Member Functions

function DrakeSystem (num_xc, num_xd, num_u, num_y, direct_feedthrough_flag, time_invariant_flag)
 Construct a DrakeSystem. More...
 
function getInitialState (obj)
 Return a (potentially random) state double (column) vector of initial conditions. More...
 
function dynamics (obj, t, x, u)
 Placeholder for the dynamics method. More...
 
function update (obj, t, x, u)
 Placeholder for the update method. More...
 
function output (obj, t, x, u)
 Placeholder for the output method. Systems must overload this method. More...
 
function zeroCrossings (obj, t, x, u)
 Placeholder for the zeroCrossings method: a method phi = zeroCrossings(t,x,u) which triggers a zero crossing event when phi transitions from positive to negative. More...
 
function getNumContStates (obj)
 Returns the number of continuous states. More...
 
function getNumDiscStates (obj)
 Returns the number of discrete states. More...
 
function getNumInputs (obj)
 Returns the number of inputs to the system. More...
 
function getNumOutputs (obj)
 Returns the number of outputs from the system. More...
 
function getInitialStateWInput (obj, t, x, u)
 Hook in case a system needs to initial state based on current time and/or input. More...
 
function getSampleTime (obj)
 As described at http://www.mathworks.com/help/toolbox/simulink/sfg/f6-58760.html to set multiple sample times, specify one column for each sample time/offset pair. More...
 
function getInputSampleTimes (obj)
 Returns getSampleTime - a DrakeSystem can only have a single same time associated with it. More...
 
function getOutputSampleTimes (obj)
 Returns getSampleTime - a DrakeSystem can only have a single same time associated with it. More...
 
function setSampleTime (obj, ts)
 robust method for setting default sample time More...
 
function isDirectFeedthrough (obj)
 Check if the system is direct feedthrough (e.g., if the output depends on the immediate input) More...
 
function setDirectFeedthrough (obj, tf)
 Set the direct feedthrough flag. More...
 
function getModel (obj)
 Constructs a simulink system block for this system to be used by the simulink engine. More...
 
function findFixedPoint (obj, x0, u0)
 attempts to find a fixed point (xstar,ustar) which also satisfies the constraints, using (x0,u0) as the initial guess. More...
 
function getDefaultInput (obj)
 Define the default initial input so that behavior is well-defined if no controller is specified or if no control messages have been received yet. More...
 
function setNumContStates (obj, num_xc)
 Guards the num_states variable. More...
 
function setNumDiscStates (obj, num_xd)
 Guards the num_states variable. More...
 
function setNumInputs (obj, num_u)
 Guards the num_u variable. More...
 
function setInputLimits (obj, umin, umax)
 Guards the input limits to make sure it stay consistent. More...
 
function setNumOutputs (obj, num_y)
 Guards the number of outputs to make sure it's consistent. More...
 
function getNumZeroCrossings (obj)
 Returns the number of zero crossings. More...
 
function setNumZeroCrossings (obj, num_zcs)
 Guards the number of zero crossings to make sure it's valid. More...
 
function getNumStateConstraints (obj)
 
function getNumUnilateralConstraints (obj)
 
function addStateConstraint (obj, con, xind)
 
function updateStateConstraint (obj, id, con, xind)
 
function displayStateConstraints (obj)
 
function removeAllStateConstraints (obj)
 
function addStateConstraintsToProgram (obj, prog, indices)
 adds state constraints and unilateral constraints to the program on the specified indices. More...
 
function addInputConstraintsToProgram (obj, prog, indices)
 add bounding box constraint todo: consider whether it makes sense to a list of constraints objects instead of just input limits. More...
 
function stateConstraints (obj, x)
 Provides the old interface of a single constraint function which evaluates all of the equality constraints on the state (which should be == 0) More...
 
function linearize (obj, t0, x0, u0)
 Uses the geval engine to linearize the model around the nominal point, at least for the simple case. More...
 
function simulate (obj, varargin)
 
function simulateODE (obj, tspan, x0, options)
 Simulates the system using the ODE45 suite of solvers instead of the simulink solvers. More...
 
function feedback (sys1, sys2)
 Constructs a feedback combination of sys1 and sys2. More...
 
function cascade (sys1, sys2)
 Constructs a cascade combination of sys1 and sys2. More...
 
function extractPolynomialSystem (obj)
 Attempts to symbolically extract the extra structure of a polynomial system from the Drake system Will throw an error if the system is not truly polynomial. More...
 
function extractAffineSystem (obj)
 Attempts to symbolically extract the extra structure of an affine system from the Drake system Will throw an error if the system is not truly affine. More...
 
function extractLinearSystem (obj)
 Attempts to symbolically extract the extra structure of a linear system from the Drake system Will throw an error if the system is not truly linear. More...
 
function makeTrigPolySystem (obj, options)
 deprecated method (due to refactoring): please use extractTrigPolySystem instead More...
 
function systemGradTest (obj, t, x, u, options)
 Compare numerical and analytical derivatives of dynamics,update,and output. More...
 
function extractAffineSystem (obj)
 
function extractTrigPolySystem (sys, options)
 tries to convert the current system into a trig-poly system More...
 
function taylorApprox (sys, varargin)
 performs a taylorApproximation around a point or trajectory usage: taylorApprox(sys,t0,x0,u0,order[,ignores]) or taylorApprox(sys,x0traj,u0traj,order[,ignores]) it returns a polynomial system (or polynomial trajectory system) More...
 
function transverseLQR (obj, xtraj, utraj, Q, R, Qf, transSurf)
 Compute LQR control for transversal system. More...
 
function transverseLQRClosedLoop (obj, xtraj, utraj, Q, R, Vf, transSurf)
 
function tvlqr (obj, xtraj, utraj, Q, R, Qf, options)
 implements the time-varying linear (or affine) quadratic regulator More...
 
- Public Member Functions inherited from DynamicalSystem
function DynamicalSystem ()
 
function inInputFrame (sys, frame)
 Ensures that sys has the specified input frame, by searching for and cascading a coordinate transformation to the existing input if necessary. More...
 
function inStateFrame (sys, frame)
 Ensures that sys has the specified state frame. More...
 
function inOutputFrame (sys, frame)
 Ensures that sys has the specified output frame, by searching for and cascading a coordinate transformation to the existing output if necessary. More...
 
function cascade (sys1, sys2)
 Creates a new system with the output of system 1 connected to the input of system 2. More...
 
function feedback (sys1, sys2)
 Creates a new systems with sys1 and sys2 in a feedback interconnect (with sys1 on the forward path, and sys2 on the return path). More...
 
function parallel (sys1, sys2)
 Creates a new system that takes the inputs to both sys1 and sys2 as a single input (which is "demux"ed and passed independently to the two systems), and outputs the "mux"ed output of the two systems. More...
 
function sampledData (sys, tsin, tsout)
 Creates a new system which is a sampled data (e.g. More...
 
function resolveConstraints (obj, x0, v, constraints)
 attempts to find a x which satisfies the constraints, using x0 as the initial guess. More...
 
function addStateConstraintsToProgram (obj, prog, indices)
 adds state constraints and unilateral constriants to the program on the specified indices. More...
 
function getNumStates (obj)
 Returns the total number of states (discrete + continuous) in the system. More...
 
function getInputSampleTimes (obj)
 Returns the sample time of the input See getSampleTime for more details about sample times. More...
 
function getOutputSampleTimes (obj)
 Returns the sample time of the output See getSampleTime for more details about sample times. More...
 
function isDT (obj)
 Returns true if the system has no states, or has states and only one sample time [a b], with a>0. More...
 
function isCT (obj)
 Returns true if the system has only one sample time [a b], with a==0. More...
 
function isInheritedTime (obj)
 Returns true if the system has only one sample time [a b], with b==-1. More...
 
function isTI (obj)
 Returns true if the system is time-invariant. More...
 
function setTIFlag (obj, bval)
 Sets the time invariant flag. More...
 
function getInputFrame (obj)
 Access the CoordinateFrame object that defines the input to this system. More...
 
function setInputFrame (obj, fr)
 Set the CoordinateFrame object that defines the input of this system. More...
 
function getStateFrame (obj)
 Access the CoordinateFrame object that defines the state of this system. More...
 
function setStateFrame (obj, fr)
 Set the CoordinateFrame object that defines the state of this system. More...
 
function getOutputFrame (obj)
 Access the CoordinateFrame object that defines the output to this system. More...
 
function setOutputFrame (obj, fr)
 Set the CoordinateFrame object that defines the output of this system. More...
 
function getNumStateConstraints (obj)
 Returns the scalar number of state constraints (of the form phi(x)=0) More...
 
function stateConstraints (obj, x)
 defines state equality constraints in the form phi(x)=0 More...
 
function unilateralConstraints (obj, x)
 defines state unilateral constraints in the form phi(x)>=0 More...
 
function getNumUnilateralConstraints (obj)
 Returns the scalar number of state constraints (of the form phi(x)>=0) More...
 
function setSimulinkParam (obj, varargin)
 Sets parameters of the simulink model Syntax setSimulinkParam(obj,param_name,param_value[,param_name,param_value,]) % Se. More...
 
function linearize (obj, t0, x0, u0)
 Linearize the system about an operating point (continuous time) More...
 
function dlinearize (obj, ts, t0, x0, u0)
 Linearize the system about an operating point (discrete time) More...
 
function setParams (obj, p)
 This default setParams method attempts to set class properties of the system according to the coordinate names in the parameter frame. More...
 
function getParams (obj)
 This default getParams method attempts to get class properties of the system according to the coordinate names in the parameter frame. More...
 
function getNumParams (obj)
 
function setParamFrame (obj, fr)
 Set the CoordinateFrame object which describes any system parameters. More...
 
function getParamFrame (obj)
 Returns the CoordinateFrame object which describes any system parameters. More...
 
function setParamLimits (obj, pmin, pmax)
 Set lower and upper bounds on the system parameters. More...
 
function getParamLimits (obj)
 Returns the current lower and upper bounds on the system parameters. More...
 
function parameterEstimation (obj, data, options)
 Estimate parameter values from input-output data. More...
 
function runLCM (obj, x0, options)
 Runs the system as an lcm node. More...
 
function simulate (obj, tspan, x0, options)
 Simulates the dynamical system (using the simulink solvers) More...
 
function tiHinf (obj, x0, u0, Q, R, Bw, gamma)
 Suboptimal state-feedback H-infinity controller for LTI system with bound gamma. More...
 
function tilqr (obj, x0, u0, Q, R, options)
 Computes an LQR controller to stabilize the system around (x0,u0) More...
 
function tilyap (obj, x0, Q)
 Linearizes the system about the state x0 and returns a candidate LyapunovFunction generated by solving the quadratic Lyapunov equation. More...
 
function tvlyap (obj, xtraj, Q, Qf)
 Linearizes the system about the state trajectory xtraj and returns a candidate LyapunovFunction generated by integrating backwards the quadratic differential Lyapunov equation. More...
 

Additional Inherited Members

- Public Attributes inherited from DynamicalSystem
Property warning_manager
 
- Protected Member Functions inherited from DynamicalSystem
function stateIndicesForCombination (sys1, sys2)
 Helper method to figure out the indices of the discrete and continuous states after sys1 and sys2 have been combined into a single system. More...
 
function stateVectorToStructure (obj, xv, mdl)
 Converts the vector state xv to the structure xs for simulink state. More...
 
function stateStructureToVector (obj, xs)
 Converts the simulink state structure representation back to the vector state. More...
 

Detailed Description

A DynamicalSystem with the functionality (dynamics, update, outputs, etc) implemented in matlab, so that it is amenable to, for instance, symbolic manipulations.

These functions are wrapped as an S-Function in DCSFunction.cpp.

Constructor & Destructor Documentation

function DrakeSystem ( num_xc  ,
num_xd  ,
num_u  ,
num_y  ,
direct_feedthrough_flag  ,
time_invariant_flag   
)

Construct a DrakeSystem.

Parameters
num_xcnumber of continuous-time state variables
num_xdnumber of discrete-time state variables
num_unumber of inputs
num_ynumber of outputs
direct_feedthrough_flagtrue means that the output depends directly on the input. Set to false if possible.
time_invariant_flagtrue means that the dynamics/update/output do not depend on time. Set to true if possible.
Return values
obj

Member Function Documentation

function addInputConstraintsToProgram ( obj  ,
prog  ,
indices   
)

add bounding box constraint todo: consider whether it makes sense to a list of constraints objects instead of just input limits.

for now, this is sealed just to keep things clean.

Return values
prog
function addStateConstraint ( obj  ,
con  ,
xind   
)
Parameters
conis a constraint object which takes the state of this system as input
xind(optional) subset of the state indices
Return values
obj
id
function addStateConstraintsToProgram ( obj  ,
prog  ,
indices   
)

adds state constraints and unilateral constraints to the program on the specified indices.

Parameters
proga NonlinearProgram object index into N decision variables in the program upon which we are adding the constraints, where N is the number of state dimensions of this system
Return values
prog
function cascade ( sys1  ,
sys2   
)

Constructs a cascade combination of sys1 and sys2.

Parameters
sys1first DynamicalSystem
sys2second DynamicalSystem

The input to the cascade system is the input to sys1. The output of sys1 is fed to the input of sys2. The output of the cascade system is the output of sys2.

Return values
sys
function displayStateConstraints ( obj  )
function dynamics ( obj  ,
,
,
 
)
virtual

Placeholder for the dynamics method.

Systems with continuous state must overload this method.

Return values
xcdot

Reimplemented from DynamicalSystem.

Reimplemented in HybridDrakeSystem, PolytopicSystem, CascadeSystem, FeedbackSystem, MIMODrakeSystem, StochasticDrakeSystem, RobustDrakeSystem, Manipulator, Trajectory, StochasticPolynomialSystem, ObserverErrorSystem, SecondOrderSystem, Visualizer, FunctionHandleSystem, and PolynomialSystem.

function extractAffineSystem ( obj  )

Attempts to symbolically extract the extra structure of an affine system from the Drake system Will throw an error if the system is not truly affine.

See also taylorApprox

Return values
sys
function extractAffineSystem ( obj  )
Return values
sys
function extractLinearSystem ( obj  )

Attempts to symbolically extract the extra structure of a linear system from the Drake system Will throw an error if the system is not truly linear.

See also linearize, taylorApprox

Return values
sys
function extractPolynomialSystem ( obj  )

Attempts to symbolically extract the extra structure of a polynomial system from the Drake system Will throw an error if the system is not truly polynomial.

See also extractTrigPolySystem, taylorApprox

Return values
polysys
function extractTrigPolySystem ( sys  ,
options   
)

tries to convert the current system into a trig-poly system

Options:
replace_output_w_new_state  makes the new system have an output method which is just the full state in the new coordinate system. this addresses the problem that a trig system that was using the state as the output probably didn't output sin(theta) and cos(theta) as the outputs (but it could have!).
Default:: false
rational_dynamics_numerator  For models that can only be written as a rational trig-poly system, pass a function handle here that supplies the f(t,x,u) part of e(x)*xdot = f(t,x,u). the original dynamics function will only be called if this field is empty.
Default:: []
rational_dynamics_denominator  For models that can only be written as a rational trig-poly system, pass a function handle here that supplies the e(x) part of e(x)*xdot = f(t,x,u). the original dynamics function will only be called if this field is empty.
Default:: []
unit_circle_constraint_tau  Time constant of the unit circle constraint. Defines the dynamics off the unit circle to converge to the unit circle, which helps with numerical stability.
Default:: 1
Return values
polysys
function feedback ( sys1  ,
sys2   
)

Constructs a feedback combination of sys1 and sys2.

Parameters
sys1first DynamicalSystem (on the forward path)
sys2second DynamicalSystem (on the backward path)

The input to the feedback model is added to the output of sys2 before becoming the input for sys1. The output of the feedback model is the output of sys1.

Return values
sys
function findFixedPoint ( obj  ,
x0  ,
u0   
)

attempts to find a fixed point (xstar,ustar) which also satisfies the constraints, using (x0,u0) as the initial guess.

Parameters
x0initial guess for the state
u0initial guess for the input

Note: consider manually constructing a FixedPointProgram for a much richer interface where you can set solver parameters and/or add additional objectives/constraints.

Return values
xstar
ustar
info
function getDefaultInput ( obj  )

Define the default initial input so that behavior is well-defined if no controller is specified or if no control messages have been received yet.

Return values
u
function getInitialState ( obj  )
virtual

Return a (potentially random) state double (column) vector of initial conditions.

Attempts to return the result of resolveConstraints using a small random vector as an initial seed.

Return values
x0

Reimplemented from DynamicalSystem.

Reimplemented in RigidBodyManipulator, HybridDrakeSystem, TimeSteppingRigidBodyManipulator, CascadeSystem, FeedbackSystem, PolytopicSystem, MarkovDecisionProcess, TransverseLinearControl, Observer, HybridRigidBodyMode, Trajectory, Visualizer, and LinearGaussianDT.

function getInitialStateWInput ( obj  ,
,
,
 
)

Hook in case a system needs to initial state based on current time and/or input.

This gets called after getInitialState(), and unfortunately will override inputs supplied by simset.

Return values
x0
function getInputSampleTimes ( obj  )

Returns getSampleTime - a DrakeSystem can only have a single same time associated with it.

Return values
ts
function getModel ( obj  )
virtual

Constructs a simulink system block for this system to be used by the simulink engine.

Return values
mdlstring id for the simulink system

Reimplemented from DynamicalSystem.

Reimplemented in StochasticDrakeSystem, and RobustDrakeSystem.

function getNumContStates ( obj  )
virtual

Returns the number of continuous states.

Return values
n

Reimplemented from DynamicalSystem.

function getNumDiscStates ( obj  )
virtual

Returns the number of discrete states.

Return values
n

Reimplemented from DynamicalSystem.

function getNumInputs ( obj  )
virtual

Returns the number of inputs to the system.

Return values
n

Reimplemented from DynamicalSystem.

function getNumOutputs ( obj  )
virtual

Returns the number of outputs from the system.

Return values
n

Reimplemented from DynamicalSystem.

function getNumStateConstraints ( obj  )
Return values
thetotal number state equality constraints in the program
function getNumUnilateralConstraints ( obj  )
Return values
n
function getNumZeroCrossings ( obj  )

Returns the number of zero crossings.

Return values
n
function getOutputSampleTimes ( obj  )

Returns getSampleTime - a DrakeSystem can only have a single same time associated with it.

Return values
ts
function getSampleTime ( obj  )
virtual

As described at http://www.mathworks.com/help/toolbox/simulink/sfg/f6-58760.html to set multiple sample times, specify one column for each sample time/offset pair.

The default behavior is continuous time for systems with only continuous states, and discrete time (with sample period 1s) for systems only discrete states, and inherited for systems with no states. For systems with both discrete and continuous states, an error is thrown saying that this function should be overloaded to set the desired behavior.

Return values
ts

Reimplemented from DynamicalSystem.

Reimplemented in LQRTree, TransverseLinearControl, OcTreeSystem, Visualizer, HybridRigidBodyMode, and HybridSystemSampleTimeTest.

function isDirectFeedthrough ( obj  )

Check if the system is direct feedthrough (e.g., if the output depends on the immediate input)

Return values
tf
function linearize ( obj  ,
t0  ,
x0  ,
u0   
)

Uses the geval engine to linearize the model around the nominal point, at least for the simple case.

Return values
A
B
C
D
x0dot
y0
function makeTrigPolySystem ( obj  ,
options   
)

deprecated method (due to refactoring): please use extractTrigPolySystem instead

Return values
polysys
function removeAllStateConstraints ( obj  )
Return values
obj
function setDirectFeedthrough ( obj  ,
tf   
)

Set the direct feedthrough flag.

Return values
obj
function setInputLimits ( obj  ,
umin  ,
umax   
)

Guards the input limits to make sure it stay consistent.

Return values
obj
function setNumContStates ( obj  ,
num_xc   
)

Guards the num_states variable.

Return values
obj
function setNumDiscStates ( obj  ,
num_xd   
)

Guards the num_states variable.

Return values
obj
function setNumInputs ( obj  ,
num_u   
)

Guards the num_u variable.

Also pads umin and umax for any new inputs with [-inf,inf].

Return values
obj
function setNumOutputs ( obj  ,
num_y   
)

Guards the number of outputs to make sure it's consistent.

Return values
obj
function setNumZeroCrossings ( obj  ,
num_zcs   
)

Guards the number of zero crossings to make sure it's valid.

Return values
obj
function setSampleTime ( obj  ,
ts   
)

robust method for setting default sample time

Parameters
tsa 2-by-n matrix with each column containing a sample time redundant colums are eliminated automatically. only a few possibilities are allowed/supported inherited, single continuous, single discrete, single continuous+single discrete (note: disabled single continuous + single discrete because it wasn't obviously the right thing e.g. in the % visualizer who asked for the output to be at fixed dt, but after combination, the output gets called continuously).
Return values
obj
function simulate ( obj  ,
varargin   
)
Return values
varargout
function simulateODE ( obj  ,
tspan  ,
x0  ,
options   
)

Simulates the system using the ODE45 suite of solvers instead of the simulink solvers.

Parameters
tspana 1x2 vector of the form [t0 tf]
x0a vector of length(getNumStates) which contains the initial state
optionsoptions structure

No options implemented yet

Return values
ytraj
xtraj
function stateConstraints ( obj  ,
 
)

Provides the old interface of a single constraint function which evaluates all of the equality constraints on the state (which should be == 0)

Return values
theevaluated equality constraints, and potentially their derivatives.
function systemGradTest ( obj  ,
,
,
,
options   
)

Compare numerical and analytical derivatives of dynamics,update,and output.

function taylorApprox ( sys  ,
varargin   
)

performs a taylorApproximation around a point or trajectory usage: taylorApprox(sys,t0,x0,u0,order[,ignores]) or taylorApprox(sys,x0traj,u0traj,order[,ignores]) it returns a polynomial system (or polynomial trajectory system)

if u0 or u0traj is [], then the default input (all zeros in the input frame) is used

Return values
polysys
function transverseLQR ( obj  ,
xtraj  ,
utraj  ,
,
,
Qf  ,
transSurf   
)

Compute LQR control for transversal system.

irm@m.nosp@m.it.e.nosp@m.du

Return values
ltvsys
Vtraj
function transverseLQRClosedLoop ( obj  ,
xtraj  ,
utraj  ,
,
,
Vf  ,
transSurf   
)
Return values
controller
sys
xtraj
utraj
Vtraj
Vf
function tvlqr ( obj  ,
xtraj  ,
utraj  ,
,
,
Qf  ,
options   
)

implements the time-varying linear (or affine) quadratic regulator

in the following xbar = x-x0, ubar = u-u0

Parameters
Qcan be a double matrix, a trajectory, or a 3x1 cell matrix specifying the cost terms xbar'Q{1}xbar + xbar'Q{2} + Q{3}
Rcan be a double matrix, a trajectory, or a 3x1 cell matrix specifying the cost terms ubar'R{1}ubar + ubar'R{2} + R{3}
Qfcan be a double matrix, a 3x1 cell matrix, or a PolynomialLyapunovFunction (e.g. as would happen if you hand it back Vtraj.eval(0) from a previous tvlqr trajectory).
Options:
sqrtmethod 
Default: true
tspan 
Default: utraj.getBreaks();
N  can be a double matrix or a trajectory, specifying additional cost terms 2xbar'Nubar.
Default: 0

and purely for convenience:

Options:
xdtraj  adds terms so that the cost is (xbar - xbar_d)'Q{1}(xbar - xbar_d) + (xbar - xbar_d)'*Q{2}.
Default: 0
udtraj  adds terms so that the cost is (ubar - ubar_d)'R{1}(ubar - ubar_d) + (ubar - ubar_d)'*R{2}.
Default: 0

in the following ybar = y-y0, where y0(t) = output(obj,t,x0(t),u0(t))

Options:
Qy  adds terms of the form ybar'*Qy{1}*ybar + ybar'*Qy{2} + Qy{3}.
Default: all zeros
Ny  adds terms of the form 2*ybar'*Ny*ubar.
Default: 0.
ydtraj  adds terms of the form (ybar - ybar_d)'Qy{1}(ybar - ybar_d) + (ybar - ybar_d)'*Qy{2}.
Default: 0
Return values
ltvsys
V
function update ( obj  ,
,
,
 
)
virtual
function updateStateConstraint ( obj  ,
id  ,
con  ,
xind   
)
Parameters
idis the identifier returned from addStateConstraint
conis a constraint object
xind(optional) subset of the state indices
Return values
obj
function zeroCrossings ( obj  ,
,
,
 
)

Placeholder for the zeroCrossings method: a method phi = zeroCrossings(t,x,u) which triggers a zero crossing event when phi transitions from positive to negative.

Systems with zero crossings must overload this method.

Return values
zcs

The documentation for this class was generated from the following file: