(57)【要約】【課題】自分自身を診断し、正常に制御可能であればできるだけ制御を長く安全に継続することが可能な制御系を有する電動パワーステアリング装置を提供すること。【解決手段】操舵補助用の電動モータと、操舵トルクおよび車両速度を用いて演算した操舵補助指令に基づき前記操舵補助用の電動モータを駆動制御するためのモータ駆動指令を生成する操舵制御を実行する制御手段とを備える電動パワーステアリング装置において、制御手段は、複数のＣＰＵコアＡ，Ｂを内蔵するマルチコアプロセッサを有し、該マルチコアプロセッサは、内蔵する各ＣＰＵコアＡ，Ｂ間で同じ演算を行い、該演算結果を比較することにより、自らの正常性を判断する自己診断を行い、該自己診断で正常と判断されているときに、操舵制御を実行する。【選択図】        図３
2009029172.tif 000002
【特許請求の範囲】
【請求項１】
操舵補助用の電動モータと、操舵トルクおよび車両速度を用いて演算した操舵補助指令に基づき前記操舵補助用の電動モータを駆動制御するためのモータ駆動指令を生成する操舵制御を実行する制御手段とを備える電動パワーステアリング装置において、
前記制御手段は、複数のＣＰＵコアを内蔵するマルチコアプロセッサを有し、
該マルチコアプロセッサは、内蔵する各ＣＰＵコア間で同じ演算を行い、該演算結果を比較することにより、自らの正常性を判断する自己診断を行い、該自己診断で正常と判断されているときに、前記操舵制御を実行することを特徴とする電動パワーステアリング装置。
【請求項２】
前記マルチコアプロセッサは、前記複数のＣＰＵコアのなかの一部のＣＰＵコアが、操舵トルクおよび車両速度に基づいて操舵補助指令を演算し、該演算した操舵補助指令にステアリング系のステアリング特性を補償してトルク指令を生成する処理を含む第１の処理を行い、残りのＣＰＵコアが前記トルク指令に基づき前記操舵補助用の電動モータを電流制御するための処理を含む第２の処理を行うことを特徴とする請求項１に記載の電動パワーステアリング装置。
【請求項３】
前記制御手段は、主制御系及び副制御系で構成され、これら主制御系及び副制御系のうち少なくとも主制御系がマルチコアプロセッサ構成であることを特徴とする請求項１に記載の電動パワーステアリング装置。
【請求項４】
操舵補助用の電動モータと、操舵トルクおよび車両速度を用いて演算した操舵補助指令に基づき前記操舵補助用の電動モータを駆動制御するためのモータ駆動指令を生成する操舵制御を実行する制御手段とを備える電動パワーステアリング装置において、
前記制御手段は、複数の第１ＣＰＵコアを有し、該複数の第１ＣＰＵコアによって前記操舵制御を実行して主側モータ駆動指令を出力するマルチコアプロセッサ構成の主制御系と、複数の第２ＣＰＵコアを有し、該複数の第２ＣＰＵコアによって前記操舵制御を実行して副側モータ駆動指令を出力するマルチコアプロセッサ構成の副制御系とを有し、
前記主制御系から出力される主側モータ駆動指令および副制御系から出力される副側モータ駆動指令を択一選択して前記操舵補助用の電動モータに出力する切替スイッチを備え、
前記主制御系および副制御系は、
内蔵するＣＰＵコア間で同じ演算を行い、該演算結果を比較することにより、自らの正常性を自ら判断する自己診断を行う自己診断手段と、
前記自己診断の結果を相手制御系に通知する通知手段と、
前記自己診断手段による自制御系の自己診断結果と前記相手制御系から通知された相手制御系の自己診断結果に基づいて前記切替スイッチの切替え制御を行う切替制御手段と、
を夫々備えることを特徴とする電動パワーステアリング装置。
【請求項５】
前記切替制御手段は、
自制御系の自己診断結果が正常で、相手制御系の自己診断結果が正常の場合は、自制御系による前記操舵制御を継続させ、
自制御系の自己診断結果が異常の場合は、自制御系を動作停止し、
自制御系の自己診断結果が正常で、相手制御系の自己診断結果が異常の場合は、自制御系が選択されるよう前記切替スイッチを切替え制御することを特徴とする請求項４に記載の電動パワーステアリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操舵トルクおよび車両速度を用いて演算した操舵補助指令に基づき操舵補助用の電動モータを駆動制御する電動パワーステアリング装置に関し、さらに詳しくは制御系の診断に関するものである。
【背景技術】
【０００２】
乗用車やトラック等の車両の操舵力を軽減するため、操舵補助モータによって操舵を補助する、いわゆる電動パワーステアリング（ＥＰＳ：Electric  Power  Steering）装置がある。ＥＰＳ装置では、操舵補助モータの駆動力を、減速機を介してギヤまたはベルト等の伝送機構により、ステアリングシャフトまたはラック軸に補助力を付与するようになっている。
【０００３】
ＥＰＳ装置は、車両操舵という重要な役割を担うため、自動車を構成する部品のなかでも安全性、信頼性への配慮が特に必要であり、このため従来より制御装置を二重化するなどの対策がなされている。
【０００４】
特許文献１では、自動車用電動パワーステアリングシステムにおいて、制御用のマイコンを二重化しかつ両マイコンの出力を切換えて出力する切換ロジックを設けるとともに、各マイコンは、相手の出力するウォッチドッグパルスを互いに監視し、相手の異常を検出したマイコンは自マイコンからの制御出力を制御停止時の状態に徐々に近づけかつこれが所定の範囲に達したとき制御停止の信号を出力し、切換ロジックは、各マイコンから出力されるウォッチドッグパルスを監視して一方のマイコンに異常があったときには正常な方のマイコンからの制御出力を選択し、両マイコンともに異常と判断したときあるいは少なくとも１つのマイコンから上記制御停止の信号が出力されたときに操舵アシストモータを駆動停止するようにしている。
【０００５】
特許文献２においては、パワーステアリング装置の電子制御ユニットに、同じプログラムに基づいて同じステアリング制御動作を行うＣＰＵを２つ搭載し、ウォッチドッグパルスを各ＣＰＵに相互入力することにより相手側ＣＰＵを相互監視し、一方のＣＰＵに異常が生じた場合は、異常でない他方のＣＰＵによって制御を継続し、正常なＣＰＵは異常ＣＰＵをリセットするとともに正常復帰のための所要の設定値をリセット後のＣＰＵに与えて、一方のＣＰＵに異常が生じた場合でも２つのＣＰＵを正常状態に復帰させるようにしている。
【０００６】
【特許文献１】特開平０４−４１９６０号公報
【特許文献２】特開平１１−５３２０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、国際規約ＩＳＯ２６２６２にもある通り、組み込みシステムの安全性向上が求められ、片方のＣＰＵが故障したなどの異常な状態に陥った場合でも正常に制御可能であれば、できるだけ制御を長く安全に継続することが求められている。
【０００８】
上記特許文献１，２の従来技術では、ＣＰＵが二重化されてはいるが、ＣＰＵ自体はシングルコアであるので、ＣＰＵは自分自身を自己診断することは不可能であり、このため二重化されているＣＰＵ間での相互監視による手法でしか各ＣＰＵの診断を行うことができない。すなわち、従来技術では、ＣＰＵが自分自身の正常性を判断するためには、相互監視を行う相手ＣＰＵが必要であり、相手ＣＰＵが異常で停止された後は、自分自身の正常性を判断することができない。また、相互監視による異常診断では、一方の故障の際、真に故障したのは二重化されたＣＰＵのどちらであるかを正確に判定することは基本的に不可能である。
【０００９】
このように、相互監視による手法では、相手ＣＰＵが異常で停止された後の単独ＣＰＵによる状態では、もはや制御に信頼性をおくことはできないので、特許文献１においては、一方のＣＰＵに異常が発生した場合、他方の正常なＣＰＵを徐々に制御停止時の状態に徐々に近づけ、結果的には、両ＣＰＵを動作停止させている。特許文献２も同様であり、制御を継続させるためには、２つのＣＰＵが動作可能であることが必要であるので、一方のＣＰＵに異常が生じた場合は、異常でない他方のＣＰＵによって異常ＣＰＵをリセットして所要の設定値をリセット後のＣＰＵに与えることで２つのＣＰＵを正常状態に復帰させるようにしているが、異常を生じたＣＰＵがリセットにより正常復帰するとは限らない。
【００１０】
このように、従来の相互監視による手法では、相手ＣＰＵが異常で停止された後は、自分自身の正常性を判断することができないので、異常な状態に陥った場合でも正常に制御可能であればできるだけ制御を長く安全に継続するという昨今の要求を満足することはできない。また、相互監視による手法では、一方が故障した際、真に故障したのは二重化されたＣＰＵのどちらであるかを正確に判定することは基本的に不可能である。
【００１１】
本発明は、上記実情に鑑みてなされたものであって、自分自身を診断し、正常に制御可能であればできるだけ制御を長く安全に継続することが可能な制御系を有する電動パワーステアリング装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明は、操舵補助用の電動モータと、操舵トルクおよび車両速度を用いて演算した操舵補助指令に基づき前記操舵補助用の電動モータを駆動制御するためのモータ駆動指令を生成する操舵制御を実行する制御手段とを備える電動パワーステアリング装置において、前記制御手段は、複数のＣＰＵコアを内蔵するマルチコアプロセッサを有し、該マルチコアプロセッサは、内蔵する各ＣＰＵコア間で同じ演算を行い、該演算結果を比較することにより、自らの正常性を判断する自己診断を行い、該自己診断で正常と判断されているときに、前記操舵制御を実行することを特徴とする。
【００１３】
また、本発明の好ましい態様によれば、前記マルチコアプロセッサは、前記複数のＣＰＵコアのなかの一部のＣＰＵコアが、操舵トルクおよび車両速度に基づいて操舵補助指令を演算し、該演算した操舵補助指令にステアリング系のステアリング特性を補償してトルク指令を生成する処理を含む第１の処理を行い、残りのＣＰＵコアが前記トルク指令に基づき前記操舵補助用の電動モータを電流制御するための処理を含む第２の処理を行うことが望ましい。
【００１４】
また、本発明の好ましい態様によれば、前記制御手段は、主制御系及び副制御系で構成され、これら主制御系及び副制御系のうち少なくとも主制御系がマルチコアプロセッサ構成であることが望ましい。
【００１５】
また、本発明は、操舵補助用の電動モータと、操舵トルクおよび車両速度を用いて演算した操舵補助指令に基づき前記操舵補助用の電動モータを駆動制御するためのモータ駆動指令を生成する操舵制御を実行する制御手段とを備える電動パワーステアリング装置において、前記制御手段は、複数の第１ＣＰＵコアを有し、該複数の第１ＣＰＵコアによって前記操舵制御を実行して主側モータ駆動指令を出力するマルチコアプロセッサ構成の主制御系と、複数の第２ＣＰＵコアを有し、該複数の第２ＣＰＵコアによって前記操舵制御を実行して副側モータ駆動指令を出力するマルチコアプロセッサ構成の副制御系とを有し、前記主制御系から出力される主側モータ駆動指令および副制御系から出力される副側モータ駆動指令を択一選択して前記操舵補助用の電動モータに出力する切替スイッチを備え、前記主制御系および副制御系は、内蔵するＣＰＵコア間で同じ演算を行い、該演算結果を比較することにより、自らの正常性を自ら判断する自己診断を行う自己診断手段と、前記自己診断の結果を相手制御系に通知する通知手段と、前記自己診断手段による自制御系の自己診断結果と前記相手制御系から通知された相手制御系の自己診断結果に基づいて前記切替スイッチの切替え制御を行う切替制御手段とを夫々備えることを特徴とする。
【００１６】
また、本発明の好ましい態様によれば、前記切替制御手段は、自制御系の自己診断結果が正常で、相手制御系の自己診断結果が正常の場合は、自制御系による前記操舵制御を継続させ、自制御系の自己診断結果が異常の場合は、自制御系を動作停止し、自制御系の自己診断結果が正常で、相手制御系の自己診断結果が異常の場合は、自制御系が選択されるよう前記切替スイッチを切替え制御することが望ましい。
【発明の効果】
【００１７】
本発明にかかる電動パワーステアリング装置によれば、複数のＣＰＵコアを内蔵するマルチコアプロセッサが、自らの正常性を判断する自己診断を行い、自己診断で正常と判断されているときは操舵制御を実行するようにしているので、プロセッサ間の相互監視を行うことなくプロセッサ自体の自己診断に従って操舵制御を長く安全に継続することができる。また、マルチコアプロセッサ構成を採用しているので、低いクロック周波数でも処理性能を向上させることができ、消費電力、発熱を低減させることができる。
【発明を実施するための最良の形態】
【００１８】
以下に、本発明にかかる電動パワーステアリング装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１９】
図１は、電動パワーステアリング（ＥＰＳ）装置１００の一般的な構成を示す図である。図１において、操向ハンドル１のコラム軸２は減速ギア３、ユニバーサルジョイント４ａおよび４ｂ、ピニオンラック機構５を経て操向車輪のタイロッド６に連結されている。コラム軸２には、操向ハンドル１の操舵トルクＴを検出するトルクセンサ１０が設けられており、操向ハンドル１の操舵力を補助する操舵補助モータ２０が、減速ギア３を介してコラム軸２に連結されている。ここで、操舵補助モータ２０は、例えば、ブラシレスモータやブラシモータである。電動パワーステアリング装置を制御するコントロールユニット（ＥＣＵ）３０には、バッテリ１４から内蔵の電源リレー１３を経て電力が供給され、イグニションキー１１からイグニション信号が供給される。また、コントロールユニット３０は、トルクセンサ１０で検出された操舵トルクＴと車速センサ１２で検出された車両速度（車速）Ｖとに基づいて、操舵補助モータ２０の電流指令値を演算し、操舵補助モータ２０の電流検出値と電流指令値とに基づいて、操舵補助モータ２０の電流検出値が電流指令値に追従するように操舵補助モータ２０を駆動制御する。
【００２０】
図２は、コントロールユニット３０による操舵補助モータ２０の駆動制御系の機能ブロック図を示すものである。この駆動制御系には、操舵トルクＴと車速Ｖに基づいて操舵補助指令値を算出するトルク制御部２００と、操舵補助指令値を補償することによりステアリング系のステアリング特性を補償する補償制御を行う補償制御部２１０と、操舵補助モータ２０の駆動に関連した電流制御を行う電流制御系２２０とが含まれている。トルク制御系２３０とは、トルク制御部２００および補償制御部２１０を含んだ構成を云うものとする。
【００２１】
トルク制御部２００は、アシスト量演算部２０１と、位相補償部２０２とを備えている。アシスト量演算部２０１には、トルクセンサ１０で検出された操舵トルクＴと、車速センサ１２で検出された車速Ｖが入力される。アシスト量演算部２０１は、車速Ｖをパラメータとして操舵トルクＴに対応する操舵補助指令値Ｉを格納しており、入力される操舵トルクＴ及び車速Ｖに基いて、操舵補助モータ２０に供給する電流の制御目標値である操舵補助指令値Ｉを決定して、位相補償部２０２に出力する。位相補償部２０２は、操舵系の安定性を高めるために、操舵補助指令値Ｉを位相補償して加算部２０３に出力する。
【００２２】
補償制御部２１０は、モータ角速度推定部２０５と、モータ角加速度推定部２１１と、慣性補償部２１２と、収斂性補償部２１３と、ＳＡＴ（セルフトルクアライニング）補償部２１４と、加算部２０３とを備え、ステアリング系のステアリング特性を補償する処理を行う。
【００２３】
位置検出回路２２は、操舵補助モータ２０に取り付けられたレゾルバなどの位置センサ２１からの出力信号をモータ回転角信号θとして、モータ角速度推定部２０５に出力する。モータ角速度推定部２０５は、位置検出回路２２から入力されるモータ回転角信号θに基づいてモータ角速度ωを推定し、推定したモータ角速度ωを、モータ角加速度推定部２１１、収斂性補償部２１３、およびＳＡＴ補償部２１４に出力する。モータ角加速度推定部２１１は、モータ角速度推定部２０５から入力されるモータ角速度ωに基づいて、モータ角加速度＊ωを推定し、推定したモータ角加速度＊ωを慣性補償部２１２およびＳＡＴ補償部２１４に出力する。
【００２４】
慣性補償部２１２は、ハンドル回転を助ける方向に制御するものであり、具体的には、操舵補助モータ２０の慣性により発生する力相当分をアシストして慣性感又は制御の応答性の悪化を防止するものであり、入力されるモータ角加速度＊ω等に基づいて、操舵補助モータ２０の慣性を補償する慣性補償値を算出し、加算部２０３に出力する。
【００２５】
収斂性補償部２１３は、ハンドル回転を妨げる方向に制御するものであり、具体的には、車両のヨーの収斂性を改善するために、ハンドルが振れ回る動作に対してブレーキをかけるようになっており、入力されるモータ角速度ω等に基づいて、車両のヨーの収斂性を補償する収斂性補償値を算出して加算部２０３に出力する。
【００２６】
ＳＡＴ補償部２１４は、ハンドルに適切な路面情報を反力として与えるようになっており、操舵トルクＴ、アシスト量演算部２０１の操舵補助指令値Ｉ、モータ角速度ω、モータ角加速度＊ω等に基づいてＳＡＴ値を推定し、推定したＳＡＴ値を加算部２０３に出力する。
【００２７】
加算部２０３は、位相補償部２０２で位相補償された操舵補助指令値Ｉに、慣性補償部２１２の慣性補償値、収斂性補償部２１３の収斂性補償値、およびＳＡＴ補償部２１４のＳＡＴ値を加算してトルク指令値Ｔｒｅｆを決定する。これにより、ステアリング特性の補償がなされたトルク指令値Ｔｒｅｆが決定される。
【００２８】
電流制御系２２０は、電流指令値演算部２２１、ＰＩ（比例積分）制御部２２２、ＰＷＭ制御部２２３などを備えており、電流指令値演算部２２１は、加算部２０３からのトルク指令値Ｔｒｅｆに基づいて電流指令値Ｉｒｅｆを求めて出力する。ＰＩ制御部２２２は、電流指令値Ｉｒｅｆと操舵補助モータ２０のモータ電流検出値Ｉｍとの偏差を求め、該偏差を比例積分処理して電圧補償量ＶｒｅｆをＰＷＭ制御部２２３に出力する。ＰＷＭ制御部２２３は、電圧補償量ＶｒｅｆをＰＷＭ処理して、ＵＶＷ各相のＰＷＭ制御信号（モータ駆動指令）をモータ駆動回路２４０に出力する。モータ駆動回路２４０は、インバータ回路などにより構成されており、ＰＷＭ制御部２２３から出力された信号に基づき操舵補助モータ２０を駆動する。
【００２９】
つぎに、本実施例１の要部について説明する。図３は、図１に示したコントロールユニット３０の概略的なハードウェア構成を示すものである。実施例１では、コントロールユニット３０を複数のＣＰＵコアＡ，Ｂを有するマルチコアプロセッサとしている。図３では、コントロールユニット３０を実現するために必要なＡ／Ｄ変換器、入出力インターフェース、不揮発性メモリなどの図示を便宜上省略している。
【００３０】
図３に示すマルチコアプロセッサでは、ＣＰＵパッケージ３１上に設けられるＣＰＵダイ３２上に、２つのＣＰＵコアＡ，Ｂと、ＣＰＵコアＡに接続されるバスインターフェース３３ａと、ＣＰＵコアＢに接続されるバスインターフェース３３ｂが搭載されている。ＣＰＵコアＡ，Ｂは、メモリコントローラ３４に接続されており、メモリコントローラ３４の制御によってメモリ（ＲＡＭ）３５を共用している。この場合は、メモリ３５をＣＰＵコアＡ,Ｂで共用する共用メモリ型のマルチコアプロセッサを示したが、各ＣＰＵコアＡ，Ｂ内にメモリを夫々内蔵する場合もある。
【００３１】
図４は、図３に示したマルチコアプロセッサに搭載されるソフトウェアの一部を概念的に示すものである。この場合、操舵制御で主な制御となる電流制御（図２の電流制御系２２０に対応）と、トルク制御（図２のトルク制御系２３０に対応）とを独立させ、これら電流制御とトルク制御とをソフトウェアにてタスク（スレッド）化し、ＭＩＭＤ（Multiple Instruction/Multiple Data）を用いて並列処理させている。また、ＯＳ ＡはＣＰＵコアＡを制御するオペレーティングシステムであり、ＯＳ Ａ上に電流制御スレッドが搭載されている。ＯＳ ＢはＣＰＵコアＢを制御するオペレーティングシステムであり、ＯＳ Ｂ上に電流制御スレッドが搭載されている。なお、電流制御は操舵補助モータ２０の騒音を低減するなどのために、トルク制御に比べより細かな制御が必要であり、電流制御の制御周期はトルク制御に比べ充分に短い。このため、図２に示したように、トルク制御の後に電流制御が行われるのであるが、ＭＩＭＤ方式による並列処理が可能である。このように、電流制御とトルク制御が独立して動作するため、分散処理および高速化を実現でき、リアルタイム性が向上し、高機能化を図ることが可能となる。
【００３２】
図５は、図３に示したマルチコアプロセッサにより行われる全体的な制御手順の概略を示すものである。このマルチコアプロセッサでは、車両動作時は、常時、ＣＰＵコアＡ、Ｂの自己診断を行っており（ステップＳ１００）、この自己診断の結果、両ＣＰＵコアＡ、Ｂが正常と判定されたときに（ステップＳ１１０ＹＥＳ）、前述したＭＩＭＤ方式を用いてトルク制御と電流制御とを並列化した操舵制御を実行する（ステップＳ１２０）。しかし、自己診断の結果、異常と判定された場合は（ステップＳ１１０ＮＯ）、自身すなわちＣＰＵコアＡ，Ｂの動作を停止する（ステップＳ１３０）。
【００３３】
図６は、図５のステップＳ１００で行われる自己診断処理の手順を示すものである。この自己診断処理は、ＭＩＳＤ（Multiple Instruction/Single Data）プロセッシング機能を用いたものであり、それぞれのＣＰＵコアで、同じデータを用いて同じ演算を行い、該演算結果を比較することにより、自らの正常性を判断するものである。
【００３４】
ＣＰＵコアＡでは、所定のデータを用いて規定の演算処理を実行し（ステップＳ２００）、その演算結果をバスＩ／Ｆ３３ａを介して相手ＣＰＵコアであるＣＰＵコアＢに通知する（ステップＳ２１０）。ＣＰＵコアＢも同様に、ＣＰＣコアＡでの演算処理に用いたものと同じデータおよび演算を用いた演算処理を実行し（ステップＳ２３０）、その演算結果をバスＩ／Ｆ３３ｂを介して相手ＣＰＵコアであるＣＰＵコアＡに通知する（ステップＳ２４０）。例えば、図３に示すように、メモリ３５をＣＰＵコアＡ，Ｂで共有するマルチコアプロセッサである場合は、ＣＰＵコアＡはメモリ３５の所定の記憶領域に演算結果を書き込み、ＣＰＵコアＢがメモリ３５の該所定の記憶領域に書き込まれた演算結果を読み出すことで、ＣＰＵコアＢは、ＣＰＵコアＡの演算結果を取得する。同様に、ＣＰＵコアＢはメモリ３５の別の所定の記憶領域に演算結果を書き込み、ＣＰＵコアＡがメモリ３５の該別の所定の記憶領域に書き込まれた演算結果を読み出すことで、ＣＰＵコアＡは、ＣＰＵコアＢの演算結果を取得する。
【００３５】
ＣＰＵコアＡでは、自身の演算結果と、取得したＣＰＵコアＢの演算結果を比較する（ステップＳ２２０）。ＣＰＵコアＢも同様に、自身の演算結果と、取得したＣＰＵコアＡの演算結果を比較する（ステップＳ２５０）。ＣＰＵコアＡでは、ステップＳ２２０の比較の結果、両演算結果が一致する場合は（ステップＳ２６０ＹＥＳ）、自マルチコアプロセッサ、即ちＣＰＵコアＡ，Ｂは正常であると判定し（ステップＳ２６５）、通常通り、自ＣＰＵコアＡで行うべき操舵制御であるトルク制御を実行する。一方、ＣＰＵコアＡは、ステップＳ２２０の比較の結果、両演算結果が不一致の場合は（ステップＳ２６０ＮＯ）、所定の復旧停止処理を実行する（ステップＳ２７０）。
【００３６】
ＣＰＵコアＢも同様であり、ステップＳ２５０の比較の結果、両演算結果が一致する場合は（ステップＳ２８０ＹＥＳ）、自マルチコアプロセッサ、即ちＣＰＵコアＡ，Ｂは正常であると判定し（ステップＳ２８５）、通常通り、自ＣＰＵコアＢで行うべき操舵制御である電流制御を実行する。一方、ＣＰＵコアＢは、ステップＳ２５０の比較の結果、両演算結果が不一致の場合は（ステップＳ２８０ＮＯ）、所定の復旧停止処理を実行する（ステップＳ２７０）。ステップＳ２７０の復旧停止処理では、両ＣＰＵコアＡ，Ｂの演算結果が不一致の場合、両ＣＰＵコアＡ，Ｂによる本ＥＰＳ装置１００の制御動作を即座に停止させるようにしてもよいし、各ＣＰＵコアＡ，Ｂのリセットを何回か実行し、所定の回数のリセットを経てもＣＰＵコアＡ，Ｂの演算結果が不一致の場合に、両ＣＰＵコアＡ，Ｂによる本ＥＰＳ装置１００の制御動作を停止させるようにしてもよい。なお、この復旧停止処理の手法は任意であり、正常に制御可能であればできるだけ制御を長く安全に継続することが可能な復旧停止処理を採用したほうが望ましい。また、上記複数のＣＰＵコア間の演算比較に基づく自己診断の他に、ＲＡＭ異常、ＲＯＭ異常を判定し、この判定結果を自己診断結果に含めるようにしてもよい。
【００３７】
このように実施例１では、ＣＰＵコアＡ、Ｂを内蔵するマルチコアプロセッサが、自らの正常性を判断する自己診断を行い、自己診断で正常と判断されているときは操舵制御を実行するようにしているので、プロセッサ間の相互監視を行うことなくプロセッサ自体の自己診断に従って操舵制御を長く安全に継続することができる。また、マルチコアプロセッサ構成を採用しているので、低いクロック周波数でも処理性能を向上させることができ、消費電力、発熱を低減させることができる。
【００３８】
なお、実施例１では、２つのＣＰＵコアを有するマルチコアプロセッサを用いるようにしたが、３つ以上のＣＰＵコアを有するマルチコアプロセッサを用いるようにしてもよい。この場合、一部のＣＰＵコアがトルク制御を実行し、残りのＣＰＵコアが電流制御を実行することで、前述のＭＩＭＤ機能を達成する。また、他に、タイマを用いたタスクのスケジュール管理を一方のＣＰＵコアに行わせ、操舵制御を行うためのタスク自体の処理を他方のＣＰＵコアに行わせようなＭＩＭＤ処理をマルチプロセッサ構成のコントロールユニット３０に行わせるようにしてもよい。
【実施例２】
【００３９】
つぎに、図７〜図１１を用いてこの発明の実施例２について説明する。実施例２では、マルチコアプロセッサ構成である主制御系としてのメインＣＰＵと、マルチコアプロセッサ構成である副制御系としてのサブＣＰＵとにより、同じ操舵制御を並行して行わせ、これら２つの操舵制御出力のうちの一方を用いて操舵補助モータ２０を駆動制御する。
【００４０】
図７は、実施例２にかかるシステム構成を示すものである。コントロールユニット３０は、メインＣＰＵ４０およびサブＣＰＵ５０を備え、これらメインＣＰＵ４０およびサブＣＰＵ５０の双方に、操舵制御を行うために必要なセンサ値である、操舵トルクＴ、車速Ｖ、舵角θなどが入力される。メインＣＰＵ４０は、操舵トルクＴおよび車速Ｖを用いて演算した操舵補助指令に基づき操舵補助モータ２０を駆動制御するための主側モータ駆動指令を生成する操舵制御を実行する。サブＣＰＵ５０も同様の操舵制御を実行し、副側モータ駆動指令を出力する。コントロールユニット３０とモータ駆動回路２４０の間には、切替スイッチ５５が設けられている。切替スイッチ５５は、メインＣＰＵ４０から出力される主側モータ駆動指令と、サブＣＰＵ５０から出力される副側モータ駆動指令とのいずれかを選択して、操舵補助モータ２０を駆動制御するモータ駆動回路２４０に出力する。切替スイッチ５５は、初期状態では、主側モータ駆動指令を選択するようになっており、メインＣＰＵ４０およびサブＣＰＵ５０から出力される切替制御信号によって切替え制御される。
【００４１】
図８は、図７に示したコントロールユニット３０の概略的ハードウェア構成を示すものである。メインＣＰＵ４０は、２つのＣＰＵコアＡ，Ｂを有し、サブＣＰＵ５０は、２つのＣＰＵコアＣ，Ｄを有する。メインＣＰＵ４０、サブＣＰＵ５０において、ＣＰＵコア以外の構成は図示を省略した。図４に示したように、メインＣＰＵ４０のＣＰＵコアＡは電流制御を行い、ＣＰＵコアＢはトルク制御を行う。同様に、サブＣＰＵ５０のＣＰＵコアＣは電流制御を行い、ＣＰＵコアＤはトルク制御を行う。
【００４２】
メインＣＰＵ４０およびサブＣＰＵ５０は夫々図６に示した手順に従った自己診断を行っており、メインＣＰＵ４０およびサブＣＰＵ５０間には、自己診断結果を相手ＣＰＵに常時伝達するための相互監視ルートが設けられている。図８の場合は、３種類の相互監視ルートが設けられている。第１の相互監視ルートは、通信インタフェース４１であり、例えばＳＣＩなどのシリアル通信インターフェースが採用される。第２相互監視ルートは、ＥＥＰＲＯＭなどの不揮発メモリ４２であり、一方のＣＰＵ４０，５０が不揮発メモリ４２の所定の記憶領域に自己診断結果を書き込み、他方のＣＰＵ５０，４０が該所定の記憶領域から書き込まれた自己診断結果を読み出すことで、自己診断結果の相互通信を可能とする。第３の相互監視ルートは、ポート(Port)信号であり、所定のポート番号のポート信号を用いて自己診断結果を相手ＣＰＵに通知する。各監視ルートの回線断などの状況を考えた場合、これら３種の相互監視ルートを全て採用したほうが望ましいが、任意の１ルート、２ルートを採用してもよい。
【００４３】
図９は、メインＣＰＵ４０で行われる診断処理の機能ブロック図を示すものである。サブＣＰＵ５０の診断処理の機能ブロック図も図９と同様である。診断処理部６０は、自己診断部６１、診断結果送信部６２、診断結果受信部６３、診断制御部６４を有する。自己診断部６１は、図６で示した手順に従ってメインＣＰＵ４０の自己診断を行い、その診断結果を診断結果送信部６２および診断制御部６４に出力する。すなわち、自己診断部６１は、ＣＰＵコアＡ，Ｂで、同じデータを用いて同じ演算を行い、該演算結果を比較することにより、自らの正常性を判断するものである。診断結果送信部６２は、自己診断部６１から入力された自己診断結果を図８に示した３つの相互監視ルートのいずれかまたは複数ルートを介して相手ＣＰＵとしてのサブＣＰＵ５０に通知する。診断結果受信部６３は、図８に示した３つの相互監視ルートのいずれかまたは複数ルートを介して受信した相手ＣＰＵであるサブＣＰＵ５０の自己診断結果を受信し、受信した相手ＣＰＵの自己診断結果を診断制御部６４に出力する。診断制御部６４は、自身の自己診断結果および相手ＣＰＵの自己診断結果に基づいて切替スイッチ５５の切替え制御、自己の制御停止動作などを実行する。
【００４４】
つぎに、図１０を用いてメインＣＰＵ４０で行われる診断処理について説明する。まず、自己診断部６１では、ＣＰＵコアＡ，Ｂで、同じデータを用いて同じ演算を行い、該演算結果を比較することにより、自らの正常性を判断する自己診断を実行する（ステップＳ３００）。この自己診断により自身すなわちメインＣＰＵ４０が正常であるか否かを判定し（ステップＳ３１０）、診断結果を診断結果送信部６２を介してサブＣＰＵ５０に通知するとともに診断制御部６４に出力する。診断制御部６４は、自己診断部６１から正常である診断結果が入力された場合、診断結果受信部６３から入力される相手ＣＰＵとしてのサブＣＰＵ５０での自己診断結果を判定し（ステップＳ３２０）、これが正常である場合は、通常どおり、ＣＰＵコアＡ，Ｂを用いた操舵制御を実行する（ステップＳ３３０）。しかし、ステップＳ３２０の判定でサブＣＰＵ５０が異常と判定された場合、診断制御部６４は、現在の日時、各種センサ値（操舵トルクＴ、舵角θ、車速、温度など）、自己診断の演算結果などを含む異常情報を図８の不揮発メモリ４２に書き込むと共に（ステップＳ３４０）、これ以降メインＣＰＵ４０のみで操舵制御を実行する（ステップＳ３５０）。不揮発メモリ４２に書き込まれた異常情報は、その後、故障解析の際などに利用される。また、メインＣＰＵ４０のみでの操舵制御を行う際には、図６で説明したように、メインＣＰＵ４０は、メインＣＰＵ４０内のＣＰＵコアＡ，Ｂにより自己診断を行い、この自己診断で正常と判定されているときに、操舵制御などの各種制御を実行する。
【００４５】
また、ステップＳ３１０の判定で、自己診断部６１が自身の異常を検出した場合は、診断結果送信部６２は、この異常発生を前述の相互監視ルートを介して相手ＣＰＵとしてのサブＣＰＵ５０に通知する（ステップＳ３６０）。また、診断制御部６４は、ステップＳ３４０と同様に、現在の日時、各種センサ値などを含む異常情報を図８の不揮発メモリ４２に書き込むと共に（ステップＳ３７０）、メインＣＰＵ４０の動作、すなわちＣＰＵコアＡ，Ｂの制御動作を自身で停止させる（ステップＳ３８０）。
【００４６】
つぎに、図１１を用いてサブＣＰＵ５０で行われる診断処理について説明する。まず、サブＣＰＵ５０の自己診断部６１では、ＣＰＵコアＣ，Ｄで、同じデータを用いて同じ演算を行い、該演算結果を比較することにより、自らの正常性を判断する自己診断を実行する（ステップＳ４００）。この自己診断により自身すなわちサブＣＰＵ５０が正常であるか否かを判定し（ステップＳ４１０）、診断結果を診断結果送信部６２を介してメインＣＰＵ４０に通知するとともにサブＣＰＵ５０の診断制御部６４に出力する。サブＣＰＵ５０の診断制御部６４は、自己診断部６１から正常である診断結果が入力された場合、診断結果受信部６３から入力される相手ＣＰＵとしてのメインＣＰＵ４０での自己診断結果を判定し（ステップＳ４２０）、これが正常である場合は、通常どおり、ＣＰＵコアＣ，Ｄを用いた操舵制御を実行する（ステップＳ４３０）。しかし、ステップＳ４２０の判定でメインＣＰＵ４０が異常と判定された場合、サブＣＰＵ５０の診断制御部６４は、ステップＳ３４０と同様に、現在の日時、各種センサ値などを含む異常情報を図８の不揮発メモリ４２に書き込むと共に（ステップＳ４４０）、切替スイッチ５５をサブＣＰＵ５０側に切替え（ステップＳ４５０）、これ以降サブＣＰＵ５０のみで操舵制御を実行する（ステップＳ４６０）。サブＣＰＵ５０によって不揮発メモリ４２に書き込まれた異常情報は、その後、故障解析の際などに利用される。また、サブＣＰＵ５０のみでの操舵制御を行う際には、図６で説明したように、サブＣＰＵ５０は、サブＣＰＵ５０内のＣＰＵコアＣ，Ｄにより自己診断を行い、この自己診断で正常と判定されているときに、操舵制御などの各種制御を実行する。
【００４７】
また、ステップＳ４１０の判定で、サブＣＰＵ５０の自己診断部６１が自身の異常を検出した場合は、サブＣＰＵ５０の診断結果送信部６２は、この異常発生を前述の相互監視ルートを介して相手ＣＰＵとしてのメインＣＰＵ４０に通知する（ステップＳ４７０）。また、サブＣＰＵ５０の診断制御部６４は、ステップＳ４４０と同様に、現在の日時、各種センサ値などを含む異常情報を図８の不揮発メモリ４２に書き込むと共に（ステップＳ４８０）、サブＣＰＵ５０の動作、すなわちＣＰＵコアＣ，Ｄの制御動作を自身で停止させる（ステップＳ４９０）。
【００４８】
このように実施例２では、マルチコアプロセッサ構成を有する主制御系および副制御系により操舵制御を並列に実行し、切替スイッチによりこれら主制御系および副制御系の制御出力のうちいずれか一方を選択して操舵補助モータ２０を駆動制御するとともに、主制御系および副制御系においては、内蔵するＣＰＵコア間で同じ演算を行い、該演算結果を比較することにより、自らの正常性を自ら判断する自己診断を行い、自己診断の結果を相手制御系に通知し、自制御系の自己診断結果と相手制御系から通知された相手制御系の自己診断結果に基づいて切替スイッチの切替え制御を行うようにしており、自己診断と相互監視を併用して主制御系および副制御系の選択を行うようにしているので、異常が発生している制御系が主副のどちらであるかを正確に判定することができ、これにより主副制御系のいずれかに異常が発生した場合、真に正常な側の制御系をもって制御動作を継続させることができる。
【００４９】
また、実施例２においては、主制御系および副制御系が共にマルチコアプロセッサ構成を採用しているので、相手制御系から異常の診断結果が通知されて１つの制御系で動作しなくてはいけない状況下になった場合でも、自己診断を行って自身の正常性を判定することができるので、自己診断の結果、自身が異常と判定されるまで、制御を続行することができ、これにより一方の制御系に異常が発生した後も制御を長く安全に継続させることが可能になり、より安全なシステムを構築することができる。
【００５０】
なお、実施例２では、主制御系および副制御系の双方をマルチコアプロセッサ構成としたが、主制御系のみをマルチコアプロセッサ構成とし、副制御系をシングルコアプロセッサ構成としてもよい。この場合、操舵制御は、マルチコアプロセッサ構成の主制御系のみで行い、自己診断を主制御系および副制御系の双方で行い、自己診断結果を実施例２で説明したように相手制御系に互いに通知することにより両制御系で相手制御系の相互監視を行う。シングルコアプロセッサ構成の副制御系では、主制御系が異常の自己診断結果を副制御系に通知してきたときに、切替スイッチ５５を副制御系側に切替えて、所要の復旧停止動作を行った後、最終的には、主制御系および副制御系の動作を停止させる。このように、主制御系のみをマルチコアプロセッサ構成とした場合、シングルコアプロセッサ構成の副制御系は、自己診断結果を主制御系に通知することと、主制御系の正常性をチェックすることが主な制御となる。
【産業上の利用可能性】
【００５１】
以上のように、本発明にかかる電動ステアリング装置は、正常に制御可能であればできるだけ制御を長く安全に継続することが要求される場合に有用である。
【図面の簡単な説明】
【００５２】
【図１】電動パワーステアリング装置の一般的な構成を示す図である。
【図２】コントロールユニットによる操舵補助モータの駆動制御系の機能ブロック図である。
【図３】実施例１におけるコントロールユニットのハードウェア構成を示す図である。
【図４】実施例１におけるコントロールユニットの操舵補助モータの駆動制御系のソフトウェア構成を示す図である。
【図５】実施例１におけるコントロールユニットによって行われる全体的動作手順を示すフローチャートである。
【図６】マルチコアプロセッサの自己診断処理を示すフローチャートである。
【図７】実施例２のシステム構成を示す図である。
【図８】実施例２のコントロールユニットのハードウェア構成を示す図である。
【図９】実施例２のコントロールユニットで行われる診断処理の機能ブロック図である。
【図１０】実施例２のコントロールユニットのメインＣＰＵで行われる診断制御処理を示すフローチャートである。
【図１１】実施例２のコントロールユニットのサブＣＰＵで行われる診断制御処理を示すフローチャートである。
【符号の説明】
【００５３】
１  操向ハンドル
２  コラム軸
３  減速ギア
４ａ，４ｂ  ユニバーサルジョイント
５  ピニオンラック機構
６  タイロッド
１０  トルクセンサ
１１  イグニションキー
１２  車速センサ
１３  電源リレー
１４  バッテリ
２０  操舵補助モータ
２１  位置センサ
２２  位置検出回路
３０  コントロールユニット
３１  ＣＰＵパッケージ
３２  ＣＰＵダイ
３３ａ，３３ｂ  バスインターフェース
３４  メモリコントローラ
３５  メモリ
４０  メインＣＰＵ
４１  通信インタフェース
４２  不揮発メモリ
５０  サブＣＰＵ
５５  切替スイッチ
６０  診断処理部
６１  自己診断部
６２  診断結果送信部
６３  診断結果受信部
６４  診断制御部
１００  ＥＰＳ装置
２００  トルク制御部
２１０  補償制御部
２１２  慣性補償部
２１３  収斂性補償部
２１４  ＳＡＴ補償部
２２０  電流制御系
２３０  トルク制御系
【図１】
2009029172.tif 000003
【図２】
2009029172.tif 000004
【図３】
2009029172.tif 000005
【図４】
2009029172.tif 000006
【図５】
2009029172.tif 000007
【図６】
2009029172.tif 000008
【図７】
2009029172.tif 000009
【図８】
2009029172.tif 000010
【図９】
2009029172.tif 000011
【図１０】
2009029172.tif 000012
【図１１】
2009029172.tif 000013