Error Handling WITHOUT using try-catch statments
7 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I am trying to convert some of my MATLAB functions in to a form that is compatible with Embedded MATLAB.
I have a try-catch statement that attempts to run a simulation (try) and if the simulation fails (catch) returns a zero. By doing this the function can deal with failed simulations without crashing.
Unfortunately embedded MATLAB does not allow try-catch statements.
Does anyone know of a way I can handles this error without using try-catch?
Thanks.
2 件のコメント
Kaustubha Govind
2011 年 5 月 19 日
Do you mean that you are simulating another model from within an Embedded MATLAB Block in a Simulink model? Is there a reason you chose to use the Embedded MATLAB block as opposed to the Model reference block?
One potential solution would be to perform the try-catch in a separate MATLAB function, which is called from the Embedded MATLAB block after declaring it using eml.extrinsic (coder.extrinsic starting in R2011a).
回答 (2 件)
Arnaud Miege
2011 年 5 月 19 日
I wouldn't recommend trying to run a Simulink model within an Embedded MATLAB Function, which itself resides in another Simulink model. It means that at each time step of the "caller" model, you're running a simulation of the "called" model. This is extremely inefficient as you could potentially have thousands of time steps. As suggested, a better solution would be to use a Model Reference to include the "called" model by reference into the "caller" model.
5 件のコメント
Arnaud Miege
2011 年 5 月 20 日
I'm not sure, sorry. One thing is with the generated C code, you only work one time step at a time, there's no notion of simulation time, so I'm not sure it makes sense to think of a simulation having failed.
Walter Roberson
2011 年 5 月 19 日
The only error control mechanism supported by C is signals. I don't know if error conditions produce signals; I do not recall having heard anyone refer to that as a possibility.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Simulink Environment Customization についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!