(57)【要約】【課題】  エンジンなどの機械の制御において、少ない学習モデルを用いても特定の条件を満たす指令値を得る。【解決手段】  機械に設置されたセンサで取得されたデータから変換された前記機械の状態量を取得し、取得した状態量に応じて２つ以上の学習モデルを選択する選択部と、前記選択部により選択された２つ以上の学習モデルそれぞれへ、前記選択部により取得された状態量を入力し、学習モデルのそれぞれから出力される指令値を用いて合成値を算出する合成部と、前記合成部により算出された合成値に基づく範囲で、前記機械に対する指令値を出力し、前記機械の状態量を取得し、出力した指令値と取得した状態量の組合せから特定の条件の指令値を検索し、検索した指令値を前記機械に対して出力して新たな学習モデルを作成する学習部と、を備えたことを特徴とする機械制御装置。【選択図】  図１
2019138152.tif 000002
【特許請求の範囲】
【請求項１】
機械に設置されたセンサで取得されたデータから変換された前記機械の状態量を取得し、取得した状態量に応じて２つ以上の学習モデルを選択する選択部と、
前記選択部により選択された２つ以上の学習モデルそれぞれへ、前記選択部により取得された状態量を入力し、学習モデルのそれぞれから出力される指令値を用いて合成値を算出する合成部と、
前記合成部により算出された合成値に基づく範囲で、前記機械に対する指令値を出力し、前記機械の状態量を取得し、出力した指令値と取得した状態量の組合せから特定の条件の指令値を検索し、検索した指令値を前記機械に対して出力して新たな学習モデルを作成する学習部と、
を備えたことを特徴とする機械制御装置。
【請求項２】
請求項１に記載の機械制御装置であって、
前記合成部は、
前記選択部により選択された２つ以上の学習モデルそれぞれの状態量の特性比で、学習モデルのそれぞれから出力される指令値を重み付けして平均し、合成値を算出すること
を特徴とする機械制御装置。
【請求項３】
請求項２に記載の機械制御装置であって、
前記選択部は、
取得した状態量と学習モデルのラベルの状態量との距離の小さい順に２つ以上の学習モデルを選択すること
を特徴とする機械制御装置。
【請求項４】
請求項３に記載の機械制御装置であって、
前記学習部は、
前記合成部により算出された合成値を中心値として、予め設定された探索幅の探索範囲を設定し、設定した探索範囲と予め設定された設定刻みから決定される指令値を出力し、前記機械の状態量を取得して、出力した指令値と取得した状態量の組合せを生成すること
を特徴とする機械制御装置。
【請求項５】
請求項４に記載の機械制御装置であって、
前記学習部は、
設定した探索範囲と予め設定された設定刻みから決定される１つの指令値を第１の設定回数繰り返して出力し、
検索した１つの指令値を第１の設定回数より多い第２の設定回数繰り返して出力し、新たな学習モデルを作成すること
を特徴とする機械制御装置。
【請求項６】
請求項１に記載の機械制御装置であって、
前記機械は燃料を燃焼させるエンジンであり、
前記選択部は、
前記エンジンでの燃焼に応じた状態量を取得し、取得した状態量に応じて２つ以上の学習モデルを選択し、
前記合成部は、
前記選択部により選択された２つ以上の学習モデルそれぞれへ、前記選択部により取得された前記エンジンの状態量を入力し、学習モデルのそれぞれから出力される空燃比あるいは点火時期を含む指令値を用いて合成値を算出し、
前記学習部は、
前記合成部により算出された合成値に基づく範囲で、前記エンジンに対する指令値を出力し、前記エンジンの状態量を取得し、出力した指令値と取得した状態量の組合せから特定の条件の指令値を検索し、検索した指令値を前記エンジンに対して出力して新たな学習モデルを作成すること
を特徴とする機械制御装置。
【請求項７】
請求項６に記載の機械制御装置であって、
前記エンジンは２種類以上の燃料を燃焼させるエンジンであり、
前記合成部は、
前記選択部により選択された２つ以上の学習モデルそれぞれの燃焼に応じた状態量の特性比で、学習モデルのそれぞれから出力される指令値を重み付けして平均し、合成値を算出すること
を特徴とする機械制御装置。
【請求項８】
請求項７に記載の機械制御装置であって、
前記選択部は、
取得した状態量と学習モデルのラベルの状態量との距離の小さい順に２つ以上の学習モデルを選択すること
を特徴とする機械制御装置。
【請求項９】
請求項８に記載の機械制御装置であって、
前記学習部は、
前記合成部により算出された合成値を中心値として、予め設定された探索幅の探索範囲を設定し、設定した探索範囲と予め設定された設定刻みから決定される指令値を出力し、前記エンジンの状態量を取得して、出力した指令値と取得した状態量の組合せを生成すること
を特徴とする機械制御装置。
【請求項１０】
請求項９に記載の機械制御装置であって、
前記学習部は、
設定した探索範囲と予め設定された設定刻みから決定される１つの指令値を第１の設定回数繰り返して出力し、
検索した１つの指令値を第１の設定回数より多い第２の設定回数繰り返して出力し、新たな学習モデルを作成すること
を特徴とする機械制御装置。
【請求項１１】
機械に設置されたセンサで取得されたデータから変換された前記機械の状態量を取得し、取得した状態量に応じて学習モデルを選択する選択部と、
前記選択部により選択された学習モデルへ、前記選択部により取得された状態量を入力し、学習モデルから出力される指令値を保存し、保存した指令値に基づいて、運転条件範囲内のキャリブレーションデータを生成するキャリブレーション部と、
前記キャリブレーション部により生成されたキャリブレーションデータに基づく範囲で、前記機械に対する指令値を出力し、前記機械の状態量を取得し、出力した指令値と取得した状態量の組合せから特定の条件の指令値を検索し、検索した指令値を前記機械に対して出力して新たな学習モデルを作成する学習部と、
を備えたことを特徴とする機械制御装置。
【請求項１２】
請求項１１に記載の機械制御装置であって、
前記キャリブレーション部は、
キャリブレーションデータの生成として、保存した前記機械に対する指令値を出力し、前記機械の状態量を取得し、出力した指令値と取得した状態量の組合せをキャリブレーションデータとし、目標指標を目標指標ずれ幅で更新し、保存した指令値を指令値ずれ幅で更新して保存し、
更新した目標指標が運転条件範囲内である限りキャリブレーションデータの生成を繰り返すこと
を特徴とする機械制御装置。
【請求項１３】
請求項１１に記載の機械制御装置であって、
前記機械は燃料を燃焼するエンジンであり、
前記選択部は、
前記エンジンでの燃焼に応じた状態量を取得し、取得した状態量に応じて学習モデルを選択し、
前記キャリブレーション部は、
前記選択部により選択された学習モデルへ、前記選択部により取得された前記エンジンの状態量を入力し、学習モデルから出力される空燃比あるいは点火時期を含む指令値を保存し、保存した指令値に基づいて、運転条件範囲内のキャリブレーションデータを生成、
前記学習部は、
前記キャリブレーション部により生成されたキャリブレーションデータに基づく範囲で、前記エンジンに対する指令値を出力し、前記エンジンの状態量を取得し、出力した指令値と取得した状態量の組合せから特定の条件の指令値を検索し、検索した指令値を前記エンジンに対して出力して新たな学習モデルを作成すること
を特徴とする機械制御装置。
【請求項１４】
請求項１３に記載の機械制御装置であって、
前記キャリブレーション部は、
キャリブレーションデータの生成として、保存した前記エンジンに対する指令値を出力し、前記エンジンの状態量を取得し、出力した指令値と取得した状態量の組合せをキャリブレーションデータとし、目標指標を目標指標ずれ幅で更新し、保存した指令値を指令値ずれ幅で更新して保存し、
更新した目標指標が運転条件範囲内である限りキャリブレーションデータの生成を繰り返すこと
を特徴とする機械制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は機械制御装置に関する。
【背景技術】
【０００２】
欧米において地域のエネルギー自立化が勧められており、農産廃棄物などを用いたバイオマス発電と太陽光発電、風力発電へ移行する動きが見られる。バイオマス燃料は人の経済活動に伴って得られることからその入手性は場所や時期で変動する。そのため、複数の燃料を組み合わせた利用が想定され、それに対応した発電用エンジン制御が必要とされる。
【０００３】
従来、燃料ごとに点火時期や空燃比を含む多数の制御指令値の制御マップを人手で作成し、フィードフォワードでエンジンが制御されていた。しかし、複数の燃料を組み合わせてエンジンを制御する場合、想定される多くの燃料の組み合わせやそれらの混成比ごとに、人手で制御マップを作成することは煩雑、高コストで実用化は困難である。
【０００４】
そこで、エンジンをモデル化して機械学習させることも考えられる。回帰モデルにカーネルの適用と除去を繰り返して回帰モデルを洗練させていきシステムの異常状態を検出する技術がある。例えば特許文献１に記載の技術である。
【０００５】
また、プラントの運転状態と運転指標の回帰モデルが、線形な場合は線形計画法を用い、非線形な場合は二次計画法を用いて、最適な運転条件を求める技術がある。例えば特許文献２に記載の技術である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第７８４４５５８号明細書
【特許文献２】特開２０１２−０７４００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の技術は、学習データやカーネルの入れ替えと追加によって、対象機器を運転しながら異常判別の精度を向上させている。しかし、エンジンなどの機械を制御する場合、新たに得られた学習データに、最初から特定の条件を満たすデータそのものが含まれているとは限らず、特定の条件に対して十分な精度が得られない可能性もある。
【０００８】
特許文献２に記載の技術は、プラントの全運転条件の回帰モデルを作成し、最適化することによって最適な運転条件を算出している。しかし、エンジンなどの機械を制御する場合、予め多くの学習モデルを作成することは実用上困難である。
【０００９】
以上を踏まえ、本発明では、エンジンなどの機械の制御において、少ない学習モデルを用いても特定の条件を満たす指令値を得ることを目的とする。
【課題を解決するための手段】
【００１０】
本発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。機械に設置されたセンサで取得されたデータから変換された前記機械の状態量を取得し、取得した状態量に応じて２つ以上の学習モデルを選択する選択部と、前記選択部により選択された２つ以上の学習モデルそれぞれへ、前記選択部により取得された状態量を入力し、学習モデルのそれぞれから出力される指令値を用いて合成値を算出する合成部と、前記合成部により算出された合成値に基づく範囲で、前記機械に対する指令値を出力し、前記機械の状態量を取得し、出力した指令値と取得した状態量の組合せから特定の条件の指令値を検索し、検索した指令値を前記機械に対して出力して新たな学習モデルを作成する学習部と、を備えたことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、エンジンなどの機械の制御において、少ない学習モデルを用いても特定の条件を満たす指令値を得ることが可能になる。
【図面の簡単な説明】
【００１２】
【図１】学習モデル出力の合成を含むエンジンシステムの構成例を示す図である。
【図２】実施例１に係る処理フローチャートの例を示す図である。
【図３】キャリブレーションを含むエンジンシステムの構成例を示す図である。
【図４Ａ】実施例２に係る処理フローチャートの例を示す図である。
【図４Ｂ】実施例２に係る処理フローチャートの例を示す図である。
【図５】実施例３に係る処理フローチャートの例を示す図である。
【図６】実施例４に係る処理フローチャートの例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して実施の形態および実施例を説明する。なお、実施の形態および実施例を説明するための図１〜６において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
【実施例１】
【００１４】
図１は、本実施例におけるエンジンシステムの構成例を示す図である。エンジンシステムは、エンジン１０１、観測器１０２、制御器１０３、ＰＣ１０４（エンジン制御装置）、およびデータサーバ１０５を備える。
【００１５】
観測器１０２はエンジン１０１に設置されたセンサの生データを取得し、エンジン１０１の燃焼状態を示すエンジン状態指標に変換してＰＣ１０４へ出力する。制御器１０３はＰＣ１０４から取得したエンジン指令値を指令信号に変換してエンジン１０１へ出力する。観測器１０２はアナログデジタル変換器を含んでもよいし、制御器１０３はデジタルアナログ変換器を含んでもよい。
【００１６】
データサーバ１０５には、エンジン状態指標を入力とし、エンジン指令値を出力とする学習モデルとそのラベルが保存される。学習モデルはエンジン１０１の運転条件ごとに作成される。また、学習モデルはエンジン指標と目標指標の組合せを入力としてもよい。
【００１７】
ここで、ラベルは学習モデルを作成するのに用いたデータセットのエンジン状態指標の代表値である。目標指標は、エンジン指令値を変更してエンジン状態指標を変化させ、エンジン状態指標を近づける目標となる指標であり、ＰＣ１０４の外部から入力される。
【００１８】
ＰＣ１０４は、学習モデル選択部１０６、合成部１０７、および学習部１０８を有する。学習モデル選択部１０６は、観測器１０２から入力したエンジン状態指標に基づいて、データサーバ１０５に保存された学習モデルの中から、学習部１０８で用いる学習モデルであるベース学習モデル群を選択して取得する。
【００１９】
合成部１０７は、ベース学習モデル群の出力値を合成する。学習部１０８は、合成部１０７で合成した出力値の周辺領域において熱効率が最大のエンジン指令値を探索し、エンジン指令値を制御器１０３へ出力し、学習モデルを生成してデータサーバ１０５に保存する。
【００２０】
ＰＣ１０４は、プロセッサ１２１、記憶部１２２、入出力部１２３を備えたコンピュータである。記憶部１２２はメモリあるいは２次記憶装置を含んでもよく、入出力部１２３はシリアルインターフェイス、パラレルインターフェイス、あるいはネットワークインターフェイスを含んでもよい。
【００２１】
学習モデル選択部１０６、合成部１０７、および学習部１０８の１つまたは複数は、専用回路により実装されてもよいし、記憶部１２２に格納されたプログラムを実行するプロセッサ１２１により実装されてもよい。
【００２２】
図２は、本実施例におけるエンジンシステムの処理フローチャートの例を示す図である。ステップ２０１で、観測器１０２はエンジン１０１に設置されたセンサの生データを１制御サイクル分取得する。
【００２３】
センサには例えばエンジン１０１の筒内圧を検出する圧力センサを用いる。１制御サイクル分の圧力センサの生データの最大値をエンジン状態指標として、ＰＣ１０４へ出力する。１制御サイクルはエンジンの吸入、圧縮、爆発、排気の４行程を１サイクルとしてもよい。
【００２４】
センサは、圧力センサでなくともよく、ひずみセンサ、マイク、温度センサ、燃料または空気の流量計、エンジン回転数を検出するエンコーダ、あるいはエンジン１０１の軸トルクを検出するトルクセンサなどのエンジン１０１の燃焼状態を検出するものであればよい。エンジン１０１に複数のセンサが設置され、複数のセンサの複数の生データが取得されてもよい。
【００２５】
また、エンジン状態指標は圧力センサの生データの最大値でなくともよく、圧力センサの複数の生データまたはその他のセンサの値との組合せなど、データサーバ１０５に保存された学習モデルに入力されるエンジン状態指標のデータ種類に対応していればよい。または、ステップ２０１で取得されるエンジン状態指標のデータ種類に合わせて、ステップ２０２で取得される学習モデルが選択されてもよい。
【００２６】
ステップ２０２で、学習モデル選択部１０６はデータサーバ１０５からベース学習モデル群を取得する。すなわち、ステップ２０１で観測器１０２から出力されたエンジン状態指標とデータサーバ１０５に保存された複数の学習モデルのラベルのエンジン状態指標との距離の小さい順に２つ以上の学習モデルをベース学習モデル群として取得する。
【００２７】
なお、ステップ２０１で取得された複数のエンジン状態指標の一部が、ステップ２０２で用いられてもよい。また、エンジン状態指標に限らず、要求トルク（要求圧力）などの目標指標、またはエンジン状態指標と目標指標の組合せが、ステップ２０２で用いられてもよい。
【００２８】
さらに、観測器１０２から出力されたエンジン状態指標と複数の学習モデルのラベルのエンジン状態指標との距離に基づくのではなく、データサーバ１０５に保存された複数の学習モデルが条件なく取得されてもよい。
【００２９】
エンジン状態指標の距離は、予め設定された計算式にしたがって同じ種類の複数のエンジン状態指標の複数の値から計算された距離であってもよい。また、エンジン状態指標の距離は、種類の異なる複数のエンジン状態指標の組合せに重みが予め設定されており、予め設定された計算式にしたがって種類の異なる複数のエンジン状態指標の複数の値に重みが乗算された値から計算された距離であってもよい。
【００３０】
ステップ２０３で、合成部１０７は、ステップ２０１で取得されたエンジン状態指標をステップ２０２で取得された各ベース学習モデルに入力し、各々出力値を取得する。そして、ステップ２０４で、合成部１０７は、各ベース学習モデルの出力値を合成する。
【００３１】
出力値の合成の計算は例えば、各ベース学習モデルに設定された合成重みを用いての重み付き平均値の計算である。合成重みには各ベース学習モデルの作成に利用されたデータセットのエンジン状態指標から得られる特性比が用いられる。
【００３２】
例えば、ベース学習モデルがモデルＡ、モデルＢの２つの場合で、作成に利用されたデータセットの筒内圧最大値の比（特性比）がＡ：Ｂ＝３：２のとき、モデルＡの合成重みＷ（Ａ）＝３、モデルＢの合成重みＷ（Ｂ）＝２とする。ただし、特性比は、筒内圧最大値の比に限るものではなく、エンジントルクの比などのエンジン状態指標から得られる比であればよい。
【００３３】
モデルＡのエンジン状態指標の値をＳ（Ａ）とし、モデルＢのエンジン状態指標の値をＳ（Ｂ）とし、モデルＡの出力値をＯ（Ａ）とし、モデルＢの出力値をＯ（Ｂ）とし、現制御サイクルのエンジン状態指標の値をＳ（Ｔ）とすると、重み付き平均値ＡＶＥの計算は以下のようになる。
【００３４】
【数１】
2019138152.tif 000003
【００３５】
ただし、重み付き平均値の計算はこの式に限るものではない。
【００３６】
また、合成による出力値は、重み付き平均値に限るものではなく、重みを付けない平均値、平均値または重み付き平均値にエンジン状態指標などで補正した値であってもよい。また、各ベース学習モデルのパラメータの平均値などが用いられて、新しく学習モデルが作成され、その学習モデルにエンジン状態指標が入力されて出力値が算出されてもよい。
【００３７】
ステップ２０５で、学習部１０８は、ステップ２０４で合成された出力値に基づいて探索範囲を設定する。探索範囲は、予め設定された探索幅となるように、ステップ２０４で算出された出力値を中心値として設定される。ステップ２０４で算出された出力値を中心値としなくともよく、ステップ２０４で算出された出力値を境界値として探索範囲が設定されてもよい。
【００３８】
また、探索幅は、予め設定された探索幅に固定されなくともよく、ステップ２０４で算出された出力値またはエンジン状態指標に基づいて探索幅を設定するためのテーブルまたは算出式が予め設定されてもよい。
【００３９】
さらに、探索刻みが予め設定されてもよく、探索刻みは、予め設定された探索刻みに固定されなくともよく、ステップ２０４で算出された出力値またはエンジン状態指標に基づいて探索刻みを設定するためのテーブルまたは算出式が予め設定されてもよい。
【００４０】
ステップ２０６で、学習部１０８は、ステップ２０５で設定した探索範囲と予め設定された探索刻みの探索から決定されたエンジン指令値を順に制御器１０３へ出力し、制御器１０３は指令信号に変換してエンジン１０１へ出力する。すなわち、探索範囲の境界値（範囲の端の値）から探索刻みずつエンジン指令値をずらしながら複数のエンジン指令値が順次決定されて出力される。
【００４１】
これにより、ステップ２０６で探索幅を探索刻みで除算された数のエンジン指令値が出力される。制御器１０３へ出力される値は探索範囲と探索刻みから決定されるエンジン指令値自体でなくともよく、エンジン指令値にノイズが付加された値であってもよい。
【００４２】
決定された１つのエンジン指令値が複数回出力され、それぞれの出力へノイズが付加されることにより、同じエンジン指令値の値が振られ、探索刻みだけでは決定できないエンジン指令値が出力される。また、エンジン１０１の燃焼状態にぶれが発生する可能性もあるため、ノイズの付加とは関わりなく、同じエンジン指令値が複数回出力されてもよい。
【００４３】
エンジン指令値はエンジン１０１の点火時期と空燃比の一方または両方を制御する指令の値であってもよい。空燃比を制御する指令の値は、燃料の噴射開始時期と噴射時間の値、あるいは燃料の噴射量の値を含んでもよい。エンジン指令値はこれらの値に限らず、エンジン１０１の燃焼状態を制御する値であればよい。
【００４４】
ステップ２０６で、さらに学習部１０８は出力したエンジン指令値に対するエンジン１０１の状態をエンジン状態指標として観測器１０２から入力する。ステップ２０７で、学習部１０８は、制御器１０３へ出力した複数のエンジン指令値それぞれと観測器１０２から入力した複数のエンジン状態指標それぞれの組合せを探索用データセットとしてデータサーバ１０５に保存する。
【００４５】
ステップ２０８で、学習部１０８はステップ２０７で保存された探索用データセットの中から最大の熱効率となるエンジン指令値を検索する。学習部１０８は、最大の熱効率となるエンジン指令値が検索により見つかると、見つかったエンジン指令値に基づいて新たに探索範囲を設定して探索し、探索用データセットをデータサーバ１０５に保存して最大の熱効率となるエンジン指令値を探索することを繰り返してもよい。
【００４６】
この最大の熱効率となるエンジン指令値を見つけるための処理は、探索範囲と探索刻みが予め設定されて探索が繰り返される処理に限るものではない。この処理は、例えば探索刻みを徐々に細かくしながら探索が繰り返されてもよい。
【００４７】
また、この処理は、探索の対象となるデータの数を少なくするため、最大の熱効率となるエンジン指令値のデータとして発生確率分布を推定して探索範囲を絞り込んでもよいし、探索に強化学習が導入されてもよいし、探索範囲内での運転条件の振り幅が何らかのセンサの情報に基づいて設定されてもよい。
【００４８】
ステップ２０９で、学習部１０８は、最大の熱効率となる１つのエンジン指令値を１０００制御サイクル、制御器１０３へ出力する。出力制御サイクル数は１０００でなくてもよく、学習モデルの作成に必要な数であればよい。また、ステップ２０６で同じエンジン指令値が複数回出力される場合の出力の数より、ステップ２０９では多くの数のエンジン指令値が出力されてもよい。
【００４９】
ステップ２０９で、さらに学習部１０８は出力したエンジン指令値に対するエンジン１０１の状態をエンジン状態指標として観測器１０２から入力する。ステップ２１０で、学習部１０８は、制御器１０３へ出力した複数のエンジン指令値それぞれと観測器１０２から入力した複数のエンジン状態指標それぞれの組合せを学習用データセットとしてデータサーバ１０５に保存する。
【００５０】
ステップ２１１で、学習部１０８は学習用データセットを用いて学習モデルを作成する。学習部１０８は、学習モデルを新規に作成するのではなく、ベース学習モデルのパラメータを初期値として、学習用データセットを用いてパラメータを学習させて学習モデルを作成してもよい。
【００５１】
ステップ２１２で、学習部１０８は、作成した学習モデルのラベルを作成し、データサーバ１０５に保存する。保存された学習モデルは、次の処理のベース学習モデルの１つとなる。
【００５２】
以上で説明したように本実施例によれば、２つの学習モデルしかない場合であっても、２つの学習モデルの状態指標の特性比に応じた２つの学習モデルの出力の合成が可能となり、２つの学習モデルのそれぞれでは出力できない出力値を合成値として得ることができる。
【００５３】
そして、得られた合成値を基に探索することにより探索用データセットを保存し、探索用データセットの中で熱効率が最大となる指令値を検索することにより、合成値では得られない最大の熱効率となる指令値であっても得ることが可能になる。また、最大の熱効率となる指令値を用いて新たな学習モデルを作成することも可能になる。
【実施例２】
【００５４】
本実施例では、探索範囲を設定するために、運転条件毎に異常燃焼の起きないエンジン指令値を取得しておく例を説明する。本実施例では、実施例１との違いを主に説明し、実施例１と同じ説明は省略する。図３は、本実施例のエンジンシステムの構成例を示す図である。
【００５５】
図３に示したＰＣ１０４は、図１に示した学習モデル選択部１０６と学習部１０８に加えて、キャリブレーション部３０１を有する。キャリブレーション部３０１は、エンジン１０１が始動された後、予め設定された運転条件の範囲で異常燃焼の起きないエンジン指令値を取得する。なお、図１に示したプロセッサ１２１、記憶部１２２、および入出力部１２３は図示を省略した。
【００５６】
運転条件はエンジン１０１の動作に影響する条件であればどのような条件であってもよい。例えばエンジンが複数の燃料を燃焼して動作するのであれば、複数の燃料の混成比であってもよいが、これに限るものではない。そして、運転条件の異常燃焼の起きない範囲が予めＰＣ１０４の外から設定されてもよい。
【００５７】
図４Ａ、４Ｂは、本実施例におけるエンジンシステムの処理フローチャートの例を示す図である。図４Ａに示したステップ４０１は図２を用いて説明したステップ２０１と同様の処理である。ステップ４０２で、学習モデル選択部１０６はデータサーバ１０５からベース学習モデルを取得する。
【００５８】
すなわち、学習モデル選択部１０６は、ステップ４０１で観測器１０２から出力されたエンジン状態指標とデータサーバ１０５に保存された複数の学習モデルのラベルのエンジン状態指標との距離の最も小さい学習モデルをベース学習モデルとして取得する。
【００５９】
なお、ステップ４０１で取得した複数のエンジン状態指標の一部が、ステップ４０２で用いられてもよい。また、エンジン状態指標に限らず、要求トルクなどの目標指標やエンジン状態指標と目標指標の組合せが、ステップ４０２で用いられてもよい。
【００６０】
ステップ４０３で、キャリブレーション部３０１は、ステップ４０１で取得されたエンジン状態指標をステップ４０２で取得したベース学習モデルに入力し、出力値を取得する。ステップ４０４で、キャリブレーション部３０１は、ステップ４０３で取得した出力値をエンジン指令値として保存し、エンジン指令値のずれ幅と目標指標のずれ幅を設定する。
【００６１】
エンジン指令値のずれ幅と目標指標のずれ幅のそれぞれは、ＰＣ１０４へ予め入力されたずれ幅の値に基づいて、キャリブレーション部３０１により設定されてもよい。
【００６２】
そして、ステップ４３０の処理を実施するが、ステップ４３０の処理については図４Ｂを用いて説明する。図４Ｂに示したステップ４０５で、キャリブレーション部３０１は、保存されたエンジン指令値を制御器１０３へ出力し、制御器１０３は指令信号に変換してエンジン１０１へ出力する。
【００６３】
ステップ４０５で、さらにキャリブレーション部３０１は出力したエンジン指令値に対するエンジン１０１の状態をエンジン状態指標として観測器１０２から入力する。ステップ４０６で、キャリブレーション部３０１は、観測器１０２から入力したエンジン状態指標と制御器１０３へ出力した指令値の組合せをキャリブレーションデータセットとしてデータサーバ１０５に保存する。
【００６４】
ステップ４０７で、キャリブレーション部３０１は、目標指標へ目標指標のずれ幅を加算して更新し、新たな目標指標として保存する。ステップ４０８はステップ４０１と同様の処理である。ステップ４０９で、キャリブレーション部３０１は、保存されたエンジン指令値へエンジン指令値のずれ幅を加算して更新し、新たなエンジン指令値として保存する。
【００６５】
ステップ４１０で、キャリブレーション部３０１は、保存された目標指標がエンジン１０１の運転条件範囲内であるかを判定し、範囲内であると判定すればステップ４０５に戻り、範囲内でないと判定すればステップ４１１に進む。
【００６６】
なお、エンジン１０１に異常燃焼を検出するセンサが設置され、このセンサの生データが観測器１０２で異常燃焼の検出有無に関するエンジン状態指標に変換されてもよい。キャリブレーション部３０１は、異常燃焼の検出有無に関するエンジン状態指標を観測器１０２から継続的に入力し、異常燃焼を検出しない範囲を判定してもよい。
【００６７】
そして、ステップ４１０でキャリブレーション部３０１は、保存された目標指標がエンジン１０１の運転条件範囲内であるかを判定する代わりに、異常燃焼を検出しない範囲であるかを判定してもよいし、保存された目標指標がエンジン１０１の運転条件範囲内であり、かつ異常燃焼を検出しない範囲であるかを判定してもよい。
【００６８】
ステップ４１１はステップ４０１と同様の処理である。ステップ４１２で、学習部１０８は、データサーバ１０５に保存されたキャリブレーションデータの中からステップ４１１で観測器１０２から出力されたエンジン状態指標に最も近いエンジン状態指標とエンジン指令値の組合せを取得する。
【００６９】
ステップ４１３で、学習部１０８は、ステップ４１２で取得したエンジン指令値に基づいて、図２を用いて説明したステップ２０５と同様に探索範囲を設定する。図４Ａに戻り、ステップ４１４〜４２０のそれぞれは、図２を用いて説明したステップ２０６〜２１２と同様の処理である。
【００７０】
以上で説明したように本実施例によれば、熱効率が最大となる指令値を検索する際に異常燃焼を回避することも可能になる。
【実施例３】
【００７１】
本実施例では、運転条件毎に異常燃焼の起きないエンジン指令値を取得する他の例を説明する。本実施例のエンジンシステムの構成例は実施例２と同様であるので、図３を参照し、新たな図示は省略する。
【００７２】
図５は、本実施例におけるエンジンシステムの処理フローチャートの例を示す図である。ステップ５０１、５０２のそれぞれは、図４Ａに示したステップ４０１、４０２と同様の処理である。ステップ５０３で、キャリブレーション部３０１は、ステップ５０１で取得されたエンジン状態指標と保存された目標指標の組合せをステップ５０２で取得したベース学習モデルに入力し、出力値を取得する。
【００７３】
ステップ５０４で、学習部１０８は、ステップ５０３で取得したエンジン指令値に基づいて、ステップ４１３と同様に探索範囲を設定する。ステップ５０５〜５１１のそれぞれは、図４Ａに示したステップ４１４〜４２０と同様の処理である。ステップ５１２、５１３のそれぞれは、図４Ｂに示したステップ４０７、４１０と同様である。なお、目標指標のずれ幅はステップ５０１より前に予め設定される。
【００７４】
以上で説明したように、実施例２と同様に本実施例によれば、熱効率が最大となる指令値を検索する際に異常燃焼を回避することも可能になる。
【実施例４】
【００７５】
本実施例では、観測器１０２から出力されたエンジン状態指標によって、２つ以上のベース学習モデルの出力を合成した出力値に基づいた探索範囲の設定か、１つのベース学習モデルの出力値に基づいた探索範囲の設定かを選択する例を説明する。本実施例のエンジンシステムの構成例は実施例１と同様であるので、図１を参照し、新たな図示は省略する。
【００７６】
図６は、本実施例におけるエンジンシステムの処理フローチャートの例を示す図である。ステップ６０１は図２を用いて説明したステップ２０１と同様の処理である。ステップ６０２で、学習モデル選択部１０６はデータサーバ１０５からベース学習モデル群を取得する。
【００７７】
そして、学習モデル選択部１０６は、ステップ６０１で観測器１０２から出力されたエンジン状態指標とデータサーバ１０５に保存された複数の学習モデルのラベルのエンジン状態指標との最短距離が予め設定された閾値より小さいかを判定する。
【００７８】
学習モデル選択部１０６は、最短距離が閾値より小さいと判定した場合、最短距離の学習モデルをベース学習モデルとして取得してステップ６０３に進み、最短距離が閾値より小さくないと判定した場合、距離の小さい順に２つ以上の学習モデルをベース学習モデル群として取得してステップ６０４に進む。
【００７９】
なお、ステップ６０１で取得された複数のエンジン状態指標の一部が、ステップ６０２で用いられてもよい。また、エンジン状態指標に限らず、要求トルクなどの目標指標、またはエンジン状態指標と目標指標の組合せが、ステップ６０２で用いられてもよい。
【００８０】
ステップ６０３で、学習部１０８は、ステップ６０１で取得されたエンジン状態指標をステップ６０２で取得されたベース学習モデルに入力し、出力値を取得して、ステップ６０６に進む。ステップ６０４〜６１３のそれぞれは、図２を用いて説明したステップ２０３〜２１２と同様の処理である。
【００８１】
以上で説明したように本実施例によれば、エンジンの燃焼状態に合う学習モデルがデータサーバに保存された場合、合成の処理が不要となり、探索までにかかる時間が短縮化される。
【符号の説明】
【００８２】
１０１…エンジン、１０２…観測器、１０３…制御器、１０４…ＰＣ、１０５…データサーバ、１０６…学習モデル選択部、１０７…合成部、１０８…学習部、３０１…キャリブレーション部
【図１】
2019138152.tif 000004
【図２】
2019138152.tif 000005
【図３】
2019138152.tif 000006
【図４Ａ】
2019138152.tif 000007
【図４Ｂ】
2019138152.tif 000008
【図５】
2019138152.tif 000009
【図６】
2019138152.tif 000010