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).
The Next Steps
Ready To Buy?
What do our Customers say about us?
THANK YOU – you are a star and have saved my thesis! Your instructions worked perfectly. If I am purchasing upgrades I will definitely go to Adept now I know what level support you can provide.CB, Plymouth, UK
Very enthusiastic, willing to answer questions, helpful, friendly – overall very good
I greatly appreciated the fact that you did what you said you would do – not everyone is so nice and punctilious as you.Dr PL, Kent, UK
Excellent tutor – very clear, very impartial, simply excellent.
For the time being we are unable to offer the following product ranges although we are currently working hard to increase the number of products we can offer in the future. Please contact us to talk about alternative products that we may be able to offer you.