IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

<>
  • 特許-制御プログラム、装置、及び方法 図1
  • 特許-制御プログラム、装置、及び方法 図2
  • 特許-制御プログラム、装置、及び方法 図3
  • 特許-制御プログラム、装置、及び方法 図4
  • 特許-制御プログラム、装置、及び方法 図5
  • 特許-制御プログラム、装置、及び方法 図6
  • 特許-制御プログラム、装置、及び方法 図7
  • 特許-制御プログラム、装置、及び方法 図8
  • 特許-制御プログラム、装置、及び方法 図9
  • 特許-制御プログラム、装置、及び方法 図10
  • 特許-制御プログラム、装置、及び方法 図11
  • 特許-制御プログラム、装置、及び方法 図12
  • 特許-制御プログラム、装置、及び方法 図13
  • 特許-制御プログラム、装置、及び方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】制御プログラム、装置、及び方法
(51)【国際特許分類】
   G05B 13/02 20060101AFI20241001BHJP
【FI】
G05B13/02 A
【請求項の数】 7
(21)【出願番号】P 2021028660
(22)【出願日】2021-02-25
(65)【公開番号】P2022129824
(43)【公開日】2022-09-06
【審査請求日】2023-11-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】飯村 由信
【審査官】渡邊 捷太郎
(56)【参考文献】
【文献】特開2020-135757(JP,A)
【文献】特開平09-240934(JP,A)
【文献】特開2018-063586(JP,A)
【文献】特開2019-073177(JP,A)
【文献】特開2007-233634(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/02
(57)【特許請求の範囲】
【請求項1】
システムによる制御に応じて変動する対象の実績を取得し、
前記実績と特定の範囲との比較に応じて、前記システムに入力する制御値に対する重みを算出し、
前記実績と前記重みとに基づいて、前記制御値を算出し、
算出された前記制御値を前記システムに入力し、前記対象を制御する処理をコンピュータに実行させる制御プログラムであって、
前記重みを算出する処理は、過去の所定の時刻における前記実績と、前記所定の時刻から所定期間分の実績に基づいて算出された重みとを対応付けた関係に基づいて、今回取得された前記実績に対応する重みを算出することを含み、
前記対象が制御される時刻毎に、前記対象が制御される時刻の所定期間前の時刻の実績と、前記関係において前記所定期間前の時刻の実績と最も近い値の実績に対応付けられた前記重みを、前記所定期間前の時刻から前記所定期間分の前記実績と前記特定の範囲との比較に応じて補正した重みとの対応を前記関係に追加する、
ことを特徴とする制御プログラム。
【請求項2】
前記重みを算出する処理は、前記関係において、今回取得された実績と最も近い実績に対応付けられた前記重みを取得することを含むことを特徴とする請求項に記載の制御プログラム。
【請求項3】
前記制御値を算出する処理は、前記実績に応じた前記対象の予測値と前記重みとに基づいて、前記制御値を算出することを含むことを特徴とする請求項1又は請求項2に記載の制御プログラム。
【請求項4】
前記制御値を算出する処理は、機械学習により生成されたモデルと、前記実績と、前記制御値とに基づいて、前記予測値を予測することを含むことを特徴とする請求項に記載の制御プログラム。
【請求項5】
前記制御値を算出する処理は、前記対象の予測値が前記特定の範囲に収まるように最適化するための項と、前記制御値の入力計画を最適化するための項とを含む目的関数を最適化することを含むことを特徴とする請求項又は請求項に記載の制御プログラム。
【請求項6】
システムによる制御に応じて変動する対象の実績を取得し、
前記実績と特定の範囲との比較に応じて、前記システムに入力する制御値に対する重みを算出し、
前記実績と前記重みとに基づいて、前記制御値を算出し、
算出された前記制御値を前記システムに入力し、前記対象を制御する処理を実行する制御部を含み、
前記重みを算出する処理は、過去の所定の時刻における前記実績と、前記所定の時刻から所定期間分の実績に基づいて算出された重みとを対応付けた関係に基づいて、今回取得された前記実績に対応する重みを算出することを含み、
前記対象が制御される時刻毎に、前記対象が制御される時刻の所定期間前の時刻の実績と、前記関係において前記所定期間前の時刻の実績と最も近い値の実績に対応付けられた前記重みを、前記所定期間前の時刻から前記所定期間分の前記実績と前記特定の範囲との比較に応じて補正した重みとの対応を前記関係に追加する、
ことを特徴とする制御装置。
【請求項7】
システムによる制御に応じて変動する対象の実績を取得し、
前記実績と特定の範囲との比較に応じて、前記システムに入力する制御値に対する重みを算出し、
前記実績と前記重みとに基づいて、前記制御値を算出し、
算出された前記制御値を前記システムに入力し、前記対象を制御する処理をコンピュータが実行する制御方法であって、
前記重みを算出する処理は、過去の所定の時刻における前記実績と、前記所定の時刻から所定期間分の実績に基づいて算出された重みとを対応付けた関係に基づいて、今回取得された前記実績に対応する重みを算出することを含み、
前記対象が制御される時刻毎に、前記対象が制御される時刻の所定期間前の時刻の実績と、前記関係において前記所定期間前の時刻の実績と最も近い値の実績に対応付けられた前記重みを、前記所定期間前の時刻から前記所定期間分の前記実績と前記特定の範囲との比較に応じて補正した重みとの対応を前記関係に追加する、
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、制御対象の制御の技術分野に関する。
【背景技術】
【0002】
従来、機械学習等により生成されたモデルによる予測結果を用いて、制御対象のデータが目標範囲内となるように制御する技術が存在する。
【0003】
例えば、フィードバック処理部を備え、制御対象の状態量又は制御量の実測値をフィードバックして、最適操作量検索部における検索範囲又は予測値、内部状態推定部における推定値を実測値により補正するモデル予測制装置が提案されている。すなわち、この装置は、フィードバックされた状態量あるいは制御量の実測値に基づいて、操作量候補算出部による操作量の算出範囲を設定して無駄な演算を省略する。また、この装置は、モデル予測部への入力である操作量候補、出力である制御量、又は制御対象へ入力する最適制御量を補正し、さらには内部状態推定部からの出力を補正して、予測精度を高める。
【0004】
また、例えば、最適な操作量の計算を簡易なプラントモデルを用いたモデル予測制御によって行う内燃機関の制御装置が提案されている。この装置は、過去の所定期間における操作量の指令値又は実際値の履歴から線形プラントモデルを用いて過去所定期間における制御量の予測値の履歴を算出する。また、この装置は、過去所定期間における制御量の実際値の履歴を取得し、過去所定期間における制御量の予測値と実際値との差分の履歴に基づきLPV誤差関数のパラメータを算出する。そして、この装置は、LPV誤差関数により線形プラントモデルを修正し、修正線形プラントモデルを用いたモデル予測制御によって次回ステップ又はそれ以降の所定期間における操作量の指令値を算出する。
【0005】
また、例えば、血糖値センサと、インスリン注入デバイスと、生理学的モデルから患者の血糖値の将来の進展を予測し、その予測を考慮することによってインスリン注入デバイスを制御する制御ユニットとを備えたシステムが提案されている。制御ユニットは、過去の観測期間中にセンサによって測定された血糖値の履歴を考慮することにより、生理学的モデルの自動較正のステップを実施する。また、制御ユニットは、較正ステップの最後に、モデルに基づいて推定された血糖値とセンサによって測定された実際の血糖値との間の誤差を表す少なくとも1つの数値指標に基づいて、モデルが十分なものであるか否かを判定する。制御ユニットは、モデルの品質が十分なものでない場合は、モデルから行われた予測を考慮せずにインスリン注入デバイスを制御する。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2006-172364号公報
【文献】特開2013-142376号公報
【文献】米国特許出願公開第2020/0015738号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
モデルによる予測結果を用いて、制御対象のデータが目標範囲内となるように制御する場合において、制御対象のデータが目標範囲に収まらない場合がある。この原因の1つとして、モデルの予測が外れていることが挙げられる。この場合、制御対象のデータを目標範囲に収めるために、モデルを精緻化して予測精度を向上させることが考えられる。しかしながら、例えば統計的手法によりモデルを精緻化する場合等、モデルの予測精度を向上させるためには、大量の訓練データ及び処理量が必要であり、制御対象の制御中に適応的に対応することができない、という問題がある。
【0008】
一つの側面として、開示の技術は、制御対象を特定の範囲内に収める制御を適応的に行うことを目的とする。
【課題を解決するための手段】
【0009】
一つの態様として、開示の技術は、システムによる制御に応じて変動する対象の実績を取得し、前記実績と特定の範囲との比較に応じて、前記システムに入力する制御値に対する重みを算出する。また、開示の技術は、前記実績と前記重みとに基づいて、前記制御値を算出し、算出された前記制御値を前記システムに入力し、前記対象を制御する。
【発明の効果】
【0010】
一つの側面として、制御対象を特定の範囲内に収める制御を適応的に行うことができる、という効果を有する。
【図面の簡単な説明】
【0011】
図1】制御システムの概略構成を示すブロック図である。
図2】インスリン投与による血糖値制御の適用例を説明するための図である。
図3】制御装置の機能ブロック図である。
図4】対象データの実績が目標範囲内に収まらなくなる場合を説明するための図である。
図5】重み学習部の処理を説明するための図である。
図6】重みDBの一例を示す図である。
図7】重み学習部の処理を説明するための図である。
図8】重みDBに複数蓄積されたyiniとΛとの関係の一例を示す図である。
図9】制御装置として機能するコンピュータの概略構成を示すブロック図である。
図10】制御処理の一例を示すフローチャートである。
図11】重み学習処理の一例を示すフローチャートである。
図12】制御値に対する重みの学習及び算出を行わない場合の制御結果の一例を示す図である。
図13】制御値に対する重みの学習及び算出を行わない場合における、対象データの予測値と実績との比較を示す図である。
図14】本実施形態による制御結果の一例を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。なお、以下の実施形態では、開示の技術の適用例として、インスリン投与による血糖値制御の場合を説明するが、適用例はこれに限定されない。
【0013】
図1に示すように、本実施形態に係る制御システム100は、制御装置10と、計測装置30と、処理装置32とを含む。計測装置30は、制御対象のデータ(以下、「対象データ」という)を計測し、出力する。処理装置32は、制御装置10で算出された制御値に基づいて、制御対象を制御するための所定の処理を実行する。制御装置10は、対象データの実績を用いて、将来の対象データを予測し、予測結果に基づいて、対象データが目標範囲内に収まるように、処理装置32に入力する制御値を算出する。なお、制御対象は、開示の技術の「対象」の一例であり、目標範囲は、開示の技術の「特定の範囲」の一例である。
【0014】
インスリン投与による血糖値制御の適用例の場合、制御対象は患者の血糖値であり、計測装置30は、例えば、患者の血糖値を計測する血糖値計測器であり、処理装置32は、例えば、患者にインスリンを投与するインスリンポンプである。患者の血糖値は、インスリン投与量等に応じて変動する。この適用例では、例えば図2に示すように、血糖値の実績に基づいて予測される血糖値の予測値が目標範囲の上限を超えている場合、インスリンを投与することにより血糖値を低下させ、血糖値が目標範囲内となるような制御が行われる。一方、血糖値の予測値が目標範囲の下限を超えている場合、インスリンの投与量を少なくすることにより血糖値を上昇させ、血糖値が目標範囲内となるような制御が行われる。具体的には、計測装置30である血糖値計測器で計測された患者の血糖値に基づいて、制御装置10が、インスリン投与量を示す制御値を算出する。そして、算出された制御値に基づいて、処理装置32であるインスリンポンプにより、患者にインスリンが投与される。なお、図2上段の図の棒グラフが対象データである血糖値の実績を表している。また、この適用例では、目標範囲は、例えば、許容される血糖値の範囲である。また、図2には、血糖値に影響を与える摂取炭水化物量のデータも含まれているが、ここでは説明を省略する。
【0015】
制御装置10は、機能的には、図3に示すように、取得部11と、予測部12と、重み学習部13と、重み算出部14と、制御値算出部15とを含む。また、制御装置10の所定の記憶領域には、予測モデル21と、重みDB(Database)22とが記憶される。
【0016】
取得部11は、制御システム100による制御に応じて変動する対象の実績を取得する。具体的には、取得部11は、計測装置30により計測された対象データを取得する。取得部11は、取得した対象データを、予測部12、重み学習部13、及び重み算出部14の各々に受け渡す。
【0017】
予測部12は、予測モデル21と、取得部11から受け渡された対象データの実績と、後述する制御値算出部15により算出された制御値とに基づいて、制御対象を制御する時刻以降の時刻における対象データの値(以下、「予測値」という)を予測する。以下では、制御対象を制御する時刻を「制御時刻」という。また、本実施形態では、制御値の算出時刻、制御値が処理装置32に入力される時刻、及び処理装置32により制御対象を制御する処理が実行される時刻は同一であるものとし、いずれもその時刻を制御時刻という。予測モデル21は、ある時刻における対象データの実績及び制御値を入力した場合に、その時刻以降の対象データの予測値を出力するように、予め機械学習により生成されている。例えば、予測モデル21は、下記(1)式及び(2)式の制約の下、予測値を出力するものとしてよい。
【0018】
k+1=Ax+Bu (1)
=Cx (2)
kは、時刻を示すインデックスである。以下では、インデックスkで示される時刻を「時刻k」という。yは、時刻kにおける対象データの実績、uは、時刻kの制御値、xは、時刻kにおける対象データの予測値である。また、A、B、及びCは、機械学習により定められたパラメータ行列である。予測部12は、予測モデル21を用いて、制御時刻以降の複数の時刻の各々における対象データの予測値を予測する。すなわち、予測部12は、対象データの長期予測を実行する。例えば、予測部12は、長期予測の周期をhとし、時刻k、k+1、・・・、k+hの各々における対象データの予測値xk+i(i=0,1,・・・,h)を予測する。予測部12は、予測した対象データの予測値を、制御値算出部15へ受け渡す。
【0019】
制御値算出部15は、予測部12から受け渡された予測値と、重み(詳細は後述)とに基づいて、制御値を算出する。具体的には、制御値算出部15は、対象データの予測値が目標範囲に収まるように最適化するための項と、制御値の入力計画を最適化するための項とを含む目的関数を最適化することにより、制御値を算出する。例えば、目的関数は、下記(3)式としてよい。
【0020】
【数1】
【0021】
(3)式の第1項は、上述の対象データの予測値が目標範囲に収まるように最適化するための項であり、第2項は、制御値の入力計画を最適化するための項である。Nは、時刻k~k+hの間における制御値の入力計画の最後の入力タイミングを表す。例えば、時刻k、k+j、k+Nで制御値を入力する場合、第2項のiは、i=0,j,Nである。Qは対象データの予測値に対する重みであり、Rは制御値に対する重みであり、Tは転置を表す。制御値算出部15は、予測部12から受け渡された対象データの予測値xk+i(i=0,1,・・・,h)、及び重み算出部14から受け渡された重みRを(3)式の目的関数に代入し、目的関数が最小となる制御値uk+iを算出する。
【0022】
制御値算出部15は、算出した制御値uk+iのうち、制御時刻である時刻kについての制御値uを出力し、処理装置32へ入力することにより、制御対象を制御する。また、制御値算出部15は、算出した制御値uk+iを、次の制御時刻での対象データの長期予測に利用するために、予測部12へ受け渡す。
【0023】
ここで、制御値算出部15で算出される制御値が適切でない場合、図4に示すように、対象データの実績が目標範囲内に収まらなくなる。図4の例では、制御値が大きいほど、対象データの値が低下する制御対象の例を示している。例えば、インスリン投与による血糖値制御のように、インスリンの投与により、制御対象である血糖値が低下するような例である。この例では、時刻t3に入力された制御値が大き過ぎたために、対象データの実績が低下し過ぎて、目標範囲を大きく下回ったと考えられる。このように、対象データの実績が目標範囲を超えてしまうような制御値が算出されてしまう原因は、対象データの長期予測が外れていることであると考えられる。
【0024】
そこで、対象データを目標範囲内に収めるために、単純に想定される方法としては、予測部12による対象データの長期予測の精度を向上させることが考えられる。予測精度の向上のためには、例えば、統計的なアプローチで予測モデル21を精緻化することが考えられる。しかし、このアプローチには、予測モデル21の機械学習を実行するための大量の訓練データが必要となる。例えば、(1)式及び(2)式を制約とする予測モデル21の場合、決定すべきパラメータ数は、パラメータ行列A、B、及びCの各要素の合計数となる。例えば、xが4次元の場合、Aは4×4要素、Bは4×1要素、Cは4×1要素であり、計24個のパラメータを決定する必要がある。このように多くのパラメータを決定するための大量の訓練データを収集するには、ある程度時間を要する。制御対象によっては、十分な数の訓練データが収集される前に適応的に対応したい場合がある。例えば、インスリン投与による血糖値制御の適用例では、血糖値が高血糖側に目標範囲を超える場合には、動脈硬化により脳梗塞、心筋梗塞、壊疽等を引き起こす可能がある。また、血糖値が低血糖側に目標範囲を超える場合には、低血糖により直接生命の危機に陥る可能性がある。このような事態を回避するためには、対象データを目標範囲内に収めるための適応的な対応が必要である。
【0025】
そこで、本実施形態に係る制御装置10は、今回の制御時刻より前の過去の制御実績に基づいて、制御値を算出する最適化問題を介して、直接制御値を適応的に補正する。具体的には、制御装置10は、最適化における制御値に対する重み、例えば(3)式の目的関数の場合ではRを補正する。上述のように、制御値uが大き過ぎる又は小さ過ぎることが、対象データが目標範囲外となってしまう原因であるため、Rを介してuを調整するものである。より具体的には、制御装置10は、(3)式の例では、Rが大きくなるとuが小さくなり、Rが小さくなるとuが大きくなることを利用して、Rを補正する。この場合、補正するパラメータは1つであるため、上記のように、統計的なアプローチで予測モデル21を精緻化する場合に比べ、適応的な対応が可能となる。以下、重みの算出に関する重み学習部13及び重み算出部14の各々について詳述する。
【0026】
重み学習部13は、所定の時刻における対象データの実績と、その実績に対応する重みとの関係を学習する。すなわち、この関係は、所定の時刻における対象データの実績によって、その時刻に算出される制御値に対する重みを決定するためのものである。重み学習部13は、この関係に定める重みとして、所定の時刻から所定期間分の実績に基づいて補正された重みを用いる。具体的には、重み学習部13は、制御時刻毎に、既に学習済みの関係において、制御時刻の所定期間前の時刻の実績と最も近い値の実績に対応付けられた重みを特定する。そして、重み学習部13は、特定した重みを、制御時刻の所定期間前の時刻から所定期間分の実績と目標範囲との比較に応じて補正した重みと、制御時刻の所定期間前の時刻との対応を、既に学習済みの関係に追加する。
【0027】
重み学習部13の処理をより具体的に説明する。重み学習部13は、図5に示すように、制御時刻kの1周期(h)前の時刻k-hにおける対象データの実績をyini(k)とし、時刻kにおける対象データの実績をyとする。そして、重み学習部13は、yini(k)を、時刻のインデックスkと対応付けて、重みDB22に記憶する。図6に、重みDB22の一例を示す。図6の例では、重みDB22には、時刻のインデックスに対応付けて、その時刻におけるyiniと、重みΛとが記憶されている。なお、重みDB22における重みは、制御時刻における制御値の算出に用いる重みRと区別するために、「Λ(ラムダ)」の記号を用いている。ここでは、図6の上段の図の破線部に示すように、kとyini(k)とが対応付けて重みDB22に記憶される。
【0028】
重み学習部13は、重みDB22に記憶されたyiniのうち、yini(k)と最も近い値のyini(ind1)に対応する重みΛ(ind1)を特定する。なお、ind1は、yini(k)と最も近い値のyiniに対応する時刻のインデックスである。例えば、制御時刻k=4であり、重みDB22に既に、k=1,2,3のyini(k)及びΛ(k)が記憶されている場合の、yini(k)とΛ(k)との関係を図7に示す。図7では、黒丸が、重みDB22に既に記憶されているyini(k)とΛ(k)(k=1,2,3)との関係を表している。この場合、重み学習部13は、図7中の白丸で示すように、yini(4)と値が最も近いyini(1)に対応するΛ(1)を特定し、一旦Λ(4)として採用する。
【0029】
重み学習部13は、図5に示すように、時刻k-h~時刻kの期間の対象データの実績が目標範囲の上限を超えている度合いを示す指標α、及び目標範囲の下限を超えている度合いを示す指標βを算出する。指標αは、図5の斜線部分の面積に応じた値としてよい。指標βは、図5の網掛部分の面積に応じた値としてよい。例えば、指標αは、下記(4)式に示すように、時刻k-h~時刻kの期間の各時刻rにおける対象データの実績yのうち、目標範囲の上限Uを上回る実績の二乗平均誤差としてよい。同様に、指標βは、下記(5)式に示すように、対象データの実績yのうち、目標範囲の下限Lを下回る実績の二乗平均誤差としてよい。
【0030】
α=||y(y>U)-U|| (4)
β=||L-y(y<L)|| (5)
なお、(4)式のy(y>U)は、上限Uを上回るyを表し、(5)式のy(y<L)は、下限Lを下回るyを表す。
【0031】
重み学習部13は、特定したΛ(ind1)を、算出した指標α及び指標βに基づいて補正し、重みDB22に記憶するためのΛ(k)を算出する。具体的には、重み学習部13は、指標αの大きさに応じて、対象データが小さくなるようにΛ(ind1)を補正し、指標βの大きさに応じて、対象データが大きくなるようにΛ(ind1)を補正する。インスリン投与による血糖値制御の適用例のように、制御値が大きくなるほど対象データが小さくなる場合、重み学習部13は、指標αが大きいほど、制御値を大きくするために、Λ(ind1)を小さくするように補正して、Λ(k)を算出する。同様に、重み学習部13は、指標βが大きいほど、制御値を小さくするために、Λ(ind1)を大きくするように補正して、Λ(k)を算出する。
【0032】
例えば、重み学習部13は、αの方がβより大きい場合(βが0の場合を含む)には、下記(6)式により、補正後のΛ(k)を算出してよい。また、重み学習部13は、βの方がαより大きい場合(αが0の場合を含む)には、下記(7)式により、補正後のΛ(k)を算出してよい。また、重み学習部13は、α及びβが共に0の場合、すなわち、時刻k-h~時刻kの期間の各時刻rにおける対象データの実績yがいずれも目標範囲内の場合、下記(8)式に示すように、Λ(ind1)をそのままΛ(k)としてよい。
【0033】
α>β≧0の場合
Λ(k)
=Λ(ind)+(α-β)/N1×(0-Λ(ind1)) (6)
β>α≧0の場合
Λ(k)
=Λ(ind)+(β-α)/N2×(Rmax-Λ(ind1)) (7)
α=0かつβ=0の場合
Λ(k)=Λ(ind) (8)
【0034】
なお、N1及びN2の各々は規格化定数である。また、Rmaxは、重みRとして設定可能な最大値である。なお、上記のΛ(k)の算出方法や場合分けは一例であり、これらは、制御対象の性質等に応じて適宜変更可能である。例えば、インスリン投与による血糖値制御の適用例の場合、低血糖となる場合、すなわち対象データが目標範囲を下回る場合のリスクが大きいため、α>βであっても、β>0であれば、下記(9)式を採用してもよい。
Λ(k)
=Λ(ind)+β/N2×(Rmax-Λ(ind1)) (9)
【0035】
図7に示すように、上述の制御時刻k=4の例の場合、重み学習部13は、特定したΛ(1)(図7中の白丸)を、対象データの実績yini(4)~yが目標範囲を超えている度合いに応じて補正し、Λ(4)(図7中の網掛の丸)を算出する。重み学習部13は、図6の下段の図の破線部に示すように、算出したΛ(k)を、時刻のインデックスkに対応付けて重みDB22に記憶する。重み学習部13が、上記の処理を制御時刻k毎に繰り返すことにより、yiniとΛとの関係が重みDB22に複数蓄積される。図8に、重みDB22に複数蓄積されたyiniとΛとの関係の一例を示す。図8の例では、1つの丸が、1つのyiniとΛとの関係を表している。
【0036】
ここで、yiniとΛとの関係を、関数f(・)を用いて、Λ=f(yini)で表すことも考えられる。しかし、yiniは有限の試行回数でしか得られず、全ての連続値が得られるわけではない。また、f(・)としてどのような関数を用意すればよいかは、その前提知識がないため不明である。適切な関数f(・)を用いなければ、補正後のΛを適切に算出することができず、制御性能の低下を招く。一方、本実施形態に係る制御装置10は、上記のように、制御時刻kにおけるyini(k)と最も値の近い過去のyiniに対するΛを、対象データの実績を基に補正し、yiniと補正後のΛとの関係を記憶しておく。そして、制御装置10が、この処理を制御時刻k毎に繰り返すことで、任意のf(・)を表現することができ、制御性能の低下を抑制することができる。
【0037】
重み算出部14は、重みDB22に記憶された、過去の対象データの実績と、その過去の実績に対応する重みとの関係に基づいて、今回取得された実績に対応する重みを算出する。具体的には、重み算出部14は、重みDB22に記憶されたyiniのうち、制御時刻kにおける対象データの実績yと最も近い値のyini(ind2)に対応する重みΛ(ind2)を、制御値uを算出するために用いる重みRとして算出する。なお、ind2は、yと最も近い値のyiniに対応する時刻のインデックスである。これは、過去の制御実績に基づいて、時刻k~k+hの対象データに応じた重みRを算出することに相当する。
【0038】
重み算出部14は、算出した重みRを制御値算出部15へ受け渡す。これにより、上述したように、制御値算出部15により、重みRを用いて制御値が算出される。重みRは、重みDB22に記憶された重みΛから選択されたものであり、このΛは、対象データの実績と目標範囲とを比較して補正されたものである。そのため、重みRを用いて制御値を算出することにより、対象データを目標範囲に収めるような制御が可能となる。
【0039】
制御装置10は、例えば図9に示すコンピュータ40で実現することができる。コンピュータ40は、CPU(Central Processing Unit)41と、一時記憶領域としてのメモリ42と、不揮発性の記憶部43とを備える。また、コンピュータ40は、入力部、表示部等の入出力装置44と、記憶媒体49に対するデータの読み込み及び書き込みを制御するR/W(Read/Write)部45とを備える。また、コンピュータ40は、インターネット等のネットワークに接続される通信I/F(Interface)46を備える。CPU41、メモリ42、記憶部43、入出力装置44、R/W部45、及び通信I/F46は、バス47を介して互いに接続される。
【0040】
記憶部43は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部43には、コンピュータ40を、制御装置10として機能させるための制御プログラム50が記憶される。制御プログラム50は、取得プロセス51と、予測プロセス52と、重み学習プロセス53と、重み算出プロセス54と、制御値算出プロセスとを有する。また、記憶部43は、予測モデル21及び重みDB22の各々を構成する情報が記憶される情報記憶領域60を有する。
【0041】
CPU41は、制御プログラム50を記憶部43から読み出してメモリ42に展開し、制御プログラム50が有するプロセスを順次実行する。CPU41は、取得プロセス51を実行することで、図3に示す取得部11として動作する。また、CPU41は、予測プロセス52を実行することで、図3に示す予測部12として動作する。また、CPU41は、重み学習プロセス53を実行することで、図3に示す重み学習部13として動作する。また、CPU41は、重み算出プロセス54を実行することで、図3に示す重み算出部14として動作する。また、CPU41は、制御値算出プロセス55を実行することで、図3に示す制御値算出部15として動作する。また、CPU41は、情報記憶領域60から情報を読み出して、予測モデル21及び重みDB22の各々をメモリ42に展開する。これにより、制御プログラム50を実行したコンピュータ40が、制御装置10として機能することになる。なお、プログラムを実行するCPU41はハードウェアである。
【0042】
なお、制御プログラム50により実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
【0043】
次に、本実施形態に係る制御システム100の作用について説明する。計測装置30により対象データの計測及び出力が開始されると、制御装置10が、制御時刻k毎に、図10に示す制御処理を実行する。なお、制御処理は、開示の技術の制御方法の一例である。なお、以下の制御処理では、インスリン投与による血糖値制御の場合のように、制御値が大きいほど対象データが小さくなるように制御される場合を例に説明する。
【0044】
ステップS10で、取得部11が、対象データの長期予測の1周期分、すなわち時刻k-h~時刻kの各時刻における対象データの実績を取得する。次に、ステップS20で、重み学習部13が、重み学習処理を実行する。ここで、図11を参照して、重み学習処理について説明する。
【0045】
ステップS21で、重み学習部13が、上記ステップS10で取得された対象データの実績のうち、時刻k-hにおける対象データの実績yini(k)を、時刻のインデックスkと対応付けて、重みDB22に記憶する。
【0046】
次に、ステップS22で、重み学習部13が、時刻k-h~時刻kの期間の対象データの実績yini(k)~yが目標範囲の上限を超えている度合いを示す指標α、及び目標範囲の下限を超えている度合いを示す指標βを算出する。次に、ステップS23で、重み学習部13が、重みDB22に記憶されたyiniのうち、yini(k)と最も近い値のyini(ind1)に対応する重みΛ(ind1)を特定する。
【0047】
次に、ステップS24で、重み学習部13が、βが0以上かつαがβより大きいか否かを判定する。すなわち、実績データが目標範囲の上限を超えている度合いが大きいか否かを判定する。α>β≧0の場合には、ステップS25へ移行し、α≦βの場合には、ステップS26へ移行する。ステップS25では、重み学習部13が、制御値を大きくするために、Λ(ind1)を小さくするように補正して、Λ(k)を算出する。
【0048】
一方、ステップS26では、重み学習部13が、αが0以上かつβがαより大きいか否かを判定する。すなわち、実績データが目標範囲の下限を超えている度合いが大きいか否かを判定する。β>α≧0の場合には、ステップS27へ移行し、α=β=0の場合には、ステップS28へ移行する。ステップS27では、重み学習部13が、制御値を小さくするために、Λ(ind1)を大きくするように補正して、Λ(k)を算出する。
【0049】
ステップS28では、重み学習部13が、Λ(ind1)をそのままΛ(k)とする。なお、α=β>0の場合には、対象データが目標範囲の上限を超えた場合のリスクが大きい場合には、重み学習部13が、ステップS25の処理を実行するように予め定めておけばよい。また、対象データが目標範囲の下限を超えた場合のリスクが大きい場合には、重み学習部13が、ステップS27の処理を実行するように予め定めておいてもよい。さらに、上限を超えた場合のリスクと下限を超えた場合のリスクとが同等の場合には、重み学習部13が、ステップS28の処理を実行するようにしてもよい。
【0050】
次に、ステップS29で、重み学習部13が、上記ステップS25、S27、又はS28で算出したΛ(k)を、時刻のインデックスkに対応付けて重みDB22に記憶し、重み学習処理を終了し、制御処理(図10)に戻る。
【0051】
次に、ステップS32で、重み算出部14が、重みDB22に記憶されたyiniのうち、制御時刻kにおける対象データの実績yと最も近い値のyini(ind2)に対応する重みΛ(ind2)を、制御値uを算出するために用いる重みRとして算出する。次に、ステップS34で、予測部12が、上記ステップS10で取得された対象データの実績、及び前回の制御時刻に算出され制御値を用いて、時刻k、k+1、・・・、k+hの各々における対象データの予測値xk+i(i=0,1,・・・,h)を予測する。
【0052】
次に、ステップS36で、制御値算出部15が、上記ステップS34で予測された予測値xk+iと、上記ステップS32で算出された重みRとに基づいて、制御値uk+iを算出する。そして、制御値算出部15が、算出した制御値uk+iのうち、uを処理装置32へ入力することにより、制御対象を制御する。また、制御値算出部15が、算出した制御値uk+iを、次の制御時刻での対象データの長期予測に利用するために、予測部12へ受け渡し、制御処理は終了する。
【0053】
以上説明したように、本実施形態に係る制御システムによれば、制御装置が、システムによる制御に応じて変動する対象の実績を取得し、実績と特定の範囲との比較に応じて、入力する制御値に対する重みを算出する。そして、制御システムが、実績と重みとに基づいて、制御値を算出し、算出された制御値をシステムに入力し、対象を制御する。これにより、予測モデルを用いた対象データの予測が外れる場合でも、予測モデルを精緻化することなく、制御対象を特定の範囲内に収める制御を適応的に行うことができる。
【0054】
ここで、開示の技術をインスリン投与による血糖値制御に適用した場合の制御結果について説明する。まず、比較として、図12に、制御値に対する重みの学習及び算出を行わない場合の制御結果の一例を示す。図12において、血糖値が対象データ、ボーラスインスリンが制御値の一例である。なお、図12において、摂取グルコースは、食事により摂取されるグルコース量であり、血糖値の変動に影響を与える要因である。上述した図2の摂取炭水化物量も同様である。このように、制御値以外にも対象データの変動に影響を与える要因がある場合、上記の予測モデルにおける制約の(1)式を、下記(10)式のように、他の要因の値zも加味した式に変更すればよい。なお、Dはパラメータ行列である。
k+1=Ax+Bu+Dz (10)
図12では、対象データである血糖値が目標範囲外となっている時間、特に、目標範囲の下限を下回っている時間が多く見受けられる。図12の例において、ある2時刻の各々で予測された対象データの予測値と実績との比較を図13に示す。いずれの時刻においても、予測値と実績とが大きく乖離しており、これが原因となり、対象データである血糖値が目標範囲外となっていると考えられる。
【0055】
図14に、本実施形態のように、制御値に対する重みの学習及び算出を行った場合の制御結果の一例を示す。図12の例と比較して、対象データである血糖値が目標範囲外となっている時間及び程度が減少していることが分かる。例えば、図14の例では、Aで示す部分で、対象データの実績が目標範囲を下回ったことに基づいて、この部分に対応する重みΛを大きくするような補正が行われている。そして、その後の重みRの算出において、このΛが用いられることにより、インスリン投与量が抑えられ、例えばBで示す部分のように、低血糖になる程度を低減することができている。
【0056】
なお、上記実施形態では、適用例を説明する場合に、インスリン投与による血糖値制御の例について説明したが、開示の技術は、エンジン制御等、他の制御システムにも適用可能である。
【0057】
また、上記実施形態では、制御プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【0058】
以上の実施形態に関し、さらに以下の付記を開示する。
【0059】
(付記1)
システムによる制御に応じて変動する対象の実績を取得し、
前記実績と特定の範囲との比較に応じて、前記システムに入力する制御値に対する重みを算出し、
前記実績と前記重みとに基づいて、前記制御値を算出し、
算出された前記制御値を前記システムに入力し、前記対象を制御する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【0060】
(付記2)
前記重みを算出する処理は、過去の実績と、前記過去の実績に対応する重みとの関係に基づいて、今回取得された前記実績に対応する重みを算出することを含むことを特徴とする付記1に記載の制御プログラム。
【0061】
(付記3)
前記関係は、所定の時刻における前記実績と、前記所定の時刻から所定期間分の実績に基づいて算出された重みとを対応付けた関係であることを特徴とする付記2に記載の制御プログラム。
【0062】
(付記4)
前記対象が制御される時刻毎に、前記対象が制御される時刻の所定期間前の時刻の実績と、前記関係において前記所定期間前の時刻の実績と最も近い値の実績に対応付けられた前記重みを、前記所定期間前の時刻から前記所定期間分の前記実績と前記特定の範囲との比較に応じて補正した重みとの対応を前記関係に追加する、
処理を前記コンピュータにさらに実行させることを特徴とする付記3に記載の制御プログラム。
【0063】
(付記5)
前記重みを算出する処理は、前記関係において、今回取得された実績と最も近い実績に対応付けられた前記重みを取得することを含むことを特徴とする付記4に記載の制御プログラム。
【0064】
(付記6)
前記制御値を算出する処理は、前記実績に応じた前記対象の予測値と前記重みとに基づいて、前記制御値を算出することを含むことを特徴とする付記1~付記5のいずれか1項に記載の制御プログラム。
【0065】
(付記7)
前記制御値を算出する処理は、機械学習により生成されたモデルと、前記実績と、前記制御値とに基づいて、前記予測値を予測することを含むことを特徴とする付記6に記載の制御プログラム。
【0066】
(付記8)
前記制御値を算出する処理は、前記対象の予測値が前記特定の範囲に収まるように最適化するための項と、前記制御値の入力計画を最適化するための項とを含む目的関数を最適化することを含むことを特徴とする付記6又は付記7に記載の制御プログラム。
【0067】
(付記9)
システムによる制御に応じて変動する対象の実績を取得し、
前記実績と特定の範囲との比較に応じて、前記システムに入力する制御値に対する重みを算出し、
前記実績と前記重みとに基づいて、前記制御値を算出し、
算出された前記制御値を前記システムに入力し、前記対象を制御する、
処理を実行する制御部を含むことを特徴とする制御装置。
【0068】
(付記10)
前記重みを算出する処理は、過去の実績と、前記過去の実績に対応する重みとの関係に基づいて、今回取得された前記実績に対応する重みを算出することを含むことを特徴とする付記9に記載の制御装置。
【0069】
(付記11)
前記関係は、所定の時刻における前記実績と、前記所定の時刻から所定期間分の実績に基づいて算出された重みとを対応付けた関係であることを特徴とする付記10に記載の制御装置。
【0070】
(付記12)
前記対象が制御される時刻毎に、前記対象が制御される時刻の所定期間前の時刻の実績と、前記関係において前記所定期間前の時刻の実績と最も近い値の実績に対応付けられた前記重みを、前記所定期間前の時刻から前記所定期間分の前記実績と前記特定の範囲との比較に応じて補正した重みとの対応を前記関係に追加する、
処理を前記制御部がさらに実行することを特徴とする付記11に記載の制御装置。
【0071】
(付記13)
前記重みを算出する処理は、前記関係において、今回取得された実績と最も近い実績に対応付けられた前記重みを取得することを含むことを特徴とする付記12に記載の制御装置。
【0072】
(付記14)
前記制御値を算出する処理は、前記実績に応じた前記対象の予測値と前記重みとに基づいて、前記制御値を算出することを含むことを特徴とする付記9~付記13のいずれか1項に記載の制御装置。
【0073】
(付記15)
前記制御値を算出する処理は、機械学習により生成されたモデルと、前記実績と、前記制御値とに基づいて、前記予測値を予測することを含むことを特徴とする付記14に記載の制御装置。
【0074】
(付記16)
前記制御値を算出する処理は、前記対象の予測値が前記特定の範囲に収まるように最適化するための項と、前記制御値の入力計画を最適化するための項とを含む目的関数を最適化することを含むことを特徴とする付記14又は付記15に記載の制御装置。
【0075】
(付記17)
システムによる制御に応じて変動する対象の実績を取得し、
前記実績と特定の範囲との比較に応じて、前記システムに入力する制御値に対する重みを算出し、
前記実績と前記重みとに基づいて、前記制御値を算出し、
算出された前記制御値を前記システムに入力し、前記対象を制御する、
処理をコンピュータが実行することを特徴とする制御方法。
【0076】
(付記18)
前記重みを算出する処理は、過去の実績と、前記過去の実績に対応する重みとの関係に基づいて、今回取得された前記実績に対応する重みを算出することを含むことを特徴とする付記17に記載の制御方法。
【0077】
(付記19)
前記関係は、所定の時刻における前記実績と、前記所定の時刻から所定期間分の実績に基づいて算出された重みとを対応付けた関係であることを特徴とする付記18に記載の制御方法。
【0078】
(付記20)
システムによる制御に応じて変動する対象の実績を取得し、
前記実績と特定の範囲との比較に応じて、前記システムに入力する制御値に対する重みを算出し、
前記実績と前記重みとに基づいて、前記制御値を算出し、
算出された前記制御値を前記システムに入力し、前記対象を制御する、
処理をコンピュータに実行させることを特徴とする制御プログラムを記憶した記憶媒体。
【符号の説明】
【0079】
10 制御装置
11 取得部
12 予測部
13 重み学習部
14 重み算出部
15 制御値算出部
21 予測モデル
22 重みDB
30 計測装置
32 処理装置
40 コンピュータ
41 CPU
42 メモリ
43 記憶部
49 記憶媒体
50 制御プログラム
100 制御システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14