主要内容

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

時相論理を使用したチャート実行の制御

時相論理は,時間の観点からチャートの実行を制御します。ステートアクションと遷移において、次の 2 つのタイプの時相論理を使用できます。

  • イベントベースの時相論理はイベントの反復実行を追跡します。ベースイベントとしては,どの明示的および暗黙的イベントでも使用できます。

  • 絶対時間の時相論理はステートがアクティブになってからの経過時間を追跡します。絶対時間の時相論理演算子のタイミングはStateflow®チャートのタイプによって異なります。

    • 金宝app®モデル内のチャートは,絶対時間時相論理をシミュレーション時間で定義します。

    • MATLAB®4时时代を时代时间で定义します。

時相論理演算子

时代に基因てextenfflowチャートの动作をするにはは,次の表にあるこれらを演算子ます使。

  • ステートアクション

  • ステートを起点とする遷移パス上のアクション

各時相論理演算子にはステートが関連付けられています。これは,アクションが実行されるステート,または遷移パスの起点となるステートです。Stateflowチャートは、関連付けられたステートが再びアクティブになるたびに、各演算子で使用されるカウンターをリセットします。

演算子 构文 说明

后(n, E)

Nは正の整数,または正のの値としてされる式です。

E.は演算子のベースイベントです。

関連付けられたステートがアクティブになってからのイベントE.のの生物数量がN回以上である場合に真正的を返します。それ户外の综合,演算子は错误的を返します。

チャートがイベントE.のブロードキャストを処理すると,ステータスメッセージを表示します。この処理はステートがアクティブになってから3番目以降のE.ののブロードキャストで実実れれれ

(3,E)之后:disp ('上');

チャートがイベントE.のブロードキャストを処理すると,関連付けられたステートから遷移します。この処理はステートがアクティブになってから5番目以降のE.ののブロードキャストで実実れれれ

后(5 E)

后(n,蜱虫)

Nは正の整数,または正のの値としてされる式です。

関連付けられたステートがアクティブになってからのチャートの起動回数がN回以上である場合に真正的を返します。それ户外の综合,演算子は错误的を返します。

金宝app仿真软件モデル内のStateflowチャートに入力イベントがある場合,暗黙的イベント蜱虫はサポートされません。详细については,暗黙的イベントを使用したチャート動作の制御を参照してください。

関連付けられたステートがアクティブになってからチャートが7回以上起動すると,このステートから遷移します。ただし,変数临时98.6がより大きい場合に限られます。

蜱虫后(7日)(临时> 98.6)

后(n, sec)

(n, msec之后)

后(n,购买)

Nは正の実数,または正の実数値として評価される式です。

关键词付けられたステートアクティブになっなっからからN単位の时间がが経过した含量に真正的を返します。それ户外の综合,演算子は错误的を返します。

金宝appSimulinkモデルのチャートで,时间を秒単位(),ミリ秒単位(MSEC.),またはマイクロ秒単位(购买)で指定します。

matlabののスタンドアロンアロンチャートで,时间を秒単位()で指定します。演算子は,チャートを起動するための暗黙的イベントを生成する MATLAB计时器オブジェクトを作成します。MATLAB计时器オブジェクトの精细は1ミリ秒に制されれれについてはははは,スタンドアロンチャートのイベントを参照してください。

关键词付けられたたステートががが秒以アクティブにたた点からからからからからから,チャートがが动词たびたび数临时に設定します。

(12.3,秒)之后:temp =低;

在(n, E)

Nは正の整数,または正のの値としてされる式です。

E.は演算子のベースイベントです。

関連付けられたステートがアクティブになってからのイベントE.のの生物数が厳密にN回回结合に真正的を返します。それ户外の综合,演算子は错误的を返します。

ステートがアクティブになってから3番目のイベントE.ののブロードキャストをチャートチャートがする,ステータスメッセージが表示されます。

(3 E):disp ('上');

ステートステートがアクティブにになってからからからからのE.のブロードキャストをチャートが処理すると,関連付けられたステートから遷移します。

在(E)

在(n,蜱虫)

Nは正の整数,または正のの値としてされる式です。

关键词付けられられたステートがアクティブになってからからチャートの起起起回回が厳密厳密N回回结合に真正的を返します。それ户外の综合,演算子は错误的を返します。

金宝app仿真软件モデル内のStateflowチャートに入力イベントがある場合,暗黙的イベント蜱虫はサポートされません。详细については,暗黙的イベントを使用したチャート動作の制御を参照してください。

関連付けられたステートがアクティブになってからチャートが7回起動すると,このステートから遷移します。ただし,変数临时98.6がより大きい場合に限られます。

蜱虫(7日)(临时> 98.6)

在(n,sec)

Nは正の実数,または正の実数値として評価される式です。

关键词られられたたステートがアクティブになってからの経过経过経过厳密厳密N秒秒结合に真正的を返します。それ户外の综合,演算子は错误的を返します。

を绝対时间の时代理工子の使するは,matlabのスタンドアロンチャートのみははさいます演算演算サポート,チャートチャートをを起するための的イベントを生成するmatlab计时器オブジェクトを作成します。MATLAB计时器オブジェクトの精细は1ミリ秒に制されれれについてはははは,スタンドアロンチャートのイベントを参照してください。

ステートが厳密に12.3秒アクティブだったたに,幂数临时高的に設定します。

在(12.3秒):temp =高;
之前

之前(n,e)

Nは正の整数,または正のの値としてされる式です。

E.は演算子のベースイベントです。

関連付けられたステートがアクティブになってからのイベントE.のの生物数量がN回未満の場合に真正的を返します。それ户外の综合,演算子は错误的を返します。

時相論理演算子之前は,金宝app仿真软件モデル内のStateflowチャートでのみサポートされています。

ステートステートがアクティブになっなってからからからと2番目番目のE.ののブロードキャストをチャートチャートがする,ステータスメッセージが表示されます。

之前(3 E):disp ('上');

チャートがイベントE.のブロードキャストを処理すると,このステートから遷移します。ただし,ステートがアクティブだったイベントE.のブロードキャストが5回未満の場合に限られます。

前(5 E)

之前(n,蜱虫)

Nは正の整数,または正のの値としてされる式です。

関連付けられたステートがアクティブになってからのチャートの起動回数がN回未満の場合に真正的を返します。それ户外の综合,演算子は错误的を返します。

金宝app仿真软件モデル内のStateflowチャートに入力イベントがある場合,暗黙的イベント蜱虫はサポートされません。详细については,暗黙的イベントを使用したチャート動作の制御を参照してください。

時相論理演算子之前は,金宝app仿真软件モデル内のStateflowチャートでのみサポートされています。

チャートが起動すると,関連付けられたステートから遷移します。ただし,変数临时98.6がより大きく,ステートがアクティブになってからのチャートの起動回数が7回未満の場合に限られます。

蜱虫(7日)(临时> 98.6)

之前(n,sec)

(n, msec之前)

之前(n,USEC)

Nは正の実数,または正の実数値として評価される式です。

関連付けられたステートがアクティブになってからN単位未満の時間が経過した場合に真正的を返します。それ户外の综合,演算子は错误的を返します。

時間は秒(),ミリミリ(MSEC.)またはマイクロ秒(购买)で指定します。

時相論理演算子之前は,金宝app仿真软件モデル内のStateflowチャートでのみサポートされています。

チャートが起动するたびに数临时地中海に設定します。ただし,関連付けられたステートがアクティブである時間が12.3秒未満である場合に限られます。

前(12.3秒):temp = med;
每一个

每一个(n, E)

Nは正の整数,または正のの値としてされる式です。

E.は演算子のベースイベントです。

关键词付けられられたステートがアクティブになって,イベントE.N回発生するごとに真正的を返します。それ户外の综合,演算子は错误的を返します。

ステートステートがアクティブにになったののE.のブロードキャストをチャートが3回処理するたびに,ステータスメッセージが表示されます。

每一个(3 E):disp ('上');

ステートステートがアクティブにになったののE.のブロードキャストをが5回回处たびに,关键词するたびステートからします。

每(5,e)

每一个(n,蜱虫)

Nは正の整数,または正のの値としてされる式です。

关键词付け付けられたステートがアクティブになってからチャートチャートチャートN回起动词たび真正的を返します。それ户外の综合,演算子は错误的を返します。

金宝app仿真软件モデル内のStateflowチャートに入力イベントがある場合,暗黙的イベント蜱虫はサポートされません。详细については,暗黙的イベントを使用したチャート動作の制御を参照してください。

ステートがアクティブになった後に蜱虫イベントが7回発生するたびに,関連付けられたステートから遷移します。ただし,変数临时98.6がより大きい場合に限られます。

每(7,刻度)[温度> 98.6]

每一个(n, sec)

Nは正の実数,または正の実数値として評価される式です。

関連付けられたステートがアクティブになってからN秒ごとに真正的を返します。それ户外の综合,演算子は错误的を返します。

每一个を绝対时间の时代理工子の使するは,matlabのスタンドアロンチャートのみははさいます演算演算サポート,チャートチャートをを起するための的イベントを生成するmatlab计时器オブジェクトを作成します。MATLAB计时器オブジェクトの精细は1ミリ秒に制されれれについてはははは,スタンドアロンチャートのイベントを参照してください。

ステートがアクティブである時間が12.3秒経過するごとに変数临时の値を5増やします。

每一个(12.3秒):temp = temp + 5;
temporalCount

临时(e)

E.は演算子のベースイベントです。

関連付けられたステートがアクティブになってからのイベントE.の発生回数を返します。

temporalCountをイベントベースの時相論理演算子として使用することは,金宝app仿真软件モデル内のStateflowチャートでのみサポートされています。

イベントE.ののブロードキャストををチャートがが处たびにに,配列mのの连続する要素要素にアクセスしし

on E: y = M(temporalCount(E));
临时(勾选)

关键词アクティブになっなっがにになっからからがしししからたますますしし返します返し返し返し

金宝app仿真软件モデル内のStateflowチャートに入力イベントがある場合,暗黙的イベント蜱虫はサポートされません。

temporalCountをイベントベースの時相論理演算子として使用することは,金宝app仿真软件モデル内のStateflowチャートでのみサポートされています。

配列mの连続する要素におけるにおける力データの値を格式します。

en,du: M(temporalCount(tick)+1) = u;

temporalCount (sec)

temporalCount(毫秒)

temporalCount(购买)

关键词にになっがにになっにたたたたたたたた间

時間は秒(),ミリミリ(MSEC.)またはマイクロ秒(购买)で指定します。

ステートがアクティブになってからの経過時間をミリ秒単位で格納します。

en,du: y = temporalCount(msec);
运行

运行(sec)

关键词にになっがにになっにたたたたたたたた间

temporalCount (sec)と等価です。

ステートがアクティブになっての経过経过経过経过でで格式します。

恩,du:y =经过(秒);
ET. 运行(sec)の,代替代替の行方法です。

チャートがイベントE.のブロードキャストキャストを定理するするとき,关键词,关键词,ステートがアクティブになっからの経过経过経过経过をしします。

E {disp (et);}
数数

数(C)

Cは,真正的または错误的として評価される式です。

条件式C真正的になり,かつ関連付けられたステートがアクティブになってからの,チャートが起動した回数を返します。

Stateflowチャートは,条件式C错误的になるか,关键词付けたステートがアクティブになると,数数演算子の値をリセットします。

金宝app仿真软件モデルのチャートでは,数数の値はステップに依存するするがありますますのまたはステップのサイズ変更する数数演算子により生成される结果影响影响生效。

5回回を超えるチャートチャートの実でXの値が2以上になった場合,関連付けられたステートから遷移します。

[计数(x> = 2)> 5]

Xの値が5より大きくなってからのチャートの実行回数を格納します。

En,du: y = count(x>5);
期间

持续时间(C)

Cは,真正的または错误的として評価される式です。

条件式C真正的になり,かつ関連付けられたステートがアクティブになってからの時間を秒単位で返します。

Stateflowチャートは,条件式C错误的になるか,关键词付けたステートがアクティブになると,期间演算子の値をリセットします。

時相論理演算子期间は,MATLABのスタンドアロンチャートではサポートされていません。

Xの値が0.1秒より長く0以上であった場合に,ステートから遷移します。

[持续时间(x> = 0)> 0.1]

Xが5より大きくなってからの秒数を格納します。

En,du: y =持续时间(x>5);

使用符符を使てキーワード“滴答”'秒''msec'および'USEC'を囲むことができます。たとえば,“滴答”后(5)蜱虫后(5)ととです。

メモ

時相論理演算子之前,および每一个は,しきい値Nを驰数型の内部とと比较します。Nが,2の整乘乘または非非のバイアスにより定义れた小数数码であるであるであるにより,比较の结果がないものなる结果性ありますますます。固定小数点データの关键词を参照してください。

時相論理の例

時間遅延の定義

次の例では,連続時間チャートで2つの絶対時間遅延を定義する方法を示します。

チャートチャート実行は次の手顺に従ってれ行。

  1. チャートが起動すると,ステート输入が最初にアクティブになります。

  2. シミュレーション時間5.33ミリ秒の経過後,输入から输出への遷移が発生します。

  3. ステート输入が非アクティブになり,ステート输出がアクティブになります。

  4. シミュレーション时间10.5秒の経过后,输出から输入への遷移が発生します。

  5. ステート输出が非アクティブになり,ステート输入がアクティブになります。

シミュレーションが終了するまで,手順2 ~ 5が繰り返されます。

チャートにれている场,チャートのすべてのはこのサンプル,simulink®ソルバーサイズサイズ0.1,チャートの®がサイズ0.1金宝app。パラメーターを変更する仮定しますますますその合,ステート输入からステート输出への最初の遷移はt = 0.1秒で発生します。この動作が当てはまる理由は,ソルバーがt = 5.33ミリ秒の時点でチャートを起動しないからです。代わりに,ソルバーは 0.1 秒の整数倍 (t = 0.0 や 0.1 秒など) でチャートを起動します。

経過時間の検出

次の例では,一步(金宝appSimulink)ブロックにより,Stateflowチャートへの単位ステップ入力が提供されています。

チャートは入力が1に等しくなるときを判断します。

  • t = 2秒より前に入力が1に等しくなる場合は,开始から快速地への遷移が発生します。

  • t = 2 ~ 5秒の間に入力が1に等しくなる場合は,开始から媒介への遷移が発生します。

  • t = 5秒より後に入力が1に等しくなる場合は,开始からへの遷移が発生します。

启用子系统における絶対時間の時相論理の使用

条件条件付きで実ささサブシステムににに存ででシステムははでではははの相论相论を使使できががになるなるとますシステムがになるととできます非ににとと相论サブ非アクティブになりなり相论相论相论サブアクティブにになりなり相论相论が非アクティブになりなり相论重算サブ子は停止します。サブシステムが再び有象になっ,チャートが动弹する,演算子はシミュレーション时间のカウント停止します。

このモデルには,[イネーブル時の状態]パラメーターが举行に設定されていがる启用子系统含まれています。

このサブシステムには演算子の使使し迁移をトリガーするが含まれていますます含まれています。

信号编辑器(金宝appSimulink)ブロックは,以下の特性をもつ入力信号を提供します。

  • この信号はT= 0でサブシステムを有效化。

  • この信号はT= 2ででサブシステムを无效しし

  • この信号はt = 6でサブシステムを再有効化します。

このグラフは,チャートで経過した時間の合計を示しています。入力信号によってサブシステムがt = 0の時点で有効になると,ステート一种がアクティブになります。システムが有効である間は,経過時間は増加します。サブシステムがt = 2で無効になると,チャートはスリープ状態に移行して,経過時間の増加が停止します。2 < t < 6の間は,システムが無効になっているため,経過時間は2秒のまま変わりません。t = 6でチャートが起動すると,経過時間は再度増加を始めます。

ステート一种からステートB.への迁移迁移,シミュレーション时间ではなく,ステート一种がアクティブである间の経过时间ににします。そのその,迁移迁移t = 9,つまりステート一种での経過時間が5秒に等しくなった時点で発生します。遷移が発生すると,出力値yは0から1に変化します。

使ブロックのパラメーター[イネーブル時の状態]举行にに设定したサブシステムでのみ,このモデルの动作がはまります。重置デフォルトはサブシステムが再びにに実たさます完全迁移実実て,时尚理留てますリセットされて。

遷移でのイベントベースの時相論理表記法

金宝app仿真软件モデルのStateflowチャートでは,演算子之前は遷移でイベントベースの時相論理を表現するための2種類の異なる表記をサポートしています。

  • “トリガー表記法”は,时代理事子のイベントイベントに依存迁移し定义ますます迁移定义ししはトリガー定义ししは従い従い定义しし。

    TemporalLogicoperator(n,e)[c]
    ここで,

    • temporallogicoperatorは布尔時相論理演算子です。

    • Nは演算子の出現回数です。

    • E.は演算子のベースイベントです。

    • Cはオプションの条件式です。

    トリガー表記法を使用する場合,遷移が発生する可能性があるのは,チャートがベースイベントE.のブロードキャストを処理する時点のみです。

  • “条件表记法”は,ベースイベントと非ベースイベントに依存する遷移条件を定義します。条件表記法は,以下の構文に従います。

    f [TemporalLogoperator(n,e)&& c]
    ここで,

    • temporallogicoperatorは布尔時相論理演算子です。

    • Nは演算子の出現回数です。

    • E.は演算子のベースイベントです。

    • Fはオプションの非ベースですです。

    • Cはオプションの条件式です。

    非ベースイベントFによる条件表記法を使用する場合,遷移が発生する可能性があるのは,チャートがFのブロードキャストを処理する時点のみです。非ベースイベントを省略した場合、遷移が発生する可能性があるのは、チャートが明示的または暗黙的イベントを処理している時点のみです。

    時相論理演算子の条件表記法は,MATLABのスタンドアロンのチャートではサポートされていません。

たとえば,次の遷移ラベルはトリガー表記法を使用して,チャートがベースイベントE.�E.ののブロードキャストがが対象となりなり

后(5 E)

一方で,次の遷移ラベルは条件表記法を使用して,5回以上のベースイベントE.のブロードキャストでステートがアクティブだった場合に関連付けられたステートから遷移することを示します。この遷移はチャートがE.ののブロードキャストをををををでないでで実実れれ

[(5,e)后]

メモ

演算子每一个はトリガー表記法と条件表記法をサポートしています。ただし,この演算子については,この両方の表記法は等価です。遷移ラベル每(5,e)および(每一个(5 E))は,ステートステートがアクティブににてからベースE.のブロードキャストをk回処理すると(kは5の倍数),関連付けられたステートから遷移することを示します。

时尚理想のプラクティス

遷移元ステートがない遷移パスで時相論理を使用しない

時相論理演算子の値は,関連付けられたステートがアクティブになった時点により異なります。すべての時相論理演算子に一意のステートが関連付けられるようにするには、これらの演算子を次の場所でのみ使用してください。

  • ステートアクション

  • ステートを起点とする遷移パス上のアクション

時相論理演算子は,デフォルト遷移や,グラフィカル関数での遷移で使用しないでください。これらの遷移はステートから発生していません。

金宝appモデルのチャートでは蜱虫の代わりに絶対時間の時相論理を使用する

金宝appsimulinkモデルのチャートで,绝対时间の时尚原因する用する延迟式は,モデルのサンプル时空に的にしません。一方,明显的イベント蜱虫に基因て时代配偶する延迟式式,SIMULINKソ金宝appルバーソルバー使使依存しししれるれるステップサイズにししし

さらに,絶対時間の時相論理は,入力イベントがあるチャートでサポートされています。金宝app仿真软件モデル内のStateflowチャートに入力イベントがある場合,暗黙的イベント蜱虫はサポートされません。

金宝appモデルのチャートで絶対時間の時相論理にを使用しない

金宝app仿真软件モデルのチャートでは,を絶対時間の時相論理演算子として使用することはサポートされていません。代わりに演算,式,式在(5.33,秒)を使用して時間遅延を定義する必要があるとします。

実行時エラーを回避するには,遷移ラベルを之后(5.33,秒)に変更します。

金宝appモデルのチャートで絶対時間の時相論理に每一个を使用しない

金宝app仿真软件モデルのチャートでは,每一个を絶対時間の時相論理演算子として使用することはサポートされていません。代わりに,演算子を含む外部自己ループ迁移を使くださいくださいください。たとえば,チャート実行时に2.5空间隔隔でアクティブステートステータスを印刷する必要ががしし必要しししますしししししし

実行時エラーを回避するには,ステートアクションを外部の自己ループ遷移に置き換えます。

ステートにヒストリジャンクションを追加して,各自己ループ遷移の前にステート設定がチャートで記憶されるようにします。ヒストリジャンクションを使使用したステートアクティビティの记录を参照してください。

MATLABのスタンドアロンチャート内において複数の遷移元がある遷移パスで時相論理を使用しない

MATLABのスタンドアロンチャートでは,遷移元ステートが複数ある遷移パスでの時相論理の使用はサポートされません。たとえば,次のスタンドアロンチャートでは,時相論理式之后(10,秒)が複数の遷移元ステートをもつ遷移パスをトリガーするため,実行時エラーが発生します。

包含从状态正和负到状态结束的转换路径上的时序逻辑表达式的独立图表。

この問題を解決するには,それぞれ1つの遷移元ステートをもつ複数の遷移パスに,個別に時相論理式を使用します。

使用时间逻辑表达式在单独的转换路径上独立图表。

MATLABのスタンドアロンチャートの遷移パスで絶対時間の時相論理と条件を併用しない

MATLABのスタンドアロンチャートでは,演算子,および每一个は,チャートを起動するための暗黙的イベントを生成するMATLAB计时器オブジェクトを作成します。同じ遷移パスでこれらの演算子を条件と組み合わせて使用すると,予期しない動作が発生する場合があります。

  • 计时器がチャートを起動した時点で遷移パスの条件が偽である場合,チャートはアクティブステートのおよびアクションを実行します。

  • チャートは演算子およびに関連付けられている计时器オブジェクトをリセットしません。この遷移パスの条件が後で真になった場合,別の明示的または暗黙的イベントがチャートを起動するまで,遷移は発生しません。

たとえば,次次のチャートで,ステート一种からステートB.への迁移パスパス,绝対时间の时钟理工之后(1,秒)と条件(保安)が組み合わされます。ステート一种からステートCへの迁移には,绝対时间时间相论理解之后(5,秒)があります。各迁移は,暗黙的イベントを生成する计时器オブジェクトに关键词られます。初期状态では,ローカル函数警卫错误的です。

结合绝对时间时序逻辑触发器和同一过渡路径上的条件的图表。

チャートを実行すると,ステート一种がアクティブになります。チャートチャート条目アクションを実行し,メッセージ'你好!'が表示されます。1 秒後、一种からB.への遷移に関連付けられた计时器がチャートを起します。迁移迁移が无效な,チャートはステート一种アクションを実行し,メッセージ'你好!'がもう一度表示さます。

2秒後にチャートが入力イベントE.をを受け取るものと仮定仮定しチャートはは一种を実行し,警卫の値を真正的に変更します。チャートチャートは子に関連付けられている计时器をリセットしないため,一种からB.への遷移は,別のイベントがチャートを起動するまで発生しません。

5秒后,一种からCへの遷移に関連付けられた计时器がチャートを起動します。一种からB.への迁移が有机,実行顺序高度ため,チャートはステートCへへの迁移を実実せ,メッセージ'告别!'も表示されません。代わり代わり,ステートB.がアクティブになり,チャートはメッセージ'再见!'を表示します。

より効率的なコード生成のための離散サンプル時間によるチャートの使用

触发子系统または启用子系统内にない离散チャートチャート用で,simulinkが提供するたコード,整整カウンター使使してをします。当金宝app动作によりますて追迹追迹ます。的なコード生成が可能なり,またsil(ソフトウェアインザループ)およびpil(プロセッサインプロセッサイン)ののモードでこのコードについてにます。SILシミュレーションおよびpilシミュレーション(嵌入式编码)を参照してください。

参考

|||||||||(金宝appSimulink)|(金宝appSimulink)

关键词トピック