SIMULAB, an Integrated Environment for Simulation and Control

Matrix languages, such as MATLAB, have proved successful for linear control system design. Nonlinear simulaton, graphical interfaces, and hierarchial model definition need to be addressed in such packages. This paper discusses the development and integration of SIMULAB, a graphically oriented nonlinear simulation package, into MATLAB. The "open system" philosophy of MATLAB is carried over into SIMULAB where blocks and analysis tools can be added to the package. With access to MATLAB's command language new algorithms for simulation, linearization and trimming have been developed. A system calling syntax, known as an S-function, is used to characterize SIMULAB systems. S-functions, which can be coded in a variety of ways, including block diagrams, C, FORTRAN, or M-files, provide a means for the incorporation of SIMULAB systems into the MATLAB command set. They can be used for hierarchial system definition by the inclusion of systems within blocks. The MATLAB MEX-file interface, which allows C and FORTRAN subroutines to be dynamically linked in MATLAB, provides an efficient interface for the inclusion of new blocks and simulation algorithms. The complete design cycle involving modelling, simulation, and control design is addressed with respect to SIMULAB's simulation tools and MATLAB's toolboxes for system identification, control design, and optimization.