Effacer les filtres
Effacer les filtres

How to save Simulink model without model workspace saved

8 vues (au cours des 30 derniers jours)
Hainan Wang
Hainan Wang le 24 Sep 2020
Commenté : Hainan Wang le 5 Oct 2020
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.

Réponse acceptée

Rishabh Mishra
Rishabh Mishra le 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.

Plus de réponses (1)

Sudhakar Shinde
Sudhakar Shinde le 28 Sep 2020
Modifié(e) : Sudhakar Shinde le 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');

Catégories

En savoir plus sur Manage Design Data dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by