Simulinkのモ​デルファイル(.md​lファイル)からブロ​ックの実行順序を求め​る方法はありますか?

13 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日
回答済み: MathWorks Support Team 2013 年 10 月 25 日
Simulink のモデルファイル(.mdlファイル)からブロックの実行順序を求める方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2015 年 12 月 8 日
Simulink モデルの実行順序はモデルファイル(.mdlファイル)には記述されていません。
実行順序はモデルをコンパイルした時点で決定されます。
なお、モデルメニューからは、
[書式] -> [ブロックの表示] -> [ソート順序] (R13.x 以前は、[書式]→[ソート順序])
でモデルの実行順序を表示させることができます。
これと同じことが次のコマンドでも行えます。
% モデル名: f14.mdl の場合
load_system('f14');
set_param(gcs,'DisplaySortedLists','on');
f14([],[],[],'compile');
f14([],[],[],'term');
実行順序をテキストで保存するには、SLDEBUGを使います。
SLDEBUGのSLISTでSimulinkモデル内のブロックの実行順序リストを表示させることができます。
SLISTの結果をワークスペース上に保存することができませんので、diaryをつかって、テキストとして保存します。
下記は、sf_carモデルを使用した例になります。
sf_car
sldebug(bdroot)
Simulink Debugger が起動するので、下記コマンドを1行ずつ実行します。
(sldebug @0): >> diary('test.txt');
(sldebug @0): >> slist
(sldebug @0): >> diary off
(sldebug @0): >> quit
diaryコマンド以外にも、下記のようなfopen,fwrite,fcloseを使用する方法があります。
sf_car
warning off
out = evalc('sim(bdroot, ''debug'', {''slist'' ''quit''})');
warning on
fileID = fopen('test.txt','w');
fwrite(fileID,out);
fclose(fileID);

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSimulink 入門 についてさらに検索

タグ

タグが未入力です。

製品

Community Treasure Hunt

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

Start Hunting!