最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

S-Function の品質チェックの実行

この例では、S-Function アナライザー API を使用して、潜在的な問題や改善点を特定するために S-Function を確認する方法を示します。

S-Function アナライザーの MATLAB コマンド ライン API は、以下から構成されます。

  • Simulink.sfunction.Analyzer - S-Function アナライザーを起動して、解析結果を取得するために使用するクラス。

  • Simulink.sfunction.analyzer.BuildInfo - S-Function のビルド情報を指定するためのオブジェクトを作成するために使用するクラス。

  • Simulink.sfunction.analyzer.Options - S-Function アナライザーの実行オプションを指定するために使用するクラス。

  • Simulink.sfunction.analyzer.findSfunctions - S-Function アナライザのモデルまたはライブラリ内のすべての実行可能な S-Function を返す静的メソッド。

上記の API の詳細については、ヘルプを参照してください。

入力モデルまたはライブラリの指定 (必須)

S-Function アナライザーには、解析対象の S-Function ブロックを含むモデルまたはライブラリが入力として MATLAB パスにある必要があります。

model = 'slexSfunctionCheckExample';

S-Function のビルド情報の指定 (オプション)

S-Function アナライザーは、S-Function のソース コードが利用可能である場合に確認します。S-Function 名に基づいてソース コードを自動的に特定するためにヒューリスティックが適用されます。たとえば、S-Function のソース コードおよび入力モデルが同じフォルダーにある場合、ソース コードは解析に自動的に含まれます。それ以外の場合は、ビルド情報は Simulink.sfunction.analyzer.BuildInfo によって指定しなければなりません。利用可能なソース コードがない場合、このセクションは省略できます。

ビルド情報を指定するには、まず入力モデル内の該当する S-Function を特定してから、各 S-Function の Simulink.sfunction.analyzer.BuildInfo オブジェクトを作成します。S-Function slexBadSFcn には、関連付けられている 2 つのソース ファイル slexBadSFcn.c と slexBadSFcn_wrapper.c があります。

sfunctions= Simulink.sfunction.analyzer.findSfunctions(model);
bdInfo= Simulink.sfunction.analyzer.BuildInfo(fullfile(matlabroot,'toolbox','simulink','simdemos','simfeatures','src','slexBadSFcn.c'),...
                                              'ExtraSrcFileList',{'slexBadSFcn_wrapper.c'},...
                                              'SrcPaths',{fullfile(matlabroot,'toolbox','simulink','simdemos','simfeatures','src')});

S-Function アナライザーの実行オプションの指定 (オプション)

S-Function アナライザーの実行オプションは、Simulink.sfunction.analyzer.Options オブジェクトによって設定できます。実行オプションには Polyspace チェックやパラメーターのロバスト性チェック、モデル シミュレーションのタイムアウト、結果レポートの出力パスを有効にするかどうかなどがあります。特定のオプションが必要ない場合、このセクションは省略できます。すべての既定のオプションが適用されます。

opts = Simulink.sfunction.analyzer.Options();
opts.EnableRobustness = 1;

S-Function アナライザーの実行と結果の確認 (必須)

sfunAnalyzer = Simulink.sfunction.Analyzer(model,'BuildInfo',{bdInfo},'Options',opts);
analysisResult=sfunAnalyzer.run();
sfunAnalyzer.generateReport();