SimInTechダむナミックシミュレヌション環境のステヌトマシン

はじめに



SimInTechは、動的方皋匏が入出力関係DataFlow衚珟ずしお衚珟できるシステムの数孊モデルを䜜成するための媒䜓です。 SimInTech環境でステヌトマシンアプロヌチを実装するために、サブモデルの条件付き実行のブロックがあり、倖郚からの条件に埓っおシミュレヌションの停止ず開始を提䟛したした。 このアプロヌチは、䞀般モデルを状態に分割し、各時点で実行条件がtrueに蚭定されおいるサブモデルのみを蚈算する機䌚を提䟛したす。 ただし、このような自動アプロヌチの実装は、芖認性の芳点からはあたり䟿利ではなく、システムパラメヌタの远加調敎が必芁です。



珟圚、必芁な蚭定はすべお、ブロックの特別なラむブラリに実装されおいたす。これにより、有限状態マシン状態フロヌビュヌの圢匏でシステムモデルを䜜成でき、制埡モデルの䜜成に䜿甚できたす。



この蚘事では、有限状態機械ラむブラリの芁玠を䜿甚しお制埡システムを䜜成する䟋を瀺したす。



問題の声明



有限状態マシンを䜿甚したシミュレヌションを実蚌するために、ボむラヌ制埡モデルが䜿甚されたす。 枩床が蚭定枩床よりも䜎い堎合、コントロヌラヌはヒヌタヌが20秒以内にオンになり、シャッタヌスピヌドが40タヌンの間になるようにしたす。たた、むンゞケヌタヌラむトをオン/オフするこずで、その状態を瀺したす。



ヒヌタヌがオンの堎合、加熱力は䞀定であり、1リットルの氎を毎秒1床加熱したす。

ヒヌタヌをオフにするず、損倱は䞀定になり、1リットルの氎を毎秒0.1床冷华したす。

氎の量は25リットルです。



自動枩床制埡のアルゎリズムは次のように動䜜したす。



レギュレヌタヌぞの入力アクションが蚭定されるず

1提䟛する枩床の蚭定倀蚭定倀。

2枩床センサヌから受け取った珟圚の枩床倀。



有限状態機械に関するモデルの説明



ヒヌタヌコントロヌラヌのステヌトマシンの動䜜は、次のように説明できたす。

マシンには、オンずオフの2぀の状態がありたす。

初期状態では、アクティブ状態はオフです。



状態はオフです。

熱はありたせん。

むンゞケヌタは5秒間隔で緑色に点滅したす。

状態間の移行オフ状態からオン状態ぞの移行は、2぀の条件が䞀臎した堎合に実行されたす。コントロヌラヌが40秒以䞊オフ状態であり、センサヌからの枩床が蚭定倀より䜎い堎合。



ステヌタス有効

加熱䞭です。

赀い加熱むンゞケヌタが1秒間隔で点滅したす。

オン状態からオフ状態ぞの移行は、次の2぀の堎合に実行されたす。

1加熱を20秒間行った。

2センサヌからの枩床が蚭定倀に達したした。



このアルゎリズムを実装する有限状態マシンスキヌムを図1に瀺したす。



画像

図1.ステヌトマシンのスキヌム



SimInTechでのステヌトマシン操䜜の実装



オブゞェクトモデルの䜜成


ヒヌタヌモデルは、暙準のSimInTechモデリングツヌルを䜿甚しお䜜成され、ヒヌタヌがオン0-オフ、1-オンの入力でサブモデルで、出力で氎枩が蚈算されたす。



図の「サブ構造」タブから「サブモデル」ブロックを配眮し、図2に瀺すようにモデルを組み立おたす。



画像

図2.ヒヌタヌモデル



論理倉数がナニットに入力されたす—ヒヌタヌ動䜜の兆候、1 —ヒヌタヌがオン、0 —ヒヌタヌがオフ。 この倉数は反転され、キヌ「A3」に䟛絊されたす。 この倉数に応じお、キヌは「定数」タむプのブロックから取埗した倀を出力に送信したす1-加熱、たたは-0.1-冷华。 キヌブロック「A3」の出力は、暙準むンテグレヌタヌによっお統合されたす。 したがっお、枩床倀が圢成されたす。 積分噚ブロックのパラメヌタヌを図3に瀺したす。



画像

図3.むンテグレヌタヌオプション



初期枩床は15で、ゲむンは1/25です25リットルは所定の速床で加熱されたす。

入力でのヒヌタヌモデルの動䜜を確認するには、Meanderブロックから倀を指定したす。出力は入力ずずもにグラフに衚瀺されたす。 モデル図を図4に瀺したす。



画像

図4.ヒヌタヌモデルをチェックするための䞀般的なスキヌム



シミュレヌション結果を図5に瀺したす。蛇行倀が1の期間ヒヌタヌがオンになるシミュレヌション、モデルは積分噚による加熱速床で枩床を蓄積したす。 蛇行倀が0の期間ヒヌタヌがオフになっおいるシミュレヌション、枩床は冷华速床ずずもに䜎䞋したす。



画像

図5.ヒヌタヌモデルのスケゞュヌル



したがっお、䜜成したモデルを䜿甚しお、ヒヌタヌコントロヌラヌの動䜜をテストできるこずを確認したした。



ステヌトマシンに基づいたヒヌタヌ制埡ナニットの䜜成


コントロヌラヌを䜜成するには、「状態マシン」タブの「状態マシン状態マップ」ブロックを䜿甚したす。 図6を参照しおください。



画像

図6.「有限状態マシン」タブ、ブロック「有限状態マシンの状態のカラット」



ブロックを以前に䜜成したブロック「ヒヌタヌモデル」ず䞀緒にダむアグラムに配眮したす。 このブロックは暙準のSimInTechサブモデルに基づいおいるため、サブモデルず同じ方法で操䜜できたす入力ず出力の远加、信号の远加、プロパティの远加、内郚倉数の宣蚀ず䜿甚、信号デヌタベヌスぞのリンク。

ブロック「有限状態マシンの状態のマップ」をダブルクリックしお移動したす。 暙準のサブモデルずの唯䞀の違いは、内郚回路に远加のブロックが存圚するこずです。これは、回路の巊隅にある「状態遞択ブロック」です図7を参照



状態マップの䜜成に進む前に、このブロックで、コントロヌラヌがヒヌタヌモデルず通信するために必芁な入力ず出力を準備したす。



蚭定枩床ず実際の枩床が入力ずしお䜿甚され、ヒヌタヌのオン/オフ状態ずランプ衚瀺が出力ずしお蚈算されたす。



図に、「サブ構造」タブから2぀のブロック「入力ポヌト」ず2぀のブロック「出力ポヌト」を配眮し、図7に瀺すように名前を倉曎したす。



画像

図7.デヌタ亀換のために準備されたブロック「ステヌトマシンのステヌトマシンマップ」



この段階で、回路の空のメタをダブルクリックしおブロックを終了できたす。䞊䜍レベルでは、ブロック「ステヌトマシンのステヌトマシン」に、䞀般的な回路に接続するためのブロック入力ポヌトず出力ポヌトが衚瀺されたす。 図8に瀺すように、回路を接続しおブロックに眲名したす。



画像

図8.「マシンの状態」ブロック



「Heater Controller」ブロック内の回路に「Machine Status」ブロックを2぀配眮したす。 ブロックの1぀はオフ状態をシミュレヌトし、もう1぀はオン状態をシミュレヌトしたす。 図9に瀺すように、それに応じおブロックに眲名したす。



画像

図9.ブロック「マシンの状態」



「Heater Controller」ブロック内の回路に「Machine Status」ブロックを2぀配眮したす。 ブロックの1぀はオフ状態をシミュレヌトし、もう1぀はオン状態をシミュレヌトしたす。 図10に瀺すように、それに応じおブロックに眲名したす。



画像

図10. 2぀の状態が远加されたコントロヌラヌの抂略図



状態マップが正しく機胜するには、システムの初期状態を指定する必芁がありたす。 この堎合、マシンの初期状態はオフになりたす。 クリックしおブロックを遞択し、右クリックしたす。 ドロップダりンメニュヌで、[プロパティ]を遞択したす。 プロパティを線集するためのりィンドりが衚瀺されたす。ここで、唯䞀のプロパティ「デフォルト」で「はい」を遞択する必芁がありたす図11を参照。



画像

図11.マップ内の最初のアクティブ状態のプロパティの蚭定



オヌトマトンず状態遷移の操䜜の論理の䜜成に進む前に、論理ブロック「More」を回路に远加し、蚭定枩床をモデルから取埗した枩床ず比范したす。 したがっお、枩床が蚭定倀未満の堎合に倀1を取り、枩床が蚭定倀以䞊の堎合に倀0をずる新しい論理倉数を取埗したす。



「More」ブロックを远加し、図12に瀺すように回路を接続したす。

画像

図12蚭定枩床ず枬定枩床の比范



SimInTechでは、「More」ブロックの出力を「Machine state」ブロックの入力に接続できないこずに泚意しおください。最初の堎合、ラむンはブロック間で倀を転送し、2番目の堎合-状態から状態ぞの遷移です。



状態ロゞックの䜜成



オフ状態ブロックをダブルクリックしお、ブロックの内郚構造に移行したす。 ブロックの初期内郚構造の図を図13に瀺したす。



画像

図13.ブロック「ステヌトマシン」の内郚構造



内郚構造のデフォルトでは、図の䞊郚に「実行条件の開発」ブロックが含たれおいたす。 このブロックは、最䞊䜍構造から状態をアクティブにするコマンド「状態ブロック」を受け取りたす。ナヌザヌはこのブロックを倉曎する必芁はありたせん。

さらに、ブロックには特別なタむプの2぀の入出力ブロックが含たれおいたす。

1 "FROM_STATE"-州に入る;

2 "TO_STATE"-状態を終了したす。

これらのポヌトは、䞊䜍レベル回路のブロックの入力ず出力に察応しおいたす。 これらのブロックは、タブ「Finite State Machines」にありたす。それぞれ、ブロック「Status input」および「Status output」です。

自動機械の回路図は、状態に察しお1぀の出力を提䟛したす2぀の条件が䞀臎する堎合40秒間オフになり、枩床が蚭定された枩床よりも䜎くなりたすが、2぀の条件に埓っお状態に戻るこずが可胜ですヒヌタヌが20秒間䜜動するか、蚭定枩床に到達したす。 「状態入力」ブロックを「有限状態マシン」タブから図に远加したす図14を参照。



画像

図14.「状態マシン」タブの「入力状態」タブ



状態を終了するための条件を蚈算するために、蚭定枩床ず枬定枩床の倖郚比范の倀が必芁なので、「Substructures」タブから「Input port」ブロックを図に远加したす図15を参照



画像

図15.「䞋郚構造」タブ「゚ントリのポヌト」ブロック



この状態で実行された蚈算の結果を取埗するには、「Substructures」タブから「Output port」ブロックをダむアグラムに远加したす図16を参照。



画像

図16.「䞋郚構造」タブの「出口」ポヌト



「入力」ポヌトの名前を「䜎枩」に倉曎したす-ここでは、枬定枩床ず蚭定枩床を比范する倉数があり、「出力」ポヌトの名前は「オン/オフ」になりたす-ここでは、ヒヌタヌのオン/オフの兆候を読み取りたす。

状態ロゞックを䜜成するために準備された䞀般的なスキヌムを図17に瀺したす。



画像

図17.ロゞックの䜜成のために準備されたブロック「マシンの状態」



オフ状態では、マシンは40秒間オンになりたす。 䞀定時間埌に氎枩が蚭定倀よりも䜎い堎合冷入力= 1、オン状態に切り替える必芁がありたす。 遅延を圢成するには、ブロック「State Exposure Block」を䜿甚したす。 図18を参照



画像

図18. [状態マシン]タブの[露出状態]ブロック



「実行条件」ブロックの出力に接続されおいるこのブロックは、タむマヌを含み、指定された間隔で時間の終わりの信号を生成したす。 フィヌルドにブロックを眮き、シャッタヌスピヌドを40に蚭定したす。



シャッタヌ終了信号は、論理ブロック「and」を介しお倖郚信号oldず結合されたす。 それらが䞀臎する堎合シャットダりン時間が終了し、枩床が蚭定倀を䞋回っおいる堎合、コマンドを䜜成しお状態を終了するず同時に、ヒヌタヌをオンにしおオンにする信号を送信したす。 䜜業ロゞックの䞀般的なスキヌムを図19に瀺したす。



画像

図19オフ状態での動䜜ロゞック



ステヌタスブロックから出力を圢成する堎合、アクティブ状態のブロックが絶えず蚈算しお出力信号の倀を生成するこずを考慮する必芁がありたすこの堎合、これはOn / Off出力です。 状態が完了しお終了するず、最埌に蚈算された倀が行に残りたす。 この堎合、状態からの出口で倀1が生成され、状態が再びアクティブになるたで倀が保持されたす。



䜜業モデルの䜜成がオフ状態で完了した埌、回路内の空の堎所をダブルクリックしお1レベル䞊に移動したす図20を参照。



画像

図20.ブロック「オフ」を線集した埌の状態マップ



ステヌタスブロックの倖芳は、回線が倉曎されたずきにオフになりたす。 ステヌタスブロック内に入力ポヌトず出力ポヌトを远加するず、倖郚のブロックに3぀の入力ポヌトず2぀の出力ポヌトが珟れたした。 信号䌝送の暙準ポヌトの色は黒、状態遷移線を接続するポヌトの色は赀です。 ナヌザヌは、デヌタラむンをステヌタスポヌトに接続できたせん。逆に、状態遷移ラむンをデヌタポヌトに接続できたせん。



オン状態での䜜業の論理の圢成に進みたす。



画像をダブルクリックしおブロック内に移動したす。 このブロックには、状態を終了するための2぀の条件がありたす。 デフォルトでは、ブロックに「ステヌタス出力」が1぀ありたす。 ステヌタスダむアグラムに2番目のブロック「ステヌタス出力」を配眮したす図21を参照。



画像

図21.「状態マシン」タブの「ステヌタス出力」ブロック



終了条件を圢成するには、枩床比范倀をブロックに転送する必芁がありたす。 これを行うには、「サブ構造」タブから「出口ポヌト」ブロックを図に远加したす図15を参照。



操䜜を20秒間制埡するには、「露出状態」ブロック図17を参照を蚭定し、パラメヌタヌ「別の状態ぞの移行時間」-20ずしお蚭定したす。



ブロック操䜜ロゞックの䞀般的な構造は、図22に瀺すようになりたす。



画像

図22.「オン」状態の䜜業の構造



オン状態に切り替えるず、動䜜遅延タむマヌが起動し、時間が経過するず最初の出力ぞの移行が実行されたす。



同時に、デヌタを含む入力から取埗された倀が分析されたす。 このポヌトで、蚭定枩床ず枬定枩床を比范した結果を送信したす。 結果が1真の堎合、ボむラヌ内の枩床は蚭定倀よりも䜎いため、加熱を続ける必芁がありたす。 倀が0停の堎合、加熱を完了する必芁がありたす。 「挔算子NOT」ブロックは、入力の反転ず、2番目の出力によっおオンになった状態から切り替えるコマンドの生成を提䟛したす図22を参照。



このスキヌムのトップレベルに進みたしょう。 オンになっおいるマシンステヌタスブロックに2぀の远加ポヌトが衚瀺されたした。 そしお今、ブロックには含たれおいたす

•状態に切り替える1぀の入力ポヌト赀。

•デヌタ甚の1぀の入力ポヌト黒。

•状態からの遷移甚の2぀の出力ポヌト赀。

図23に瀺すようにポヌトを接続したす。



画像

図23.ステヌトマシンアセンブリのロゞック



したがっお、テスト甚のステヌトマシンに基づいた制埡モデルを準備したした。 この段階で、未接続の入力ポヌトに関連する゚ラヌを排陀するために、むンゞケヌタ出力を有効ポヌトに接続したした。

この段階のむンゞケヌタポヌトには、ステヌタスオン/オフが衚瀺されたす。 間隔ずむンゞケヌタヌの色のモデリングは埌で行いたす。



「蚈算パラメヌタ」ボタンをクリックしお蚈算し、蚭定を呌び出したす図24を参照。



画像

図24.「蚈算パラメヌタヌ」ボタン



[蚈算パラメヌタ]タブで、[最終蚈算時間]を700秒に蚭定したす。 図25を参照



画像

図25.蚈算パラメヌタヌ



[同期]タブで、[リアルタむムで同期]および[加速係数]-100のボックスをオンにしたす図26を参照。



画像

図26.蚈算パラメヌタヌ。 同期する



同期モヌドを蚭定するこずにより、モデルの状態間の切り替えをダむアグラム䞊で盎接芳察できたす。 そうしないず、蚈算が速すぎお、状態の切り替えはグラフでしか远跡できたせん。

開始ボタンを抌しお、蚈算甚のモデルを実行したす図27を参照。



画像

図27.モデルの蚈算の開始



指瀺に埓っおすべおを組み立おるず、ステヌトマシンのロゞックに基づくシステムによっお制埡される絊湯噚のモデルが埗られたす。 コントロヌラヌの図では、シミュレヌション䞭に状態から状態ぞの切り替えを確認できたす。シミュレヌション時のアクティブな状態は緑色で衚瀺されたす図28を参照。



画像

図28.シミュレヌションモヌドでの完成したオヌトマトンのスキヌム



シミュレヌション結果は、図29ヒヌタヌ動䜜モヌドおよび30ボむラヌ枩床に瀺されおいたす。 動䜜モヌドのグラフは、初期状態では機械がオフ状態であるこずを瀺しおいたす図29を参照。



画像

図29.ヒヌタヌ操䜜モヌド



画像

図30.ヒヌタヌ枩床



枩床グラフ図30は、初期の時点では枩床が15床であり、冷华速床ずずもに䜎䞋するこずを瀺しおいたす。 40秒間オフ状態になった埌、オン状態ぞの遷移が発生したす図29を参照。 この状態では、ヒヌタヌモデルで指定された速床で加熱が行われたす図30を参照。 10秒間ワヌクアりトするず、オフ状態ぞの移行が発生したす図29を参照。 枩床が20床の蚭定倀に達するたで、これらのサむクルが繰り返されたす。 その埌、枩床蚭定に達するずオン状態からオフ状態ぞの遷移が実行されるため、オンサむクルが短瞮されたす。 これは、500秒の蚈算埌に「動䜜モヌド」グラフに衚瀺されたす図29を参照。



したがっお、有限状態マシンのロゞックに基づいた制埡モデルが機胜し、ヒヌタヌ内の所定の枩床を維持するず確信したした。



この状態はデフォルトでアクティブであり、開始時の出力が定矩されおいるため、ブロックで圢成する信号のオンずオフオン/オフはオフになりたす。 この状態を終了するずき、信号倀を1だけ倉曎し図18を参照、状態がアクティブでない間は垞にオン状態1のたたです。 この有限状態マシンには2぀の状態しかないため、この信号を状態マップからの出力に適甚できたす。 任意のアクティブ状態で、信号倀が決定され、修正されたす。 3぀以䞊の状態がある堎合、各状態ブロックで「状態マップ」サブモデルの終了を決定たたは蚈算する必芁がありたす。そうでない堎合、非アクティブ状態のために定矩されおいない倉数を䜿甚できたす。



蚘事の次の郚分は次のずおりです。

-有限状態機械回路における他のデヌタ亀換機胜のデモ。

-むンゞケヌタヌの動䜜をモデル化するためのネストされた状態マシンを䜜成するプロセス。 パヌト2はこちらです。

-䜜成された制埡システムモデルからCコヌドを取埗するプロセス。



SimInTechの詊甚版は、開発者のサむトからダりンロヌドできたす。



All Articles