ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

Stateflow チャートでのテスト ポイントのモニター

Stateflow チャートのテスト ポイントについて

Stateflow® テスト ポイントは、シミュレーション時に、たとえば、Floating Scope ブロックを使用して監視できる信号です。以下の Stateflow オブジェクトをテスト ポイントとして指定できます。

  • 任意のステート

  • 以下の特徴をもつローカル データ

    • サイズがスカラー、1 次元、または 2 次元

    • ml を除く任意のデータ型

    • Stateflow チャートの子オブジェクト

Stateflow API またはモデル エクスプローラー (モデル エクスプローラーによる Stateflow ステートとローカル データに対するテスト ポイントの設定 を参照) で TestPoint プロパティを設定することで、個別のデータまたはステートをテスト ポイントとして宣言できます。

モデルのシミュレーション時には、フローティング スコープで個別の Stateflow テスト ポイントをモニターできます。テスト ポイントの値を MATLAB® ワークスペース オブジェクトにログ作成することも可能です。

アクティブ ステートの出力を使用して、Simulink のステート アクティビティ データを表示したりログを作成したりもできます。詳細は、「アクティブ ステートの出力について」を参照してください。

モデル エクスプローラーによる Stateflow ステートとローカル データに対するテスト ポイントの設定

モデル エクスプローラーを使用して、個別のステートまたはローカル データをテスト ポイントとして明示的に設定できます。以下の手順は、Stateflow ステートとデータに対して個別のテスト ポイントを設定する方法を示しています。

  1. 以下のモデルを作成します。

    上記のモデルは、Sine Wave ブロックで構成されています。このブロックは、入力トリガー イベント tic を使用して Stateflow チャートをトリガーします。

  2. 以下のステートと遷移をチャートに追加します。

    最初の tic イベントに対してステート A とそのサブステート X の入力が発生します。tic イベントが 10 回発生してからステート B への入力が発生するまで、ステート A とサブステート X はアクティブなままです。次のイベントで、ステート A とサブステート X への入力が発生してサイクルが継続されます。

    データ x はサブステート X に属します。10 回の tic イベントで X がアクティブな場合に、サブステート Xentryduring アクションにより、x がインクリメントされます。ステート B への入力が発生すると、x はゼロに再初期化され、サイクルが反復されます。

  3. モデルを myModel という名前で保存します。

  4. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。

  5. [ソルバー] ペインで、以下のソルバー オプションを指定します。

    1. [タイプ][固定ステップ] に設定します。

    2. [ソルバー][離散 (連続状態なし)] に設定します。

    3. [固定ステップ (基本サンプル時間)][0.1] に設定します。

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

  6. モデル エクスプローラーを開きます。

  7. モデル エクスプローラーで、myModel ノードを展開し、Chart1 ノードを展開します。

  8. A を右クリックし、[プロパティ] を選択します。

  9. [プロパティ] ダイアログ ボックスの [ログ] ペインで、[テスト ポイント] チェック ボックスを選択し、[OK] をクリックします。

    このステップにより、ステート A のテスト ポイントが作成されます。

  10. ステート A.XB について上記の手順を繰り返します。

  11. モデル エクスプローラーで、ステート X を再び選択します。

  12. ローカル データ x を右クリックし、[プロパティ] を選択します。

  13. プロパティ ダイアログ ボックスで、[テスト ポイント] チェック ボックスを選択し、[OK] をクリックします。

  14. モデル エクスプローラーを閉じ、モデルを保存します。

また、テスト ポイントのログも作成できます。[信号のログ] ダイアログ ボックスを使用する方法の詳細は、複数の信号ログの同時取得 を参照してください。MATLAB コマンド ラインで信号のログを作成する方法の詳細は、コマンド ライン API によるチャート信号のログ作成 を参照してください。

フローティング スコープによるデータ値とステートの自己アクティビティの監視

この節では、データ値とステートの自己アクティビティを監視するように Floating Scope ブロックを設定します。

  1. 以下のモデルを作成します。

    上記のモデルは、Floating Scope ブロックと Stateflow チャートで構成されています。

  2. 以下のステートと遷移をチャートに追加します。

    データ x1 を 10 サンプルごとに 0.02 インクリメントすることで、チャートが開始されます。次の 10 サンプルで、x1 は 0.2 ずつインクリメントし、次にサイクルが反復されます。

  3. モデルを保存します。

  4. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。

  5. [ソルバー] ペインで、以下のソルバー オプションを指定します。

    1. [タイプ][固定ステップ] に設定します。

    2. [ソルバー][離散 (連続状態なし)] に設定します。

    3. [固定ステップ (基本サンプル時間)][0.1] に設定します。

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

  6. テスト ポイントとしてステートの AB を指定します。

    1. チャートで各ステートを右クリックし、[プロパティ] を選択します。

    2. ステートのプロパティ ダイアログ ボックスの [ログ] ペインで、[テスト ポイント] を選択します。

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

  7. 次のようにして、ローカル データとして x1 を追加します。

    1. [チャート][他の要素を追加][ローカル データ] を選択します。

    2. 名前を x1 に変更します。

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

  8. テスト ポイントとしてデータ x1 を指定します。

    1. モデル エクスプローラーを開きます。

    2. [モデルの階層構造] ペインで、チャートに移動します。

    3. [コンテンツ] ペインで、x1 を右クリックし、[プロパティ] を選択します。

    4. データのプロパティ ダイアログ ボックスの [ログ] ペインで、[テスト ポイント] を選択します。

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

    6. モデル エクスプローラーを閉じます。

  9. Floating Scope ブロックをダブルクリックして、ウィンドウを開きます。

  10. [フローティング スコープ] ウィンドウで、[信号選択] アイコン をクリックします。

    モデルの Simulink® ブロックの階層が表示された状態で、[信号セレクター] ダイアログ ボックスが開きます。

  11. [モデルの階層構造] ペインで、モニターする信号を含むチャートを選択し、[リスト内容] ペインで、信号を選択します。

  12. モデルのシミュレーションを実行します。

    x1 とステート A のアクティビティに対する信号のトレース結果が表示されます。

    ステート A がアクティブの場合、信号値は 1 です。非アクティブの場合、信号値は 0 です。この値は他のデータと比較すると極端に小さいかまたは大きいため、2 番目の Floating Scope ブロックを追加して、アクティビティ信号を他のデータと比較する場合が考えられます。

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