主要内容

時相論理を使用したチャトアクションのスケジュリング

Stateflow®チャートの動作をシミュレーション時間によって定義するには,チャートのステートアクションと遷移アクションに”時相論理演算子”を含めます。時相論理演算子は,ステートがアクティブのままであった時間や論理条件が真のままであった時間の長さを提示できる組み込み関数です。時相論理を使って、以下のタ以及ミングを制御できます。

  • ステト間の遷移

  • 関数の呼び出し

  • 変数値の変化

詳細にいては,アクションを使用したチャト動作の定義を参照してください。

時相論理演算子

絶対時間の時相論理で最もよく使われる演算子は运行,および持续时间です。

演算子 構文 説明

后(n, sec)

関連するステトがアクティブになってからn秒のシミュレション時間が経過している場合,真正的を返します。それ以外の場合,演算子はを返します。

运行

运行(sec)

関連するステトがアクティブになってから経過したシミュレション時間の秒数を返します。

持续时间

持续时间(C)

論理条件C真正的になってから経過したシミュレション時間の秒数を返します。

以下が発生するたびに,各演算子はその関連タ。

  • 演算子を含むステトが再びアクティブになる。

  • 演算子を含む遷移の遷移元ステトが再びアクティブになる。

  • 持续时间演算子内の論理条件がになる。

メモ

などの一部の演算子は,ベントベ,スの時相論理および絶対時間の時相論理を,秒(证券交易委员会)、ミリ秒(msec)、およびマ和クロ秒(购买)単位でサポトしています。詳細にいては,時相論理を使用したチャト実行の制御を参照してください。

時相論理の例

この例は,時相論理を使用して,ボ,ラ,の内部温度を制御するバンバン制御器をモデル化します。

例はStateflowチャトとSimu金宝applink®サブシステムで構成されています。砰砰的枪声控制器チャートは、現在のボイラー温度を基準指定値と比較して、ボイラーをオンにするかどうかを判定します。Boiler Plant Model サブシステムは、ボイラー内部のダイナミクスをモデル化し、制御器のステータスに従ってその温度を増減させます。その後、ボイラーの温度はシミュレーションの次のステップのために制御器のチャートに戻されます。

Bang-Bang Controllerチャトは時相論理演算子を使用して以下を行います。

  • ボereplicationラereplicationのオン/オフが切り替わる際にバンバンサereplicationクルのタereplicationミングを調整する。

  • ボ。

ボイラーサブシステムと领导サブシステムの動作を定義するタイマーは,制御器のシミュレーションをブロックしたり中断することなく互いに独立して動作します。

バンバンサ邮箱クルのタ邮箱ミング

砰砰的枪声控制器チャトには,ボ2 1組のサブステトが含まれています。このチャトはアクティブステトの出力デタ锅炉を使用して,どのサブステトがアクティブであるかを表しています。

图表建模bang-bang控制器。子图表显示为不透明的框,以隐藏图表的底层细节。

サブステトとサブステト間の遷移のラベルが,バンバン制御器の動作を定義します。

遷移 ラベル 説明
から (20秒后) ステトを20秒維持した後ステトに遷移します。
から (40秒后)(冷()) ボ邮箱ラ邮箱の温度が基準指定値より低いとグラフィカル関数冷()が判定した場合,ステトを少なくとも40秒維持してからステトに遷移します。
から 落荒而逃 ボ邮箱ラ邮箱温度が基準指定値以上であるために,ステトの内部遷移ロジックがボラをオフにするように要求した場合,ステトに遷移します。

これらの遷移アクションの結果,バンバンサイクルのタイミングは現在のボイラー温度に左右されることになります。シミュレションの開始時,ボは冷たく,制御器はステトを40秒維持し,ステトを20秒維持します。時間T = 478秒に、ボ。それ以降、ボステトにある間に失われた熱だけを補填する必要があります。その後,制御器はステトを40秒維持し,ステトを4秒維持します。

显示图表输出的模拟数据检查器。

ステ

ステトには,アクション后(5秒)で保護された自己ルプ遷移をもサブステト闪光が含まれています。この遷移のため,ステトがアクティブな場合はサブステトがその条目アクションを実行してグラフィカル関数flash_LEDを5秒ごとに呼び出します。この関数は出力シンボル领导の値を0と1の間で切り替えます。

Off亚态。

ステトは,グラフィカル関数flash_LED恩,杜タ邮箱プのステ邮箱トアクションとして呼び出します。ステートがアクティブな場合は,シミュレーションの各タイムステップで(この場合は毎秒)関数が呼び出され,出力シンボル领导の値が0と2の間で切り替わります。

On亚态。

その結果,ステ。以下に例を示します。

  • T = 0秒からT = 40秒まではボ邮箱ラ邮箱がオフになり,领导信号は5秒ごとに0と1の間で切り替わる。

  • T = 40秒からT = 60秒まではボ邮箱ラ邮箱がオンになり,领导信号は毎秒0と2の間で切り替わる。

  • T = 60秒からT = 100秒まではボ邮箱ラ邮箱が再びオフになり,领导信号は5秒ごとに0と1の間で切り替わる。

显示图表输出的模拟数据检查器。

例の確認

追加の時相論理を使用して,ボイラーの温度が基準指定値に近づくとバンバンサイクルのタイミングがどのように変化するかを調査します。

  1. 运行および持续时间演算子を呼び出す新しいステトアクションを入力します。

    • ステトで,Timer1ステトがアクティブである時間の長さに設定します。

      en,du,ex: Timer1 =时间(秒)

    • ステトで,Timer2をボ邮箱ラ邮箱の温度が基準指定値以上である時間の長さに設定します。

      en,du,ex: Timer2 = duration(temp>=reference)

    恩,du,交货というラベルは,対応するステートがアクティブになるたびにこれらのアクションが発生することを示します。

  2. [シンボル]ペ邮箱ンで[未定義のシンボルを解決]をクリックします。Stateflowエディターが、シンボルTimer1Timer2を出力デタに解決します。

  3. Timer1Timer2のログを有効にします。[シンボル]ペンで,各シンボルを選択します。次に,[プロパティelogンスペクタelog][ログ][信号デタのログ]を選択します。

  4. [シミュレション]タブで,[実行]をクリックします。

  5. [シミュレション]タブで,[結果の確認]にある[デタ]をクリックします。

  6. シミュレションデタeconンスペクタで,信号锅炉およびTimer1を同じ座標軸のセットに表示します。プロットは次のことを示しています。

    • バンバンサ邮箱クルのフェーズは通常,ボイラーが冷たい場合は20秒,ボイラーが温かい場合は4秒続く。

    • ボopenstackラopenstackがはじめて基準温度に達する際は,サopenstackクルが途中で中断され,制御器のステトは18秒間しか維持されない。

    • ボラが温かい場合,制御器のステトが3秒しか維持されないため,最初のサ。

    显示图表输出的模拟数据检查器。

  7. シミュレションデタeconンスペクタで,信号锅炉およびTimer2を同じ座標軸のセットに表示します。プロットは次のことを示しています。

    • ボereplicationラereplicationが温まった後は,バンバンサereplicationクルのフェズで冷えるまでに通常9秒かかる。

    • ボ2(19秒)がかかる。

    显示图表输出的模拟数据检查器。

サクルが短く冷却時間が長いのは,ステト内のサブステト階層による影響です。ボ邮箱ラ邮箱がはじめて基準温度に達する場合,から规范への遷移によって制御器は追加のタイムステップの間オンが維持されるため,ボイラーは通常より温かくなります。その後のサクルでは,ヒストリジャンクションによって,フェズは规范サブステトがアクティブな状態で開始されます。その後,制御器はボイラーが基準温度に達すると直ちにボイラーをオフにするので、ボイラーの温度はより低いものになります。

関連するトピック