ドキュメンテーション

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

モデル依存関係の解析

モデルの依存関係とは

Simulink® の各モデルは、一連のファイルを正常に実行する必要があります。これらのファイルには、参照モデル、データ ファイル、S-function、それがなければモデルを実行できない他のファイルを含めることができます。これらのファイルは、モデルの依存関係と呼ばれます。

依存性解析要件選択するツール
プロジェクト全体に必要なファイルを特定します。Simulink プロジェクトから依存関係の解析を使用します。ファイルの選択および依存性解析の実行を参照してください。
さらに多くのオプションの制御による特定モデルの詳細な依存性解析を実行します。モデルからマニフェスト ツールを使用します。マニフェストの生成を参照してください。

必要に応じてマニフェストを生成します。

  • モデルの依存関係のリストをマニフェスト ファイルに保存します。

  • 依存関係が発生する場所を特定するためにレポートを作成します。

  • 依存関係解析の範囲を制御します。

  • 必要なツールボックスを特定します。

モデルのマニフェストの生成後にその依存関係を判断するには、以下の手順を実行します。

  • モデルによって要求されたファイルをマニフェスト ファイルに表示する。

  • レポートを使用して依存関係を追跡し、特定のファイルまたはツールボックスがモデルによって要求される理由を把握する。

  • モデルとそれに必要なファイルを ZIP ファイルにまとめて別の Simulink ユーザーに送信する。

  • 同じモデルの古いマニフェストと新しいマニフェストを比較する。

  • モデルの特定のバージョンと要求されたファイルを改訂管理システムに保存する。

モデル依存関係ビューアーを使用して、モデルによって参照されたライブラリとモデルをグラフィカル形式で表示することもできます。「 モデル依存関係ビューアー」を参照してください。

マニフェストの生成

マニフェストを生成すると、依存関係の解析が実行され、モデルの依存関係がマニフェスト ファイルに保存されます。Simulink の他の Manifest ツールを使用する前に、マニフェストを生成しなければなりません。

    メモ:   マニフェストによって特定されるモデルの依存関係は、指定する [解析範囲] オプションによって異なります。たとえば、[ライブラリ リンクを検索] を選択しないで解析を実行した場合、モデルが必要とする Simulink のブロックセットは、しばしばライブラリ リンクとしてモデルに含まれているため、すべてを検索できない可能性があります。マニフェストの解析範囲オプションを参照してください。

マニフェストを作成するには、以下のようにします。

  1. [解析][モデルの依存関係][マニフェストの生成] を選択します。

    [モデルのマニフェストを生成] ダイアログ ボックスが表示されます。

  2. [OK] をクリックし、既定の設定を使用してマニフェストとレポートを生成します。

    または、最初に次の設定を変更できます。

    • [解析範囲] チェック ボックスをオンにし、検出する依存関係のタイプを指定します (マニフェストの解析範囲オプションを参照)。

    • ファイルの依存関係レポートの場所を指定するには、次の [ファイルの依存関係レポートの場所] のオプションを選択します。

      • [ユーザーのファイルのみ] (既定の設定) — ユーザーのファイルへの依存関係が生じた場所のみを報告します。このオプションは、ユーザーの独自のコードの相互依存性を把握する必要があり、MathWorks® 製品への依存関係の場所があまり重要でない場合にのみ使用します。このオプションを選択すると、レポートの作成速度が上がり、レポートが効率的に作成されます。

      • [すべてのファイル] — MathWorks 製品へのすべての依存関係を含む依存関係が導入されるすべての場所を報告します。このオプションを選択すると、動作が最も遅くなりますが、最も詳細なレポートが作成されます。このオプションは、特定のファイルまたはツールボックスがモデルによって要求される理由を把握するために、すべての依存関係を追跡する必要がある場合に選択します。多くの参照を解析する必要がある場合、レポートの列見出しをクリックして結果を並べ替えることもできます。

      • [なし] — 依存関係の場所を報告しません。このオプションを選択すると、動作は最も速くなりますが、作成されるレポートは最も簡単な内容になります。このオプションは、必須ファイルを検出して、パッケージ化する必要があり、ファイル参照のすべての情報は不要な場合に使用します。

    • 必要に応じて、[プロジェクトのルートの場所] を変更します。次のチェック ボックス オプションのうちの 1 つを選択します。オプションは、[ルート モデルのファイルを含むフォルダー] (既定の設定)、[必要なファイルの共通のルート フォルダー][ユーザー定義の場所] のいずれかです。ユーザー定義の場所はテキスト ボックスにパスを入力して、またはその場所まで移動して指定します。

    • 必要に応じて、[マニフェスト ファイル名] とファイルの保存先を編集します。

    • マニフェストを生成するときにレポートを生成する場合は、[完了後に HTML レポートを表示] チェック ボックスを使用します。[レポートのファイル名] は編集できますが、既定の mymodelname_manifest_report.html のままにしておきくこともできます。[レポート スタイル][標準 HTML] または [ハイパーリンク付き HTML] に設定できます。

[OK] をクリックすると、Simulink はモデルの依存関係を記載したマニフェスト ファイルを生成します。[完了次第 HTML レポートを表示] を選択した場合、モデルのマニフェスト レポートは、Simulink がマニフェストを生成した後に表示されます。例は、モデルのマニフェスト レポートの使用を参照してください。

マニフェストは拡張子 .smf が付いた XML ファイルで、モデルと同じフォルダーに格納されます (既定)。

マニフェストの解析範囲オプション

Simulink Manifest ツールを使用すると、マニフェストを作成するときに解析範囲を指定できます。解析によって特定される依存関係は、指定する範囲によって異なります。

次の表は解析範囲のオプションを示します。

チェック ボックス オプション説明
孤立したベース ワークスペース データを検出する (モデル更新を実行)このマニフェスト内のどのファイルにも定義されていなくても、モデルに必要なワークスペース変数を検索します。
モデルの更新が失敗した場合はエラーが表示されます。この分析をクリアしてマニフェストをモデルの更新なしで生成するか、手動でモデルを更新して問題を突き止めます。たとえば、ワークスペースに存在しない変数が必要になっているかもしれません (ブロック パラメーターに定義されている変数が手動で読み込まれていないなど)。
モデル参照を検出して解析するモデル内の Model ブロックを検索し、参照されたモデルを依存関係として識別します。
リンクされたライブラリを検出して解析するモデルのライブラリ ブロックへのリンクを検索し、参照されたライブラリ リンクを依存関係として識別します。
未保存の変更内容があるモデルを解析できるようにする保存されていない変更を解析する場合はこのチェック ボックスを選択します。
右側の >> ボタンをクリックして、次の高度な解析オプションを表示できます。

[S-Function を検索]

モデルの S-Function ブロックを検索し、参照された S-Function ファイル (MATLAB® コードおよび C) を依存関係として識別します。特殊なケースのソース コード項目を参照してください。
モデルとブロックのコールバックを解析 (解釈された MATLAB Function ブロックを含む)Interpreted MATLAB Function ブロック、ブロック コールバック、およびモデル コールバックのコードによって導入されたファイルの依存関係を検索します。コールバックの解析方法の詳細は、コードの解析を参照してください。
[コード生成に必要なファイルを検索]Simulink Coder™ カスタム コードによって導入されたファイルの依存関係と、Embedded Coder® テンプレートを検索します。コード生成製品を使用していない場合、このチェック ボックスは既定の設定でオフになり、オンにすると警告が生成されます。
この範囲には、すべてのコンフィギュレーション セット (アクティブ セット以外も含む) および関数 STF_make_rtw_hook の解析が含まれ、システム ターゲット ファイルとコード置換ライブラリの定義ファイル (.m または .mat) が検索されます。必要なツールボックスおよび特殊なケースのソース コード項目も参照してください。
[データファイルの検索 (例. "From File" ブロック)]From File ブロック内など、明示的に参照されるデータ ファイルを検索し、それらのファイルを依存関係として識別します。特殊なケースを参照してください。
[Stateflow チャートを解析]Stateflow® を使用するモデルで ml.mymean(myvariable) などの構文を使用することで導入されたファイルの依存関係を検索します。
MATLAB Functions ブロックのコードの解析モデルの MATLAB Function ブロックを検索し、そのコード内で導入されたファイルの依存関係 (ツールボックス外) を識別します。MATLAB Function ブロックによって導入されたツールボックスの依存関係は検出されません。
[要求ドキュメントを検索]

Requirements Management Interface を使用してリンクされた要求ドキュメントを検索します。IBM® Rational® DOORS® ソフトウェアを使用して作成された要求リンクはマニフェストに含まれません。詳細は、Simulink Verification and Validation™ ドキュメンテーションの「Requirements Management Interface のセットアップ」を参照してください。

Simulink Verification and Validation ライセンスがない場合、このオプションは使用できず、Simulink ではモデル内の要件仕様リンクがすべて無視されます。

["ユーザのツールボックス" 内のファイルを解析]ユーザー定義のツールボックス内のファイルによって導入されたファイルの依存関係を検索します。特殊なケースを参照してください。
MATLAB ファイルを解析モデルから呼び出された MATLAB ファイルによって導入されたファイルの依存関係を検索します。たとえば、このオプションが選択され、mycallback.m をコールバックしている場合、参照されたファイル mycallback.m も依存関係を詳しく解析されます。コードの解析を参照してください。
マニフェストに MATLAB コード解析警告を保存する警告メッセージをマニフェストに保存します。

詳細は、依存関係分析の範囲を参照してください。

コマンド ラインの依存関係の解析

ファイルの依存関係の確認

ファイルの依存関係をプログラムで確認するには、次のように関数 dependencies.fileDependencyAnalysis を使用します。

[files, missing, depfile, manifestfile] = 
dependencies.fileDependencyAnalysis('modelname', 'manifestfile') 

この関数は、以下の項目を返します。

  • files — モデル modelname によって参照されるすべての既存のファイルの絶対パスを含んでいる文字列のセル配列。

  • missing — モデル modelname によって参照されるが、見つからないすべてのファイルの名前を含んでいる文字列のセル配列。

  • depfile は、手動で追加したファイルや手動で排除したファイルの名前を格納したユーザーの依存関係 (.smd) ファイルの絶対パス返します。Simulink は、.smd ファイルを使用して、次回マニフェストを生成するときにその変更を確認します。マニフェストの編集を参照してください。

  • manifestfile — (必要に応じて入力) 作成するマニフェスト ファイルの名前。接尾辞 .smf が常にユーザー定義の名前に追加されます。

    manifestfile を指定すると、コマンドは、指定した名前 manifestfile でマニフェスト ファイルを作成します。manifestfile は、絶対パスまたは単なるファイル名 (この場合、ファイルは現在のフォルダーに作成されます) を指定できます。

依存関係解析をモデル例で実行すると MathWorks の標準インストールではモデル例に必要なすべてのファイルが含まれているため、取得される必要なファイルのリストは空です。

ツールボックスの依存関係の確認

必要なツールボックスをチェックするには、関数 dependencies.toolboxDependencyAnalysis を以下のように使用します。

[names,dirs] = dependencies.toolboxDependencyAnalysis(files_in)

files_in は、MATLAB パス上の .m ファイルまたはモデル ファイルを含んでいる文字列のセル配列でなければなりません。Simulink モデル名 (ファイル拡張子を含みません) も使用可能です。

この関数は、以下の項目を返します。

  • namesfiles_in のファイルによって要求されるツールボックス名のセル配列。

  • dirs — ツールボックス フォルダーのセル配列。

    メモ:   メソッド toolboxDependencyAnalysis は、files_in のファイルのツールボックスの依存関係を検索しますが、これに続く依存関係は解析されません

モデルおよびモデルが依存するファイルのすべての検出可能なツールボックスの依存関係を検出するには、次のようにします

  1. モデルで fileDependencyAnalysis を呼び出します。

    以下に例を示します。

    [files, missing, depfile, manifestfile] = dependencies.fileDependencyAnalysis('mymodel')
    files = 
        'C:\Work\manifest\foo.m'
        'C:\Work\manifest\mymodel'
    missing =
         []
    depfile =
         []
    manifestfile =
         []
    
  2. ステップ 1 の files 出力で toolboxDependencyAnalysis を呼び出します。

    以下に例を示します。

    tbxes = dependencies.toolboxDependencyAnalysis(files)
    tbxes = 
    [1x24 char]    'MATLAB'    'Simulink Coder'    'Simulink'
    

    次のように長い製品名を表示して、tbxes セル配列を調べるには、次のようにします。

    tbxes{:}
    
    ans =
    Image Processing Toolbox
    
    ans =
    MATLAB
    
    ans =
    Simulink Coder
    
    ans =
    
    Simulink

コマンド ラインの依存関係の解析では、解析時に既定の解析範囲の設定を使用して、必要なツールボックスを決定します。たとえば、コード生成製品を使用している場合、オプション [コード生成に必要なファイルを検索] が既定の設定でオンになり、Simulink Coder は必要な場合に必ず報告されます。インストールされている製品および解析の範囲の設定が報告されたツールボックスの仕様にどのように影響を与えるかについては、必要なツールボックスを参照してください。

マニフェストの編集

マニフェストを生成すると、依存関係を特定されたファイルのリストを表示し、リストから手動でファイルを追加または削除できます。

マニフェスト内の必要なファイルのリストを編集するには、以下のようにします。

  1. [解析][モデルの依存関係][マニフェスト内容の編集] を選択します。

    または、マニフェスト レポートを表示している場合には、一番上の [アクション] ボックス内で [編集] をクリックするか、[ファイルにエクスポート] をクリックして [マニフェスト内のファイルをエクスポート] ダイアログ ボックスで [マニフェストの表示と編集] をクリックできます。

    [マニフェストの表示と編集] ダイアログ ボックスに、現在のモデルの最新のマニフェストが表示されます。

      メモ:   [マニフェスト ファイルの参照] ボタン をクリックして、別のマニフェストを開くことができます。マニフェストを生成していない場合、[マニフェストの生成] を選択して、[モデルのマニフェストを生成] ダイアログ ボックスを開きます (マニフェストの生成を参照)。

  2. ダイアログ ボックスの左側の [エクスポートするファイル] リストを調べます。このリストは依存関係として識別されたファイルを示します。

  3. マニフェストにファイルを追加するには、以下のようにします。

    1. [ファイルの追加] をクリックします。

      [ファイルをマニフェストに追加] ダイアログ ボックスが開きます。

    2. 追加するファイルを選択し、[開く] をクリックします。

      選択したファイルが [エクスポートするファイル] のリストに追加されます。

  4. マニフェストからファイルを削除するには、以下のようにします。

    1. [エクスポートするファイル] のリストから削除するファイルを選択します。

    2. [選択したファイルを排除] ボタン をクリックします。

      選択したファイルが [排除ファイル] のリストに移されます。

        メモ:   ファイルをマニフェストに追加してから削除した場合、このファイルはダイアログ ボックスから削除されます ([除外ファイル] リストには追加されません)。Simulink の Manifest ツールによって検出されたファイルのみが [排除ファイル] のリストに表示されます。

  5. 必要に応じて、[プロジェクトのルートの場所] を変更します。

  6. [保存] をクリックして、変更をマニフェスト ファイルに保存します。

    Simulink は、マニフェスト (.smf) ファイルを保存し、手動で追加したファイルや手動で排除したファイルの名前を格納したユーザーの依存関係 (.smd) ファイルを作成します。Simulink は、.smd ファイルを使用して、次回マニフェストを生成するときにその変更を確認します。つまり、手動編集を繰り返す必要がなくなります。たとえば、顧客にエクスポートするためのマニフェストを生成するたびに、ソース コードを取り除いたり、著作権文書を含めたい場合があります。ユーザーの依存関係 (.smd) ファイルの名前とフォルダーはモデルと同じです。既定の設定では、ユーザーの依存関係 (.smd) ファイルもマニフェストに含まれます。

      メモ:   ユーザーの依存関係 (.smd) ファイルが読み取り専用の場合、マニフェストを保存するときに警告が表示されます。

  7. 更新したマニフェストの [モデルのマニフェスト レポート] を表示するには、[レポートを表示] をクリックします。

    更新された [モデルのマニフェスト レポート] が表示され、必要なファイルとツールボックス、他のファイルへの参照の詳細がリストされます。例は、モデルのマニフェスト レポートの使用を参照してください。

  8. マニフェストの編集が終了したら、[OK] をクリックします。

マニフェストの比較

2 つのマニフェストを比較して、2 つのモデルの間で、または同一モデルの 2 つのバージョンの間でモデルの依存関係のリストがどのように異なるかを調べることができます。マニフェストをフォルダーや ZIP ファイルに対しても比較できます。

マニフェストを比較するには

  1. 現在のフォルダー ブラウザーで、マニフェスト ファイルを右クリックして [比較対象を指定][選択] を選択します。

    または、モデルから、[解析][モデルの依存関係][マニフェストの比較] を選択します。

    [比較するファイルまたはフォルダーの選択] ダイアログ ボックスが表示されます。

  2. [比較するファイルまたはフォルダーの選択] ダイアログ ボックスで、比較するファイルと比較タイプを選択します。

    1. 比較するマニフェスト ファイルはドロップダウン リストを使ってまたはそのファイルまで移動して選択できます。

    2. [比較タイプ] を選択します。2 つのマニフェストを比較する場合、次の選択肢があります。

      • [Simulink マニフェストの比較] - 新しいファイル、削除されたファイルおよび変更されたファイルのレポートを生成するためにマニフェスト ファイル リストを比較する場合に選択します。レポートには異なるファイルを開き比較するためのリンクが含まれます。類似の [リスト比較] はマニフェストとフォルダーまたは ZIP ファイルを比較するときに使用できます。

      • [Simulink マニフェストの比較 (印刷可能)] - 印刷可能な「モデルのマニフェスト差分レポート」をリンクなしで生成するときに選択します。レポートは、各マニフェスト ファイルの詳細を示し、ファイル間の差分をリストします。

  3. 比較ツール内でレポートを表示して、マニフェストに保存されているファイル名、日付、およびサイズを比較します。

    マニフェストに保存されている詳細情報が、ディスク上のファイルと異なる場合があることに注意してください。レポートの "比較" リンクをクリックすると、サイズの不一致などの問題が発生しているか、ツールがディスク上のファイルを見つけられない場合に警告が表示されます。

    比較ツールの詳細は、『MATLAB データとファイルの管理』ドキュメンテーションで「ファイルとフォルダーの比較」を参照してください。

マニフェスト内にファイルをエクスポート

マニフェスト内に記載されているファイルのコピーを ZIP ファイルにエクスポートできます。ファイルをエクスポートすると、モデルとそれに必要なファイルを 1 つの ZIP ファイルにまとめて、簡単に別のユーザーに送信したり、改訂管理システムに保存できます。

モデルと要求されたファイルをエクスポートするには、以下のようにします。

  1. [解析][モデルの依存関係][マニフェスト内のファイルをエクスポート] を選択します。

    または、マニフェスト レポートを表示している場合、一番上の [アクション] ボックス内で [エクスポート] をクリックします。

    [マニフェスト内にファイルをエクスポート] ダイアログ ボックスに、現在のモデルの最新のマニフェストが表示されます。

      メモ:   [マニフェスト ファイルの参照] ボタン をクリックして、別のマニフェストをエクスポートできます。マニフェストを生成していない場合、[マニフェストの生成] を選択して、[モデルのマニフェストを生成] ダイアログ ボックスを開きます (マニフェストの生成を参照)。

  2. エクスポートする前にマニフェストを表示または編集する場合は、[マニフェストの表示と編集] を選択して、必要なファイルのリストを表示または変更します。マニフェストの編集を参照してください。[マニフェストの表示と編集] ダイアログ ボックスを閉じると、[マニフェスト内にファイルをエクスポート] ダイアログ ボックスに戻ります。

  3. [検証] をクリックしてマニフェストをチェックします。検証は欠落ファイル、警告、孤立したベース ワークスペース データなど潜在的な問題に関する情報をレポートします。

  4. モデルをエクスポートする先の ZIP ファイル名を入力します。

  5. エクスポートするモデルとファイルのフォルダー構造を維持する場合は、[エクスポート時にディレクトリ階層を保持] を選択します。次に、この構造に使用するルート フォルダーを選択します (通常は、[マニフェストの生成] ダイアログ ボックスの [プロジェクトのルートの場所] と同じです)。

      メモ:   MATLAB クラス内で .m ファイルを使用するモデルをエクスポートする場合 (クラスのフォルダー階層を保持するために)、またはモデルが他のフォルダー内のファイルを参照する場合 (エクスポートされるファイルが同じ相対パスを保持できるようにするために) は、[エクスポート時にフォルダー階層を保持] を選択しなければなりません。

  6. [OK] をクリックします。

    モデルとそのファイル依存関係が、指定した ZIP ファイルにエクスポートされます。

依存関係分析の範囲

Simulink の Manifest ツールは、必要なファイルを識別し、マニフェストと呼ばれる XML ファイルに一覧表示します。Simulink はマニフェスト ファイルを作成すると、モデルに対して静的な解析を実行します。つまり、モデルは "モデルの更新" の操作を実行する必要はありません (「ブロック線図の更新」を参照)。唯一の例外は、解析オプションとして[孤立したベース ワークスペース データを検出する (モデル更新を実行)] を選択した場合です。

マニフェストを作成すると、検出する依存関係のタイプを指定できます。マニフェストの解析範囲オプションを参照してください。

ツールの解析内容の詳細は、以下の節を参照してください。

解析の制限

解析では、モデルが必要とするすべてのファイルを検索できない可能性があります (例については、コードの解析を参照)。

解析ではモデルが要求した特定のブロックセットまたはツールボックスをレポートしません。モデルを別のユーザーに送信する場合、この制限を覚えておく必要があります。ファイルに対して依存関係を導入しないブロックセット (Fixed-Point Designer™ など) は検出されません。一部の SimEvents® ブロックは、SimEvents 上で検出可能な依存関係は生じません。

解析では検出されない依存関係を含めるには、[マニフェストの内容の表示/編集] オプションを使用して、他のファイルの依存関係をマニフェスト ファイルに追加できます (マニフェストの編集を参照)。

コードの解析

Simulink Manifest ツールが、モデル、ブロック コールバック、または .m ファイルの S-Function などに MATLAB コードを検出した場合、参照するファイルを識別しようとします。これらのファイルに MATLAB コードが含まれていて、解析範囲に [MATLAB ファイルを解析] オプションが選択されている場合は、参照ファイルも解析されます。この関数は matlab.codetools.requiredFilesAndProducts に類似していますが、機能が強化されています。

  • eval, evalc, evalin の各関数への呼び出しに渡される文字列は解析されます。

  • loadfopenxlsreadimportdatadlmread および imread の各関数に渡されるファイル名は識別されます。

MathWorks ツールボックス内にあるファイルは解析されません。

関数 load などに渡されるファイル名は、リテラル文字列の場合にのみ識別されます。以下に例を示します。

load('mydatafile')
load mydatafile
次の例やより複雑な例は、ファイルの依存関係として識別されません。
str = 'mydatafile';
load(str);
同様に、関数 eval などに対する引数は、リテラル文字列の場合にのみ識別されます。

Simulink Manifest ツールは、MAT ファイルの内部を探して読み込む変数の名前を見つけます。これにより、ブロック コールバック内の変数名と関数名を確実に区別できます。

モデルが .m ファイルと .p ファイルの両方が存在するファイルに依存している場合は、両方のファイルがマニフェストで報告されます。[MATLAB ファイルを解析] オプションが選択されている場合は、.m ファイルが解析されます。

特殊なケース

次の一覧は、具体的な例に関する詳細情報を示します。

  • モデルが、たとえば MyPackage.MyClass などの、MATLAB 構文を使用して作成されたデータ クラスを参照している場合は、フォルダー MyPackage およびそのサブフォルダー内のファイルがすべてマニフェストに追加されます。

      警告:   解析により、クラス内のすべてのファイルが追加されます。ファイルには、.svn.cvs などのすべてのソース管理ファイルが含まれます。マニフェストを編集して、これらのファイルを削除できます。

  • ユーザー定義のツールボックスには、適切に構成された Contents.m ファイルを含めなければなりません。Simulink Manifest ツールは、このようなユーザー定義のツールボックスを次のように検索します。

    • フォルダー XContents.m ファイルがある場合、X のサブフォルダー内にあるすべてのファイルはツールボックスの一部と見なされます。

    • フォルダー X/XContents.m ファイルがある場合、"外側" のフォルダー X の サブフォルダー内にあるすべてのファイルがツールボックスの一部と見なされます。

      Contents.m ファイルの形式の詳細は、「ver」を参照してください。

  • S-Function が TLC ファイルを必要とする場合、TLC ファイルは検出されます。

  • Simscape™ がある場合は、Simscape コンポーネントが解析されます。マニフェストにインストールされている製品の他の影響については、必要なツールボックスも参照してください。

  • GUIDE を使用して UI を作成して、モデル コールバックに追加すると、依存関係の解析は .m ファイルと .fig ファイルの依存関係を検出します。

  • .c ファイルや .h ファイルなどのソース コードへの依存関係が存在する場合、これらのファイルが依存するファイルを検出するためにこれらのファイルが解析されることはありません。たとえば、.h ファイル内のこれに続く #include 呼び出しは検出されません。これらのファイルが検出されるようにするには、これらのファイルを従属ファイルとして [コンフィギュレーション パラメーター] ダイアログ ボックスの [Simulink Coder] セクションにある [カスタム コード] ペインの [ヘッダー ファイル] セクションに追加します (あるいは、rtwmakecfg を使用してこれらのファイルを指定します)。また、解析では検出されない依存関係を含めるには、[マニフェストの内容の表示/編集] オプションを使用して、他のファイルの依存関係をマニフェスト ファイルに追加できます (マニフェストの編集を参照)。

  • さまざまなブロックセットとツールボックスは、追加のソース ブロックを使用してファイルの依存関係を導入できます。解析範囲に [データ ファイルの検索 (例. "From File" ブロック)] が選択されている場合、解析は、次のブロックによって導入されたファイルの依存関係を検出します。

    製品ブロック
    DSP System Toolbox™

    From Wave File (Obsolete) ブロック (Microsoft® Windows® オペレーティング システムのみ)

    From Multimedia File ブロック (Windows のみ)

    Computer Vision System Toolbox™

    Image From File ブロック

    Read Binary File ブロック

    Simulink 3D Animation™VR Sink ブロック

    [データ ファイルを検索] オプションは、モデルの "モデル ワークスペース" を MAT-File または MATLAB Code に設定することによって導入された依存関係および [コンフィギュレーション パラメーター] ダイアログ ボックスの [モデル参照] ペインで指定されたモデルの依存関係も検出します。

依存関係解析のためのベスト プラクティス

依存関係の解析は、モデルそのものから始めます。モデルは、必要とするデータ ファイルを、通常手動で読み込んでいた場合でも参照することを確認してください。たとえば、次の例のようにモデルの PreLoadFcn にコードを追加すると、自動的に読み込まれます。

load mydatafile
load('my_other_data_file.mat')
この方法で、Simulink の Manifest ツールはデータ ファイルをマニフェストに追加します。コールバック解析の詳細は、コードの解析に関するメモを参照してください (コードの解析を参照)。

一般に、モデルは、モデル コールバックまたはコールバックから呼び出されるスクリプトで、使用する変数を作成または読み込むことを確認してください。これにより、ブロック コールバックを解析するときに、Simulink の Manifest ツールが変数名と関数名を混同する可能性が低くなります。

マニフェストを作成した後にエクスポートする場合は、次のように、モデルが絶対パスでファイルを参照していないことを確認します。

load C:\mymodel\mydata\mydatafile.mat 
モデルを別のマシンにエクスポートすると、絶対パスは無効になります。他のフォルダーにあるファイルを参照する場合は、次のように、相対パスで参照します。
load mydata\mydatafile.mat
[エクスポート時にフォルダー階層を保持] を選択すると、エクスポートされたファイルが互いに相対的に同じ場所に格納されます。また、ルート フォルダーを選択すると、マニフェストにリストされているすべてのファイルがその中に格納されます。ルート ディレクトリを選択しない場合、ルート外にあるファイルは、ルートの下の external という名前の新しいフォルダーにコピーされ、それらのファイルの相対パスは無効になります。

MATLAB のクラス (たとえば、@myclass という名前のフォルダー) 内の .m ファイルを使用するモデルをエクスポートする場合、クラスのフォルダー構造を保持するには [エクスポート時にディレクトリ階層を保持] チェック ボックスをオンにしなければなりません。

エクスポートされた ZIP ファイルは、必ずコンピューターの新しい場所にその内容を抽出して、モデルのテストを行い確認してください。MathWorks ツールボックス以外のフォルダーへの参照がパスに含まれている場合、必要なファイルがパスに存在しても ZIP ファイルには含まれていない場合があることに注意してください。

モデルのマニフェスト レポートの使用

レポートのセクション

[モデルのマニフェストを生成] ダイアログ ボックスで [完了次第 HTML レポートを表示] を選択した場合、モデルのマニフェスト レポートは、Simulink がマニフェストを生成した後に表示されます。レポートには以下のデータが示されます。

  • 解析日付

  • [アクション] ペイン — マニフェストを再生成、編集または比較したり、マニフェスト内のファイルを ZIP ファイルにエクスポートするためのリンクが表示されます。

  • モデル参照とライブラリ リンクの階層 — リンクをクリックすると、モデルが開きます。

  • このモデルで使用されるファイルprojectroot に相対的なパスをもつ必須ファイル。

    レポートの列見出しをクリックして、結果を並べ替えることもできます。

  • このモデルで必要な Toolbox。詳細は、必要なツールボックスを参照してください。

  • このモデル内の参照 - このセクションに表示される他のファイルへの参照の詳細によって、依存関係が発生した場所を確認できます。このセクションの範囲は、[マニフェストの生成] ダイアログ ボックスの [ファイルの依存関係レポートの場所] オプションを使用して制御します。[ユーザーのファイルのみ]、[すべてのファイル] または [なし] から参照先を選択できます。マニフェストの生成を参照してください。レポートのこのセクションは、特定のファイルまたはツールボックスがモデルによって要求される理由を把握するために、すべての依存関係を追跡する場合に選択します。多くの参照を解析する必要がある場合、レポートの列見出しをクリックして結果を並べ替えることもできます。

  • [このモデルで参照されるフォルダー]

  • [孤立したベース ワークスペース変数] - 解析オプションとして [孤立したベース ワークスペース データを検出する] を選択した場合、このマニフェスト内のファイルに定義されていないベース ワークスペース変数でモデルに必要なものがあれば、このセクションに表示されます。

  • [MATLAB コードの解析中に生成された警告] - [マニフェストに MATLAB コード解析警告を保存する] 解析オプションをオフにすると、このセクションは省略されます。

  • [依存性解析設定] — 解析範囲のオプションの詳細が記録されます。

モデルのマニフェスト レポートの例にある例を参照してください。

必要なツールボックス

レポートの [このモデルで必要な Toolbox] セクションには、解析で検出可能なモデルによって要求されたすべての製品が一覧表示されます。解析では、モデルが要求した特定のブロックセットやツールボックスを報告しません。たとえば、ファイルに依存関係を導入しないブロックセット (Fixed-Point Designer など) は検出されません。toolbox/shared の下にある一部の MathWorks ファイルは、関連付けられたツールボックスではなく、必須の MATLAB のみを報告する可能性があります。

報告された結果は、解析範囲の設定およびインストールされた製品の影響を受ける場合があります。たとえば、以下の場合です。

  • コード生成製品を使用し、範囲のオプション [コード生成に必要なファイルを検索] が選択されている場合、次の内容が実行されます。

    • Simulink Coder ソフトウェアは要求時に必ず報告されます。

    • .ert システムのターゲット ファイルも選択されている場合、Embedded Coder ソフトウェアは要求時に必ず報告されます。

  • [ライブラリ リンクを検索] オプションがオフの場合は、解析時に someBlockSet などへの依存関係が検出されないため、ブロック セットの依存関係は報告されません。

  • [MATLAB ファイルを解析] オプションがオフの場合、解析時に fuzzy.m への依存関係が検出されないため、Fuzzy Logic Toolbox™ への依存関係は報告されません。

モデルのマニフェスト レポートの例

マニフェストの作成に使用する解析の範囲について、常に [モデルのマニフェスト レポート] の [依存性解析設定] セクションを確認する必要があります。

次の図はサンプル レポートの一部です。

この情報は役に立ちましたか?