(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-08
(45)【発行日】2025-01-17
(54)【発明の名称】車両制御装置
(51)【国際特許分類】
B60L 3/04 20060101AFI20250109BHJP
B60L 50/60 20190101ALI20250109BHJP
B60L 58/10 20190101ALI20250109BHJP
B60L 3/00 20190101ALI20250109BHJP
H02P 29/028 20160101ALI20250109BHJP
【FI】
B60L3/04 D
B60L50/60
B60L58/10
B60L3/00 S
H02P29/028
(21)【出願番号】P 2021146222
(22)【出願日】2021-09-08
【審査請求日】2024-02-14
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100087480
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】鈴木 辰明
【審査官】橋本 敏行
(56)【参考文献】
【文献】特開2018-083486(JP,A)
【文献】特開2018-061371(JP,A)
【文献】特開2019-201467(JP,A)
【文献】特開2007-016794(JP,A)
【文献】特開2014-017901(JP,A)
【文献】特開2006-020380(JP,A)
【文献】米国特許出願公開第2017/0120770(US,A1)
【文献】特開2018-122612(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60L 1/00-3/12
7/00-13/00
15/00-58/40
(57)【特許請求の範囲】
【請求項1】
車両を駆動する回転電機と、
前記回転電機と電気的に接続されたバッテリと、
前記バッテリの状態を監視し、前記バッテリの状態の監視結果から異常状態を検出する第1制御部と、
前記回転電機の出力を制御する第2制御部と、
前記バッテリの状態の監視結果に基づき前記回転電機の出力を前記第2制御部に指示し、前記第1制御部が前記バッテリの異常を検出した場合に前記回転電機の動作の制限を実行する第3制御部と有し、
前記第1制御部は、前記バッテリの状態の監視結果に基づいて、前記バッテリが異常状態であること、及び前記第3制御部の異常状態のために前記回転電機の動作の制限が実行されていないことを検出したとき、前記第2制御部に前記回転電機の動作の停止を指示し、
前記第3制御部は、前記第3制御部の正常状態または異常状態を示す状態信号を前記第2制御部に出力し、
前記第2制御部は、
前記状態信号が前記第3制御部の異常状態を示す場合、前記第1制御部からの前記回転電機の停止の指示に従って前記回転電機の動作を停止させ、
前記状態信号が前記第3制御部の正常状態を示す場合、前記第1制御部からの前記回転電機の停止の指示に従わずに前記回転電機の動作を継続させる、
車両制御装置。
【請求項2】
前記第2制御部は、前記状態信号が所定の規則性を有している場合、前記第3制御部が正常状態であると判定し、前記状態信号が前記所定の規則性を有していない場合、前記第3制御部が異常状態であると判定する、
請求項1に記載の車両制御装置。
【請求項3】
前記第3制御部は、正常状態である場合、一定周期で所定の数値パタンを繰り返す前記状態信号を出力する、
請求項2に記載の車両制御装置。
【請求項4】
前記第3制御部は、前記第1制御部が前記バッテリの異常を検出した場合に前記回転電機と前記バッテリの間の電気的な接続を切断することにより前記回転電機の動作の制限を実行する、
請求項1乃至3の何れかに記載の車両制御装置。
【請求項5】
前記第1制御部は、前記バッテリの状態の監視結果に基づいて、前記回転電機と前記バッテリの間に流れる電流の値が閾値未満であると判定した場合、前記第3制御部の異常状態のために前記回転電機の動作の制限が実行されていないことを検出する、
請求項1乃至4の何れかに記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両制御装置に関する。
【背景技術】
【0002】
例えば特許文献1には、回転電機から電池へ電流を流せない故障が生じた場合、回転電機の出力トルクをゼロとする制御を実行する点が開示されている。このようなフェイルセーフ動作は、例えばモータのトルクを指令する車両ECU(Electric Control Unit)などにより実行される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
車両ECUが故障してフェイルセーフ動作を実行できない場合、例えばモータECUにより回転電機の動作を停止制御することが考えられる。しかし、モータECUは単独でフェイルセーフの実行の可否を判断することができない。
【0005】
そこで本発明は上記の課題に鑑みてなされたものであり、フェイルセーフ機能が向上した車両制御装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の車両制御装置は、車両を駆動する回転電機と、前記回転電機と電気的に接続されたバッテリと、前記バッテリの状態を監視し、前記バッテリの状態の監視結果から異常状態を検出する第1制御部と、前記回転電機の出力を制御する第2制御部と、前記バッテリの状態の監視結果に基づき前記回転電機の出力を前記第2制御部に指示し、前記第1制御部が前記バッテリの異常を検出した場合に前記回転電機の動作の制限を実行する第3制御部と有し、前記第1制御部は、前記バッテリの状態の監視結果に基づいて、前記バッテリが異常状態であること、及び前記第3制御部の異常状態のために前記回転電機の動作の制限が実行されていないことを検出したとき、前記第2制御部に前記回転電機の動作の停止を指示し、前記第3制御部は、前記第3制御部の正常状態または異常状態を示す状態信号を前記第2制御部に出力し、前記第2制御部は、前記状態信号が前記第3制御部の異常状態を示す場合、前記第1制御部からの前記回転電機の停止の指示に従って前記回転電機の動作を停止させ、
前記状態信号が前記第3制御部の正常状態を示す場合、前記第1制御部からの前記回転電機の停止の指示に従わずに前記回転電機の動作を継続させる。
【0007】
上記の構成において、前記制御部は、前記状態信号が所定の規則性を有している場合、前記指示部が正常状態であると判定し、前記状態信号が前記所定の規則性を有していない場合、前記指示部が異常状態であると判定してもよい。
【0008】
上記の構成において、前記第3制御部は、正常状態である場合、一定周期で所定の数値パタンを繰り返す前記状態信号を出力してもよい。
【0009】
上記の構成において、前記第3制御部は、前記第1制御部が前記バッテリの異常を検出した場合に前記回転電機と前記バッテリの間の電気的な接続を切断することにより前記回転電機の動作の制限を実行してもよい。
【0010】
上記の構成において、前記第1制御部は、前記バッテリの状態の監視結果に基づいて、前記回転電機と前記バッテリの間に流れる電流の値が閾値未満であると判定した場合、前記第3制御部の異常状態のために前記回転電機の動作の制限が実行されていないことを検出してもよい。
【発明の効果】
【0011】
本発明によれば、車両制御装置のフェイルセーフ機能を向上することができる。
【図面の簡単な説明】
【0012】
【
図2】ローカル通信バスのフレーム信号及びグローバル通信バスのフレーム信号の例を示す図である。
【
図4】バッテリが正常である場合の電池ECU、車両ECU、及びモータECUの動作の一例を示すシーケンス図である。
【
図5】バッテリが異常状態である場合の電池ECU、車両ECU、及びモータECUの動作の一例を示すシーケンス図である。
【
図6】車両ECUのフェイルセーフ動作の一例を示す図である。
【
図7】バッテリが異常状態である場合の電池ECU、車両ECU、及びモータECUの動作の他の例を示すシーケンス図である。
【
図8】モータジェネレータの動作の強制停止の一例を示す図である。
【
図9】車両ECUが正常状態である場合に偽の強制停止指示が送信されたときのモータECUの動作を示すシーケンス図である。
【
図10】電池ECUの動作の一例を示すフローチャートである。
【
図11】状態判定値Nに基づく車両ECUの状態判定処理を示すフローチャートである。
【
図12】モータジェネレータの制御処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0013】
(車両の構成)
図1は、車両9の一例を示す構成図である。車両9は、車両制御装置1、センサユニット20,バッテリ21、システムメインリレー(SMR: System Main Relay)22、昇圧コンバータ23、インバータ24、モータジェネレータ(MG)25、電流センサ26、回転位置センサ27、及び車輪機構28を有する。なお、車両9としてはハイブリッド車及び電気自動車を挙げられるが、これに限定されない。
【0014】
バッテリ21は、例えばリチウムイオン電池であり、MG25と電気的に接続されている。バッテリ21は、力行動作時のMG25に電力を供給し、また、回生動作時のMG25が発電した電力が充電される。センサユニット20は、例えばバッテリセンサであり、バッテリの動作状態に関する各種の値を検出する。センサユニット20の検出値としては、例えば、バッテリ21の電流値、電圧値、及び温度が挙げられるが、これに限定されない。
【0015】
バッテリ21は、SMR22を介して昇圧コンバータ23に電気的に接続されている。昇圧コンバータ23は、バッテリ21から入力される直流電圧を目標電圧に昇圧する。昇圧コンバータ23はインバータ24と電気的に接続されている。インバータ24には、昇圧コンバータ23から直流電圧が印加される。
【0016】
インバータ24は、例えばIGBT(Insulated Gate Bipolar Transistor)などの複数のスイッチング素子を有する。インバータ24の各スイッチング素子は、車両制御装置1から入力されるスイッチング信号によりオンオフ制御される。これにより、インバータ24は直流電圧から三相(u相、v相、及びw相)交流電流を生成する。
【0017】
電流センサ26は、インバータ24からMG25に出力される三相交流電流のうち、例えばu相及びv相の各電流値を検出する。また、回転位置センサ27は、例えばレゾルバであり、MG25の回転子の回転位置を検出する。
【0018】
MG25は、インバータ24から入力される三相交流電流からトルクを生成して車輪機構28に出力する。車輪機構28には、MG25の回転軸に接続されるギア機構280、車軸281、及び車輪282などが含まれる。車輪機構28は、MG25のトルクを車輪282の駆動力に変換する。なお、MG25は、車両9を駆動する回転電機の一例である。
【0019】
車両制御装置1は、ユーザの操作に従って車両9が駆動されるように、例えばインバータ24を制御し、バッテリ21に異常が発生した場合、車両9が安全に停止できるようにフェイルセーフ動作を実行する。車両制御装置1は、電池ECU10、車両ECU11、モータECU12、アクセルセンサ13、ブレーキセンサ14、速度センサ15、通信インターフェース部16、及びセントラルゲートウェイ(セントラルGW)17を有する。
【0020】
セントラルGW17は、CAN(Controller Ares Network)に基づく通信を行うための複数のグローバル通信バスGBa~GBcを有する。グローバル通信バスGBaには、電池ECU10、車両ECU11、及びモータECU12などが電気的に接続されている。グローバル通信バスGBbには、アクセルセンサ13、ブレーキセンサ14、及び速度センサ15などが電気的に接続されている。グローバル通信バスGBcには、通信インターフェース部16などが電気的に接続されている。
【0021】
セントラルGW17は、複数のグローバル通信バスGBa~GBcの間でフレーム信号を転送する。これにより、電池ECU10、車両ECU11、モータECU12、アクセルセンサ13、ブレーキセンサ14、速度センサ15、及び通信インターフェース部16は互いにフレーム信号を送受信することができる。
【0022】
通信インターフェース部16は、例えば無線LAN(Local Area Network)の通信回路であり、車両9の外部のスマートフォンなどの端末装置8と車両制御装置1の間の通信を処理する。通信インターフェース部16は、例えば車両9の故障診断が実行される場合、端末装置8との間で車両9の診断情報などを送受信する。
【0023】
アクセルセンサ13は車両9のアクセルペダル(不図示)の開度を検出する。ブレーキセンサ14は車両9のブレーキペダル(不図示)の開度を検出する。速度センサ15は車両9の速度を検出する。アクセルセンサ13、ブレーキセンサ14、及び速度センサ15は検出値を、グローバル通信バスGBa,GBbを介して車両ECU11に通知する。
【0024】
電池ECU10、車両ECU11、及びモータECU12は、例えばマイクロコントローラであるが、これに限定されず、FPGA(Field Programmable Gate Array)やASIC(Application Specified Integrated Circuit)などの集積回路であってもよい。電池ECU10及び車両ECU11はローカル通信バスLBaを介して互いに通信し、車両ECU11及びモータECU12はローカル通信バスLBbを介して互いに通信する。ローカル通信バスLBa,LBbは、グローバル通信バスGBa~GBcと同様にCANに基づく通信回線である。
【0025】
電池ECU10は、センサユニット20からバッテリ21の状態に関する各種の検出値を取得することによりバッテリ21の状態を監視する。電池ECU10は、各検出値からバッテリ21の充電量及び入出力制限値を算出し、さらに各検出値からバッテリ21異常状態を判定する。
【0026】
電池ECU10は、例えばセンサユニット20が検出したバッテリ21の電圧からバッテリの充電量を算出し、センサユニット20が検出したバッテリ21の温度及び電圧から入出力制限値を算出する。電池ECU10は、ローカル通信バスLBaを介してバッテリ21の充電量及び入出力制限値などをバッテリ21の監視結果として車両ECU11に通知する。
【0027】
また、電池ECU10は、例えばセンサユニット20が検出したバッテリ21の温度が閾値以上である場合(つまり過熱状態の場合)、または、センサユニット20が検出したバッテリ21の電圧が閾値以上である場合(つまり過電圧の場合)、バッテリ21が異常状態であると判定する。電池ECU10は、ローカル通信バスLBaを介してバッテリ21の異常状態を車両ECU11に通知する。
【0028】
このように電池ECU10は、バッテリ21の状態を監視し、バッテリ21の監視結果から異常状態を検出する。なお、電池ECU10は第1制御部の一例である。
【0029】
車両ECU11は、アクセルセンサ13、ブレーキセンサ14、及び速度センサ15からグローバル通信バスGBaを介して各々の検出値を受信する。また、車両ECU11は、電池ECU10からローカル通信バスLBaを介してバッテリ21の監視結果として充電量及び入出力制限値などを受信する。車両ECU11は、アクセルセンサ13、ブレーキセンサ14、及び速度センサ15の各検出値と、バッテリ21の監視結果とに基づきMG25のトルク指令値を算出する。
【0030】
車両ECU11は、ローカル通信バスLBbを介してトルク指令値をモータECU12に通知する。すなわち、車両ECU11は、バッテリ21の状態の監視結果に基づきMG25の出力をモータECU12に指示する。
【0031】
また、車両ECU11は、電池ECU10がバッテリ21の異常を検出した場合にMG25の動作を制限するフェイルセーフ動作を実行する。例えば車両ECU11は、電池ECU10からバッテリ21の異常状態の通知を受けた場合、SMR22を遮断状態に切り替える。これにより、MG25とバッテリ21の間の電気的な接続が切断されるため、車両9の動作が異常となることが抑制される。なお、フェイルセーフ動作としては、MG25とバッテリ21の間の電気的な接続に限定されず、MG25の動作を安全に停止する他の手段が用いられてもよい。車両ECU11は第3制御部の一例である。
【0032】
モータECU12は、インバータ24にスイッチング信号を出力することによりMG25のトルクを制御する。モータECU12は、車両ECU11からローカル通信バスLBbを介してトルク指令値を受信し、MG25からトルク指令値に応じたトルクが出力されるようにスイッチング信号のデューティ比を制御する。このとき、モータECU12は、電流センサ26が検出した電流値、及び回転位置センサ27が検出したMG25の回転子の回転位置からューティ比を制御する。なお、モータECU12は、MG25の出力を制御する制御部の一例である。
【0033】
また、モータECU12は、車両ECU11がフェイルセーフ動作を実行した場合、車両ECU11からローカル通信バスLBbを介してトルク出力停止指示を受信する。この場合、モータECU12は、MG25からのトルクの出力を停止するため、例えば三相交流電流を0(A)とするようにスイッチング信号のデューティ比を制御する。
【0034】
電池ECU10は、バッテリ21の監視結果から異常を検出したとき、さらにセンサユニット20の検出値に基づき、車両ECU11によるフェイルセーフ動作の成否を判定する。例えば電池ECU10は、センサユニット20が検出したバッテリ21の電流値が実質的に0(A)である場合、バッテリ21からMG25に電流が流れていないため、フェイルセーフ動作が成功したと判定する。
【0035】
車両ECU11は、故障して異常状態である場合、フェイルセーフ動作を行うことができない。この場合、センサユニット20が検出したバッテリ21の電流値は0(A)とはならないため、電池ECU10は、フェイルセーフ動作が失敗したと判定する。
【0036】
電池ECU10は、フェイルセーフ動作が失敗したと判定した場合、グローバル通信バスGBaを介してモータECU12に強制停止指示を送信する。モータECU12は、強制停止指示に従ってMG25の動作を停止させる。例えばモータECU12は、インバータ24に強制停止信号を出力してインバータ24のIGBTのゲート遮断を行うことによりMG25の動作を強制的に停止させる。
【0037】
このように電池ECU10は、バッテリ21の監視結果に基づいて、バッテリ21が異常状態であること、及び車両ECU11の異常状態のためにMG25の動作の制限が実行されていないことを検出したとき、モータECU12にMG25の動作の停止を指示する。
【0038】
モータECU12は、車両ECU11が故障している場合のみ、強制停止指示に従ってMG25の動作を停止させる。車両ECU11は、車両ECU11の異常判定に用いられる異常判定信号を、ローカル通信バスLBbを介してモータECU12に周期的に送信する。異常判定信号は、車両ECU11の正常状態または異常状態を示す状態信号の一例である。本例における異常判定信号は周期的なカウンタ値を示すが、これに限定されず、周期的なパルス信号であってもよい。
【0039】
モータECU12は、異常判定信号が車両ECU11の異常状態を示す場合、電池ECU10からの強制停止指示に従ってMG25の動作を停止させ、異常判定信号が車両ECU11の正常状態を示す場合、強制停止指示に従わずにMG25の動作を継続させる。このため、モータECU12は、車両ECU11が故障した場合のみ、MG25の動作を停止することができる。
【0040】
強制停止指示が送受信されるグローバル通信バスGBaは、セントラルGW17を介して通信インターフェース部16に接続されている。このため、例えば悪意のあるユーザが端末装置8から通信インターフェース部16を介して偽の強制停止指示をモータECU12に送信することが考えられる。
【0041】
しかし、モータECU12は、異常判定信号が車両ECU11の異常状態を示す場合のみ、電池ECU10からの強制停止指示に従ってMG25の動作を停止させるため、偽の強制停止指示に従ってMG25の動作を停止させることがない。また、偽の強制停止指示を防止するためにグローバル通信バスGBa~GBcに高コストな暗号化手段などを設ける必要がない。
【0042】
(フレーム信号)
図2は、ローカル通信バスLBa,LBbのフレーム信号Fa及びグローバル通信バスGBa~GBcのフレーム信号Fbの例を示す図である。各フレーム信号Fa,Fbは、一例としてデータID、データ領域、及びCRC(Cyclic redundancy Check)領域を有する。
【0043】
データIDは、データ領域に格納されるデータの種類を識別するための識別子である。電池ECU10、車両ECU11、モータECU12、及び通信インターフェース部16は、受信対象のフレーム信号をデータIDにより識別する。また、電池ECU10、車両ECU11、モータECU12、アクセルセンサ13、ブレーキセンサ14、速度センサ15、及び通信インターフェース部16は、送信対象のデータに応じたデータIDのフレーム信号を送信する。
【0044】
データ領域には各種のデータが収納される。CRC領域にはデータ領域のデータの誤りを検査する検査符号が収容される。所定ビット数以下のデータの誤りは検査符号により訂正することが可能である。
【0045】
ローカル通信バスLBa,LBbのフレーム信号Faのデータとしては、例えば、バッテリ状態情報、バッテリ異常情報、トルク指令値、トルク出力停止指示、及び状態判定値などが挙げられる。電池ECU10は、バッテリ21の充電量及び入出力制限値をバッテリ状態情報としてフレーム信号Faのデータ領域に収容して送信する。また、電池ECU10は、バッテリ21の異常状態をバッテリ異常情報としてフレーム信号Faのデータ領域に収容して送信する。
【0046】
車両ECU11は、MG25のトルク指令値をフレーム信号Faのデータ領域に収容して送信する。車両ECU11は、フェイルセーフ動作を実行する場合、トルク出力停止指示をフレーム信号Faのデータ領域に収容して送信する。また、車両ECU11は、周期的に状態判定値をフレーム信号Faのデータ領域に収容して送信する。さらに車両ECU11は、一定周期で状態判定値をフレーム信号Faのデータ領域に収容して送信する。
【0047】
一方、グローバル通信バスGBa~GBcのフレーム信号Fbのデータとしては、例えば、診断情報、アクセルセンサ値、ブレーキセンサ値、速度センサ値、及び強制停止指示などが挙げられる。通信インターフェース部16は、車両ECU11などから診断情報をデータ領域に収容したフレーム信号Fbを受信して端末装置8に転送する。
【0048】
アクセルセンサ13は、アクセルペダルの開度を示すアクセルセンサ値をフレーム信号Fbのデータ領域に収容して送信する。ブレーキセンサ14は、ブレーキペダルの開度を示すブレーキセンサ値をフレーム信号Fbのデータ領域に収容して送信する。速度センサ15は、車両9の速度を示す速度センサ値をフレーム信号Fbのデータ領域に収容して送信する。電池ECU10は、フェイルセーフ動作が失敗した場合、強制停止指示をフレーム信号Fbのデータ領域に収容して送信する。
【0049】
(状態判定値)
図3は、状態判定値の例を示す図である。符号G1aは、車両ECU11が正常である場合の状態判定値の時刻変化の例を示す。状態判定値は、例えば所定の周期Δtごとに「0」から「6」まで1つずつ増加する。状態判定値は、「0」~「6」の範囲でカウントアップを繰り返すことにより車両ECU11の正常状態を示す。モータECU12は、矢印で示されるように、周期Δtごとに状態判定値を読み出して状態判定値が正常にカウントアップされている場合、車両ECU11が正常であると判定する。
【0050】
符号G2aは、車両ECU11が故障している場合の状態判定値の時刻変化の例を示す。本例において、状態判定値は、時刻t1において「5」ではなく、前回の周期と同じ「4」を示し、それ以降も「4」を示している。モータECU12は、時刻t1において状態判定値が正常にカウントアップしていないことを検出することにより車両ECU11が異常状態であると判定する。
【0051】
符号G3aは、車両ECU11が故障している場合の状態判定値の時刻変化の他の例を示す。本例において、状態判定値は、時刻t2において「6」ではなく、「6」の後の「0」を示している。つまり、状態判定値は、「6」をスキップしてカウントアップしている。モータECU12は、時刻t2において状態判定値が正常にカウントアップしていないことを検出することにより車両ECU11が異常状態であると判定する。
【0052】
このように車両ECU11は、異常状態である場合、一定周期で所定の数値パタンを繰り返す状態判定値を出力する。このため、モータECU12は、例えば周期Δtでカウントアップするカウンタにより容易に車両ECU11の異常状態を判定することができる。
【0053】
状態判定値は、上記のようなカウントアップの繰り返しに限定されず、例えば単純な周期的パルスパタンであってもよい、所定の数値パタンの繰り返しであってもよい。つまり、状態判定値は所定の規則性を有していればよい。
【0054】
すなわち、モータECU12は、状態判定値が所定の規則性を有している場合、車両ECU11が正常状態であると判定し、状態判定値が所定の規則性を有していない場合、車両ECU11が異常状態であると判定する。このため、モータECU12は、例えば単に信号値のレベル(ハイレベルまたはローレベル)で車両ECU11の故障を判定する場合より正確に車両ECU11の故障を検出することができる。
【0055】
(電池ECU、車両ECU、及びモータECUの動作シーケンス)
図4は、バッテリ21が正常である場合の電池ECU10、車両ECU11、及びモータECU12の動作の一例を示すシーケンス図である。電池ECU10は、センサユニット20から各検出値を取得することによりによりバッテリ21の状態を監視する(符号S1)。電池ECU10は、監視結果から充電量及び入出力制限値を算出してバッテリ状態情報として車両ECU11に送信する。
【0056】
また、車両ECU11は、正常状態を示す状態判定値をモータECU12に送信する。モータECU12は、状態判定値に基づき車両ECU11が正常状態であると判定する(符号S4)。
【0057】
次に車両ECU11は、アクセルセンサ値、ブレーキセンサ値、及び速度センサ値を受信する(符号S2)。次に車両ECU11は、アクセルセンサ値、ブレーキセンサ値、速度センサ値、及びバッテリ状態情報からトルク指令値を算出する(符号S3)。
【0058】
次に車両ECU11は、トルク指令値をモータECU12に送信する。モータECU12は、トルク指令値に基づき、インバータ24に対しスイッチング信号を出力することによりMG25を制御する(符号S5)。
【0059】
図5は、バッテリ21が異常状態である場合の電池ECU10、車両ECU11、及びモータECU12の動作の一例を示すシーケンス図である。本例において、車両ECU11は正常状態である。
【0060】
電池ECU10は、センサユニット20から各検出値を取得することによりバッテリ21の状態を監視する(符号S11)。本例では、電池ECU10は、例えばセンサユニット20が検出した温度が閾値以上であることからバッテリ21が異常状態であると判定する。電池ECU10は、バッテリ異常情報を車両ECU11に送信する。
【0061】
また、車両ECU11は、正常状態を示す状態判定値をモータECU12に送信する。モータECU12は、状態判定値に基づき車両ECU11が正常状態であると判定する(符号S13)。また、車両ECU11は、グローバル通信バスGBaを介してアクセルセンサ値、ブレーキセンサ値、及び速度センサ値を受信する(符号S12)。
【0062】
次に車両ECU11は、バッテリ異常情報を受信すると、通常のトルク指令値の算出を行わずにフェイルセーフモードに移行する(符号S14)。次に車両ECU11はフェイルセーフモードにおいてSMR22を遮断する(符号S15)。これにより、バッテリ21とMG25の間の電気的な接続が切断される。
【0063】
次に車両ECU11はトルク出力停止指示をモータECU12に送信する。モータECU12は、トルク出力停止指示を受信すると、インバータ24に対しトルク出力停止制御を行う(符号S16)。このとき、モータECU12は、三相交流電流が0(A)となるようにスイッチング信号のデューティ比を制御する。これにより、MG25の動作が停止する。
【0064】
また、電池ECU10は、バッテリ21の異常状態を検出したため、バッテリ異常情報の送信タイミングから例えば期間Tの経過後、センサユニット20からバッテリ21の電流値を取得する(符号S17)。すなわち、電池ECU10は、再度、バッテリ21の監視を行う。電池ECU10は、バッテリ21の電流値を閾値THと比較し、電流値が実質的に0(A)、つまり電流値<THであることを検出することにより車両ECU11のフェイルセーフ動作が成功であると判定する(符号S18)。
【0065】
図6は、車両ECU11のフェイルセーフ動作の一例を示す図である。車両ECU11は、バッテリ21が異常状態であるため、フェイルセーフモードに移行してSMR22に遮断信号を出力することによりバッテリ21とMG25の間の電気的な接続を遮断する。このため、バッテリ21の電流値は閾値TH未満(実質的に0(A))となり、電池ECU10は、車両ECU11のフェイルセーフ(FS)動作が成功したと判定する。
【0066】
また、車両ECU11は、SMR22を遮断状態に制御したため、トルク出力停止指示をモータECU12に送信する。モータECU12は、トルク出力停止指示に従って、三相交流電流が0(A)となるようにインバータ24にスイッチング信号を出力する。
【0067】
このように、車両ECU11は、バッテリ21が異常状態である場合、フェイルセーフ動作を実行することにより車両9の動作を安全に停止することができる。
【0068】
図7は、バッテリ21が異常状態である場合の電池ECU10、車両ECU11、及びモータECU12の動作の他の例を示すシーケンス図である。本例において、車両ECU11は異常状態である。
【0069】
電池ECU10は、センサユニット20から各検出値を取得することによりバッテリ21の状態を監視する(符号S21)。本例では、電池ECU10は、センサユニット20の各検出値からバッテリ21が異常状態であると判定する。電池ECU10は、バッテリ異常情報を車両ECU11に送信する。
【0070】
車両ECU11には故障が発生している(符号S22)。車両ECU11は、故障により状態判定値を正常にカウントアップすることができない。このため、車両ECU11は、異常状態を示す状態判定値をモータECU12に送信する。モータECU12は、状態判定値を受信することにより車両ECU11が異常状態であることを判定する(符号S23)。
【0071】
また、電池ECU10は、バッテリ21の異常状態を検出したため、バッテリ異常情報の送信タイミングから例えば期間Tの経過後、センサユニット20からバッテリ21の電流値を取得する(符号S24)。すなわち、電池ECU10は、再度、バッテリ21の監視を行う。電池ECU10は、バッテリ21の電流値を閾値THと比較し、電流値が0(A)ではない、つまり電流値≧THであることを検出することにより車両ECU11のフェイルセーフ動作が失敗であると判定する(符号S25)。
【0072】
電池ECU10は、フェイルセーフ動作が失敗であるため、モータECU12に強制停止指示を送信する。モータECU12は、強制停止指示に従ってインバータ24に対しゲート遮断を行うことによりMG25の動作を強制停止する(符号S26)。
【0073】
図8は、MG25の動作の強制停止の一例を示す図である。車両ECU11は、故障のため、SMR22を遮断することができない(符号Pa参照)。このため、バッテリ21とMG25の間の接続は維持されたままとなる。
【0074】
また、車両ECU11は、故障のため、モータECU12にトルク出力停止指示を送信することができない(符号Pb参照)。このため、モータECU12はスイッチング信号により三相交流電流を0(A)に制御することができない(符号Pc参照)。
【0075】
SMR22が遮断されていないため、バッテリ21の電流値は閾値TH以上となり、電池ECU10は、フェイルセーフ(FS)動作が失敗したと判定する。このため、電池ECU10は、グローバル通信バスGBaを介して強制停止指示をモータECU12に送信する。
【0076】
このように電池ECU10は、バッテリ21の監視結果に基づいて、MG25とバッテリ21の間に流れる電流の値が閾値未満であると判定した場合、車両ECU11の異常状態のためにMG25の動作の制限が実行されていないことを検出する。したがって、電池ECU10は、MG25の動作の制限が実行されていないことを容易に判定することができる。
【0077】
モータECU12は、車両ECU11が故障しているため、強制停止指示に従ってインバータ24に強制停止信号を出力する。このため、インバータ24内のIGBTは強制的にオフ状態となり、インバータ24の動作は停止する。これにより、MG25の動作が強制的に停止される。
【0078】
このように、モータECU12は、車両ECU11が異常状態であると判定した場合、電池ECU10から受信した強制停止指示に従ってMG25の動作を強制的に停止制御する。しかし、以下のように、モータECU12は、車両ECU11が正常状態であると判定した場合、強制停止指示を受信してもMG25の動作を停止させない。
【0079】
図9は、車両ECU11が正常状態である場合に偽の強制停止指示が送信されたときのモータECU12の動作を示すシーケンス図である。本例において、車両ECU11は正常状態である。
【0080】
車両ECU11は、正常状態を示す状態判定値をモータECU12に送信する。モータECU12は、状態判定値に基づき車両ECU11が正常状態であると判定する(符号S31)。
【0081】
例えば悪意のあるユーザが端末装置8から通信インターフェース部16に偽の強制停止指示を入力する。偽の強制停止指示は通信インターフェース部16からモータECU12に送信される。
【0082】
しかし、モータECU12は、車両ECU11が正常状態であると判定済みであるため、偽の強制停止指示を廃棄する(符号S32)。このため、モータECU12は、偽の強制停止指示に従ってMG25の動作を停止させることが抑制される。これは、仮にモータECU12が、車両ECU11が正常状態であるにもかかわらず、誤って強制停止指示を送信した場合も同様である。すなわち、モータECU12は、状態判定値が正常状態を示す場合、強制停止指示に従わずにMG25の動作を継続させる。
【0083】
図10は、電池ECU10の動作の一例を示すフローチャートである。電池ECU10は、センサユニット20からバッテリ21の各検出値を取得する(ステップSt1)。これにより電池ECU10はバッテリ21の状態を監視する。
【0084】
次に電池ECU10は、バッテリ21の各検出値からバッテリ21が異常状態であるか否かを判定する(ステップSt2)。電池ECU10は、バッテリ21が正常状態である場合(ステップSt2のNo)、充電量及び入出力制限値などのバッテリ状態情報を車両ECU11に送信する(ステップSt9)。
【0085】
また、電池ECU10は、バッテリ21が異常状態である場合(ステップSt2のYes)、車両ECU11をフェイルセーフモードに移行させるためにバッテリ異常情報を車両ECU11に送信する(ステップSt3)。バッテリ21の異常状態とは、例えば過電圧、センサユニット20の故障、及び高温などが挙げられる。その後、電池ECU10は、フェイルセーフ動作の完了に必要な期間Tだけ待機する(ステップSt4)。
【0086】
次に電池ECU10はセンサユニット20からバッテリ21の電流値を取得する(ステップSt5)。次に電池ECU10は電流値を閾値TH(>0)と比較する(ステップSt6)。
【0087】
電池ECU10は、電流値<THが成立する場合(ステップSt6のNo)、フェイルセーフ動作により電流値が実質的に0(A)になったと判断し、車両ECU11のフェイルセーフ動作が成功したと判定する(ステップSt10)。その後、電池ECU10は動作を終了する。
【0088】
また、電池ECU10は、電流値≧THが成立する場合(ステップSt6のYes)、車両ECU11のフェイルセーフ動作が失敗したと判定する(ステップSt7)。次に電池ECU10はグローバル通信バスGBaを介して強制停止指示をモータECU12に送信する(ステップSt8)。その後、電池ECU10は動作を終了する。
【0089】
このように電池ECU10は、バッテリ21の監視結果に基づいて、バッテリ21が異常状態であること、及び車両ECU11の異常状態のためにMG25の動作の制限が実行されていないことを検出したとき、モータECU12にMG25の動作の停止を指示する。
【0090】
また、電池ECU10は、MG25とバッテリ21の間に流れる電流の値が閾値TH未満である場合、フェイルセーフ動作が成功したと判定し、電流の値が閾値TH以上である場合、フェイルセーフ動作が失敗したと判定する。このため、電池ECU10は、MG25とバッテリ21の間の接続が遮断するフェイルセーフ動作の成否を電流値から容易に判定することができる。
【0091】
図11は、状態判定値Nに基づく車両ECU11の状態判定処理を示すフローチャートである。本処理は、
図3に示される周期Δtごとに実行される。変数n(=0,1,2,・・・,6)は状態判定値Nの期待値である。なお、変数n及び状態判定値Nの初期値は「0」であると仮定する。
【0092】
モータECU12は、車両ECU11からローカル通信バスLBbを介して状態判定値Nを取得する(ステップSt21)。次にモータECU12は状態判定値Nを変数nと比較する(ステップSt22)。モータECU12は、状態判定値Nと変数nが互いに一致した場合(ステップSt22のYes)、車両ECU11が正常状態であると判定する(ステップSt23)。
【0093】
次にモータECU12は、変数nを上限値n_max(1以上の整数)と比較する(ステップSt24)。ここで、上限値n_maxは、
図3の例の場合、「6」である。モータECU12は、変数nと上限値n_maxが互いに一致する場合(ステップSt24のYes)、変数nを「0」に設定する(ステップSt25)。また、モータECU12は、変数nと上限値n_maxが互いに一致しない場合(ステップSt24のNo)、変数nに1を加算する(ステップSt26)。これにより変数nが状態判定値Nの次の周期の期待値に更新される。その後、処理は終了する。
【0094】
また、モータECU12は、状態判定値Nと変数nが互いに一致しない場合(ステップSt22のNo)、車両ECU11が故障のために異常状態であると判定する(ステップSt27)。その後、処理は終了する。
【0095】
このように、モータECU12は、状態判定値Nが周期Δtごとに1ずつカウントアップしている場合、車両ECU11が正常状態であると判定し、状態判定値Nが周期Δtごとに1ずつカウントアップしていない場合、車両ECU11が異常状態であると判定する。
【0096】
図12は、MG25の制御処理の一例を示すフローチャートである。モータECU12は本処理を例えば所定の周期で実行する。
【0097】
モータECU12は、車両ECU11からトルク指令値を受信しているか否かを判定する(ステップSt31)。モータECU12は、トルク指令値を受信している場合(ステップSt31のYes)、トルク指令値に基づきMG25のd軸及びq軸の各電流指令値を算出する(ステップSt32)。ここでモータECU12は、例えばトルク指令値に対応するMG25の電流実効値及び電流進角をマップデータから取得し、電流実効値及び電流進角から所定の算出式に基づいて各電流指令値を算出する。
【0098】
次にモータECU12は、電流センサ26及び回転位置センサ27の各検出値から三相交流電流のd軸及びq軸の各電流値を取得する(ステップSt33)ここでモータECU12は、回転位置センサ27の検出値からMG25の電気角を算出し、電流センサ26が検出した三相交流電流の各電流値を、電気角を用いて3相-2相変換することによりd軸電流Id及びq軸電流Iqを取得する。
【0099】
次にモータECU12は、d軸の電流指令値及び電流値とq軸の電流指令値及び電流値からMG25の三相交流電圧の各相(u相、v相、及びw相)の電圧指令値をそれぞれ算出する(ステップSt34)。ここでモータECU12は、d軸の電流指令値及び電流値の差分とq軸の電流指令値及び電流値の差分をフィードバック制御することによりd軸及びq軸の各電圧指令値をそれぞれ算出する。モータECU12は、MG25の電気角を用いてd軸及びq軸の各電圧指令値を2相-3相変換することにより三相交流電圧の各相の電圧指令値を算出する。
【0100】
次にモータECU12は、各相の電圧指令値に基づきスイッチング信号を生成してインバータ24に出力する(ステップSt35)。ここでモータECU12は、電圧指令値からデューティ演算を行う。
【0101】
図13は、スイッチング信号の一例を示す図である。モータECU12は、時間軸において、三角波状に変化するキャリア信号を生成して、正弦波状に変化する各相の電圧指令値とキャリア信号の信号値を比較する。キャリア信号は、スイッチング信号のオンオフタイミングを決めるための信号であり、キャリア信号の信号値が電圧指令値以上である場合、スイッチング信号はオフとなり、キャリア信号の信号値が電圧指令値未満である場合、スイッチング信号はオフとなる。
【0102】
モータECU12は、スイッチング信号がオンとなる時間Ton、及びスイッチング信号がオフとなる時間Toffを算出する。この時間Ton,Toffによりスイッチング信号のデューティ比が決定される。
【0103】
再び
図12を参照すると、モータECU12は、トルク指令値を受信していない場合(ステップSt31のNo)、車両ECU11からローカル通信バスLBbを介してトルク出力停止指示を受信しているか否かを判定する(ステップSt36)。モータECU12は、トルク出力停止指示を受信している場合(ステップSt36のYes)、d軸及びq軸の各電流指令値を0(A)に設定する(ステップSt37)。これによりMG25のトルクが0(N・m)となる。
【0104】
また、モータECU12は、トルク出力停止指示を受信していない場合(ステップSt36のNo)、電池ECU10からグローバル通信バスGBaを介して強制停止指示を受信しているか否かを判定する(ステップSt38)。モータECU12は、強制停止指示を受信していない場合(ステップSt38のNo)、本処理を終了する。
【0105】
モータECU12は、強制停止指示を受信している場合(ステップSt38のYes)、車両ECU11が異常状態であるか否かを判定する(ステップSt39)。車両ECU11の状態の判定は、
図11に示される状態判定処理により行われる。モータECU12は、車両ECU11が正常状態である場合(ステップSt39のNo)、本処理を終了する。
【0106】
また、モータECU12は、車両ECU11が異常状態である場合(ステップSt39のYes)、インバータ24に対しゲート遮断制御を行う(ステップSt40)。これによりインバータ24は動作を停止するため、MG25の動作が停止する。
【0107】
上述したように、電池ECU10は、バッテリ21の監視結果に基づいて、バッテリ21が異常状態であること、及び車両ECU11の異常状態のためにMG25の動作の制限が実行されていないことを検出したとき、モータECU12にMG25の強制停止を指示する。モータECU12は、状態判定値Nが車両ECU11の異常状態を示す場合、電池ECU10からのMG25強制停止指示に従ってMG25の動作を停止させ、状態判定値Nが車両ECU11の正常状態を示す場合、電池ECU10からの強制停止指示に従わずにMG25の動作を継続させる。
【0108】
したがって、モータECU12は、バッテリ21の異常時において車両ECU11が故障して異常状態である場合、MG25の動作を停止することができる。このため、車両制御装置1は、車両ECU11がフェイルセーフ動作を行えない場合、車両ECU11に代えてモータECU12によりMG25の動作を停止させ、車両9を安全に停止することができる。よって、車両制御装置1によると、フェイルセーフ機能を向上することができる。
【0109】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【0110】
1 車両制御装置
9 車両
10 電池ECU(第1制御部)
11 車両ECU(第3制御部)
12 モータECU(第2制御部)
16 通信インターフェース部
20 センサユニット
21 バッテリ
22 SMR
24 インバータ
25 MG(回転電機)
GBa~GBc グローバル通信バス