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

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

▶ ディズニー エンタープライゼス インコーポレイテッドの特許一覧

特開2024-35104ハードウェアインザループシミュレーションによる機械学習モデルのトレーニング
<>
  • 特開-ハードウェアインザループシミュレーションによる機械学習モデルのトレーニング 図1A
  • 特開-ハードウェアインザループシミュレーションによる機械学習モデルのトレーニング 図1B
  • 特開-ハードウェアインザループシミュレーションによる機械学習モデルのトレーニング 図2
  • 特開-ハードウェアインザループシミュレーションによる機械学習モデルのトレーニング 図3
  • 特開-ハードウェアインザループシミュレーションによる機械学習モデルのトレーニング 図4
  • 特開-ハードウェアインザループシミュレーションによる機械学習モデルのトレーニング 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024035104
(43)【公開日】2024-03-13
(54)【発明の名称】ハードウェアインザループシミュレーションによる機械学習モデルのトレーニング
(51)【国際特許分類】
   G06Q 10/20 20230101AFI20240306BHJP
   G01M 17/007 20060101ALN20240306BHJP
【FI】
G06Q10/20
G01M17/007 Z
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023127584
(22)【出願日】2023-08-04
(31)【優先権主張番号】17/901,053
(32)【優先日】2022-09-01
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SIMULINK
2.UNITY
3.UNREAL ENGINE
(71)【出願人】
【識別番号】504399716
【氏名又は名称】ディズニー エンタープライゼス インコーポレイテッド
(74)【代理人】
【識別番号】100107364
【弁理士】
【氏名又は名称】斉藤 達也
(72)【発明者】
【氏名】アンドリュー ジェシー ミルッチ
(72)【発明者】
【氏名】フェイス エリザベス スミス ハスレバッチャー
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC15
(57)【要約】      (修正有)
【課題】エミュレートされたセンサデータを生成するソフトウェアシミュレーションシステム及び該センサデータに基づいて制御システム出力を生成する試験制御システムを提供する。
【解決手段】制御システムモデルをトレーニングする方法は、物理システムのソフトウェアシミュレーションにシミュレートされた故障を導入するステップ、シミュレートされた故障に基づいて、エミュレートされたセンサデータを生成するステップ、エミュレートされたセンサデータを提供された試験制御システムから出力データを取得するステップ、シミュレートされた故障で出力データをタグ付けしてトレーニングデータを作成するステップ及びトレーニングデータを利用して、制御システムで使用する制御モデルをトレーニングするステップを含む。方法は、任意選択で、追加データ及びソフトウェアシミュレーションシステムを利用して、制御モデルの性能を評価するステップを含む。
【選択図】図5
【特許請求の範囲】
【請求項1】
物理システムのソフトウェアシミュレーションにシミュレートされた故障を導入するステップと、
前記シミュレートされた故障に基づいて、エミュレートされたセンサデータを生成するステップであって、前記エミュレートされたセンサデータは、前記物理システムの1つ以上のセンサからの出力をエミュレートする、前記生成するステップと、
前記エミュレートされたセンサデータを提供された試験制御システムから出力データを取得するステップであって、前記試験制御システムは前記物理システムの制御システムをエミュレートする、前記取得するステップと、
前記シミュレートされた故障で前記出力データをタグ付けしてトレーニングデータを作成するステップと、
前記トレーニングデータを利用して制御システムモデルをトレーニングするステップであって、前記制御システムモデルは、前記物理システムの動作中に前記物理システムの前記制御システムで使用する機械学習モデルである、前記利用するステップと、
を含む方法。
【請求項2】
前記シミュレートされた故障は、モンテカルロ手法を用いて、前記物理システムの前記ソフトウェアシミュレーションに導入される、請求項1に記載の方法。
【請求項3】
前記物理システムは複数のサブシステムを含み、前記複数のサブシステムのそれぞれは前記制御システムによって制御される、請求項1に記載の方法。
【請求項4】
前記物理システムは複数のサブシステムを含み、前記制御システムは前記複数のサブシステムのうちの1つを制御する、請求項1に記載の方法。
【請求項5】
前記シミュレートされた故障は、前記物理システムの現実世界条件を複製する、請求項1に記載の方法。
【請求項6】
前記出力データをタグ付けする前記ステップは、前記物理システムの前記ソフトウェアシミュレーションに導入された前記物理条件で前記出力データをタグ付けすることを含む、請求項5に記載の方法。
【請求項7】
前記制御システムモデルを、前記物理システムの前記制御システムとともに利用して、前記物理システム内の1つ以上の物理条件を識別するステップ
を更に含む、請求項1に記載の方法。
【請求項8】
追加データ及び前記物理システムの前記ソフトウェアシミュレーションを利用して、前記制御システムモデルの性能を評価するステップ
を更に含む、請求項1に記載の方法。
【請求項9】
物理システムのソフトウェアシミュレーションを含むソフトウェアシミュレーションシステムであって、前記ソフトウェアシミュレーションシステムは、前記ソフトウェアシミュレーションシステムへの入力に基づいて、エミュレートされたセンサデータを生成するように構成されており、前記エミュレートされたセンサデータは、前記物理システムの1つ以上のセンサからの出力をエミュレートする、前記ソフトウェアシミュレーションシステムと、
前記物理システムの制御システムをエミュレートする試験制御システムであって、前記エミュレートされたセンサデータに基づいて制御システム出力を生成するように構成された前記試験制御システムと、
を含むシステム。
【請求項10】
前記物理システムの前記1つ以上のセンサからの前記出力に基づいて、前記物理システム内の1つ以上の物理条件を識別するようにトレーニングされる制御モデルであって、前記エミュレートされたセンサデータに対する応答として前記試験制御システムから与えられる情報を使用してトレーニングされる前記制御モデル
を更に含む、請求項9に記載のシステム。
【請求項11】
前記制御モデルは、前記試験制御システムが生成する前記出力を使用してトレーニングされる機械学習モデルである、請求項10に記載のシステム。
【請求項12】
前記制御モデルは、前記物理システムの動作中に前記物理システムの前記制御システムから収集されるデータを使用して更にトレーニングされる、請求項11に記載のシステム。
【請求項13】
前記ソフトウェアシステムは入出力(I/O)エミュレーションインタフェースを含み、前記I/Oエミュレーションインタフェースは、前記エミュレートされたセンサデータを前記試験制御システムに提供する、請求項9に記載のシステム。
【請求項14】
前記試験制御システムは、前記物理システムの前記制御システムに含まれる1つ以上のハードウェアコンポーネントを含む、請求項9に記載のシステム。
【請求項15】
物理システムのハードウェアインザループ(HIL)シミュレーションにおいて、少なくとも1つの導入される故障を含むプログラマチックデータ入力を受け取るステップであって、前記少なくとも1つの導入される故障は、物理システム内の物理条件を表すものであり、前記少なくとも1つの導入される故障は、モンテカルロ手法を用いて前記プログラマチックデータ入力に導入される、前記受け取るステップと、
前記HILシミュレーションにより制御システム出力を生成するステップであって、前記制御システム出力は、前記物理システムを制御する制御システムの出力に対応する、前記制御システム出力を生成する前記ステップと、
前記少なくとも1つの故障を含む前記プログラマチックデータ入力を使用して前記制御システム出力をタグ付けすることにより、データセットを生成するステップと、
前記データセットを使用して制御モデルをトレーニングするステップであって、前記制御モデルは、前記物理システムを制御する前記制御システムの前記出力に基づいて、前記物理システム内の前記物理条件を識別するようにトレーニングされる、前記トレーニングするステップと、
を含む方法。
【請求項16】
前記物理システムの動作に対する応答として、前記物理システムを制御する前記制御システムから収集されたデータを使用して前記データセットを拡張するステップ
を更に含む、請求項15に記載の方法。
【請求項17】
前記制御モデルを、前記物理システムを制御する前記制御システムとともに利用して、前記物理システム内の1つ以上の物理条件を識別するステップ
を更に含む、請求項15に記載の方法。
【請求項18】
前記制御モデルは機械学習モデルである、請求項15に記載の方法。
【請求項19】
前記制御システム出力を生成する前記ステップは、前記少なくとも1つの故障に基づいて、エミュレートされたセンサデータを生成し、前記エミュレートされたセンサデータを提供された試験制御システムから前記制御システム出力を取得することを含む、請求項15に記載の方法。
【請求項20】
前記試験制御システムは、前記物理システムを制御する前記制御システムをエミュレートする、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年4月30日に出願された米国特許第11,010,510号、件名「プロセッサインループ(PIL)シミュレーション用データトランスポートを提供するソフトリアルタイムハブ(SOFT-REAL-TIME HUB PROVIDING DATA TRANSPORT FOR PROCESSOR-IN-LOOP (PIL) SIMULATIONS)」、並びに2021年5月3日に出願された米国特許第11,366,945号、件名「プロセッサインループ(PIL)シミュレーション用データトランスポートを提供するソフトリアルタイムハブ(SOFT-REAL-TIME HUB PROVIDING DATA TRANSPORT FOR PROCESSOR-IN-LOOP (PIL) SIMULATIONS)」に関連し、これらの開示内容は、あらゆる目的のために参照によって完全な形で本明細書に組み込まれている。
【背景技術】
【0002】
一般に、複雑な機械システムや電気機械システムの制御には制御システムが使用される。例えば、ジェットコースターやライド等のテーマパークのアトラクションは、ライドの乗り物を監視及び駆動する制御、並びにアトラクションの他の態様を含み、制御システムによって制御されことが可能である。そのようなシステムの修理及び/又は保守を支援することにも様々な制御システムが使用されてよく、この支援は、そのようなシステムの中の修理又は交換が必要な構成部品を識別することによって行われる。しかしながら、制御システムは、たいていは機械システムや電気機械システムの現在の状態を評価するものであり、構成部品の動作不良が発生する前に、或いは、システムの正常動作の維持のために構成部品の交換が必要になる前に構成部品の動作不良を識別することができない。更に、そのような制御システムは、システム内でのまれな事象の発生(例えば、外的物理条件、システム構成部品のまれな故障等)を識別できない場合がある。
【0003】
複雑な機械システムの制御及び監視には、ソフトウェアコントローラを含む制御システムが使用されることが多い。例えば、遊園地のアトラクションは、制御システムによって制御される複雑なライドシステムを含む場合がある。そのようなアトラクションは更に、ライドシステムの長さに沿って、且つ/又はライドの乗り物の移動経路の周囲にショーシステムが設けられていることがあり、このショーシステムは、ショーシステムが提供するショーが適切に上演されるように制御システムによって制御及び監視されることが可能である。他のタイプの複雑な機械システム(例えば、自動化された生産及び/又は製造システム、自律型の且つ/又は他の機械的構成要素を含む倉庫システム、その他)も、同様に複雑な制御システムによって制御されることが可能である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、上記従来の技術における課題を解決するためになされたものである。
【課題を解決するための手段】
【0005】
本明細書に開示の方法の一例が、物理システムのソフトウェアシミュレーションにシミュレートされた故障を導入するステップと、シミュレートされた故障に基づいて、エミュレートされたセンサデータを生成するステップであって、エミュレートされたセンサデータは、物理システムの1つ以上のセンサからの出力をエミュレートする、上記生成するステップと、を含む。本方法は更に、エミュレートされたセンサデータを提供された試験制御システムから出力データを取得するステップであって、試験制御システムは物理システムの制御システムをエミュレートする、上記取得するステップと、シミュレートされた故障で出力データをタグ付けしてトレーニングデータを作成するステップと、を含む。本方法は更に、トレーニングデータを利用して制御システムモデルをトレーニングするステップであって、制御システムモデルは、物理システムの動作中に物理システムの制御システムで使用する機械学習モデルである、上記利用するステップを含む。
【0006】
任意選択で、幾つかの実施例では、シミュレートされた故障は、モンテカルロ手法を用いて、物理システムのソフトウェアシミュレーションに導入される。
【0007】
任意選択で、幾つかの実施例では、物理システムは複数のサブシステムを含み、複数のサブシステムのそれぞれは制御システムによって制御される。
【0008】
任意選択で、幾つかの実施例では、物理システムは複数のサブシステムを含み、制御システムは複数のサブシステムのうちの1つを制御する。
【0009】
任意選択で、幾つかの実施例では、シミュレートされた故障は、物理システムの現実世界条件を複製する。
【0010】
任意選択で、幾つかの実施例では、出力データをタグ付けするステップは、物理システムのソフトウェアシミュレーションに導入された物理条件で出力データをタグ付けすることを含む。
【0011】
任意選択で、幾つかの実施例では、本方法は更に、制御システムモデルを、物理システムの制御システムとともに利用して、物理システム内の1つ以上の物理条件を識別するステップを含む。
【0012】
任意選択で、幾つかの実施例では、本方法は更に、追加データ及び物理システムのソフトウェアシミュレーションを利用して、制御システムモデルの性能を評価するステップを含む。
【0013】
本明細書に開示のシステムの一例が、物理システムのソフトウェアシミュレーションを含むソフトウェアシミュレーションシステムであって、ソフトウェアシミュレーションシステムは、ソフトウェアシミュレーションシステムへの入力に基づいて、エミュレートされたセンサデータを生成するように構成されており、エミュレートされたセンサデータは、物理システムの1つ以上のセンサからの出力をエミュレートする、ソフトウェアシミュレーションシステムを含む。本システムは更に、物理システムの制御システムをエミュレートする試験制御システムであって、エミュレートされたセンサデータに基づいて制御システム出力を生成するように構成された試験制御システムを含む。
【0014】
任意選択で、幾つかの実施例では、本システムは更に、物理システムの1つ以上のセンサからの出力に基づいて、物理システム内の1つ以上の物理条件を識別するようにトレーニングされる制御モデルであって、エミュレートされたセンサデータに対する応答として試験制御システムから与えられる情報を使用してトレーニングされる制御モデルを含む。任意選択で、幾つかの実施例では、制御モデルは、試験制御システムが生成する出力を使用してトレーニングされる機械学習モデルである。任意選択で、幾つかの実施例では、制御モデルは、物理システムの動作中に物理システムの制御システムから収集されるデータを使用して更にトレーニングされる。
【0015】
任意選択で、幾つかの実施例では、ソフトウェアシステムは入出力(I/O)エミュレーションインタフェースを含み、I/Oエミュレーションインタフェースは、エミュレートされたセンサデータを試験制御システムに提供する。
【0016】
任意選択で、幾つかの実施例では、試験制御システムは、物理システムの制御システムに含まれる1つ以上のハードウェアコンポーネントを含む。
【0017】
本明細書に開示の方法の一例が、物理システムのハードウェアインザループ(HIL)シミュレーションにおいて、少なくとも1つの導入される故障を含むプログラマチックデータ入力を受け取るステップであって、少なくとも1つの導入される故障は、物理システム内の物理条件を表すものであり、少なくとも1つの導入される故障は、モンテカルロ手法を用いてプログラマチックデータ入力に導入される、上記受け取るステップを含む。本方法は更に、HILシミュレーションにより制御システム出力を生成するステップであって、制御システム出力は、物理システムを制御する制御システムの出力に対応する、制御システム出力を生成する上記ステップと、少なくとも1つの故障を含むプログラマチックデータ入力を使用して制御システム出力をタグ付けすることにより、データセットを生成するステップと、を含む。本方法は更に、データセットを使用して制御モデルをトレーニングするステップであって、制御モデルは、物理システムを制御する制御システムの出力に基づいて、物理システム内の物理条件を識別するようにトレーニングされる、上記トレーニングするステップを含む。
【0018】
任意選択で、幾つかの実施例では、本方法は更に、物理システムの動作に対する応答として、物理システムを制御する制御システムから収集されたデータを使用してデータセットを拡張するステップを含む。
【0019】
任意選択で、幾つかの実施例では、本方法は更に、制御モデルを、物理システムを制御する制御システムとともに利用して、物理システム内の1つ以上の物理条件を識別するステップを含む。
【0020】
任意選択で、幾つかの実施例では、制御モデルは機械学習モデルである。
【0021】
任意選択で、幾つかの実施例では、制御システム出力を生成するステップは、少なくとも1つの故障に基づいて、エミュレートされたセンサデータを生成し、エミュレートされたセンサデータを提供された試験制御システムから制御システム出力を取得することを含む。
【0022】
任意選択で、幾つかの実施例では、試験制御システムは、物理システムを制御する制御システムをエミュレートする。
【図面の簡単な説明】
【0023】
図1A】本開示の様々な実施例による、制御システムで使用する機械学習モデルのトレーニングに使用されるシステムのブロック図である。
図1B】本開示の様々な実施例による、物理システムを制御する制御システムで使用されている機械学習モデルを含むシステムのブロック図である。
図2】本開示の様々な実施例によるハードウェアインザループシミュレーション及び開発システムのブロック図である。
図3】本開示の様々な実施例によるハードウェアインザループシミュレーションのブロック図である。
図4】本開示の様々な実施例において使用されるコンピューティングシステムの一例である。
図5】本開示の様々な実施例による、制御システムモデルをトレーニングするプロセスのフローチャートである。
【発明を実施するための形態】
【0024】
本開示は、様々な制御システム(例えば、複雑な電気機械システムの制御に使用される制御システム)の性能及び精度を向上させる実施形態を含む。例えば、制御システムによって制御される機械システムにおいて物理条件を迅速且つ正確に識別及び/又は修正するために機械学習モデルが使用される。機械学習モデルは、機械システムの構成部品(例えば、ブレーキ、モータ)の摩耗、大規模な機械システムのサブシステムの問題(例えば、ゲート、搬送システム、その他におけるタイミング)、外的物理条件(例えば、機械システムにおいて動作不良を引き起こす環境条件)、及び他の、機械システムの機能に影響を及ぼす物理条件を検出しうる。制御システムがそのような物理条件を正しく識別することが可能であれば、制御システムは、物理条件を修正するためのフィードバックをシステムオペレータ、保守担当者、その他に提供することが可能である。機械学習モデルを利用する制御システムは、そのような事象の検出を改善することが可能であり、それによって、機械システムの構成部品の修理及び/又は交換をより迅速に行うことが可能になり、結果としてダウンタイムを短縮することが可能になる。例えば、最終的な故障につながる可能性が高い物理条件をより早期に識別することが可能であり、それによって、システム構成部品の交換を、構成部品の故障によって発生した予定外のシステムダウンタイムではなく予定されたシステムダウンタイムの間に行うことが可能である。
【0025】
そのような機械学習モデルは、一般に、制御システムで使用される前にトレーニングされる。トレーニングのタイプは、機械システムにおいて、修正されなければダウンタイム、動作不良、又は機械システムのダメージを引き起こしうる物理事象を検出及び識別する上で所与の制御システムがいかに効果的であるかに影響を及ぼしうる。例えば、教師なし学習でトレーニングされる機械学習モデルは、そのシステム自体からモデルにフィードされたデータに関してトレーニングされることになり、従って、過去にその物理システムにおいて発生していない物理事象を識別するのは不可能であることになる。教師あり学習手法でトレーニングされる機械学習モデルは、不都合な結果が発生する前に様々な物理事象をより正確に識別することがより可能になりうる。但し、教師あり学習ではタグ付きデータを使用し、そのようなタグ付きデータは、複雑な機械システムや電気機械システムに関して生成することが困難な場合があり、特に、そのシステム内でまれにしか発生しない物理条件に関しては困難でありうる。
【0026】
機械学習モデルのトレーニングに使用されるタグ付きデータの生成は、あるシステム又はそのシステムのある構成部品が故障する前にそのシステムに関して制御システムで受信されたセンサデータを検査することによって行われうる。しかしながら、そのシステム自体からそのようなデータを収集しても、得られるデータセットは限定されたものになりうる。例えば、故障が発現しない限り、特に、まれな故障や変わった故障やありそうもない故障が発現しない限り、システムは長期間にわたって稼働しうる。
【0027】
実際の機械システムに特定の故障を導入すると、有意のシステムダウンタイム、コスト、及び場合によってはシステムのダメージを発生させることが可能である。例えば、動作不良が起こり始めているモータをシステムに導入することが可能であり、これは、システムをオフラインにし、動作しているモータを取り外し、動作不良モータを物理的に接続することによって可能である。するとそのシステムは、動作不良モータが故障するまでそのモータで稼働することになる。そのモータは故障するまで何サイクルにもわたって稼働する可能性があり、結果としてシステムのダウンタイムが長くなる可能性がある。更に、モータが故障するまでシステムを稼働させると、結果としてシステムの他の部分にも悪影響が及びうる(例えば、故障している構成部品を補償するために動作が異常になる構成部品が出てくる可能性がある)。更に、一部の故障(例えば、システム構成部品同士の衝突)については、システムのダメージ、過剰コスト等を引き起こさずにシステムに導入するのは非現実的又は不可能であろう。更に、そのシステムを使用する場合、そのようなデータの生成には時間がかかる可能性がある。これは、システムにおいて新しい故障を発生させる前にシステムをリセットする必要があるためである。
【0028】
本明細書に記載のシステム及び方法は、制御システムで使用する機械学習モデルのトレーニングを、ハードウェアインザループ(HIL)コンポーネントを含む、物理システムのソフトウェアシミュレーションを用いて行うことが可能である。そのようなシステムは、物理システムから収集されたデータを使用する場合には検出が困難又は不可能でありうる様々な故障をシミュレートすることに有用でありうる。例えば、物理システム内でのモータ故障はまれにしか発生しない(例えば、年に数回以下しか発生しない)可能性があるため、そのようなモータ故障を正確に認識するようにモデルをトレーニングすることは困難である且つ/又は時間がかかる可能性がある。これに対し、HILシミュレーションであればモータ故障をオンデマンドでシミュレートすることが可能であり、それによって、モータ故障を引き起こす複数のデータセットを生成することが可能になる。従って、そのようなモータ故障を認識するようにモデルを迅速にトレーニングすることが可能であり、物理システム内でモータ故障が発生する前にモータ故障を認識するようにモデルをトレーニングすることが可能である。
【0029】
本明細書に記載の実施形態は、モンテカルロ法を用いて故障をソフトウェアシミュレーションに導入することにより、制御システムで使用する機械学習モデルをトレーニングするための、よりロバストなトレーニングデータセットを生成することが可能である。例えば、機械システムや電気機械システムの多くの構成部品が、故障する前には挙動が不規則になる可能性がある。例えば、システム内で機械的に作動するロックは、最終的に永続的な動作不良に至る前に、定位置に固定されにくくなることがランダムに起こりうる。一般に、そのような故障(例えば、固定するために複数回の試行を要するロック)がランダム且つ多様に多数のトライアルに導入された複数のデータセットを生成することにより、物理システム内のそのような条件を正確に識別することがより可能なモデルが得られる。例えば、単一のデータセット又は複数の非ランダムなデータセットに基づいてトレーニングされたモデルであれば、データ内の特定箇所の故障を探すようにトレーニングされることが可能である。ランダムなデータでトレーニングされたモデルであれば、データ集合体内の異なる複数の箇所で故障が発生しても故障を認識することがより可能でありうる。更に、そのようにトレーニングされたモデルは、物理システム内で頻繁には起こりえないまれな事象を識別する能力がより高いことが可能であり、タグ付きモンテカルロデータにより、企業の人間の知識(例えば、物理システムのオペレータ及び整備担当者の知識)をトレーニング済みモデルにインポートすることも可能である。
【0030】
本明細書に記載のシステム及び方法は更に、制御システムで使用するためにトレーニングされた制御モデルを評価することが可能である。例えば、制御モデルが物理システムで使用されるべくデプロイされる前に、そのモデルがどのように動作するかが分かるように、そのモデルに付加データ(例えば、シミュレートされたデータ、現実世界のデータ、及び/又は複数のタイプの組み合わせのデータ)を与えることが可能である。例えば、HILシミュレーションは、オペレータコンソールシミュレーションのような要素を含んでよく、オペレータコンソールシミュレーションは、物理システムの動作中にオペレータが見ることが可能であろう出力を示すことが可能である。従って、HILシミュレーションは、モデルの動作が、トレーニングを終えること、及び/又はモデルを物理システムにデプロイすることに十分であるかどうかを判定することに使用されてよい。
【0031】
ここで図面を参照すると、図1Aは、制御システムで使用する制御モデル102のトレーニングに使用されるシステム100を示す。図1Bは、物理システム112を制御する制御システム108で使用される制御モデル102を含むシステム105を示す。大まかには、システム100は、制御モデル102のトレーニングに使用されるデータセット104を生成するために使用されてよいHILシミュレーション106を含み、制御モデル102は、様々な実施例では、機械学習(ML)モデルであってよい。トレーニング済み制御モデル102は、物理システム112及び制御システム108を含むシステム105において使用されてよい。トレーニング済み制御モデル102は、制御システム108で使用されてよく、又は制御システム108に組み込まれてよい。様々な実施例では、システム105は、物理システム112に関する付加情報を物理システム112のオペレータに提供するオペレータコンソール110を含んでよい。そのような付加情報は、機械システムの動作を継続するために修理されてよい物理条件をオペレータ又は保守担当者にアラートする、制御モデル102が検出した物理条件を含んでよい。
【0032】
HILシミュレーション106は、主に、コンピューティング装置と、コンピューティング装置と通信している試験制御システム(例えば、ハードウェア)とを含んでよい。コンピューティング装置は、物理システム112のソフトウェアシミュレーションを実行するために使用されてよい。コンピューティング装置は、任意のタイプのコンピューティングシステムであってよく、例えば、デスクトップコンピュータ、ラップトップコンピュータ等であってよい。試験制御システムは、物理システム112の制御に使用される制御システム108に近いものであってよい。例えば、試験制御システムは、制御システム108に含まれるハードウェアと同じか類似のハードウェアを含んでよい。物理システムのソフトウェアシミュレーションは、一般に、物理システムのシミュレーションに故障を導入するための入力を受け取ってよい。言い換えると、ユーザは、物理システム112内での物理条件をシミュレートしうる幾つかの条件をソフトウェアシミュレーション内で指定してよい。例えば、搬送システムにおいてローラが故障しつつある状況は、制御システム108からは大まかに、搬送システムの動きの中断として見えうる。そのような中断は、最終的にローラが故障するまでに複数回発生しうる。そこで、ソフトウェアシミュレーションの入力は、幾つかの導入された故障を含み、搬送システムの動きの中断をシミュレートする、シミュレートされた搬送システムから収集されたデータの数千回のトライアル又は反復を含みうる。そのような入力に基づいて、物理システム112のソフトウェアシミュレーションは、ソフトウェアシミュレーションへの入力として与えられた、故障を引き起こす物理条件に対する応答として物理システム112のセンサから得られるであろう出力をエミュレートする出力を生成することが可能である。例えば、物理システム112のセンサは、物理システム112においてホイールの緩みがある場合に制御信号を発生させることが可能である。物理システム112のソフトウェアシミュレーションによって生成される、エミュレートされたセンサ出力は、物理システム112のセンサが発生させる制御信号と同じであることが可能である。即ち、試験制御システムは、物理システム112のセンサと、物理システム112のソフトウェアシミュレーションとから同じ制御信号を受け取ることが可能であり、それによって、試験制御システムの挙動は、物理システム112のセンサから制御信号を受け取る場合であれ、物理システム112のソフトウェアシミュレーションからエミュレートされたセンサデータを受け取る場合であれ、同じようになる。幾つかの実施例では、センサ故障と相関している入力に対する応答として、エミュレートされたセンサデータを生成することが可能であり、それによって、制御モデルは、システム内の他の物理故障に加えてセンサ故障も認識するようにトレーニングされる。
【0033】
試験制御システムは、物理システム112の制御に使用される制御システム108と類似の又は同じハードウェアを含んでよい。試験制御システムは、大まかには、ソフトウェア制御システムと通信することにより、エミュレートされたセンサデータを受け取り、エミュレートされたセンサデータに対する応答として制御システム出力を生成することが可能である。試験制御システムが制御システム108と類似の又は同じハードウェアを含むため、そのような制御システム出力は、物理システム112のセンサからの同じ入力に対する応答として制御システム108で生成されるであろう出力と同一又はほぼ同等であることが可能である。
【0034】
HILシミュレーション106は、データセット104を生成するために使用されてよい。そのようなデータセット104は、制御モデル102をトレーニングするために使用されてよく、且つ/又は、更なるMLモデルをトレーニングするために様々な格納場所に格納されてよい。データセット104は、HILシミュレーション106が生成するラベル付きデータであってよい。幾つかの実施例では、そのようなデータセット104は、HILシミュレーション106への複数の入力に対する応答としてHILシミュレーション106が生成するデータを含んでよい。更に、データセット104によっては、HILシミュレーション106が生成するデータに加えて、物理システム112から収集されるデータを含んでよい。例えば、物理システム112において特定の物理条件が発生する場合があり、その同じ物理条件に対する応答として、HILシミュレーション106を使用して追加データを生成することが望ましい場合があり、それによって、制御モデル102は、物理システム112の今後の動作時にその物理条件を識別することがより可能になる。
【0035】
システム105では、制御モデル102は、物理システム112を制御する制御システム108で使用されてよく、又は制御システム108に組み込まれてよい。幾つかの実施例では、制御モデル102は、新しい物理システム112の開発中にトレーニングされてよく、それによって、制御モデル102がトレーニングされると、物理システム112用の新しい制御システムが開発される。そのような実施例では、制御システム108は、制御システム内に制御モデル102を格納して実行することが可能なメモリコンポーネント及び/又は処理コンポーネントを含んでよい。別の実施例では、制御モデル102は、既存の物理システム112で使用されてよい。使用される制御システムに応じて、制御モデル102は、制御システム108において更新されてよく、又は、既存の制御システム108と通信しているコンピューティングシステムに与えられてよい。制御システム108と通信しているコンピューティングシステム上に制御モデル102を備えることにより、古い制御システム108に制御モデル102を後付けして、その制御システム108の動作を改善することが可能になりうる。
【0036】
様々な実施例では、制御システム108を使用して制御される物理システム112は、任意のタイプの機械システム又は電気機械システムであってよく、例えば、遊園地のアトラクションのライドシステム又はショーシステム、組立ライン又は他の自動製造システム、倉庫物流用システム、自動運転又は自律走行の乗り物、航空機システム及び航空宇宙システム、管理された工業プロセス(例えば、化学品製造)、船上ナビゲーション又は海上ナビゲーション、その他であってよい。様々な実施例では、物理システム112は多数のコンポーネントを含んでよく、これらは、大きな物理システム112の中でサブシステムにグループ分けされてよい。例えば、アトラクションのライドシステムの中の照明システム、搬送システム、音響システム、及びゲートシステムは、それぞれが大きな物理システム112の中のサブシステムであってよい。幾つかの実施例では、そのようなサブシステムはセカンダリ制御システムによって制御されてよく、セカンダリ制御システムは、物理システム112を全体的に制御するプライマリ制御システムと通信してよい。
【0037】
物理システム112及び/又は制御システム108は更に、オペレータコンソール110に接続されるか、オペレータコンソール110と通信してよい。オペレータコンソール110は、物理システム112及び/又は制御システム108への入力を与えること、及びそれらからの出力を受け取ることに使用されてよい。例えば、オペレータコンソール110は、物理システム112の停止、始動、又は他の手動制御(例えば、減速)を行うように動作可能なスイッチ、ボタン、又は他の操作要素を含んでよい。オペレータコンソール110は更に、制御モデル102を含む制御システム108からの出力を表示するための画面、アラーム要素、又は他の出力要素を含んでよい。例えば、オペレータコンソール110は、制御システム108が受け取ったセンサデータに基づいて制御モデル102がある物理条件を識別したときに警告を表示する画面を含んでよい。例えば、物理システム112内のモータが過電流を引き込んでいること、即ち、モータが故障するか他の動作不良を起こす可能性が高いことを示すセンサデータを制御システム108が受け取る場合がある。その場合、オペレータコンソール110は、その物理条件(例えば、物理システム112内のモータの問題)をオペレータ、保守担当者、又は他の要員に通知する情報を表示してよい。
【0038】
幾つかの実施例では、オペレータコンソール110は、制御モデル102から与えられる他の情報も表示してよく、例えば、推定される、構成部品が故障するまでの時間(又は物理システム112のサイクル数)を表示してよい。そのような情報は、その物理条件をいかに修正すべきかをオペレータ及び/又は保守担当者が決定するのを支援できる。例えば、制御モデル102が、実際の動作不良のだいぶ前に故障の可能性を識別できれば、予定外の保守のために物理システム112を停止させることなく、次の定期保守時にその構成部品を交換又は修理することが可能である。これに対し、定期保守時まで待てない構成部品の動作不良又は故障が予測された場合には、故障する前にその構成部品を交換する予定外の保守のために物理システム112を停止させることになる。構成部品を、完全に故障する前に交換又は修理することにより、物理システム112の全体としてのダウンタイムを短縮することが可能である。これは、その構成部品が、物理システム112の他の構成部品に影響を及ぼしうる形で故障する可能性が小さくなるためである。
【0039】
図1Aに示すように、制御モデル102のトレーニングを評価するために、制御モデル102とHILシミュレーション106との間のフィードバック及び評価の接続105を使用できる。例えば、そのような評価は、制御モデル102のトレーニングを続けるべきかどうか、制御モデル102は現実世界条件下でどのように動作する可能性が高いか、及び/又は、制御モデル102の動作は物理システムにデプロイされるのに十分であるかどうか、を判定するのに有用でありうる。制御モデル102の評価に使用するデータとして、HILシミュレーション106が生成するタグ付き又はタグなしのデータ、タグ付き又はタグなしの現実世界データ、その他があってよい。現実世界データの使用は、制御モデル102が現実世界条件下でどのように動作する可能性が高いか、及び、制御モデル102は様々な現実世界シナリオでの追加トレーニングの恩恵を受けうるかどうか、を判定するのに役立ちうる。例えば、タグなし現実世界データは、物理システム112から収集されるデータを含んでよく、これは、物理システム112で使用される、制御システム108からの出力を含む。
【0040】
様々な実施例では、制御モデル102のそのような評価に、HILシミュレーション106のシミュレートされたオペレータコンソールが使用されてよい。例えば、シミュレートされたオペレータコンソールは、ユーザが、(例えば、シミュレートされたシステムを始動及び停止すること、及び/又は他の方法で、シミュレートされたシステムを調節することによって)シミュレートされたシステムに入力を与えること、並びに物理システム112とともに使用されているオペレータコンソール110に表示されるであろう出力と類似した、制御モデル102からの出力を見ることを可能にできる。例えば、そのような出力として、システム内の物理条件又は問題の識別結果、システム内の問題を修正するアクションの提案(例えば、保守のためにシステムを直ちに停止させること、又は、指定された時間枠内で特定の構成部品に対して保守を実施すること、その他)があってよい。そのような出力として更に、その物理条件がシステムの外にあるため(例えば、システムの動作の問題を引き起こす物理的障害物)、その物理条件をシステム自体の保守によって修正することができないことを示すものがあってよい。制御モデル102は、シミュレートされたオペレータコンソールに有用な且つ/又は正しい出力が与えられるかどうかに基づいて評価されてよく、その出力は、制御モデル102が(完全に又は特定のシナリオにおいて)十分にトレーニングされていること、及び/又は、制御モデル102が、物理システム112とともに使用されるためにデプロイされる準備ができていることを示すものとなる。幾つかの実施例では、フィードバック及び評価の接続105は更に、強化学習による制御モデル102の更なるリファインメント及び/又はトレーニングに使用されてよく、これは、タグなしデータによるモデルの動作に基づいてモデルに報酬を与えることが可能である。
【0041】
図2を参照すると、HILシミュレーション106は、大まかには、ソフトウェアシミュレーションシステム114及び試験制御システム116を含んでよい。HILシミュレーション106は、大まかには、HILシミュレーション106への入力に基づいて制御システム出力を生成してよい。そのような入力は、例えば、物理システムの動作をシミュレートするソフトウェアシミュレーションシステム114に導入される様々な故障を含んでよい。そのような制御システム出力は、制御モデル102(例えば、MLモデル)のトレーニングのために開発システム124に与えられてよく、制御モデル102は、ソフトウェアシミュレーションシステム114がシミュレートする物理システムを制御する制御システムに組み込まれてよく、或いはその制御システムと組み合わせて使用されてよい。開発システム124は、HILシミュレーション106に与えられた入力118を、HILシミュレーション106から受け取った制御システム出力と相互に関連付けるデータタグ付け120を使用して、制御モデル102をトレーニングするためのデータセットを生成してよい。そのようにタグ付けされたデータは、データストア126に格納されてよく、データストア126は、制御モデル102のトレーニング及びリファインメントのために制御モデル122からアクセス可能であってよい。
【0042】
図3は、HILシミュレーション106の詳細ブロック図であり、HILシミュレーション106は、シミュレーションシステム114上で実行されるソフトウェアシミュレーションシステム115と、試験制御システム116とを含む。ソフトウェアシミュレーションシステム115は、大まかには、ソフトウェアシミュレーションシステム115への入力に基づいて、エミュレートされたセンサデータを生成するように構成された、1つ以上のコンピューティング装置(例えば、シミュレーションシステム114)上で実行されるソフトウェアベースのシステムであってよい。エミュレートされたセンサデータは、物理システムの1つ以上のセンサからの出力をエミュレートしてよい。そのようなエミュレートされたセンサデータは、試験制御システム116に与えられてよい。試験制御システム116は、エミュレートされたセンサデータに基づいて制御システム出力を生成してよく、この制御出力は、物理システムを制御する制御システムの出力に対応する。例えば、試験制御システム116は、物理システムを制御する制御システムのコンポーネントを反映する又はそのコンポーネントと一致するように設計されてよく、それによって、エミュレートされたセンサデータに対する応答として試験制御システム116が生成する制御システム出力は、物理システムからの対応するセンサデータに対する応答としての制御システムの出力と同一又はほぼ同等である。
【0043】
シミュレーションシステム114は、大まかには、シミュレーションシステム114において実行されるソフトウェアシミュレーションシステム115を含む。ソフトウェアシミュレーションシステム115は、大まかには、システムシミュレーション128及びシミュレーションインタフェース130を含み、これらはデータ相互接続ハブ132に接続してよい。データ相互接続ハブ132からの出力は、大まかには、入出力(I/O)インタフェースエミュレーション136及びタイミングエンジン134からのデータ及び/又は出力と組み合わされてよく、且つ/又はそのデータ及び/又は出力により増強されてよく、それによって、エミュレートされたセンサデータが生成されてよい。エミュレートされたセンサデータは、試験制御システム116に接続された、シミュレーションシステム114のネットワークインタフェースカード(NIC)138a~138fを介して試験制御システム116に与えられてよい。
【0044】
システムシミュレーション128は、物理システムのシミュレーションであってよい。幾つかの実施例では、システムシミュレーション128は、物理システムのハイレベルシミュレーションであってよく、例えば、プラントモデル又は他のシステムシミュレーションであってよい。幾つかの実施例では、システムシミュレーション128は、システムの詳細シミュレーションであってよく、例えば、制御下システムシミュレーション又はシステムモデル(例えば、Simulink乗り物物理モデル等)であってよい。そのような詳細シミュレーションは、物理システムの様々なサブシステム又はサブコンポーネント(例えば、センサ、ドア、ブレーキ、チェーン、ゲート、及び他のシステム要素又はサブシステム)の間のインタラクションに関する情報を出力してよい。システムシミュレーション128は更に、付加的なシミュレーションツールを含んでよく、例えば、システムビジュアライザ(例えば、Unity、Unreal Engine、又は他の同様のツール)を含んでよい。システムシミュレーション128は、幾つかの実施例では、物理システムに関する追加情報に基づいて時間とともに更新されてよい。例えば、開発中のシステムに対してハイレベルシミュレーションが用いられてよい。物理システムの開発が更に進むと、ハイレベルシミュレーションは、より詳細なシミュレーションに置き換えられてよい。例えば、ソフトウェアシミュレーションシステム115は、第1のセンサ又はセンサグループからの出力に関して制御モデルをトレーニングするための出力を生成してよく、制御モデルは更に、追加センサからの出力に関してトレーニングされてよく、その追加センサは(例えば、システムに追加コンポーネントが追加されたときに)システムシミュレーション128に追加される。
【0045】
物理システムが、プライマリ制御システムと通信している独立の制御システムのグループを含む場合には、システムシミュレーション128は、そのようなグループをシミュレートするように構成されたフリートシミュレータであってよい。システムシミュレーション128は、幾つかの実施例では、物理システムの様々なコンポーネントに関する複数のシミュレーションを含んでよく、それらの各シミュレーションは個別にデータ相互接続ハブ132に接続されてよい。例えば、物理システムのサブシステム(例えば、ブレーキ、ゲート、車両ドア、搬送システム、及び他のサブシステム又はサブコンポーネント)に独立モデルが使用されてよい。
【0046】
ソフトウェアシミュレーションシステム115は更に、シミュレーションインタフェース130を含んでよい。シミュレーションインタフェース130は、大まかには、システムシミュレーション128、データ相互接続ハブ132、及び/又は他の、ソフトウェアシミュレーションシステム115のコンポーネントに入力を与えてよく、且つ、それらからの出力を監視することに使用されてよい。幾つかの実施例では、シミュレーションインタフェース130は、異なる複数のタイプのインタフェースを含んでよく、例えば、シミュレートされたオペレータインタフェース、シミュレーションインタフェース、その他を含んでよい。シミュレーションインタフェース130は、ソフトウェアシミュレーションシステム115の他のコンポーネントに対する1つ以上のグラフィカルユーザインタフェース(GUI)及び/又はプログラマチックインタフェースを備えてよい。例えば、シミュレーションインタフェース130は、シミュレートされたオペレータインタフェースを含んでよく、これは、システムシミュレーション128に入力を与えるために使用されるGUIであってよく、例えば、システムシミュレーション128を開始及び停止したり、他のオペレータ入力をシステムシミュレーション128に与えたりするためのGUIであってよい。シミュレーションインタフェース130は更に、システムシミュレーション128にスクリプト入力を与えるプログラマチックインタフェースを含んでよい。他のタイプのインタフェースとして、システムシミュレーション128、ソフトウェアシミュレーションシステム115からの出力、及び/又はソフトウェアシミュレーションシステム115の他のコンポーネントを監視するGUIがあってよい。幾つかの実施例では、シミュレーションインタフェース130は更に、ソフトウェアシミュレーションシステム115及び/又はソフトウェアシミュレーションシステム115のコンポーネントからデータ(例えば、導入されたシステム故障、エミュレートされたセンサデータ、その他)を収集するためのプログラマチックインタフェースであってよい。例えば、様々なタイミングでシステムシミュレーション130に導入された故障に関してデータが収集されてよい。そのようなデータは、試験制御システム116からの制御出力をタグ付けして、制御モデル122をトレーニングするためのデータセットを作成するために使用されてよい。
【0047】
システムシミュレーション128及びシミュレーションインタフェース130はそれぞれ、データ相互接続ハブ132に入力を与えてよい。データ相互接続ハブ132は、大まかには、シミュレーション(例えば、システムシミュレーション128)とI/Oエミュレーション(例えば、ソフトウェアシミュレーションシステム115が生成するエミュレートされたセンサデータ)との間の決定論的データトランスポートを提供してよい。そのようなデータトランスポートを与えるために、データ相互接続ハブ132は、データをメモリに格納し、ユーザ定義間隔でデータを(例えば、試験制御システム116に、且つ/又はソフトウェアシミュレーションシステム115の他のコンポーネントに)伝送してよい。例えば、ユーザはデータ処理の間隔を5ミリ秒と定義してよく、データ相互接続ハブはデータの書き込みを5ミリ秒間隔で行ってよい。
【0048】
タイミングエンジン134及びI/Oインタフェースエミュレーション136が生成しうる出力は、データ相互接続ハブ132からの出力と組み合わされると、ソフトウェアシミュレーションシステム115への入力に対する応答として、エミュレートされたセンサデータを生成する。I/Oインタフェースエミュレーション136は、大まかには、エミュレートされたセンサデータを試験制御システム116に与えるために、物理システムのI/Oインタフェースをエミュレートしてよい。例えば、I/Oインタフェースエミュレーション136は、様々なタイプのI/Oネットワークインタフェース(例えば、EtherCAT、Allen-Bradley Ethernet/IP、その他)をエミュレートしてよい。そのようなエミュレーションは、ソフトウェアシミュレーションシステム115と制御システム116との間に透明なインタフェースを設けることが可能である。即ち、制御システム116は、ソフトウェアシミュレーションシステム115が生成するエミュレートされた出力と、物理システムが生成する出力とを区別できない。
【0049】
タイミングエンジン134は、ソフトウェアシミュレーションシステム115がリアルタイム又は近リアルタイムのエミュレートされた出力を与えることを可能にできる。例えば、タイミングエンジン134は、データ相互接続ハブ132が試験制御システム116にデータを伝送する間隔を制御してよい。例えば、ユーザは、ソフトウェアシミュレーションシステム115によるリアルタイム又は近リアルタイムのデータトランスポートを維持しながら、処理及び通信のオーバヘッドを制御する間隔を5ミリ秒に定義してよい。
【0050】
図2を参照すると、ソフトウェアシミュレーションシステム115には入力118が与えられてよい。入力118は、様々な実施例では、ソフトウェアシミュレーションシステム115内でシミュレートされた故障を発生させるために入力されてよい。そのような入力は、ソフトウェアシミュレーションシステム115のサブコンポーネント(例えば、シミュレーションインタフェース130及び/又はシステムシミュレーション128)を通して与えられてよい。例えば、入力はシミュレーションインタフェース130にプログラマチックに与えられてよい(シミュレーションインタフェース130がそのようなプログラマチックデータを受け入れる場合)。プログラマチック入力は、システムシミュレーション128がモデル化する物理システムのコンポーネントの動作不良又は故障を最終的に引き起こす可能性がある増分条件を模倣するために時間をかけてシステムシミュレーション128に導入される複数のデータ点を含んでよい。例えば、ブレーキの摩耗は、制御システムからは、ブレーキに対するランダムな過剰圧力と認識されうる。制御システムは、そのようなランダムな過剰圧力を故障発生までに任意の場所で5~75回検出しうる。従って、プログラマチック入力は、ブレーキに対する過剰圧力の5~75件のインスタンスを含む2500回のトライアルのデータを含みうる。様々な実施例では、物理システムに見られるランダム性をエミュレートするために、モンテカルロ方法を用いてそのようなインスタンスをトライアルにランダムに挿入してよい。
【0051】
別の実施例では、システム内のモータが故障発生の前に通常より多い電流を引き込む可能性がある。制御システムは、そのような電流引き込みの増加を一連の過電流事象と認識しうる。モータが引き込むランダム過剰電流のシミュレートされた故障を導入するために、ソフトウェアシミュレーションシステム115又はソフトウェアシミュレーションシステム115に関連する別のコンピューティングシステムで実行されているプログラムが、ソフトウェアシミュレーションシステム115に対し、モータ故障に関連付けられる一連の過電流事象を反映するエミュレートされたセンサデータを生成するように指示することが可能である。そのようなエミュレートされたセンサデータは、試験制御システム116に与えられてよい。様々な実施例では、そのようなプログラマチック入力を試験制御システム116に複数回与えることによって、制御モデル102をトレーニングするためのよりロバストなデータセットを生成することが可能である。
【0052】
プログラマチック入力のトライアルへの故障の導入は、モンテカルロ法を用いて制御されてよく、それによって、故障はプログラマチック入力の各反復において様々なタイミングで見られる。結果として、制御モデル102は、物理システムにおいてそのような事象を識別することの信頼度が、1つの事象に関してトレーニングされた(例えば、物理システムから収集されたデータを使用してトレーニングされた)同様のモデルより高くなることが可能である。ソフトウェアシミュレーションシステム115へのプログラマチック入力により、データ生成の自動化が可能になり、これは、物理システムからのデータ収集において大幅な時間節約につながる。ソフトウェアシミュレーションシステム115への入力の生成が大幅な時間節約につながりうるため、よりロバストなデータセットの生成が可能になり、それによって、制御モデル102はより正確且つ有用になりうる。例えば、物理システムからデータを収集するには、物理システムを実際に動作させることが必要な場合があり、これは、ソフトウェアシミュレーションシステム115にプログラマチック入力を与える場合よりもずっと時間がかかりうる。更に、物理システムを使用して複数のデータセットを生成するには、物理システムをリセットして初期状態にすることが必要な場合があり、これは、HILシミュレーション106をリセットする場合よりもずっと時間がかかりうる。
【0053】
図3を参照すると、試験制御システム116は、物理システムの制御に使用される制御システムをエミュレートしてよい。例えば、試験制御システム116は、エミュレートされたセンサデータを受け取り、同じセンサデータを受け取った物理システムの制御システムであれば生成するであろう出力と同一又はほぼ同等の出力を生成することが可能である。試験制御システム116は、物理システムを制御する制御システムにおいて使用される様々なハードウェアコンポーネントを含んでよく、そのようなコンポーネントは、制御システムのコンポーネントが物理システムのコンポーネントに接続される場合と全く同じように、シミュレーションシステム114のNIC138a~138fに接続されてよい。例えば、試験制御システム116の様々なコンポーネントと、シミュレーションシステム114のNIC138a~138fとの接続は、ハードワイヤード接続(例えば、物理接続)で、且つ/又は、ネットワーク接続(例えば、I/Oインタフェースエミュレーション136によって与えられるリアルタイムI/Oネットワーク、ショーネットワーク、及び/又は他の内部ネットワーク)で行われてよい。そのような接続は、制御システム108が物理システム112に対して生成する現実世界通信を反映するデータ及びアクションを、シミュレーションシステム114が試験制御システム116から受け取ることを可能にできる。例えば、制御システム108が生成し、物理システム112、オペレータコンソール110、又は他のコンポーネントが受け取るデータパケットは、試験制御システム116が生成し、シミュレーションシステム114が受け取るデータパケットと同じでありうる。そのような通信は、物理システム112(又は物理システム112のコンポーネント)が制御システム108からの出力を受け取り、これに応答する場合と同様に、シミュレーションシステム114によって利用されてよく、例えば、シミュレートされたオペレータインタフェース130を介して出力を与えるために、且つ/又は、試験制御システム116からの信号に対する応答としてシステムシミュレーション128を調節するために利用されてよい。
【0054】
図3に示すように、試験制御システム116は、プログラマブルロジックコントローラ(PLC)140、スイッチ142、及び一般化予測制御(GPC)ユニット144及び146等のハードウェアコンポーネントを含んでよい。そのようなハードウェアコンポーネントは、それぞれが、シミュレーションシステム114から何らかのデータを受け取り、受け取ったデータを処理するように構成されてよい。例えば、シミュレーションシステム114のNIC138a~138fは、試験制御システム116のハードウェアコンポーネントのいずれかに接続されてよい。幾つかの実施例では、PLC140並びにGPC144及び146は、それぞれが、シミュレーションシステム114からデータを受け取り、受け取ったデータを処理し、処理したデータをスイッチ142に与えてよい。スイッチ142から与えられるデータは、HILシミュレーション106全体からの制御システム出力であってよい。そのような制御システム出力は、物理システムを制御する制御システムから与えられる出力と同一又はほぼ同等であってよく、その場合、物理システムからの出力は、ソフトウェアシミュレーションシステム115から与えられるエミュレートされたセンサデータと同一又はほぼ同等である。
【0055】
図2を参照すると、開発システム124は、一般に、HILシミュレーション106と通信していてよく、HILシミュレーション106から受け取ったデータにタグを付けて、制御モデル102(のトレーニング及び/又は評価)の開発において使用されるデータセットを生成してよい。様々な実施例では、開発システム124は、データタグ付け120においてHILシミュレーション106からの出力を受け取ってよく、データタグ付け120は、そのような出力データを、ソフトウェアシミュレーション115に導入された対応する故障と相互に関連付ける(例えば、タグ付けする)ことが可能である。幾つかの実施例では、そのようなデータ相関はHILシミュレーション106内で行われてよく、データタグ付け120は、HILシミュレーション106から受け取ったデータを別の形でフォーマットしてからデータストレージ126に格納してよい。例えば、データタグ付け120は、類似のデータセット(例えば、システムシミュレーション128内で同じ条件に基づいて生成されたデータセット)を集約して、制御モデル102のトレーニングに使用される単一データセットにしてよい。データタグ付け120は更に、そのような類似のデータセットを、制御モデル102のトレーニング又は評価用として指定してよい。例えば、トレーニングのために、タグ付けされたデータセットが制御モデル102に与えられてよく、第2に、制御モデルの正確さの評価のために、タグ付けされていないデータセットが制御モデル102に与えられてよい。制御モデル102からの出力は、第2のデータセットの入力条件と比較されてよく、これもデータストレージ126に格納されてよい。
【0056】
様々な実施例では、データセットはデータストレージ126に格納されてよく、データストレージ126はローカルであってよく、別の形で開発システム124からアクセス可能であってもよい。例えば、データストレージ126は、ローカルデータストレージ、共用ストレージドライブ、クラウドストレージロケーション等であってよい。様々な実施例では、データストレージ126は複数のデータセットを保持してよく、これらのデータセットは、それぞれが、異なる物理条件又は物理条件のセットを識別するように制御モデル102をトレーニングするために生成される。例えば、データストレージ126は、ブレーキ故障を識別するように制御モデル102をトレーニングするためのデータセット、モータ故障を識別するように制御モデル102をトレーニングするためのデータセット、及びシステム内の作動したロックに関する問題を識別するためのデータセットを含んでよい。
【0057】
データ126に格納されて制御モデル102のトレーニングに使用されるデータセットは、HILシミュレーション106を使用して生成されてよく、且つ/又はHILシミュレーション106で生成されたデータと、物理システムから収集されたデータとの組み合わせであってよい。物理システムから収集されたデータを使用することにより、HILシミュレーション106にプログラマチックに導入することが困難でありうるか、物理システムが動作しないと予見できない場合がある、現実世界条件由来の複雑な問題を制御モデル102が識別することを可能にできる。例えば、乗客が乗ったライドシステムを動作させると、システムシミュレーション128の使用では認識も予期もされない物理条件がライドシステムに導入される可能性があり、そのような物理条件として、例えば、ものが線路上に落下すること、乗客が所持する液体又は他の流体(例えば、水、ソーダ、日焼け止め剤等)がライドシステムのコンポーネント上に漏れ出すこと、乗客がライドシステムのコンポーネントに衝撃を与えること等がある。そのような事象から生成されたデータセットを追加することにより、そのような外部から導入された物理条件に起因する問題を制御モデル102が識別することを可能にでき、これによって、物理システムの動作不良につながりうる物理条件を診断して修正することにおいて制御モデル102が一層有用になる。
【0058】
制御モデル102は、教師あり又は半教師ありの手法を用いてトレーニングされた機械学習モデルであってよい。例えば、制御モデル102は、HILシミュレーション106で生成されたタグ付きデータセットを使用してトレーニングされてよい。例えば、制御モデル102は、タグ付きデータセットからのフィードバックを使用してトレーニングされてよく、制御システム又は試験制御システム116からの入力データに基づいて物理条件を識別するために回帰及び分類の手法を利用してよい。幾つかの実施例では、制御モデル102は更に、物理システムの、特定のセンサ出力を引き起こす物理条件を識別するだけでなく、システムコンポーネントの故障又は動作不良が発生するまでの推定時間(例えば、コンポーネントの故障又は他の形の動作不良が発生するまでに物理システムが動作しうるサイクル数)のような追加情報も識別するようにトレーニングされてよい。
【0059】
図4を参照すると、本明細書に記載の実施例にある様々な実施形態を実施するためにコンピューティングシステムの一例200が使用されてよい。例えば、様々な実施形態では、シミュレーションシステム114及び開発システム124は、1つ又は複数のコンピューティングシステム200によって実施されてよい。本開示は、任意の適切な数のコンピューティングシステム200を想定している。例えば、コンピューティングシステム200は、サーバ、デスクトップコンピューティングシステム、メインフレーム、コンピューティングシステムのメッシュ、ラップトップ又はノートブックのコンピューティングシステム、タブレットコンピューティングシステム、埋め込みコンピューティングシステム、システムオンチップ、シングルボードコンピューティングシステム、又はこれらのうちの2つ以上の組み合わせであってよい。コンピューティングシステム200は、必要に応じて、1つ以上のコンピューティングシステムを含んでよく、単体又は分散型であってよく、複数の場所にまたがってよく、複数の場所にまたがってよく、複数のマシンにまたがってよく、複数のデータセンタにまたがってよく、又はクラウドにあってよく、クラウドは、1つ以上のネットワークに1つ以上のクラウドコンポーネントを含んでよい。
【0060】
コンピューティングシステム200は、バス210(例えば、アドレスバス及びデータバス)又は他の、情報を伝達するための通信機構を含み、これはサブシステム及びデバイスを相互接続し、サブシステム及びデバイスは、例えば、プロセッサ208、メモリ(例えば、RAM)、静的ストレージ204(例えば、ROM)、動的ストレージ206(例えば、磁気式又は光学式)、通信インタフェース216(例えば、モデム、イーサネットカード、イーサネット又は他の有線ネットワークと通信するためのネットワークインタフェースコントローラ(NIC)又はネットワークアダプタ、無線ネットワーク(Wi-Fiネットワーク等)と通信するための無線NIC(WNIC)又は無線アダプタ)、入出力(I/O)インタフェース220(例えば、キーボード、キーパッド、マウス、マイクロホン)である。特定の実施形態では、コンピューティングシステム200は、任意のそのようなコンポーネントのうちの1つ以上を含んでよい。
【0061】
特定の実施形態では、プロセッサ208は、(例えば、コンピュータプログラムを構成している)命令を実行するハードウェアを含む。例えば、プロセッサ208は、ソフトウェアシミュレーションシステム115用の命令を実行してよい。プロセッサ208の回路は、様々な処理機能を実施する回路を含み、例えば、特定の計算又はタスクを実施する特定のソフトウェアを実行する回路を含む。特定の実施形態では、I/Oインタフェース220は、コンピューティングシステム200と1つ以上のI/Oデバイスとの間の通信のための1つ以上のインタフェースを提供するハードウェア、ソフトウェア、又はその両方を含む。コンピューティングシステム200は、これらのI/Oデバイスのうちの1つ以上を必要に応じて含んでよい。これらのI/Oデバイスのうちの1つ以上が、人とコンピューティングシステム200との間の通信を可能にできる。
【0062】
特定の実施形態では、通信インタフェース216は、コンピューティングシステム200と1つ以上の他のコンピュータシステム又は1つ以上のネットワークとの間の通信(例えば、パケットベースの通信等)のための1つ以上のインタフェースを提供するハードウェア、ソフトウェア、又はその両方を含む。1つ以上のメモリバス(それぞれがアドレスバス及びデータバスを含んでよい)がプロセッサ208をメモリ202に結合してよい。バス210は、後述のように、1つ以上のメモリバスを含んでよい。特定の実施形態では、プロセッサ208とメモリ202との間に1つ以上のメモリ管理ユニット(MMU)があり、これらは、プロセッサ208からリクエストされたメモリ202へのアクセスを促進する。特定の実施形態では、バス210は、コンピューティングシステム200のコンポーネント同士を結合するハードウェア、ソフトウェア、又はその両方を含む。
【0063】
特定の実施形態によれば、コンピューティングシステム200は、メモリ202に収容されている1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ208によって特定の動作を実施する。例えば、ソフトウェアシミュレーションシステム115、データタグ付け120、及び/又は制御モデル122のための命令は、メモリ202に収容されてよく、プロセッサ208によって実行されてよい。そのような命令は、別のコンピュータ可読/可用媒体(例えば、静的ストレージ204又は動的ストレージ206)からメモリ202に読み込まれてよい。代替実施形態では、ソフトウェア命令の代わりに、又はソフトウェア命令との組み合わせで、ハードワイヤード回路が使用されてよい。従って、特定の実施形態は、ハードウェア回路及び/又はソフトウェアの任意の特定の組み合わせに限定されない。様々な実施形態では、「ロジック」という用語は、本明細書に開示の特定の実施形態の全て又は一部を実施するために使用される、ソフトウェア又はハードウェアの任意の組み合わせを意味する。
【0064】
本明細書では「コンピュータ可読媒体」又は「コンピュータ可用媒体」という用語は、プロセッサ208に実行させる命令をプロセッサ208に与えることに関与する任意の媒体を意味する。そのような媒体は様々な形態であってよく、例えば、不揮発性媒体及び揮発性媒体であってよく、これらに限定されない。不揮発性媒体としては、例えば、静的ストレージ204又は動的ストレージ206のような光ディスクや磁気ディスクがある。揮発性媒体としては、メモリ202のような動的メモリがある。
【0065】
コンピューティングシステム200は、プログラム(例えば、アプリケーションコード)を含むメッセージ、データ、及び命令の送受信を、通信リンク218及び通信インタフェース216を通して行ってよい。受信されたプログラムコードは、受信時にプロセッサ208で実行されてよく、且つ/又は、後で実行するために静的ストレージ204又は動的ストレージ206、又は他のストレージに格納されてよい。データの格納にはデータベース214が使用されてよく、データベース214にはコンピューティングシステム200からデータインタフェース212経由でアクセス可能である。例えば、制御モデル102をトレーニングするためのデータセットが、データベース214に格納されてよい。様々な実施例では、通信リンク218が開発システム124及び/又はシミュレーションシステム114と通信してよい。
【0066】
図5は、本開示の様々な実施例による、制御システムモデルをトレーニングするプロセス300を示す。ブロック302で、シミュレートされた故障がシステムのソフトウェアシミュレーションに導入される。様々な実施例では、シミュレートされた故障が、より大きなデータセットの一部としてソフトウェアシミュレーションシステム115に導入されてよく、このデータは、シミュレーションインタフェース130を通してシステムシミュレーション128にプログラマチックに与えられてよい。例えば、1000サイクル分のシミュレートされたシステムを含むデータセットが、特定のモータに関する過電流事象の幾つかのインスタンスを含んでよく、これらはモータの最終的な故障につながるものである。幾つかの実施例では、シミュレートされた故障は、シミュレーションインタフェース130(即ち、例えば、システムシミュレーション128のGUI)を介するシステムシミュレーション128との直接インタラクションによって与えられてよい。シミュレーションインタフェース130とのそのようなインタラクションは、例えば、システムシミュレーション128において、シミュレートされた物理システムの中の条件を変更することであってよく、例えば、動作不良を起こし始めている問題又はコンポーネントをシミュレートされた物理システムに挿入すること、並びに、システムシミュレーション128を使用して、シミュレートされたシステムの中の物理条件の変化に対する応答としてデータを生成することであってよい。
【0067】
幾つかの実施例では、モンテカルロ法を用いてデータにランダム性を導入することにより、ソフトウェアシミュレーションシステム115に故障が導入されてよい。例えば、動作不良コンポーネントは、動作不良の始まり方が往々にしてランダムである場合があり、一方、動作不良が起きていない場合には正常動作しているように見える。例えば、動作不良のブレーキシステムは、最終的に故障する前に、ブレーキに対する過剰圧力をランダムな間隔で示すセンサの読みを引き起こし始める場合がある。幾つかの実施例では、そのような過剰圧力は、ブレーキ故障前の物理システムの2500サイクル中5~75回観測されうる。モンテカルロランダム性手法を用いて過剰圧力の読みを入力データにランダムに挿入することにより、制御モデル102は、ランダム性にさらされ、故障の前にそのような読みが発生するパターンを探すようにはトレーニングされにくくなる。従って、そのようなモンテカルロ法は、制御モデル102が物理システム内のそのような動作不良を認識する可能性をより高くしうる。
【0068】
ブロック304で、ソフトウェアシミュレーションシステム115は、シミュレートされた故障に基づいて、エミュレートされたセンサデータを生成する。そのようなエミュレートされたセンサデータは、タイミングエンジン134及びI/Oインタフェースエミュレーション136と組み合わされたデータ相互接続ハブ132によって生成されてよい。例えば、データ相互接続ハブ132は、タイミングエンジン134によって制御された時間間隔でデータを送信してよい。データ相互接続ハブ132は、一部のデータを、ソフトウェアシミュレーションシステム115を実行しているシミュレーションシステム114のNICを通して試験制御システム116に直接送信してよく、他のデータをI/Oインタフェースエミュレーション136に送信してよい。そしてI/Oインタフェースエミュレーション136は、エミュレートされたセンサデータを、シミュレーションシステム114の1つ以上のNICを介して試験制御システム116に提供してよく、これは、試験制御システム116が利用するI/Oインタフェースをエミュレートすることによって行われる。そのようなインタフェースエミュレーションは、シミュレーションシステム114が、エミュレートされたセンサデータを提供すること、並びに、試験制御システム116とシミュレーションシステム114との間に透明なインタフェースを設けることを可能にできる。
【0069】
ブロック306で、エミュレートされたセンサデータを提供された試験制御システム116から出力データが取得される。大まかには、試験制御システム116は、試験制御システム116の様々なハードウェアコンポーネントが受け取ったエミュレートされたセンサデータに基づいて出力を生成してよい。例えば、PLC140、GPC144及び146、並びにスイッチ142が、それぞれ、シミュレーションシステム114から何らかのエミュレートされたセンサデータを受け取ってよい。これらのハードウェアコンポーネントは、それぞれが、それぞれの受け取ったセンサデータを処理してよい。幾つかの実施例では、それらの処理コンポーネント(例えば、PLC140並びにGPC144及び146)は、それぞれが、それぞれの出力をスイッチ142に提供してよく、スイッチ142は、試験制御システム116の全体出力を提供するロジックを含んでよい。試験制御システム116は、物理システム112を制御する制御システム108と同一又はほぼ同等のハードウェアを含みうるため、試験制御システム116で生成される出力は、物理システム112からの同じ入力に対する応答として制御システム108で生成されるであろう出力と同一又はほぼ同等であることが可能である。
【0070】
ブロック308で、シミュレートされた故障で出力データがタグ付けされて、トレーニングデータが作成される。様々な実施例では、ブロック302でソフトウェアシミュレーションシステム115に与えられた入力に基づいて出力データがタグ付けされてよい。そのようなタグ付けは、開発システム124が試験制御システム116から出力データを受け取る前、又は受け取った後に行われてよい。例えば、試験制御システム116は、ソフトウェアシミュレーションシステム115に与えられる対応するエミュレートされたセンサデータの元になる入力のサイクルごとに1つの出力データ点を生成してよい。そのような各出力データ点は、ソフトウェアシミュレーションシステム115への入力として与えられた対応する条件でタグ付けされてよく、それらの条件には、ソフトウェアシミュレーションシステム115への入力として与えられた1つ以上の故障が含まれる。
【0071】
幾つかの実施例では、タグ付けされたデータは更に、開発システム124において処理されてよく、且つ/又は、開発システム124からアクセス可能な場所(例えば、データストア126)に格納されてよい。例えば、更なる処理として、生成されたデータセットを他のデータセットと相互に関連付ける処理があり、他のデータセットは、HILシミュレーション106で生成されたデータセット、及び/又は対応する物理システム112からデータを収集することによって生成されたデータセットを含む。幾つかの実施例では、処理は、一部のデータからタグを除去し、タグなしデータ及びタグ付きデータをデータストア126に保存することを含んでよい。そしてタグなしデータは、制御モデル102の妥当性検査に使用されてよい。即ち、タグなしデータは、タグ付きデータセットの場合と比較して制御モデル102の性能を評価するために、トレーニング済み制御モデル102に与えられてよい。そのような評価は、制御モデル102が特定の物理条件に関して更にトレーニングすることが有用であるかどうか、或いは、制御モデル102が物理システム112における物理条件を正確に識別できる可能性が高いかどうかを判定するのに役立ちうる。
【0072】
ブロック310で、トレーニングデータは、制御システム108で使用する制御モデル102のトレーニングに利用される。例えば、データセットは、教師あり又は半教師ありの学習手法を用いて制御モデル102をトレーニングすることに使用されてよく、制御モデル102は、タグ付きデータを使用して入力データを分類することを学習する。幾つかの実施例では、データセットは更に、トレーニング済み制御モデル102の評価及び/又は妥当性検査に利用されてよい。そのような評価は、制御モデル102がタグ付きデータセットによる更なるトレーニングで改善されうるかどうかを判定するためのフィードバックを提供しうる。幾つかの実施例では、制御モデル102は、様々な物理条件を個別に、且つ/又は相互に組み合わせて識別するようにトレーニングされてよい。例えば、制御モデル102は、ブレーキ摩耗に対応する故障が導入された第1のデータセット又はデータセット群を使用してブレーキ摩耗を認識するようにトレーニングされてよく、次に、モータ動作不良に対応する故障が導入された第2のデータセット又はデータセット群を使用してモータ動作不良を認識するようにトレーニングされてよい。制御モデル102は更に、ブレーキ摩耗及びモータ動作不良の両方に対応する故障が導入されたデータセット又はデータセット群を使用してトレーニングされてよく、それによって、制御モデル102は、物理システムの何サイクルもの間に複数の動作不良が発生しうる現実世界の状況において使用可能になる。
【0073】
任意選択のブロック312で、追加データ及びソフトウェアシミュレーションシステム115を利用して、制御モデル102の性能が評価される。様々な実施例では、そのような追加データとして、HILシミュレーション106で生成された追加データセット、現実世界環境から(例えば、物理システム112から)収集されたデータ等があってよい。この評価は、制御モデル102とHILシミュレーション106との間のフィードバック及び評価の接続105を利用して実施されてよい。様々な実施例では、そのような評価は、制御モデル102の性能を評価するために、ソフトウェアシミュレーションシステム115のシミュレートされたオペレータインタフェース130を利用してよい。例えば、シミュレートされたオペレータインタフェース130は、物理システム112で使用されるオペレータコンソール110によって生成される出力と類似の出力を生成することが可能である。現実世界データが提供された場合には、シミュレートされたオペレータインタフェース130は、システム内の疑わしい物理条件、その物理条件を改善するためのアクションの提案等を示してよい。シミュレートされたオペレータインタフェース130において与えられる出力が、物理システム112を動作させているオペレータにとって正しければ且つ/又は有用であれば、制御モデル102は(全体として、又は特定のシナリオに関して)十分にトレーニングされていることになる。例えば、制御モデル102は、システムのあるコンポーネントが特定のサイクル数以内に故障する可能性が高いことを正確に診断することが可能であり、そのコンポーネントの故障を防ぐために特定の時間枠以内にそのコンポーネントを交換するシステム保守を提案することが可能である。制御モデル102は、シミュレートされたオペレータインタフェース130において与えられる出力が誤りを含む場合には、更なるトレーニングを行うことが有用でありうる。例えば、与えられるデータは、システムの外の物理条件に対する応答として生成される現実世界データであってよい(例えば、物理システム112が遊園地のアトラクションの場合には、乗客が物理システム112の線路上に落とした物体であって、物理システム112の邪魔になる物体)。制御モデル102は、誤りを含む出力を生成する可能性があり、その場合、制御モデル102は、システムの1つ以上のコンポーネントに対して保守を実施することによってそのような条件を修正できるという提案を行う。様々な実施例では、ブロック312で制御モデル102に与えられる追加データは、(例えば、強化学習により)制御モデル102を更にトレーニングするために使用されてよい。様々な実施例では、方法300は、トレーニングデータを利用して制御モデル102を更にトレーニングするためにブロック312からブロック310に戻ってよい。
【0074】
トレーニング済み制御モデル102は、物理システム112内の物理条件を識別するために、物理システム112の制御システム108で使用されてよい。例えば、制御モデル102は、制御システム108で生成される出力を受け取るように、制御システム108と通信していてよく、又は制御システム108に組み込まれてよい。制御システム108から与えられるそのような出力に基づいて、制御モデル102は、物理システム112内の物理条件に関する情報を提供してよい。例えば、制御モデル102は、制御システム18からの出力に基づいて、物理システム内のモータが動作不良になり始めていること、並びに故障する可能性が高いことを識別しうる。幾つかの実施例では、制御モデル102は更に、モータがいつ(例えば、物理システム112のおよそ何サイクル以内に)故障しそうかを予測しうる。制御モデル102からのそのような情報は、様々なインタフェース(例えば、オペレータインタフェース110)を介してオペレータ、保守担当者、及び/又は他の要員に提供されてよい。制御モデルから提供されるそのような警告及び他の情報は、オペレータ及び保守担当者が、システム内の問題を診断し、物理システム112全体のダウンタイムが短くなるように物理システム112を保守することを支援しうる。
【0075】
上述の内容により、物理システムを制御する制御システムで使用する制御モデルのトレーニング方法を開示してきた。制御モデルは、故障が発生する前に故障を予測すること、要員がシステム保守に関して知識に基づいて判断を下すことを可能にすること等により、物理システムの信頼性を高め、物理システムの全体的なアップタイムを長くすることが可能である。トレーニングデータを生成するために、モンテカルロ手法によるHILシミュレーションが使用されてよく、それによって、制御モデルは、物理システムが生成するデータをエミュレートするロバストなデータセットに関してトレーニングされる。従って、物理システムからのより少ない入力で、より正確な制御モデルを生成することが可能である。
【0076】
本明細書に記載の特定の実施形態の記述は、本質的に例示的であるに過ぎず、本開示又はその適用又は使用の範囲を限定するものでは全くない。本発明のシステム及び方法の実施形態の記載された詳細説明では、添付図面を参照しており、添付図面は、本発明のシステム及び方法の一部を成しており、記載のシステム及び方法が実施可能である実施形態の具体的な実例として示されている。これらの実施形態は、当業者であれば本開示のシステム及び方法を実施できるほど詳細に記述されており、当然のことながら、他の実施形態も利用されてよく、本開示の趣旨及び範囲から逸脱しない限り、構造的変更及び論理的変更が行われてよい。更に、明確さのために、当業者には明らかであろう特定の特徴については詳細な説明を記載していない。これは本開示の実施形態の説明を曖昧にしないためである。従って、記載されている詳細説明は限定的に解釈されるべきではなく、本開示の範囲は、添付の特許請求項によってのみ規定される。
【0077】
前述の内容から理解されるように、本発明の具体的な実施形態は、例示を目的として本明細書に示されているが、本発明の趣旨及び範囲から逸脱しない限り、様々な修正が行われてよい。
【0078】
本明細書で示した詳細は、本発明の好ましい実施形態の一例として、その例示的説明を目的としたものに過ぎず、本発明の様々な実施形態の原理及び概念的態様の最も有用にして最も容易に理解される説明であると考えられるものを提供するために示されている。この点において、本発明の構造的詳細については、本発明の基本的な理解に必要な程度より詳細には示しておらず、当業者であれば、本明細書を図面及び/又は実施例と併せて読むことにより、本発明の幾つかの形態がいかにして実際に実施されうるかが明らかになる。
【0079】
本明細書では、特に断らない限り、「a」及び「an」という語は、「1つの(one)」、「少なくとも1つの(at least one)」、又は「1つ以上の(one or more)」の意味として解釈される。文脈上他の意味に解すべき場合を除き、本明細書で用いる単数形の語は複数形を包含するものとし、複数形の語は単数形を包含するものとする。
【0080】
文脈上明らかに他の意味に解すべき場合を除き、本明細書及び特許請求項の全体を通して、「含む(comprise)」、「含む(comprising)」等の語は、排他的又は網羅的な意味ではなく包含的な意味に(即ち、「を含むが、これに限定されない」の意味に)解釈されるべきである。単数又は複数を使用する語は、それぞれ、複数及び単数も包含する。更に、「本明細書では(herein)」、「上述の(above)」、及び「後述の(below)」という語、並びに同様の意味の語は、本出願で使用される場合には、本出願の任意の特定部分ではなく本出願全体を参照するものとする。
【0081】
もちろん、当然のこととして、本発明のシステム、装置、及び方法によれば、本明細書に記載の実施例、実施形態、又はプロセスの任意のいずれかが、1つ以上の他の実施例、実施形態、及び/又はプロセスと組み合わされてよく、或いは、複数の独立した装置又は装置部分にまたがって分離及び/又は実施されてよい。
【0082】
最後に、上述の説明は、本発明のシステムの例示に過ぎないことを意図されており、添付の特許請求項を任意の特定の実施形態又は実施形態群に限定するものとして解釈されるべきではない。従って、ここまで本発明のシステムを、例示的実施形態を参照しながら特に詳細に説明してきたが、やはり当然のこととして、後述の特許請求項において明記されている、本発明のシステムの広い、意図された趣旨及び範囲から逸脱しない限り、当業者によって様々な修正形態及び代替実施形態が考案されてよい。従って、本明細書及び図面は、例示的なものとして考えられるべきであり、添付の特許請求項の範囲を限定するものとして意図されていない。
図1A
図1B
図2
図3
図4
図5
【外国語明細書】