VisSim offers several easy-to-use
features for integrating MATLAB files, variables or functions within the
VisSim simulation environment.
- MATLAB File Import: Standard VisSim transferFunction and stateSpace
blocks can be easily configured to import MATLAB .m or .MAT files that
represent SISO (single-input single-output) transfer functions and/or
MIMO (multi-input multi-output) state-space representations.
- MatlabRead and MatlabWrite blocks: VisSim includes MatlabRead and
MatlabWrite blocks that enable variables to be dynamically exchanged
between MATLAB and VisSim.
- Matlab Expression Block: VisSim also includes a MATLAB Expression
Block that enables MATLAB scripts to be edited and executed directly
from the VisSim environment.
Importing MATLAB System Designs
System designs developed in the MATLAB environment, comprising one or
more SISO (single-input single-output) transfer functions and/or MIMO
(multi-input multi-output) state-space representations can be easily incorporated
into VisSim. The system specifications can be continuous or discrete and
can be imported into VisSim using the transferFunction and/or the stateSpace
blocks in VisSim. Either of these blocks can be configured to read a .m
or a .MAT file specification of the system design, and use that design
automatically in VisSim. There is no loss of performance because the file
is read only once, at the start of the simulation.
For example, a standard way of designing control systems for complex
nonlinear systems involves the Piece-wise Linear design approach, where
the system is linearized about several user-defined operating zones. Once
the operating zones are defined, a different linear control system is
then designed for use in each operating zone. As an example, a design
with six operating zones can be imported into VisSim using six blocks
as described above; the blocks would then be connected to standard VisSim
boolean blocks to specify which controller is active at any given time.
CAUTION: The MATLAB .m or .MAT file in this case must only be a linear
system specification. It cannot be an arbitrary MATLAB function or statement.
Exchanging Variables with MatlabRead and MatlabWrite blocks
Using MatlabRead and MatlabWrite blocks, any variable defined in the MATLAB
environment can be accessed interactively from within a VisSim simulation,
and vice versa. When started, VisSim automatically invokes MATLAB and
accesses any MATLAB variables used in a VisSim model. Typical examples
of variables initialized in MATLAB would be control system coefficients
or other system parameters. Examples of variables exported from VisSim
into MATLAB would be simulation results for visualization or other post
processing in MATLAB. Additionally users may run script files in MATLAB
to initialize VisSim system simulation parameters and start/stop VisSim
from the MATLAB command line. This would be especially useful to automate
and perform large Monte Carlo simulations
Interactive MATLAB scripting with the MATLAB Expression Block
The Matlab Expression Block (see above) enables users to edit and run
MATLAB scripts directly from the VisSim environment. This eliminates the
need to switch back and forth between the two applications when developing
or running an interactive VisSim-MATLAB co-simulation.
Examples of MATLAB expressions scripted in the MATLAB expression block
include the computation of the eigenvalues of a system matrix or computing
the optimal control coefficients of a linear quadratic regulator (LQR).