(57)【要約】【課題】フィードバック制御によって制御対象の操作量を決定する制御装置において、フィードバック制御に係る演算の並列化によって演算時間の短縮をはかる。【解決手段】本発明の制御装置は、並列に動作する複数の演算装置４５，４６を備える。信号の伝達の順序において最初の演算装置４５には制御量のセンサ値ｙが入力され、信号の伝達の順序において最後の演算装置４６からは操作量ｕに対する補正量が出力される。演算装置４５は、入力されたセンサ値ｙを処理して出力を得る制御器２３を有し、演算装置４６は、入力を所定ステップ遅らせる遅延要素２２と、遅延された入力を処理して出力を得る制御器１７とを有する。【選択図】図１
2014164340.tif 000002
【特許請求の範囲】
【請求項１】
制御対象の制御量を目標値に近づけるようにフィードバック制御によって前記制御対象の操作量を決定する制御装置において、
並列に動作する複数の演算装置を備え、
前記複数の演算装置は、演算装置間を順々に信号が伝達され、信号の伝達の順序において最初の演算装置には前記制御量のセンサ値が入力され、信号の伝達の順序において最後の演算装置からは前記操作量に対する補正量が出力されるように構成され、
前記最初の演算装置は、前記制御量のセンサ値を処理して出力を得る制御器を有し、
前記最初の演算装置以外の演算装置は、入力を所定ステップ遅らせる遅延要素と、前記遅延要素で遅延された入力を処理して出力を得る制御器とを有することを特徴とする制御装置。
【請求項２】
前記制御装置は複数のコアを有するマルチコアプロセッサに実装され、
前記複数の演算装置のそれぞれに異なるコアが用いられていることを特徴とする請求項１に記載の制御装置。
【請求項３】
前記複数の演算装置は、演算装置間で制御機器の演算量が均等になるように構成されていることを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
前記制御装置は、内部モデル制御によって前記制御対象の操作量を決定するように構成され、
前記複数の演算装置が有する制御器の何れか１つは、ＩＭＣフィルタを含むことを特徴とする請求項１乃至３の何れか１項に記載の制御装置。
【請求項５】
前記制御装置は、内部モデル制御によって前記制御対象の操作量を決定するように構成され、
前記複数の演算装置が有する制御器の何れか１つは、外乱補償器を含むことを特徴とする請求項１乃至４の何れか１項に記載の制御装置。
【請求項６】
前記制御対象は内燃機関であり、前記制御装置の制御周期は前記内燃機関の最大許容回転時の燃焼サイクルを基準にして設定されていることを特徴とする請求項１乃至５の何れか１項に記載の制御装置。
【請求項７】
前記制御対象は内燃機関であり、前記制御装置の制御周期は前記内燃機関の燃焼サイクルと同期して変更されることを特徴とする請求項１乃至５の何れか１項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、特に、物理現象を取り扱う制御装置に関し、詳しくは、制御対象の操作量をフィードバック制御によって決定する制御装置に関する。
【背景技術】
【０００２】
計算装置の演算能力はコアの動作周波数を高めることによって向上させることができる。ただし、計算装置が置かれる環境によっては動作周波数を高めることができない場合がある。また、電力効率の観点から、動作周波数の高周波数化による高性能化には限界がある。このため、近年では、例えば特開２０１０−１６０５３７号公報に開示されているように、１つの半導体チップ上に複数のコアを搭載したマルチコアタイプの並列計算装置が注目されている。マルチコアタイプの並列計算装置によれば、同じ量の演算を処理するのであれば、シングルコアタイプの計算装置に比較して動作周波数は低くてよい。さらに、処理すべきタスクを複数のコアに割り当てて並列計算することにより、単一のコアで計算を行う場合に比較して演算時間を短縮することができる。
【０００３】
このような並列計算装置を有効に活用することのできる一つの用途として、リアルタイム制御装置が挙げられる。複雑な制御対象の動作や状態を制御するため、リアルタイム制御装置には、多くの数値計算を必要とする制御アルゴリズムが用いられている。特に、リアルタイム制御装置の一種である車両制御装置の場合、市場や規制の要求に応えるため、制御アルゴリズムは年々大規模かつ複雑化している。このため、演算負荷が増大し、シングルコアタイプの中央演算処理装置（ＣＰＵ）ではやがて制御周期内に演算が完了しないといった状況が予想される。並列計算装置のリアルタイム制御装置への適用は、このような状況が現実となることを回避するための有効な手段として期待されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１６０５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、単に並列計算装置を制御装置に適用するだけでは十分な性能の向上を図ることができない。従来の制御アルゴリズムの並列化は、ソフトウェアの設計段階で行われていた。ところが、制御アルゴリズムの逐次性が強い場合、ソフトウェアの設計段階、つまり、ソースコードレベルでの並列化には限界があった。アムダールの法則によると、並列化可能な部分の実行時間の割合がaのプログラムをN個のコアを用いて実行する場合、全体の性能向上率Sは、S=1/((1-a)+a/N)で表される。これから分かるように、並列化可能な部分が少ないプログラムの場合には１ステップ内における性能向上は難しい。また、各ステップにおいてセンサ入力に対するアクチュエータ出力が行われるため、入力データをストリーム処理することも難しい。さらに、並列化にはオーバーヘッドが伴うため、構想やモジュール単位で演算量の少ない細粒度タスクに分割することによる並列化や、ループの分割による並列化にも限界がある。分割数を増やせば増やすほど、コア間での演算の同期や演算結果の通信などのコストが増加するため、並列計算により期待される性能が出せなくなるからである。
【０００６】
逐次性の強い制御アルゴリズムをソースコードレベルで並列化することが困難なことは、リアルタイム制御装置、特に、物理現象を取り扱う制御装置の制御ロジックから具体的に説明することができる。そのような制御装置の制御対象は多かれ少なかれむだ時間を有しているため、制御アルゴリズムとしては、むだ時間系を取り扱う制御理論を採用することができる。むだ時間系制御の代表的なものが、制御対象をモデル化した予測モデルを用いてフィードバック制御を行う内部モデル制御（ＩＭＣ）である。以下、従来の制御装置で用いられている内部モデル制御の制御ロジックと、それの並列化における問題点について説明する。
【０００７】
図６は、従来の制御装置に用いられている一般的な内部モデル制御の制御ロジックを示すブロック線図である。制御対象２はむだ時間Ｌを有しているので、その伝達関数はPe-Lsで表すことができる。内部モデル制御では、制御対象２をモデル化した予測モデル１０２とＩＭＣフィルタ１０１とを用いたフィードバック系が構築される。予測モデル１０２は制御対象２のむだ時間Ｌも含めてモデル化したものであるので、その伝達関数はMe-Lsで表すことができる。予測モデル１０２の伝達関数Me-Lsと制御対象２の真の伝達関数Pe-Lsとは完全一致することが理想的であるが、実際には両者の間にはモデル化誤差が存在する。ＩＭＣフィルタ１０１の伝達関数Cimcは、予測モデル１０２の伝達関数の最小位相要素の逆数として構成される。ＩＭＣフィルタ１０１は、制御量の目標値ｒに基づき制御対象２のアクチュエータに対する操作量ｕを算出する。制御対象２には操作量ｕとともに外乱ｄが入力され、その外乱ｄの影響を受けた制御量のセンサ値ｙが制御対象２から得られる。センサ値とはセンサによって計測された制御量の計測値を意味する。予測モデル１０２は制御対象２と並列に配置され、操作量ｕは並行して予測モデル１０２にも入力される。そして、センサ値ｙと予測モデル１０２の出力との差が伝達関数Cdisで表記される外乱補償器１０３を経由して目標値ｒにフィードバックされる。
【０００８】
図６に示す制御ロジックでは、予測モデル１０２、ＩＭＣフィルタ１０１、及び外乱補償器１０３の３つの制御器の演算に逐次性が存在する。演算の逐次性は、各制御器の処理を時間軸上に並べることによって明らかにすることができる。図７は、上記の制御ロジックを従来のシングルコアタイプの計算装置に実装した場合の各制御器による演算の時間的な関係を表した図である。図７における横軸は時間軸であり、時間軸上に１ステップの処理が並べられている。この図に示すように、操作量ｕの制御対象２への出力、予測モデル（Me-Ls）１０２による演算、センサ値ｙとの減算、外乱補償器（Cdis）１０３による演算、目標値ｒとの減算、ＩＭＣフィルタ（Cimc）１０１による演算が逐次的に実行され、次のステップに対応する操作量ｕ′が算出される。
【０００９】
上記の制御ロジックはマルチコアタイプの計算装置に実装することができる。マルチコアタイプの計算装置に上記の制御ロジックを実装する場合、１ステップの処理を複数のタスクに分割して各コアに割り当てる必要がある。ここでは、３つの制御器毎に離散化を行った後、それぞれをタスクとして分割して３つのコアに割り当てる。また、センサ値ｙの加減算と目標値ｒの加減算は、前後のタスクのどちらかに含められる。図８は、このような手法で複数のコアに処理の割り当てを行った場合の各処理の時間的な関係を示す図である。各コアは一部のタスクのみ処理すればよいので、シングルコアで全ての処理を実行する場合に比較すれば、１コア当たりの演算時間は短縮される。しかしながら、複数コアで処理する場合であっても演算の逐次性は保たれるため、ある制御器に対応するタスクが終了するまで、次の制御器に対応するタスクは開始することができない。つまり、複数のコアで同時にタスクを実行することはできず、計算装置全体では１ステップの処理を高速化することはできない。これから分かるように、上記の制御ロジックをマルチコアタイプの計算装置に実装したとしても、結局はソースコードレベルでの並列化しかできないため、並列化による演算時間の大幅な短縮を実現することは難しい。
【００１０】
次に考えられることは、ソースコードレベルではなく、制御ロジックのレベルで並列化することである。ここで、内部モデル制御における操作量の更新式に注目する。次の式（１）は図６に示す制御ロジックに対応する操作量の更新式である。更新式を構成する変数及び伝達関数は、図６に示す制御ロジックにおける変数と各制御器の伝達関数とに対応している。
【数１】
2014164340.tif 000003
【００１１】
上記の更新式から、図８に示すタスク間の入出力に伴う演算の逐次性は、更新式における括弧内部の加減算に起因していることが分かる。つまり、複数要素に対して行う加減算はコア間の暗黙の同期となるが、これが括弧で括られることによってタスク間に逐次的な順序が発生する。そこで、括弧に起因する逐次性を解消するため、括弧を展開して各変数ｒ，ｙ，ｕに関係する項に分割する。そのように式（１）を変形することにより、次の式（２）で表される更新式が得られる。
【数２】
2014164340.tif 000004
【００１２】
図９は、式（２）に対応する制御ロジックを示すブロック線図である。式（１）と式（２）との関係から分かるように、図９に示す制御ロジックは図６に示す制御ロジックを等価変換したものに相当する。この等価変換では、１つの外乱補償器（Cdis）と２つのＩＭＣフィルタ（Cimc）とが複製される。図９に示す制御ロジックによれば、操作量ｕが予測モデル（Me-Ls）１１２、外乱補償器（Cdis）１１３、及びＩＭＣフィルタ（Cimc）１１４を経由して再び操作量ｕにフィードバックされ、同時に、センサ値ｙが外乱補償器（Cdis）１１５、及びＩＭＣフィルタ（Cimc）１１６を経由して操作量ｕにフィードバックされる。
【００１３】
式（２）において括弧に括られていない各変数ｒ，ｙ，ｕの項の演算をそれぞれタスクとして分割し、各タスクを３つのコアに割り当てる。また、各タスクの出力から次のステップに対応する操作量ｕ′を算出する加減算は何れかのコアに割り当てる。図１０は、このような手法で複数のコアに処理の割り当てを行った場合の各処理の時間的な関係を示す図である。図１０における横軸は時間軸であり、時間軸上に１ステップの処理が並べられている。この図においてコア１に割り当てられたタスクはタスク１であり、コア２に割り当てられたタスクはタスク２，３からなり、コア３に割り当てられたタスクはタスク４，５，６からなる。各コアにおけるタスクの入力は変数ｒ，ｙ，ｕであるので、あるタスクを開始するのに他のタスクの終了を待つ必要がない。つまり、図９に示す制御ロジックをマルチコアタイプの計算装置に実装する場合には、各コアで同時並列に演算を開始することができる。
【００１４】
しかしながら、実際には、図１０に示すフローによる１ステップ当たりの演算時間は、図７或いは図８に示すフローによる１ステップ当たりの演算時間に比較して短くはならない。なぜなら、操作量ｕの項からなるタスクには、全ての制御器に係る演算が含まれるからである。つまり、予測モデル（Me-Ls）の演算（タスク４）、外乱補償器（Cdis）の演算（タスク５）、及びＩＭＣフィルタ（Cimc）の演算（タスク６）が含まれている。これでは従来のシングルコアによる処理と変わることがない。それどころか、各コアにおけるタスクの演算結果を１つのコアへと集約して加減算を実行するため、その分のコストが追加されることにより１ステップ当たりの演算時間はかえって増加するおそれがある。
【００１５】
また、センサ値ｙの項からなるタスクには、外乱補償器（Cdis）の演算（タスク２）とＩＭＣフィルタ（Cimc）の演算（タスク３）とが含まれている。このため、センサ値ｙの項からなるタスクの処理にかかる時間は、操作量ｕの項からなるタスクの処理にかかる時間の次に長い。仮に、操作量ｕの項からなるタスクの処理にかかる時間が短縮できたならば、次は、センサ値ｙの項からなるタスクの処理時間の短縮化が課題となる。複数のコアにタスクを分散させて並列演算を行うのであれば、各コアに割り当てるタスクは出来る限り小さくかつ均等にしたい。
【００１６】
本発明は、上述のような課題に鑑みてなされたもので、制御対象の制御量を目標値に近づけるようにフィードバック制御によって制御対象の操作量を決定する制御装置において、フィードバック制御に係る演算の並列化によって演算時間の短縮をはかることを目的とする。
【課題を解決するための手段】
【００１７】
本発明に係る制御装置は、制御量を目標値に近づけるようにフィードバック制御によって制御対象の操作量を決定するように構成される。本発明におけるフィードバック制御には、例えば、ＰＩ制御、ＰＩＤ制御、内部モデル制御、及びスミス法による制御が含まれる。
【００１８】
本発明に係る制御装置は、並列に動作する複数の演算装置を備える。好ましくは、本発明に係る制御装置は複数のコアを有するマルチコアプロセッサに実装され、複数の演算装置のそれぞれに異なるコアが用いられる。しかし、複数の演算装置のそれぞれが、シングルコア或いはマルチコアのプロセッサとして構成されていてもよい。
【００１９】
これらの演算装置は、演算装置間を順々に信号が伝達されるように構成されている。また、これらの演算装置は、信号の伝達の順序において最初の演算装置には制御量のセンサ値が入力され、信号の伝達の順序において最後の演算装置から操作量に対する補正量が出力されるように構成される。つまり、これらの演算装置は、制御量のセンサ値を次ステップの操作量にフィードバックするための閉ループを構成する。
【００２０】
信号の伝達の順序において最初の演算装置は、制御量のセンサ値を処理して出力を得る制御器を有している。それ以外の演算装置は、入力を所定ステップ遅らせる遅延要素と、遅延要素で遅延された入力を処理して出力を得る制御器とを有している。各遅延要素によって遅らされるステップ数は１ステップであることが好ましい。遅延要素の全個数と制御装置の制御周期とによって演算装置間の信号の伝達における総遅延時間が定まる。この総遅延時間は、制御器の並列演算のために本発明において新たに導入された遅延時間である。一方、制御装置と制御対象とからなる従来の制御系には、もとから制御対象のむだ時間を含む潜在的な遅延時間が存在する。本発明に係る制御装置が備える演算装置では、並列化のための総遅延時間は制御性能に問題が起きない範囲で選択される。具体的には、並列化のための総遅延時間は小さいほど好ましく、特に整定時間の半分以下とされていることが好ましい。
【００２１】
各演算装置は、演算装置間で制御機器の演算量が均等になるように構成されていることが好ましい。本発明におけるフィードバック制御が内部モデル制御或いはその等価変換にあたる制御である場合には、制御器にはＩＭＣフィルタ、外乱補償器などの要素を含めることができる。
【００２２】
また、本発明におけるフィードバック制御が内部モデル制御或いはその等価変換にあたる制御であるならば、以下のような第２の閉ループを備えることが好ましい。
【００２３】
第２の閉ループは、並列に動作する複数の演算装置を備え、演算装置間を順々に信号が伝達されるように構成されている。また、信号の伝達の順序において最初の演算装置には制御対象の操作量が入力され、信号の伝達の順序において最後の演算装置から操作量に対する補正量が出力されるように構成される。
【００２４】
第２の閉ループを構成する演算装置のそれぞれは、入力を所定ステップ遅らせる遅延要素と、遅延要素で遅延された入力を処理して出力を得る制御器とを有している。各遅延要素によって遅らされるステップ数は１ステップであることが好ましい。遅延要素の全個数と制御装置の制御周期とによって演算装置間の信号の伝達における総遅延時間が定まる。第２の閉ループが備える演算装置は、遅延要素による総遅延時間と制御器が有する総むだ時間との合計時間が、制御対象が有するむだ時間と第１の閉ループの遅延要素による総遅延時間との合計時間に等しくなるよう構成されている。
【００２５】
第２の閉ループを構成する各演算装置は、演算装置間で制御機器の演算量が均等になるように構成されていることが好ましい。制御器には、むだ時間を無視した制御対象の予測モデル、むだ時間要素、ＩＭＣフィルタ、外乱補償器などの要素を含めることができる。むだ時間要素が有するむだ時間は、制御対象が有するむだ時間と第１の閉ループの遅延要素による総遅延時間との合計時間から、第２の閉ループの遅延要素による総遅延時間を差し引いた時間とされる。これらの要素を適宜組み合わせて制御器を構成する。好ましくは、むだ時間が除かれた予測モデルを含む制御機器、むだ時間要素を含む制御機器、ＩＭＣフィルタを含む制御機器、外乱補償器を含む制御機器を別々に設ける。
【発明の効果】
【００２６】
上述のように、本発明に係る制御装置では、フィードバック制御に係る演算が複数の演算装置に分割して割り当てられている。さらに、信号の伝達の順序において２番目以降の演算装置には所定ステップ分の遅延要素が導入され、これらの演算装置の制御器には所定ステップ前の他の演算装置の出力が入力される。このため、各演算装置は、他の演算装置の演算の終了を待つことなく同時に演算を開始することができる。つまり、本発明に係る制御装置によれば、フィードバック制御に係る演算の並列化によって制御装置全体としての演算時間が短縮される。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施の形態に係る制御装置における内部モデル制御の制御ロジックを示すブロック線図である。
【図２】制御系全体の潜在的な遅延時間の内訳のイメージを示す図である。
【図３】図１に示す制御ロジックをマルチコアタイプの計算装置に実装した場合の各制御器による演算の時間的な関係を表した図である。
【図４】本発明の創案過程において検討された制御装置における内部モデル制御の制御ロジックを示すブロック線図である。
【図５】図４に示す制御ロジックをマルチコアタイプの計算装置に実装した場合の各制御器による演算の時間的な関係を表した図である。
【図６】従来の制御装置に用いられている一般的な内部モデル制御の制御ロジックを示すブロック線図である。
【図７】図６に示す制御ロジックをシングルコアタイプの計算装置に実装した場合の各制御器による演算の時間的な関係を表した図である。
【図８】図６に示す制御ロジックをマルチコアタイプの計算装置に実装した場合の各制御器による演算の時間的な関係を表した図である。
【図９】図６に示す制御ロジックを等価変換して得られた内部モデル制御の制御ロジックを示すブロック線図である。
【図１０】図９に示す制御ロジックをマルチコアタイプの計算装置に実装した場合の各制御器による演算の時間的な関係を表した図である。
【発明を実施するための形態】
【００２８】
まず、本発明の実施の形態の説明に先立ち、本発明の創案過程において検討された制御装置（以下、参考装置）について説明する。
【００２９】
参考装置における内部モデル制御の制御ロジックの検討では、前述の式（２）における操作量ｕの項について着目された。操作量ｕの項には予測モデルの伝達関数Me-Lsが含まれ、予測モデルの伝達関数Me-Lsにはむだ時間Ｌが含まれている。ここで、むだ時間Ｌが制御周期Ｔの３周期分より長いとすると、式（２）においてe-Lsからe-Tsを３つ取り出して各要素に分配することにより、次の式（３）で表される操作量ｕの更新式が得られる。ただし、ここは内部モデル制御に係る伝達関数は全て線形伝達関数であるとする。
【数３】
2014164340.tif 000005
【００３０】
図４は、参考装置における内部モデル制御の制御ロジックを示すブロック線図である。図４に示す制御ロジックは上記の式（３）に対応している。そして、式（２）と式（３）との関係から分かるように、図４に示す制御ロジックは図９に示す制御ロジックを等価変換したものに相当する。
【００３１】
参考装置では、制御量の目標値ｒがＩＭＣフィルタ（Cimc）１１に入力される。ＩＭＣフィルタ１１から出力された操作量ｕは、外乱ｄとともに、制御対象である制御対象（Pe-Ls）２に入力される。参考装置には２つの閉ループが構築されている。第１の閉ループは、制御対象２から出力された制御量のセンサ値ｙから補正量を算出し、その補正量を次ステップの操作量ｕにフィードバックする閉ループである。第２の閉ループは、制御対象２に入る前の操作量ｕから補正量を算出し、その補正量を次ステップの操作量ｕにフィードバックする閉ループである。
【００３２】
第２の閉ループには、信号の伝達の順に、第１の演算装置３１、第２の演算装置３２、第３の演算装置３３、及び第４の演算装置３４が並べられている。操作量ｕは第１の演算装置３１に入力され、第４の演算装置３４から次ステップの操作量ｕに対する補正量が出力される。第１の演算装置３１は、遅延要素（Ｄ）１８と制御器（Ｍ）１２とからなる。第２の演算装置３２は、遅延要素（Ｄ）１９と制御器（e-(L-4T)s）１３とからなる。第３の演算装置３３は、遅延要素（Ｄ）２０と制御器（Cdis）１４とからなる。第４の演算装置３４は、遅延要素（Ｄ）２１と制御器（Cimc）１５とからなる。
【００３３】
遅延要素（Ｄ）１８，１９，２０，２１は、入力された信号を１ステップ遅らせて出力する要素である。式（３）におけるe-Tsが実装時の離散化によって遅延要素（Ｄ）へと置き換えられている。このような構成により、制御器１２には１ステップ前の操作量ｕが入力され、制御器１３には１ステップ前の制御器１２の出力が入力され、制御器１４には１ステップ前の制御器１３の出力が入力され、制御器１５には１ステップ前の制御器１４の出力が入力される。制御器１２は予測モデル（Me-Ls）からむだ時間要素（e-LS）を分離したものに相当する。つまり、むだ時間要素（e-LS）を無視した予測モデルである。制御器１３はむだ時間要素（e-LS）から４制御周期分の遅延要素（e-TS）を分離したものに相当する。ただし、制御器１３には、むだ時間要素（e-(L-4T)s）をPade近似によって有理関数に変換されたものが用いられる。制御器１４は外乱補償器に対応し、制御器１５はＩＭＣフィルタに対応する。
【００３４】
第１の閉ループには、第５の演算装置３５が設けられている。第５の演算装置３５は、制御器（Cdis）１６と制御器（Cimc）１７とからなる。制御器１６は外乱補償器に対応し、制御器１７はＩＭＣフィルタに対応する。センサ値ｙは制御器１６に入力され、制御器１７から次ステップの操作量ｕに対する補正量が出力される。第５の演算装置３５では、制御器１６と制御器１７との間で逐次的に演算が行われる。
【００３５】
参考装置は、マルチコアタイプの計算装置に実装される。実装では、ＩＭＣフィルタ１１、第１の演算装置３１、第２の演算装置３２、第３の演算装置３３、第４の演算装置３４、及び第５の演算装置３５のそれぞれが別々のコアにて具現化される。つまり、目標値ｒを操作量ｕに変換するＩＭＣフィルタの演算と、操作量ｕをフィードバックする第２の閉ループの伝達関数の演算と、センサ値ｙをフィードバックする第１の閉ループの伝達関数の演算とがそれぞれタスクとして分割されるとともに、第２の閉ループの伝達関数に係る演算については４つの制御器に係る演算の全てがそれぞれタスクとしてさらに分割され、各タスクが計６つのコアに割り当てられる。
【００３６】
図５は、図４に示す制御ロジックをマルチコアタイプの計算装置に実装した場合の各制御器による演算の時間的な関係を表した図である。図５における横軸は時間軸であり、時間軸上に１ステップの処理が並べられている。この図においてコア１に割り当てられたタスクはＩＭＣフィルタ１１の演算に係るタスク１であり、その入力は目標値ｒである。コア２に割り当てられたタスクは制御器１６の演算に係るタスク２と制御器１７の演算に係るタスク３であり、その入力はセンサ値ｙである。コア２においてタスク２とタスク３は逐次的に処理される。
【００３７】
コア３，４，５，６には、第２の閉ループの４つの制御器の演算に係るタスクが分配して割り当てられる。コア３に割り当てられたタスクは制御器１２の演算に係るタスク４である。タスク４には遅延要素１８で１ステップ遅延された操作量ｕ、すなわち、操作量ｕの前回値が入力される。コア４に割り当てられたタスクは制御器１３の演算に係るタスク５である。タスク５には遅延要素１９で１ステップ遅延されたタスク４の出力が入力される。コア５に割り当てられたタスクは制御器１４の演算に係るタスク６である。タスク６には遅延要素２０で１ステップ遅延されたタスク５の出力が入力される。そして、コア６には制御器１５の演算に係るタスク７が割り当てられる。タスク７には遅延要素２１で１ステップ遅延されたタスク６の出力が入力される。また、タスク１，３，７の出力から次のステップに対応する操作量ｕ′を算出する加減算は、何れか１つのコア、好ましくは、最も演算量の少ないコアに割り当てられる。図５の例では、コア５にて操作量ｕ′の算出のための加減算が行われるようになっている。
【００３８】
ステップの開始と同時に、タスク１には入力ポートから目標値ｒが読み込まれ、タスク２には入力ポートからセンサ値ｙが読み込まれる。また、ステップの開始と同時に、タスク４，５，６，７には遅延要素から各出力の前回値が読み込まれる。ただし、最初のステップでは、時刻０における初期値として設定された値が遅延要素からタスク４，５，６，７に読み込まれる。何れにしても、コア３，４，５，６における演算では、コア１，２における演算と同様、タスクを開始するのに他のコアにおけるタスクの終了を待つ必要がない。よって、コア３，４，５，６は、コア１，２とともに、他のコアの演算の終了を待つことなく同時並列に演算を開始することができる。
【００３９】
以上述べた参考装置では、内部モデル制御に係る演算、詳しくは、操作量ｕをフィードバックする第２の閉ループの演算がコア３，４，５，６に分配され、これらコア３，４，５，６にて同時並列に演算が行われる。よって、参考装置によれば、従来に比較して１ステップの処理に要する演算時間の短縮が可能であり、装置全体として演算速度を向上させることができる。
【００４０】
しかしながら、参考装置にはさらなる改善の余地がある。図５においてコア２はタスク２とタスク３を逐次的に処理しているが、タスク２はコア５が処理するタスク６と基本的に同じ演算量であり、タスク３はコア６が処理するタスク７と基本的に同じ演算量である。よって、コア間の演算量を比較すると、コア２のみ他のコアよりも突出して演算量が多くなっている。このため、参考装置では、コア２の演算時間によって装置全体の演算速度が律速されている。このことは、コア２の演算時間を短縮することができるならば、装置全体の演算速度のさらなる向上が可能になることを意味する。
【００４１】
本発明の実施の形態に係る制御装置は参考装置の改良型であり、装置全体の演算速度をさらに向上させるための改良が施されている。
【００４２】
まず、本実施の形態に係る制御装置に施された改良の要点から説明する。
【００４３】
前述の式（３）におけるセンサ値ｙの項には、伝達関数Cdisと伝達関数Cimcとで表される２つの要素が含まれている。これらの要素は要素間に逐次性を持つため、並列化を可能にするためには遅延時間を導入する必要がある。ところが、センサ値ｙの項にはむだ時間要素は含まれていないため、操作量ｕの項のようにむだ時間要素から遅延時間を取り出すことはできない。
【００４４】
そこで、本実施の形態では、従来の制御系にもとから存在する潜在的な遅延時間に着目する。図２は、制御系全体の潜在的な遅延時間の内訳のイメージを示す図である。この図に示すように、一般の制御系には、制御対象が有するむだ時間（Plant）以外にも種々の遅れが存在している。例えば、ハードウェアに起因する遅れとしてはセンサの遅れ（sensor）やＡ／Ｄ変換の遅れ（A/D）が挙げられ、ソフトウェアに起因する遅れとしてはプラットフォームの遅れ(P/F)やタスク起動の遅れ（Ａ）、或いはむだ時間のモデル化誤差が挙げられる。
【００４５】
一般に、入力ポートから読み込まれるセンサ値に起因する逐次的な項をｎ個の要素に分割するためには、制御周期Ｔのｎ−１倍の遅延時間が必要である。要素間に１制御周期分の遅延要素を配置し、２番目以降の要素の入力には、その直前の要素の１ステップ前の出力を使用する。これにより、各要素は他の要素の演算の終了を待つことなく演算を開始することができるので、分割したｎ個の要素を同時並列に演算することが可能となる。新たに導入する並列化のための遅延時間が制御系全体の潜在的な遅延時間よりも十分に小さいのであれば、遅延時間の導入が制御性能に与える影響も低く抑えられる。式（３）に示す更新式の場合には、センサ値ｙの項は２つの要素に分割できるため、導入する遅延時間は１制御周期分でよい。１制御周期分の遅延時間であれば潜在的な遅延時間に対して十分に小さいため、制御性能に与える影響は誤差の範囲に収められる。
【００４６】
この場合、実際の制御装置で処理する入力値はセンサ値ｙを１制御周期分だけ遅延させた値になる。遅延時間の導入による制御性能への影響を抑えるためには、センサ値ｙの項と並列の関係にある操作量ｕの項にも同様の遅延時間を導入することが望ましい。これについては、導入した遅延時間の分だけ予測モデルのむだ時間を修正し、予測モデルの伝達関数をMe-LsからMe-(L+T)sに修正することにより対応することができる。また、これらの修正に合わせて、外乱補償器の伝達関数Cdisも再設計する必要がある。再設計された外乱補償器の伝達関数をCdis2と表記する。
【００４７】
以上の変更を式（３）に加えることにより、次の式（４）で表される新たな更新式が得られる。
【数４】
2014164340.tif 000006
【００４８】
図１は、本実施の形態に係る制御装置における内部モデル制御の制御ロジックを示すブロック線図である。図１に示す制御ロジックは上記の式（４）に対応している。そして、式（３）と式（４）との関係から分かるように、図１に示す制御ロジックは図４に示す参考装置の制御ロジックを修正したものに相当する。なお、図１に示す制御ロジックにおいて、図４に示す制御ロジックの要素と共通の符号が付されている要素は、構成において参考装置のものと共通する要素である。
【００４９】
本実施の形態に係る制御装置には、参考装置と同じく、２つの閉ループが構築されている。第１の閉ループは、制御対象２から出力された制御量のセンサ値ｙから補正量を算出し、その補正量を次ステップの操作量ｕにフィードバックする閉ループである。第２の閉ループは、制御対象２に入る前の操作量ｕから補正量を算出し、その補正量を次ステップの操作量ｕにフィードバックする閉ループである。
【００５０】
第２の閉ループには、信号の伝達の順に、第１の演算装置４１、第２の演算装置４２、第３の演算装置４３、及び第４の演算装置４４が並べられている。このうち、第１の演算装置４１及び第４の演算装置４４は、図４に示す参考装置の第１の演算装置３１及び第４の演算装置３４と共通であり参考装置から変更はない。しかし、第２の演算装置４２及び第３の演算装置４３には、参考装置の第２の演算装置３２及び第３の演算装置３３からの変更が含まれる。第２の演算装置４２の制御器２４には、参考装置の制御器１３が有するむだ時間要素e-(L-4T)sに１制御周期分の遅延要素e-Tsが追加されたむだ時間要素e-((L-4T)+T)sが用いられている。また、第３の演算装置４３の制御器２５には、修正された外乱補償器の伝達関数Cdis2が用いられている。
【００５１】
第１の閉ループには、信号の伝達の順に、第５の演算装置４５と第６の演算装置４６とが並べられている。センサ値は第５の演算装置４５に入力され、第６の演算装置４６から次ステップの操作量ｕに対する補正量が出力される。第５の演算装置４５は、制御器（Cdis2）２３のみからなる。制御器２３は修正された外乱補償器に対応している。一方、第６の演算装置４６は、遅延要素（Ｄ）２２と制御器（Cimc）１７とからなる。遅延要素２２は、入力された信号を１ステップ遅らせて出力する要素である。式（４）におけるｙの項のe-Tsが実装時の離散化によって遅延要素へと置き換えられている。このような構成により、制御器１７には１ステップ前の制御器２３の出力が入力される。
【００５２】
本実施の形態に係る制御装置は、マルチコアタイプの計算装置に実装される。実装では、ＩＭＣフィルタ１１、第１の演算装置４１、第２の演算装置４２、第３の演算装置４３、第４の演算装置４４、第５の演算装置４５、及び第６の演算装置４６のそれぞれが別々のコアにて具現化される。つまり、目標値ｒを操作量ｕに変換するＩＭＣフィルタの演算と、第２の閉ループの４つの制御器に係る演算と、第１の閉ループの２つの制御器に係る演算とがそれぞれタスクとして分割され、各タスクが計７つのコアに割り当てられる。
【００５３】
図３は、図１に示す制御ロジックをマルチコアタイプの計算装置に実装した場合の各制御器による演算の時間的な関係を表した図である。図３における横軸は時間軸であり、時間軸上に１ステップの処理が並べられている。この図においてコア１に割り当てられたタスクはＩＭＣフィルタ１１の演算に係るタスク１であり、その入力は入力ポートから読み込まれる目標値ｒである。
【００５４】
コア２，３には、第１の閉ループの２つの制御器の演算に係るタスクが分配して割り当てられる。コア２に割り当てられたタスクは制御器２３の演算に係るタスク２であり、その入力は入力ポートから読み込まれるセンサ値ｙである。コア３に割り当てられたタスクは制御器１７の演算に係るタスク５である。タスク３には遅延要素２２で１ステップ遅延されたタスク２の出力が入力される。
【００５５】
コア４，５，６，７には、第２の閉ループの４つの制御器の演算に係るタスクが分配して割り当てられる。コア４に割り当てられた制御器１２の演算に係るタスク４には、遅延要素１８で１ステップ遅延された操作量ｕが入力される。コア５に割り当てられた制御器２４の演算に係るタスク５には、遅延要素１９で１ステップ遅延されたタスク４の出力が入力される。コア６に割り当てられた制御器２５の演算に係るタスク６には、遅延要素２０で１ステップ遅延されたタスク５の出力が入力される。そして、コア７に割り当てられた制御器１５の演算に係るタスク７には、遅延要素２１で１ステップ遅延されたタスク６の出力が入力される。また、タスク１，３，７の出力から次のステップに対応する操作量ｕ′を算出する加減算は、何れか１つのコア、好ましくは、最も演算量の少ないコアに割り当てられる。図３の例では、コア３にて操作量ｕ′の算出のための加減算が行われるようになっている。
【００５６】
ステップの開始と同時に、タスク１には入力ポートから目標値ｒが読み込まれ、タスク２には入力ポートからセンサ値ｙが読み込まれる。また、ステップの開始と同時に、タスク３，４，５，６，７には遅延要素から各出力の前回値が読み込まれる。ただし、最初のステップでは、時刻０における初期値として設定された値が遅延要素からタスク３，４，５，６，７に読み込まれる。何れにしても、全てのコアは、タスクを開始するのに他のコアにおけるタスクの終了を待つ必要がなく、各ステップにおいて同時並列に演算を開始することができる。
【００５７】
以上述べたように、本実施の形態に係る制御装置では、センサ値ｙをフィードバックする第１の閉ループの演算がコア２，３に分配されるとともに、操作量ｕをフィードバックする第２の閉ループの演算がコア４，５，６，７に分配され、これらコアを含む全てのコアにおいて同時並列に演算が行われる。全てのコアには演算量が概ね均等になるようにタスクの配分が行われているので、何れかのコアの演算時間が突出して長くなるようなことはない。よって、本実施の形態に係る制御装置によれば、参考装置と比較しても１ステップの処理に要する演算時間の短縮が可能であり、装置全体として演算速度をさらに向上させることができる。
【００５８】
なお、本実施の形態に係る制御装置は、自動車用の内燃機関を制御対象とすることができる。内燃機関は火花点火式エンジンでもよいし、ディーゼルエンジンでもよい。例えば、制御対象が火花点火式エンジンであるならば、制御量をトルクとして操作量をスロットルとすることができる。また、制御対象が火花点火式エンジンであるならば、制御量をトルクとして操作量を燃料噴射量とすることができる。制御対象が過給エンジンの場合には、制御量を過給圧として操作量をウエストゲートバルブ開度や可変ノズル開度とすることができる。また、制御対象がＥＧＲ装置付きエンジンの場合には、制御量をＥＧＲ率として操作量をＥＧＲ開度とすることができる。
【００５９】
制御対象が内燃機関の場合、制御装置の制御周期Ｔは内燃機関の燃焼サイクルと同期して変更されるようにすることもできる。もちろん、制御装置の制御周期Ｔは固定値でもよい。例えば、内燃機関の最大許容回転時の燃焼サイクルを基準にして制御周期Ｔを設定してもよい。
【００６０】
さらに、本実施の形態に係る制御装置の制御対象は内燃機関には限定されない。例えば、内燃機関と電気モータとが組み合わされたハイブリッドシステムや燃料電池システムにも適用することができる。本実施の形態に係る制御装置は、リアルタイムでのオンライン制御が要求される制御対象、特に、移動体の動力装置の制御に好適であり、移動体に搭載される制御装置として特に有用である。もちろん、本実施の形態に係る制御装置は、移動体の動力装置に限らず、定置型設備も含めて広い範囲の制御対象に適用することができる。
【００６１】
ところで、本発明は上述の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。例えば、内部モデル制御に係る伝達関数は全て線形伝達関数であるならば、第５の演算装置４５の制御器２３と第６の演算装置４６の制御器１７とは入れ替え可能である。また、第１から第４の演算装置４１，４２，４３，４４が有する各制御器１２，２４，２５，１５も互いに入れ替え可能である。
【００６２】
また、第１の閉ループの遅延要素２２が入力を遅延させるステップ数は、上述の実施の形態のとおり１ステップが好ましいが、遅延ステップ数を複数ステップにすることもできる。同様に、第２の閉ループの各遅延要素１８，１９，２０，２１が入力を遅延させるステップ数は、上述の実施の形態のとおり１ステップが好ましいが、制御器２４が有するむだ時間を調整することにより遅延ステップ数を複数ステップにすることもできる。この場合、遅延要素１７，１８，１９による総遅延時間と制御器１２が有するむだ時間との合計時間が、制御対象２が有するむだ時間と第１の閉ループの遅延要素２２による遅延時間との合計時間と等しくなっていればよい。
【００６３】
上述の実施の形態では本発明を内部モデル制御によって制御対象の操作量を決定する制御装置に適用しているが、本発明を適用可能な制御アルゴリズムは内部モデル制御には限定されない。内部モデル制御と等価変換可能なスミス法による制御の他、ＰＩ制御やＰＩＤ制御など様々なフィードバック制御に適用することができる。
【符号の説明】
【００６４】
２  制御対象
１１  ＩＭＣフィルタ
１２，１５，１７，２３，２４，２５  制御器
１８，１９，２０，２１，２２  遅延要素
４１，４２，４３，４４，４５，４６  演算装置
【図１】
2014164340.tif 000007
【図２】
2014164340.tif 000008
【図３】
2014164340.tif 000009
【図４】
2014164340.tif 000010
【図５】
2014164340.tif 000011
【図６】
2014164340.tif 000012
【図７】
2014164340.tif 000013
【図８】
2014164340.tif 000014
【図９】
2014164340.tif 000015
【図１０】
2014164340.tif 000016