主要内容

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

入力イベントの送信によるStateflowチャートのアクティブ化

“入力イベント”はStateflow®チャートの外部で発生し,そのチャートでのみ認識されます。このタイプのイベントにより,他のStateflowチャートを含めた他の仿真软金宝app件®ブロックは,特定のチャートに対してその外部で発生したイベントを通知できるようになります。入力イベントを定義するには,次を行います。

  1. チャートでのイベントの定義の説明に従って,イベントをStateflowチャートに追加します。

  2. イベントの[スコープ]プロパティを(金宝app仿真软件から入力)に設定します。金宝app仿真软件モデルのStateflowブロックの一番上に単一のトリガー端子が表示されます。

  3. 入力イベントは,制御信号(エッジトリガー)の変更または仿真软件金宝appブロックからの関数呼び出しによってStateflowチャートをアクティブ化できます。

    • エッジトリガー入力イベントを指定するには,[トリガー]プロパティを次のいずれかのオプションに設定します。

      • 立ち上がり

      • 立ち下がり

      • 両エッジ

    • 関数呼び出し入力イベントを指定するには,[トリガー]プロパティを[関数呼び出し]に設定します。

    エッジトリガー入力イベントと関数呼び出し入力イベントを同じStateflowチャート内に混在させることはできません。これらの入力イベントを混在させると,コンパイル時エラーが発生します。

詳細については,イベントのブロードキャストによるモデルコンポーネントの同期を参照してください。

エッジトリガーを使用したStateflowチャートのアクティブ化

エッジトリガー入力イベントにより,Stateflowチャートが,シミュレーションの現在のタイムステップ時に実行されます。このタイプの入力イベントでは,制御信号の変更がトリガーの役割を果たします。

エッジトリガータイプ

説明

立ち上がり

立ち上がりエッジトリガー。制御信号が0または負の値から正の値に変化すると,チャートがアクティブになります。

立ち下がり

立ち下がりエッジトリガー。制御信号が正の値から0または負の値に変化すると,チャートがアクティブになります。

両エッジ

立ち上がりエッジトリガーまたは立ち下がりエッジトリガーのいずれか。制御信号がどちらかの方向に変化してゼロクロッシングを行うと,チャートがアクティブになります。

いずれの場合も,制御信号の値を有効なエッジトリガーにするには,ゼロクロッシングを行わなければなりません。たとえば1から1に変化する信号は,有効な立ち上がりエッジトリガーです。1から2に変化する信号は,有効な立ち上がりエッジトリガーではありません。

エッジトリガー入力イベントを使用する場合

モデルが定期的または周期的にチャートを実行する必要がある場合は,エッジトリガー入力イベントを使用してチャートをアクティブ化します。たとえば,このモデルでは、エッジ トリガー入力イベントは Edge to Function チャートを定期的な間隔でアクティブ化します。詳細については、単一のステップでサブシステムを複数回スケジュールを参照してください。

複数のエッジトリガー入力イベントの動作

どのタイムステップでも,入力イベントはその端子番号の昇順でチェックされます。チャートは,有効なイベントごとに1回起動されます。エッジトリガー入力イベントの場合は,同じタイムステップ内に複数のエッジが発生する可能性があります。これにより,タイムステップ内で複数回,チャートが起動されます。この状況では,イベントはその端子番号の昇順でチャートを起動します。

関数呼び出しを使用したStateflowチャートのアクティブ化

関数呼び出し入力イベントにより,Stateflowチャートが,シミュレーションの現在のタイムステップ時に実行されます。このタイプの入力イベントでは,Stateflowチャートを呼び出すブロックに対して関数呼び出し出力イベントも定義しなければなりません。

関数呼び出し入力イベントを使用する場合

モデルが関数呼び出しと同じタイムステップでチャートからの出力データにアクセスする必要がある場合に,関数呼び出し入力イベントを使用してチャートをアクティブ化します。たとえば,このモデルでは,関数呼び出し入力イベントは循环调度器チャートをアクティブ化します。詳細については,単一のステップでサブシステムを複数回スケジュールを参照してください。

複数の関数呼び出し入力イベントの動作

関数呼び出し入力イベントの場合は,トリガーイベントが1つのみ存在します。イベントの呼び出し側は,明示的にチャートを呼び出して実行します。単一のタイムステップ内では,有効な関数呼び出しは1回のみです。

入力イベントと制御信号の関連

1つのチャート内で1つ以上の入力イベントを定義すると,チャートブロックの上部に単一のトリガー端子が表示されます。複数の外部模金宝app型ブロックが,トリガー端子に接続した信号ベクトルを介して,入力イベントをトリガーできます。入力イベントの[端子]プロパティは,トリガー端子に接続する制御信号ベクトルへのインデックスを指定します。

既定では,[端子]の値は,入力イベントの追加順で表示されます。これらの割り当ては,イベントの[端子]プロパティを変更することによって変更できます。入力イベントの[端子]プロパティを変更すると,残りの入力イベントの[端子]の値の番号が自動的に再設定されます。

入力イベントで使用可能なデータ型

1つのトリガー端子に対して複数の入力イベントを設定するには,すべての信号のデータ型が同じでなければなりません。データ型が異なる複数の信号を入力イベントとして使用すると,シミュレーション時にエラーが発生します。たとえば,2型のつの入力信号を多重化して,チャートに対する入力イベントとして使用できます。

金宝app使用double类型的两个信号作为状态流图的输入事件的Simulink模型。

布尔など,データ型が異なる2つの入力信号を多重化することはできません。

金宝app使用布尔型信号和double型信号作为状态流图的输入事件的Simulink模型。这个配置会产生一个运行时错误。

関連するトピック