(57)【要約】【課題】離散制御を含んだブロック線図から離散制御部分を状態遷移図として抽出する状態遷移図抽出装置を提供する。【解決手段】離散制御を含んだブロック線図を入力する入力部と、ブロック線図から、入力信号によって実行するブロックを切換える切換えブロックを選定する選定部と、選定した切換えブロックの状態を決定する端子を抽出する抽出部と、抽出した端子の状態を決定する部分回路を抽出する部分回路抽出部と、部分回路を、定性値での挙動で状態を表現する定性モデルに変換する定性モデル化部と、定性モデルに基づいて、切換えブロックの状態を抽出する状態抽出部と、状態抽出部で得られる状態変数及び遷移信号とそれらの値域に基づいて、遷移信号を変化させて、状態変数に対する状態遷移図を生成する生成部とを、備える。【選択図】図１
2014063375.tif 000002
【特許請求の範囲】
【請求項１】
離散制御を含んだブロック線図を入力する入力部と、
前記ブロック線図から、入力信号によって実行するブロックを切換える切換えブロックを選定する選定部と、
前記選定した切換えブロックの状態を決定する端子を抽出する抽出部と、
前記抽出した端子の状態を決定する部分回路を抽出する部分回路抽出部と、
前記部分回路を、定性値での挙動で状態を表現する定性モデルに変換する定性モデル化部と、
前記定性モデルに基づいて、前記切換えブロックの状態を抽出する状態抽出部と、
前記状態抽出部で得られる状態変数及び遷移信号とそれらの値域に基づいて、前記遷移信号を変化させて、前記状態変数に対する状態遷移図を生成する生成部とを、
備える状態遷移図抽出装置。
【請求項２】
前記切換えブロックの選定では、次の状態を決めるのに関わらない切換えブロックは不要な要素として含ませないようにする請求項１記載の状態遷移図抽出装置。
【請求項３】
前記状態を決定する端子には、離散値が与えられる請求項１又は請求項２記載の状態遷移図抽出装置。
【請求項４】
前記部分回路の抽出は、前記切換えブロックの状態を決める端子から回路を逆に辿り、該端子に入力する線から該端子までを取り出す請求項１又は請求項２記載の状態遷移図抽出装置。
【請求項５】
前記部分回路を構成する切換えブロックの全ての周期の最小公倍数Lと最大公約数Gを取り出して、最小公倍数Lが全体の周期、最大公約数Gがステップ時間である前記切換えブロックの周期を抽出する周期抽出部を備え、
前記周期を前記状態抽出部における状態の抽出に反映させる請求項１記載の状態遷移図抽出装置。
【請求項６】
前記Ｌ＝Ｇであるときは、前記周期を前記状態抽出部における状態の抽出に反映させない請求項５記載の状態遷移図抽出装置。
【請求項７】
前記状態遷移図は、統一モデリング言語（ＵＭＬ Unified Modeling Language）におけるステートチャートである請求項１乃至請求項６のいずれか１項に記載の状態遷移図抽出装置。
【請求項８】
前記生成部は、切換えブロックの切換え状態の状態変化をシーケンシャル・ファンクション・チャートの形で生成する請求項１乃至請求項６のいずれか１項に記載の状態遷移図抽出装置。
【請求項９】
前記生成部で生成した状態遷移図に対して、前記離散制御を含んだブロック線図の挙動と等価な挙動となるように、前記状態遷移図の各状態で動作させるブロック線図を得る請求項１記載の状態遷移図抽出装置。
【請求項１０】
前記生成部で生成した状態遷移図に対して、
記憶が必要な出力を見つけ、対応する変数を生成するとともに、メモリブロックに対応する変数を生成する対応変数生成部と、
ノードから決まる前記切換えブロックの状態、線の値、エッジから定まる定性入力ブロックの値から、回路を簡易化するノード・エッジによる回路簡易化部と、
前記ノード・エッジによる簡易化した回路をさらに時刻によって回路を簡易化する時刻による回路簡易化部と、
前記時刻による簡易化した回路に対して、前記メモリブロックの外部変数化を行う外部変数化部とを備え、
前記状態遷移図の任意のノードの、任意のエッジに対してのブロック線図を得る請求項１記載の状態遷移図抽出装置。
【請求項１１】
前記生成部で生成したシーケンシャル・ファンクション・チャートに対して、前記離散制御を含んだブロック線図の挙動と等価な挙動となるように、前記シーケンシャル・ファンクション・チャートの各状態で動作させるブロック線図を得る請求項１記載の状態遷移図抽出装置。
【請求項１２】
前記生成部で生成したシーケンシャル・ファンクション・チャートに対して、
記憶が必要な出力を見つけ、対応する変数を生成するとともに、メモリブロックに対応する変数を生成する対応変数生成部と、
ノードから決まる前記切換えブロックの状態、線の値、エッジから定まる定性入力ブロックの値から、回路を簡易化するノード・エッジによる回路簡易化部と、
前記ノード・エッジによる簡易化した回路をさらに時刻によって回路を簡易化する時刻による回路簡易化部と、
前記時刻による簡易化した回路に対して、前記メモリブロックの外部変数化を行う外部変数化部とを備え、
前記シーケンシャル・ファンクション・チャートの任意のノードの、任意のエッジに対してのブロック線図を得る請求項１記載の状態遷移図抽出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ブロック線図からの状態遷移図抽出装置に関する。
【背景技術】
【０００２】
連続系（フィードバック制御、フィードフォーワード制御等）のアルゴリズムを記述するための表現形式として、ブロック線図が多用されている。連続制御だけでなく、離散制御を含んだブロック線図は、１つのブロック線図に複数の制御状態の処理が混在することになるため結線が煩雑になりやすい。
【０００３】
また、どのような離散制御状態があるのか、その制御状態がどのような条件でどう変化するのかを把握する場合、把握するための情報がブロック線図上に分散した記述であるため、把握し難い。
【０００４】
さらに、安全系など別の観点での離散状態を追加して再構成する場合、複雑な結線を解き明かしながらの修正で、しかも修正箇所がブロック線図内に分散して存在することから、追加を伴う再構成は難しい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−１６０６７３号公報
【特許文献２】特開２００３−２７１６７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、離散制御を含んだブロック線図から離散制御部分を状態遷移図として抽出する状態遷移図抽出装置を提供することである。
【課題を解決するための手段】
【０００７】
実施形態の状態遷移図抽出装置は、離散制御を含んだブロック線図を入力する入力部と、前記ブロック線図から、入力信号によって実行するブロックを切換える切換えブロックを選定する選定部と、前記選定した切換えブロックの状態を決定する端子を抽出する抽出部と、前記抽出した端子の状態を決定する部分回路を抽出する部分回路抽出部と、前記部分回路を、定性値での挙動で状態を表現する定性モデルに変換する定性モデル化部と、前記定性モデルに基づいて、前記切換えブロックの状態を抽出する状態抽出部と、前記状態抽出部で得られる状態変数及び遷移信号とそれらの値域に基づいて、前記遷移信号を変化させて、前記状態変数に対する状態遷移図を生成する生成部とを、備える。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る状態遷移図抽出装置の概略構成を示すブロック図である。
【図２】第１の実施形態に係る状態遷移図抽出装置による抽出処理の流れを示すフローチャートである。
【図３】対象となる切換えブロックの選択を説明する図である。
【図４】スイッチ選択端子の抽出を説明する図である。
【図５】端子状態を決める部分回路の抽出を説明する図である。
【図６】信号が離散化する境界の探索を説明する図である。
【図７】ひとつ前の信号の値を覚えておくブロックである状態変数と、状態変数の値を変化させる遷移信号を説明する図である。
【図８】状態抽出の結果得られる状態変数及び遷移信号とそれらの値域を説明する図である。
【図９】メモリブロックである状態変数ｎ１の初期値が０であるとき、定性入力ブロックにおける遷移信号の変化を説明する図である。
【図１０】メモリブロックである状態変数ｎ１の初期値が０であるとき、定性入力ブロックにおける遷移信号の変化を説明する図である。
【図１１】メモリブロックである状態変数ｎ１の初期値が０であるとき、定性入力ブロックにおける遷移信号の変化を説明する図である。
【図１２】メモリブロックである状態変数ｎ１の初期値が０であるとき、定性入力ブロックにおける遷移信号の変化を説明する図である。
【図１３】メモリブロックである状態変数ｎ１の初期値が０であるとき、定性入力ブロックにおける遷移信号の変化を説明する図である。
【図１４】離散信号の条件をＯＲでまとめる処理を説明する図である。
【図１５】離散信号の条件をＯＲでまとめる処理を説明する図である。
【図１６】第２の実施形態に係る状態遷移図抽出装置の概略構成を示すブロック図である。
【図１７】第２の実施形態に係る状態遷移図抽出装置による抽出処理の流れを示すフローチャートである。
【図１８】ノード、エッジによる回路の簡易化を説明する図である。
【図１９】時刻による回路の簡易化を説明する図である。
【図２０】メモリブロックの外部変数化を説明する図である。
【発明を実施するための形態】
【０００９】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１０】
まず、本実施形態で用いる主要な用語について説明する。
【００１１】
「ブロック線図」とは、連続系（フィードバック制御、フィードフォーワード制御等）のアルゴリズムを記述するための表現形式である。加え合わせ点、引き出し点、伝達要求の三つの要素から構成されており、要素中の矢印は信号の伝わる方向を示している。
【００１２】
「切換えブロック」とは、入力信号によって実行するブロックを切換えるブロックをいう。例えば、マルチポート、スイッチ、リレー等が切換えブロックに該当する。
【００１３】
「メモリブロック」とは、信号の値を覚えておくブロックで、入力値を一定時間遅らせて出力側に送る。例えば、ディレー回路が該当する。
【００１４】
「離散制御」とは、時間や値が連続していない制御をいう。
【００１５】
「定性値」とは、具体的な数値ではなく、与えられたしきい値に対する大小関係（等しいも含む）や、増加、減少といった変化状況などを表す。
【００１６】
「定性モデル」とは、定性値によるモデルをいう。例えば、タンクに水が入っていて、そこに排水管と蛇口がついているとき、タンクには、「水が入っている」、「入っていない」という状態と、「変化なし」、「減少中」という状態がある。蛇口の状態は「開」、「閉」、排水管の状態には、「流出」、「流れなし」という状態がある。蛇口状態が「閉」、タンクが「水が入っている」でかつ「変化なし」とき、蛇口状態を「開」にすると、排水管の状態は「流出」、タンクの状態は「減少中」になる。このような形で挙動をモデル化したものである。
【００１７】
「連続値」とは、「水の量」その値が、実数（範囲はあってもよい）上を動くものをいう。
【００１８】
「離散値」とは、人数や、サイコロの目の値など、整数やその部分集合にマップされるようなものをいう。
【００１９】
「状態変数」とは、その後の挙動を計算するのに十分なシステムの履歴についての情報を含む最小の数の組のうちの１つをいう。
【００２０】
「状態遷移図」とは、有限オートマトンをグラフィカルに表現するために使われる図である。本実施形態では、オブジェクト指向によるモデリングを行う際に使われる標準的な表記法である統一モデリング言語（ＵＭＬ Unified Modeling Language）における状態遷移図（ステートチャート）をいうものとする。
【００２１】
（第１の実施形態）
第１の実施形態では、離散制御を含んだブロック線図から離散制御部分を状態遷移図として取り出すものである。図１は、本発明の第１の実施形態に係る状態遷移図抽出装置の概略構成を示すブロック図である。この装置は汎用のコンピュータ（例えばパーソナルコンピュータ（ＰＣ）等）と、同コンピュータ上で動作するソフトウェアとを用いて実現される。コンピュータとしては、ＣＡＤやＣＡＥに好適なエンジニアリングワークステーション（ＥＷＳ）等も含む。本実施形態はこのようなコンピュータに、状態遷移図抽出処理に係る一連の手続きを実行させるプログラムとして実施することもできる。
【００２２】
図１に示すように、第１の実施形態に係る状態遷移図抽出装置は、ディスプレイ１０、キーボード１１、マウス１２等からなる入出力デバイスと、ＣＰＵ（図示しない）およびメモリ１３や二次記憶装置１４等を含む処理部１５とにより構成されている。処理部１５は、切換えブロック選定部１５１、端子抽出部１５２、部分回路抽出部１５３、定性モデル化部１５４、周期抽出部１５５、状態抽出部１５６、状態遷移生成部１５７を含む。これらは、コンピュータを構成するハードウェアと協働するソフトウェアとして実現され、良く知られたオペレーティングシステムの下で動作する。
【００２３】
切換えブロック選定部１５１、端子抽出部１５２、部分回路抽出部１５３、定性モデル化部１５４、周期抽出部１５５、状態抽出部１５６、状態遷移生成部１５７におけるそれぞれの処理によって、状態遷移図形式のデータがメモリ１３上に生成される。このデータは所定の処理を介して、二次記憶装置１４にも記憶される。
【００２４】
状態遷移図抽出装置は、離散制御を含んだブロック線図を入力する。切換えブロック選定部１５１は、ブロック線図から、入力信号によって実行するブロックを切換える切換えブロックを選定する。端子抽出部１５２は、選定した切換えブロックの状態を決定する端子を抽出するものである。部分回路抽出部１５３は、抽出した端子の状態を決定する部分回路を抽出するものである。定性モデル化部１５４は、部分回路を、定性値での挙動で状態を表現する定性モデルに変換するものである。周期抽出部１５５は、部分回路を構成する切換えブロックの全ての周期の最小公倍数Lと最大公約数Gを取り出して、最小公倍数Lが全体の周期、最大公約数Gがステップ時間である切換えブロックの周期を抽出するものである。状態抽出部１５６は、定性モデルに基づいて、切換えブロックの状態を抽出するものである。状態遷移生成部１５７は、状態抽出部１５６で得られる状態変数及び遷移信号とそれらの値域に基づいて、遷移信号を変化させて、状態変数に対する状態遷移図を生成するものである。
【００２５】
本実施形態では、以下の観点から、切換えブロックの「状態」に注目する。ここでの状態は複数であっても構わない。
【００２６】
１）切換えブロックの状態により、ブロック線図の結線状況が変化する。  
２）切換えブロックの状態を決める端子には離散値がくる。  
３）切換えブロックにより、連続制御アルゴリズムが変化していると考えるのが自然である。  
４）各状態遷移図の状態で切換えブロックの状態が一意に定まるなら、その状態でのブロック線図は、切換えブロックを取り除いて縮約したもので表すことができる。すなわち、次の状態を決めるのに関わらない切換えブロックは不要な要素として状態遷移図に含ませないようにすることで、コンパクトな状態遷移図が得られる。
【００２７】
本実施形態では、以下の流れで、切換えブロックの状態遷移を仮想実行により抽出する。
【００２８】
ブロックにいくつかの異なる周期が指定されている場合、時間の概念が必要である。しかし、単純に時間の概念を入れると状態遷移は無限となる。そこで、時間を、関連する切換えブロックの全周期の最小公倍数pによる剰余により有限化するのが好適である。これにより、周期が振られた切換えブロックで構成されたものも対応可能である。
【００２９】
１）切換えブロックの状態を決める要素を明確化する。  
２）明確化した要素に関して定性モデル化を行う。  
３）定性モデルを定性値で仮想実行し、状態遷移を抽出する。
【００３０】
次に、以上のように構成された状態遷移図抽出装置１００による抽出処理について、図２乃至図１６を利用して説明する。尚、図３乃至図１６では、説明をわかりやすくするため、後述する周期を考慮していない例を示している。
【００３１】
図２は、第１の実施形態に係る状態遷移図抽出装置における抽出処理の流れを示すフローチャートである。図２に示す状態遷移の抽出処理では、切換えブロックを含むブロック線図から、そのブロック線図における切換えブロックの状態の状態遷移図を生成する。
【００３２】
まず、ブロック線図中において、対象となる切換えブロックを決め、当該切換えブロックの状態を決める端子を特定する（ステップＳ２１）。切換えブロックの状態を決める端子は、複数あっても構わない。図３は、対象となる切換えブロックの選択を説明する図である。図３に示すブロック線図では、２個のMultiport Switchが選択されている。図４は、Multiport Switchを選択する端子の抽出を説明する図である。図４に示すブロック線図では、シングル入力／マルチ出力の働きをする２個のMultiport Switchを選択する端子が、○で囲まれ抽出されている。
【００３３】
次に、端子状態を決める部分回路を抽出する（ステップＳ２２）。図５は、端子状態を決める部分回路の抽出を説明する図である。具体的には、切換えブロックの状態を決める端子から回路を逆に辿り、当該端子（以下、入力端子という）に入力する線から入力端子までの部分回路を取り出し、これをPとおく。
【００３４】
次に、部分回路を定性モデル化する（ステップＳ２３）。取り出した部分回路Pを入力端子から辿り、その出力が最初に定性値となるブロックを見つける。図６は、信号が離散化する境界の探索を説明する図である。図６に示すブロック線図では、charge current signal、voltage signal、current signalの出力端から連続した信号が出力しており、４つの比較器以降で、信号が離散化する。図７は、ひとつ前の信号の値を覚えておくブロックである状態変数と、状態変数の値を変化させる遷移信号を説明する図である。図７に示す例では、４つの比較器のそれぞれ左側では連続値、右側では離散値となる。
【００３５】
見つかったブロックを“定性入力ブロック”に置き換える。さらに、定性入力ブロックから入力端子側の回路は取り除く。
【００３６】
この定性入力ブロックをB1, B2, ... , Bs とおき、B1, B2, ... , Bs が取りうる値の組み合わせを、As =def  {V1, V2, .... , Vu} とおく。 ただし、
Vi =def  {b i1,b i2,....,b is},  bij はBjの値 (0<i<u+1, 0<j<s+1)
例えば B1 =“x>0”, B2=“x<0” の場合、 As={(1,0),(0,1)} となり、 (1,1), (0,0）は含まれない。
【００３７】
次いで、ブロックの周期を抽出する（ステップＳ２４）。ここでは、部分回路Pを構成するブロックすべての周期の最小公倍数LCMと最大公約数GCDを取り出す。LCMを L、 GCDを Gとおくと、Lが 全体の周期、Gがステップ時間となる。
【００３８】
すなわち、時間の進行は、0, G, G*2,G*3,....,L-G, 0, G, G*2,G*3,....,L-G, 0となる。特に、L=Gのときは、0,0,0,0,.... 以下となる。
【００３９】
次いで、ブロックの状態を抽出する（ステップＳ２５）。例えば、状態の抽出は以下の処理で行う。
【００４０】
１）周期を覚える時間状態スロットTを作る。尚、L=Gの場合には、時間状態スロットの値は常に0となるので、このスロットは不要である。  
２）部分回路Pを、リレー状態端子から辿り、現在のブロックBiの周期 Siと、前のブロックBjの周期Sjで、G (Si,Sj) = Sj でないなら、現在のブロックと前のブロック間の状態を覚える線状態スロットMij を作る。
【００４１】
Biの周期が継承となっている場合は前のブロックBjの周期Sjで、それ以外の前の任意のブロックBkの周期Skに対し、G (Sk,Sj) = Sj でないなら、現在のブロックと前のブロック間の状態を覚える線状態スロットMij を作る。
【００４２】
Mij の周期を Sjとして、時間状態スロットTの周期が Sj-1の際には線の値にかかわらず Mij=* とすることにする。Bjからの線が複数に分かれている場合には、その内の１つでも線状態スロットを作る必要があるならば全体として１つ作成する。周期はすべての周期に対し最小公倍数とする。
【００４３】
この結果生成されるスロットを、H1, H2, H3,... Hn とおく。また、各スロットの周期を、C1,C2,....,Cn とおく。初期状態を、I1,I2,I3,...,In とおく。
【００４４】
３）メモリブロック等の値を記憶するブロックがあれば、これを覚えるメモリスロットを作る。この結果生成されるスロットを、K1,K2,K3,...,Km とおく。初期状態を、 J1,J2,J3,...,Jm とおく。
【００４５】
全体としての状態 Sは、以下のように表すことができる。
【００４６】
S =def  (T, H1, H2,..., Hn,K1,K2,K3,...,Km)
図８は、状態抽出の結果得られる状態変数及び遷移信号とそれらの値域を説明する図である。図８に示すブロック線図では、状態変数ｎ１の初期値は０、遷移信号ａ１の値域は[０，１]、遷移信号ａ２の値域は[０，１]、遷移信号ａ３の値域は[０，１]、遷移信号ａ４の値域は[０，１]であることを示している。
【００４７】
次いで、状態遷移を生成する（ステップＳ２６）。例えば、状態遷移の生成は以下の処理で行う。
【００４８】
１）n0=def（0,I1,I2,I3,...,In,J1,J2,J3,...,Jm ）を状態Sの初期状態とする。状態をとっておく状態プールをPL={(n0,Yet)}, (n0はS = I の状態とする)、エッジをとっておくエッジプールをE={} とする。  
２）PLの元で第２項目がYetのものがあるならば、これを取り出す。なければ、次の処理３）へ移行する。  
３）この項目の第１項目をnとして、nの次の状態（複数）を以下の様にして生成する。
i）nのTの値をt とすると、nの次の状態におけるTの値t’ は ((t+G )mod L)となる。  
ii）As ={V1,V2,....,Vu}とする。  
iii）Asから 候補Viを１つ取り出す。候補が無くなったら  ２） へ。  
ａ）取り出した候補を入力ブロックの値として、仮想実行により、H1,H2,...,Hn,K1,K2,K3,...,Kmの値を決める。  
ただし、各Hp において、t’mod Cp = Cp-1ならば、Hpの値は無条件に*とする。  
これを、I'1,I'2,I'3,...,I'n,J'1,J'2,J'3,...,J'm  とおく。  
n'= t’,I'1,I'2,I'3,...,I'n,J'1,J'2,J'3,...,J'm  とする。  
ｂ） E=E∪(n,Vi,n')、PL=PL−(n,Yet)+ (n,End)として、(n',Yet)∈PL もしくは(n',End)∈PL でないならPL=PL+(n',Yet) とする。  
iv）FromノードとToノードが同じエッジはまとめる。
【００４９】
図８のブロック線図に示すように、現在の状態変数値に対して遷移信号値を決めると、次サイクルの状態変数値が決まる。そこで、遷移信号を変化させて、状態変数に対する状態遷移図を作成する。図９乃至図１３は、メモリブロックである状態変数ｎ１の初期値が０であるとき、定性入力ブロックにおける遷移信号の変化を説明する図である。尚、各図において、点線で示した要素は、既出であることを示している。
【００５０】
図９に示す例では、遷移信号ａ１の値＝０，遷移信号ａ２の値＝１、遷移信号ａ３の値＝０、遷移信号ａ４の値＝０のとき、状態変数ｎ１＝１となる。図１０に示す例では、遷移信号ａ１の値＝０，遷移信号ａ２の値＝１、遷移信号ａ３の値＝０、遷移信号ａ４の値＝１のとき、ｎ１＝１となる。同様に、図１１に示す例では、遷移信号ａ１の値＝０，遷移信号ａ２の値＝０、遷移信号ａ３の値＝１、遷移信号ａ４の値＝０のとき、ｎ１＝０となる。
【００５１】
図１４、図１５は、離散信号の条件をＯＲでまとめる処理を説明する図である。
【００５２】
尚、上記説明では、切換えブロックの切換え状態の状態変化を状態遷移図で取り出すことで説明したが、これに限られず、プログラマブルロジックコントローラ(PLC)用のグラフィカルなプログラム言語であるシーケンシャル・ファンクション・チャート (SFC  Sequential function chart)の形で取り出すことも好適である。
【００５３】
第１の実施形態によれば、離散状態を含んだ複雑なブロック線図から、離散状態を分離することができるので、含まれる離散制御にどのような状態（制御モード）があり、それがどのような遷移をするのかを把握することができる。
【００５４】
（第２の実施形態）
次に、第２の実施形態について説明する。第２の実施形態は、第１の実施形態で取り出した離散制御部分の状態遷移図もしくはSFCの各状態で、動作するブロック線図を、最初の離散制御を含んだブロック線図（元のブロック線図）と等価な動きになるように、この状態遷移図の各状態で動作させるブロック線図を定めるものである。
【００５５】
図１６は、本発明の第２の実施形態に係る状態遷移図抽出装置の概略構成を示すブロック図である。図１６に示すように、第２の実施形態に係る状態遷移図抽出装置では、処理部１６は、第１の実施形態の処理部１５の構成に加えて、対応変数生成部１６１、ノード・エッジによる回路簡易化部１６２、時刻による回路簡易化部１６３、外部変数化部１６４を有している。
【００５６】
これらは、コンピュータを構成するハードウェアと協働するソフトウェアとして実現され、良く知られたオペレーティングシステムの下で動作する。対応変数生成部１６１、ノード・エッジによる回路簡易化部１６２、時刻による回路簡易化部１６３、外部変数化部１６４におけるそれぞれの処理によって、ブロック線図のデータがメモリ１３上に生成される。このデータは所定の処理を介して、二次記憶装置１４にも記憶される。
【００５７】
対応変数生成部１６１は、記憶が必要な出力を見つけ、対応する変数を生成するとともに、メモリブロックに対応する変数を生成するものである。
【００５８】
ノード・エッジによる回路簡易化部１６２は、ノードnから決まる切換えブロックの状態、線の値、エッジeから定まる定性入力ブロックの値から、回路を簡易化するものである。
【００５９】
時刻による回路簡易化部１６３は、時刻によって回路を簡易化するものである。
【００６０】
外部変数化部１６４は、メモリブロックの外部変数化を行うことにより、状態遷移図の任意のノードｎの、任意のエッジｅに対してのブロック線図ＢＬｎｅを得るものである。
【００６１】
図１７は、第２の実施形態に係る状態遷移図抽出装置による抽出処理の流れを示すフローチャートである。
【００６２】
まず、前準備として、記憶が必要な出力を見つけ、対応する変数を作る（ステップＳ１７１）。具体的には、まず、周期を指定することにより、時刻によっては動作しないことがあるブロックを見つける。見つけたブロックの出力で、動作しない時刻に、その出力を読むブロックがあるものを見つける。その見つけたブロックの出力に対応する変数を作る。
【００６３】
次いで、メモリブロックに対応する変数を作る（ステップＳ１７２）。
【００６４】
次に、ノード、エッジによる回路の簡易化を行う（ステップＳ１７３）。
【００６５】
図１８は、ノード、エッジによる簡易化を説明する図である。図１８に示すように、ノードnから決まる切換えブロックの状態、線の値、エッジeから定まる定性入力ブロックの値から、回路を簡易化する。
【００６６】
次に、時刻による回路の簡易化を行う（ステップＳ１７４）。図１９は、時刻による回路の簡易化を説明する図である。例えば、時刻による回路の簡易化は以下の手順で行うことが好適である。
【００６７】
１）nの時刻から、その遷移時に動作しないブロックを求める。各ブロックの入力側として辿れるブロックを消去していく。他のブロックの入力にもなっているものはエッジのみ消去する。  
２）消去するブロックの出力線にそれぞれ入力ブロックを作成する。この入力ブロックに対応する外部変数に繋ぐ。  
３）また、動作するブロックの出力で、対応する変数があるものは、出力ブロックを作成し、対応する変数に繋ぐ。
【００６８】
図１９に示す例では、ｔ＝０の場合、周期２のブロックの値は変数に記録し、出力ブロックを作成し、対応する変数に繋いでいる。また、ｔ＝１の場合、周期２のブロックの値は変数から読出し、入力ブロックを作成し、対応する変数に繋いでいる。
【００６９】
次いで、メモリブロックの外部変数化を行う（ステップＳ１７５）。図２０は、メモリブロックの外部変数化を説明する図である。このステップでは、各メモリブロックを消去し、当該ブロックの出力部を表す出力ブロック、入力部を表す入力ブロックを作成し、各入出力ブロックはそのメモリに対応する外部変数に繋ぐ処理を行う。図２０に示す例では、ｔ＝０の場合、ｔ＝１の場合、いずれも入力部に入力ブロックを作成し、対応する外部変数に繋ぎ、出力部に出力ブロックを作成し、対応する外部変数に繋いでいる。
【００７０】
以上のようにして、状態遷移図の任意のノードｎの、任意のエッジｅに対してのブロック線図ＢＬｎｅを得る（ステップＳ１７６）ことができる。
【００７１】
第２の実施形態によれば、離散状態を含んだ複雑なブロック線図も、離散事象と、その際に行うシンプルな連続制御とに整理することができる。
【００７２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７３】
１００・・・状態遷移図抽出装置
１０・・・ディスプレイ
１１・・・キーボード
１２・・・マウス
１３・・・メモリ
１４・・・二次記憶装置
１５、１６・・・処理部
１５１・・・切換えブロック選定部
１５２・・・端子抽出部
１５３・・・部分回路抽出部
１５４・・・定性モデル化部
１５５・・・周期抽出部
１５６・・・状態抽出部
１５７・・・状態遷移生成部
１６１・・・対応変数生成部
１６２・・・ノード・エッジによる回路簡易化部
１６３・・・時刻による回路簡易化部
１６４・・・外部変数化部
【図１】
2014063375.tif 000003
【図２】
2014063375.tif 000004
【図１４】
2014063375.tif 000005
【図１５】
2014063375.tif 000006
【図１６】
2014063375.tif 000007
【図１７】
2014063375.tif 000008
【図３】
2014063375.tif 000009
【図４】
2014063375.tif 000010
【図５】
2014063375.tif 000011
【図６】
2014063375.tif 000012
【図７】
2014063375.tif 000013
【図８】
2014063375.tif 000014
【図９】
2014063375.tif 000015
【図１０】
2014063375.tif 000016
【図１１】
2014063375.tif 000017
【図１２】
2014063375.tif 000018
【図１３】
2014063375.tif 000019
【図１８】
2014063375.tif 000020
【図１９】
2014063375.tif 000021
【図２０】
2014063375.tif 000022