
![]()
The modeling section is dedicated to the choice and visualization of the current model. MIMOtool deals only with linear (or linearized) multivariable systems, which are made up of the four matrices A, B, C and D of their state space form [1]:

It's possible to create a model with the command NEW (file menu or button) or load an existing one with the command LOAD (file menu or button).
The LOAD command allows the user to open an existing “.mat” file. If the file contains the variables A B C D (uppercase) and they are of appropriate dimensions, then these matrices are taken as the LTI continuous time system to be loaded in MIMOtool, otherwise, the system is extracted from the first (in ASCII order) variable that contains a proper continuous time LTI system in either one of the available Control System Toolbox formats ( i.e. “ss”, “tf” or “zpk”), in the LMI Toolbox “system matrix” format (which is an extension of the Mu-Analysis and Synthesis Toolbox “system format”), or in the newer robust control toolbox "uncertain state space" format, (in which case the nominal value is extracted).
To sum up, an easy way to save a system that needs to be loaded later with MIMOtool is just to define the matrices A B C D (uppercase) and then run the command save pathname\filename.mat A B C D. People who use one of the available the control toolboxes may prefer the command save pathname\filename.mat mysys, where the variable mysys contains an LTI continuous time system in “ss”, “tf”, “zpk” (Control Toolbox) formats, or “System Matrix” (Mu and LMI Toolboxes) formats, or "uss" (Uncertain State Space) format.
Note that because of the dimensions of the MIMOtool window, only matrices with a number of rows and columns less or equal to 10 can be defined or visualized, however, if a model doesn't satisfy such limitations, it can still be saved from Matlab command line and then loaded in MIMOtool. Also note that systems saved as “ss” in Matlab 6.5 are not recognized as such when opened in Matlab 5.3.
Refer to the data structure help page for details on how all the needed variables are stored in MIMOtool.
![]()
After a system model has been loaded, it is possible to proceed to the Analysis and Synthesis sections, but it is also possible to load a controller and go directly to the Evaluation and Simulation sections, indeed, the Load Controller command, under the file menu, allows the user to load a “.mat” file that contains a controller for the current model:
If the file was previously saved directly from MIMOtool using the Save Controller as command under the file menu, then the controller is contained in the two variables evaluation_var and simulation_var, therefore, if the file opened using the Load Controller command contains those two variables, and an appropriate controller is found within them, then the controller is loaded.
If the variables evaluation_var and simulation_var do not exist or do not contain an appropriate controller, but the variables Ak Bk Ck Dk exist and are of appropriate dimensions (possibly empty) then these matrices are taken as the controller's state space realization.
If neither evaluation_var and simulation_var nor Ak Bk Ck Dk exist or have appropriate dimensions, then the controller is extracted from the first (in ASCII order) variable that contains either a matrix (i.e. a static gain) or a continuous time LTI system of appropriate dimensions. The LTI system can be in either one of the available Control System Toolbox formats ( i.e. “ss”, “tf” or “zpk”) or in the LMI Toolbox “system matrix” format (which is an extension of the Mu-Analysis and Synthesis Toolbox “system format”), or in the newer robust control toolbox "uncertain state space" format, (in which case the nominal value is extracted).
To sum up, if a controller has just been found using MIMOtool, the easiest way to save it is by using the Save Controller as command under the file menu, then it can be either loaded in another MIMOtool session using the command Load Controller or it can be extracted from the Matlab command line by loading the file and using the commands [Ak,Bk,Ck,Dk] = unpck(evaluation_var.K); (have a look here, for more details).
If on the other hand, one wants to load a pre-existing controller within MIMOtool, an easy way is just to define the matrices Ak Bk Ck Dk and then run the command save pathname\filename.mat Ak Bk Ck Dk. People who use one of the available control toolboxes may prefer the command save pathname\filename.mat mysys, where the variable mysys contains an LTI continuous time system in “ss”, “tf”, “zpk” (Control Toolbox) formats, or “System Matrix” (Mu and LMI Toolboxes) formats.
![]()
MODELING MAIN WINDOW

MENUS
|
Active |
|
|
Active
only if a model is present in memory |
|
|
Inactive |
|
|
Inactive |
|
|
Inactive |
|
|
Inactive |
|
|
Active
only if a controller, relative to the current model, has been loaded |
BUTTONS
|
[A] , [B] , [C] , [D] |
Visualize the selected matrix (a message box appears if the size of the matrix is too large) |
|
Opens
the New Model subsection |
|
|
LOAD |
Displays
the Open Model dialog box from the default folder …/model/modelli |
|
Open the relative section |
![]()
![]()