(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024171319
(43)【公開日】2024-12-11
(54)【発明の名称】モータ制御装置、モータ制御方法、およびプログラム
(51)【国際特許分類】
H02P 29/028 20160101AFI20241204BHJP
【FI】
H02P29/028
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2024068549
(22)【出願日】2024-04-19
(31)【優先権主張番号】P 2023088046
(32)【優先日】2023-05-29
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】523207386
【氏名又は名称】NSKステアリング&コントロール株式会社
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】三浦 友博
(72)【発明者】
【氏名】高見澤 秀久
【テーマコード(参考)】
5H501
【Fターム(参考)】
5H501AA20
5H501BB08
5H501DD01
5H501GG05
5H501JJ03
5H501JJ04
5H501JJ17
5H501JJ26
5H501LL32
5H501LL35
5H501LL52
5H501MM09
5H501MM11
(57)【要約】
【課題】コストを抑えつつ、比較的簡易なソフトウェア構成にて、安全にモータ制御を継続することが可能な構成を提供する。
【解決手段】4つのコアが搭載された処理ユニットを用いて、モータを制御するモータ制御装置であって、前記4つのコアに対し、それぞれが2つのコアから構成される2つのコアセットが設定され、当該2つのコアセットの監視を行う監視部と、前記2つのコアセットに対して、前記モータを制御するための複数の処理を割り当てて実行させる制御部と、を有し、前記制御部は、前記監視部にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
4つのコアが搭載された処理ユニットを用いて、モータを制御するモータ制御装置であって、
前記4つのコアに対し、それぞれが2つのコアから構成される2つのコアセットが設定され、当該2つのコアセットの監視を行う監視部と、
前記2つのコアセットに対して、前記モータを制御するための複数の処理を割り当てて実行させる制御部と、
を有し、
前記制御部は、前記監視部にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる、ことを特徴とするモータ制御装置。
【請求項2】
前記制御部は、前記監視部にて前記2つのコアセットのうちの一方のコアセットにて異常を検知した後、更に他方のコアセットにて異常を検知した場合、前記4つのコアによる前記モータの制御を停止させる、ことを特徴とする請求項1に記載のモータ制御装置。
【請求項3】
前記制御部は、前記監視部にてコアセットの異常を検知した場合、当該コアセットを構成する2つのコアの処理を停止させる、ことを特徴とする請求項1に記載のモータ制御装置。
【請求項4】
前記複数の処理は、電流指令値演算処理、電流制御処理、および故障診断処理を含む、ことを特徴とする請求項1に記載のモータ制御装置。
【請求項5】
前記制御部は、前記2つのコアセットのうちの一方に前記電流制御処理を割り当て、他方のコアセットに前記電流指令値演算処理及び前記故障診断処理を割り当てる、ことを特徴とする請求項4に記載のモータ制御装置。
【請求項6】
前記制御部は、前記複数の処理の処理周期を変化させる場合に、変化後の処理周期に対応した制御パラメータに切り替える、ことを特徴とする請求項1に記載のモータ制御装置。
【請求項7】
前記制御部は、前記変化後の処理周期に対応して前記複数の処理にて用いられる過去値の再計算を行う、ことを特徴とする請求項6に記載のモータ制御装置。
【請求項8】
前記制御部は、処理周期の変化前の前記過去値と、当該処理周期の変化後の前記過去値が固定比率であることを用いて、前記過去値の再計算を行う、ことを特徴とする請求項7に記載のモータ制御装置。
【請求項9】
前記制御部は、処理周期の変化前の前記過去値と、当該処理周期の変化後の前記過去値との比率として、処理周期の変化前の前記過去値に基づく指標値と関連して規定される変動比率を用いて、前記過去値の再計算を行う、ことを特徴とする請求項7に記載のモータ制御装置。
【請求項10】
前記モータ制御装置は、電動パワーステアリング装置、または、電動アクチュエータ装置に用いられる、ことを特徴とする請求項1に記載のモータ制御装置。
【請求項11】
4つのコアが搭載された処理ユニットを用いて、モータを制御するモータ制御方法であって、
前記4つのコアに対し、それぞれが2つのコアから構成される2つのコアセットが設定され、当該2つのコアセットの監視を行う監視工程と、
前記2つのコアセットに対して、前記モータを制御するための複数の処理を割り当てて実行させる制御工程と、
を有し、
前記制御工程において、前記監視工程にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる、ことを特徴とするモータ制御方法。
【請求項12】
コンピュータに、
処理ユニットに搭載された4つのコアに対し、それぞれが2つのコアから構成される2つのコアセットが設定され、当該2つのコアセットの監視を行う監視工程と、
前記2つのコアセットに対して、モータを制御するための複数の処理を割り当てて実行させる制御工程と、
を実行させ、
前記制御工程において、前記監視工程にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータ制御装置、モータ制御方法、およびプログラムに関する。
【背景技術】
【0002】
近年、様々な装置においてモータが用いられており、その一例として、車両の操舵に係るアシスト制御を行う電動パワーステアリング装置などがある。電動パワーステアリング装置に要求される機能の処理負荷は増加傾向にあり、これに伴って電動パワーステアリング装置が備える処理部の高性能化が求められる。また、電動パワーステアリング装置は、安全面を考慮し、各部位の冗長化が図られている。
【0003】
例えば、特許文献1では、電動パワーステアリング装置の処理部において、マイコンを2つ設け、装置の故障率を低下させることで車両に搭載されるモータの制御を安全に継続する構成が開示されている。また、特許文献2では、電動パワーステアリング装置の処理部として、4つのコアを備えるCPUが用いられ、4つのコアが2つの組に分けられてロックステップ方式による状態監視を行い、異常検知を行う構成が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第6166473号公報
【特許文献2】中国特許第108528523号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
冗長化に伴う安全性の向上が求められる一方、コスト面での対応も要求される。例えば、特許文献1のようにマイコンを2つ設けて2系統とする場合には、装置全体のコストが上昇してしまう。また、特許文献2では、4つのコアを有する1つのマイコンを用い、4つのコアを2系統に分割して各系統の制御を行っている。ここでの各コアセットは対応する系統の制御のために独立して同じ処理を行っており、これらを連携させて電動パワーステアリング装置の制御性能をより向上させる場合には、ソフトウェアの構造が複雑になってしまう。
【0006】
上記課題を鑑み、本発明は、コストを抑えつつ、比較的簡易なソフトウェア構成にて、安全にモータ制御を継続することが可能な構成を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために本発明は以下の構成を有する。すなわち、4つのコアが搭載された処理ユニットを用いて、モータを制御するモータ制御装置は、
前記4つのコアに対し、それぞれが2つのコアから構成される2つのコアセットが設定され、当該2つのコアセットの監視を行う監視部と、
前記2つのコアセットに対して、前記モータを制御するための複数の処理を割り当てて実行させる制御部と、
を有し、
前記制御部は、前記監視部にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる。
【0008】
また、本発明の別の形態は以下の構成を有する。すなわち、4つのコアが搭載された処理ユニットを用いて、モータを制御するモータ制御方法は、
前記4つのコアに対し、それぞれが2つのコアから構成される2つのコアセットが設定され、当該2つのコアセットの監視を行う監視工程と、
前記2つのコアセットに対して、前記モータを制御するための複数の処理を割り当てて実行させる制御工程と、
を有し、
前記制御工程において、前記監視工程にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる。
【0009】
また、本発明の別の形態は以下の構成を有する。すなわち、プログラムは、
コンピュータに、
処理ユニットに搭載された4つのコアに対し、それぞれが2つのコアから構成される2つのコアセットが設定され、当該2つのコアセットの監視を行う監視工程と、
前記2つのコアセットに対して、モータを制御するための複数の処理を割り当てて実行させる制御工程と、
を実行させ、
前記制御工程において、前記監視工程にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる。
【発明の効果】
【0010】
本発明により、コストを抑えつつ、比較的簡易なソフトウェア構成にて、安全にモータ制御を継続することが可能となる。
【図面の簡単な説明】
【0011】
【
図1A】本発明の一実施形態に係る電動パワーステアリング装置の処理部周りの構成例を示すブロック図。
【
図1B】本発明の一実施形態に係る電動パワーステアリング装置の処理部周りの構成例を示すブロック図。
【
図2A】比較例としての従来構成に係る電動パワーステアリング装置の処理部周りの構成例を示すブロック図。
【
図2B】比較例としての従来構成に係る電動パワーステアリング装置の処理部周りの構成例を示すブロック図。
【
図3】本発明の一実施形態に係るアシスト制御の流れを説明するための概略図。
【
図4A】本発明の一実施形態に係るコア異常検知前の処理割り当てのタイミングチャート。
【
図4B】本発明の一実施形態に係るコア異常検知後の処理割り当てのタイミングチャート。
【
図5A】本発明の一実施形態に係るコア異常検知前の処理割り当てのタイミングチャート。
【
図5B】本発明の一実施形態に係るコア異常検知後の処理割り当てのタイミングチャート。
【
図6A】比較例としての従来構成に係る処理割り当てのタイミングチャート。
【
図6B】比較例としての従来構成に係る処理割り当てのタイミングチャート。
【
図6C】比較例としての従来構成に係る処理割り当てのタイミングチャート。
【
図6D】比較例としての従来構成に係る処理割り当てのタイミングチャート。
【
図6E】比較例としての従来構成に係る処理割り当てのタイミングチャート。
【
図7】本発明の一実施形態に係る切り替え処理のフローチャート。
【
図8A】本発明の一実施形態に係る1次フィルタを示すブロック線図。
【
図8B】本発明の一実施形態に係る2次フィルタを示すブロック線図。
【
図9】1次LPF(固定比率)による制御状態のシミュレーション結果例を示すグラフ図。
【
図10】1次HPF(固定比率)による制御状態のシミュレーション結果例を示すグラフ図。
【
図11】2次LPF(固定比率)による制御状態のシミュレーション結果例を示すグラフ図。
【
図12】2次HPF(固定比率)による制御状態のシミュレーション結果例を示すグラフ図。
【
図13】1次LPF(変動比率)による制御状態のシミュレーション結果例を示すグラフ図。
【
図14】1次HPF(変動比率)による制御状態のシミュレーション結果例を示すグラフ図。
【
図15】2次LPF(変動比率)による制御状態のシミュレーション結果例を示すグラフ図。
【
図16】2次HPF(変動比率)による制御状態のシミュレーション結果例を示すグラフ図。
【
図17】変動比率を適用するためのテーブルの例を示すグラフ図。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態について図面などを参照して説明する。なお、以下に説明する実施形態は、本発明を説明するための一実施形態であり、本発明を限定して解釈されることを意図するものではなく、また、各実施形態で説明されている全ての構成が本発明の課題を解決するために必須の構成であるとは限らない。また、各図面において、同じ構成要素については、同じ参照番号を付すことにより対応関係を示す。
【0013】
また、同じ種類の複数の構成要素について説明する場合に、個別の構成要素に対して説明を要する場合には、参照番号に添え字(a,b,...)を付して示し、包括的に説明する場合には添え字を省略して示す。また、本明細書において、用語「第1」、「第2」といった表現は、他の構成要素と区別するために用いているに過ぎず、特定の構成要素に限定して解釈することを意図するものではない。したがって、このような表現は、適用する装置の構成等に応じて、適宜読み替えられてよい。
【0014】
<第1の実施形態>
以下、本発明の第1の実施形態について説明を行う。なお、本発明は、モータ制御に係る装置に広く適用可能であるが、本実施形態では、車両に搭載される電動パワーステアリング装置(EPS:Electric Power Steering)を例に挙げて説明する。
【0015】
[構成概要]
図1Aおよび
図1Bは、本実施形態に係るEPS1のモータ制御周りの構成例を示す概略図である。
図2Aおよび
図2Bは、比較例としての従来構成のEPS2のモータ制御周りの構成例を示す概略図である。
図1Aおよび
図1Bに示すように、本実施形態に係る処理ユニット102は、4つのコア103を有する、いわゆるクアッドコアにて構成されている。一方、従来構成に係る処理ユニット202は、2つのコア203を有する、いわゆるデュアルコアにて構成されている。したがって、ハードウェアに係る構成において、本実施形態に係るEPS1の構成と、従来構成のEPS2の構成の主な差異としては、処理ユニットの構成である。
【0016】
ここで示す例において、一部の部位を二重化(冗長化)することで、モータ制御に係る安全性を実現している。なお、
図1A、
図1B、
図2A、および
図2Bの構成は、本発明の特徴に着目して説明するために、一部の構成を省略している場合がある。そのため、EPSは、機構部などの更に別の部位を含んで構成されてよい。
【0017】
EPS1は、ECU(Electronic Control Unit)100、モータ110、操舵トルクセンサ120a,120b、およびモータ角センサ121a,121bを含んで構成される。操舵トルクセンサ120a,120b、およびモータ角センサ121a,121bは二重化されており、同じ対象の検知を行う。モータ110内部において、コイル111a,111bも二重化されており、例えば、2系統巻線により構成される。モータ110は、いわゆる三相永久磁石同期モータなどにより構成される。なお、制御対象であるモータ110の構成や二重化の構成は一例であり、適宜変更されてよい。
【0018】
ECU100は、例えば、EPS-ECUであり、本実施形態では、電源管理IC101、処理ユニット102、ドライバ106a,106bを含んで構成される。ドライバ106a,106bも、モータ110内の二重化に対応して二重化されている。電源管理IC101は、EPS1に対応した電源起動のシーケンスなどに係る電源制御を行う。
【0019】
処理ユニット102は、4つのコア103a,103b,103c,103dを搭載した、いわゆるクアッドコアのCPU(Central Processing Unit)である。本実施形態では、4つのコア103a,103b,103c,103dに対し、コア103a,103bをコアセット104aとし、コア103c,103dをコアセット104bとする。そして、監視回路105は、各コアからの信号を監視し、各コアセットにおいてロックステップ機能を用いて状態監視を行う。ロックステップ機能は、2つのコアのクロックを同期させながら、各コアにおいて同じ処理を実行させ、その処理結果が同じか否かに基づいて状態監視を行う機能である。2つのコアの処理結果が異なる場合には、それらのいずれか一方もしくは両方に異常が生じたものとして、異常検知が行われる。
【0020】
図1Aには示していないが、ECU100は更に、記憶装置などの周辺部品を含む。記憶装置は、半導体記憶装置、磁気記憶装置、および光学記憶装置のいずれかを備えてよい。記憶装置は、レジスタ、キャッシュメモリ、主記憶装置として使用されるROM(Read Only Memory)およびRAM(Random Access Memory)等のメモリを含んでよい。
【0021】
図1Aは、処理ユニット102における4つのコア103a~103dがいずれも正常に動作している状態を示す。これに対し、
図1Bは、処理ユニット102における4つのコア103a~103dのうち、コアセット104a側に異常が生じている状態を示す。通常、ロックステップ機能では、対となる2つのコアにおいて同じ処理を行った結果、その結果に差異が生じた場合、いずれのコアに異常が生じているかは特定できない。そのため、例えば、
図1Bに示すように、コア103aに異常が生じた場合には、コアセット104a側にて異常が発生していると特定される。
【0022】
図2Aに示すEPS2の構成例において、ECU200内の処理ユニット202の構成が、
図1Aの構成とは異なる。それ以外の二重化の構成(ドライバ205a,205bなど)等は、
図1Aと同等である。処理ユニット202は、2つのコア203a,203bを搭載した、いわゆるデュアルコアのCPUである。コア203a,203bをコアセットとし、監視回路204は、ロックステップ機能によりコアセットの異常監視を行う。
【0023】
図2Aは、処理ユニット202における2つのコア203a、203bがいずれも正常に動作している状態を示す。これに対し、
図2Bは、処理ユニット202における2つのコア203a、203bのコアセットに異常が生じている状態を示す。
図1Bの構成では、コアセット104a側にて異常が検知された場合でも、正常に動作しているコアセット104b側にてコアセット104aの処理を実行することで、処理ユニット102によるモータ制御、特にアシスト制御に係る処理を継続することが可能である。一方、
図2Bの構成では、ロックステップにより異常が検知された場合に、安全寄りの制御を考慮する場合には、処理ユニット202によるモータ制御、特にアシスト制御に係る処理を停止することが望ましい。
【0024】
本実施形態では、
図1Aおよび
図1Bに示すような構成に基づき、コア異常が発生した場合でも、安全にモータ制御を継続可能なように処理パターンの切り替えを行う。
【0025】
[モータ制御]
図3は、本実施形態に係るEPS1におけるモータ制御処理の流れを説明するための図である。本実施形態では、ECU100に対する入力としては、車両(不図示)の車速、実舵角、操舵角速度、目標舵角、操舵トルク、電源電圧などが用いられる。これらの情報は、操舵トルクセンサ120a,120b、モータ角センサ121a,121bや、車両側に設置された速度センサ(不図示)、車両側のECUなどから取得されてよい。
【0026】
本実施形態に係るモータ制御は、大きく分けて、電流指令値演算処理300、電流制御処理310、および故障診断処理320から構成される。なお、これらの分類は一例であり、更に他の処理が行われてよい。
【0027】
電流指令値演算処理300は、アシスト制御値演算処理301、フィードバック値演算処理302、電流指令値生成処理303を含んで構成される。アシスト制御値演算処理301は、車速、実舵角、操舵角速度、および操舵トルクを入力とし、アシスト制御に係るアシスト制御値を導出する。アシスト制御値は、例えば、トルク変動抑制制御量、基本アシスト制御量、およびハンドル戻し制御量などから導出されてよい。トルク変動抑制制御量は、操舵トルクの近似微分に基づいて算出されてよい。基本アシスト制御量は、操舵トルクと車速に対するアシストマップやフィルタリング処理に基づいて算出されてよい。ハンドル戻し制御量は、車速、舵角、舵角速度に対する変換テーブルやPID制御により算出されてよい。アシスト制御値は、運転者の操舵を補助する制御値である。フィードバック値演算処理302は、車速、実舵角、操舵角速度、操舵トルク、および目標舵角を入力とし、電流指令値に対するフィードバック値を算出する。例えば、車両が運転支援機能を提供可能な構成において、車両が車線内を走行するための目標舵角に実舵角が追従するように指令値を演算する。
【0028】
電流指令値生成処理303は、アシスト制御値演算処理301にて導出されたアシスト制御値と、フィードバック値演算処理302にて導出されたフィードバック値とに基づいて電流指令値を生成する。電流制御処理310は、電流指令値演算処理300にて導出された電流指令値に基づいて電流制御を行い、駆動電流をモータ110に出力する。モータ110側では、ECU100からの信号に基づく駆動電流に従って回転動作を行う。
【0029】
故障診断処理320は、操舵トルク、電源電圧、電流制御処理310による出力電流、および、モータ110による駆動状態(例えば、モータ角など)などに基づいて、故障診断を行う。故障診断処理320により行われる診断処理の種類や数は特に限定するものでは無い。本実施形態では、6種類の診断処理を例に挙げて説明する。
【0030】
[処理パターン]
(パターン1)
図4Aおよび
図4Bは、本実施形態に係るECU100の処理ユニット102における処理パターンを説明するためのタイミングチャートである。
図4Aは、4つのコア、すなわち、2つのコアセットがいずれも正常に動作している場合の処理パターンを示す。
図4Bは、4つのコアのうちのいずれか、すなわち、1つのコアセットに異常が検知された場合の処理パターンを示す。なお、図中の矢印は、信号の入出力の一部を示しており、一部は省略している。いずれも、ドライバ106a及びコイル111aの組とドライバ106b及びコイル111bの組から成る二重化された駆動回路の全ての駆動回路が正常であり、二重化されたコイル111a,111bの両方に通電する場合を例示している。
【0031】
図4Aおよび
図4Bにおいて、横軸は時間[μs]の経過を示す。
図4Aおよび
図4Bにおいて「A」は、
図3に示す処理のうち、電流指令値演算処理300に対応する。また、「C」は、
図3に示す処理のうち、電流制御処理310に対応する。また、「D」は、
図3に示す処理のうち、故障診断処理320に対応し、本実施形態では6つの診断処理を例に挙げ、「D1」~「D6」にて示す。診断処理としては、例えば、操舵トルクセンサ入力信号の範囲、操舵トルクセンサのクロス特性、電源電圧、モータ角センサ入力信号(sin信号・cos信号)の範囲、モータ角センサ入力信号(sin信号・cos信号)の大きさ(sin信号とcos信号の合成ベクトルの長さ)、3相電流検出値の総和が「0」であるか否かなどの異常診断などが含まれてよい。
【0032】
図4Aに示す正常時の例において、コア1とコア2がロックステップの対となるコアセットAを構成し、コア3とコア4がロックステップの対となるコアセットBを構成している。例えば、
図1A及び
図1Bでのコア103aとコア103bがコア1とコア2に対応し、コア103cとコア103dがコア3とコア4に対応してもよいし、
図1A及び
図1Bでのコア103aとコア103bがコア3とコア4に対応し、コア103cとコア103dがコア1とコア2に対応してよい。そして、コアセットAに電流制御処理310(「C」)が割り当てられ、コアセットAにより二重化された駆動回路が駆動される。コアセットBに電流指令値演算処理300(「A」)と、故障診断処理320(「D1」~「D6」)が割り当てられている。コアセットBの「A」で演算された電流指令値がコアセットAの「C」へ入力される。なお、各処理に要する処理時間は一例であり、これに限定するものではない。
【0033】
図4Bに示す異常時の例では、コアセットB側にてロックステップにより異常が検知された場合の処理パターンを示す。アシスト制御を継続するために、正常側であるコアセットA側にて3つの処理を実行する。この場合、正常時と同様の処理は実行できないため、各処理の処理周期の調整が行われる。なお、各処理に要する処理時間に変化は無いものとする。
図4Bの例では、電流制御処理310(「C」)の処理間隔が広がり、電流指令値演算処理300(「A」)の処理間隔が広がり、故障診断処理320(「D1」~「D6」)の実行タイミングも調整されている。
【0034】
より具体的には、正常時から異常時に変化した場合、以下のように処理周期が調整されている。
電流指令値演算処理300(「A」):500μs→1ms
電流制御処理310(「C」):100μs→250μs
故障診断処理320(「D1」~「D6」のすべて):1ms→1ms
【0035】
(パターン2)
図5Aおよび
図5Bは、本実施形態に係るECU100の処理ユニット102における別の処理パターンを説明するためのタイミングチャートである。
図5Aは、4つのコア、すなわち、2つのコアセットがいずれも正常に動作している場合の処理パターンを示す。
図5Bは、4つのコアのうちのいずれか、すなわち、1つのコアセットに異常が検知された場合の処理パターンを示す。パターン1と同様に、二重化されたコイル111a,111bの両方に通電する場合を例示している。
【0036】
図5Bに示す異常時の例では、コアセットB側にてロックステップにより異常が検知された場合の処理パターンを示す。
図4Bと同様、アシスト制御を継続するために、正常側であるコアセットA側にて3つの処理を実行する。
【0037】
より具体的には、正常時から異常時に変化した場合、以下のように処理周期が調整されている。
電流指令値演算処理300(「A」):1ms→1ms
電流制御処理310(「C」):100μs→250μs
故障診断処理320(「D1」~「D6」のすべて):1ms→1ms
電流制御処理310(「C」)の処理間隔が広がっているが、電流指令値演算処理300(「A」)と故障診断処理320(「D1」~「D6」)の処理間隔及び実行タイミングに変化はない。パターン2のような構成にすることで、正常時から異常時に変化した場合の処理の変化を少なくすることできる。
【0038】
更に、
図6A~
図6Eは、比較例としての従来構成において1つのコアセットにてドライバ106a及びコイル111aの組とドライバ106b及びコイル111bの組から成る二重化された駆動回路のうち一方の組のみを駆動するさせる場合の処理パターンの例を示す。
図6A~
図6Eでは、コア1及びコア2で一方の組を駆動する処理パターンのみを示している。コア3及びコア4で他方の組を駆動する処理パターンは同様の処理パターンであるため省略している。また、一方の組の駆動を1つのコアセットで行うため、パターン1及びパターン2の処理時間の半分が処理時間として示されている。各図における処理周期は以下の通りである。なお、
図6A~
図6Eでは、一部記載を省略しているが、故障診断処理320は6つで1つの周期として示す。
【0039】
(
図6Aの場合の処理パターンの処理周期)
電流指令値演算処理300(「A」):350μs
電流制御処理310(「C」):175μs
故障診断処理320(6つの「D」):700μs
【0040】
(
図6Bの場合の処理パターンの処理周期)
電流指令値演算処理300(「A」):450μs
電流制御処理310(「C」):150μs
故障診断処理320(6つの「D」):900μs
【0041】
(
図6Cの場合の処理パターンの処理周期)
この構成の場合、電流指令値演算処理300(「A」)を2つの処理に分割して実行させている。
電流指令値演算処理300(2つの「A」):500μs
電流制御処理310(「C」):100μs
故障診断処理320(6つの「D」):1ms
【0042】
(
図6Dの場合の処理パターンの処理周期)
この構成の場合、電流指令値演算処理300(「A」)を2つの処理に分割して実行させている。
電流指令値演算処理300(「A」):1ms
電流制御処理310(「C」):100μs
故障診断処理320(6つの「D」):1ms
【0043】
(
図6Eの場合の処理パターンの処理周期)
電流指令値演算処理300(「A」):375μs
電流制御処理310(「C」):125μs
故障診断処理320(6つの「D」):750μs
【0044】
一方のコアセットの異常検知時には、正常側のコアセットで対応する一組の駆動回路を駆動する。このときの処理パターンは、両方のコアセットがともに正常なときの処理パターンと同じである。
【0045】
両方のコアセットがともに正常なときの処理パターンである
図4Aと
図6Bを比較すると、電流指令値演算処理300(「A」)の周期に関しては従来構成の方が本発明の実施形態よりも短いが、電流制御処理310(「C」)の周期に関しては本発明の実施形態の方が短く、制御性が高い。
【0046】
両方のコアセットがともに正常なときの処理パターンである
図5Aと
図6Dを比較すると、各処理の処理周期は同じであるが、電流指令値演算処理300(「A」)を2つの処理に分割しているため、ソフトウェア構成が複雑となっている。さらに従来構成においては、一方のコアセットの異常検知時に二つの組の駆動回路が共に正常であるにも関わらず一組しか駆動しないため、アシスト力が低下する問題がある。一方のコアセットの異常検知時に二つの組の駆動回路が共に駆動するためには、例えば
図5Bのような構成にする必要があり、ソフトウェア構成の変更が大規模になる問題が発生する。
【0047】
一方のコアセットに制御周期の高速化が求められる電流制御処理310(「C」)を割り当て、他方のコアセットに残りの処理を割り当てることにより、ソフトウェア構成が簡素で且つ制御性の高い制御装置を得ることが可能となる。また、コアセットが正常時と異常時とで、ソフトウェア構成の変更が少なくてすむ利点もある。
【0048】
[制御処理]
図7は、本実施形態に係るECU100の処理ユニット102における処理のフローチャートである。本処理フローは、処理ユニット102における4つのコア103a~103d、および監視回路105が連携して行うことで実行される。また、
図1Aに示したように予め4つのコア103a~103dに対して、コアセット104a,104bが規定され、これらにおいてロックステップによる状態監視が行われているものとする。本処理フローは、例えば、EPS1が搭載されている車両の動作が開始した際に、それに連動して開始されてもよい。
【0049】
S701にて、処理ユニット102は、制御に係る各種信号を取得する。ここで取得される信号は、
図3に示したように、車速、実舵角、操舵角速度、目標舵角、操舵トルク、電源電圧などが含まれる。また、本実施形態では、各部位が二重化されており、入力される信号も二重化して取得される。二重化されている各種信号の扱いは特に限定するものでは無いが、例えば、センサ等に異常が生じた場合には、正常側のセンサからの信号のみを用いてよい。
【0050】
S702にて、処理ユニット102は、予め規定された正常時の処理パターンに基づいて、各コアセットによる並列処理を実行する。例えば、
図4Aや
図5Aに示すような処理パターンに基づいて、各コアセットによる処理を実行する。
【0051】
S703にて、処理ユニット102は、S702の処理結果に基づいて、モータ110の制御を実行する。
【0052】
S704にて、処理ユニット102は、故障診断処理による故障を検知したか否かを判定する。本実施形態では6つの故障診断を行うため、これらのいずれかにて故障を検知した場合(S704にてYES)、処理ユニット102の処理はS705へ進む。一方、故障を検知していない場合(S704にてNO)、処理ユニットの処理はS706へ進む。
【0053】
S705にて、処理ユニット102は、検知した故障の内容に応じて、予め規定された対応処理を行う。例えば、処理ユニット102は、車両側のECUに対して故障検知を通知するような対応処理を行ってもよいし、EPS1によるアシスト制御を停止するような対応処理を行ってもよい。その後、処理ユニット102の処理は、S706へ進む。
【0054】
S706にて、処理ユニット102は、EPS1の制御を停止するか否かを判定する。ここでの停止は、例えば、車両が停止した場合であってもよいし、故障検知に対応して制御を停止する場合であってもよい。制御を停止する場合(S706にてYES)、処理ユニット102は本処理フローを終了する。制御を停止しない場合(S706にてNO)、処理ユニット102の処理はS707へ進む。
【0055】
S707にて、処理ユニット102は、いずれかのコアセットにおいて、ロックステップによるコア異常を検知したか否かを判定する。コア異常を検知した場合(S707にてYES)、処理ユニット102の処理はS708へ進む。コア異常を検知していない場合(S707にてNO)、処理ユニット102の処理はS701へ戻り、処理を繰り返す。
【0056】
S708にて、処理ユニット102は、正常側のコアセットの処理パターンを、予め規定された異常時の処理パターンに切り替える。例えば、
図4B、および
図5Bに示すような処理パターンに切り替える。
【0057】
S709にて、処理ユニット102は、正常側のコアセットにおいて、切り替え後の処理パターンにて処理を開始させる。このとき、処理ユニット102は、異常側のコアセットの処理を停止させる。
【0058】
S710にて、処理ユニット102は、制御に係る各種信号を取得する。ここで取得される信号は、
図3に示したように、車速、実舵角、操舵角速度、目標舵角、操舵トルク、電源電圧などが含まれる。
【0059】
S711にて、処理ユニット102は、正常側のコアセットの処理結果に基づいて、モータ110の制御を実行する。
【0060】
S712にて、処理ユニット102は、故障診断処理による故障を検知したか否かを判定する。本実施形態では6つの故障診断を行うため、これらのいずれかにて故障を検知した場合(S712にてYES)、処理ユニット102の処理はS713へ進む。一方、故障を検知していない場合(S712にてNO)、処理ユニットの処理はS714へ進む。
【0061】
S713にて、処理ユニット102は、検知した故障の内容に応じて、予め規定された対応処理を行う。例えば、処理ユニット102は、車両側のECUに対して故障検知を通知するような対応処理を行ってもよいし、EPS1によるアシスト制御を停止するような対応処理を行ってもよい。その後、処理ユニット102の処理は、S714へ進む。
【0062】
S714にて、処理ユニット102は、EPS1の制御を停止するか否かを判定する。ここでの停止は、例えば、車両が停止した場合であってもよいし、故障検知に対応して制御を停止する場合であってもよい。制御を停止する場合(S714にてYES)、処理ユニット102は本処理フローを終了する。制御を停止しない場合(S714にてNO)、処理ユニット102の処理はS715へ進む。
【0063】
S715にて、処理ユニット102は、正常側のコアセットにおいて、ロックステップによるコア異常を検知したか否かを判定する。正常側のコアセットにてコア異常を検知した場合(S715にてYES)、処理ユニット102の処理はS716へ進む。正常側のコア異常を検知していない場合(S715にてNO)、処理ユニット102の処理はS710へ戻り、処理を繰り返す。
【0064】
S716にて、処理ユニット102は、EPS1によるアシスト制御を停止するように制御する。この場合、4つのコアのうち、少なくとも2つのコアに異常が検知されたこととなり、安全性の観点からもアシスト制御を停止させる。そして、本処理フローを終了する。
【0065】
図7の処理フローにおいて、S701~S707の工程が、4つのコアのすべて、すなわち、2つのコアセットが正常に動作している場合の処理である。また、S708~S715の工程が、4つのコア、すなわち、2つのコアセットのうち1つのコアセットに異常が検知された場合の処理である。なお、ここでは説明を簡単にするため、フローチャートの一部にロックステップの判定処理を含めて示したが、これに限定するものではなく、ロックステップによる状態監視は並列的に実行され、ロックステップにて異常が検知された際に割り込み処理による呼び出しにて処理パターンの切り替えが行われてもよい。
【0066】
[制御パラメータの変更]
本実施形態では、異常検知時において、各処理の処理周期を変更する際に、これに応じた制御パラメータの変更(調整)も行われる。電動パワーステアリング装置において、制御パラメータの変更が行われない場合には、目的とする性能から乖離し、安定性を損なうことが想定される。その結果、例えば、意図しない振動や異音が発生し得る。
【0067】
本実施形態では、コアユニットに対する正常時の制御パラメータと異常時の制御パラメータをテーブルとして予め規定し、記憶部(不図示)に保持する。そして、異常検知時に処理周期を変更する際に、参照先のテーブルを切り替えることで制御パラメータを変更する。
【0068】
更に、本実施形態に係る電動パワーステアリング装置の各種機能では、現在値に加え、過去値を用いて制御を行うことを想定し、切り替え後の制御パラメータに対応して過去値も再計算を行った上で制御を継続させる。過去値を切り替え後の制御パラメータにて再計算を行わずに制御を継続した場合、例えば、電動パワーステアリング装置の安定性を損ない、意図しない振動や異音が発生し得る。また、再計算を行ったとしても、その精度が低い場合には、出力の変化が大きく、過度応答となり得る。
【0069】
処理周期の変更に伴って制御パラメータを変更する場合、異常発生前(正常時)の過去値(中間変数)から、切り替え後の制御パラメータに合致した過去値(中間変数)を再計算するための条件を規定することが重要である。一方、例えば、N次伝達関数の場合、N個の過去値を設定する必要があり、これらに対して個々の条件を規定することは困難である。
【0070】
本実施形態では、1次フィルタ(1次伝達関数)と2次フィルタ(2次伝達関数)を標準形とし、具体的なフィルタの過去値(以下、「フィルタ過去値」とも称する)の再計算の例を用いて説明する。なお、3次以上の次数のフィルタは、後述する1次フィルタおよび2次フィルタを組み合わせることで構成可能である。そのため、ここでの詳細な説明は省略する。
【0071】
以下の式(1)、式(2)は、連続時間系の伝達関数としての1次のLPF(Low Pass Filter)および2次のHPF(High Pass Filter)の例を示す。
【0072】
【0073】
また、以下の式(3)、式(4)は、連続時間系の伝達関数としての2次のLPFおよびHPFの例を示す。
【0074】
【0075】
連続時間系の伝達関数のフィルタは、双一次変換やそのほかの方法によって離散時間系の伝達関数のフィルタへ変換できる。以下の式(5)は、双一次変換の変換式を示す。上記の各連続時間系の伝達関数に以下の式(5)を適用して、z-1について整理することで離散時間系の伝達関数を求めることができる。
【0076】
【0077】
以下の式(6)、式(7)は、離散時間系の伝達関数のフィルタの例を示す。
【0078】
【0079】
図8A、
図8Bはそれぞれ、上記の式(6)、式(7)にて示す離散時間系の伝達関数のブロック線図である。ここでは、遅延要素z
-1が出力する値、すなわち、フィルタ過去値(中間変数)をwki(i=1,2)にて示している。本実施形態において、式(6)、式(7)に含まれる各制御パラメータは、正常時と異常時それぞれにおけるパラメータセットとしてテーブル(不図示)にて規定される。
【0080】
続いて、以下、本実施形態に係るフィルタ過去値(中間変数)の再計算において、各フィルタに対し、固定比率と変動比率を用いた再計算例について説明する。
【0081】
(再計算例1)
以下、フィルタ過去値の再計算例1について説明する。本例1では、変換において固定比率を用いて過去値の再計算を行う。
【0082】
定常状態になった場合、フィルタ過去値(中間変数)も定常値となり、N次フィルタのN個のフィルタ過去値(中間変数)は一致する。正常時と異常時の二つの処理周期における定常状態時のフィルタ過去値(中間変数)の比を用いることにより、異常検知前のフィルタ過去値(中間変数)から、異常検知後に使用する制御パラメータに合致したフィルタ過去値(中間変数)へ簡単に再計算が可能である。
【0083】
本例では、処理周期が異なる下記の2つの離散時間系の2次伝達関数を例に挙げて説明する。つまり、
図8Bに示すブロック線図を想定して説明を行う。以下の式(8)、式(9)に示すG
1(z)を正常時伝達関数とし、G
2(z)を異常時伝達関数とする。
【0084】
【0085】
この場合において、定常状態での比ratioは以下の式(10)のように表される。
【0086】
【0087】
上記の式(10)にて示す比ratioは、公知の最終値定理により導出することができる。つまり、
図8Bにおけるekのステップ入力に対する最終値(定常時値)は、上記の式(8)、式(9)に基づき下記の式(11)~式(13)のようにして求められる。
【0088】
【0089】
また、1次フィルタについても同様の方法にて、以下の式(14)のように比ratioを導出することができる。
【0090】
【0091】
そして、過去値(z
-1,z
-2)に対して、固定比率の比ratioを掛け合わせることで、過去値の再計算を行う。なお、以下で説明する
図9~
図12のグラフ図において、比ratioをCwとして示している場合がある。
【0092】
(シミュレーション例)
処理周期を変化させる際に、式(14)に示した1次フィルタの比ratioおよび式(10)に示した2次フィルタの比ratioを用いて過去値を再計算した場合の制御状態のシミュレーション結果の例を示す。ここでは、正常時の制御周期を100μsとし、故障時の制御周期を250μsとする。また、フィルタにおけるパラメータの例として、ξ=0.8、ωn=200π(:100Hz)を用いる。また、いずれの場合も、開始から1050μsのタイミングで故障による切り替えが生じたものとする(故障時間=1050μs)。
【0093】
また、入力として、ステップ入力と、ステップ入力に下記の式(15)、式(16)にて示されるLFP処理を施して得られた波形(以下、「ダンプステップ入力」とも称する)を用いた例を示している。
【0094】
【0095】
図9は、1次LPF(固定比率)による制御状態のシミュレーション結果例を示すグラフ図である。
図9に示す各グラフにおいて横軸は時間[s]を示し、縦軸は出力を示す。
図9(a)は、ステップ入力に対する出力を示している。
図9(b)は、
図9(a)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図9(c)は、ダンプステップ入力に対する出力を示している。
図9(a)や
図9(c)において、破線は正常時(以下、「Ts1」とも示す)の制御パラメータを用いて0[s]から制御した場合の制御結果例を示す。一点鎖線は異常時(以下、「Ts2」とも示す)の制御パラメータを用いて0[s]から制御した場合の制御結果例を示す。実線は本実施形態に係る構成による故障前後の制御結果例を示す。異常が発生した際には、出力が一点鎖線に示す曲線に近似することが求められる。
【0096】
図9(d)は、
図9(c)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図9(b)や
図9(d)において、3種類の実線はそれぞれ、故障前後の再計算結果を含む1次遅延要素z
-1の値、正常時(Ts1)の1次遅延要素z
-1の値および異常時(Ts2)の1次遅延要素z
-1の値の例を示す。3種類の破線はそれぞれ、故障前後の再計算結果を含む2次遅延要素z
-2の値、正常時(Ts1)の2次遅延要素z
-2の値および異常時(Ts2)の2次遅延要素z
-2による過去値の例を示す。異常が発生した際には、z
-1、z
-2の値が異常時(Ts2)に対して示される各曲線に近似することが求められる。なお、1次フィルタの例においては、2次遅延要素z
-2の値はフィルタ出力算出には関係しないが参考として示した。
【0097】
図9(b)、
図9(d)を参照すると、故障後のフィルタ過去値(中間変数)も、要求する曲線に近似していることから、再計算が良好に行われていることが分かる。また、
図9(a)、
図9(c)を参照すると、故障前後で出力の変動も見られないため、故障が生じた際に処理周期が切り替えられた場合でも適切に制御が継続されている。
【0098】
図10は、1次HPF(固定比率)による制御状態のシミュレーション結果例を示すグラフ図である。
図10に示す各グラフにおいて横軸は時間[s]を示し、縦軸は出力を示す。
図10(a)は、ステップ入力に対する出力を示している。
図10(b)は、
図10(a)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図10(c)は、ダンプステップ入力に対する出力を示している。
図10(d)は、
図10(c)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。各グラフの構成は、
図9と同様である。
【0099】
図10(b)、
図10(d)を参照すると、故障後のフィルタ過去値も、要求する曲線に近似していることから、再計算が良好に行われていることが分かる。また、
図10(a)、
図10(c)を参照すると、故障直後に少し出力の変動が生じているが挙動に影響がでるほどの変動ではなく、故障が生じた場合でも適切に制御が継続されている。
【0100】
図11は、2次LPF(固定比率)による制御状態のシミュレーション結果例を示すグラフ図である。
図11に示す各グラフにおいて横軸は時間[s]を示し、縦軸は出力を示す。
図11(a)は、ステップ入力に対する出力を示している。
図11(b)は、
図11(a)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図11(c)は、ダンプステップ入力に対する出力を示している。
図11(d)は、
図11(c)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。各グラフの構成は、
図9と同様である。
【0101】
図11(a)、
図11(c)を参照すると、故障直後から一定の間、出力値の低下が生じているが急激な変動ではなく、故障が生じた場合でも一定程度の精度にて制御が継続されている。
【0102】
図12は、2次HPF(固定比率)による制御状態のシミュレーション結果例を示すグラフ図である。
図12に示す各グラフにおいて横軸は時間[s]を示し、縦軸は出力を示す。
図12(a)は、ステップ入力に対する出力を示している。
図12(b)は、
図12(a)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図12(c)は、ダンプステップ入力に対する出力を示している。
図12(d)は、
図12(c)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。各グラフの構成は、
図9と同様である。
【0103】
図12(a)、
図12(c)を参照すると、故障直後から一定の間、出力値の増加が生じており、大きな変動となっている。
【0104】
図9~
図12のシミュレーション結果例を参照すると、1次LPF、1次HPF、2次LPFについては、固定比率を用いた上記の手法により、故障が生じた場合でも精度よく切り替えが行われ、適切な制御の継続が可能となる。一方、2次HPFについては、出力値の変動が大きくなるため、固定比率を用いた手法の適用は避けることが好ましい。なお、固定比率を用いた場合には、後述する変動比率を用いた場合に比べて処理負荷を抑えることができるという利点がある。
【0105】
(再計算例2)
以下、フィルタ過去値の再計算例2について説明する。本例2では、変換において変動比率を用いて過去値の再計算を行う。
【0106】
事前準備として、変動比率を適用するためのテーブルの作成を行う。まず、2つの伝達関数を用いてシミュレーションを行い、同時刻における過去値wk1N(k):z-1、wk2N(k):z-2を求める。Nは、2つの伝達関数を区別するための符号を示す。ここでは、正常時の伝達関数をN=1にて示し、異常時の伝達関数をN=2にて示す。中央値midwk1(k)を以下の式(17)を用いて求める。
【0107】
【0108】
また、以下の式(18)を用いて、2つの過去値の差分を中央値で正規化した指標値dltG(k)を求める。2つの過去値の中央値で正規化することで、フィルタ入力の大きさによる影響を排除している。過渡応答状態から定常状態の2つの過去値の差分は変化すること利用して状態を示す指標値となるdltG(k)を求めている。2つの過去値の中央値に代えて、過去値の大きさを示す二乗和や二乗和の平方根を用いてもよい。
【0109】
【0110】
更に、同時刻の過去値の比Gw1t(k)、Gw2t(k)をそれぞれ、以下の式(19)、式(20)を用いて求める。
【0111】
【0112】
そして、シミュレーションにより上記で算出されたdltG(k)とGw1t(k)とを対応付けたテーブル、および、dltG(k)とGw2t(k)とを対応付けたテーブルをそれぞれ構成し、保持する。例えば、フィルタにステップ入力、ダンプステップ入力を与え、当該入力毎にdltG(k)とGw1t(k)の関係と、dltG(k)とGw2t(k)の関係を求め、これらを平均化してテーブルを構成してよい。
図17にdltG(k)とGw1t(k)の関係、および、dltG(k)とGw2t(k)の関係を示すテーブルの構成例を示す。
図17において、dltG=0の場合の値は、上述した固定比率と同等の値となる。
【0113】
なお、変動比率を導出する場合、テーブルを用いた構成に限定するものではなく、シミュレーション結果に基づく近似式を用いてもよい。近似式を用いる場合には、当該近似式にdltG(i)を入力することで、dltG(i)に対応する変動比率の値が求められてよい。
【0114】
そして、制御時においては、処理周期を変更する際に以下の処理を行う。
【0115】
(1) 正常時フィルタによる正常な過去値wk11、wk21、およびwk31(:z-3)から時間変化率(単位時間当たりの変化量)を求め、当該時間変化率を利用して現在時刻(i)の過去値wk11t(i)とwk21t(i)を推定する。なお、wk31(:z-3)は、過去値wk11、wk21の線形補間により導出してよい。
【0116】
(2) 以下の式(21)を用いて、dltG(i)を算出する。
【0117】
【0118】
(3) dltG(i)をインデックスとして、
図17に示したようなdltG(k)とGw1t(k)とを対応付けたテーブル、および、dltG(k)とGw2t(k)とを対応付けたテーブルを参照し、過去値の再計算用の比Gw1、Gw2を導出する。すなわち、Gw1、Gw2はdltG(i)に応じた変動比率となる。
【0119】
(4) 異常時フィルタの過去値を以下の式(22)、式(23)のように設定する。
【0120】
【0121】
(5) wk12(i)とwk22(i)を異常時の伝達関数である上記の式(9)、異常時制御パラメータを反映した式(6)に適用してフィルタ出力を求め、次の周期用の過去値を更新する。次回の周期からは、上記の式(9)、式(6)を故障時の周期(本例では、250μs毎)に繰り返して演算する。
【0122】
(シミュレーション例)
上述した変動比率を用いて、処理周期を変化させた場合の制御状態のシミュレーション結果の例を示す。ここでは、正常時の制御周期を100μsとし、故障時の制御周期を250μsとする。また、フィルタにおけるパラメータの例として、ξ=0.8、ωn=200π(:100Hz)を用いる。また、いずれの場合も、開始から1050μsのタイミングで故障が生じたものとする。
【0123】
また、入力として、ステップ入力と、ステップ入力に下記のLFP処理を施して得られた波形(以下、「ダンプステップ入力」とも称する)を用いる。
【0124】
【0125】
図13は、1次LPF(変動比率)による制御状態のシミュレーション結果例を示すグラフ図である。
図13に示す各グラフにおいて横軸は時間[s]を示し、縦軸は出力を示す。
図13(a)は、ステップ入力に対する出力を示している。
図13(b)は、
図13(a)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図13(c)は、ダンプステップ入力に対する出力を示している。
図13(a)や
図13(c)において、破線は正常時(Ts1)の制御パラメータを用いて0[s]から制御した場合の制御結果例を示す。一点鎖線は異常時(Ts2)の制御パラメータを用いて0[s]から制御した場合の制御結果例を示す。実線は本実施形態に係る構成による故障前後の制御結果例を示す。異常が発生した際には、出力が一点鎖線に示す曲線に近似することが求められる。
【0126】
図13(d)は、
図13(c)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図13(b)や
図13(d)において、3種類の実線はそれぞれ故障前後の再計算結果を含む1次遅延要素z
-1の値、正常時(Ts1)の1次遅延要素z
-1の値および異常時(Ts2)の1次遅延要素z
-1の値の例を示す。3種類の破線はそれぞれ、故障前後の再計算結果を含む2次遅延要素z
-2の値、正常時(Ts1)の2次遅延要素z
-2の値および異常時(Ts2)の2次遅延要素z
-2による過去値の例を示す。異常が発生した際には、z
-1、z
-2の値が異常時(Ts2)に対して示される各曲線に近似することが求められる。なお、1次フィルタの例においては、2次遅延要素z
-2の値はフィルタ出力算出には関係しないが参考として示している。
【0127】
図13(b)、
図13(d)を参照すると、故障後のフィルタ過去値も、要求する曲線に近似していることから、再計算が良好に行われていることが分かる。また、
図13(a)、
図13(c)を参照すると、故障前後で出力の変動も見られないため、故障が生じた場合でも適切に制御が継続されている。
【0128】
図14は、1次HPF(変動比率)によるシミュレーション結果例を示すグラフ図である。
図14に示す各グラフにおいて横軸は時間[s]を示し、縦軸は出力を示す。
図14(a)は、ステップ入力に対する出力を示している。
図14(b)は、
図14(a)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図14(c)は、ダンプステップ入力に対する出力を示している。
図14(d)は、
図14(c)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。各グラフの構成は、
図13と同様である。
【0129】
図14(b)、
図14(d)を参照すると、故障後のフィルタ過去値も、要求する曲線に近似していることから、再計算が良好に行われていることが分かる。また、
図14(a)、
図14(c)を参照すると、
図14(c)に示すダンプステップ入力において故障直後に少し出力の変動が生じているが挙動に影響がでるほどの変動ではなく、故障が生じた場合でも適切に制御が継続されている。
【0130】
図15は、2次LPF(変動比率)による制御状態のシミュレーション結果例を示すグラフ図である。
図15に示す各グラフにおいて横軸は時間[s]を示し、縦軸は出力を示す。
図15(a)は、ステップ入力に対する出力を示している。
図15(b)は、
図15(a)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図15(c)は、ダンプステップ入力に対する出力を示している。
図15(d)は、
図15(c)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。各グラフの構成は、
図13と同様である。
【0131】
図15(b)、
図15(d)を参照すると、故障後のフィルタ過去値も、要求する曲線に近似していることから、再計算が良好に行われていることが分かる。また、
図15(a)、
図15(c)を参照すると、故障前後で出力の変動も見られないため、故障が生じた場合でも適切に制御が継続されている。
【0132】
図16は、2次HPF(変動比率)によるシミュレーション結果例を示すグラフ図である。
図16に示す各グラフにおいて横軸は時間[s]を示し、縦軸は出力を示す。
図16(a)は、ステップ入力に対する出力を示している。
図16(b)は、
図16(a)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。
図16(c)は、ダンプステップ入力に対する出力を示している。
図16(d)は、
図16(c)に対応して故障発生時の再計算結果を含むフィルタ過去値(中間変数)の遷移を示している。各グラフの構成は、
図13と同様である。
【0133】
図16(b)、
図16(d)を参照すると、故障後のフィルタ過去値も、要求する曲線に近似していることから、再計算が良好に行われていることが分かる。また、
図16(a)、
図16(c)を参照すると、
図16(c)に示すダンプステップ入力において故障直後に少し出力の変動が生じているが挙動に影響がでるほどの変動ではなく、故障が生じた場合でも適切に制御が継続されている。
【0134】
図13~
図16のシミュレーション結果を考慮すると、1次LPF、1次HPF、2次LPF、2次HPFのいずれにおいても、異常が生じた場合でも精度よく切り替えが行われ、適切な制御が可能となる。
【0135】
また、本願出願人は、ダンプステップ入力用のgの値(例えば、g=2、4、10)や、故障時間(例えば、故障時間=775、975、1210、3750、4000μs)などを変更しても上記と同様の傾向が得られることをシミュレーション結果として確認している。このことからも、本実施形態による構成において、異常が生じた場合に制御パラメータを切り替えることで、異常の発生前後の動作への影響を抑制することが可能となる。
【0136】
以上、本実施形態により、コストを抑えつつ、比較的簡易なソフトウェア構成にて、安全にモータ制御を継続することが可能となる。コアが正常時には、複数の処理を、2つのコアセットに分散させて実行させることにより、処理速度を向上させつつ、比較的シンプルな制御にて機能分散処理を実現することが可能となる。また、コアが異常時には、複数の処理を正常側のコアセットにて、処理周期を変化させて実行させることで、モータ制御を継続することが可能となる。
【0137】
<その他の実施形態>
上記の実施形態では、モータ制御装置の例として、EPSを例に挙げて説明した。しかし、本発明は他の装置にも適用可能であり、例えば、直動機構の電動アクチュエータ装置などモータを含む装置を対象としてもよい。また例えば、車両のブレーキを制御する電動アクチュエータ装置に用いてもよい。
【0138】
また、本発明において、上述した実施形態の機能を実現するためのプログラムやアプリケーションを、ネットワーク又は記憶媒体等を用いてシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。
【0139】
このように、本発明は上記の実施形態に限定されるものではなく、実施形態の各構成を相互に組み合わせることや、明細書の記載、並びに周知の技術に基づいて、当業者が変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。
【0140】
以上の通り、本明細書には次の事項が開示されている。
(1) 4つのコア(例えば、103a~103d)が搭載された処理ユニット(例えば、102)を用いて、モータ(例えば、110)を制御するモータ制御装置(例えば、100)であって、
前記4つのコアに対し、それぞれが2つのコアから構成される2つのコアセット(例えば、104a,104b)が設定され、当該2つのコアセットの監視を行う監視部(例えば、105)と、
前記2つのコアセットに対して、前記モータを制御するための複数の処理を割り当てて実行させる制御部(例えば、102、105)と、
を有し、
前記制御部は、前記監視部にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる、ことを特徴とするモータ制御装置。
この構成によれば、コストを抑えつつ、比較的簡易なソフトウェア構成にて、安全にモータ制御を継続することが可能となる。コアが異常時には、複数の処理を正常側のコアセットにて、処理周期を変化させて実行させることで、モータ制御を継続することが可能となる。
【0141】
(2) 前記制御部は、前記監視部にて前記2つのコアセットのうちの一方のコアセットにて異常を検知した後、更に他方のコアセットにて異常を検知した場合、前記4つのコアによる前記モータの制御を停止させる、ことを特徴とする(1)に記載のモータ制御装置。
この構成によれば、2つのコアセットにて異常を検知した場合には、モータ制御を停止させることにより、安全に動作させることが可能となる。
【0142】
(3) 前記制御部は、前記監視部にてコアセットの異常を検知した場合、当該コアセットを構成する2つのコアの処理を停止させる、ことを特徴とする(1)または(2)に記載のモータ制御装置。
この構成によれば、異常を検知した側のコアセットの処理を停止させ、無駄な処理の実行を抑制することが可能となる。
【0143】
(4) 前記複数の処理は、電流指令値演算処理、電流制御処理、および故障診断処理を含む、ことを特徴とする(1)から(3)のいずれかに記載のモータ制御装置。
この構成によれば、モータ制御に係る処理を考慮して、各コアセットに処理を割り当てることが可能となる。
【0144】
(5) 前記制御部は、前記2つのコアセットのうちの一方に前記電流制御処理を割り当て、他方のコアセットに前記電流指令値演算処理及び前記故障診断処理を割り当てる、ことを特徴とする(4)に記載のモータ制御装置。
この構成によれば、2つのコアセットに対して処理の内容に応じて割り当てを行い、処理の分担を行わせることが可能となる。
【0145】
(6) 前記制御部は、前記複数の処理の処理周期を変化させる場合に、変化後の処理周期に対応した制御パラメータに切り替える、ことを特徴とする(1)から(5)のいずれかに記載のモータ制御装置。
この構成によれば、異常の検知に伴って処理の周期を切り替えた場合であっても、適切に制御を継続することが可能となる。
【0146】
(7) 前記制御部は、前記変化後の処理周期に対応して、前記複数の処理にて用いられる過去値の再計算を行う、ことを特徴とする(6)に記載のモータ制御装置。
この構成によれば、異常の検知に伴って処理の周期を切り替えた場合であっても、切り替え後の処理周期に応じて、制御に用いられる過去値を適切に調整することが可能となる。
【0147】
(8) 前記制御部は、処理周期の変化前の過去値と、当該処理周期の変化後の過去値が固定比率であることを用いて、前記過去値の再計算を行う、ことを特徴とする(7)に記載のモータ制御装置。
この構成によれば、異常の検知に伴って処理の周期を切り替えた場合であっても、切り替え後の処理周期に応じて、制御に用いられる過去値を適切に調整することが可能となる。また、固定比率を用いるのでソフトウェア処理負荷を抑制することが可能となる。
【0148】
(9) 前記制御部は、処理周期の変化前の過去値と、当該処理周期の変化後の過去値との比率として、処理周期の変化前の過去値に基づく指標値(例えば、dltG(k))と関連して規定される変動比率を用いて、前記過去値の再計算を行う、ことを特徴とする(7)または(8)に記載のモータ制御装置。
この構成によれば、異常の検知に伴って処理の周期を切り替えた場合であっても、切り替え後の処理周期に応じて、制御に用いられる過去値を適切に調整することが可能となる。
【0149】
(10) 前記モータ制御装置は、電動パワーステアリング装置(例えば、1)、または、電動アクチュエータ装置に用いられる、ことを特徴とする(1)から(9)のいずれかに記載のモータ制御装置。
この構成によれば、モータを利用する電動パワーステアリング装置や電動アクチュエータ装置への適用が可能である。
【0150】
(11) 4つのコア(例えば、103a~103d)が搭載された処理ユニット(例えば、102)を用いて、モータ(例えば、110)を制御するモータ制御方法であって、
前記4つのコアに対し、それぞれが2つのコアから構成される2つのコアセット(例えば、104a,104b)が設定され、当該2つのコアセットの監視を行う監視工程(例えば、S707)と、
前記2つのコアセットに対して、前記モータを制御するための複数の処理を割り当てて実行させる制御工程(例えば、S708)と、
を有し、
前記制御工程において、前記監視工程にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる、ことを特徴とするモータ制御方法。
この構成によれば、コストを抑えつつ、比較的簡易なソフトウェア構成にて、安全にモータ制御を継続することが可能となる。コアが異常時には、複数の処理を正常側のコアセットにて、処理周期を変化させて実行させることで、モータ制御を継続することが可能となる。
【0151】
(12) コンピュータ(例えば、100)に、
処理ユニット(例えば、102)に搭載された4つのコア(例えば、103a~103d)に対し、それぞれが2つのコアから構成される2つのコアセット(例えば、104a,104b)が設定され、当該2つのコアセットの監視を行う監視工程(例えば、S707)と、
前記2つのコアセットに対して、モータ(例えば、110)を制御するための複数の処理を割り当てて実行させる制御工程(例えば、S708)と、
を実行させ、
前記制御工程において、前記監視工程にて前記2つのコアセットのいずれかにて異常を検知した場合、異常を検知していない方のコアセットにて、前記複数の処理の処理周期を変化させて実行させる、ことを特徴とするプログラム。
この構成によれば、コストを抑えつつ、比較的簡易なソフトウェア構成にて、安全にモータ制御を継続することが可能となる。コアが異常時には、複数の処理を正常側のコアセットにて、処理周期を変化させて実行させることで、モータ制御を継続することが可能となる。
【符号の説明】
【0152】
1…EPS(Electric Power Steering)
100…ECU(Electronic Control Unit)
101…電源管理IC
102…処理ユニット
103a~103d…コア
104a,104b…コアセット
105…監視回路
106a,106b…ドライバ
110…モータ
111a,111b…コイル
120a,120b…操舵トルクセンサ
121a,121b…モータ角センサ
300…電流指令値演算処理
301…アシスト制御値演算処理
302…フィードバック値演算処理
303…電流指令値生成処理
310…電流制御処理
320…故障診断処理
330…駆動制御処理