メインコンテンツ

Simulink モデルの比較とマージ

この例では、MATLAB® の比較レポートを使用して 2 つの異なる設計間の変更された部分を把握する方法を示します。これは、2 つの Simulink® モデルの変更箇所を比較レポートで確認してマージする方法を示します。

モデルの比較

ユーザーがモデル sl_aircraft1 にいくつかの変更を行い、結果のモデルを sl_aircraft2 として保存しました。モデル ファイルを比較するには、[ファイル] パネルで 2 つのファイルを選択します。いずれかのファイルを右クリックして [選択したファイル/フォルダーを比較] を選択します。

あるいは、visdiff を使用して sl_aircraft1 モデルと sl_aircraft2 モデルを比較します。

visdiff('sl_aircraft1.slx','sl_aircraft2.slx');

結果の理解

比較ツールは、モデルの階層構造全体ではなく、2 つのモデル間の相違点のみを含むレポートを示します。

レポートでは、変更された項目は紫色、挿入された項目は青色、削除された項目は黄色で示されます。

Comparison report on the left and the compared models opened on the right

差分を順に確認

[比較] タブの [次へ][前へ] ナビゲーション ボタンを使用して、レポート内で変更のグループを順に確認します。

  • レポートは変更を 1 つずつ表します。[左] のツリーで選択した項目に一致がある場合、[右] のツリーでも選択されます。

  • MATLAB で、両方のモデルがレポートの横に表示されます。可能な場合、両方の Simulink モデルで選択されている項目がレポートで強調表示されます。

モデル内での強調表示を制御するには、[比較] タブの [強調表示] セクションで、[常に強調表示] チェック ボックスをオンまたはオフにします。[今すぐ強調表示] ボタンをクリックすると、現在選択されているレポート ノードをいつでも強調表示できます。

結果のフィルター処理

既定では、項目の配置変更、ラベルの位置、ブロックやラインのフォントと色の設定、システムの出力や表示の設定など、機能以外の変更は比較ツールで非表示になります。

比較レポートを簡略化し、変更のサブセットに焦点を当てるには、[クイック フィルター] ペインを使用します。ツールストリップの [フィルター] セクションで [フィルター] をクリックします。

また、レポートで要素を右クリックして特定のタイプのすべてのモデル要素を非表示にできます。

The illustration shows a side-by-side comparison with the Quick Filters pane open on the left. In the report, the cursor points to a menu option to hide all elements of the selected type from the report.

現在のフィルター選択を保存して共有や再利用が可能です。詳細については、Filter Comparison Report Using Quick Filtersを参照してください。

結果のパブリッシュ

モデル比較レポートの印刷可能なバージョンを保存するには、[パブリッシュ][HTML][Word]、または [PDF] を選択します。

Simulink モデルでの変更のマージ

ツールストリップで [マージ モード] ボタンをクリックして、2 つの Simulink モデル間の変更をマージできます。これにより 3 番目のファイル targetFile が作成され、このファイルには左側のモデル (sl_aircraft1) または右側のモデル (sl_aircraft2) のどちらかの変更が含まれます。[ターゲット] ツリーのボタンを使用して、targetFile 内で保持する差分を選択します。

[結果を保存] ボタンをクリックして右側のモデル (sl_aircraft2) で選択した変更を保存します。

ヒント: ラインをマージする前にブロックをマージし、遷移をマージする前にステートとジャンクションをマージしてください。モデル内で推奨されるマージ順序を参照してください。

参考

visdiff

Comparison Tool

関連する例

Simulink モデルの変更の確認

Stateflow を含む Simulink モデルの比較とマージ

Simulink 3-way マージを使用したプロジェクト内の競合の解決