Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Stateflow エディターの操作

Stateflow エディター

Stateflow® エディターを使用して、ウィンドウに表示されるチャートを描画、ズーム、修正、印刷、保存します。

Stateflow チャートを開くと、チャートが Stateflow エディターに表示されます。

Stateflow エディターで新しい Stateflow チャートを開くには、次の手順に従います。

  1. MATLAB® コマンド プロンプトで、次のように入力します。

    コマンド結果
    sfnew
    既定のアクション言語でチャートを作成します。詳細については、sfnewを参照してください。
    sfnew -MATLAB
    MATLAB をアクション言語として空のチャートを作成します。
    sfnew -C
    空の C チャートを作成
    stateflow
    既定のアクション言語で空のチャートを作成し、Stateflow ブロック ライブラリを表示します。

    Simulink® エディターが開き、空のチャートが表示されます。

  2. チャート オブジェクトをダブルクリックします。

    Stateflow エディターが開きます。

Stateflow エディター ウィンドウは、以下のセクションで構成されています。

  • タイトル バー

    完全なチャート名は、モデル名/チャート名* 形式で表示されます。チャート名の最後の * 文字は、新規作成されたチャートである、または、編集後に保存されていない既存チャートであることを示します。

  • ツールストリップ

    エディター コマンドの大半は、このツールストリップから使用できます。ツール バーの各ツールを確認するには、ポインターをそのツールの上に移動して、内容を示すツール ヒントを表示します。

  • オブジェクト パレット

    ステート、遷移、その他のチャート オブジェクトを描画するための一連のツールが表示されます。オブジェクトを追加するには、パレットを使用して次の操作を行います。

    • オブジェクトのアイコンをクリックして、カーソルを描画領域内のオブジェクトを配置する場所に移動します。

    • オブジェクトのアイコンを描画領域にドラッグします。

    • オブジェクトのコピーを作成するには、アイコンをダブルクリックして、描画領域内を複数回クリックします。

  • エクスプローラー バー

    階層リンクには、エディターで開いているシステムが表示されます。階層リンク内のシステムをクリックすると、そのシステムが表示されます。チャート階層を移動するためのボタンも含まれています (サブチャートの操作を参照)。

  • モデル ブラウザー

    左下にある二重の矢印 をクリックすると、エディター内にあるモデルのツリー構造の表示を開いたり閉じたりすることができます。

  • 描画領域 — このエリアにはチャートの編集可能なコピーが表示されます。

  • コンテキスト メニュー (ショートカット メニュー) — これらのメニューは、オブジェクトを右クリックすると描画領域に表示されます。そのオブジェクトに適用するコマンドのみを表示します。チャートの空のエリアを右クリックすると、コンテキスト メニューがチャート オブジェクトに適用されます。

  • ステータス情報 — エディターの上の方にあり、シミュレーション時間とシミュレーション モードを確認 (およびリセット) できます。下にあるステータス バーには、Stateflow の処理のステータス、ツールのヒント、ズーム倍率およびソルバーが表示されます。

エディターの操作を元に戻す/やり直す

チャート内で実行した操作を元に戻したり、やり直すことができます。操作を元に戻すと、最後に実行した編集操作がキャンセルされます。チャートで操作を元に戻した後は、同じ操作を 1 つずつやり直すことも可能です。

  • チャートで操作を元に戻すには、Ctrl + Z を押す。

  • チャートで操作をやり直すには、Ctrl + Y を押す。

Stateflow オブジェクトで実行する多くの操作は、[シンボル] ペインまたはプロパティ インスペクターで元に戻したりやり直すことができます。

元に戻す操作の例外

すべてのエディターの操作は元に戻したりやり直したりすることができますが、以下の例外があります。

チャートの色とフォントの指定

Stateflow でチャートの個々の要素を表示する方法を変更したり、チャート全体で使用するグローバル表示オプションを指定したりできます。

単一要素のサイズ変更

チャート内の単一の要素の表示サイズを変更するには、その要素を右クリックし、コンテキスト メニューから新しい [書式設定] オプションを選択します。使用可能なオプションは、選択する要素によって異なります。

オプションステート遷移ジャンクション注釈その他の要素
フォント サイズ使用可能使用可能使用不可使用可能使用可能
矢印サイズ使用可能使用可能使用可能使用不可使用不可
ジャンクション サイズ使用不可使用不可使用可能使用不可使用不可
フォント スタイル使用不可使用不可使用不可使用可能使用不可
影を付ける使用不可使用不可使用不可使用可能使用不可
テキスト配置使用不可使用不可使用不可使用可能使用不可

グローバル表示オプションの変更

[色とフォント] ダイアログ ボックスを使用すると、チャートのカラー スキームを指定したり、チャート内のオブジェクト タイプごとに色やラベル フォントを指定したりできます。[色とフォント] ダイアログ ボックスを開くには、[書式設定] タブの [スタイル] をクリックします。

[色とフォント] ダイアログ ボックスでは、描画領域に、チャートの現在のカラー スキームで指定されている色とラベル フォントの例が表示されます。[スキーム] メニューから、別のカラー スキームを選択できます。単一タイプのチャート要素の表示オプションを変更するには、サンプル オブジェクトの上にポインターを配置します。

  • 要素の色を変更するには、サンプル オブジェクトをクリックして、ダイアログ ボックスで新しい色を選択します。

  • 要素のフォントを変更するには、サンプル オブジェクトを右クリックし、ダイアログ ボックスで新しいフォント、スタイル、またはサイズを選択します。

スキームをチャートに適用するには、[適用] をクリックします。スキームを適用してダイアログ ボックスを閉じるには、[OK] をクリックします。

このスキームをすべてのチャートの既定のスキームにするには、[オプション][この設定を ''既定'' のスキームにする] を選択します。

既定のカラー スキームへの変更を保存するには、[オプション][既定の設定をディスクに保存] を選択します。変更後のスキームが既定のスキームでない場合は、[既定の設定をディスクに保存] を選択しても影響はありません。

Stateflow オブジェクトのコンテンツ プレビュー

チャートが閉じているときは、Simulink で Stateflow チャートのコンテンツをプレビューできます。チャートのコンテンツのアウトラインを確認できます。シミュレーション中は、チャートのアニメーションを見ることができます。チャートが開いているときは、サブチャートのコンテンツと Simulink 関数をプレビューできます。

たとえば、Temporal Logic チャートではコンテンツ プレビューが使用されています。Without Temporal Logic チャートでは使用されていません。

Stateflow チャートおよびサブチャートのコンテンツ プレビューをオンにするには、チャートを右クリックし、[書式設定][コンテンツ プレビュー] を選択します。Simulink 関数の場合は、関数を右クリックして [コンテンツ プレビュー] を選択します。Simulink におけるコンテンツ プレビューの詳細については、モデル コンポーネントの内容のプレビュー (Simulink)を参照してください。

メモ

コンテンツ プレビューを表示するために、Stateflow のチャートまたはオブジェクトの拡大が必要となる場合があります。

Stateflow チャートの高度なタブ補完

Stateflow のタブ補完では、状況に依存した入力補助を利用できます。タブ補完はタイプミスの回避に役立ちます。また、キーワード、データ、イベント、メッセージおよび関数名に対して、構文に適したオプションを簡単に選択できます。モデル エクスプローラーに移動する必要はありません。Stateflow チャートで、次の手順により入力を実行します。

  1. 対象とする単語の最初の数文字を入力します。

  2. Tab キーを押して一致候補のリストを確認します。

  3. 矢印キーを使用して単語を選択します。

  4. Tab キーを押して選択を決定します。

さらに、以下のことができます。

  • Esc キーを押して、何も選択せずに一覧を閉じます。

  • 一致候補のリストを絞り込むには、最初に入力した言葉に文字を追加入力します。

Tab キーを押しても単語が一覧表示されない場合は、現在の単語が唯一の一致候補であるということです。

アクション言語の構文要素の表示変更

色の強調表示を使用して、以下の構文要素を区別できます。

  • キーワード

  • コメント

  • イベント

  • メッセージ

  • 関数

  • 文字列

  • 数値

  • ローカル データ

  • 定数データ

  • データの入力

  • データの出力

  • パラメーター データ

  • データ ストア メモリのデータ

構文の強調表示はモデルの基本設定ではなく、ユーザーの基本設定に該当します。

既定値の構文の強調表示

以下のチャートに、各言語要素の既定の強調表示を示します。

The default highlighting.

Stateflow パーサーで構文要素を解析できない場合は、チャートにその要素が既定のテキストの色で表示されます。

構文の強調表示の編集

  1. Stateflow エディターの [書式設定] タブで、[スタイル][構文の強調表示] をクリックします。

    [構文の強調基本設定] ダイアログ ボックスが開きます。

  2. 変更する色をクリックし、カラー パレットから別の色を選択して、[適用] をクリックします。

  3. [OK] をクリックして [構文の強調基本設定] ダイアログ ボックスを閉じます。

構文の強調表示の有効化と無効化

  1. Stateflow エディターの [書式設定] タブで、[スタイル][構文の強調表示] をクリックします。

    [構文の強調基本設定] ダイアログ ボックスが開きます。

  2. [構文の強調表示を有効にする] ダイアログ ボックスをオンまたはオフにして、[OK] をクリックします。

グラフィカル オブジェクトの選択と選択解除

描画領域にオブジェクトを配置した後、このオブジェクトに対して変更や追加を行うには、まずこのオブジェクトを選択します。

  • オブジェクトを選択するには、オブジェクト内の任意の位置をクリックします。

  • 隣接する複数のオブジェクトを選択するには、マウスをクリック アンド ドラッグして、選択するオブジェクトの全体または一部を取り囲み、マウスのボタンを放します。

    ボックス内のすべてのオブジェクトまたはオブジェクトの部分が選択されます。

  • 独立した複数のオブジェクトを選択するには、Shift キーを押しながら、オブジェクトをクリックするか、オブジェクトのグループを選択枠で囲みます。

    これにより、選択されたオブジェクトのリストにオブジェクトが追加されます。ただし、既に選択されていたオブジェクトは、これにより選択が解除されます。このようにして複数のオブジェクトを選択する方法は、ステート自体を選択せずにステート内のオブジェクトを選択する場合に便利です。

  • すべてのオブジェクトの選択を解除するには、描画領域内でオブジェクト以外の部分をクリックします。

オブジェクトが選択されると、選択した色設定の色で強調表示されます (既定の設定では青色。詳細は、チャートの色とフォントの指定 を参照)。

グラフィカル オブジェクトの切り取りと貼り付け

描画領域からオブジェクトを切り取ったり、切り取ったオブジェクトを任意の回数、貼り付けたりできます。チャート間で、オブジェクトの切り取りと貼り付けが可能です。チャートには、最後に切り取ったオブジェクトの選択リストが保持されています。オブジェクトは、ポインターの現在位置に最も近い描画領域に貼り付けられます。

  • オブジェクトを切り取るには、オブジェクトを右クリックしてコンテキスト メニューから [切り取り] を選択します。

  • 最後に切り取ったオブジェクトを貼り付けるには、チャート内を右クリックしてコンテキスト メニューから [貼り付け] を選択します。

グラフィカル オブジェクトのコピー

描画領域のオブジェクトをコピーして貼り付けるには、オブジェクトを選択して右クリックし、描画領域内の所定の位置にドラッグします。この操作により、チャートのクリップボードも更新されます。

メモ

チャート内でステートの切り取りと貼り付けを行う際には、以下のルールが適用されます。

  • 元のステートに既定の ? ラベルが使用されている場合、新しいステートでもこのラベルが使用されます。

  • 元のステートで既定の ? ラベルが使用されていない場合、新しいステートに対して一意の名前が生成されます。

または、チャートから別のチャートにコピーする場合は、[コピー] を選択した後、右クリック コンテキスト メニューから [貼り付け] を選択します。

オブジェクトのコメント アウト

Stateflow オブジェクトをコメント アウトするには、選択したオブジェクトを右クリックして、[コメント アウト] を選択します。詳細については、チャート内の Stateflow オブジェクトのコメント化を参照してください。

チャート オブジェクトの書式設定

チャートのオブジェクトを見やすくするには、Stateflow エディターの [書式設定] タブにあるコマンドを使用できます。これらのコマンドには以下のオプションがあります。

  • 配置

  • 整列

  • サイズ変更

以下のチャート オブジェクトを配置、整列、サイズ変更できます。

  • ステート

  • 関数

  • ボックス

  • ジャンクション

これらのオプションのいくつかは、チャート内の要素を選択した後にのみ表示されます。

チャート オブジェクトの配置、整列、サイズ変更

チャート オブジェクトを配置、整列、サイズ変更する基本的な手順は同様です。

  1. パラレル ステートまたは単一の遷移元からの出力遷移が含まれている場合は、明示的な順序付けが使用されていることを確認してください。

    明示的な順序付けを設定するには、[チャート] プロパティ ダイアログ ボックスの [ユーザー指定のステート/遷移実行順序] を選択します。

    メモ

    パラレル ステートの実行順序や出力遷移の評価順序が暗黙的な順序付けを使用して判定されている場合は、チャート オブジェクトを配置、整列、またはサイズ変更した後に、順序を変更することができます。明示的な順序付けを使用すると、この変更はできなくなります。詳細はパラレル ステートの実行順序および遷移の評価順序を参照してください。

  2. 配置、整列またはサイズ変更するチャート オブジェクトを選択します。

    オブジェクトは任意の順序で 1 つずつ選択するか、オブジェクトの周囲にボックスを描画することによって選択できます。

  3. その他のチャート オブジェクトを配置、整列、またはサイズ変更するためのアンカーとして使用するオブジェクトを判定します。このオブジェクトは参照オブジェクトです。

    オブジェクトを参照オブジェクトとして設定するには、そのオブジェクトを右クリックします。参照オブジェクトの周囲にはかっこが表示されます。以下の例では、Door ステートおよび Motion ステートが選択されており、Door ステートは参照です。

    メモ

    オブジェクトを 1 つずつ選択する場合は、最後に選択するオブジェクトが参照オブジェクトとなります。

  4. [書式設定] タブからオプションを選択して、選択したオブジェクトを配置、整列またはサイズ変更します。

    チャート オブジェクトの整列オプションの詳細は、チャート オブジェクトの整列オプションを参照してください。

チャート オブジェクトの整列オプション

オプション説明
水平方向に整列

任意の 2 つのオブジェクトの中心から中心までの水平距離が同じになります。

メモ

整列の水平方向の空間は、最も左のオブジェクトの左端から、最も右のオブジェクトの右端までの距離です。選択したオブジェクトの幅の合計が水平方向の空間におさまらない場合は、整列後にオブジェクトが重なっている場合があります。

垂直方向に整列

任意の 2 つのオブジェクトの中心から中心までの垂直距離が同じになります。

メモ

整列の垂直方向の空間は、最も上のオブジェクトの上端から、最も下のオブジェクトの下端までの距離です。選択したオブジェクトの高さの合計が垂直方向の空間におさまらない場合は、整列後にオブジェクトが重なっている場合があります。

水平方向に等間隔にする

任意の 2 つのオブジェクトの水平方向の空白が同じになります。

メモ

[水平方向に整列] の空白制約が適用されます。

垂直方向に等間隔にする

任意の 2 つのオブジェクトの垂直方向の空白が同じになります。

メモ

[垂直方向に整列] の空白制約が適用されます。

チャート オブジェクトの配置例

sf_pool モデルを開き、複数の MATLAB 関数をもつチャートが表示されたとします。

3 つの MATLAB Function を右ぞろえするには、以下の手順に従います

  1. sf_pool モデルを開きます。Pool ブロックをダブルクリックしてチャートを開きます。

    ヒント

    Stateflow エディターを展開して、チャート全体を表示します。

  2. 関数 isAnyBallGoingToStop をクリックします。

  3. Shift キーを押しながら関数 isAnyBallNewlyPocketed をクリックします。

  4. Shift キーを押しながら関数 getBallInteraction をクリックします。

    このオブジェクトは、3 つの関数を配置するための参照 (つまりアンカー) です。関数の周囲にはかっこが表示されます。

  5. [書式設定] タブで [右揃え] をクリックします。

    これにより、3 つの関数の右端が、getBallInteraction の右端を基準として配置されます。

チャート オブジェクトの整列例

sf_frame_sync_controller モデルを開き、3 つのステートをもつチャートが表示されたとします。

3 つのステートを垂直方向に整列させるには、以下の手順に従います。

  1. sf_frame_sync_controller モデルを開きます。

    ヒント

    Frame Sync Controller ブロックをダブルクリックし、そのチャートを開きます。

  2. 3 つのステートを任意の順序で選択します。

    Shift キーを押しながら複数のステートを選択します。

    メモ

    3 つのステートを任意の順序で選択したとき、参照オブジェクトが、表示されているものとは異なっている場合があります。違っていても、垂直方向の空白の整列に影響はありません。

  3. [書式設定] タブで [垂直方向に等間隔にする] をクリックします。

    これにより、隣り合う 2 つのステート間の垂直方向の空白が同じになります。

チャート オブジェクトのサイズ変更例

sf_clutch_enabled_subsystems モデルを開き、さまざまなサイズのグラフィカル関数をもつチャートが表示されたとします。

すべてのグラフィカル関数のサイズが detectSlip のサイズに一致するように変更するには、以下の手順に従います。

  1. sf_clutch_enabled_subsystems モデルを開きます。

  2. Friction Mode チャートで、3 つのグラフィカル関数の周囲にボックスを描画することにより、これらの関数を選択します。

  3. detectSlip を、サイズ変更用の参照オブジェクトとして設定します。

    関数を右クリックし、かっこが表示されるようにします。

  4. [書式設定] タブで [サイズを揃える] をクリックします。

    これにより、3 つの関数が同じサイズになります。

  5. 関数のボックスを調整して形式を訂正するには、以下の手順に従います。

    1. [書式設定] タブで [左揃え] をクリックします。

    2. [書式設定] タブで [垂直方向に等間隔にする] をクリックします。

チャートの自動書式設定

[Arrange Automatically] を使用すると、Stateflow でチャートを次のように調整できます。

  • ラベル文字列に適合するようにステートと遷移を拡張する。

  • 類似したステートを同じサイズになるように変更する。

  • ステートの位置がわずかにずれている場合、それらを調整する。

  • 遷移を整列する。

  • 水平方向の遷移ラベルを中間点に再配置する。

[書式設定] タブで [自動調整] をクリックします。

この例では、チャートが次のようになっています。

  1. ステート アクションがステート A の境界線の外にある。

  2. 遷移条件がステート B とオーバーラップしている。

  3. 水平になっていない遷移がある。

レイアウトを自動調整すると、次のようになります。

  1. ステート アクションがステート A 内に含まれている。

  2. 遷移条件がステート B とオーバーラップしていない。

  3. 下側の遷移が水平になっている。

モデル レポートの生成

[モデル レポートの作成] レポートは、Simulink モデル ウィンドウの [モデル レポートの作成] レポートを拡張したものです。レポートを選択したビューに現在表示されているチャートに関連する Stateflow オブジェクトと Simulink オブジェクトのレポートが表示されます。

チャート オブジェクトのモデル レポートを生成するには、以下のようにします。

  1. レポートを作成するチャートまたはサブチャートを開きます。

  2. [シミュレーション] タブで [印刷][モデル レポートの作成] を選択します。

    [モデル レポートの作成] ダイアログ ボックスが表示されます。

  3. レポートファイルの出力先ディレクトリを入力し、オプションを選択してレポートに表示するオブジェクトの種類を指定します。

    [ファイルの位置/名前オプション] セクションに含まれるフィールドの設定の詳細については、モデル レポートの出力 (Simulink)を参照してください。作成されるレポートの詳細は、システム レポートのオプションおよびレポートの形式を参照してください。

  4. [印刷] をクリックします。

[モデル レポートの作成] ダイアログ ボックスが表示され、レポートの生成が追跡されます。このウィンドウの詳細については、モデル レポートの出力 (Simulink)を参照してください。

既定のブラウザーに HTML 形式のレポートが表示されます。

ヒント

Simulink Report Generator™ がインストールされている場合は、システムに関する詳細なレポートを生成できます。そのためには、[モデル化] タブの [設計] で、[システム設計レポート] を選択します。詳細については、システム設計の説明 (Simulink Report Generator)を参照してください。

システム レポートのオプション

現在の Stateflow チャートのレポートは、[システム レポートのオプション] で以下のいずれかをオンにすることで変化します。

  • [現在のオブジェクト] — 現在のエディター ウィンドウ内のチャートまたはサブチャートと、その直接の親 Simulink システムについてレポートされます。

  • [現在とその上] — このオプションはグレー表示され、チャート詳細を印刷する用途では使用できません。

  • [現在とその下] — 現在のエディターのチャートまたはサブチャートと下位階層のすべてのコンテンツについて、隣接する Simulink システムとともにレポートされます。

  • [モデル全体] — すべてのチャートとすべての Simulink システムを含む、モデル全体についてレポートされます。

    このオプションを選択すると、以下のようにレポートを修正できます。

    • [マスク ダイアログ内を表示] – マスク サブシステムのコンテンツがレポートに含まれます。

    • [固有のライブラリ リンクを展開] – サブシステムに該当するライブラリ ブロックのコンテンツがレポートに含まれます。

      モデル中に 2 箇所以上存在する場合でもレポートにはライブラリ サブシステムを 1 回しか含めません

レポートの形式

[モデル レポートの作成] レポートの一般的なトップダウン形式は、以下のとおりです。

  • レポートには、現在のビューのチャートまたはサブチャートを含む、Simulink モデル内のシステムのタイトルが表示されます。

  • 続いて、含んでいるシステムとそのサブシステムの Simulink 階層が表示されます。階層内の各サブシステムは、その Stateflow チャートのレポートにリンクしています。

  • 各システムまたはサブシステムの Stateflow チャートのレポート セクションには、システムまたはサブシステムの概要レポートに続いて、含まれている各チャートのレポートが表示されます。

  • 各チャート レポートには、専用のレポートが設定されている、サブチャート化されたステートのリンクとともに、チャートの再現が含まれています。

  • 付録に、レポート内の Stateflow オブジェクトと Simulink オブジェクトの表を記載しています。