Saving/Loading the SimState Programmatically

I have a problem with saving/loading SimState programmatically. It works when i do it manually in the Simulink settings, but when doing it in a m file i get an error. My code is simply
simfile = 'simfile';
set_param(simfile, 'SaveFinalState', 'on', 'FinalStateName','SimState','SaveCompleteFinalSimState', 'on');
set_param(simfile, 'LoadInitialState', 'off');
simOut = sim(simfile,'StopTime',num2str(10));
set_param(simfile, 'SaveFinalState', 'off');
set_param(simfile, 'LoadInitialState', 'on', 'InitialState','SimState');
simOut = sim(simfile,'StopTime',num2str(20));
resulting in an error
??? Error using ==> simtest at 10
Error evaluating expression 'SimState' for 'Initial state' specified in the Configuration Parameters dialog for block diagram 'simfile': Undefined function or variable
'SimState'.
What am i missing?
Thanks :)
Benjamin

 採用された回答

Benjamin
Benjamin 2011 年 2 月 21 日

1 投票

Thanks for quick response :)
I changed the code into simOut = sim(simfile,'StopTime',num2str(10),'SaveFinalState','on','FinalStateName','SimState','SaveCompleteFinalSimState', 'on'); simOut = sim(simfile,'StopTime',num2str(20),'SaveFinalState', 'off','LoadInitialState', 'on', 'InitialState','SimState');
which works. I didn't get your answer though. I thought the string you questioned, made that the mdl file called 'simfile.mdl' save the final values under the name 'SimState'. And these states are then loaded later. What am i misunderstanding?
Thanks again :)

3 件のコメント

Paulo Silva
Paulo Silva 2011 年 2 月 21 日
Forget about my answer, you are right it does save the state in that variable name.
Paulo Silva
Paulo Silva 2011 年 2 月 21 日
btw thanks for posting your code, it might be useful for other like me.
Benjamin
Benjamin 2011 年 2 月 21 日
You're welcome :)
Ben

サインインしてコメントする。

その他の回答 (1 件)

Ronald Verhoeven
Ronald Verhoeven 2011 年 2 月 26 日

0 投票

I have exactly the same problem. I didn't get the answer yet. Who could help me solving the above posted question? Thank you.

1 件のコメント

Benjamin
Benjamin 2011 年 2 月 28 日
For the record: I forgot to mention, that the assignin() function is needed to assign xFinal into the workspace, if the sim() function is called from within a function.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeSimulink についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by