How to save Simulink model without model workspace saved

2 visualizaciones (últimos 30 días)
I have a Simulink model named “input_check.slx” and I want to load model parameters loaded from an external .mat file. After I run the model (out = sim(‘input_check’);), I want to save the model to the file of same name without its parameters in model workspace saved and close the system ‘input_check’. For some reason, I want the model workspace cleared when I close system so I set 'SaveModelWorkspace' = false
load_system('input_check')
hws = get_param('input_check', 'modelworkspace');
hws.DataSource = 'MAT-File';
hws.FileName = 'slx_input_check_pars.mat';
hws.reload; %reload variable from an external file to model workspace
out = sim('input_check')
save_system('input_check',[],'SaveModelWorkspace',false)
close_system('input_check')
load_system('input_check')
hws = get_param('input_check', 'modelworkspace');
After I save and close the model I load the system and get the model workspace (last two lines in code) and figure out the data source for model workspace is still there and is the .mat file I loaded earlier. I think set ‘SaveModelWorkspace’ = False should clear the model workspace but obviously not. What cause this issue? Also if I want to save the model to the file of same name without its parameters in model workspace saved, am I doing correctly?
Matlab Version is R2020a.

Respuesta aceptada

Rishabh Mishra
Rishabh Mishra el 30 de Sept. de 2020
Hi,
I’m assuming you want to clear the model workspace once you close it. You can do so by:
  1. Go to model settings>model properties in the MODELLING tab in the Simulink model.
  2. In model properties go to callbacks tab, In the ‘PostLoadFcn’ section, copy the code given below.
mdlWks = get_param('input_check','ModelWorkspace');
clear(mdlWks);
Click apply and save the model.
Once you close the model & open it again the next time, the model workspace gets cleared.
For better understanding, refer the following article:
Hope this Helps.

Más respuestas (1)

Sudhakar Shinde
Sudhakar Shinde el 28 de Sept. de 2020
Editada: Sudhakar Shinde el 28 de Sept. de 2020
If you dont need any data from model workspace you could clear whole model workspace data simply by two lines.
before save you can use below:
mdlWks = get_param('input_check', 'modelworkspace');
clear(mdlWks);
save_system('input_check');

Categorías

Más información sobre Manage Design Data en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by