(57)【特許請求の範囲】
【請求項１】
ピストン・エンジン（２）の制御に用いられる制御システム（２０）であって、第１のプロセッサ（２１ａ）と、第２のプロセッサ（２１ｂ）と、前記第１のプロセッサの上で動作し前記ピストン・エンジン（２）の第１のエンジン・シリンダ（３ａ）の動作を制御する第１の制御アルゴリズム（５４）と、前記第２のプロセッサの上で動作して前記ピストン・エンジン（２）の第２のエンジン・シリンダ（３ｂ）の動作を制御する第２の制御アルゴリズム（５５）とを含む制御システム（２０）において、
前記第１のプロセッサと前記第２のプロセッサとの上でシーケンシャルに動作する複数のシーケンシャルなステップを含む第３の制御アルゴリズム（５７）を更に含んでおり、
前記第３の制御アルゴリズム（５７）の前記複数のシーケンシャルなステップは、第１の数のステップと第２の数のステップとを含み、前記第１の数のステップは前記第１のプロセッサ（２１ａ）の上で動作し、前記第２の数のステップは、前記第１のプロセッサにおいて前記第１の数のステップが終了すると、前記第２のプロセッサ（２１ｂ）の上で動作し、
前記第３の制御アルゴリズム（５７）は前記第１の制御アルゴリズム（５４）と前記第２の制御アルゴリズム（５５）とに基準値を提供することを特徴とする制御システム。
【請求項２】
請求項１記載の制御システム（２０）において、前記第３の制御アルゴリズム（５７）は反復する制御ループを含み、前記制御ループのあるステップの実行は前記第１のプロセッサ（２１ａ）の上でなされ、前記制御ループの次のステップは前記第２のプロセッサ（２１ｂ）の上でなされることを特徴とする制御システム。
【請求項３】
請求項１又は請求項２のいずれかの請求項に記載の制御システム（２０）において、前記第１のプロセッサ（２１ａ）と前記第２のプロセッサ（２１ｂ）との間に配置され前記第３の制御アルゴリズム（５７）によって用いられるデータを転送する通信システム（５）を更に含むことを特徴とする制御システム。
【請求項４】
請求項１から請求項３までのいずれかの請求項に記載の制御システム（２０）において、前記第３の制御アルゴリズム（５７）が前記第１のプロセッサから前記第２のプロセッサに切り換わるときには、データ・ベクトルが前記第１のプロセッサ（２１ａ）と前記第２のプロセッサ（２１ｂ）との間で前記通信システム（５）によって転送されることを特徴とする制御システム。
【請求項５】
請求項４記載の制御システム（２０）において、前記データ・ベクトルは前記データ・ベクトルが更新されるときに設定されるタイムスタンプすなわちシーケンス数を含むことを特徴とする制御システム。
【請求項６】
請求項１から請求項５までのいずれかの請求項に記載の制御システム（２０）において、前記第３の制御アルゴリズム（５７）は積分器を含み、前記積分器の積分値は前記第１のプロセッサ（２１ａ）から前記第２のプロセッサ（２１ｂ）に転送されることを特徴とする制御システム。
【請求項７】
請求項６記載の制御システム（２０）において、前記積分値は前記データ・ベクトルを介して転送されることを特徴とする制御システム。
【請求項８】
請求項１から請求項７までのいずれかの請求項に記載の制御システム（２０）において、前記第３の制御アルゴリズム（５７）並びに／又は前記第１及び第２の制御アルゴリズム（５４、５５）のコントローラ・ゲインはゲイン指定されていることを特徴とする制御システム。
【請求項９】
請求項８記載の制御システム（２０）において、前記ゲイン指定は、前記データ・ベクトルにおけるタイムスタンプと現在時刻との間の時間間隔に依存することを特徴とする制御システム。
【請求項１０】
請求項１記載の制御システム（２０）において、前記第３の制御アルゴリズム（５７）は、前記ピストン・エンジン（２）の回転速度及び／又はパワー出力を制御することを特徴とする制御システム。
【請求項１１】
請求項１又は請求項１０に記載の制御システム（２０）において、前記第３の制御アルゴリズム（５７）は反復する制御ループを含み、前記制御ループのあるステップの実行は前記第１のプロセッサ（２１ａ）の上でなされ、前記制御ループの次のステップは前記第２のプロセッサ（２１ｂ）の上でなされ、前記制御ループは前記ピストン・エンジン（２）の回転と同期していることを特徴とする制御システム。
【請求項１２】
請求項８記載の制御システム（２０）において、前記ゲイン指定は前記エンジン（２）の回転速度に依存していることを特徴とする制御システム。
【請求項１３】
請求項１１又は請求項１２記載の制御システム（２０）において、前記第３の制御アルゴリズム（５７）の実行は、前記ピストン・エンジン（２）のタイミングに基づいて前記第１のプロセッサ（２１ａ）と前記第２のプロセッサ（２１ｂ）との間で切り換えられることを特徴とする制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１のプロセッサと第２のプロセッサと前記第１のプロセッサの上で動作する第１の制御アルゴリズムと前記第２のプロセッサの上で動作する第２の制御アルゴリズムとを含む制御システムに関する。
【０００２】
このタイプの制御は、典型的には、「分散制御システム」として分類される。分散制御は、制御機能を複数の異なるプロセッサの間で分散することが可能なシステムにおいて用いられる。分散制御は、「集中制御」と対照させて、「非集中制御」と称されることもある。
【背景技術】
【０００３】
ほとんどの一般的に入手可能な分散制御システムでは、アーキテクチャは、プロセス全体を制御する中央コントローラとプロセス全体の複数のサブ・タスクを制御する複数のサブ・コントローラとに基づく。例えば、ロボット・マニピュレータでは、中央コントローラがロボット・マニピュレータの動作全体を調整し、ジョイント・コントローラが個々のジョイント（関節）の動作を制御する。中央コントローラは、それぞれのジョイントの所望の動作を計算し、この基準値を、基準軌跡に可能な限り正確に従うことを目指す別のジョイント・コントローラに送る。
【０００４】
分散制御システムの既知である別の応用例としては、船舶における大型のディーゼル・エンジンの動作を制御するのに用いられるシステムがある。この例では、中央コントローラは、例えば、エンジンの回転速度やエンジンの動力出力など、エンジン・プロセス全体を制御する。別の「シリンダ制御ユニット」が、例えば、燃料注入や排気弁の開併など、それぞれの個別のシリンダの動作を制御する。中央コントローラは、全体的な所望の結果を達成するためにそれぞれの個別のシリンダがどのように機能すべきかを計算する。従って、中央コントローラは、基準コマンドを、それぞれのシリンダ制御ユニットに送る。すると、個別のシリンダ制御ユニットは、基準コマンドを達成するためにシリンダの詳細な動作を制御する。
【０００５】
典型的なシステムの短所の１つとして、少なくとも１つのプロセッサが中央制御機能のために用いられる必要があることに加え、それぞれのサブ・タスクのために１つのプロセッサが用いられることが必要だという点がある。従って、１２のシリンダを有している大型のディーゼル・エンジンを制御する必要があれば、通常は、１２＋１のプロセッサが必要となる。場合によっては、複数のシリンダを１つのプロセッサで制御することが可能であり、それによってプロセッサの数を減らすことができる。
【０００６】
典型的なシステムの別の短所として、中央プロセッサが万が一故障した場合にはシステム自体が非常に脆弱であるという点を挙げることができる。モータ制御など、危険を伴う応用例の場合には、何らかの量の冗長性を有するようにシステムを設計することが必要である。ほとんどの場合に、中央制御アルゴリズムは、２つの別個のプロセッサに実装される。モニタ・ルーチンは、これら２つのプロセッサをモニタし、一方のプロセッサが故障した際には、２つのプロセッサの間で切り換わることができる。しかし、冗長構成の２つのプロセッサを用い、どの時点で切り換えるべきかを知ることは、非常に複雑である可能性がある。更に、冗長構成のプロセッサが必要となることにより、必要なプロセッサの数が増え、更に、システムにおける通信経路の複雑さも増大する。
【発明の開示】
【０００７】
従って、本発明の第１の特徴は、必要とされるプロセッサの数を減らす制御システムを提供することである。
【０００８】
本発明の別の特徴は、１又は複数のプロセッサの故障に対して耐久性を有する制御システムを提供することである。
【０００９】
本発明の別の特徴は、冗長性が簡潔な態様で処理される制御システムを提供することである。
【００１０】
上述の特徴は、この明細書の最初の段落で述べた制御システムであって、更に、第１及び第２のプロセッサの上でシーケンシャルに動作する複数のシーケンシャルなステップを含む第３の制御アルゴリズムを更に含む制御システムによって部分的に提供される。このようにして、第３の制御アルゴリズムを２つのプロセッサの間で分割することによって、２つのプロセッサが第３の制御アルゴリズムの負荷を共有することを可能にする。
【００１１】
なお、この明細書の文脈では、「第１及び第２のプロセッサの上でシーケンシャルに動作する複数のシーケンシャルなステップ」という記載は、シーケンシャルに動作される複数のステップとして、すなわち、順に動作される複数のステップとして理解されるべきである。第１の数のステップは第１のプロセッサの上で動作し、第２の数のステップは、第１の数のステップが第１のプロセッサの上で終了したら、第２のプロセッサの上で動作する。
【００１２】
第３の制御アルゴリズムは反復的なループとして動作する制御アルゴリズムを含むことがある。ＰＩコントローラは、このタイプの制御アルゴリズムのよい例である。第３の制御アルゴリズムの実行を分割して、ループの第１の例の実行は第１のプロセッサの上でなされ、ループの第２の例の実行は第２のプロセッサの上でなされるようにすることができる。ループの第３の例の実行は、再び第１のプロセッサにおいてなされることが可能である。このプロセスは、連続的に反復可能である。
【００１３】
この制御システムのある実施例では、第１の制御アルゴリズムは、第１のアクチュエータを制御し、第２のアルゴリズム（５５）は第２のアクチュエータ（３ｂ）を制御することができる。
【００１４】
この制御システムのある実施例では、第３の制御アルゴリズムは、第１及び第２の制御アルゴリズムに基準値を提供することができる。このようにして、第３の制御アルゴリズムは、第１及び第２の制御アルゴリズムの動作を調整するある種の調整のためのアルゴリズムとして見ることができる。
【００１５】
複数のプロセッサが相互に通信することを可能にするために、この制御システムは、更に、第１のプロセッサと第２のプロセッサとの間に配置された通信システムを含むことがある。この通信システムは、例えば、第３の制御アルゴリズムによって用いられるデータを転送することができる。
【００１６】
この制御システムは、また、第３の制御アルゴリズムが第１のプロセッサから前記第２のプロセッサに切り換えるときに通信システムによって第１のプロセッサから第２のプロセッサとの間で転送されるデータ・ベクトルを更に含むことがある。このようにして、第３の制御アルゴリズムによって用いられる制御データは、第３の制御アルゴリズムがある１つのプロセッサから次のプロセッサに移動するときに、ある１つのプロセッサから次のプロセッサに移動させることができる。
【００１７】
上述のデータ・ベクトルは、当該データ・ベクトルが更新されるときに設定されるタイムスタンプすなわちシーケンス番号を含むことがある。このようにして、この制御アルゴリズムは、いつデータ・ベクトルが最後に更新されたかを判断し、及び／又は、どのプロセッサが最後にデータ・ベクトルを更新したかを判断する。
【００１８】
ある実施例では、第３の制御アルゴリズムは積分器を含み、前記積分器によって得られた積分値は第１のプロセッサから第２のプロセッサに転送される。このようにして、ＰＩコントローラは、複数のプロセッサによって共有されているときであっても、第３の制御アルゴリズムにおいて実現可能である。ある実施例では、上述の積分値は、データ・ベクトルを介して転送することができる。
【００１９】
ある場合には、第３の制御アルゴリズムのコントローラ・ゲインは、ゲイン指定が可能である。これは、例えば、サンプリング時間が固定されておらず外部パラメータに依存する場合でも用いることができる。この場合には、ゲイン指定は、データ・ベクトルにおけるタイムスタンプと現在時刻との間の時間間隔に依存しうる。
【００２０】
この制御システムのある応用例では、この制御システムは、ピストン・エンジンの制御に用いることができる。第１の制御アルゴリズムは第１のエンジン・シリンダの動作を制御し、第２の制御アルゴリズムは第２のエンジン・シリンダの動作を制御しうる。第３の制御アルゴリズムは、更に、エンジンの回転速度及び／又はパワー出力を制御することができる。
【００２１】
上述の実施例では、この制御システムは、エンジンの回転と同期させることができる。この場合には、ゲイン指定は、エンジンの回転速度に依存しうる。
【００２２】
上述の実施例では、第３の制御アルゴリズムの実行は、ピストン・エンジンのタイミングに基づいて、第１のプロセッサと第２のプロセッサとの間で切り換えられうる。換言すると、第３の制御アルゴリズムは、エンジンの回転に応答して、１つのプロセッサから次のプロセッサに移動することができる。このようにして、第３の制御アルゴリズムのサンプリング時間は、エンジンの回転速度に依存する。
【００２３】
この出願では、「含む／含まれる」という用語は、記載されている特徴、数字、ステップ又はコンポーネントの存在を特定するために用いられているのであるが、１又は複数の他の特徴、数字、ステップ、コンポーネント又はこれらの組合せの存在又は追加を排除するものではない。
【００２４】
例えば、現在の請求項１では、制御システムは３つの制御アルゴリズムと２つのプロセッサとを含むとされている。しかし、この技術分野の当業者であれば理解するように、この現在の請求項１は、３よりも多くの任意の数の制御アルゴリズムと２よりも多くの任意の数のプロセッサとを含む場合もカバーすることを理解するはずである。
【００２５】
この明細書の目的として述べておくが、この出願では、「制御システム」という用語は、相互に接続された複数の物理コンポーネントを含み、所定の態様で協調的に動作するシステムとして理解すべきである。これらの物理コンポーネントは、すべてがハードウェア・ベースである場合もあるし、ソフトウェアとしてプログラムされている場合もある。後者の場合には、物理コンポーネントにおいてプログラムされているソフトウェアは、当該物理コンポーネントの技術的コンポーネントと想定される。
【発明を実施するための最良の形態】
【００２６】
図１に示されている従来技術による制御システム１は、分散制御システムの典型である。この例では、このシステムは、船舶（図示せず）における大型ジーゼル・エンジン２に適用される。このシステムでは、エンジン２は、複数のシリンダ３ａ、３ｂ、３ｃを含んでいて、シリンダはそれぞれシリンダ制御ユニット（ＣＣＵ）４ａ、４ｂ、４ｃによって制御される。シリンダ制御ユニット４は、接続されているシリンダの燃料注入、排気、潤滑剤の供給などを制御する。それぞれのＣＣＵは、この例では通信バス５である通信システムに接続されている。これら複数のＣＣＵは、従って、従来技術において広く知られているように、相互に通信してセンサ情報などを交換する。
【００２７】
個々のＣＣＵは、エンジン制御ユニット（ＥＣＵ）６と称される中央コントローラによって調整される。ＥＣＵは、個々のＣＣＵのために基準値を計算し、これらの値をバス５を介して個々のＣＣＵに送る。例えば、ＥＣＵの典型的な機能の１つとして、エンジン速度の制御がある。ＥＣＵは、速度要求信号を船舶７のブリッジにいる操舵手から受け取る。ＥＣＵは、次に、速度要求信号とエンジンの現実の速度とを比較する。エンジンの現実の速度は、エンジンに装着されているクランクシャフト回転センサ８によって測定される。クランクシャフト回転センサは、測定された速度を、バスを介してＥＣＵに送る。現実の速度と所望の速度との差に基づいて、ＥＣＵは、個々のシリンダがどれだけのパワーを提供すべきかを決定する。ＥＣＵは、次に、基準信号をそれぞれのＣＣＵに送る。すると、個々のＣＣＵは、これらのシリンダがどのように制御されるべきかを判断する。
【００２８】
ある例では、ＥＣＵにおける速度制御アルゴリズムは、ＰＩコントローラに基づくことができる。所望の速度と現実の速度との間の誤差が大きければ大きいほど、ＥＣＵは、ＣＣＵにより多くの燃料を注入するように命じる。現実の燃料注入と燃料注入の形成とは、個々のＣＣＵによって制御される。ＥＣＵは、放出（emission）制御や振動制御など、エンジンの他の機能も制御することができる。
【００２９】
ＥＣＵ６が故障した場合にエンジンが停止することを防止するために、冗長的なバックアップＥＣＵ９が、システムに提供されている。このバックアップＥＣＵは、メインのＥＣＵ６をモニタし、故障が検出された場合にはメインのＥＣＵ６を停止する。
【００３０】
しかし、この冗長性は、この技術分野の当業者によく知られている多くの方法で処理することができる。例えば、別の冗長コントローラ（図示せず）を、メインのＥＣＵ６と冗長ＥＣＵ９とは別個に用いることができる。他の場合には、両方のＥＣＵは、バスの上を自らの制御値を送信し、個々のＣＣＵは、正しい信号を用いることを選択することができる。
【００３１】
しかし、上述のシステムでは、ＣＣＵに加えて、２つのＥＣＵが必要になる。更に、冗長性により、システムにおいて序文の複雑性がもたらされることになる。
【００３２】
図２は、本発明による制御システム２０のある実施例の概略図である。制御システム２０は、従来技術に関する上述の例と同じ船舶における大型ジーゼル・エンジン２に適用される。従って、同一の構成要素には、同一の参照番号を用いる。
【００３３】
従来技術によるシステムのように、エンジン２は、複数のシリンダ３ａ、３ｂ、３ｃを含んでいて、シリンダはそれぞれシリンダ制御ユニット（ＣＣＵ）２１ａ、２１ｂ、２１ｃによって制御される。上述の例のように、それぞれのＣＣＵが、１つのシリンダの動作を制御する。しかし、この技術分野の当業者であれば理解するように、より少ない数のプロセッサを用いることを望み、ＣＣＵプロセッサにおいて利用可能な処理能力に余分がある場合には、それぞれのＣＣＵは複数のシリンダを制御することができる。
【００３４】
しかし、本発明による制御システム２０は、従来技術の場合とは異なり、それ自体のプロセッサを有する別個のエンジン制御ユニットを含まない。従来技術ではＥＣＵにおいて動作していた制御アルゴリズムは、今度は、ＣＣＵプロセッサにおいてシーケンシャルに動作する複数のシーケンシャルなステップに分割されている。ＥＣＵ制御アルゴリズムはＣＣＵにおいて利用可能なアイドル時間に動作させることができるために、このようなことが可能なのである。
【００３５】
この特定の例におけるＥＣＵアルゴリズムは、エンジンの回転と同期しており、ＥＣＵアルゴリズムは、複数のシリンダが点火するのと同じ順序で１つのＣＣＵから次のＣＣＵに送られる。
【００３６】
エンジンが始動すると、第１のシリンダＣＣＵは、所望の回転速度と現実の回転速度との間の誤差を計算するＥＣＵアルゴリズムを始動し、どれだけの燃料を第１のシリンダに注入すべきかに関する値を計算する。この制御値は、ＰＩコントローラの出力に基づいている。この値は、第１のシリンダのＣＣＵシリンダ・アルゴリズムに送られる。第１のシリンダＣＣＵアルゴリズムは、すると、要求された亮の燃料を注入し、ＥＣＵアルゴリズムを第２のシリンダの制御ＣＰＵに送る。
【００３７】
速度制御関数が第２のシリンダＣＣＵに送られると、第１のシリンダＣＣＵは、更に、状態ベクトルすなわちデータ・ベクトルを第２のシリンダＣＣＵに送る。この特定の実施例では、状態ベクトルは、ＥＣＵ制御アルゴリズムの一体的な部分（integral part）の値を含む。このようにして、ＰＩコントローラは分散的な態様で実装され、それぞれのシリンダＣＣＵは、ＥＣＵ制御アルゴリズムにシーケンシャルに参加する。ＥＣＵ制御アルゴリズムとＣＣＵ制御アルゴリズムとは、エンジンのクランクシャフト回転と同期している。
【００３８】
状態ベクトルは、また、複数のＣＣＵの間で追加的なデータを送るのにも用いることができる。例えば、ある１つのＣＣＵに接続されたセンサは、当該ＣＣＵが状態ベクトルの制御を有するときに読み出すことができ、当該ＣＣＵは、この状態ベクトルを次のＣＣＵに送る前に更新することができる。
【００３９】
このような本発明による分散型の制御方法の利点の１つとして、１つのＣＰＵが故障したとしても、このチェーンの中にある次のＣＰＵが故障したＣＰＵの前のＣＰＵからの状態ベクトルを用いることがある。これにより、すべてのＣＣＵは、バスからの状態ベクトルを、それが送られる度に読み出すことが必要になる。
【００４０】
例えば、シリンダｘのＣＣＵがＥＣＵ制御アルゴリズムの制御を有する場合を考察しよう。シリンダｘのＣＣＵは、所望の速度と現実の速度との間の誤差を計算し、状態ベクトルから積分器の現在値を読み出し、積分器の新たな値を用いて状態ベクトルを更新し、新たな制御値を計算する。この制御値は、シリンダｘのＣＣＵ制御アルゴリズムに送られ、状態ベクトルはバス５に送られる。他のすべてのＣＣＵは、シリンダｘのＣＣＵによって送られる状態ベクトルを読み出し、それをそれ自体の内部メモリに記憶する。次に、制御は、このプロセスを反復するシリンダｘ＋１のＣＣＵに転送される。
【００４１】
しかし、シリンダｘ＋１のＣＣＵが故障した場合を考察しよう。この場合には、いかなる制御動作も生じることはなく、シリンダｘ＋１は機能しない。更に、状態ベクトルは更新されない。しかし、クランクシャフトが所定の位置に到達すると、ＥＣＵ制御アルゴリズムは、シリンダｘ＋２のＣＣＵに転送される。すると、シリンダｘ＋２のＣＣＵは、シリンダｘのＣＣＵによってバス上に送出された状態ベクトルに基づいて、制御を継続する。
【００４２】
このようにして、ＣＰＵが故障した場合でも、余分のプログラミングを行う必要はない。故障したＣＰＵに接続されたシリンダは、単に機能しなくなるだけであって、しかし、他のシリンダは何の問題もなく機能し続ける。この結果として非常にシンプルなシステムが得られ、その機能の決定も容易である。
【００４３】
上述の例で注意すべきは、故障したＣＣＵがサイクルの中に存在する場合には、２つの連続的なＥＣＵ制御アルゴリズムのステップの間でのサンプル時間が増加するということである。この結果として、安定性の問題が生じる。従って、ＣＣＵには、それよりも前のＣＣＵが故障したかどうかを識別することができるルーチンが備えられている。この場合には、ＣＣＵは、それ自体の制御アルゴリズムをより大きなサンプル時間を考慮するように調整することができる。
【００４４】
これは、例えば、状態ベクトルが、最後に当該状態ベクトルを更新したＣＣＵを表す識別スタンプ又はシーケンス番号を含む場合に実現可能である。例えば、上述の例では、シリンダｘ＋２のＣＣＵが状態ベクトルを受け取るとき、識別スタンプ又はシーケンス番号はシリンダｘを特定する。シリンダｘ＋２のＣＣＵは、従って、シリンダｘ＋１が故障したことを知ることになる。
【００４５】
これは、また、状態ベクトルにタイムスタンプを追加することによって実現される。このように、ＥＣＵアルゴリズムのゲインは、状態ベクトルにおけるタイムスタンプと現在の時間との間の時差に応じて指定される。例えば、上述の例では、シリンダｘのＣＣＵは、バスの上に状態ベクトル送出する直前に、その状態ベクトルにタイムスタンプを追加することができる。シリンダｘ＋２のＣＣＵは、このタイムスタンプを読み出して、最後の制御動作と現在の時間との間のサンプル時間を判断する。次に、シリンダｘ＋２のＣＣＵは、時間間隔が予想したものよりも大きい場合には、そのゲインを調節する。このアプローチは、この特定の例において有用であるが、その理由は、ＥＣＵ制御アルゴリズムがクランクシャフトと同期しているからである。従って、ＥＣＵ制御アルゴリズムの複数のステップの間の時間間隔は可変であり、クランクシャフト速度に依存する。よって、上述のアプローチは、クランクシャフト回転速度に対してゲイン指定がなされる場合にも有用である。
【００４６】
注意すべきであるが、選択されたゲインの指定は、線形及び非線形の両方である非常に多くの形状を取りうる。例えば、非常に低速では、ゲイン・マージンは、それ以外の場合にはエンジン動作に関する問題を生じうるような低すぎるゲインを有することにならないように、縮小することができる。従って、ゲイン指定を用いる場合には、このゲイン指定は、制御対象であるシステムと一致するように調整されるべきである。
【００４７】
上述の状態ベクトルすなわちデータ・ベクトルは、制御データ以外のデータを転送するのにも用いることができる。例えば、センサ・データを、状態ベクトルを介して、ある１つのＣＣＵから次のＣＣＵに転送することができる。例えば、ＣＣＵのタスクの中の１つとして、現在のシリンダ温度を、当該ＣＣＵが接続されたシリンダに配置されているシリンダ温度センサから要求することがある。すると、ＣＣＵは、状態ベクトルを次のＣＣＵに送る前に、当該状態ベクトルにおける対応する値を更新することができる。このようにして、状態ベクトルは、常に関係するデータを常に有することになる。ここで説明しているような移動型の状態ベクトルを用いる効果は、データの移動がうまく定義されるということにある。従って、システムのプログラマが、任意の時点においてデータがどこにあるかを知ることが容易になる。従来型の分散型の制御システムでは、データは多くの経路を介して移動するので、本発明の場合よりもデータ・フローの決定性が低い（less deterministic）。
【００４８】
更に、現在説明している例における上述の移動型の状態ベクトルが効果的であるのは、この状態ベクトルはＥＣＵ制御アルゴリズムが必要とするすべてのデータを含んでいることである。ＥＣＵ制御アルゴリズムと状態ベクトルとが１つのＣＣＵから次のＣＣＵに一緒に転送されるために、ＥＣＵは、常に、動作において用いる現在のデータを有することになる。
【００４９】
しかし、移動型の状態ベクトルを、時間に関するデータに関して、従来型の分散型制御通信と組み合わせることも可能である。例えば、複数のシリンダの中の１つに問題がある場合には、この１つのシリンダは、その問題に関する信号をシステムの他の部分にバスを介して送ることができる。すると、ＥＣＵ制御アルゴリズムは、現時点では他のシリンダのＣＣＵにおいて処理を行っている場合でも、その問題に対処することができる。
【００５０】
図３には、典型的な従来型の分散型制御システムのタイミング・ダイアグラム３０を示している。このシステムは、４つのプロセッサＰ１、Ｐ２、Ｐ３、Ｐ４を有する。このシステムは、更に、４つの制御アルゴリズム３１、３２、３３、３４を含む。最初の３つの制御アルゴリズム３１、３２、３３は、プロセスのサブエレメント（下位要素）を制御し、最後の制御アルゴリズムはこれらのサブエレメントを調整する。
【００５１】
第１のサンプル３５の終わりにおいて、調整を行う制御アルゴリズム３４は、新たな基準値をサブ制御アルゴリズム３１、３２、３３に送る。しかし、この調整を行う制御アルゴリズム３４が存在するプロセッサＰ４が故障を生じると、プロセスの全体が停止する。
【００５２】
図４は、本発明による制御システムのタイミング・ダイアグラムを示している。このシステムは、３つのプロセッサＰ１、Ｐ２、Ｐ３と、従来技術の場合と同じ４つの制御アルゴリズム３１、３２、３３、３４を含む。しかし、調整を行う制御アルゴリズム３４は、３つのシーケンシャルなステップ３４ａ、３４ｂ、３４ｃに分割されている。これらのシーケンシャルなステップは、プロセッサのアイドル時間には、３つのプロセッサＰ１、Ｐ２、Ｐ３の間にシーケンシャルに分散されている。このようにして、全体のプロセッサが救われるようになっている。
【００５３】
注意すべきは、図４におけるタイミング・ダイアグラムは概略的であるということである。この技術分野における当業者であれば理解するように、個々のプロセッサにおけるタスク指定に用いられる複数のタスクの間の時間間隔は短い。
【００５４】
図５及び６には、本発明による制御システムが３つのシリンダを有する大型のジーゼル・エンジンに適用される場合の、３つのプロセッサＰ１、Ｐ２、Ｐ３に関するタイミング・ダイアグラムが示されている。Ｐ１はシリンダ１のシリンダ制御ユニット（ＣＣＵ）の一部であり、Ｐ２はシリンダ２のＣＣＵの一部であり、Ｐ３はシリンダ３のＣＣＵの一部である。このように３つのシリンダを有するエンジンは、図解のために簡略化されているのであって、当業者にとっては、任意の数のシリンダを有するエンジンにこの方法を適用することができるのは、明らかである。
【００５５】
図５は、モータが８０ＲＰＭで動作しているときのタイミング・ダイアグラム５０を示している。図６は、モータが２００ＲＰＭで動作しているときのタイミング・ダイアグラム６０を示している。なお、これらの図面は、複雑な点を省略して概念を示すための概略的なものである。
【００５６】
モータは、８０ＲＰＭで動作するとき（図５）には、７５０ｍｓごとに１回の完全な回転をする。星印５１、５２、５３は、それぞれのシリンダがその頂部の停止中心（top dead center、ＴＤＣ）位置にある時点を示す。図面に見られるように、シリンダの１つは、２５０ｍｓごとにＴＤＣ位置にある。この例では、ＣＣＵ制御アルゴリズム５４、５５、５６は、完了するのに２５ｍｓを必要とし、シリンダがＴＤＣに到達する２５ｍｓ前に完了しなければならない。ＥＣＵ制御アルゴリズム５７は、完了するのに２５ｍｓを必要とし、シリンダがＴＤＣに到達する７０ｍｓ前に完了しなければならない。ＥＣＵ制御アルゴリズムは、計算を終了すると、計算された制御値をそれぞれのＣＣＵ制御アルゴリズムに与え、次のプロセッサに送られる。
【００５７】
図６では、モータは、２００ＲＰＭの回転速度で動作する。モータは、従って、３００ｍｓごとに完全な１回転をする。異なる複数のシリンダのＴＤＣ点は、従って、２５０ｍｓではなくて１００ｍｓの間隔をもって離間している。これにより、処理に利用可能な時間量が短くなる。しかし、制御アルゴリズムは、同じ量の時間を必要とし、ＴＤＣから同じ時間だけ前に終了しなければならない。
【００５８】
理解できるように、モータが８０ＲＰＭで動作している場合にはプロセッサにおけるアイドル時間が多くあり、モータが２００ＲＰＭで動作している場合には、プロセッサにおけるアイドル時間がそれよりも短い。
【００５９】
注意すべきは、ＥＣＵ制御アルゴリズムは、前のＣＣＵ制御アルゴリズムが計算を終了する前に計算を開始することができるということである。このようにして、ＥＣＵ制御アルゴリズムは、前のシリンダのＴＤＣ位置よりも前に計算を開始することができる。例えば、２００ＲＰＭで動作している６つのシリンダ・エンジンは、５０ｍｓごとにＴＤＣに位置するシリンダを１つ有することになる。従って、例えば、プロセスにおけるある時点では、シリンダ１のＣＣＵ制御アルゴリズムがＰ１において動作している間に、ＥＣＵ制御アルゴリズムはＰ２において動作し、シリンダ２のＣＣＵ制御アルゴリズムのための制御値を計算することを意味する。
【００６０】
注意すべきは、ＥＣＵ制御アルゴリズムが１つのプロセッサから次のプロセッサに移動する順序は、もしそのようなことが希望されていない場合には、シリンダの点火順序に従う必要はない、ということである。更に、ＥＣＵ制御アルゴリズムは、あるＣＣＵのある１つのプロセッサにおいて動作して計算された信号を別のＣＣＵのプロセッサに送ることができる。例えば、ＥＣＵ制御アルゴリズムがシリンダ１のＣＣＵのプロセッサにおいて動作して、計算された基準値をシリンダ３のＣＣＵに送ることができるというということである。また、ＥＣＵ制御アルゴリズムは、シリンダ２のＣＣＵのプロセッサにおいて動作して、シリンダ１のＣＣＵに、計算された基準値を送ることができる。
【００６１】
以上の説明及び図面は、例示的な実施例を説明するために簡略化され概略的な態様で示されている。内部的な電子的及び機械的な詳細は示されていないが、これは、この技術分野の当業者であればそのような詳細を知っており、個々での説明を不必要に複雑にする必要は内からである。
【００６２】
当業者であれば、この出願には複数の異なる発明が含まれており、必要であれば、分割出願の材料として用いることができるはずである。例えば、ネットワークにおける移動型の状態ベクトルに関する発明は、分散制御に関する発明とは独立に用いることもできる。
【００６３】
以上の説明は本発明がエンジン制御に適用された場合に焦点を合わせたものである。しかし、当業者であれば、本発明は、分散型の制御を応用できる他の多くの応用例においても用いることができることを理解するはずである。従って、本発明の保護範囲は、エンジン制御に関する応用例には限定されない。
【図面の簡単な説明】
【００６４】
【図１】大型のジーゼル・エンジンを制御するのに典型的に用いられる従来技術による制御システムの概略図である。
【図２】大型のジーゼル・エンジンに適用された本発明による制御システムの第１の実施例のＩ略図である。
【図３】４つのプロセッサと４つの制御アルゴリズムとを含む従来技術による制御システムに関するタイミング・ダイアグラムの実施例を示している。
【図４】３つのプロセッサと図３に示されているのと同じ４つの制御アルゴリズムとを含む本発明によるシステムに関するタイミング・ダイアグラムの実施例を示している。
【図５】大型ジーゼル・エンジンに適用された本発明による制御システムの第１の低い回転速度におけるタイミング・ダイアグラムの実施例を示している。
【図６】図５の実施例の第２の高い回転速度におけるタイミング・ダイアグラムを示している。
【図１】
0004629702.tif 000002
【図２】
0004629702.tif 000003
【図３】
0004629702.tif 000004
【図４】
0004629702.tif 000005
【図５】
0004629702.tif 000006
【図６】
0004629702.tif 000007