このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Stateflow を含む Simulink モデルの比較とマージ
この例では、MATLAB® の比較レポートを使用して 2 つの異なる設計間の変更された部分を把握する方法を示します。これは、Stateflow® を含む 2 つの Simulink® モデルの変更箇所を比較レポートで確認してマージする方法を示します。この例を実行するには、Stateflow ライセンスが必要です。
モデルの比較
例のファイルの作業コピーを作成します。MATLAB® により、ファイルがサンプル フォルダーにコピーされ、編集できるようになります。
slcomparisons.examples.stateflowMerge;
ユーザーが新しい kickdown
モードを shift_logic
に追加しました。Simulink モデルの比較を使用して 2 つのモデルを比較し、相違点を検証してマージするためのレポートを生成します。
visdiff
を使用して、sl_sfcar_1
モデルと sl_sfcar_2
モデルを比較します。
visdiff('sl_sfcar_1','sl_sfcar_2');
結果の理解
比較ツールは、モデルの階層構造全体ではなく、2 つのモデル間の相違点のみを含むレポートを示します。
項目が変更されているか (紫色)、挿入されているか (青色)、削除されているか (黄色) を色で示します。
相違点間の移動
[比較] タブの [次へ] と [前へ] ナビゲーション ボタンを使用して、レポート内で変更のグループを順に確認します。
レポートは変更を 1 つずつ表します。[左] のツリーで選択した項目に一致がある場合、[右] のツリーでも選択されます。
MATLAB で、両方のモデルがレポートの横に表示されます。レポートでは、可能な場合に両方の Simulink モデルで選択した項目が強調表示されます。
Simulink モデルでの相違点の強調表示
[右] のツリーでツリー ノード Out1
を選択します。レポートで強調表示されている Out1
と、モデル sl_sfcar_2
で対応するブロックを確認します。
モデル内での強調表示を制御するには、[比較] タブの [強調表示] セクションで、[常に強調表示] チェック ボックスをオンまたはオフにします。[今すぐ強調表示] ボタンをクリックすると、現在選択されているレポート ノードをいつでも強調表示できます。
Stateflow チャートでの相違点の強調表示
ツリーを上から表示し、レポートの Stateflow チャートを特定します。shift_logic
ノードの隣にある Stateflow チャート アイコンを確認します。[右] のツリーで kickdown
をクリックします。レポートには両方の shift_logic
Stateflow チャートが表示されます。新しい kickdown
機能が一方のチャートに追加されていることを確認します。
結果のフィルター処理
フィルターを適用して、比較レポートに表示される変更のタイプを制御できます。利用可能なフィルターと現在のレポートに適用されているかどうかを確認するには、[比較] タブの [フィルター] セクションで下矢印をクリックしてフィルター ギャラリーを展開します。フィルター名をクリックして、適用するかどうかを切り替えます。[フィルター] セクションで、[表示] または [非表示] をクリックして、フィルターを適用する方法を制御します。
たとえば、Simulink モデル ファイルの一部の情報は機能以外であると定義されています。これらは、設計の動作を変更する可能性が低い変更です。機能以外の項目は既定では非表示になっています。[非表示] フィルター ボタンが選択されているときは [機能以外の変更] ボタンの選択を解除すると表示できます。
Stateflow を含むモデルでの変更のマージ
ツールストリップの [マージ モード] ボタンをクリックして、2 つの Simulink と Stateflow モデル間の変更をマージできます。これにより 3 番目のファイル targetFile
が作成され、このファイルには左側のモデルまたは右側のモデルのどちらかの変更が含まれます。[ターゲット] ツリーのボタンを使用して、targetFile
内で保持する差分を選択します。
[ファイルの保存] ボタンをクリックして右側のモデル (sl_sfcar_2
) で選択した変更を保存します。
ヒント: ラインをマージする前にブロックをマージし、遷移をマージする前にステートとジャンクションをマージしてください。マージ操作のヒントを参照してください。