(57)【要約】  可制御性を有する離散時間状態空間モデルを推定することができるモデル推定システムを提供する。本発明のモデル推定システムは、全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムのモデルを推定する。モデル式構築手段２２は、その常微分方程式の階数と、そのシステムにおける過去の複数の時刻における入力データおよび状態とが入力されたときに、その階数に応じた行列であって一部の要素のみを未知の要素とする第１の行列と、その階数に応じた行列であって一部の要素のみを未知の要素とする第２の行列とを用いて、モデルを表す式を構築する。モデル推定手段２３は、過去の複数の時刻における入力データおよび状態を用いて、その式における第１の行列の未知の要素および第２の行列の未知の要素を学習することによって、モデルを推定する。
2018150798.tif 000002
【特許請求の範囲】
【請求項１】
全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムのモデルを推定するモデル推定システムであって、
前記常微分方程式の階数と、前記システムにおける過去の複数の時刻における入力データおよび状態とが入力されたときに、前記階数に応じた行列であって一部の要素のみを未知の要素とする第１の行列と、前記階数に応じた行列であって一部の要素のみを未知の要素とする第２の行列とを用いて、１つの時刻における前記システムの入力データおよび状態から、次の時刻における前記システムの状態を予測するためのモデルを表す式を構築するモデル式構築手段と、
前記過去の複数の時刻における入力データおよび状態を用いて、前記式における第１の行列の未知の要素および第２の行列の未知の要素を学習することによって、前記モデルを推定するモデル推定手段とを備える
ことを特徴とするモデル推定システム。
【請求項２】
モデル式構築手段は、
常微分方程式の階数をｎとし、時刻ｋにおけるシステムへの入力データをｕｋとし、時刻ｋにおける前記システムの状態を［ｙｋ，ｙｋ（１），・・・，ｙｋ（ｎ）］Ｔ（ただし、上付きの括弧書きは、微分階数を示す。）とし、時刻ｋの次の時刻ｋ＋１における前記システムの状態を［ｙｋ＋１，ｙｋ＋１（１），・・・，ｙｋ＋１（ｎ）］Ｔとし、１つの時刻から次の時刻までの時間をΔｔとして、ｂ０〜ｂｎ−１およびｃｎを未知の要素とする式（１６）で表される式を構築し、
モデル推定手段は、
前記システムにおける過去の複数の時刻における入力データおよび状態を用いて、前記式におけるｂ０〜ｂｎ−１およびｃｎを推定する
請求項１に記載のモデル推定システム。
【数６】
2018150798.tif 000008
【請求項３】
全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムのモデルを推定するモデル推定方法であって、
コンピュータが、
前記常微分方程式の階数と、前記システムにおける過去の複数の時刻における入力データおよび状態とが入力されたときに、前記階数に応じた行列であって一部の要素のみを未知の要素とする第１の行列と、前記階数に応じた行列であって一部の要素のみを未知の要素とする第２の行列とを用いて、１つの時刻における前記システムの入力データおよび状態から、次の時刻における前記システムの状態を予測するためのモデルを表す式を構築し、
前記過去の複数の時刻における入力データおよび状態を用いて、前記式における第１の行列の未知の要素および第２の行列の未知の要素を学習することによって、前記モデルを推定する
ことを特徴とするモデル推定方法。
【請求項４】
コンピュータが、
常微分方程式の階数をｎとし、時刻ｋにおけるシステムへの入力データをｕｋとし、時刻ｋにおける前記システムの状態を［ｙｋ，ｙｋ（１），・・・，ｙｋ（ｎ）］Ｔ（ただし、上付きの括弧書きは、微分階数を示す。）とし、時刻ｋの次の時刻ｋ＋１における前記システムの状態を［ｙｋ＋１，ｙｋ＋１（１），・・・，ｙｋ＋１（ｎ）］Ｔとし、１つの時刻から次の時刻までの時間をΔｔとして、ｂ０〜ｂｎ−１およびｃｎを未知の要素とする式（１７）で表される式を構築し、
前記システムにおける過去の複数の時刻における入力データおよび状態を用いて、前記式におけるｂ０〜ｂｎ−１およびｃｎを推定する
請求項３に記載のモデル推定方法。
【数７】
2018150798.tif 000009
【請求項５】
全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムのモデルをコンピュータに推定させるためのモデル推定プログラムであって、
前記コンピュータに、
前記常微分方程式の階数と、前記システムにおける過去の複数の時刻における入力データおよび状態とが入力されたときに、前記階数に応じた行列であって一部の要素のみを未知の要素とする第１の行列と、前記階数に応じた行列であって一部の要素のみを未知の要素とする第２の行列とを用いて、１つの時刻における前記システムの入力データおよび状態から、次の時刻における前記システムの状態を予測するためのモデルを表す式を構築するモデル式構築処理、および、
前記過去の複数の時刻における入力データおよび状態を用いて、前記式における第１の行列の未知の要素および第２の行列の未知の要素を学習することによって、前記モデルを推定するモデル推定処理
を実行させるためのモデル推定プログラム。
【請求項６】
コンピュータに、
モデル式構築処理で、
常微分方程式の階数をｎとし、時刻ｋにおけるシステムへの入力データをｕｋとし、時刻ｋにおける前記システムの状態を［ｙｋ，ｙｋ（１），・・・，ｙｋ（ｎ）］Ｔ（ただし、上付きの括弧書きは、微分階数を示す。）とし、時刻ｋの次の時刻ｋ＋１における前記システムの状態を［ｙｋ＋１，ｙｋ＋１（１），・・・，ｙｋ＋１（ｎ）］Ｔとし、１つの時刻から次の時刻までの時間をΔｔとして、ｂ０〜ｂｎ−１およびｃｎを未知の要素とする式（１８）で表される式を構築させ、
モデル推定処理で、
前記システムにおける過去の複数の時刻における入力データおよび状態を用いて、前記式におけるｂ０〜ｂｎ−１およびｃｎを推定させる
請求項５に記載のモデル推定プログラム。
【数８】
2018150798.tif 000010
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムのモデルを推定するモデル推定システム、モデル推定方法およびモデル推定プログラムに関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet of Things）やＭ２Ｍ（Machine to Machine）等の物理システムの情報収集基盤の進歩により、物理システムの制御の重要性が高まっている。しかし、複雑な物理システムのモデル化（換言すれば、物理システムのモデルの推定）は、専門家にとっても困難である。【０００３】
物理システムのような動的システムは、状態空間モデルで記述できる。物理システムから得られた計測データを用いて、状態空間モデルを推定する技術として、システム同定がある。【０００４】
また、状態空間モデルは、線形制御の最適化手法を適用可能であるという利点を有する。【０００５】
以下の説明では、システムのモデルが、離散時間状態空間モデルである場合について説明する。なお、システムのモデルの種類として、離散時間線形パラメータ可変モデルもある。【０００６】
離散時間状態空間モデルは、時刻の間隔を一定として、ある時刻のシステムの状態から、次の時刻のシステムの状態を計算することができるモデルである。【０００７】
モデル化の対象となる物理システムを対象システムと記す。対象システムを離散時間状態空間モデルでモデル化する場合、対象システムの入力データおよび出力データが得られていれば、対象システムをモデル化することができる。【０００８】
離散時間状態空間モデルは、以下に示す式（１）のように表される。【０００９】
【数１】
2018150798.tif 000003
【００１０】
式（１）において、ｕは、対象システムへの入力データを表す変数であり、ｙは、対象システムからの出力データを表す変数である。また、ｘは、対象システムの状態を表す状態変数である。ｗは、状態の予測誤差を表す変数であり、ｖは、出力データの予測誤差を表す変数である。ｕ，ｙ，ｘ，ｗ，ｖに添え字として付した“ｋ”や“ｋ＋１”は時刻を表す。例えば、ｕｋは、時刻ｋにおける入力データである。【００１１】
また、特許文献１には、目的関数を最小にするパラメータを求めることによって、パラメータを同定することが記載されている。【００１２】
また、特許文献２には、システムがｎ次微分方程式で表され、そのｎ次微分方程式のパラメータが未知の場合に、そのパラメータを同定することが記載されている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１３−２４２６１４号公報
【特許文献２】特開平９−８１２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
一般に、対象システムを離散時間状態空間モデルでモデル化する場合、その離散時間状態空間モデルによって対象システムの挙動を正確に予測できるかどうか（予測精度）に着目していた。しかし、一般に、対象システムを離散時間状態空間モデルでモデル化する場合、モデル化によって得られる離散時間状態空間モデルが可制御性を有するか否かについては考慮されていなかった。可制御性とは、任意の初期状態と目的とする状態とが与えられたときに、その初期状態から目的とする状態に遷移させることができることである。【００１５】
上記のように、一般に、対象システムのモデル化の際には、得られる離散時間状態空間モデルが可制御性を有するか否かについては考慮されていなかった。そのため、対象システムをモデル化することによって得られる離散時間状態空間モデルが可制御性を有さない場合があった。離散時間状態空間モデルが可制御性を有さない場合には、その離散時間状態空間モデルに基づいた対象システムの制御を行えないことも生じ得る。【００１６】
そこで、本発明は、可制御性を有する離散時間状態空間モデルを推定することができるモデル推定システム、モデル推定方法およびモデル推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明によるモデル推定システムは、全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムのモデルを推定するモデル推定システムであって、その常微分方程式の階数と、そのシステムにおける過去の複数の時刻における入力データおよび状態とが入力されたときに、その階数に応じた行列であって一部の要素のみを未知の要素とする第１の行列と、その階数に応じた行列であって一部の要素のみを未知の要素とする第２の行列とを用いて、１つの時刻におけるそのシステムの入力データおよび状態から、次の時刻におけるそのシステムの状態を予測するためのモデルを表す式を構築するモデル式構築手段と、過去の複数の時刻における入力データおよび状態を用いて、その式における第１の行列の未知の要素および第２の行列の未知の要素を学習することによって、モデルを推定するモデル推定手段とを備えることを特徴とする。【００１８】
また、本発明によるモデル推定方法は、全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムのモデルを推定するモデル推定方法であって、コンピュータが、その常微分方程式の階数と、そのシステムにおける過去の複数の時刻における入力データおよび状態とが入力されたときに、その階数に応じた行列であって一部の要素のみを未知の要素とする第１の行列と、その階数に応じた行列であって一部の要素のみを未知の要素とする第２の行列とを用いて、１つの時刻におけるそのシステムの入力データおよび状態から、次の時刻におけるそのシステムの状態を予測するためのモデルを表す式を構築し、過去の複数の時刻における入力データおよび状態を用いて、その式における第１の行列の未知の要素および第２の行列の未知の要素を学習することによって、モデルを推定することを特徴とする。【００１９】
また、本発明によるモデル推定プログラムは、全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムのモデルをコンピュータに推定させるためのモデル推定プログラムであって、コンピュータに、その常微分方程式の階数と、そのシステムにおける過去の複数の時刻における入力データおよび状態とが入力されたときに、その階数に応じた行列であって一部の要素のみを未知の要素とする第１の行列と、その階数に応じた行列であって一部の要素のみを未知の要素とする第２の行列とを用いて、１つの時刻におけるそのシステムの入力データおよび状態から、次の時刻におけるそのシステムの状態を予測するためのモデルを表す式を構築するモデル式構築処理、および、過去の複数の時刻における入力データおよび状態を用いて、その式における第１の行列の未知の要素および第２の行列の未知の要素を学習することによって、モデルを推定するモデル推定処理を実行させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、可制御性を有する離散時間状態空間モデルを推定することができる。
【図面の簡単な説明】
【００２１】
【図１】対象システムの一例を示す模式図である。
【図２】式（１０）に示す離散時間状態空間モデルの可制御行列の形式を示す模式図である。
【図３】本発明のモデル推定システムの構成例を示すブロック図である。
【図４】本発明の処理経過の例を示すフローチャートである。
【図５】本発明の実施形態に係るコンピュータの構成例を示す概略ブロック図である。
【図６】本発明のモデル推定システムの概要を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下の説明では、最初に、本発明の発明者（以下、単に発明者と記す。）が見出した知見について説明し、その上で、本発明の実施形態を説明する。
【００２３】
また、以下の説明では、対象システム（モデル化の対象となる物理システム）の状態が、複数の観測量を並べたものであるものとする。具体的には、対象システムの状態が、ある観測量（ｙとする。）と、ｙの１階微分からｙのｎ階微分までを並べたものであるものとする。すなわち、時刻ｋにおける対象システムの状態ｘｋは、以下に示す式（２）で表されるものとする。
【００２４】
ｘｋ＝［ｙｋ，ｙｋ（１），・・・，ｙｋ（ｎ）］Ｔ          ・・・（２）
【００２５】
ただし、上付きの括弧書きは、微分階数を示している。この点は、後述する他の式でも同様である。また、Ｔは、転置を表している。
【００２６】
また、観測量ｙだけでなく、観測量ｙの１階微分からｎ階微分までのそれぞれの値も観測可能であるものとする。このことは、式（２）で表される状態ｘｋを、出力データとして扱えることを意味する。状態を出力データとして扱える場合には、離散時間状態空間モデルを表す式（１）において、ｙｋ＝Ｃｘｋ＋ｖｋを無視できる。すなわち、対象システムの状態が、観測量ｙと、ｙの１階微分からｙのｎ階微分までを並べたものであり、その状態を出力データとして扱う場合には、離散時間状態空間モデルは、以下に示す式（３）で表される。
【００２７】
ｘｋ＋１＝Ａｘｋ＋Ｂｕｋ＋ｗｋ          ・・・（３）
【００２８】
式（３）は、式（１）において、ｙｋ＝Ｃｘｋ＋ｖｋを無視したものである。また、Ａ，Ｂは、それぞれ行列である。
【００２９】
また、発明者は、対象システムの一例として、図１に示すシステムを考えた。図１に示すシステムにおいて、物体１は、並列に並ぶばね２およびダンパ３によって、壁４に接続されている。物体１の質量をｍとする。ばね２のばね定数をｈとする。ダンパ３の減衰係数をｂとする。物体１にかかる力をｕとする。また、物体１の位置を観測量ｙとする。このとき、ｙの１階微分は、物体１の速度であり、ｙの２階微分は、物体１の加速度である。位置、速度および加速度は、いずれも観測可能である。そして、図１に示すシステムの状態を、位置、速度および加速度の組み合わせで表すものとする。図１に示すシステムは、式（４）に示す式で表すことができる。
【００３０】
ｍｙ（ｔ）（２）＋ｂｙ（ｔ）（１）＋ｈｙ（ｔ）＝ｕ（ｔ）        ・・・（４）
【００３１】
ただし、ｍ，ｂ，ｈがいずれも０ではないことは既知であるとする。また、ｍ，ｂ，ｈそれぞれの値そのものは、未知であるものとする。
【００３２】
式（４）におけるｔは連続時間における時刻を表す。式（４）における時刻を離散化すると、式（５）のように表すことができる。
【００３３】
ｍｙｋ＋１（２）＝−ｈｙｋ−ｂｙｋ（１）＋ｕｋ          ・・・（５）
【００３４】
式（４）は、２階微分方程式である。この場合、式（３）における行列Ａを３行３列の行列とし、式（３）における行列Ｂを３行１列の行列として、図１に示すシステムの離散時間状態空間モデルは、式（６）のように表すことができる。
【００３５】
ｘｋ＋１＝Ａｘｋ＋Ｂｕｋ          ・・・（６）
【００３６】
ただし、式（６）では、状態の予測誤差ｗｋがない理想的な場合を示している。
【００３７】
図１に示すシステムから観測される各時刻の状態および入力データを用いた機械学習（例えば、回帰分析）によって、式（６）の行列Ａ，Ｂの全ての要素を推定することによって、図１に示すシステムの離散時間状態空間モデルを推定することができる。そして、気概学習によって得た離散時間状態空間モデルによって、ある時刻の状態および入力データから、次の時刻の状態を求めることができる。
【００３８】
ここで、発明者は、行列Ａ，Ｂの全ての要素を推定するのではなく、行列Ａ，Ｂそれぞれを、一部の要素のみが未知である行列として表し、その一部の要素のみを機械学習で推定することを検討した。その結果、発明者は、式（６）を以下に示す式（７）で表せることを見出した。すなわち、発明者は、行列Ａの要素、および、行列Ｂの要素のうち、一部の要素のみを未知として、他の要素については、機械学習を実行する前の時点で決定できることを見出した。
【００３９】
【数２】
2018150798.tif 000004
【００４０】
式（７）において、Δｔは、１つの時刻から次の時刻までの時間を示す定数である。
【００４１】
また、行列の行を上から数えた場合の番号をｉで表すこととする。
【００４２】
行列Ａでは、ｉ＝３以外の各行では、左からｉ番目の要素を１とし、左からｉ＋１番目の要素をΔｔとし、残りの要素を０とすることができる。また、最後の行（ｉ＝３となる行）では、左から１番目の要素を未知の要素“−ｈ／ｍ”とし、左から２番目の要素を未知の要素“−ｂ／ｍ”とし、左から３番目の要素を０とすることができる。また、行列Ｂでは、ｉ＝３以外の各行の要素を０とすることができる。また、最後の行の要素を未知の要素“１／ｍ”とすることができる。発明者は、これらの点を見出し、図１に示すシステムの離散時間状態空間モデルを式（７）に示す形式で表すことができることを見出した。
【００４３】
そして、行列Ａにおける未知の要素“−ｈ／ｍ”，“−ｂ／ｍ” の値と、行列Ｂにおける未知の要素“１／ｍ”の値を、機械学習によって推定すればよく、行列Ａ，Ｂの全ての要素の値を機械学習で推定する必要はないことを、発明者は見出した。
【００４４】
さらに、発明者は、対象システムを表す微分方程式をｎ階常微分方程式に一般化して、上記と同様の検討を行った。
【００４５】
対象システムが以下の式（８）に示すｎ階常微分方程式で表されるものとする。
【００４６】
【数３】
2018150798.tif 000005
【００４７】
ただし、式（８）に示す全ての係数ａ０〜ａｎがいずれも０ではないことは既知であるものとする。また、式（８）に示す全ての係数ａ０〜ａｎそれぞれの値そのものは、未知であるものとする。
【００４８】
式（８）におけるｔは連続時間における時刻を表す。式（８）における時刻を離散化し、式（８）で表される対象システムの離散時間状態空間モデルを表すと、以下に示す式（９）のように表すことができる。
【００４９】
ｘｋ＋１＝Ａｘｋ＋Ｂｕｋ          ・・・・・（９）
【００５０】
ただし、式（９）において、行列Ａは、ｎ＋１行ｎ＋１列の行列であり、行列Ｂは、ｎ＋１行１列の行列である。また、対象システムの状態は、ある観測量ｙと、その観測量の１階微分からｎ階微分までの組み合わせによって表される。また、その観測量の１階微分からｎ階微分までは、いずれも観測可能であるものとする。
【００５１】
また、式（９）では、状態の予測誤差ｗｋがない理想的な場合を示している。
【００５２】
発明者は、式（９）を、以下に示す式（１０）のように表すことができることを見出した。
【００５３】
【数４】
2018150798.tif 000006
【００５４】
式（１０）において、Δｔは、１つの時刻から次の時刻までの時間を示す定数である。
【００５５】
また、前述のように、行列の行を上から数えた場合の番号をｉで表すこととする。
【００５６】
発明者は、行列Ａにおいて、ｉ＝ｎ＋１以外の各行（すなわち、最後の行以外の各行）では、左からｉ番目の要素を１とし、左からｉ＋１番目の要素をΔｔとし、残りの要素を０とすることができることを見出した（式（１０）を参照）。例えば、第１行（ｉ＝１）では、左から１番目の要素を１とし、左から２番目の要素をΔｔとし、残りの要素を０とすることができる。また、発明者は、行列Ａにおいて、最後の行（ｉ＝ｎ＋１）では、左からｉ番目（すなわち、ｎ＋１番目）の要素を０とし、残りの要素を未知の要素ｂ０〜ｂｎ−１とすることができることを見出した（式（１０）を参照）。
【００５７】
また、発明者は、行列Ｂにおいて、最後の行（ｉ＝ｎ＋１）の要素を未知の要素ｃｎとし、他の各行の要素を全て０とすることができることを見出した（式（１０）を参照）。
【００５８】
ここで、式（１０）において、未知の要素ｂ０〜ｂｎ−１およびｃｎは、式（８）に示すｎ階常微分方程式における係数ａ０〜ａｎで表される。
【００５９】
そして、機械学習の前に、式（１０）に示すように離散時間状態空間モデルの形式を定めておけば、未知の要素ｂ０〜ｂｎ−１およびｃｎのみについて、値を推定すればよく、行列Ａ，Ｂの全ての要素の値を機械学習で推定する必要はないことを、発明者は見出した。そして、未知の要素ｂ０〜ｂｎ−１およびｃｎの値を推定することによって得られた離散時間状態空間モデルによって、ある時刻の状態および入力データから、次の時刻の状態を求めることができる。
【００６０】
さらに、発明者は、式（１０）で表される離散時間状態空間モデルの可制御行列がどのように表されるかについて検討した。なお、可制御行列は、モデルが可制御性を有するか否かを判定するために用いられる行列である。可制御行列の行列式が０でないならば、モデルは可制御性を有する。また、可制御行列の行列式が０であれば、モデルは可制御性を有さない。以下、可制御行列をＣ０と表す。
【００６１】
一般に、離散時間状態空間モデルにおける行列ＡがＮ行Ｎ列の行列であるとすると、可制御行列Ｃ０は、以下に示す式（１１）のように表される。
【００６２】
Ｃ０＝［Ｂ  ＡＢ  ・・・  ＡＮ−１Ｂ］          ・・・（１１）
【００６３】
式（１０）に示す離散時間状態空間モデルにおいて、行列Ａは、ｎ＋１行ｎ＋１列の行列である。従って、式（１０）に示す離散時間状態空間モデルの可制御行列Ｃ０は、以下に示す式（１２）のように表される。
【００６４】
Ｃ０＝［Ｂ  ＡＢ  ・・・  ＡｎＢ］          ・・・（１２）
【００６５】
式（１２）におけるｎは、対象システムを表す常微分方程式（式（８）を参照）の階数である。また、式（１２）が示す可制御行列Ｃ０は、ｎ＋１行ｎ＋１列の行列である。
【００６６】
さらに、発明者は、式（１０）に示す離散時間状態空間モデルの可制御行列Ｃ０を計算すると、可制御行列Ｃ０は、図２に示す形式になることを見出した。図２は、式（１０）に示す離散時間状態空間モデルの可制御行列Ｃ０の形式を示す模式図である。前述のように、行列の行を上から数えた場合の番号をｉで表す。１≦ｉ≦ｎ＋１である。また、行列の第ｐ行第ｑ列の要素をｃｐ，ｑと記すこととする。また、行列の列を左から数えた場合の番号をｊとする。ｊは、１からｎ＋１までの整数の値を取る。発明者は、式（１０）に示す離散時間状態空間モデルの可制御行列Ｃ０において、要素ｃｎ＋２−ｊ，ｊの値が決して０にならないことを見出した。すなわち、発明者は、式（１０）に示す離散時間状態空間モデルの可制御行列Ｃ０の要素のうち、ｃｎ＋１，１，ｃｎ，２，ｃｎ−１，３，・・・，ｃ１，ｎ＋１のｎ＋１個の要素は、決して０にならないことを見出した。ｃｎ＋１，１，ｃｎ，２，ｃｎ−１，３，・・・，ｃ１，ｎ＋１のｎ＋１個の要素は、可制御行列Ｃ０の一番左下の要素から一番右上の要素まで斜めに並んでいる要素である。
【００６７】
ｃｎ＋１，１，ｃｎ，２，ｃｎ−１，３，・・・，ｃ１，ｎ＋１のｎ＋１個の要素が決して０にならないことは、式（８）に示す全ての係数ａ０〜ａｎがいずれも０でないこと、および、式（１０）に示す未知の要素ｂ０〜ｂｎ−１およびｃｎが係数ａ０〜ａｎで表されることから、導くことができる。
【００６８】
さらに、発明者は、第ｊ列において、第ｎ＋２−ｊ行より上側に配置されている要素は、必ず０になることを見出した。例えば、第１列では、ｃｎ＋１，１より上側に配置されている要素（すなわち、第１行から第ｎ行までの要素）は、必ず０になる。また、例えば、第２列では、ｃｎ，２より上側に配置されている要素（すなわち、第１行から第ｎ−１行までの要素）は、必ず０になる。なお、第ｎ＋１列では、ｃ１，ｎ＋１より上側に配置されている要素は、存在しない。
【００６９】
換言すれば、可制御行列Ｃ０の一番左下の要素から一番右上の要素まで斜めに並んでいる要素（ｃｎ＋１，１，ｃｎ，２，ｃｎ−１，３，・・・，ｃ１，ｎ＋１）よりも上側に三角形状に配置されている各要素は必ず０になること（図２参照）を、発明者は見出した。
【００７０】
さらに、発明者は、上記のような可制御行列Ｃ０の行列式は、サラスの規則に照らし合わせると、決して０にならないことを見出した。
【００７１】
式（１０）に示す離散時間状態空間モデルの可制御行列Ｃ０の行列式が決して０にならないということは、式（１０）に示す離散時間状態空間モデルが可制御性を有することを意味する。
【００７２】
すなわち、発明者は、式（８）に示すｎ階常微分方程式で表される対象システムの離散時間状態空間モデルが、式（１０）で表すことができることを見出した。ただし、式（８）に示すｎ階常微分方程式における全ての係数ａ０〜ａｎはいずれも０ではない。また、対象システムの状態は、ある観測量ｙと、その観測量の１階微分からｎ階微分までの組み合わせによって表され、その観測量の１階微分からｎ階微分までは、いずれも観測可能であるものとする。そして、発明者は、この場合、式（１０）で表される離散時間状態空間モデルの可制御行列の行列式が決して０にならないことを見出した。すなわち、発明者は、式（１０）で表される離散時間状態空間モデルが可制御性を有することを見出した。
【００７３】
発明者は、上記の知見に基づいて、以下に示す発明をした。
【００７４】
以下、本発明の実施形態を図面を参照して説明する。
【００７５】
図３は、本発明のモデル推定システムの構成例を示すブロック図である。本発明のモデル推定システム１０は、入力部１１と、モデル式構築部１２と、モデル推定部１３と、出力部１４とを備える。
【００７６】
モデル推定システム１０によってモデルが推定される対象システムは、全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムであることを前提とする。時刻毎の状態が得られるということは、時刻毎の状態が観測可能であるということである。
【００７７】
この対象システムを表す常微分方程式の階数を一般化してｎで表すこととする。すなわち、対象システムを表す常微分方程式は、前述の式（８）で表されるものとする。
【００７８】
式（８）に示す全ての係数ａ０〜ａｎがいずれも０ではないことが分かっているものとする。なお、全ての係数ａ０〜ａｎがいずれも０ではないことが分かっていれば、式（８）に示す全ての係数ａ０〜ａｎそれぞれの値そのものは、未知であってもよい。
【００７９】
また、この対象システムの状態は、ある観測量ｙと、その観測量の１階微分からｎ階微分までの組み合わせによって表される。従って、ある時刻ｋにおける対象システムの状態ｘｋは、ｘｋ＝［ｙｋ，ｙｋ（１），・・・，ｙｋ（ｎ）］Ｔと表される。同様に、時刻ｋ＋１における対象システムの状態ｘｋ＋１は、ｘｋ＋１＝［ｙｋ＋１，ｙｋ＋１（１），・・・，ｙｋ＋１（ｎ）］Ｔと表される。
【００８０】
また、モデル推定システム１０は、対象システムのモデルとして、離散時間状態空間モデルを推定する。
【００８１】
入力部１１は、対象システムを表す常微分方程式に関する情報と、その対象システムの過去の複数の時刻における入力データおよび状態とを入力するための入力装置である。例えば、入力部１１は、光学ディスク等のデータ記録媒体から、対象システムを表す常微分方程式に関する情報と、その対象システムの過去の複数の時刻における入力データおよび状態とを読み込むデータ読み込み装置である。この場合、モデル推定システム１０のユーザが、対象システムを表す常微分方程式に関する情報と、その対象システムの過去の複数の時刻における入力データおよび状態とを、予め、データ記録媒体に記憶されておけばよい。また、入力部１１は、このようなデータ読み込み装置に限定されない。入力部１１は、モデル推定システム１０のユーザが対象システムを表す常微分方程式に関する情報と、その対象システムの過去の複数の時刻における入力データおよび状態とを入力するための入力デバイスであってもよい。
【００８２】
入力部１１は、対象システムを表す常微分方程式に関する情報として、その常微分方程式の階数と、その常微分方程式の全ての係数（式（８）に示す全ての係数ａ０〜ａｎ）が０でない旨の情報とを、データ記録媒体から読み込む。なお、常微分方程式の階数がｎであれば、その常微分方程式の係数の数はｎ＋１個である。
【００８３】
また、入力部１１は、対象システムにおける過去の連続する複数の時刻における入力データおよび状態を、データ記録媒体から読み込む。なお、入力データおよび状態には、時刻が対応付けられているものとする。また、連続する時刻の間隔は一定である。
【００８４】
入力部１１は、対象システムを表す常微分方程式の階数と、その常微分方程式の全ての係数が０でない旨の情報を、モデル式構築部１２に送る。また、入力部１１は、対象システムにおける過去の連続する複数の時刻における入力データおよび状態を、モデル式構築部１２とモデル推定部１３にそれぞれ送る。
【００８５】
モデル式構築部１２は、対象システムを表す常微分方程式の階数と、その常微分方程式の全ての係数が０でない旨の情報と、対象システムにおける過去の連続する複数の時刻における入力データおよび状態とが送られると、１つの時刻における対象システムの入力データおよび状態から、次の時刻における対象システムの状態を予測するためのモデルを表す式を構築する。このとき、モデル式構築部１２は、対象システムを表す常微分方程式の階数に応じた行列であって一部の要素のみを未知の要素とする第１の行列と、対象システムを表す常微分方程式の階数に応じた行列であって一部の要素のみを未知の要素とする第２の行列とを定める。さらに、モデル式構築部１２は、その第１の行列およびその第２の行列を用いて、離散時間状態空間モデルを表す式を構築する。
【００８６】
具体的には、モデル式構築部１２は、前述の式（１０）を構築する。式（１０）は、時刻ｋにおける対象システムの入力データｕｋおよび状態ｘｋから、次の時刻における対象システムの状態ｘｋ＋１を予測するための離散時間状態空間モデルを表す式である。対象システムにおいて、状態を出力データとして扱うことができるので、式（１）におけるｙｋ＝Ｃｘｋ＋ｖｋを無視して、離散時間状態空間モデルを式（１０）で表すことができる。式（１０）は、状態の予測誤差ｗｋがない理想的な場合を示している。
【００８７】
式（１０）における行列Ａが第１の行列に相当し、式（１０）における行列Ｂが第２の行列に相当する。前述のように、行列の行を上から数えた場合の番号をｉで表す。
【００８８】
モデル式構築部１２は、行列Ａ（第１の行列）を以下のように定めればよい。常微分方程式の階数がｎである場合、モデル式構築部１２は、行列Ａ（第１の行列）を、ｎ＋１行ｎ＋１列の行列として定める。また、モデル式構築部１２は、対象システムにおける連続する複数の時刻における入力データおよび状態に対応付けられている時刻の差分（より具体的には連続する２つの時刻の差分）を計算することによって、１つの時刻から次の時刻までの時間を示す定数Δｔを算出する。モデル式構築部１２は、行列Ａにおいて、ｉ＝ｎ＋１以外の各行（すなわち、最後の行以外の各行）では、左からｉ番目の要素を１とし、左からｉ＋１番目の要素をΔｔとし、残りの要素を０とする。例えば、モデル式構築部１２は、第１行（ｉ＝１）では、左から１番目の要素を１とし、左から２番目の要素をΔｔとし、残りの要素を０とする（式（１０）を参照）。また、モデル式構築部１２は、行列Ａにおいて、最後の行（ｉ＝ｎ＋１）では、左からｉ番目（すなわち、ｎ＋１番目）の要素を０とし、残りの要素を未知の要素ｂ０〜ｂｎ−１とする（式（１０）を参照）。
【００８９】
また、モデル式構築部１２は、行列Ｂ（第２の行列）を以下のように定めればよい。常微分方程式の階数がｎである場合、モデル式構築部１２は、行列Ｂ（第２の行列）を、ｎ＋１行１列の行列として定める。モデル式構築部１２は、行列Ｂにおいて、最後の行（ｉ＝ｎ＋１）の要素を未知の要素ｃｎとし、第１行から第ｎ行までの各行の要素を全て０とする（式（１０）を参照）。
【００９０】
モデル式構築部１２は、上記のように行列Ａ，Ｂを定め、時刻ｋにおける対象システムの状態ｘｋ＝［ｙｋ，ｙｋ（１），・・・，ｙｋ（ｎ）］Ｔと、時刻ｋにおける対象システムへの入力データｕｋと、その次の時刻ｋ＋１における対象システムの状態ｘｋ＋１＝［ｙｋ＋１，ｙｋ＋１（１），・・・，ｙｋ＋１（ｎ）］Ｔとを変数として、式（１０）を構築する。
【００９１】
モデル式構築部１２は、構築した式を、モデル推定部１３に送る。
【００９２】
なお、モデル式構築部１２が式（１０）を構築した時点では、行列Ａ，Ｂそれぞれに未知の要素が含まれているので、対象システムの離散時間状態空間モデルが推定されたわけではない。
【００９３】
また、モデル式構築部１２は、対象システムを表す常微分方程式の全ての係数が０でないことを前提として、上記の処理を行ってもよい。すなわち、常微分方程式の全ての係数が０でないことを前提として、入力部１１は、常微分方程式の全ての係数が０でない旨の情報の読み込みを省略してもよい。そして、モデル式構築部１２は、常微分方程式の全ての係数が０でない旨の情報が送られなくても、常微分方程式の階数と、対象システムにおける過去の連続する複数の時刻における入力データおよび状態とが入力部１１から送られたならば、上記の処理を行ってもよい。
【００９４】
モデル推定部１３は、対象システムにおける過去の連続する複数の時刻における入力データおよび状態を用いて、モデル式構築部１２によって構築された式における行列Ａ（第１の行列）の未知の要素ｂ０〜ｂｎ−１と、その式における行列Ｂ（第２の行列）の未知の要素ｃｎを学習することによって、対象システムの離散時間状態空間モデルを推定する。
【００９５】
対象システムにおける過去の入力データおよび状態が時刻１〜Ｎにおける入力データおよび状態であるとする。モデル推定部１３は、時刻１における入力データｕ１および状態ｘ１並びに時刻２における状態ｘ２を、モデル式構築部１２によって構築された式に代入することによって、以下に示す式（１３）を得る。
【００９６】
ｘ２＝Ａｘ１＋Ｂｕ１          ・・・（１３）
【００９７】
式（１３）において、ｘ２，ｘ１，ｕ１は、入力部１１から送られた具体的な値である。なお、式（１３）における行列Ａ，Ｂは、モデル式構築部１２によって定められた行列Ａ，Ｂである。
【００９８】
モデル推定部１３は、ある時刻における入力データおよび状態と、その次の時刻における状態を、モデル式構築部１２によって構築された式に代入することによって、同様の式を得る。具体的には、モデル推定部１３は、以下に示す複数の式を得る。
【００９９】
ｘ２＝Ａｘ１＋Ｂｕ１
ｘ３＝Ａｘ２＋Ｂｕ２
：
ｘＮ＝ＡｘＮ−１＋ＢｕＮ−１
【０１００】
モデル推定部１３は、上記の複数の式をまとめて、以下に示す式（１４）を得る。なお、式（１４）におけるｘ１〜ｘＮは、いずれも列ベクトルである。
【０１０１】
［ｘ２  ｘ３  ・・・  ｘＮ］＝
Ａ［ｘ１  ｘ２  ・・・  ｘＮ−１］＋Ｂ［ｕ１  ｕ２  ・・・  ｕＮ−１］
・・・（１４）
【０１０２】
モデル推定部１３は、式（１４）における行列Ａの最終行の未知の要素ｂ０〜ｂｎ−１および行列Ｂの最終行の未知の要素ｃｎに関する回帰分析を実行することによって、行列Ａの最終行の未知の要素ｂ０〜ｂｎ−１それぞれの値、および、行列Ｂの最終行の未知の要素ｃｎの値を推定する。
【０１０３】
モデル推定部１３は、以下に示す式（１５）の右辺における｜｜ｙｋ＋１（ｎ）−［ｂ０，・・・，ｂｎ−１，ｃｎ］［ｙｋ，・・・，ｙｋ（ｎ−１），ｕｋ］Ｔ｜｜２を最小化する要素ｂ０〜ｂｎ−１およびｃｎそれぞれの値を推定すればよい。
【０１０４】
【数５】
2018150798.tif 000007
【０１０５】
モデル推定部１３は、回帰分析によって推定した要素ｂ０〜ｂｎ−１およびｃｎそれぞれの値を、モデル式構築部１２によって構築された式（１０）における要素ｂ０〜ｂｎ−１およびｃｎに代入する。この結果、式（１０）における行列Ａ，Ｂの全ての要素が定まる。すなわち、モデル推定部１３は、モデル式構築部１２によって構築された式（１０）における未知の要素の値を推定することによって、対象システムの離散時間状態空間モデルを推定する。
【０１０６】
出力部１４は、モデル推定部１３によって推定された離散時間状態空間モデルを出力する。例えば、出力部１４は、モデル推定システム１０が備えるディスプレイ装置（図３において図示略）に、離散時間状態空間モデルを表示させてもよい。ただし、出力部１４が推定された離散時間状態空間モデルを出力する態様は特に限定されない。
【０１０７】
モデル式構築部１２、モデル推定部１３および出力部１４は、例えば、モデル推定プログラムに従って動作するコンピュータのＣＰＵ（Central Processing Unit ）によって実現される。この場合、ＣＰＵは、例えば、コンピュータのプログラム記憶装置（図３において図示略）等のプログラム記録媒体からプログラムを読み込み、そのプログラムに従って、モデル式構築部１２、モデル推定部１３および出力部１４として動作すればよい。また、モデル式構築部１２、モデル推定部１３および出力部１４がそれぞれ別々のハードウェアによって実現されてもよい。
【０１０８】
また、モデル推定システム１０は、２つ以上の物理的に分離した装置が有線または無線で接続されている構成であってもよい。
【０１０９】
次に、本発明の処理経過について説明する。図４は、本発明の処理経過の例を示すフローチャートである。なお、既に説明した動作と同様の動作については、適宜、説明を省略する。
【０１１０】
最初に、入力部１１が、対象システムを表す常微分方程式の階数と、その常微分方程式の全ての係数が０でない旨の情報と、対象システムにおける過去の連続する複数の時刻における入力データおよび状態を読み込む（ステップＳ１）。以下、対象システムを表す常微分方程式の階数をｎとする。
【０１１１】
入力部１１は、対象システムを表す常微分方程式の階数と、その常微分方程式の全ての係数が０でない旨の情報を、モデル式構築部１２に送る。また、入力部１１は、対象システムにおける過去の連続する複数の時刻における入力データおよび状態を、モデル式構築部１２とモデル推定部１３にそれぞれ送る。
【０１１２】
すると、モデル式構築部１２は、最後の行に未知の要素を含むｎ＋１行ｎ＋１列の行列Ａ（第１の行列）と、最後の行に未知の要素を含むｎ＋１行１列の行列Ｂ（第２の行列）とを用いて、式（１０）を構築する（ステップＳ２）。式（１０）は、離散時間状態空間モデルを表す式である。既に説明したように、モデル式構築部１２は、対象システムにおける連続する複数の時刻における入力データおよび状態に対応付けられている時刻の差分（より具体的には連続する２つの時刻の差分）を計算することによって、式（１０）におけるΔｔを算出すればよい。
【０１１３】
モデル式構築部１２は、構築した式を、モデル推定部１３に送る。
【０１１４】
次に、モデル推定部１３は、モデル式構築部１２によって構築された式における未知の要素（式（１０）におけるｂ０〜ｂｎ−１およびｃｎ）を、対象システムにおける過去の連続する複数の時刻における入力データおよび状態を用いて推定することによって、対象システムの離散時間状態空間モデルを推定する（ステップＳ３）。
【０１１５】
次に、出力部１４は、ステップＳ３で推定された離散時間状態空間モデルを出力する（ステップＳ４）。
【０１１６】
本発明では、対象システムは、全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムであることを前提とする。従って、対象システムの離散時間状態空間モデルは、式（１０）で表すことができる。本発明では、モデル式構築部１２が、未知の要素を含む状態で式（１０）を構築する。さらに、モデル推定部１３が、その未知の要素の値を、対象システムにおける過去の連続する複数の時刻における入力データおよび状態を用いて推定することによって、対象システムの離散時間状態空間モデルを推定する。従って、本発明によれば、対象システムの離散時間状態空間モデルを推定することができる。
【０１１７】
さらに、発明者が見出したように、対象システムの常微分方程式（式（８）を参照）の全ての係数０でない場合には、式（１０）で表される離散時間状態空間モデルの可制御行列の行列式は、決して０にならない。可制御行列の行列式が０でないと言うことは、式（１０）に示す離散時間状態空間モデルが可制御性を有することを意味する。従って、本発明のモデル推定システム１０が推定した離散時間状態空間モデルは、可制御性を有する。換言すれば、本発明によれば、対象システムの離散時間状態空間モデルとして、可制御性を有する離散時間状態空間モデルを推定することができる。
【０１１８】
その結果、本発明のモデル推定システム１０によって推定された離散時間状態空間モデルに基づいて対象システムを制御することができる。
【０１１９】
また、その離散時間状態空間モデルによって、ある時刻の状態および入力データから、次の時刻の状態を求めることができる。
【０１２０】
本発明によるモデル推定システムは、可制御性を有する離散時間状態空間モデルを推定することができる。従って、本発明は、モデルを推定するコンピュータ自身の機能や性能を改善した発明である。また、本発明によるモデル推定システムの処理は、単なる数学的処理ではなく、現実世界の対象システムを制御可能とするための離散時間状態空間モデルを推定する処理である。
【０１２１】
図５は、本発明の実施形態に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ１０００は、ＣＰＵ１００１と、主記憶装置１００２と、補助記憶装置１００３と、インタフェース１００４と、ディスプレイ装置１００５と、入力デバイス１００６とを備える。図５に示す例では、入力デバイス１００６が入力部１１（図３参照）に相当する。ただし、コンピュータ１０００は、対象システムを表す常微分方程式に関する情報、および、その対象システムの過去の複数の時刻における入力データおよび状態の入力態様に応じた入力部１１を備えていればよい。
【０１２２】
本発明のモデル推定システム１０は、コンピュータ１０００に実装される。モデル推定システム１０の動作は、プログラム（モデル推定プログラム）の形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、そのプログラムに従って上記の処理を実行する。
【０１２３】
補助記憶装置１００３は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００がそのプログラムを主記憶装置１００２に展開し、上記の処理を実行してもよい。
【０１２４】
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置１００３に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
【０１２５】
また、各構成要素の一部または全部は、汎用または専用の回路（circuitry ）、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０１２６】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０１２７】
次に、本発明の概要について説明する。図６は、本発明のモデル推定システムの概要を示すブロック図である。本発明のモデル推定システムは、モデル式構築手段２２と、モデル推定手段２３とを備える。また、本発明のモデル推定システムは、全ての係数が０でない常微分方程式で表され、時刻毎の入力データおよび状態が得られるシステムのモデルを推定する。
【０１２８】
モデル式構築手段２２（例えば、モデル式構築部１２）は、その常微分方程式の階数と、そのシステムにおける過去の複数の時刻における入力データおよび状態とが入力されたときに、その階数に応じた行列であって一部の要素のみを未知の要素とする第１の行列と、その階数に応じた行列であって一部の要素のみを未知の要素とする第２の行列とを用いて、１つの時刻におけるそのシステムの入力データおよび状態から、次の時刻におけるそのシステムの状態を予測するためのモデルを表す式を構築する。
【０１２９】
モデル推定手段２３（例えば、モデル推定部１３）は、過去の複数の時刻における入力データおよび状態を用いて、その式における第１の行列の未知の要素および第２の行列の未知の要素を学習することによって、モデルを推定する。
【０１３０】
また、モデル式構築手段２２が、常微分方程式の階数をｎとし、時刻ｋにおけるシステムへの入力データをｕｋとし、時刻ｋにおけるシステムの状態を［ｙｋ，ｙｋ（１），・・・，ｙｋ（ｎ）］Ｔ（ただし、上付きの括弧書きは、微分階数を示す。）とし、時刻ｋの次の時刻ｋ＋１におけるシステムの状態を［ｙｋ＋１，ｙｋ＋１（１），・・・，ｙｋ＋１（ｎ）］Ｔとし、１つの時刻から次の時刻までの時間をΔｔとして、ｂ０〜ｂｎ−１およびｃｎを未知の要素とする前述の式（１０）で表される式を構築し、モデル推定手段２３が、システムにおける過去の複数の時刻における入力データおよび状態を用いて、その式におけるｂ０〜ｂｎ−１およびｃｎを推定する構成であってもよい。
【０１３１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１３２】
この出願は、２０１７年２月１７日に出願された日本特許出願２０１７−０２７７２４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０１３３】
本発明は、システムの離散時間状態空間モデルを推定するモデル推定システムに好適に適用される。
【符号の説明】
【０１３４】
１０  モデル推定システム
１１  入力部
１２  モデル式構築部
１３  モデル推定部
１４  出力部
【図１】
2018150798.tif 000011
【図２】
2018150798.tif 000012
【図３】
2018150798.tif 000013
【図４】
2018150798.tif 000014
【図５】
2018150798.tif 000015
【図６】
2018150798.tif 000016
【国際調査報告】
2018150798.tif 000017
2018150798.tif 000018
2018150798.tif 000019