|
HyVisual 10.0.1
Block-diagram editor and simulator for hybrid systems.
To start immediately by creating a hybrid system, select File -> New ->
Graph Editor from the menu bar. Select Help from the Help menu for
instructions on creating a model.
|
Hybrid systems are systems with continuous-time dynamics, discrete
events, and discrete mode changes. This visual modeler supports construction of
hierarchical hybrid systems. It uses a block-diagram representation of
ordinary differential equations (ODEs) to define continuous
dynamics. It uses a bubble-and-arc diagram representation of finite state
machines to define discrete behavior. The semantics of HyVisual are
described in the following paper:
Edward A. Lee and Haiyang Zheng, "Operational Semantics of Hybrid Systems," Invited paper in
Proceedings of Hybrid Systems: Computation and Control (HSCC) LNCS 3414, Zurich, Switzerland, March 9-11, 2005.
Note that in Hyvisual 8.0 and later the CT model of computation has been
replaced with the Continuous domain and the FSM model of computation
has been replaced with the Modal domain
Below are simple demonstrations of this modeler:
- Mode transitions in models of physical systems:
StickyMasses.
This example models a physical system consisting of two point masses
on springs that stick together when they collide. It illustrates how
to model systems when different modes of operation require different
ODE models. There is also a
Graphical Sticky Masses
version that shows the model graphically.
NOTE: This graphical model requires that you have
installed Java 3D from Sun
(see https://java3d.dev.java.net/).
- Simultaneous events:
NewtonsCradle.
This example illustrates a challenging hybrid systems modeling problem
that requires correctly handling simultaneous events. The example is
a classic mechanical toy called Newton's cradle, where suspended
pendulums collide with one another. Multiple simultaneous collisions
must be correctly handled.
See also NewtonsCradleAnimated.
NOTE: Requires Java 3D.
-
Stochastic hybrid systems:
HysteresisWithRandomDelay,
HysteresisWithRandomLosses.
This example illustrates how to model random delays and losses
associated with state transitions of a hybrid systems.
-
Event detection:
LevelCrossingDetectorDetectsGlitches.
This example illustrates that HyVisual correctly handles
both continuous-time signals and discrete events, including
multiple discrete events that occur at the same time.
It also shows that a piecewise continuous signal has
multiple values at the time of the discontinuity, and
that these values are ordered.
-
Discretely changing parameters:
Thermostat.
This example models a thermostat in a simple physical
environment. It illustrates how to model systems when a single
ODE model has parameters whose values change discretely.
-
Zeno systems:
BouncingBall.
This example shows a bouncing ball model. Like the previous
example, it has a single ODE model with parameters whose values change
discretely. Unlike the previous example, however, it exhibits a
so-called "Zeno condition," where the time between events gets
arbitrarily small.
There is also a
Graphical BouncingBall.
NOTE: Requires Java 3D.
-
Switching continuous-time signals:
Switch.
This example shows a switch that selects from one of two
continuous-time inputs. It illustrates how to model systems
where continuous-time signals are mixed with discrete-event signals.
Such systems are called "mixed-signal" systems.
-
Modal control laws:
CarTracking.
This example shows a control system with two control laws, one for normal
operation and one for degraded operation in the presence of faults. A modal
model controls the switching between them.
The FurutaPendulum demo is a graphical demo of a similar modal model.
NOTE: Requires Java 3D.
-
Linear time-invariant systems:
SquareWave.
This example shows a linear transfer function given as a
rational Laplace transform, and its response to a square wave
input. This model is not a hybrid system, but a classical continuous-time
dynamical system.
-
Chaotic systems:
Lorenz.
This example shows a nonlinear system constructed using
integrators and expression actors in a feedback loop. Because of
the nonlinearity, the system exhibits a form of chaotic behavior
known as a strange attractor.
This model is not a hybrid system, but a classical nonlinear continuous-time
dynamical system.
-
Sampling piecewise continuous and discrete signals:
SampledClocks.
This example illustrates that piecewise continuous signals
in HyVisual can be sampled at their discontinuities, and that the
behavior is consistent and predictable. Discrete signals can also
be sampled with consistent and predictable behavior.
-
Integrating with MATLAB:
MatlabContinuous
This example uses the MATLAB interface created by
Zoltan Kemenczy and Sean Simmons, of Research in Motion Ltd.,
to plot a 3-D surface. This works only under Windows and
only if Matlab is installed locally.
In the 10.0.1 release, we ship with a shared library compiled against
Matlab 6.5. If you have another version of Matlab, you may need to
recompile from source. The Matlab interface requires that Cygwin
is installed, and works with gcc-3.2, not gcc-3.3.
-
Using function closures:
Transmission
This model shows a model of a car with a transmission. A transmission
is generally used when an engine has a relatively narrow band over
which the maximum power of the engine is available. In order to
obtain high torque over a wider range of speeds, the engine is
connected to a set of gears with different size ratios (the
transmission). This model uses function closures to
significantly simplify the model.
The efficiency function used for this model can be
seen in EfficiencyCurve.
This visual modeler is built using Ptolemy II, which is a software
framework developed as part of the Ptolemy project at the University of
California at Berkeley. See the
Ptolemy Project web
page for more information.