(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-20
(45)【発行日】2024-10-01
(54)【発明の名称】人工知能用演算ユニットを用いた技術システムの制御
(51)【国際特許分類】
G06N 3/063 20230101AFI20240924BHJP
【FI】
G06N3/063
(21)【出願番号】P 2023515708
(86)(22)【出願日】2021-08-27
(86)【国際出願番号】 EP2021073741
(87)【国際公開番号】W WO2022058140
(87)【国際公開日】2022-03-24
【審査請求日】2023-05-19
(32)【優先日】2020-09-15
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】390039413
【氏名又は名称】シーメンス アクチエンゲゼルシヤフト
【氏名又は名称原語表記】Siemens Aktiengesellschaft
(74)【代理人】
【識別番号】110003317
【氏名又は名称】弁理士法人山口・竹本知的財産事務所
(74)【代理人】
【識別番号】100075166
【氏名又は名称】山口 巖
(74)【代理人】
【識別番号】100133167
【氏名又は名称】山本 浩
(74)【代理人】
【識別番号】100169627
【氏名又は名称】竹本 美奈
(72)【発明者】
【氏名】ボテロ ハルブラウブ,アンドレス
(72)【発明者】
【氏名】シェンク,ティム
(72)【発明者】
【氏名】トン,インゴ
(72)【発明者】
【氏名】ヴィンシェリンガー,クリストフ
【審査官】北川 純次
(56)【参考文献】
【文献】特開平04-180152(JP,A)
【文献】特開2019-139792(JP,A)
【文献】特開2019-212146(JP,A)
【文献】欧州特許出願公開第3657277(EP,A1)
【文献】欧州特許出願公開第2568346(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-20/20
G05B 19/00
(57)【特許請求の範囲】
【請求項1】
技術システム(TS)を制御するためのコンピュータ実施方法であって、以下のプロセスステップ、
- 制御ユニット(PLC)のハードウェア構成パラメータ(HW1)およびリアルタイム要件(RT)の値を読み出すステップ(S1)、
- 人工知能用演算ユニット(NPU)のハードウェア構成パラメータ(HW2)を読み出すステップ(S2)、
- 前記技術システムを制御するための制御アプリケーション(APP)を読み出すステップであって、前記制御アプリケーションは、人工知能に基づいて前記制御ユニット用の入力値(CTL)を生成するように構成されているステップ(S3)、
- 前記制御ユニットの前記ハードウェア構成パラメータおよび前記人工知能用演算ユニットの前記ハードウェア構成パラメータを考慮して、前記人工知能用演算ユニット上で前記制御アプリケーションを実行するための前記制御アプリケーションの処理時間を決定し、前記処理時間は、前記人工知能用演算ユニット上での前記制御アプリケーションの実行の実行時間、を含む、ステップ(S4)、
- 決定された前記処理時間(T)を前記制御ユニットの前記リアルタイム要件(RT)の前記値に基づいてチェックするステップ(S5)と、チェック結果を出力するステップ、及び、
- 前記チェック結果に応じて、前記技術システムを制御するための前記制御アプリケーションを出力するステップ(S6)、
を備え、
前記制御アプリケーションの前記実行時間が、前記制御アプリケーションを修正することにより、前記リアルタイム要件の前記値の1つに適合され(S8)、前記制御アプリケーションの決定された前記実行時間が前記制御ユニットの前記リアルタイム要件の前記値を満たすまで、前記制御アプリケーションが反復的に修正され(S9)、
前記制御アプリケーションは人工ニューラルネットワークを含み、前記制御アプリケーションの決定された前記実行時間が前記リアルタイム要件の前記値を満たすまで、前記人工ニューラルネットワークのノードが反復的に減少される、
コンピュータ実施方法。
【請求項2】
前記処理時間(T)は、
- 前記制御ユニットと前記人工知能用演算ユニットとの間のデータ送信の送信時間を含む、
請求項1に記載のコンピュータ実施方法。
【請求項3】
前記実行時間は、前記人工知能用演算ユニット上での前記制御アプリケーションの実行のコンピュータ支援されたシミュレーションを用いて、決定される(S4a)、
請求項2に記載のコンピュータ実施方法。
【請求項4】
前記実行時間は、前記人工知能用演算ユニット上での前記制御アプリケーションの実行を用いて、決定される(S4b)、
請求項2に記載のコンピュータ実施方法。
【請求項5】
前記チェック結果に応じて、
- 前記制御ユニットの前記リアルタイム要件の前記値が、決定された前記処理時間に適合される(S7)、
請求項1から4の何れか1項に記載のコンピュータ実施方法。
【請求項6】
前記制御アプリケーション(APP)は、前記人工知能用演算ユニット(NPU)上で実行され、これにより、前記制御ユニット(PLC)用の前記入力値(CTL)が生成され、前記技術システムは前記入力値に基づいて制御される(S10)、
請求項1から5の何れか1項に記載のコンピュータ実施方法。
【請求項7】
技術システム(TS)を制御するための装置(100)であって、
- 制御ユニット(PLC)のハードウェア構成パラメータ(HW1)およびリアルタイム要件(RT)の値を読み出すように構成されている、第1インターフェース(101)と、
- 人工知能用演算ユニット(NPU)のハードウェア構成パラメータ(HW2)を読み出すように構成されている、第2インターフェース(102)と、
- 前記技術システムを制御するための制御アプリケーション(APP)を読み出すように構成されている、第3インターフェース(103)であって、前記制御アプリケーション(APP)は、人工知能に基づいて前記制御ユニット(PLC)用の入力値を生成するように構成されている、第3インターフェース(103)と、
- 前記制御ユニットの前記ハードウェア構成パラメータ(HW1)および前記人工知能用演算ユニットの前記ハードウェア構成パラメータ(HW2)を考慮して、前記制御ユニット用の前記入力値を生成するために、前記人工知能用演算ユニット上で前記制御アプリケーションを実行するための前記制御アプリケーションの処理時間(T)を決定するように構成されており、前記処理時間は、前記人工知能用演算ユニット上での前記制御アプリケーションの実行の実行時間、を含む、解析モジュール(104)と、
- 決定された前記処理時間(T)を前記制御ユニットの前記リアルタイム要件の前記値に基づいてチェックし、チェック結果(CR)を出力するように構成されている、チェックモジュール(105)と、
- 前記チェック結果に応じて、前記技術システムを制御するための前記制御アプリケーションを出力するように構成されている、出力モジュール(106)と、
- 前記制御アプリケーション(APP)の決定された前記実行時間が前記制御ユニットの前記リアルタイム要件(RT)の前記値を満たすまで、前記制御アプリケーションを反復的に修正するように構成されており、前記制御アプリケーションは人工ニューラルネットワークを含み、前記制御アプリケーションの決定された前記実行時間が前記リアルタイム要件の前記値を満たすまで、前記人工ニューラルネットワークのノードが反復的に減少される、最適化モジュール(108)
を備える、
装置(100)。
【請求項8】
前記人工知能用演算ユニット上での前記制御アプリケーション(APP)の実行のコンピュータ支援されたシミュレーションを用いて前記実行時間を決定するように構成されている、シミュレーションモジュール(107)を含む、
請求項7に記載の装置。
【請求項9】
- 請求項7から8の何れか1項に記載の前記装置(100)と、
- 前記技術システムを制御するための前記制御アプリケーション(APP)を実行するように構成されている前記人工知能用演算ユニット(NPU)であって、前記制御アプリケーションが、人工知能に基づいて前記制御ユニット用の前記入力値(CTL)を生成するように構成されている、前記人工知能用演算ユニット(NPU)と、
- 前記制御アプリケーションにより生成された前記入力値に基づいて前記技術システムを制御するように構成されている、前記制御ユニット(PLC)と、を含む、
制御システム(200)。
【請求項10】
コンピュータ
に請求項1から6の何れか1項に記載の方法のステップを実行
させるためのプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、技術システムを制御するためのコンピュータ実施方法、技術システムを制御するための装置、および人工知能(AI)用演算ユニットを備える制御システムに関する。
【背景技術】
【0002】
例えば人工ニューラルネットワークを用いた深層学習の推論のような、特別な計算を高速化するには、特別なシステムオンチップソリューション、いわゆるAIアクセラレータ、を使用することができ、当該AIアクセラレータは、人工知能(AI)用演算ユニット、または、ニューラルプロセッサもしくはニューラルプロセッシングユニット(略称NPU)、とも称される場合がある。
【0003】
そのようなAIベースのアルゴリズムは産業オートメーションにおいてもますます使用されてきているため、そのような特別なAI用演算ユニットは、産業用の設備または機械を制御するための産業用制御装置にも組み込まれることがある。
【0004】
特許文献1には、産業システムのオートメーション機器用の拡張ユニットが記載されており、この拡張ユニットは、人工知能に基づいてデータ評価を実行するように、構成される。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、AIアクセラレータの一般的な応用分野とは対照的に、産業オートメーションにおけるアルゴリズムは、通常、例えば、プログラマブルロジックコントローラ(PLC)の最大サイクルタイムといった、厳格なリアルタイム要件を、遵守しなければならないが、このことは、そのような特別な人工知能用演算ユニットにおいては一般には考慮に入れられないので、非リアルタイムクリティカルな制御フローへの組み込みしかできない。
【0007】
したがって、本発明の課題は、人工知能用演算ユニット/AIアクセラレータのリアルタイムクリティカルな制御フローへの組み込みを可能にすることである。
【課題を解決するための手段】
【0008】
本課題は、独立請求項に記載の特徴により解決される。従属請求項には本発明の有利な発展形態が記載されている。第1態様によると、本発明は、技術システムを制御するためのコンピュータ実施方法であって、
- 制御ユニットのハードウェア構成パラメータおよびリアルタイム要件の値を読み出すステップと、
- 人工知能用演算ユニットのハードウェア構成パラメータを読み出すステップと、
-技術システムを制御するための制御アプリケーションを読み出すステップであって、制御アプリケーションは、人工知能に基づいて制御ユニット用の入力値を生成するように構成されるステップと、
- 制御ユニットのハードウェア構成パラメータおよび人工知能用演算ユニットのハードウェア構成パラメータを考慮して、人工知能用演算ユニット上で制御アプリケーションを実行するための制御アプリケーションの処理時間を決定するステップと、
- 決定された処理時間を制御ユニットのリアルタイム要件の値に基づいてチェックし、チェック結果を出力する、ステップと、
- チェック結果に応じて、技術システムを制御するための制御アプリケーションを出力するステップと、
を備える、コンピュータ実施方法に関する。
【0009】
本方法は、特に、少なくとも部分的に、コンピュータ支援されていても、または、コンピュータ実施されていても、よい。本発明に関して「コンピュータ支援」は、例えば、本方法の実装を意味するものと理解されてよく、その場合、特にプロセッサが本方法の少なくとも1つのステップを実行する。本発明に関してプロセッサは、例えば、マシンまたは電子回路を意味するものと理解されてもよい。プロセッサは、特に、中央処理装置(CPU:Central Processing Unit)、マイクロプロセッサまたはマイクロコントローラ、例えば、特定用途向け集積回路またはデジタルシグナルプロセッサ、であってもよく、プログラム命令等を記憶するための記憶装置と組み合わせることなどもできる。プロセッサは、例えば、IC(集積回路、Integrated Circuit)、特に、FPGA(フィールドプログラマブルゲートアレイ、Field-Programmable Gate Array)またはASIC(特定用途向け集積回路、Application-Specific Integrated Circuit)またはDSP(デジタルシグナルプロセッサ、Digital Signal Processor)またはGPU(グラフィックスプロセッシングユニット、Graphic Processing Unit)であってもよい。また、プロセッサは、仮想化されたプロセッサ、仮想マシンまたはソフトCPUを意味するものと理解されてよい。また、プログラマブルプロセッサは、例えば、本発明に係る上記方法を実行するための構成ステップを備えているか、または、本発明に係る方法、構成要素、モジュール、または他の態様および/もしくは態様の一部の本発明の特徴を実現するように構成ステップを備えて構成されている、プログラマブルプロセッサであってもよい。
【0010】
以下の説明において別段の記載がない限り、「実行」、「演算」、「コンピュータ支援」、「計算」、「確立」、「生成」、「構成」、「再構築」等の用語は、好ましくは、データを変更および/もしくは生成する、および/または、データを他のデータに変換する、操作および/またはプロセスおよび/または処理ステップを意味し、データは、特に、物理的量として、例えば電気パルスとして、表されてもよい、または、存在してもよい。特に、「コンピュータ」という表現は、特にはデータ処理能力を有するすべての電子装置を包含するために、可能な限り広範囲に解釈されるべきである。したがって、コンピュータは、例えば、パーソナルコンピュータ、サーバ、プログラマブルロジックコントローラ、ハンドヘルドコンピュータシステム、ポケットPC装置、モバイル無線装置、コンピュータ支援によりデータを処理することができる他の通信装置、プロセッサおよびデータ処理用の他の電子装置、であってもよい。
【0011】
「供給」は、特にはデータおよび/または情報について、本発明に関して、例えば、コンピュータ支援による供給を意味するものと理解されてもよい。供給は、例えば、ネットワークインターフェース、通信インターフェースまたは記憶装置とのインターフェースのような、インターフェースを介して、行われる。そのようなインターフェースを介して、例えば、供給の際、対応するデータおよび/または情報を、伝送および/または送信および/または取得および/または受信することができる。
【0012】
本発明に関して、「制御ユニットのハードウェア構成パラメータ」は、例えば、PLCのタイプ、例えば、バックプレーンバスのタイプおよびパラメータ、数およびモジュールのタイプ等、を意味するものと理解されてもよい。
【0013】
本発明に関して、「リアルタイム要件」(以下、「リアルタムの要件」とも称する)は、制御ユニットのプロセスに対する期間または時点であって、そのプロセスが期間内またはその時点に対して実行される予定である期間または時点、を意味するものと理解されてもよい。「リアルタイム要件の値」は、したがって、時間単位のそのような条件であってもよい。
【0014】
本発明に関して、「制御アプリケーション」は、特には、技術システムの制御に適したソフトウェアアプリケーション、つまり、例えば、技術システムの制御ユニット用の少なくとも1つの入力値を供給するソフトウェアアプリケーション、を意味するものと理解されてもよい。制御アプリケーションは、人工知能に基づいて制御ユニット用の入力値を生成するように構成される。言い換えれば、この場合、AIベースの制御アプリケーションであってよい。例えば、人工知能は人工ニューラルネットワークとして実装されているので、制御アプリケーションの読み出しの際には、特に、人工ニューラルネットワークの入力ノードおよび出力ノードのそれぞれの数とタイプが読み出される。
【0015】
本発明に関して、「人工知能用演算ユニット」(以下「人工知能演算ユニット」とも称する)は、特に、AIアクセラレータまたはニューラルプロセッシングユニットを意味するものと理解されてもよい。そのような演算ユニットは、特に、人工知能に基づく演算に適した演算ユニット、つまり、人工知能用の特定の演算ユニット、またはAIベースのアプリケーションを実行するのに適した演算ユニット、であることが好ましい。言い換えれば、演算ユニットは、特に、例えば人工ニューラルネットワークを用いた計算のような、AI計算に割り当てられてもよい。
【0016】
本発明に関して、「人工知能用演算ユニットのハードウェア構成」は、特に、演算ユニット/NPUモジュールのハードウェア構成要素に関する情報、例えば、プロセッサクロッキング、メモリクロッキングおよび/またはバスの帯域幅等、を意味するものと理解されてもよい。
【0017】
また、「処理時間」は、特に、人工用知能演算ユニット上での制御アプリケーションの実行に関する、処理時間、総計算時間、総実行時間または実施時間を意味するものと理解されてよい。
【0018】
本発明により、制御アプリケーションが制御ユニットのリアルタイム要件を満たすか否かをチェックすることができる。この場合、特に、人工知能演算ユニット上でAIベースの制御アプリケーションを実行する際に、リアルタイム要件が遵守されているか否かがチェックされる。このようにして、本発明の有利な点は、人工知能演算ユニット/AIアクセラレータ上で実行される制御アプリケーションについて、この制御アプリケーションがリアルタイムクリティカルシステムを制御するために使用可能であるか否か、または、その制御に適しているか否か、を決定することができることである。これは、特に、対応するハードウェアについて具体的にチェックされる。
【0019】
1つの実施形態においては、処理時間は、
- 制御ユニットと人工知能用演算ユニットとの間のデータ送信の送信時間、
および/または、
- 人工知能用演算ユニット上でのアプリケーションの実行の実行時間、
を含んでもよい。
【0020】
1つの実施形態においては、実行時間は、人工知能用演算ユニット上での制御アプリケーションの実行のコンピュータ支援されたシミュレーションを用いて、決定されてもよい。
【0021】
このためには、例えば、CPUシミュレーションが利用され得る。また、この場合、キャッシュの挙動が考慮されてもよい。
【0022】
代替的な実施形態においては、実行時間は、人工知能用演算ユニット上での制御アプリケーションの実行を用いて、決定されてもよい。
【0023】
また、直接的な測定により処理時間を決定することも、可能である。これにより、特定の演算ユニットの任意のプロパティを考慮することが可能になる。
【0024】
1つの実施形態においては、チェック結果に応じて、
- 制御ユニットのリアルタイム要件の値が、決定された処理時間に適合されてもよい、
および/または、
- 制御アプリケーションの実行時間が、制御アプリケーションを修正することにより、リアルタイム要件の値の1つに適合されてもよい。
【0025】
これにより、リアルタイム基準を修正することおよび/または制御アプリケーションをその対応するハードウェアに適合させること、が可能になる。
【0026】
1つの実施形態においては、制御アプリケーションの決定された実行時間が制御ユニットのリアルタイム要件の値を満たすまで、制御アプリケーションが反復的に修正されてもよい。
【0027】
特に、制御アプリケーションは最適化プロセスを用いて修正されてよく、実行時間は最小化されるまで制御アプリケーションは反復的に適合される。
【0028】
1つの実施形態においては、制御アプリケーションは人工ニューラルネットワークを含んでもよく、制御アプリケーションの決定された実行時間がリアルタイム要件の値を満たすまで、ニューラルネットワークのノードが反復的に減少されてもよい。
【0029】
これにより、例えば、重み付けが低い人工ニューラルネットワークのノードを削除することが可能になる。このことは、例えば、感度分析を用いて決定することができる。このようにして、例えば感度分析において、入力信号の刺激によって、ノードが計算の出力にどの程度寄与するか、ニューラルネットワークを調べることができる。影響が小さいそのノードは無視されてよい。
【0030】
1つの実施形態においては、制御アプリケーションは、人工知能用演算ユニット上で実行されてもよく、これにより、制御ユニット用の入力値が生成され、技術システムは入力値に基づいて制御されてもよい。
【0031】
制御アプリケーションは、特には、肯定的なチェック結果の場合に、つまり、処理時間がリアルタイム要件を満たす場合に、実行されてよい。
【0032】
第2態様によると、本発明は、技術システムを制御するための装置に関しており、当該装置は、
- 制御ユニットのハードウェア構成パラメータおよびリアルタイム要件の値を読み出すように構成されている第1インターフェースと、
- 人工知能用演算ユニットのハードウェア構成パラメータを読み出すように構成されている第2インターフェースと、
- 技術システムを制御するための制御アプリケーションを読み出すように構成されている、第3インターフェースであって、制御アプリケーションは、人工知能に基づいて制御ユニット用の入力値を生成するように構成されている、第3インターフェースと、
- 制御ユニットのハードウェア構成パラメータおよび人工知能用演算ユニットのハードウェア構成パラメータを考慮して、制御ユニット用の入力値を生成するために、人工知能用演算ユニット上で制御アプリケーションを実行するための制御アプリケーションの処理時間を決定するように構成されている解析モジュールと、
- 決定された処理時間を制御ユニットのリアルタイム要件の値に基づいてチェックし、チェック結果を出力するように構成されているチェックモジュールと、
- チェック結果に応じて、技術システムを制御するための制御アプリケーションを出力するように構成されている出力モジュールと、
を備える。
【0033】
本装置、および/または、そのインターフェースもしくはモジュールのうちの少なくとも1つ、は、特に、ハードウェアおよび/またはソフトウェアの形態で、構成されていてもよい。好ましくは、本装置は、少なくとも1つのプロセッサを含む。本装置は、好ましくは、技術システムの制御ユニットと人工知能用演算ユニットに、接続されている。
【0034】
1つの実施形態においては、本装置は、人工知能用演算ユニット上での制御アプリケーションの実行のコンピュータ支援されたシミュレーションを用いて実行時間を決定するように構成されているシミュレーションモジュール、を含んでもよい。
【0035】
また、「シミュレーションモジュール」は、シミュレーション環境を意味するものと理解されてよい。
【0036】
1つの実施形態においては、本装置は、制御アプリケーションの決定された実行時間が制御ユニットのリアルタイム要件の値を満たすまで、制御アプリケーションを反復的に修正するように構成されている最適化モジュール、を含んでもよい。
【0037】
最適化モジュールは、好ましくは、最適化プロセスを有しており、当該最適化プロセスを用いて制御アプリケーションは反復的に修正され得て、その結果、制御アプリケーションの実行時間が最小化される。最適化モジュールは、好ましくは、少なくとも解析モジュールとチェックモジュールに接続されており、その結果、実行時間がリアルタイムの要件を満たすまで制御アプリケーションは反復的に修正及びチェックされ得る。
【0038】
さらなる態様によると、本発明は、制御システムに関しており、当該制御システムは、
- 本発明に係る装置と、
- 技術システムを制御するための制御アプリケーションを実行するように構成されている人工知能用演算ユニットであって、制御アプリケーションが、人工知能に基づいて制御ユニット用の入力値を生成するように構成されている、人工知能用演算ユニットと、
- 制御アプリケーションにより生成された入力値に基づいて技術システムを制御するように構成されている制御ユニットと、
を含む。
【0039】
また、本発明は、プログラム可能なコンピュータに直接ロード可能なコンピュータプログラム製品に関しており、当該コンピュータプログラム製品は、コンピュータによりプログラムが実行される際に、本発明に係る方法のステップを実行させるプログラムコード部分を含む。
【0040】
コンピュータプログラム製品は、例えば、記憶媒体において、例えば、メモリカード、USBスティック、CD-ROM、DVD、不揮発性/非一時的な記憶媒体等において、または、ネットワークのサーバからダウンロード可能なファイルの形態で、供給または伝送することができる。
【0041】
本発明に係る方法、本発明に係る装置および本発明に係る制御システムの実施形態例について、図面において例示的に示し、以下の説明を参照してより詳細に説明する。
【図面の簡単な説明】
【0042】
【
図1】
図1は、本発明に係る方法の第1実施例を示す。
【
図2】
図2は、本発明に係る方法の第2実施例を示す。
【
図3】
図3は、本発明に係る装置および本発明に係る制御システムの実施例を示す。
【発明を実施するための形態】
【0043】
図面を通して、互いに対応する部分には同じ参照符号が付されている。
【0044】
本発明のすべての実装可能性を記載することは、不可能であり、また本発明の理解にとって建設的でも必要でもないので、特には、以下の実施例は、単に例示的な実装可能性、特には本発明による教示のそのような実装、のみを示す。
【0045】
また、特には、1つまたは複数の方法請求項の知識を有する(関連する)当業者にとって、本発明を実施するために従来技術において慣用であるすべての選択肢は、当然周知であるため、本明細書において特にそれを独立して開示することは必要とされない。
【0046】
図1は、本発明に係る、技術システムを制御するための方法の実施形態例を、フロー図で示す。ここで、技術システムとは、例えば、例えば製造プラントのような産業プラント、オートメーション機器、または、ロボットシステム、であり得る。特に、技術システムは、制御アプリケーションを用いて、機械学習方法/機械学習アルゴリズムに基づいて、制御可能であり、制御アプリケーションは、技術システムの制御ユニット用の入力値を、出力する。この目的のために、制御ユニットは人工知能用演算ユニットに接続されており、制御アプリケーションは人工知能用演算ユニット上で実行される。
【0047】
技術システムの制御はリアルタイム要件を有していてもよく、当該リアルタイム要件は、制御アプリケーションが人工知能演算ユニット上で実行される際に遵守しなければならない。これは、以下に説明する方法を用いてチェックすることができ、その結果、技術システムを制御するための制御アプリケーションは、認証および/または実行され得る。
【0048】
本方法の第1ステップS1では、制御ユニットのハードウェア構成またはハードウェア仕様が取得される。この目的のために、制御ユニットのハードウェア構成パラメータが、例えば、PLCのタイプ、メモリサイズ、メモリ速度および/またはバス帯域幅が、読み出される。さらに、リアルタイム要件の少なくとも1つの値、つまり、例えば、制御プロセスの時間上限値が読み出される。リアルタイム要件は、例えば、ハードウェア構成に基づいて確認されてもよい。
【0049】
次のステップS2では、人工知能用演算ユニットのハードウェア構成パラメータが、例えば、タイプ、演算能力、NPUの速度/サイズ、内部バスの速度および/または帯域幅等が、読み出される。
【0050】
また、人工知能用演算ユニットおよび/または制御ユニットのファームウェアおよび/またはソフトウェアに関する情報も、読み出され得る。
【0051】
次のステップS3では、技術システムの制御に適した制御アプリケーションが読み出される。制御アプリケーションは以下のように構成されている、すなわち、人工知能に、例えば人工ニューラルネットワークに、依存して、制御ユニット用の入力値を生成し出力するように、構成されている。言い換えれば、制御アプリケーションは人工知能に基づいている。また、制御アプリケーションは、人工知能用演算ユニット上で実行するように、構成されている。
【0052】
次のステップS4では、処理時間が、好ましくは最大または最小の処理時間が、人工知能演算ユニット上で制御アプリケーションを実行するために、決定され、人工知能用演算ユニットのハードウェア構成パラメータと制御ユニットのハードウェア構成パラメータが、考慮される、つまり、処理時間の計算が、特にこれらのハードウェア構成パラメータに対して、確認される。任意的に、人工知能用演算ユニットおよび/または制御ユニットのファームウェアおよび/またはソフトウェアも考慮され得る。
【0053】
ここで、処理時間は、制御ユニットと人工用知能演算ユニットとの間のデータ送信のための送信時間、および/または、人工知能用演算ユニット上でアプリケーションを実行するための実行時間、を含む。言い換えれば、処理時間は、好ましくは、送信時間と実行時間の合計である。処理時間は、特に、制御アプリケーションの実行のためそして制御ユニットに出力された入力値の送信のために必要とされる時間、を示す。
【0054】
実行時間は、特に、人工知能用演算ユニット上での制御アプリケーションの実行のコンピュータ支援シミュレーション(ステップS4a)、を用いて、決定され得て、人工知能用演算ユニットは、ハードウェア構成パラメータに基づいて、表現される/モデル化される。代替的に、人工知能用実演算ユニット上で制御アプリケーションを実行することにより、実行時間を直接的に決定することもできる(ステップS4b)。
【0055】
制御ユニットの機能ブロックとNPUモジュールとの間の最大送信時間は、好ましくは、これらの構成要素間の照会と応答とを含む。例えば、(バス要求からバス調停制御のバス許可までの最大待ち時間を含む)バックプレーンバスの総送信時間、ハードウェアの相異なるクロックドメイン(英:clock domain)間の遷移における最大クロックスキュー(英:maximum clock skew)、および、制御システムとNPUモジュールの割込みサービスルーチンの最大応答時間、が加算される。
【0056】
NPUモジュール上での最大実行時間は、例えば、Atomコードセグメントの最大実行時間を含む(受信/送信分岐なし)。これらは、例えば静的最悪実行時間解析(英:static worst-case execution time analysis)を用いて、計算またはシミュレーションすることができる。この場合、コードセグメントの先頭では、すべてのキャッシュが「コールド」として想定する必要がある、つまり、必要なキャッシュラインがいずれも含まれていない。可能な計算は、異なるリソース上で、並列的に、実行されてもよい。完全並列化が可能な場合、制御アプリケーションまたは制御アプリケーションの人工知能の、データフローグラフにおける最長経路は、したがって、実行時間の上限値である。
【0057】
次のステップS5では、決定された処理時間が制御ユニットのリアルタイム要件を満たしているか否かが、チェックされる。この目的のために、決定された処理時間は、リアルタイム要件の少なくとも1つの値と、比較される。
【0058】
処理時間が制御ユニットのリアルタイム要件を満たす場合(パスY)、技術システムを制御するための制御アプリケーションが出力される(ステップS6およびステップS10)。この目的のために、制御アプリケーションは、人工知能演算ユニット上で構成され、実行されてもよく、制御アプリケーションは、制御ユニット用の入力値を生成する。制御ユニットは、この入力値に応じて技術システムを制御することができる(ステップS10)。
【0059】
処理時間が制御ユニットのリアルタイム要件を満たさない場合(パスN)、例えば、リアルタイム要件は、適合され得る(ステップS7)。例えば、処理時間に対する上限値が適宜修正され得る。次に、処理時間のチェックを、修正されたリアルタイム要件に基づいて、もう一度実行してもよい。これにより、技術システムの制御システムが適応され得て、その結果、設定されたAIベースの制御アプリケーションが使用される。
【0060】
図2は、技術システムを制御するための本発明に係る方法の、さらなる実施例を示す。ステップS1~S6およびS10は、
図1のステップS1~S6およびS10に対応している。
【0061】
処理時間のチェックにより(ステップS5)、処理時間が技術システムの制御ユニットのリアルタイム要件を満たしていないことが判明した場合(パスN)、リアルタイム要件を適合させること(
図1のステップS7)に加えて、またはそれに代わって、制御アプリケーションを修正してもよく(ステップ8)、これにより、制御アプリケーションの実行時間はリアルタイム要件の値に適合される。
【0062】
この目的のために、制御アプリケーションを、得られた実行時間がリアルタイム要件を満たすまで、反復的に適合させることができる(ステップS9)。例えば、制御アプリケーションは、人工ニューラルネットワークを含んでいてもよく、その結果、ニューラルネットワークのノードは、制御アプリケーションの決定された実行時間がリアルタイム要件の値を満たすまで、反復的に減少される。これは、例えば、最適化プロセスにより支援されてもよく、その際、人工ニューラルネットワークは、例えば、ノードを反復的に削除することによってまたは追加することによって、このために決定された実行時間が制御ユニットの最大サイクル時間に最も対応するまで、変更/適合/縮小される。例えば、この目的のために、各ノードで感度分析をそれぞれ実行してよく、重み付けが低いそのノードが削除される。
【0063】
図3は、本発明に係る装置100と、技術システムTSを制御するための本発明に係る制御システム200の、実施例を示す。装置100は、例えば、制御システム200に接続されていてもよく、あるいは、制御システム200に組み込まれていてもよい。装置100は、好ましくは、
図1および/または
図2に示す本方法のステップを実行するように、構成されている。
【0064】
制御システム200が図示されてり、当該制御システム200は、装置100と、例えばニューラルプロセッシングユニットのような、人工知能用演算ユニットNPU、と、制御ユニットPLCと、を備える。技術システムは、例えば、イメージコントロール式ロボットシステム(英:image-controlled robotic system)であってもよく、当該イメージコントロール式ロボットシステムは、機械学習アルゴリズムに基づいて制御され得る。制御システム200は、好ましくは、少なくとも1つのプロセッサCPUを含み、当該プロセッサCPUは、ニューラルプロセッシングユニットNPUおよび制御ユニットPLCからのデータを中央処理する。
【0065】
装置100は、制御ユニットPLCのハードウェア構成パラメータHW1およびリアルタイム要件RTの値を読み出すように構成されている第1インターフェース101と、人工知能用演算ユニットNPUのハードウェア構成パラメータHW2を読み出すように構成されている第2インターフェース102と、を含む。さらに、装置100は、技術システムを制御するための制御アプリケーションAPPを読み出すように構成されている第3インターフェース103、を備える。制御アプリケーションAPPは、人工知能に依存して制御ユニット用の入力値を生成するように、構成されている。装置100は、さらに、解析モジュール104を含んでおり、当該解析モジュール104は、制御アプリケーションの処理時間Tを、制御ユニット用の入力値を生成するための人工知能用演算ユニットNPU上で制御アプリケーションAPPを実行するために、制御ユニットのハードウェア構成パラメータHW1および人工知能用演算ユニットのハードウェア構成パラメータHW2を考慮して、決定するように、構成されている。本装置は、決定された処理時間Tを制御ユニットのリアルタイム要件の値に基づいてチェックし、チェック結果CRを出力するように構成されているチェックモジュール105と、肯定的なチェック結果の場合に技術システムTSを制御するために制御アプリケーションAPPを出力するように構成されている出力モジュール106と、をさらに備える。チェックは、例えば、処理時間をリアルタイム要件の値と比較すること、を含む。チェック結果は、特には、制御アプリケーションAPPの処理時間Tが制御ユニットPLCのリアルタイム要件RTを満たす場合、肯定的である。
【0066】
好ましくは、処理時間Tは、ニューラルプロセッシングユニットNPU上での制御アプリケーションAPPの実行の、コンピュータ支援シミュレーションを用いて、例えばCPUシミュレーションを用いて、決定される。この目的のために、装置100は、シミュレーションモジュール107を含んでいてよく、当該シミュレーションモジュール107は、そのようなコンピュータ支援シミュレーションを実行するように構成されている。シミュレーションモジュール107は、好ましくは、解析モジュール104に接続されている。計算のために、特に、ニューラルプロセッシングユニットNPUのハードウェア構成パラメータHW2は、シミュレーションモジュール107に送信され、その結果、このニューラルプロセッシングユニットNPUについて特定のコンピュータ支援シミュレーションが実行され得る。
【0067】
制御アプリケーションAPPが制御ユニットのリアルタイム要件RTを満たす場合、制御アプリケーションは、ニューラルプロセッシングユニットNPU上で実行され、技術システムTSを制御するための制御ユニットPLC用の入力値CTLを送信する。
【0068】
チェックモジュール105が否定的なチェック結果を出力する場合、つまり、制御アプリケーションAPPの処理時間Tがリアルタイム要件RTを満たさない場合、任意の最適化モジュール108を用いて、リアルタイム要件RTが満たされるまで、制御アプリケーションの実行時間が最適化され得る。最適化モジュール108は、以下のように、構成されている、すなわち、制御アプリケーションの決定された実行時間が制御ユニットのリアルタイム要件の値を満たすまで、制御アプリケーションAPPを反復的に修正するように、構成されている。例えば、制御アプリケーションAPPが基づいている機械学習モデルを縮小され得て、その際、例えば、人工ニューラルネットワークのノードが削除される。
【0069】
説明および/または図示されたすべての特徴は、本発明の範囲内で、有利には互いに組み合わせされてもよい。本発明は、記載されている実施例に限定されるものではない。