Problem with calling upon a Simulink model from a GUI

1 visualizzazione (ultimi 30 giorni)
I've got two simulink models, which are called by a GUI. I first developed the program, and i'm now implementing this in a GUI. When I'm calling, from a certain GUI function to my simulink model, called invcleanx.mdl, it gives the following error: Invalid Simulink object name: invcleanx. The error originates from the calling upon the workspace of the model, from:
hws = get_param(invclean,'modelworkspace') ;
I thought this might be an workspace issue, so I changed the callsign to the entire root, thus C:/Mydocuments/.../invcleanx
However, I still get the error:Invalid Simulink object name: C:\Documents and Settings\Administrator\Mijn documenten\My Dropbox\TU\Stage\Program\invcleanx.
So I guess, this is not the issue (or it is the wrong solution). I do not have the problem when I have the window of invcleanx.mdl open in Simulink, so apparently it is able to find if then. I now resolved the error by putting open_system('invcleanx') just before the reload command, but this is not favorable, since it takes time to load and open the model every time i run my calculation.
Am I not referring to my model in the correct way?
Thanks in advance,
Roy

Risposta accettata

TAB
TAB il 29 Giu 2012
In your question you have mentioned:
I do not have the problem when I have the window of invcleanx.mdl open in Simulink, so apparently it is able to find if then. I now resolved the error by putting open_system('invcleanx') just before the reload command, but this is not favorable, since it takes time to load and open the model every time i run my calculation
It is not at all possible to read/write/change the model from command line until it is opened or loaded in the memory. Model must be opened using open_system() or it must be loaded into memory using load_system() before doing any operation on it.
  1 Commento
Kaustubha Govind
Kaustubha Govind il 29 Giu 2012
I agree with TAB. Note that load_system won't open the model visibly, but will keep it open in the background (unlike open_system). This might be faster than open_system.

Accedi per commentare.

Più risposte (1)

Ilham Hardy
Ilham Hardy il 29 Giu 2012
Modificato: Ilham Hardy il 29 Giu 2012
How about,
hws = get_param('invclean','ModelWorkspace') ;
instead of
hws = get_param(invclean,'modelworkspace') ;
HTH,
IH
  1 Commento
Roy Veldhuizen
Roy Veldhuizen il 29 Giu 2012
Hello Ilham,
Thank you for reply, but I'm not sure how to implement this, since i'm not typing invcleanx directly, but it is string which is saved. I replaced for clarity reasons, which is backfiring now =p This is the whole relevant story:
function Toolex_OpeningFcn
filestruct.filename='estimationmodelgood';
filestruct.filenamemodel='C:\Documents and Settings\Administrator\Mijn documenten\My Dropbox\TU\Stage\Program\invcleanx';
set(handles.output,'UserData',filestruct)
function Calculation_Callback
filestruct=get(handles.output,'UserData')
hws = get_param(filestruct.filenamemodel,'modelworkspace') ;
hws.reload;
Is it possible to remove the quotations from a string?
Hope this makes my problem a bit clearer.

Accedi per commentare.

Categorie

Scopri di più su Programmatic Model Editing in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by