(57)【要約】      （修正有）【課題】消費電力を抑えつつ、要求される処理を完了させる。【解決手段】実施形態に係る制御装置１は、回転機構の制御を行う制御装置１であって、回転機構の回転状態に基づく第１期間内にニューラルネットワークによる演算を行う第１処理と、回転機構の回転状態に基づいて処理を開始し、第１処理よりも高い優先度で処理を行う第２処理とを、ソフトウェアで処理する制御部２と、第１処理の少なくとも一部をハードウェアで処理することが可能なハード演算部４とを備え、制御部２は、回転機構の回転速度が所定閾値以上である場合に、ハード演算部４を起動させる。【選択図】図２
2020148122.tif 000002
【特許請求の範囲】
【請求項１】
回転機構の制御を行う制御装置であって、
回転機構の回転状態に基づく第１期間内にニューラルネットワークによる演算を行う第１処理と、前記回転機構の回転状態に基づいて処理を開始し、前記第１処理よりも高い優先度で処理を行う第２処理とを、ソフトウェアで処理する制御部と、
前記第１処理の少なくとも一部をハードウェアで処理することが可能なハード演算部と
を備え、
前記制御部は、
前記回転機構の回転速度が所定閾値以上である場合に、前記ハード演算部を起動させること
を特徴とする制御装置。
【請求項２】
前記制御部は、
前記第１処理および前記第２処理よりも低い優先度で処理を行う第３処理を行うこと
を特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御部は、
前記ハード演算部からニューラルネットワークによる演算の完了連絡を受けると、当該演算の結果データを取り込む取り込み処理を行うこと
を特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記制御部は、
前記回転機構の回転速度が前記所定閾値未満になった場合に、前記ハード演算部を停止させること
を特徴とする請求項１，２または３に記載の制御装置。
【請求項５】
回転機構の制御を行う制御方法であって、
回転機構の回転状態に基づく第１期間内にニューラルネットワークによる演算を行う第１処理と、前記回転機構の回転状態に基づいて処理を開始し、前記第１処理よりも高い優先度で処理を行う第２処理とを、ソフトウェアで処理する制御工程
を含み、
前記制御工程は、
前記回転機構の回転速度が所定閾値以上である場合に、前記第１処理の少なくとも一部をハードウェアで処理することが可能なハード演算部を起動させること
を特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置および制御方法に関する。
【背景技術】
【０００２】
近年、例えば、学習モデルに基づき、内燃機関の異常を判定する制御装置がある。この種の制御装置では、例えば、内燃機関が所定の回転タイミングから所定期間内に判定結果を出力する（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−１７８８１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、例えば、内燃機関の回転速度が所定値以上となった場合に、処理が間に合わなくなるおそれがある。かといって、学習モデルによる処理を他のハードウェアで行うと、ハードウェアの分だけ、消費電力が増加するため好ましくない。
【０００５】
本発明は、上記に鑑みてなされたものであって、消費電力を抑えつつ、要求される処理を完了させることができる制御装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、実施形態に係る制御装置は、回転機構の制御を行う制御装置であって、回転機構の回転状態に基づく第１期間内にニューラルネットワークによる演算を行う第１処理と、前記回転機構の回転状態に基づいて処理を開始し、前記第１処理よりも高い優先度で処理を行う第２処理とを、ソフトウェアで処理する制御部と、前記第１処理の少なくとも一部をハードウェアで処理することが可能なハード演算部とを備え、前記制御部は、前記回転機構の回転速度が所定閾値以上である場合に、前記ハード演算部を起動させる。
【発明の効果】
【０００７】
本発明によれば、消費電力を抑えつつ、要求される処理を完了させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、制御方法の概要を示す図である。
【図２】図２は、制御装置のブロック図である。
【図３】図３は、制御装置が実行する処理を示すタイミングチャートである。
【図４】図４は、制御装置が実行する処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本願の開示する制御装置および制御方法の実施形態を詳細に説明する。なお、以下に示す実施形態により本発明が限定されるものではない。
【００１０】
まず、図１を用いて実施形態に係る制御装置および制御方法の概要について説明する。図１は、制御方法の概要を示す図である。なお、実施形態に係る補正方法は、図１に示す制御装置１によって実行される。
【００１１】
図１に示すように、実施形態に係る制御装置１は、例えば、エンジン１００から入力される各種センサ値を取得し、センサ値に基づき、エンジン１００の内部状態を推定する。
【００１２】
また、制御装置１は、ソフト演算部と、ハード演算部とを備える。ソフト演算部は、例えば、第１処理、第２処理、第３処理を応じて、要求されるタイミングで適宜実行するソフトウェアである。
【００１３】
ここで、第１処理は、ニューラルネットワークによる演算処理である。第１処理は、ＡＩ（Artificial  Intelligent）処理とも称される。第１処理は例えば異常検出処理であって、ノッキング検出処理等である。第２処理は、第１処理に比べて処理の優先度が高い処理である。第２処理はエンジンを制御するための処理であって、燃料噴射制御や点火制御等である。また、第３処理は、第１処理および第２処理に比べて処理の優先度が低い処理である。このため、第３処理は、第１処理および第２処理の空き時間に実行されるタスクである。
【００１４】
ハードウェア演算部は、第１処理の少なくとも一部をハードウェアで処理することが可能なソフトウェア演算部とは別のハードウェアである。
【００１５】
図１に示すように、ソフト演算部は、エンジン１００のクランク角が上死点（以下、ＴＤＣと記載する）から所定のクランク角周期（例えば、３０ＣＡ）で第２処理を実行し、第２処理の空き時間において、第１処理を実行する。
【００１６】
なお、例えば、第１処理は、第２処理よりもクランク角周期が長い周期毎（例えば、７２０ＣＡ）に要求されるタスクである。また、第３処理は、例えば、所定の時間周期で要求されるタスクである。
【００１７】
ところで、一般的に、エンジン１００の回転速度が上昇するほど、第２処理の処理間隔が短くなる。この場合、ソフト演算部による処理が第２処理（および第１処理）に占拠され、第３処理を実行できない場合が想定される。
【００１８】
このため、実施形態に係る制御方法では、エンジン１００の回転速度が所定閾値を超えた場合に、ハード演算部を起動させる。すなわち、実施形態に係る制御方法では、エンジンの回転速度が回転閾値を超える場合に、ハード演算部を起動させて、第２処理をハード演算部側で実行する。
【００１９】
これにより、ソフト演算部は、ハード演算部が起動している期間においては、第２処理を実行する必要がなく、第１処理の空き時間に第３処理を実行することができる。一方、実施形態に係る制御方法では、エンジン１００の回転速度が回転閾値以下である場合、ハード演算部を停止しておく。
【００２０】
言い換えれば、ソフト演算部で第２処理の空き時間に第１処理および第３処理を要求されるタイミングまでに実行可能な場合に、ハード演算部を停止しておく。これにより、ハード演算部による消費電力を抑制することが可能となる。
【００２１】
つまり、実施形態に係る制御方法では、ソフト演算部による処理が追いつかない場合に、ハード演算部で第１処理を行うとともに、ソフト演算部で足りる場合、ハード演算部を停止させておく。
【００２２】
したがって、実施形態に係る制御方法によれば、消費電力を抑えつつ、要求される処理を完了させることが可能となる。
【００２３】
次に、図２を用いて実施形態に係る制御装置１の構成例について説明する。図２は、制御装置１のブロック図である。なお、図２には、センサ群１０１を併せて示す。センサ群１０１は、エンジン１００の内部状態を検出するセンサの総称である。
【００２４】
上述のように、制御装置１が、ノッキングを検出する場合、センサ群１０１には、クランク角センサ、ノックセンサなどが含まれる。なお、センサ群１０１は、異常の検出対象に応じて、適宜変更することができる。
【００２５】
図２に示すように、制御装置１は、制御部２と、記憶部３と、ハード演算部４とを備える。制御部２は、検出部２１と、ソフト演算部２２と、取り込み部２３と、起動制御部２４とを備える。記憶部３は、入力情報３１と、演算情報３２とを記憶する。
【００２６】
ハード演算部４は、ニューラルネットワークによる処理（第１処理）を行うためのハードウェアである。本実施形態において、ハード演算部４は、第１処理以外のタスクを行う必要はなく、第１処理、すなわち、ＡＩ処理に特化したハードウェアを用いることができる。なお、ＡＩ処理は、基本的に演算量は多いが入力値等が異なる同じような演算を繰り返す処理であるので、処理を代替えさせた際の負荷軽減量が多く、かつ、ハードウェアで処理する際の回路構成が比較的単純な構成となるので、他の第２の処理や第３の処理に比べて、ハードウェアで処理することに適している。
【００２７】
制御部２は、ソフトウェア演算を行うコンピュータであって、例えば、マイクロコンピュータで構成され、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＨＤＤ（Hard  Disk  Drive）、入出力ポートなどを有するコンピュータや各種の回路を含む。
【００２８】
コンピュータのＣＰＵは、例えば、ＲＯＭに記憶されたプログラムを読み出して実行することによって、制御部２の検出部２１、ソフト演算部２２、取り込み部２３および起動制御部２４として機能する。
【００２９】
また、制御部２の検出部２１、ソフト演算部２２、取り込み部２３および起動制御部２４の少なくともいずれか一部または全部をＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェアで構成することもできる。
【００３０】
また、記憶部３は、例えば、ＲＡＭやフラッシュＲＯＭ、ＨＤＤに対応する。記憶部３は、入力情報３１、演算情報３２や各種プログラムの情報を記憶することができる。なお、制御装置１は、有線や無線のネットワークで接続された他のコンピュータや可搬型記録媒体を介して上記したプログラムや各種情報を取得することとしてもよい。なお、制御部２と記憶部３を１つのマイクロコンピュータで構成してもよい。
【００３１】
入力情報３１は、センサ群１０１から入力される入力データに関する情報である。制御部２は、入力情報３１に基づいて、上述の第１〜第３処理を実行することができる。また、図２に示すように、記憶部３は、ハード演算部４と接続されており、ハード演算部４からアクセスすることも可能である。
【００３２】
この場合、ハード演算部４は、入力情報３１を記憶部３から直接取得し、第１処理を行うことも可能である。言い換えれば、ハード演算部４は、制御部２を介さずに入力情報３１を取得する。なお、ＡＩ処理の開始時に必要となる入力データや係数データは、終了時の演算結果よりもデータ量が多くなるので、ハード演算部４が記憶部３から直接取得する構成にした方が制御部２の処理効率の面ではよりよい。
【００３３】
これにより、制御部２による処理負荷を抑制することが可能となる。すなわち、入力情報３１は、データ量が比較的大きく、仮に、ハード演算部４が、制御部２を介して入力情報３１を取得すると、制御部２が入力情報３１を読み出してハード演算部４に受け渡す処理に比較的多くの時間を費やされてしまう恐れがある。
【００３４】
演算情報３２は、上述の第１処理の演算結果に関する情報である。例えば、ソフト演算部２２は、第１処理を中断する場合に、中断前の第１処理の演算結果を演算情報３２として記憶部３に格納する。
【００３５】
制御部２は、エンジン１００のクランク角に同期させて、各種処理（第１処理〜第３処理）を実行するとともに、エンジン１００の回転速度が回転閾値を超えた場合に、ハード演算部４を起動させる。
【００３６】
検出部２１は、エンジン１００の回転状態を検出する。具体的には、検出部２１は、センサ群１０１に含まれるクランク角センサから入力されるクランク角信号に基づいてエンジン１００の回転状態を検出する。また、検出部２１は、クランク角信号に基づいてエンジン１００の回転速度（以下、単に回転速度と記載する）を算出することもできる。
【００３７】
ソフト演算部２２は、各タスクを実行する演算部である。上述のように、ソフト演算部２２は、クランク角に同期して、第１処理および第２処理を実行するとともに、所定の時間周期で、第３処理を実行する。
【００３８】
本実施形態においては、各タスクの優先順位は、第２処理＞第１処理＞第３処理である。このため、ソフト演算部２２は、第２処理の空き時間において、第１処理を行うとともに、さらに、第１処理の空き時間に第３処理を行うこととなる。
【００３９】
取り込み部２３は、ハード演算部から演算処理が完了した旨の連絡を割り込み等で受けると、ハード演算部４から第１処理の演算結果を取得し、かかる演算結果に基づいて記憶部３の演算情報３２を更新する。すなわち、取り込み部２３は、ハード演算部４から演算結果を取り込む取り込み処理を行い、演算情報３２を更新する。なお、取り込み部２３は、ハード演算部４が起動する際に、ハード演算部４が第１処理を行うのに必要な情報を記憶部３から取り込み、ハード演算部４へ渡すことも可能である。なお、ハード演算部４が記憶部３に演算結果を直接書き込むように構成している場合には、取り込み部２３は、ハード演算部から演算処理が完了した旨の連絡を割り込み等で受けると、記憶部３から演算結果を読み出し、演算結果を用いるソフト演算部２２の処理で使用できるようにする。
【００４０】
起動制御部２４は、ハード演算部４の起動および停止を司る処理部である。起動制御部２５は、上記の回転速度が回転閾値を超えた場合に、ハード演算部４を起動させるとともに、回転速度が回転閾値を下回った場合に、ハード演算部４を停止させる。
【００４１】
起動制御部２４は、回転速度が回転閾値を超えた場合に、ハード演算部４を起動させる。また、ハード演算部が起動している状態にあるときに第１処理の開始タイミングになった場合には、ハード演算部４に対して、第１処理の開始タイミングを通知する。これにより、ハード演算部４は、記憶部３から所定の入力情報３１を読み出して、かかる開始タイミングから第１処理を開始することとなる。
【００４２】
ここで、回転閾値とは、例えば、ソフト演算部２２の処理が間に合わなくなる回転速度である。例えば、回転閾値は、制御部２の性能（処理速度）に応じて予め決定される。すなわち、制御部２の性能が高いほど、単位時間当たりに実行可能な処理が多くなるため、回転閾値が高く設定されることとなる。
【００４３】
また、起動制御部２４は、ハード演算部４が第１処理を完了した場合に、完了通知をハード演算部４から取得する。これにより、取り込み部２３は、ハード演算部４から演算結果を取得し、演算情報３２を更新することとなる。なお、この、取り込み部２３による処理は、割込み処理である。
【００４４】
つまり、制御部２は、上記の完了通知を取得した場合に、少なくとも第３処理を一時的に中断して、ハード演算部４から演算結果を取得し、演算情報３２の更新処理を行う。なお、この更新処理は、極めて負荷が小さいため、第３の処理に加えて第２の処理を一時的に中断するように構成しても、制御部２による他のタスクを阻害することなく、実行することが可能である。
【００４５】
次に、図３を用いて、実施形態に係る制御装置１が実行する一連の処理について説明する。図３は、制御装置１が実行する処理を示すタイミングチャートである。なお、ここでは、回転速度が回転閾値を超えている期間における制御装置１の処理について説明する。
【００４６】
また、図３では、制御部２による第１〜第３処理および取り込み処理と、ハード演算部４による第１処理の処理タイミングを示す。
【００４７】
図３に示すように、制御部２は、第２処理を所定周期（３０ＣＡ周期）で実行し、第２処理の空き時間において、第３処理を実行する。このとき、ハード演算部４は、制御部２に代わって、第１処理を実行する。
【００４８】
そして、ハード演算部４は、第１処理を完了すると、制御部２に対して、完了通知を行う（時刻ｔ１）。これにより、制御部２は、ハード演算部４から演算結果を取り込む取り込み処理を割込み処理によって開始する。図３に示す例では、制御部２が時刻ｔ１から時刻ｔ２の期間において、取り込み処理を行う場合を示す。
【００４９】
これにより、記憶部３の演算情報３２を更新することができる。その後、制御部２は、次に第１処理の開始タイミング（ＴＤＣ）となる時刻ｔ３をハード演算部４へ通知する。制御部２は、開始タイミング（時刻ｔ３）を現在の回転速度から推定することができる。なお、第１処理の開始タイミングはＴＤＣに限るものではなく、その他の回転角度タイミングであってもよいし、所定時間毎といった時間に依存するタイミングであってもよい。
【００５０】
そして、ハード演算部４は、かかる開始タイミングから第１処理を再び実行することができる。なお、時刻ｔ２から時刻ｔ３の期間において、ハード演算部４を起動させた状態で待機させておくことにしてもよいし、あるいは、ハード演算部４を停止させておくことにしてもよい。ただし、回転速度が回転閾値を超えた場合には、１周期（ＴＤＣタイミングから次のＴＤＣタイミングまでの７２０ＣＡ）よりも長い期間、回転速度が回転閾値を超えた状態が続くことが多く、また、ハード演算部４の起動／停止を短時間に頻繁に繰り返す制御ハンチングが発生することを防ぐためにも、ハード演算部４を１度起動させたら、しばらく起動状態を維持する（例えば、所定周期経過するまで、所定時間経過するまで、起動させた際の回転閾値よりも低い回転閾値まで回転速度が低下するまで維持する）ことが望ましい。
【００５１】
次に、図４を用いて、実施形態に係る制御装置１が実行する処理手順について説明する。なお、以下で説明する処理手順は、制御部２によって、優先度が最も高い第２処理の周期よりも短い所定周期で繰り返し実行される。
【００５２】
図４に示すように、実施形態に係る制御装置１は、まず、第２処理を実行するタイミングである第２処理タイミング（３０ＣＡ周期）か否かを判定し（ステップＳ１０１）、第２処理タイミングである場合（ステップＳ１０１，Ｙｅｓ）、第２処理コールを行う（ステップＳ１０２）。
【００５３】
これにより、ソフト演算部２２によって、第２処理が行われる。一方、ステップＳ１０１の判定処理において、第２処理タイミングでなかった場合（ステップＳ１０１，Ｎｏ）、ステップＳ１０２の処理は省略される。
【００５４】
続いて、制御装置１は、第１処理を実行する第１処理タイミング（７２０ＣＡ周期）か否かを判定し（ステップＳ１０３）、第１処理タイミングである場合（ステップＳ１０３，Ｙｅｓ）、回転速度が回転閾値よりも大きいか否かを判定する（ステップＳ１０４）。
【００５５】
ここで、制御装置１は、回転速度が回転閾値を超える場合（ステップＳ１０４，Ｙｅｓ）、ハード演算部４を起動させ（ステップＳ１０５）、回転速度が回転閾値以下である場合（ステップＳ１０４，Ｎｏ）、ハード演算部４を停止させる（ステップＳ１０６）。
【００５６】
続いて、制御装置１は、ハード演算部４が停止中であるか否かを判定し（ステップＳ１０７）、ハード演算部４が停止中である場合（ステップＳ１０７，Ｙｅｓ）、ソフト演算部２２に対して第１処理コールを行う（ステップＳ１０８）。
【００５７】
一方、制御装置１は、ハード演算部４が起動中である場合（ステップＳ１０７，Ｎｏ）、ハード演算部４に対して、開始タイミングを通知する（ステップＳ１０９）。
【００５８】
続いて、制御装置１は、ハード演算部４が起動中か否かを判定し（ステップＳ１１０）、ハード演算部４が起動中である場合（ステップＳ１１０，Ｙｅｓ）、ハード演算部４による第１処理が完了したか否かを判定する（ステップＳ１１１）。
【００５９】
制御装置１は、ステップＳ１１１において、第１処理が完了していた場合（ステップＳ１１１，Ｙｅｓ）、演算情報３２の更新処理コールを行う（ステップＳ１１２）。また、制御装置１は、ステップＳ１１０において、ハード演算部４が停止中である場合や（ステップＳ１１０，Ｎｏ）、ステップＳ１１１において、第１処理が未完了である場合（ステップＳ１１１，Ｎｏ）、ステップＳ１１３の処理へ移行する。
【００６０】
続いて、制御装置１は、第３処理を実行する第３処理タイミングであるか否かを判定し（ステップＳ１１３）、第３処理タイミングである場合（ステップＳ１１３，Ｙｅｓ）。第３処理コールを行い（ステップＳ１１４）、処理を終了する。また、制御装置１は、ステップＳ１１３の処理において、第３処理タイミングでなかった場合（ステップＳ１１３，Ｎｏ）、ステップＳ１１４の処理を経由せず、処理を終了する。
【００６１】
上述したように、実施形態に係るエンジン１００（回転機構の一例）の制御を行う制御装置１であって、エンジン１００の回転状態に基づく第１期間内にニューラルネットワークによる演算を行う第１処理と、エンジン１００の回転状態に基づいて処理を開始し、第１処理よりも高い優先度で処理を行う第２処理とを、ソフトウェアで処理する制御部２と、第１処理の少なくとも一部をハードウェアで処理することが可能なハード演算部４とを備え、制御部２は、エンジン１００の回転速度が所定閾値以上である場合に、ハード演算部４を起動させる。したがって、実施形態に係る制御装置１によれば、消費電力を抑えつつ、要求される処理を完了させることができる。
【００６２】
ところで、上述した実施形態では、回転機構がエンジン１００である場合について説明したが、回転機構は、エンジン１００に限られず、モータをはじめとする他の回転機構であってもよい。
【００６３】
また、上述した実施形態では、高タスク処理に比べ、演算処理の優先度が低い場合について説明したが、これに限定されるものではない。高タスク処理に比べて、演算処理の優先度が高い場合であってもよい。
【００６４】
また、上述した実施形態では、演算処理をハード演算部４で実行することとしたが、これに限定されず、演算処理に加えて、他のタスクをハード演算部４で実行することにしてもよい。この場合、演算処理と、他のタスクとを実行するハード演算部４をそれぞれ個別に設けることにしてもよい。
【００６５】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な様態は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲および、その均等物によって定義される統括的な発明の概念の精神または範囲から逸脱することなく、様々な変化が可能である。
【符号の説明】
【００６６】
１    制御装置
２    制御部
４    ハード演算部
２１    検出部
２２    ソフト演算部
２３    取り込み部
２４    起動制御部
１００    エンジン（回転機構の一例）
【図１】
2020148122.tif 000003
【図２】
2020148122.tif 000004
【図３】
2020148122.tif 000005
【図４】
2020148122.tif 000006
【手続補正書】
【提出日】平成31年3月28日(2019.3.28)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2020148122.tif 000007