(57)【要約】【課題】デジタルコントローラの離散的な挙動が支配的な物理情報システムであっても、与えられた初期条件と終了条件を満たすような制御入力値を生成することができる、制御入力値生成装置、制御入力値生成方法、および、プログラムを提供することを課題とする。【解決手段】本発明は、初期条件から終了条件に至るように物理情報システムを動作させるために、プログラム論理を用いて、初期条件から時間順に、物理情報システムの各制御サイクルにおける事後条件を演算し、プログラム論理を用いて、終了条件から時間逆順に、各制御サイクルにおける事前条件を演算し、演算された事前条件から、各制御サイクルにおける制御入力値を抽出することにより、初期条件から終了条件に至るような制御入力値の入力列を取得する場合において、事前条件を演算する際に、演算された事後条件を用いて、各制御サイクルにおける事前条件の探索範囲を限定して、当該事前条件を演算する。【選択図】図１
2015194917.tif 000002
【特許請求の範囲】
【請求項１】
初期条件から終了条件に至るように物理情報システムを動作させるための制御入力値を生成する制御入力値生成装置であって、
プログラム論理を用いて、上記初期条件から時間順に、上記物理情報システムの各制御サイクルにおける事後条件を演算する事後条件演算手段と、
プログラム論理を用いて、上記終了条件から時間逆順に、上記各制御サイクルにおける事前条件を演算する事前条件演算手段と、
上記事前条件演算手段により演算された上記事前条件から、上記各制御サイクルにおける制御入力値を抽出することにより、上記初期条件から上記終了条件に至るような上記制御入力値の入力列を取得する入力列取得手段と、
を備え、
上記事前条件演算手段は、
上記事後条件演算手段により演算された上記事後条件を用いて、上記各制御サイクルにおける上記事前条件の探索範囲を限定して、当該事前条件を演算すること
を特徴とする制御入力値生成装置。
【請求項２】
請求項１に記載の制御入力値生成装置において、
上記物理情報システムは、
コントローラが、センサからのフィードバックを利用してプラントを制御するシステムであって、上記各制御サイクルにおいて、
上記センサは、
入力される上記制御入力値と、検出される上記プラントの物理量と、所定のセンサプログラムとに従って、上記コントローラの状態変数を更新し、
上記コントローラは、
上記更新された状態変数と、所定のコントローラプログラムとに従って、当該コントローラの状態変数と、上記プラントと上記センサで共有される変数ｚとを更新し、
上記プラントは、
次の上記制御サイクルにおいて、更新された上記変数ｚの微分方程式Ｍ［ｚ］に従って、上記物理量を更新しながら動作すること
を特徴とする制御入力値生成装置。
【請求項３】
初期条件から終了条件に至るように物理情報システムを動作させるための制御入力値を生成する制御入力値生成方法であって、
プログラム論理を用いて、上記初期条件から時間順に、上記物理情報システムの各制御サイクルにおける事後条件を演算する事後条件演算ステップと、
プログラム論理を用いて、上記終了条件から時間逆順に、上記各制御サイクルにおける事前条件を演算する事前条件演算ステップと、
上記事前条件演算ステップにて演算された上記事前条件から、上記各制御サイクルにおける制御入力値を抽出することにより、上記初期条件から上記終了条件に至るような上記制御入力値の入力列を取得する入力列取得ステップと、
を備え、
上記事前条件演算ステップは、
上記事後条件演算手段にて演算された上記事後条件を用いて、上記各制御サイクルにおける上記事前条件の探索範囲を限定して、当該事前条件を演算すること
を特徴とする制御入力値生成方法。
【請求項４】
初期条件から終了条件に至るように物理情報システムを動作させるための制御入力値を生成する方法をコンピュータに実行させるためのプログラムであって、
プログラム論理を用いて、上記初期条件から時間順に、上記物理情報システムの各制御サイクルにおける事後条件を演算する事後条件演算ステップと、
プログラム論理を用いて、上記終了条件から時間逆順に、上記各制御サイクルにおける事前条件を演算する事前条件演算ステップと、
上記事前条件演算ステップにて演算された上記事前条件から、上記各制御サイクルにおける制御入力値を抽出することにより、上記初期条件から上記終了条件に至るような上記制御入力値の入力列を取得する入力列取得ステップと、
を実行させるためのプログラムであって、
上記事前条件演算ステップは、
上記事後条件演算手段にて演算された上記事後条件を用いて、上記各制御サイクルにおける上記事前条件の探索範囲を限定して、当該事前条件を演算すること
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御入力値生成装置、制御入力値生成方法、および、プログラムに関する。
【背景技術】
【０００２】
近年、自動車、飛行機、衛星等の重要なシステムが、デジタルコントローラが物理プラントを制御する、物理情報システムとして実現されるようになっている。
【０００３】
物理情報システムの品質向上のための形式的手法として、現在、最も活発に開発が行われているのが、到達可能性の計算によるシステム検証である。例えば、ＳｐａｃｅＥｘやＨｙＴｅｃｈ等は、与えられた初期条件から終了条件に到達しうるかどうかを到達可能な領域の計算によって判定する技術である。また、同様にプログラム論理を用いたシステム検証のツールとしてＫｅＹｍａｅｒａが開発されている。
【０００４】
同様に、非特許文献１では、物理情報システムの入力列の生成手法が開示されている。この手法は、物理プラントのダイナミクスに着目し、与えられた条件を満たす入力列を連続関数の最適化問題に帰着して生成する手法である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ａｎｎｐｕｒｅｄｄｙ，  Ｙ．，  Ｌｉｕ，  Ｃ．，  Ｆａｉｎｅｋｏｓ，  Ｇ．Ｅ．，  Ｓａｎｋａｒａｎａｒａｙａｎａｎ，  Ｓ．：  Ｓ−ＴａＬｉＲｏ：  “Ａ  ｔｏｏｌ  ｆｏｒ  ｔｅｍｐｏｒａｌ  ｌｏｇｉｃ  ｆａｌｓｉｆｉｃａｔｉｏｎ  ｆｏｒ  ｈｙｂｒｉｄ  ｓｙｓｔｅｍｓ．”  Ｉｎ：  Ａｂｄｕｌｌａ，  Ｐ．Ａ．，  Ｌｅｉｎｏ，  Ｋ．Ｒ．Ｍ．  （ｅｄｓ．）  ＴＡＣＡＳ．  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  ｖｏｌ．  ６６０５，  ｐｐ．  ２５４−２５７．  Ｓｐｒｉｎｇｅｒ  （２０１１）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のシステム検証の技術では、物理情報システムへの入力を明示的に扱えず、したがって入力列生成の問題にそのまま適用することはできない、という問題点を有していた。
【０００７】
また、非特許文献１に記載の入力列生成方法では、デジタルコントローラの挙動が支配的ではなく、物理情報システムの挙動がシステム全体の挙動を支配する場合にのみ有効であり、物理情報システムのダイナミクスがほぼ全域にわたって連続である場合にしか良好な性能を発揮し得ない。そのため、デジタルコントローラの挙動が支配的な物理情報システムでは、その不連続性や離散的挙動をうまく扱うことができず、比較的シンプルなシステムに対しても入力値列を求めることができない、という問題点を有していた。
【０００８】
本発明は、上記問題点に鑑みてなされたもので、デジタルコントローラの離散的な挙動が支配的な物理情報システムであっても、与えられた初期条件と終了条件を満たすような制御入力値を生成することができる、制御入力値生成装置、制御入力値生成方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
このような目的を達成するため、本発明の制御入力値生成装置は、初期条件から終了条件に至るように物理情報システムを動作させるための制御入力値を生成する制御入力値生成装置であって、プログラム論理を用いて、上記初期条件から時間順に、上記物理情報システムの各制御サイクルにおける事後条件を演算する事後条件演算手段と、プログラム論理を用いて、上記終了条件から時間逆順に、上記各制御サイクルにおける事前条件を演算する事前条件演算手段と、上記事前条件演算手段により演算された上記事前条件から、上記各制御サイクルにおける制御入力値を抽出することにより、上記初期条件から上記終了条件に至るような上記制御入力値の入力列を取得する入力列取得手段と、を備え、上記事前条件演算手段は、上記事後条件演算手段により演算された上記事後条件を用いて、上記各制御サイクルにおける上記事前条件の探索範囲を限定して、当該事前条件を演算することを特徴とする。
【００１０】
また、本発明の制御入力値生成装置は、上記記載の制御入力値生成装置において、上記物理情報システムは、コントローラが、センサからのフィードバックを利用してプラントを制御するシステムであって、上記各制御サイクルにおいて、上記センサは、入力される上記制御入力値と、検出される上記プラントの物理量と、所定のセンサプログラムとに従って、上記コントローラの状態変数を更新し、上記コントローラは、上記更新された状態変数と、所定のコントローラプログラムとに従って、当該コントローラの状態変数と、上記プラントと上記センサで共有される変数ｚとを更新し、上記プラントは、次の上記制御サイクルにおいて、更新された上記変数ｚの微分方程式Ｍ［ｚ］に従って、上記物理量を更新しながら動作することを特徴とする。
【００１１】
また、本発明は制御入力値生成方法に関するものであり、本発明の制御入力値生成方法は、初期条件から終了条件に至るように物理情報システムを動作させるための制御入力値を生成する制御入力値生成方法であって、プログラム論理を用いて、上記初期条件から時間順に、上記物理情報システムの各制御サイクルにおける事後条件を演算する事後条件演算ステップと、プログラム論理を用いて、上記終了条件から時間逆順に、上記各制御サイクルにおける事前条件を演算する事前条件演算ステップと、上記事前条件演算ステップにて演算された上記事前条件から、上記各制御サイクルにおける制御入力値を抽出することにより、上記初期条件から上記終了条件に至るような上記制御入力値の入力列を取得する入力列取得ステップと、を備え、上記事前条件演算ステップは、上記事後条件演算手段にて演算された上記事後条件を用いて、上記各制御サイクルにおける上記事前条件の探索範囲を限定して、当該事前条件を演算することを特徴とする。
【００１２】
また、本発明はプログラムに関するものであり、本発明のプログラムは、初期条件から終了条件に至るように物理情報システムを動作させるための制御入力値を生成する方法をコンピュータに実行させるためのプログラムであって、プログラム論理を用いて、上記初期条件から時間順に、上記物理情報システムの各制御サイクルにおける事後条件を演算する事後条件演算ステップと、プログラム論理を用いて、上記終了条件から時間逆順に、上記各制御サイクルにおける事前条件を演算する事前条件演算ステップと、上記事前条件演算ステップにて演算された上記事前条件から、上記各制御サイクルにおける制御入力値を抽出することにより、上記初期条件から上記終了条件に至るような上記制御入力値の入力列を取得する入力列取得ステップと、を実行させるためのプログラムであって、上記事前条件演算ステップは、上記事後条件演算手段にて演算された上記事後条件を用いて、上記各制御サイクルにおける上記事前条件の探索範囲を限定して、当該事前条件を演算することを特徴とする。
【００１３】
また、本発明は記録媒体に関するものであり、上記記載のプログラムを記録したことを特徴とする。
【発明の効果】
【００１４】
この発明によれば、初期条件から終了条件に至るように物理情報システムを動作させるために、プログラム論理を用いて、初期条件から時間順に、物理情報システムの各制御サイクルにおける事後条件を演算し、プログラム論理を用いて、終了条件から時間逆順に、各制御サイクルにおける事前条件を演算し、演算された事前条件から、各制御サイクルにおける制御入力値を抽出することにより、初期条件から終了条件に至るような制御入力値の入力列を取得する場合において、事前条件を演算する際に、演算された事後条件を用いて、各制御サイクルにおける事前条件の探索範囲を限定して、当該事前条件を演算する。これにより、本発明は、デジタルコントローラの離散的な挙動が支配的な物理情報システムであっても、与えられた初期条件と終了条件を満たすような制御入力値を生成することができる、という効果を奏する。特に、従来手法では、物理プラントのダイナミクスに基づいた最適化ベースのアプローチを採用しており、分岐処理などデジタルコントローラの離散的挙動に対して、探索空間が爆発し制御入力値を求めることが出来ないことがあったが、本発明によれば、探索空間を的確に限定して制御入力値を求めることができる。
【００１５】
また、本発明によれば、物理情報システムは、コントローラが、センサからのフィードバックを利用してプラントを制御するシステムであって、各制御サイクルにおいて、センサは、入力される制御入力値と、検出されるプラントの物理量と、所定のセンサプログラムとに従って、コントローラの状態変数を更新し、コントローラは、更新された状態変数と、所定のコントローラプログラムとに従って、当該コントローラの状態変数と、プラントとセンサで共有される変数ｚとを更新し、プラントは、次の制御サイクルにおいて、更新された変数ｚの微分方程式Ｍ［ｚ］に従って、物理量を更新しながら動作する。これにより、本発明は、物理情報システムを的確にモデリングすることにより、プログラム論理を適用して、制御入力値を求めることができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、本実施の形態が適用される本制御入力値生成装置１００の一例を示すブロック図である。
【図２】図２は、自動車産業等においてよく現れる入力生成問題を説明するためのハイブリッドシステムの例１を模式的に示した図である。
【図３】図３は、Ｓｅｎｓｅ−Ｔｈｉｎｋ−Ａｃｔループモデルにおける処理の一例を示すフローチャートである。
【図４】図４は、本実施の形態における制御入力値生成装置１００の制御入力値生成処理の一例を示すフローチャートである。
【図５】図５は、例２で用いた制御モデルを模式的に示した図である。
【発明を実施するための形態】
【００１７】
以下に、本発明にかかる制御入力値生成装置、制御入力値生成方法、および、プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。例えば、本実施の形態では、物理情報システムの例としてハイブリッドシステムに適用した例を挙げて説明することがあるが、本発明はこれに限られず、サイバーフィジカルシステムなど他の物理情報システムに適用してもよい。また、以下の実施の形態では、自動車の速度制御系に適用した例について説明する場合があるが、これに限られず、飛行機、衛星など様々な制御系に適用してもよい。
【００１８】
［制御入力値生成装置の構成］
次に、本制御入力値生成装置の構成について図１を参照して説明する。図１は、本実施の形態が適用される本制御入力値生成装置１００の一例を示すブロック図であり、該構成のうち本実施の形態に関係する部分のみを概念的に示している。
【００１９】
図１に示すように、本実施の形態における制御入力値生成装置１００は、概略的に、制御部１０２と記憶部１０６を少なくとも備え、本実施の形態において、更に、入出力制御インターフェース部１０８を備える。ここで、制御部１０２は、制御入力値生成装置１００の全体を統括的に制御するＣＰＵ等である。また、本実施の形態において、入出力制御インターフェース部１０８は、ハイブリッドシステムに接続されるインターフェースである。また、記憶部１０６は、各種のデータベースやテーブルなどを格納する装置である。これら制御入力値生成装置１００の各部は任意の通信路を介して通信可能に接続されている。
【００２０】
また、入出力制御インターフェース部１０８は、本実施の形態において、ハイブリッドシステムの制御を行う。本実施の形態において、ハイブリッドシステムとは、状態に離散的な状態（例えばＣＰＵのレジスタの値）と連続的な状態（たとえば温度）を含むシステムである。例えば、ソフトウェアで制御を行う自動車等もハイブリッドシステムである。なお、図示のハイブリッドシステムに限られず、サイバーフィジカルシステムやサンプルデータシステム等の物理情報システムに本実施の形態を適用することもできる。サイバーフィジカルシステムとは、プラント等の物理システムと情報システムを組み合わせたシステムであり、多くの場合、ハイブリッドシステムとしての側面を持つ。すなわち、様々な物理システムの制御がＩＣＴシステムによって行われる現在、サイバーフィジカルシステムは重要性を増しているが、サイバーフィジカルシステムはその性質上、離散的遷移と連続的遷移が両方存在するハイブリッドシステムとして実現されることが多い。なお、以下の実施の形態においては、プラントからコントローラへのフィードバックが一定時間ごとに起こるハイブリッドシステムであるサンプルデータシステムを例示することがあるが、本発明は、これに限られない。
【００２１】
図１に示すように、本実施の形態においては、物理情報システムの例としてハイブリッドシステムを用いる。本実施の形態のハイブリッドシステムは、コントローラＣと、プラントＰと、センサＳを備える。ここで、プラントとは、連続値で記述されるシステムであって、例えば自動車の内燃機関などである。また、コントローラは、プラントからのフィードバックを受け取り、プラントへの信号を与えるようなソフトウェアである。自動車の内燃機関を制御するＥＣＵ（Ｅｎｇｉｎｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）もコントローラの例である。
【００２２】
概略として、制御入力値生成装置１００は、ハイブリッドシステムの入力値生成のためのアルゴリズムを実行する。このアルゴリズムは、外部入力（制御理論では外乱やノイズとも呼ばれる。）を受け取るハイブリッドシステムの記述と初期条件と終了条件を与えると、その初期条件と終了条件を満たすようにシステムを動かす入力の列を生成する。このアルゴリズムのメインとなるアイデアは、プログラム論理に基づいて事前条件計算と事後条件計算を行うことにより、可能な入力のうち探索すべき入力の大きさを減らすことである。なお、後述するように、この手法が実際に有効であることを実験して確認した。
【００２３】
制御入力値生成装置１００は、入出力制御インターフェース部１０８を介して、求めた制御入力値ｉをセンサＳに入力することにより、与えられた初期条件と終了条件を満たすような制御を実現することができる。
【００２４】
記憶部１０６に格納される各種のデータベースやテーブル（モデル記憶部１０６ａ等）は、固定ディスク装置等のストレージ手段である。例えば、記憶部１０６は、各種処理に用いる各種のプログラム、テーブル、ファイル、データベース、および、ウェブページ等を格納する。
【００２５】
これら記憶部１０６の各構成要素のうち、モデル記憶部１０６ａは、物理情報システムのモデルを記憶するモデル記憶手段である。例えば、モデル記憶部１０６ａは、コントローラＣが、センサＳからのフィードバックを利用してプラントＰを制御する物理情報システムのモデルを記憶する。物理情報システムのモデリング例として、Ｓｅｎｓｅ−Ｔｈｉｎｋ−Ａｃｔループによるモデリングを挙げる。このモデルでは、各制御サイクルにおいて、センサＳが、入力される制御入力値ｉと、検出されるプラントＰの物理量と、所定のセンサプログラムＰＳとに従って、コントローラＣの状態変数ｘｓを更新するＳｅｎｓｅ過程と、コントローラＣが、更新された状態変数ｘｓと、所定のコントローラプログラムＰＣとに従って、当該コントローラの状態変数ｘａと、プラントＰとセンサＳで共有される変数ｚとを更新するＴｈｉｎｋ過程と、プラントＰが、次の制御サイクルにおいて、更新された変数ｚの微分方程式Ｍ［ｚ］に従って、物理量ｖを更新しながら動作するＡｃｔ過程を含む。このＳｅｎｓｅ−Ｔｈｉｎｋ−Ａｃｔループによるモデルにより、産業界にみられる一般的な物理情報システムと同様に、コントローラの振る舞いをプログラミング言語によりモデリングすることができる。なお、センサプログラムＰＳやコントローラプログラムＰＣ等のプログラムとは、一例として、本実施の形態において、Ｃ言語やＪａｖａ（登録商標）言語等の高級言語で書かれたプログラムテキストを指している。
【００２６】
また、図１において、制御部１０２は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の制御プログラムや、各種の処理手順等を規定したプログラム、および、所要データを格納するための内部メモリを有する。そして、制御部１０２は、これらのプログラム等により、種々の処理を実行するための情報処理を行う。制御部１０２は、機能概念的に、事後条件演算部１０２ａ、事前条件演算部１０２ｂ、および、入力列取得部１０２ｃを備える。
【００２７】
このうち、事後条件演算部１０２ａは、プログラム論理を用いて、初期条件から時間順に、物理情報システムの各制御サイクルにおける事後条件を演算する事後条件演算手段である。
【００２８】
ここで、本実施の形態において、条件は、物理情報システムの状態に関する論理式等のように、何らかの形式的な記述方式で扱うことができる。例えば、ｖをシステムの速度、ｘをシステムのｘ座標としたときに、ｖ＞０  ＆＆  ｘ＞０（速度と位置が共に正）等のような論理積として表現することでプログラム論理による演算を行うことができる。
【００２９】
事後条件は、物理情報システム終了時に満たさなければならない条件である。ここで、本実施の形態においては、特に、物理情報システムの各制御サイクルにおける終了時に満たさなければならない条件を事後条件と呼び、物理情報システム全体の終了時に満たさなければならない事後条件は終了条件と呼んで区別する。
【００３０】
また、事前条件演算部１０２ｂは、プログラム論理を用いて、終了条件から時間逆順に、各制御サイクルにおける事前条件を演算する事前条件演算手段である。事前条件は、物理情報システム開始時に満たさなければならない条件である。ここで、本実施の形態においては、特に、物理情報システムの各制御サイクルにおける開始時に満たさなければならない条件を事前条件と呼び、物理情報システム全体の開始時に満たさなければならない事前条件は初期条件と呼んで区別する。
【００３１】
なお、事前条件演算部１０２ｂは、事後条件演算部１０２ａにより演算された事後条件を用いて、各制御サイクルにおける事前条件の探索範囲を限定する。これにより、コントローラＣの分岐処理等のように離散的挙動を示す場合であっても、探索範囲の指数関数的な爆発を抑えることができる。
【００３２】
事後条件演算部１０２ａや事前条件演算部１０２ｂ等により用いられるプログラム論理は、一例として、事前条件や事後条件が論理式で与えられる場合において、センサプログラムＰＳやコントローラプログラムＰＣ等のプログラムが事前条件・事後条件を満たすことを証明するための演繹的手法である。例えば、プログラム論理として、公知のＨｏａｒｅ論理を用いることができる（ｈｔｔｐ：／／ｗｗｗ−ｍｍｍ．ｉｓ．ｓ．ｕ−ｔｏｋｙｏ．ａｃ．ｊｐ／〜ｉｃｈｉｒｏ／ｔａｌｋｓ／ｋｏｍａｂａＳｏｇｏ２０１１Ｈａｎｄｏｕｔ．ｐｄｆ参照）。プログラム論理を用いることにより、以下の二つの条件が効率よく計算できる。
・事後条件Ａとプログラムｃから、ｃの実行後にＡが成り立つための事前条件Ｐｒｅ（ｃ，Ａ）
・事前条件Ａとプログラムｃから、Ａが成り立つ状態からｃを実行した後に成り立つ事後条件  Ｐｏｓｔ（Ａ，ｃ）
【００３３】
さらに、本実施の形態において、事前条件演算部１０２ｂは、上記の事前条件の計算Ｐｒｅ（ｃ，Ａ）を少し精密化したＰｒｅ（ｃ，Ａ，Ｂ）が容易に求まることを利用して演算を行ってもよい。
・事後条件Ａとプログラムｃと条件Ｂから、ｃの実行後にＡが成り立つための事前条件でＢ＆＆Ｐｒｅ（ｃ，Ａ）よりも強い条件Ｐｒｅ（ｃ，Ａ，Ｂ）
【００３４】
また、入力列取得部１０２ｃは、事前条件演算部１０２ｂにより演算された事前条件から、各制御サイクルにおける制御入力値を抽出することにより、初期条件から終了条件に至るような制御入力値の入力列を取得する入力列取得手段である。
【００３５】
以上が、本実施の形態における制御入力値生成装置１００の構成の一例である。
【００３６】
［本実施の形態の処理］
次に、このように構成された本実施の形態における処理の例について、以下に図２〜図５を参照して詳細に説明する。
【００３７】
［例１］
ハイブリッドシステムの品質向上は産業的にも学術的にも興味のある問題である。本実施形態においては、ハイブリッドシステムの入力生成問題を扱う。すなわち、外部入力（制御理論では外乱やノイズとも呼ばれる。）を受け付けるハイブリッドシステムについて、ある初期条件と終了条件を満たすようにハイブリッドシステムの状態を遷移させる入力が存在するならば、その入力を求める、という問題である。ここで、図２は、自動車産業等においてよく現れる入力生成問題を説明するためのハイブリッドシステムの例１を模式的に示した図である。
【００３８】
例１は、自動車産業等においてよく現れる問題を抽象化した入力生成問題の典型例である。図２に示すように、速度ｖで走行する自動車をモデル化している。このモデルは、外部入力を受け付けるセンサＳ、自動車の速度をモデル化したプラントＰ、制御ソフトウェアをモデル化したコントローラＣから成る。変数ｖは自動車の速度を表す。
【００３９】
このモデルでは、一定時間ごとに制御ソフトウェアが起動され、制御ソフトウェアＣはセンサＳから読み取った現在のｖの値に関する情報から、次の一定時間にプラントＰをどのモードで動作させるかを決定する。コントローラＣは、ｃｎｔという内部変数を持っており、この変数には速度ｖが入力ｉに一定の範囲（この例では差が０．２５以下）で追従していれば１が加えられる。解くべき入力生成問題は、
初期条件：ｃｎｔ＝０，  −０．１＜＝ｖ＜＝０．１
終了条件：ｃｎｔ＝１００，  ｔｒｕｅ
を満たす入力ｉの列を求めることである。ここに、ｔは制御ソフトウェアが起動された回数を表す。すなわち、ｃｎｔ＝０  ＆＆  −０．１＜＝ｖ＜＝０．１を満たす状態からシステムを動作させ、１０００単位時間後に「ｖがｉに１００単位時間の間追従していた」という状態に至るような入力列を生成するのが目的である。
【００４０】
ここで、モデル例１の動作を説明する。センサＳは毎時刻に速度ｖを測定し、その値と入力ｉとの差が０．２５以下であればｔｒｕｅ、そうでなければｆａｌｓｅを変数ｘｓにセットする。コントローラＣは、毎時刻にｘａの値がｔｒｕｅであればｃｎｔを１増加させ、ｆａｌｓｅであればｃｎｔを０にセットする。また、ｃｎｔの値によって、ｘａの値をｍ１，ｍ２，ｍ３のいずれかにセットする。このｘａの値が、次の単位時間中プラントが従う微分方程式を決める。
【００４１】
以上がハイブリッドシステムのモデル例１である。本実施の形態では、一例として、このモデル例１のような入力生成問題から、適切な入力列を求める。以下に、具体的処理について説明する。
【００４２】
［Ｓｅｎｓｅ−Ｔｈｉｎｋ−Ａｃｔループ］
本実施形態において、制御入力値生成装置１００は、ハイブリッドシステムが例１のようにセンサＳ、コントローラＣ、プラントＰに分けて記述されていると仮定してモデル化する。ここで、コントローラＣは、離散的なｍ個の変数からなる状態ｘ１，．．．，ｘｍを持つ。プラントＰは、ｎ個の物理量からなる状態ｙ１，．．．，ｙｎを持ち、ｙ１，．．．，ｙｎに関するａ個の微分方程式Ｍ［１］，．．．，Ｍ［ａ］を持つ。プラントＰとセンサＳで共有される特別な変数ｚは、１，．．．，ａのうち一個の値を保持する。
【００４３】
センサＳは、外部からｂ個の物理量ｉ１，．．．，ｉｂを受け取る。センサＳ、コントローラＣには、それぞれ入力と現在の状態から次の状態を計算するプログラムＰＳ，ＰＣが関連付けられている。また、ｉ１，．．．，ｉｂが満たすべき条件Ｉ（ｉ１，．．．，ｉｂ）が指定されている。ここで、図３は、Ｓｅｎｓｅ−Ｔｈｉｎｋ−Ａｃｔループモデルにおける処理の一例を示すフローチャートである。
【００４４】
図３に示すように、ハイブリッドシステムＨは、各単位時刻に以下の処理ＳＡ−１〜ＳＡ−５（Ｓｅｎｓｅ−Ｔｈｉｎｋ−Ａｃｔループ）を順番に繰り返しながら動作することを仮定する。
【００４５】
すなわち、まず、センサＳは、入力ｉ１，．．．，ｉｂとプラントＰの物理量ｙ１，．．．，ｙｎとプログラムＰＳとに従って、コントローラＣの状態変数ｘ１，．．．，ｘｍを更新する（ステップＳＡ−１：Ｓｅｎｓｅ）。ここで、ｉ１，．．．，ｉｂは、Ｉ（ｉ１，．．．，ｉｂ）を満たす値である。
【００４６】
そして、コントローラＣは、更新された状態変数ｘ１，．．．，ｘｍとプログラムＰＣに従って、自らの状態変数ｘ１，．．．，ｘｍ，変数ｚを更新する（ステップＳＡ−２：Ｔｈｉｎｋ）。ただし、ｚは、１，．．．，ａのうち一個の値を保持する。
【００４７】
そして、プラントＰは、次の単位時間ｔ＋１の間（ステップＳＡ−３）、微分方程式Ｍ［ｚ］に従って、物理量ｙ１，．．．，ｙｎを更新しながら動作する（ステップＳＡ−４：Ａｃｔ）。
【００４８】
そして、所定の条件を満たさない限り（ステップＳＡ−５，Ｎｏ）、ハイブリッドシステムＨは、上述の処理ＳＡ−１〜ＳＡ−５（Ｓｅｎｓｅ−Ｔｈｉｎｋ−Ａｃｔループ）を繰り返す。
【００４９】
このような仮定は、すべてのハイブリッドシステムについて当てはまるわけではないが、産業界でよく用いられる典型的なハイブリッドシステムを広く扱うことができる。なお、この仮定に当てはまらない形で記述されたハイブリッドシステムであっても、この仮定を満たすように変換することが可能である。
【００５０】
このように、制御入力値生成装置１００は、センサＳ・コントローラＣ・プラントＰに分けてハイブリッドシステムを記述したモデルをモデル記憶部１０６ａに保持することにより、プログラム論理で扱いやすくなり、以下に示すように、入力生成問題を好適に解くことができるようになる。
【００５１】
［制御入力値生成処理］
つづいて、本実施の形態における制御入力値生成装置１００の制御入力値生成処理の一例について、図４を参照して説明する。図４は、本実施の形態における制御入力値生成装置１００の制御入力値生成処理の一例を示すフローチャートである。
【００５２】
ここで、制御入力値生成装置１００のモデル記憶部１０６ａには、上述のように、センサＳ（ｉ１，．．．，ｉｂ），コントローラＣ，プラントＰからなるハイブリッドシステムＨのモデルが予め入力され保持されている。
【００５３】
ここで、離散変数に関するシステム全体の事前条件を、初期条件Ｐ１（ｘ１，．．．，ｘｍ）とし、離散変数に関するシステム全体の事後条件を、終了条件Ｐ２（ｘ１，．．．，ｘｍ）とする。また、物理量に関するシステム全体の事前条件を、初期条件Ｑ１（ｙ１，．．．，ｙｎ）とし、物理量に関するシステム全体の事後条件を、終了条件Ｑ２（ｙ１，．．．，ｙｎ）とする。終了条件を満たす時刻を時刻Ｔとする。
【００５４】
求める出力は、ハイブリッドシステムＨを、時刻ＴにおいてＰ２，Ｑ２を満たすように動作させる、各単位時刻における入力値である。この入力値を求めるため、一例として、制御入力値生成装置１００は、以下の処理を行う。
【００５５】
図４に示すように、まず、事後条件演算部１０２ａは、時刻ｔ：＝０、離散変数に関する事後条件Ｒ［０］：＝Ｐ１（離散変数の初期条件）、物理量に関する事後条件Ｓ［０］：＝Ｑ１（物理量の初期条件）に設定する（ステップＳＢ−１）。
【００５６】
そして、事後条件演算部１０２ａは、ｔ＜Ｔの間、初期条件Ｐ１，Ｑ１から順番に、各時刻ｔにおいて満たされる事後条件の演算処理（ステップＳＢ−３〜ＳＢ−５）を行う（ステップＳＢ−２）。
【００５７】
すなわち、事後条件演算部１０２ａは、事後条件Ｒ［ｔ］、条件Ｉ、プログラムＰＳとプログラムＰＣを順次実行することに等価なプログラムＰＳ；ＰＣに基づいて、プログラム論理により、離散変数に関する事後条件Ｒ［ｔ＋１］：＝Ｐｏｓｔ（Ｒ［ｔ］  ＆＆  Ｉ（ｉ１［ｔ］，．．．，ｉｂ［ｔ］），ＰＳ；ＰＣ）を求める（ステップＳＢ−３）。条件の記述方式として論理式が使用される場合、事後条件演算部１０２ａは、Ｐｏｓｔを効率よく計算できることが知られている。論理式以外の場合でも効率よくＰｏｓｔを計算できる記述方式が知られており、適用する技術領域に応じて任意に記述方式を選択することが可能である。
【００５８】
そして、事後条件演算部１０２ａは、物理量に関する事後条件Ｓ［ｔ＋１］：＝ＰｏｓｔＯＤＥ（Ｒ［ｔ］  ＆＆  Ｓ［ｔ］  ＆＆  ｚ＝１，Ｍ［１］）  ｏｒ  ．．．  ｏｒ  ＰｏｓｔＯＤＥ（Ｒ［ｔ］  ＆＆  Ｓ［ｔ］  ＆＆  ｚ＝ａ，Ｍ［ａ］）を求める。ここで、Ｘ  ｏｒ  Ｙは、ＸとＹのいずれか一方を満たすことに相当する条件を表す。これは、条件の記述方式として論理式を用いた場合は、論理和に対応する。また、ＰｏｓｔＯＤＥ（Ｘ，Ｍ）は、条件Ｘを満たす物理量が微分方程式Ｍに従って単位時間動作した場合に満たされる条件を表す。論理式を用いて条件が記述される場合、事後条件演算部１０２ａは、公知の手法により、効率よく事後条件ＰｏｓｔＯＤＥを求めることができる。なお、論理式以外にも、効率よくＰｏｓｔやＰｒｅを計算できる記述方式が知られているので、事後条件演算部１０２ａや事前条件演算部１０２ｂは、適用する技術領域に応じて、論理式以外にも記述方式を選択することが可能である。
【００５９】
そして、事後条件演算部１０２ａは、ｔ：＝ｔ＋１として、時刻ｔをインクリメントする（ステップＳＢ−５）。
【００６０】
以上のように、事後条件演算部１０２ａは、ｔ＝Ｔに至るまで、初期条件Ｐ１，Ｑ１から時間順に、プログラム論理を用いて、システムＨの各時刻ｔにおける事後条件を繰り返し演算する（ステップＳＢ−６）。このようにＰｏｓｔとＰｏｓｔＯＤＥを用いて求めた事後条件の系列は、以降のステップＳＢ−８〜ＳＢ−１２の事前条件の演算処理において、終了条件Ｐ２，Ｑ２から順番に各時刻における事前条件を求める際に、求めた事後条件と矛盾しないことをチェックするために用いられる。このように、予め事後条件を求めておくことで、求める入力が存在しない場合に、早くその旨を示して、探索範囲から外すことができる。
【００６１】
つづいて、事前条件演算部１０２ｂは、時刻ｔ：＝Ｔ、離散変数に関する事前条件Ｕ［Ｔ］：＝Ｐ２（離散変数の終了条件）、物理量に関する事前条件Ｖ［Ｔ］：＝Ｑ２（物理量の終了条件）に設定する（ステップＳＢ−７）。
【００６２】
そして、事前条件演算部１０２ｂは、ｔ≧０の間、終了条件Ｐ２，Ｑ２から時間逆順に、各時刻ｔにおいて満たされる事前条件の演算処理（ステップＳＢ−９〜ＳＢ−１１）を行う（ステップＳＢ−８）。
【００６３】
すなわち、事前条件演算部１０２ｂは、プログラムＰＳ；ＰＣ、事前条件Ｕ［ｔ］、事後条件Ｒ［ｔ−１］に基づいて、プログラム論理により、離散変数に関する事前条件Ｕ［ｔ−１］：＝Ｐｒｅ（ＰＳ；ＰＣ，Ｕ［ｔ］，Ｒ［ｔ−１］）を求める（ステップＳＢ−９）。条件の記述方式として論理式が使用される場合、事前条件演算部１０２ｂは、Ｐｒｅを効率よく計算できることが知られている。論理式以外の場合でも効率よくＰｒｅを計算できる記述方式が知られており、適用する技術領域に応じて任意に記述方式を選択することが可能である。
【００６４】
そして、事前条件演算部１０２ｂは、以下の式を用いて物理量の事前条件Ｖ［ｔ−１］を求める（ステップＳＢ−１０）。
Ｖ［ｔ−１］：＝ＰｒｅＯＤＥ（Ｍ［１］，Ｕ［ｔ］  ＆＆  Ｖ［ｔ］）  ａｎｄ
．．．
ａｎｄ  ＰｒｅＯＤＥ（Ｍ［ａ］，Ｕ［ｔ］  ＆＆  Ｖ［ｔ］）
【００６５】
ここで、Ｘ  ａｎｄ  Ｙは、ＸとＹの両方を満たすことに相当する条件を表す。これは、条件の記述方式として論理式を用いた場合は、論理積に対応する。また、ＰｒｅＯＤＥ（Ｍ，Ｘ）は、Ｙを満たす物理量がＭにしたがって単位時間動作した後にＸを満たすような条件Ｙを表す。論理式を用いて条件が記述される場合、事前条件演算部１０２ｂは、公知の手法により、効率よく事前条件ＰｒｅＯＤＥを求めることができる。
【００６６】
なお、事前条件演算部１０２ｂは、各時刻ｔにおけるＵ［ｔ］、Ｖ［ｔ］を幾つかの小さい条件の和集合として表現してもよい（例えば、条件の記述方式として論理式を用いる場合は、論理式を和積標準形（ｄｉｓｊｕｎｃｔｉｖｅ  ｎｏｒｍａｌ  ｆｏｒｍ）として表現してもよい）。その場合、事前条件演算部１０２ｂは、ステップＳＢ−９，１０において、それぞれの小さい条件Ｘについて、Ｐｒｅ（ＰＳ；ＰＣ，Ｘ，Ｒ［ｔ−１］）やＰｒｅＯＤＥ（Ｍ［ｉ］，Ｘ）を求めることで、より効率的に事前条件を求めることができる。この場合，事前条件演算部１０２ｂは、条件がＲ［ｔ−１］に矛盾するなどの理由で空となった場合は、その条件を探索範囲から外すことができる。後述する実験においては、この探索範囲の削減が規模の大きい入力生成問題に不可欠であることが確認された。
【００６７】
そして、事前条件演算部１０２ｂは、ｔ：＝ｔ−１として、時刻ｔをデクリメントする（ステップＳＢ−１１）。
【００６８】
以上のように、事前条件演算部１０２ａは、ｔ＝０に至るまで、終了条件Ｐ２，Ｑ２から時間逆順に、プログラム論理を用いて、システムＨの各時刻ｔにおける事前条件を繰り返し演算する（ステップＳＢ−１２）。このように、事前条件演算部１０２ｂは、終了条件Ｐ２，Ｑ２から順番に各時刻における事前条件を求める際に、事後条件演算部１０２ａにより演算された事後条件を利用して、事前条件の探索範囲を効率よく限定して事前条件を演算する。
【００６９】
つづいて、入力列取得部１０２ｃは、ｔ＝０に設定して、ｔ＜Ｔの間、事前条件演算部１０２ｂにより演算された事前条件から、各時刻ｔにおける制御入力値ｉを繰り返し抽出する処理（ステップＳＢ−１４，ＳＢ−１５）を行うことにより、初期条件から終了条件に至るような制御入力値ｉの入力列ｉ［１，．．．，Ｔ−１］を取得する処理を開始する（ステップＳＢ−１３）。
【００７０】
すなわち、入力列取得部１０２ｃは、（ｉ１［ｔ］，．．．，ｉｂ［ｔ］）：＝Ｐｉｃｋ（Ｖ［ｔ］）として、時刻ｔの物理量の事前条件Ｖ［ｔ］から入力列を見つける処理を行う（ステップＳＢ−１４）。ここで、Ｐｉｃｋ（Ｘ）は、Ｘを満たすようなｉ１，．．．，ｉｂを一つ見つける手続きである。なお、論理式を用いて条件が記述される場合は、入力列取得部１０２ｃは、公知の手法により、効率よくＰｉｃｋ（Ｘ）を求めることができる。
【００７１】
そして、入力列取得部１０２ｃは、ｔ：＝ｔ＋１として時刻ｔをインクリメントして、ｔ＝Ｔに至るまで、上述のステップＳＢ−１４の処理を繰り返し、ｔ＝Ｔに至ると入力列の抽出処理を終える（ステップＳＢ―１６）。
【００７２】
そして、入力列取得部１０２ｃは、求めた各単位時刻における入力値の系列（（ｉ１［１］，．．．，ｉｂ［１］），．．．，（ｉ１［Ｔ−１］，．．．，ｉｂ［Ｔ−１］））を返す（ステップＳＢ−１７）。
【００７３】
以上が、制御入力値生成装置１００における制御入力値生成処理の一例である。なお、上述したステップＳＢ−４とＳＢ−１０において、ｏｒとａｎｄの計算はできるだけ正確であることが望ましいが、条件のサイズが大きいなど実行効率に悪影響を与える問題がある場合は、ステップＳＢ−４においてはより弱い条件を、ステップＳＢ−１０においてはより強い条件を用いることができる。この場合、条件のメモリ上でのサイズに関するしきい値を定めておき、条件のサイズがそのしきい値を超えた場合に条件の弱化や強化を行う等の手法を採用してもよい。このしきい値は、本実施形態を適用する問題領域に応じて適宜調整する。
【００７４】
ここで、制御入力値生成装置１００は、以上のように求めた制御入力値の系列を、実際にハイブリッドシステムのセンサＳに時刻ｔに応じて入力することで、理論上求めた制御入力値が実際に機能するか確かめることができる。ここで、上述した例１を簡略化した例２について、求めた制御入力値を適用した際の動作を示す。ここで、図５は、例２で用いた制御モデルを模式的に示した図である。
【００７５】
図５に示すように、例２では、速度ｖで走行する自動車をモデル化している。変数ｖは、自動車の速度を表す。上述の例１とセンサＳ、プラントＰ、コントローラＣの内容を変更している。このモデルにおいて、以下の条件で制御入力値生成処理を行った。
初期条件：ｃｎｔ＝０，  −０．１＜＝ｖ＜＝０．１
終了条件：ｔｒｕｅ，  １．５＜＝ｖ＜＝２
【００７６】
上述したステップＳＢ−１〜ＳＢ−６の処理により、各時刻ｔにおける事後条件が求まる。Ｒ［０］，Ｓ［０］，Ｒ［１］，Ｒ［１］を例示すると以下となる。
Ｒ［０］＝  ｃｎｔ＝０
Ｓ［０］＝  ０＜＝ｖ＜＝１
Ｒ［１］＝  （ｃｎｔ＝０  ｜｜  ｃｎｔ＝１）  ＆＆  ｚ＝Ａｃｌ
Ｓ［１］＝  １＜＝ｖ＜＝１．５
【００７７】
同様の手続きを繰り返すことで、ｔ＝２の場合が以下のように求まる。
Ｒ［２］＝  （ｃｎｔ＝０  ｜｜  ｃｎｔ＝１  ｜｜  ｃｎｔ＝２  ｜｜  ｃｎｔ＝３）
Ｖ［２］＝  （１＜＝ｖ＜＝１．５  ｜｜  １．７５＜＝ｖ＜＝１．８７５）
【００７８】
次に、上述したステップＳＢ−７〜ＳＢ−１２の処理により、各時刻ｔにおける事前条件が以下のように求まる。
Ｕ［３］  ＝  ｔｒｕｅ
Ｓ［３］  ＝  １．５＜＝ｖ＜＝２
【００７９】
ＰＳ；ＰＣと各微分方程式に基づく事前条件は、以下の条件１〜３の論理和として表される。
条件１．  ｃｎｔ＜１  ＆＆  １＜＝ｖ＜＝２
条件２．  １＜＝ｖ＜＝１．２
条件３．  ｃｎｔ＞＝１  ＆＆  ２＜＝ｖ＜＝２．５
【００８０】
ここで、条件１〜３の論理和は、条件Ｕ［２］，Ｖ［２］の条件を用いることで、以下のように限定される。
条件１：  ｃｎｔ＝０  ＆＆  （１＜＝ｖ＜＝１．５  ｜｜  １．７５＜＝ｖ＜＝１．８７５）
条件２：  （ｃｎｔ＝０  ｜｜  ｃｎｔ＝１  ｜｜  ｃｎｔ＝２  ｜｜  ｃｎｔ＝３）  ＆＆  １＜＝ｖ＜＝１．２
条件３：  ｆａｌｓｅ
【００８１】
条件１の範囲が限定され、条件３が空集合となり予め求めた事後条件によって探索空間から外すことができる。
【００８２】
［実験結果］
本実施形態のアルゴリズムを計算機で動作するソフトウェアとして実装し、例１の問題を含むいくつかのモデルに適用した。その結果が、以下の表に示される実験結果を得た。
【表１】
2015194917.tif 000003
【００８３】
上の表は、例１に対して時間を１０，２０，３０，１００，１０００とした際の実行時間を表している。アルゴリズムの実行時間は、ｒａｎｄｏｍと１列目に書いてある２つの行であり、２列目にｏｎと書いてある行は、上述した条件の弱化を行った実験結果、そうでない行は、条件の弱化を行っていない実験結果である。いずれの場合でも本実施形態の有利な効果が実証されたが、Ｔ＝１０００において、後者ではタイムアウトする場合でも、前者では実行できており、条件の弱化を行うことによって制御入力値をより一層的確に求められることが確かめられた。
【００８４】
以上が、本実施の形態の説明を終える。
【００８５】
［他の実施の形態］
さて、これまで本発明の実施の形態について説明したが、本発明は、上述した実施の形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施の形態にて実施されてよいものである。
【００８６】
また、制御入力値生成装置１００がスタンドアローンの形態で処理を行う場合を一例に説明したが、制御入力値生成装置１００は、クライアント端末からの要求に応じて処理を行い、その処理結果を当該クライアント端末に返却するようにしてもよい。
【００８７】
また、実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【００８８】
このほか、上記文献中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【００８９】
また、制御入力値生成装置１００に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【００９０】
例えば、制御入力値生成装置１００の各装置が備える処理機能、特に制御部１０２にて行われる各処理機能については、その全部または任意の一部を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）および当該ＣＰＵにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。なお、プログラムは、後述する記録媒体に記録されており、必要に応じて制御入力値生成装置１００に機械的に読み取られる。すなわち、ＲＯＭまたはＨＤＤなどの記憶部１０６などには、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）として協働してＣＰＵに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、ＲＡＭにロードされることによって実行され、ＣＰＵと協働して制御部を構成する。
【００９１】
また、このコンピュータプログラムは、制御入力値生成装置１００に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【００９２】
また、本発明に係るプログラムを、コンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、ＵＳＢメモリ、ＳＤカード、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、および、Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃ等の任意の「可搬用の物理媒体」を含むものとする。
【００９３】
また、「プログラム」とは、任意の言語や記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施の形態に示した各装置において記録媒体を読み取るための具体的な構成、読み取り手順、あるいは、読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【００９４】
記憶部１０６に格納される各種のデータベース等（モデル記憶部１０６ａ等）は、ＲＡＭ、ＲＯＭ等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【００９５】
また、制御入力値生成装置１００は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置として構成してもよく、また、該情報処理装置に任意の周辺装置を接続して構成してもよい。また、制御入力値生成装置１００は、該情報処理装置に本発明の方法を実現させるソフトウェア（プログラム、データ等を含む）を実装することにより実現してもよい。
【００９６】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じて、または、機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施の形態を任意に組み合わせて実施してもよく、実施の形態を選択的に実施してもよい。
【産業上の利用可能性】
【００９７】
以上詳述に説明したように、本発明によれば、デジタルコントローラの離散的な挙動が支配的な物理情報システムであっても、与えられた初期条件と終了条件を満たすような制御入力値を生成することができる、制御入力値生成装置、制御入力値生成方法、および、プログラムを提供することができ、様々な分野において極めて有用である。例えば、物理情報システムの応用分野は、自動車産業、航空機産業、宇宙産業など多岐にわたっているので、これら物理情報システムの設計・品質向上において、設計したシステムが望ましい振る舞いを行うための制御入力値生成は、非常に大きなニーズを持つ。例えば、差分開発されたシステム（一部のユニットのみ変更）について、変更後のシステム全体での振る舞いを確認するために、変更したユニットにうまく影響を及ぼすようなテスト入力を生成するといった利用例が考えられる。本発明の利用価値は、単なる制御入力値生成にとどまらず、期待しないエラーなどの挙動を実現する制御入力値を得ることでシステム設計にフィードバックするなど、幅広い用途が期待できる。
【００９８】
上述したモデル例１やモデル例２のような形の入力生成問題は、広い産業上の利用可能性を持つ。その一つとして、上記のシステムのテストが挙げられる。これは、システムが意図通りに動作することを確認するために、様々な入力を用いて実機もしくはシミュレーションによりシステムを動作させる手法である。このとき、確認したいシステムの状態を初期条件・終了条件として記述した上で、本実施形態を適用することにより、テストに用いる入力を効率よく求めることが可能となる。また、本発明によれば、産業界でよく見られる時間割り込みシステムなどに対して比較的大きな例を数分のオーダーで解くことが可能であり、その利用価値は非常に高い。
【符号の説明】
【００９９】
１００  制御入力値生成装置
１０２  制御部
１０２ａ  事後条件演算部
１０２ｂ  事前条件演算部
１０２ｃ  入力列取得部
１０６  記憶部
１０６ａ  モデル記憶部
１０８  入出力制御インターフェース部
Ｃ  コントローラ
Ｓ  センサ
Ｐ  プラント
【図１】
2015194917.tif 000004
【図２】
2015194917.tif 000005
【図３】
2015194917.tif 000006
【図４】
2015194917.tif 000007
【図５】
2015194917.tif 000008