以下、本発明につき図面を参照しつつ詳細に説明する。なお、この発明を実施するための形態(以下、実施形態という)により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。
図1は、本実施形態に係る電動パワーステアリング装置の構成を示す図である。本実施形態に係る電動パワーステアリング装置は、電動パワーステアリング装置の制御に使用される情報を格納するとともに、電動パワーステアリング装置の制御における所定の処理単位毎に分割された複数のエリアを有する記憶装置と、電動パワーステアリング装置を制御するとともに、前記記憶装置に不具合が発生しているか否かを判定する処理装置とを有する。そして、処理装置は、電動パワーステアリング装置の制御において、制御の処理負荷に基づいて複数のエリアから診断対象のエリアを選択し、選択したエリアを診断する。
電動パワーステアリング装置100は、車両に搭載されて、前記車両の運転者によるハンドルホイール1の操作を補助するものである。ハンドルホイール1のコラム軸2は、減速ギヤ3、ユニバーサルジョイント4a、4b、ラックアンドピニオン機構5を介して、操舵輪のタイロッド6に連結されている。コラム軸2には、ハンドルホイール1の操舵トルクTを検出するトルクセンサ10が設けられている。また、コラム軸2には減速ギヤ3が取り付けられている。減速ギヤ3は、電動機20の発生するトルクを増加させてコラム軸2へ伝達する。このような構造によって、電動機20が発生するトルクにより、ハンドルホイール1の操舵力が補助される。
本実施形態において、電動パワーステアリング装置100は、コラム軸2に電動機20のトルクを伝達するコラムアシスト型の装置であるが、電動パワーステアリング装置の形式はこれに限定されるものではない。例えば、電動パワーステアリング装置100は、ピニオンアシスト型やラックアシスト型等であってもよい。
電動機20は、例えば、ブラシレスモータやブラシモータである。電動パワーステアリング装置100を制御するECU(Electronic Control Unit、以下コントロールユニットという)30には、自身に内蔵された電源リレー13を介してバッテリ14から電力が供給されるとともに、イグニッションスイッチ11からイグニッション信号が送信される。また、コントロールユニット30は、トルクセンサ10で検出された操舵トルクTと車速センサ12で検出された車両速度(車速)Vとに基づいて、電動機20の電流指令値を演算する。そして、コントロールユニット30は、電動パワーステアリング装置100を制御する装置(電動パワーステアリング装置の制御装置)である。コントロールユニット30は、電動機20に供給される電流の値(電流検出値)と電流指令値とに基づいて、電動機20の電流検出値が電流指令値に追従するように電動機20を駆動制御する。
図2は、本実施形態に係る電動パワーステアリング装置を制御するコントロールユニットのハードウェア構成を示す模式図である。コントロールユニット30は、図2に示すように、電源リレー13と、制御用コンピュータ110と、電動機駆動回路15と、電流検出回路16と、位置検出回路17等とを備えている。電動パワーステアリング装置100の制御用コンピュータ110は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、EEPROM(Electrically Erasable Programmable ROM)104、インターフェース(I/F)105、A/D(Analog/Digital)変換器106、PWM(Pulse Width Modulation)コントローラ107等を備え、これらがバスに接続されている。CPU101は処理装置であり、ROM102に格納された、電動パワーステアリング装置100の制御用コンピュータプログラム(以下、制御プログラムという)を実行して、電動パワーステアリング装置100を制御する。
ROM102は制御プログラムや、ROM102及びRAM103を診断するための診断用コンピュータプログラム(以下、診断プログラムという)、あるいは電動パワーステアリング装置100の制御や診断に用いるデータを格納する。また、RAM103は、制御プログラムや診断プログラムを動作させるためのワークメモリとして使用される。EEPROM104には、制御プログラムが入出力する制御データ等が格納されている。制御データは、コントロールユニット30に電源が投入された後にRAM103に展開された制御用コンピュータプログラム上で使用され、所定のタイミングでEEPROM104に上書きされる。
ROM102、RAM103、及びEEPROM104等は情報を格納する記憶装置であって、CPU101が直接アクセスできる記憶装置(一次記憶装置)である。ROM102、RAM103、及びEEPROM104等は、制御用コンピュータプログラム及び制御データが格納されているため、CPU101によって不具合の有無の診断が実行される。このとき、ROM102、RAM103、及びEEPROM104のすべてを記憶装置として診断するように構成してもよいが、本実施形態では、記憶装置のうち、電動パワーステアリング装置100の制御中において使用頻度が高いROM102及びRAM103を診断するものとする。
本実施形態における記憶装置の診断は、診断処理負荷を低減でき、診断及び/又は制御のリアルタイム性を向上することができるという効果が得られる。このため、本実施形態における記憶装置の診断を、電動パワーステアリング装置100の制御中において使用頻度が高いROM102及びRAM103に対して使用することにより、診断処理負荷を低減でき、診断及び/又は制御のリアルタイム性を向上することができる。なお、ROM102及びRAM103以外の記憶装置(例えば、EEPROM104)に対する本実施形態における記憶装置の診断を除外するものではない。
A/D変換器106は、トルクセンサ10からの操舵トルクT、電流検出回路16からの電動機20の電流検出値Im、及び位置検出回路17からの電動機20の回転角θの信号等を入力し、ディジタル信号に変換する。インターフェース105は、CAN(Controller Area Network)等の車載ネットワークに接続されている。インターフェース105は、車速センサ12からの車速Vの信号(車速パルス)を受け付けるためのものである。
PWMコントローラ107は、電動機20に対する電流指令値に基づいてUVW各相のPWM制御信号を出力する。電動機駆動回路15は、インバータ回路等により構成され、PWMコントローラ107から出力された信号に基づいて電動機20を駆動する。電流検出回路16は、電動機20に供給される電流の値(電流検出値)Imを検出してA/D変換器106に出力する。位置検出回路17は、位置センサ25(例えば、レゾルバ等)の出力信号を電動機20の回転角θとして、A/D変換器106に出力する。上記構成において、CPU101が、ROM102に格納された診断プログラムを実行することにより、診断部及び処理負荷演算部として機能する。
図3は、本実施形態に係る電動パワーステアリング装置を制御するコントロールユニットの機能的な構成を示す機能ブロック図である。図3を用いて、電動パワーステアリング装置100の制御を説明する。図3に示すように、コントロールユニット30には、トルク制御部30a、電流制御部30b、トルク補償部30cが設けられている。
トルク制御部30aは、アシスト量演算部111、トルク微分器112及び位相補償部113を備える。アシスト量演算部111は、アシストマップを参照することで、今回の操舵トルクTr及び車速Vに対応したアシストトルクTmを算出する。なお、アシスト量演算部111は、車速Vが低速の場合は図1に示すハンドルホイール1の操作が軽くなり、車速Vが高速の場合はハンドルホイール1の操作が重くなるようにアシストトルクTmを算出することができる。
トルク微分器112は、操舵トルクTrの微分値を算出し、アシストトルクTmに加算することで、ハンドルホイール1の中立点付近における制御の応答性を高めることができる。位相補償部113は、操舵トルクTrの急激な変動を補償し、制御の安定性を維持するための位相補償を実行する。なお、位相補償部113にロバスト安定化補償部を設け、トルク検出系に含まれる慣性要素及びばね要素からなる共振系の共振周波数でのピーク値を除去し、制御の応答性及び安定性を阻害する共振周波数の位相のずれを補償するようにしてもよい。
電流制御部30bは、電流指令部114、減算器131、電流制御器132、デューティ演算器133、インバータ134及び電流センサ135を備える。電流指令部114は、トルク指令値Tdに対応した電流指令値Idを算出する。減算器131は、電流指令部114が算出した電流指令値Idと、電流センサ135が検出した電流検出値Imとの偏差を算出する。電流制御器132は、電流指令値Idと電流検出値Imとの偏差が0に近づくように、比例制御と微分制御と積分制御とのうち少なくとも一つを実行する。
デューティ演算器133は、電流指令値Idに近づくように制御された電流Irが生成されるように、インバータ134のゲート駆動信号のデューティ比を演算する。インバータ134は、デューティ演算器133が演算したデューティ比にしたがってPWM制御された電流Irを電動機20に出力する。電流センサ135は、電動機20に流れる電流Irを検出する。
トルク補償部30cは、電動機角速度推定部121、電動機角加速度推定部122、ヨーレート収れん性制御部123、電動機慣性補償部124、SAT(SAT:Self Aligning Torque)推定部125、摩擦補償部126、減算器127a、127b及び加算器128a、128bを備える。電動機角速度推定部121は、電動機20の回転角θに基づいて電動機20の角速度ωを推定する。電動機角加速度推定部122は、電動機20の角速度ωに基づいて電動機20の角加速度αを推定する。
ヨーレート収れん性制御部123は、電動機20の角速度ωに基づいて車両のヨーレートを推定し、ハンドルホイール1が振れ回る動作を制動することで、車両のヨーの収れん性を改善する。電動機慣性補償部124は、電動機20の角加速度αに基づいて電動機20の慣性力を推定し、電動機20の慣性力を補償することで、制御の応答性を高める。SAT推定部125は、操舵トルクTr、アシストトルクTm、電動機20の角速度ω及び角加速度αに基づいてセルフアライニングトルクTsを推定し、そのセルフアライニングトルクTsを反力としてアシストトルクTmを補償することで、ハンドル操作に路面情報を反映させる。摩擦補償部126は、操舵トルクTrに基づいてハンドルホイール1の操舵の抵抗となるトルク(摩擦トルク)Tfを推定し、摩擦トルクTfを補償することで、制御の応答性を高める。
減算器127aは、摩擦補償部126からの出力(摩擦トルク)TfからセルフアライニングトルクTsを減算する。減算器127bは、電動機慣性補償部124からの出力(慣性補償値)Tiから減算器127aの出力を減算する。加算器128aは、ヨーレート収れん性制御部123からの出力(ヨーレート補償値)Tyに減算器127bからの出力を加算する。加算器128bは、位相補償部113が位相補償したアシストトルクTmに、トルク微分器112からの出力と加算器128aからの出力とを加算する。
なお、図3のトルク制御部30a、電流制御部30b、トルク補償部30cのうちの電流指令部114、減算器131、電流制御器132及びデューティ演算器133は、図2に示す制御用コンピュータ110によって実現される。また、図3に示す電流制御部30bのうちのインバータ134は、図2のPWMコントローラ107及び電動機駆動回路15によって実現される。さらに、図3に示す電流制御部30bのうちの電流センサ135は、図2の電流検出回路16によって実現される。
図2に示すトルクセンサ10が検出した操舵トルクTrは、アシスト量演算部111、トルク微分器112及びSAT推定部125に入力されるとともに、図2の車速センサ12が検出した車速Vは、アシスト量演算部111に入力される。また、位置センサ25が検出した電動機20の回転角θは、電動機角速度推定部121に入力される。そして、アシスト量演算部111は、操舵トルクTr及び車速Vに基づいてアシストトルクTmを算出して、位相補償部113に出力する。位相補償部113は、アシストトルクTmを位相補償した後、その結果を加算器128bに出力する。また、操舵トルクTrがトルク微分器112に入力されると、トルク微分器112は、操舵トルクTrの微分値を算出して加算器128bに出力する。
電動機20の回転角θが電動機角速度推定部121に入力されると、電動機角速度推定部121は、電動機20の角速度ωを算出して、電動機角加速度推定部122、ヨーレート収れん性制御部123及びSAT推定部125に出力する。そして、電動機20の角速度ωが電動機角加速度推定部122に入力されると、電動機角加速度推定部122は、電動機20の角加速度αを算出して、電動機慣性補償部124及びSAT推定部125に出力する。電動機20の角速度ωがヨーレート収れん性制御部123に入力されると、ヨーレート収れん性制御部123は、車両のヨーレートを推定し、車両のヨーを収れんさせるヨーレート補償値Tyを加算器128aに出力する。
電動機20の角加速度αが電動機慣性補償部124に入力されると、電動機慣性補償部124は、電動機20の慣性力を推定して、電動機20の慣性力を補償する慣性補償値Tiを減算器127bに出力する。さらに、操舵トルクTr、アシストトルクTm、電動機20の角速度ω及び角加速度αがSAT推定部125に入力されると、SAT推定部125は、セルフアライニングトルクTsを推定して減算器127aに出力する。
なお、セルフアライニングトルクTsは、次の(1)式に示す運動方程式で求めることができる。
J・α+Fr・sin(ω)+Ts=Tm+Tr・・・(1)
この運動方程式において、ドライバがハンドルホイール1を操舵すると、操舵トルクTrが発生し、その操舵トルクTrにしたがって電動機20がアシストトルクTmを発生する。その結果、車輪が転舵され、セルフアライニングトルクTsが反力として発生する。その際、電動機20の慣性J及びステアリング機構に存在する摩擦(静摩擦)力Frによってハンドルホイール1の操舵の抵抗となるトルクが生じる。これらの力の釣り合いを考えると、(1)式の運動方程式が得られる。
ここで、(1)式の初期値を0としてラプラス変換し、Tsについて解くと、次の(2)式に示すように、セルフアライニングトルクTsを求めることができる。なお、(s)はラプラス演算子を意味する。
Ts(s)=Tm(s)+Tr(s)−J・α(s)−Fr・sin(ω(s))・・・(2)
減算器127aは、摩擦トルクTfからセルフアライニングトルクTsを減算し、その結果を減算器127bに出力する。減算器127bは、慣性補償値Tiから減算器127aの出力を減算し、その減算結果を加算器128aに出力する。そして、加算器128aは、減算器127bからの出力とヨーレート補償値Tyとを加算し、加算器128bに出力する。加算器128bは、位相補償部113が位相補償したアシストトルクTmとトルク微分器112からの出力と加算器128aからの出力とを加算することでトルク指令値Tdを算出し、電流指令部114に出力する。
そして、電流指令部114は、トルク指令値Tdに対応した電流指令値Idを算出し、減算器131に出力する。また、電流センサ135が検出した電流検出値Imは、減算器131に出力される。そして、減算器131は、電流指令値Idと電流検出値Imとの偏差を算出し、電流制御器132に出力する。また、電流制御器132は、電流指令値Idと電流検出値Imとの偏差が0に近づくように電流制御値を算出し、デューティ演算器133に出力する。デューティ演算器133は、電流制御器132から出力された電流制御値に基づいてパルス信号のデューティ比を演算し、インバータ134に出力する。そして、インバータ134は、デューティ演算器133が演算したデューティ比に基づいてPWM制御された電流Irを生成し、電動機20に出力することで、トルク指令値Tdに対応したトルクを電動機20に発生させる。
図4は、本実施形態に係る電動パワーステアリング装置を制御するコントロールユニットが備える記憶装置の診断処理を実行するための機能構成図である。ROM102は、情報を格納する記憶領域(ROM記憶領域)1020を有している。ROM記憶領域1020には、電動パワーステアリング装置100の制御用コンピュータプログラムや診断用コンピュータプログラムが格納されている。本実施形態において、ROM記憶領域1020は、複数のエリアA、B、C、D、E、F、G、H・・・に分割されている。
それぞれのエリアは、電動パワーステアリング装置の制御における所定の処理単位毎に分割され、それぞれのエリアに、前記処理単位を実現するためのコンピュータプログラムやデータ等が格納される。本実施形態では、電動パワーステアリング装置100の制御に必要な機能(制御機能)毎に分割され、それぞれのエリアに、前記機能を実現するためのコンピュータプログラムやデータ等が格納される。なお、本実施形態においては、処理単位に、電動パワーステアリング装置100の診断に必要な処理(診断処理)や機能(診断機能)を含めてもよい(以下同様)。例えば、エリアAは診断機能、エリアBはトルク微分機能、エリアCは車速テーブル、エリアDは位相補償機能、エリアEは収れん補償機能、エリアFは慣性補償機能、エリアGはSAT推定機能、エリアHは摩擦補償機能に対応する。ここで、エリアとは、ROM記憶領域1020やRAM記憶領域1030において、複数の所定数のビットからなる領域である。
また、RAM103は、情報を格納する記憶領域(RAM記憶領域)1030を有している。RAM記憶領域1030は、CPU101がROM102に格納されたコンピュータプログラムやデータを用いて電動パワーステアリング装置100の制御等を実行する際のワーキングエリアとして使用される。本実施形態において、RAM記憶領域1030は、複数のエリアa、b、c、d、e、f、g、h・・・に分割されている。本実施形態では、それぞれのエリアは、電動パワーステアリング装置100の制御機能毎に分割される。そして、CPU101が前記機能を実現するためのコンピュータプログラムやデータをROM102から読み出して実行する際のワーキングエリアとして、それぞれのエリアが使用される。
CPU101は、ROM102に格納されている制御プログラムを読み込んで実行することにより、CPU101内に制御部1010を実現する。また、CPU101は、ROM102に格納されている診断プログラムを読み込んで実行することにより、CPU101内に診断部1011及び処理負荷演算部1012を実現する。ここで、制御部1010は、電動パワーステアリング装置100を制御するものであり、トルク微分機能、位相補償機能、収れん補償機能等の制御機能を所定のタイミングで実行することにより、電動パワーステアリング装置100に操舵の補助(操舵補助)を実現させる。
処理負荷演算部1012は、電動パワーステアリング装置100の制御において、制御の処理負荷に基づいて複数のエリアから診断対象のエリアを選択し、診断部1011に、選択したエリアを診断させる。
診断部1011は、処理負荷演算部1012の指示に基づいて、ROM102のROM記憶領域1020やRAM103のRAM記憶領域1030の分割された複数のエリアのうち、制御の処理負荷に基づいて複数のエリアから診断対象として選択されたエリアを診断する。診断部1011が実行する診断処理は、ROM102については、例えば、SUMチェックやパリティチェック、SUMチェックとパリティチェックとを組み合わせたチェック等がある。また、RAM103について診断部1011が実行する診断処理には、例えば、所定のデータを書き込んで、書き込んだデータを読み出し、読み出したデータが書き込んだ所定のデータと一致するかを判定するリード/ライトチェックがある。
図5は、電動パワーステアリング装置の制御の手順を示すフローチャートである。電動パワーステアリング装置100を制御するにあたって、ステップS1において、コントロールユニット30の制御用コンピュータ110を構成するCPU101は、イグニッション(IG)がONであるか否かを判定する。イグニッションがONであるか否かは、図1に示すイグニッションスイッチ11から送信されるイグニッション信号の有無に基づいてCPU101が判定する。
ステップS1でNoと判定された場合、すなわち、CPU101がイグニッションはOFFであると判定した場合、CPU101はイグニッションの監視を継続する。ステップS1でYesと判定された場合、すなわち、CPU101がイグニッションはONであると判定した場合、CPU101は、ROM102に格納されている制御プログラムを読み込んで実行することにより、CPU101内に制御部1010を実現して、電動パワーステアリング装置100の制御機能を所定のタイミングで実行することにより、電動パワーステアリング装置100を制御する。
電動パワーステアリング装置100の制御において、本実施形態では、それぞれの制御機能を実行する前に、ROM102のROM記憶領域1020やRAM103のRAM記憶領域1030の診断が実行される。ステップS2において、CPU101は、ROM102に格納されている診断プログラムを読み込んで実行することにより、CPU101内に診断部1011及び処理負荷演算部1012を実現して、ROM102及びRAM103を診断する。次に、この診断の手順を説明する。
図6は、電動パワーステアリング装置の診断の手順を示すフローチャートである。電動パワーステアリング装置100を診断するにあたって、ステップS11において、CPU101が診断プログラムを読み込んで実行することにより実現される処理負荷演算部1012は、CPU101の制御の処理負荷を演算(算出)する。なお、CPU101の制御の処理負荷を算出する方法として、例えば、CPU101が処理負荷を算出するハードウェアを備えている場合には、CPU101のステータス情報を参照することで、CPU101の処理負荷を得ることができる。また、CPU101がそのようなハードウェアを備えていない場合には、例えば、電動パワーステアリング装置の制御における所定の処理単位毎にフラグやカウンタを設け、電動パワーステアリング装置の制御における所定の処理単位を実行する毎にフラグやカウンタを更新するようにし、これらのフラグやカウンタを参照することで、電動パワーステアリング装置の制御における所定の処理単位毎の実行状況を取得し、CPU101の制御の処理負荷を算出することができる。
次に、処理負荷演算部1012は、ステップS12において、制御の処理負荷の大きさを大中小の3段階で判定する。すなわち、処理負荷演算部1012は、処理負荷を所定の第1の閾値と比較し、処理負荷が第1の閾値以下の場合には、処理負荷の大きさを小と判定する。また、処理負荷演算部1012は、処理負荷が第1の閾値より大きく且つ所定の第2の閾値(第1の閾値<第2の閾値とする)以下の場合には、処理負荷の大きさを中と判定する。また、処理負荷演算部1012は、処理負荷が第2の閾値より大きい場合には、処理負荷の大きさを大と判定する。
図7は、処理負荷に基づいて診断対象として選択されるエリアを表した負荷別診断マップを示す図である。ステップS12で処理負荷の大きさが小と判定された場合、ROM102及びRAM103の全領域(Diag(診断)通信エリア、・・・、診断エリア、不揮発性メモリコントローラエリア、・・・、トルク微分エリア、車速テーブルエリア、位相補償エリア、収れん補償エリア、慣性補償エリア、SAT推定エリア、摩擦補償エリア、・・・を含む)が診断対象として選択される。また、ステップS12で処理負荷の大きさが中と判定された場合、ROM102及びRAM103の一部の領域であるA領域(診断エリア、不揮発性メモリコントローラエリア、・・・、トルク微分エリア、車速テーブルエリア、位相補償エリア、収れん補償エリア、慣性補償エリア、SAT推定エリア、摩擦補償エリア、・・・を含む)が診断対象として選択される。また、ステップS12で処理負荷の大きさが大と判定された場合、ROM102及びRAM103のA領域の一部の領域であるB領域(トルク微分エリア、車速テーブルエリア、位相補償エリア、収れん補償エリア、慣性補償エリア、SAT推定エリア、摩擦補償エリア、・・・を含む)が診断対象として選択される。このように、本実施形態においては、処理負荷が小さいほど広い領域(多くのエリア)を診断対象とし、処理負荷が大きいほど狭い領域(少ないエリア)を診断対象とする。
再び図6を参照すると、ステップS12で処理負荷の大きさが小と判定された場合、ステップS13において、処理負荷演算部1012は、ROM102及びRAM103の全領域のエリアを診断対象として選択し、選択したエリアを診断するように診断部1011に指示する。本実施形態では、ROM102の診断としてSUMチェックを行い、RAM103の診断としてリード/ライトチェックを行う。なお、ROM102とRAM103との診断順序は問わない。
図8は、本実施形態に係るROMの診断の処理手順例を示すフローチャートである。CPU101が診断プログラムを読み込んで実行することにより実現される診断部1011は、診断対象の各エリアに対して図8の処理を実行する。つまり、診断部1011は、診断対象のエリアの数だけ図8の処理を繰り返す。
図9は、ROM記憶領域1020の内容の概要を示す図である。図9に示すように、ROM記憶領域1020の各エリアA、B、・・・の末尾部には、バックアップ処理で用いられるバックアップ処理用の固定値(代替値)がそれぞれ記憶されている。本実施形態において、バックアップ処理は、固定値によって電動パワーステアリング装置100を制御する処理であり、例えば、トルク微分機能においては、図3に示すトルク微分器112の出力が固定値とされる。また、ROM記憶領域1020の各エリアA、B、・・・のバックアップ処理用の固定値の前には、各エリアのSUM値がそれぞれ記憶されている。
再び図8を参照すると、CPU101が診断プログラムを読み込んで実行することにより実現される診断部1011は、ステップS21において、エリア内の全データの加算値(エリア加算値)を算出する。
次に、診断部1011は、ステップS22において、ステップS21で算出したエリア加算値とSUM値が等しいか否かを判定する。
次に、診断部1011は、ステップS21で算出したエリア加算値とSUM値が等しい(ステップS22:Yes)と判定したら、ステップS23において、診断対象のエリアの機能は実行可能である(診断対象のエリアのROMに異常はない)という診断結果を制御部1010へ送信する。
また、診断部1011は、ステップS21で算出したエリア加算値とSUM値が等しくない(ステップS22:No)と判定したら、ステップS24において、バックアップ処理により診断対象のエリアの機能を実行するという診断結果を制御部1010へ送信する。
それぞれの制御機能の固定値は、ROM記憶領域1020の各エリアの末尾に格納されている。バックアップ処理によって制御機能を実行するという診断結果を受信した制御部1010は、制御機能の固定値をROM記憶領域1020のバックアップ処理によって実現される制御機能のエリアの末尾から取得し、その固定値を用いて電動パワーステアリング装置100を制御する。これによって、ROM102のROM記憶領域1020に不具合が発生した場合でも、電動パワーステアリング装置100による操舵補助が継続されるので、安全性が向上する。バックアップ処理によって制御機能が実現されたらSTARTに戻り、制御部1010は、イグニッションがOFFになるまで電動パワーステアリング装置100の制御を実行する。
バックアップ処理に対応するROM記憶領域1020やRAM記憶領域1030のエリア(本実施形態では、バックアップ処理を実現するための固定値が格納されるエリア)に不具合が発生する場合も考えられる。この場合、本実施形態において、制御部1010は、電動パワーステアリング装置100による操舵補助を中止、すなわち、電動パワーステアリング装置100による操舵力の補助を中止する。このように、不具合が発生した領域に格納されている情報(固定値)を用いないことによって、安全性を確保する。
図10は、本実施形態に係るRAMの診断の処理手順例を示すフローチャートである。CPU101が診断プログラムを読み込んで実行することにより実現される診断部1011は、診断対象の各エリアに対して図10の処理を実行する。つまり、診断部1011は、診断対象のエリアの数だけ図10の処理を繰り返す。
まず、CPU101が診断プログラムを読み込んで実行することにより実現される診断部1011は、ステップS31において、エリア内全域に55h(01010101b)を順次書き込む。
次に、診断部1011は、ステップS32において、エリア内全域からデータを順次読み出し、エリア内全域のデータが55hであるか否かを判定する。
次に、診断部1011は、エリア内全域のデータが55hである(ステップS32:Yes)と判定したら、ステップS33において、エリア内全域にAAh(10101010b)を順次書き込む。
次に、診断部1011は、ステップS34において、エリア内全域からデータを順次読み出し、エリア内全域のデータがAAhであるか否かを判定する。
次に、診断部1011は、エリア内全域のデータがAAhである(ステップS34:Yes)と判定したら、ステップS35において、診断対象のエリアの機能は実行可能である(診断対象のエリアのRAMに異常はない)という診断結果を制御部1010へ送信する。
また、診断部1011は、ステップS32でエリア内全域のデータが55hではない(ステップS32:No)と判定したら、または、ステップS34でエリア内全域のデータがAAhではない(ステップS34:No)と判定したら、ステップS36において、バックアップ処理により診断対象のエリアの機能を実行するという診断結果を制御部1010へ送信する。
再び図6を参照すると、ステップS12で処理負荷の大きさが中と判定された場合、ステップS14において、処理負荷演算部1012は、ROM102及びRAM103のA領域のエリアを選択し、選択したエリアを診断するように診断部1011に指示する。なお、ステップS14での診断は、診断対象エリアがA領域のエリアである点でステップS13と異なるが、診断の処理手順はステップS13と同様であるので、説明を省略する。
また、ステップS12で処理負荷の大きさが大と判定された場合、ステップS15において、処理負荷演算部1012は、ROM102及びRAM103のB領域のエリアを選択し、選択したエリアを診断するように診断部1011に指示する。なお、ステップS15での診断は、診断対象エリアがB領域のエリアである点でステップS13と異なるが、診断の処理手順はステップS13と同様であるので、説明を省略する。
以上によって、図5に示すステップS2における、制御の処理負荷に基づいて選択されたエリアのROM102及びRAM103の診断が終了し、制御部1010は、ステップS3に進んで制御機能を実行する。その後、STARTに戻り、制御部1010は、イグニッションがOFFになるまで電動パワーステアリング装置100の制御を実行する。
上記説明では、診断部1011が制御の処理負荷に基づいてROM記憶領域1020やRAM記憶領域1030から選択されたエリアを診断したが、本実施形態ではこれに限定されるものではない。例えば、制御の処理負荷に基づいてROM記憶領域1020やRAM記憶領域1030から選択されたエリアであり、かつその制御機能に対する入力値が前回の実行時と今回の実行時とで異なる場合にのみ、診断部1011がROM記憶領域1020やRAM記憶領域1030を診断してもよい。このようにすれば、前回と今回とで入力値が同じ場合には診断を実行しないので、診断に要する時間を短縮できるとともに、CPU101の処理負荷を軽減できる。
本実施形態では、電動パワーステアリング装置100の制御機能毎にROM記憶領域1020及びRAM記憶領域1030を分割し、これらの診断単位を制御機能毎としている。ここで、制御機能とは、入力を加工して出力することにより、電動パワーステアリング装置100の制御における所定の役割(例えば、トルクを微分する、位相を補償する、電動機の角速度を推定する等)を実現するものをいう。
制御機能は、例えば、微分や積分、フィルタリング等の処理を組み合わせて実現される。このため、制御機能を構成する処理を処理単位として、それぞれの処理に対応したエリアにROM記憶領域1020及びRAM記憶領域1030を分割してもよい。また、電動パワーステアリング装置100の制御ブロックを処理単位とし、それぞれの制御ブロックに対応したエリアにROM記憶領域1020及びRAM記憶領域1030を分割してもよい。ここで、制御ブロックは、複数の制御機能が集まったものであり、例えば、図3に示すトルク制御部30a、電流制御部30b等である。
以上、本実施形態では、記憶装置の記憶領域を、電動パワーステアリング装置の制御機能に対応した複数のエリアに分割し、制御の処理負荷に基づいて複数のエリアから診断対象のエリアを選択し、選択したエリアを診断する。これによって、診断を実行する処理装置の処理負荷を低減でき、診断及び/又は制御のリアルタイム性を向上することができる。さらに、それぞれの制御機能よりも処理手順を簡略にしたバックアップ処理を準備して記憶装置に格納しておき、制御機能に対応するエリアに不具合が発生した場合には、不具合が発生したエリアは使用せずにバックアップ処理を実行する。これによって、電動パワーステアリング装置による操舵補助が継続されるので、安全性が向上する。