時相論理を使用したチャトアクションのスケジュリング
Stateflow®チャートの動作をシミュレーション時間によって定義するには,チャートのステートアクションと遷移アクションに”時相論理演算子”を含めます。時相論理演算子は,ステートがアクティブのままであった時間や論理条件が真のままであった時間の長さを提示できる組み込み関数です。時相論理を使って、以下のタ以及ミングを制御できます。
ステト間の遷移
関数の呼び出し
変数値の変化
詳細にいては,アクションを使用したチャト動作の定義を参照してください。
時相論理演算子
絶対時間の時相論理で最もよく使われる演算子は后
、运行
,および持续时间
です。
演算子 | 構文 | 説明 |
---|---|---|
|
関連するステトがアクティブになってから |
|
|
関連するステトがアクティブになってから経過したシミュレション時間の秒数を返します。 |
|
|
論理条件 |
以下が発生するたびに,各演算子はその関連タ。
演算子を含むステトが再びアクティブになる。
演算子を含む遷移の遷移元ステトが再びアクティブになる。
持续时间
演算子内の論理条件が假
になる。
メモ
后
などの一部の演算子は,ベントベ,スの時相論理および絶対時間の時相論理を,秒(证券交易委员会
)、ミリ秒(msec
)、およびマ和クロ秒(购买
)単位でサポトしています。詳細にいては,時相論理を使用したチャト実行の制御を参照してください。
時相論理の例
この例は,時相論理を使用して,ボ,ラ,の内部温度を制御するバンバン制御器をモデル化します。
例はStateflowチャトとSimu金宝applink®サブシステムで構成されています。砰砰的枪声控制器チャートは、現在のボイラー温度を基準指定値と比較して、ボイラーをオンにするかどうかを判定します。Boiler Plant Model サブシステムは、ボイラー内部のダイナミクスをモデル化し、制御器のステータスに従ってその温度を増減させます。その後、ボイラーの温度はシミュレーションの次のステップのために制御器のチャートに戻されます。
Bang-Bang Controllerチャトは時相論理演算子后
を使用して以下を行います。
ボereplicationラereplicationのオン/オフが切り替わる際にバンバンサereplicationクルのタereplicationミングを調整する。
ボ。
ボイラーサブシステムと领导サブシステムの動作を定義するタイマーは,制御器のシミュレーションをブロックしたり中断することなく互いに独立して動作します。
バンバンサ邮箱クルのタ邮箱ミング
砰砰的枪声控制器チャトには,ボ2 1組のサブステト在
と从
が含まれています。このチャトはアクティブステトの出力デタ锅炉
を使用して,どのサブステトがアクティブであるかを表しています。
在
サブステトと从
サブステト間の遷移のラベルが,バンバン制御器の動作を定義します。
遷移 | ラベル | 説明 |
---|---|---|
在 から从 へ |
(20秒后) |
在 ステトを20秒維持した後从 ステトに遷移します。 |
从 から在 へ |
(40秒后)(冷()) |
ボ邮箱ラ邮箱の温度が基準指定値より低いとグラフィカル関数冷() が判定した場合,从 ステトを少なくとも40秒維持してから在 ステトに遷移します。 |
在 から从 へ |
落荒而逃 |
ボ邮箱ラ邮箱温度が基準指定値以上であるために,在 ステトの内部遷移ロジックがボラをオフにするように要求した場合,从 ステトに遷移します。 |
これらの遷移アクションの結果,バンバンサイクルのタイミングは現在のボイラー温度に左右されることになります。シミュレションの開始時,ボは冷たく,制御器は从
ステトを40秒維持し,在
ステトを20秒維持します。時間T = 478秒に、ボ。それ以降、ボ从
ステトにある間に失われた熱だけを補填する必要があります。その後,制御器は从
ステトを40秒維持し,在
ステトを4秒維持します。
ステ
从
ステトには,アクション后(5秒)
で保護された自己ルプ遷移をもサブステト闪光
が含まれています。この遷移のため,从
ステトがアクティブな場合はサブステトがその条目アクションを実行してグラフィカル関数flash_LED
を5秒ごとに呼び出します。この関数は出力シンボル领导
の値を0と1の間で切り替えます。
在
ステトは,グラフィカル関数flash_LED
を恩,杜
タ邮箱プのステ邮箱トアクションとして呼び出します。在
ステートがアクティブな場合は,シミュレーションの各タイムステップで(この場合は毎秒)関数が呼び出され,出力シンボル领导
の値が0と2の間で切り替わります。
その結果,ステ。以下に例を示します。
T = 0秒からT = 40秒まではボ邮箱ラ邮箱がオフになり,
领导
信号は5秒ごとに0と1の間で切り替わる。T = 40秒からT = 60秒まではボ邮箱ラ邮箱がオンになり,
领导
信号は毎秒0と2の間で切り替わる。T = 60秒からT = 100秒まではボ邮箱ラ邮箱が再びオフになり,
领导
信号は5秒ごとに0と1の間で切り替わる。
例の確認
追加の時相論理を使用して,ボイラーの温度が基準指定値に近づくとバンバンサイクルのタイミングがどのように変化するかを調査します。
运行
および持续时间
演算子を呼び出す新しいステトアクションを入力します。在
ステトで,Timer1
を在
ステトがアクティブである時間の長さに設定します。en,du,ex: Timer1 =时间(秒)
从
ステトで,Timer2
をボ邮箱ラ邮箱の温度が基準指定値以上である時間の長さに設定します。en,du,ex: Timer2 = duration(temp>=reference)
恩,du,交货
というラベルは,対応するステートがアクティブになるたびにこれらのアクションが発生することを示します。[シンボル]ペ邮箱ンで[未定義のシンボルを解決]
をクリックします。Stateflowエディターが、シンボル
Timer1
とTimer2
を出力デタに解決します。
Timer1
とTimer2
のログを有効にします。[シンボル]ペンで,各シンボルを選択します。次に,[プロパティelogンスペクタelog]の[ログ]で[信号デタのログ]を選択します。[シミュレション]タブで,[実行]
をクリックします。
[シミュレション]タブで,[結果の確認]にある[デタ]
をクリックします。
シミュレションデタeconンスペクタで,信号
锅炉
およびTimer1
を同じ座標軸のセットに表示します。プロットは次のことを示しています。バンバンサ邮箱クルの
在
フェーズは通常,ボイラーが冷たい場合は20秒,ボイラーが温かい場合は4秒続く。ボopenstackラopenstackがはじめて基準温度に達する際は,サopenstackクルが途中で中断され,制御器の
在
ステトは18秒間しか維持されない。ボラが温かい場合,制御器の
在
ステトが3秒しか維持されないため,最初のサ。
シミュレションデタeconンスペクタで,信号
锅炉
およびTimer2
を同じ座標軸のセットに表示します。プロットは次のことを示しています。ボereplicationラereplicationが温まった後は,バンバンサereplicationクルの
从
フェズで冷えるまでに通常9秒かかる。ボ2(19秒)がかかる。
サクルが短く冷却時間が長いのは,在
ステト内のサブステト階層による影響です。ボ邮箱ラ邮箱がはじめて基準温度に達する場合,高
から规范
への遷移によって制御器は追加のタイムステップの間オンが維持されるため,ボイラーは通常より温かくなります。その後のサクルでは,ヒストリジャンクションによって,
在
フェズは规范
サブステトがアクティブな状態で開始されます。その後,制御器はボイラーが基準温度に達すると直ちにボイラーをオフにするので、ボイラーの温度はより低いものになります。