How to save Simulink model without model workspace saved

1 Ansicht (letzte 30 Tage)
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.

Akzeptierte Antwort

Rishabh Mishra
Rishabh Mishra am 30 Sep. 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.

Weitere Antworten (1)

Sudhakar Shinde
Sudhakar Shinde am 28 Sep. 2020
Bearbeitet: Sudhakar Shinde am 28 Sep. 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');

Kategorien

Mehr zu Manage Design Data finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by