IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立オートモティブシステムズ株式会社の特許一覧

<>
  • 特許-電子制御装置 図1
  • 特許-電子制御装置 図2
  • 特許-電子制御装置 図3
  • 特許-電子制御装置 図4
  • 特許-電子制御装置 図5
  • 特許-電子制御装置 図6
  • 特許-電子制御装置 図7
  • 特許-電子制御装置 図8
  • 特許-電子制御装置 図9
  • 特許-電子制御装置 図10
  • 特許-電子制御装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-12
(45)【発行日】2025-02-20
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
   G06F 11/34 20060101AFI20250213BHJP
   G06F 9/48 20060101ALI20250213BHJP
【FI】
G06F11/34 152
G06F9/48 100S
【請求項の数】 4
(21)【出願番号】P 2021148034
(22)【出願日】2021-09-10
(65)【公開番号】P2023040853
(43)【公開日】2023-03-23
【審査請求日】2024-04-12
(73)【特許権者】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】100129425
【弁理士】
【氏名又は名称】小川 護晃
(74)【代理人】
【氏名又は名称】西山 春之
(74)【代理人】
【識別番号】100168642
【弁理士】
【氏名又は名称】関谷 充司
(72)【発明者】
【氏名】王 偉斌
(72)【発明者】
【氏名】山▲崎▼ 賢史
(72)【発明者】
【氏名】手島 大介
【審査官】松平 英
(56)【参考文献】
【文献】特開2017-145784(JP,A)
【文献】特開平11-306029(JP,A)
【文献】特開2014-164633(JP,A)
【文献】特開2004-252729(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
11/07
11/28-11/3698
(57)【特許請求の範囲】
【請求項1】
プロセッサ及び計時機能を備えた電子制御装置であって、
前記プロセッサが、前記計時機能を使用して割り込み処理に割り当てられた割り込みタスクの実行間隔を計測し、3点を通る円弧の方程式を利用し、連続した3つの前記実行間隔に応じて次回の割り込みタスクの実行時期を予測し、前記予測した実行時期に次回の割り込みタスクを実行しなかった場合、当該割り込みタスクの実行がスキップされたと診断するように構成された、
電子制御装置。
【請求項2】
前記プロセッサが、前記予測した割り込みタスクの実行時期に対して所定のマージンを持たせた範囲内に、次回の割り込みタスクを実行しなかった場合、当該割り込みタスクの実行がスキップされたと診断するように構成された、
請求項1に記載の電子制御装置。
【請求項3】
前記マージンは、前記予測した割り込みタスクの実行時期に対して所定の比率を乗算して求められる、
請求項2に記載の電子制御装置。
【請求項4】
前記所定の比率は、固定値である、
請求項3に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に搭載された電子制御装置に関する。
【背景技術】
【0002】
車両に搭載された電子制御装置では、例えば、ドライバの操作やクランク信号に同期した割り込み処理が発生する。電子制御装置に内蔵されたマイクロコンピュータは、割り込み処理が発生した時点における制御対象機器の処理負荷が高い場合、割り込み処理に割り当てられたタスク(割り込みタスク)を実行することができず、割り込みタスクを実行しないまま制御対象機器の制御を継続してしまうおそれがある。このため、特開2017-145784号公報(特許文献1)に記載されるように、マップを使用して、割り込みタスクの実行間隔に応じて次回の割り込みタスクの実行時期を予測し、その実行時期に割り込みタスクを実行しなければ、割り込みタスクが実行されなかったと診断する技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-145784号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1で提案された技術では、マップを使用して直前の割り込みタスクの実行間隔に応じて次回の割り込みタスクの実行時期を予測していたため、例えば、エンジン運転状態の過渡状態が考慮されておらず、トレードオフ関係にある「精度」と「リソース」とを両立させることが困難であった。即ち、「精度」を重視すれば、マップが複雑になってメモリ使用量及び処理時間が増加する一方、「リソース」を重視すれば、マップが粗くなって次回の割り込みタスクの実行時期を広めに予測することで精度が低下してしまう。
【0005】
そこで、本発明は、割り込みタスクが実行されたか否かを診断するにあたり、トレードオフ関係にある「精度」と「リソース」とを両立させることができる、電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
電子制御装置は、プロセッサ及び計時機能を備えている。そして、プロセッサが、計時機能を使用して割り込み処理に割り当てられた割り込みタスクの実行間隔を計測し、3点を通る円弧の方程式を利用し、連続した3つの実行間隔に応じて次回の割り込みタスクの実行時期を予測し、予測した実行時期に次回の割り込みタスクを実行しなかった場合、その割り込みタスクの実行がスキップされたと診断するように構成されている。
【発明の効果】
【0007】
本発明によれば、割り込みタスクが実行されたか否かを診断するにあたり、トレードオフ関係にある「精度」と「リソース」とを両立させることができる。
【図面の簡単な説明】
【0008】
図1】車両に搭載された電子制御システムの一例を示す概要図である。
図2】電子制御装置の内部構造の一例を示す概要図である。
図3】直線法による割り込みタスクの発生時期の予測方法の説明図である。
図4】円弧線法による割り込みタスクの発生時期の予測方法の説明図である。
図5】直線法を利用したタスク抜けの診断方法の説明図である。
図6】円弧線法を利用したタスク抜けの診断方法の説明図である。
図7】タスク抜け診断処理の一例を示すフローチャートである。
図8】直線法による割り込みタスクの実行時期を求めるための測定値の一例を示す説明図である。
図9】直線法により割り込みタスクの実行時期を求めた結果の説明図である。
図10】円弧線法による割り込みタスクの実行時期を求めるための測定値の一例を示す説明図である。
図11】円弧線法により割り込みタスクの実行時期を求めた結果の説明図である。
【発明を実施するための形態】
【0009】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
車両100には、例えば、エンジン、自動変速機、ABS(Antilock Brake System)、アダプティブクルーズコントロールシステムなどを電子制御する、複数の電子制御装置200が搭載されている。複数の電子制御装置200は、例えば、CAN(Controller Area Network)などの車載ネットワーク300を介して、任意のデータを相互に送受信可能に接続されている。ここで、車両100としては、乗用車、トラック、バス、建設機械などとすることができる。なお、図1に示す一例では、車両100に4つの電子制御装置200が搭載されているが、実際にはそれ以上の電子制御装置200が搭載されていることに留意されたい。
【0010】
電子制御装置200は、図2に示すように、CPU(Central Processing Unit)などのプロセッサ210と、不揮発性メモリ220と、揮発性メモリ230と、タイマ240と、入出力回路250と、通信回路260と、内部バス270と、を含んで構成されたマイクロコンピュータを内蔵している。
【0011】
プロセッサ210は、アプリケーションプログラムに記述された命令セット(データの転送、演算、制御、管理など)を実行するハードウエアであって、例えば、演算装置、命令やデータを格納するレジスタ、周辺回路などから構成されている。不揮発性メモリ220は、例えば、電源供給を遮断してもデータを保持可能なフラッシュROM(Read Only Memory)などからなり、本実施形態を実装するためのアプリケーションプログラム(コンピュータプログラム)を保持する。揮発性メモリ230は、電源供給を遮断するとデータが消失するダイナミックRAM(Random Access Memory)などからなり、プロセッサ210の演算過程においてデータを一時的に格納する記憶領域を提供する。
【0012】
タイマ240は、例えば、半導体デバイスなどの電子素子からなり、システムクロックから生成される内部クロックを計数することで時間を計測する計時機能を提供する。入出力回路250は、A/Dコンバータ、D/Aコンバータ、D/Dコンバータなどからなり、外部機器に対するアナログ信号及びデジタル信号の入出力機能を提供する。通信回路260は、例えば、CANトランシーバなどからなり、車載ネットワーク300に接続する機能を提供する。内部バス270は、各デバイス間でデータを交換するための経路であって、アドレスを転送するためのアドレスバス、データを転送するためのデータバス、アドレスバスやデータバスで実際に入出力を行うタイミングや制御情報を遣り取りするコントロールバスを含んでいる。
【0013】
電子制御装置200では、例えば、車両100のドライバの操作やクランク信号に同期した割り込み処理が発生する。電子制御装置200のプロセッサ210は、割り込み処理が発生した時点における制御対象機器の処理負荷が高い場合、割り込みタスクを実行することができず、割り込みタスクを実行しないまま制御対象機器の制御を継続してしまうおそれがある。割り込みタスクが信号入力処理を含むものであれば、例えば、過渡期における信号入力がスキップされてその前後における信号値の変化幅が大きくなり、制御対象機器をスムーズに制御することができなくなってしまう。
【0014】
そこで、割り込みタスクの実行がスキップされた「タスク抜け」を検知すべく、電子制御装置200のプロセッサ210は、割り込みタスクの実行間隔を計測し、連続した複数の実行間隔に応じて次回の割り込みタスクの実行時期を予測する。そして、電子制御装置200のプロセッサ210は、予測した発生時期に割り込みタスクを実行すれば「タスク抜け」が発生しなかったと診断し、予測した発生時期に割り込みタスクを実行しなければ「タスク抜け」が発生したと診断する。
【0015】
次回の割り込みタスクの実行時期は、以下詳細に説明するように、2点を通る直線を利用した「直線法」、又は3点を通る円弧(円)を利用した「円弧線法」によって予測することができる。
【0016】
<<直線法>>
最初に、図3に示すように、横軸を割り込みタスクの実行回数[回]、縦軸を割り込みタスクの実行間隔[ms]とした直交座標を考える。また、実行回数n-1(n:自然数)の直前の実行間隔をΔtn-1、実行回数nの直前の実行間隔をΔtとおく。すると、直交座標における点Pn-1(n-1,Δtn-1)及び点Pn(n,Δt)を通る直線は、直線の方程式y=ax+b(a,b:定数)から、次式で表すことができる。
【数1】
【0017】
これらの2式から定数a及びbを夫々求めると、次式のようになる。
【数2】
【0018】
実行回数nに着目すると、割り込みタスクの次回(n+1)の実行時期Δtn+1は、点Pn-1及び点Pを通る直線上にあると見做すことができる。この場合、直線の方程式y=ax+bに対して、x=n+1,y=Δtn+1を代入すると、次式が得られる。
【数3】
【0019】
このように得られた式に対して定数a及びbを代入することで、次回の割り込みタスクの実行時期を予測することができる。従って、2点を通る直線を利用した「直線法」では、このように求められた式を利用することで、次回の割り込みタスクの発生時期を予測することができる。このとき、次回の割り込みタスクの発生時期は、その直前の割り込みタスクの発生間隔が増加傾向又は減少傾向であれば、その傾向を考慮して予測することができる。
【0020】
<<円弧線法>>
最初に、図4に示すように、横軸を割り込みタスクの実行回数[回]、縦軸を割り込みタスクの実行間隔[ms]とした直交座標を考える。また、実行回数n-2(n:自然数)の直前の実行間隔をΔtn-2、実行回数n-1の直前の実行間隔をΔtn-1、実行回数nの直前の実行間隔をΔtとおく。すると、直交座標における点Pn-2(n-2、Δtn-2)、点Pn-1(n-1,Δtn-1)及び点P(n,Δt)を通る円弧は、3点を通る円の方程式x+y+ax+bx+c=0(a,b,c:定数)から、次式で表すことができる。
【数4】
【0021】
これらの3式から定数a,b及びcを夫々求めると、次式のようになる。
【数5】
【0022】
実行回数nに着目すると、割り込みタスクの次回(n+1)の実行時期Δtn+1は、点Pn-2、点Pn-1及び点Pを通る円弧上にあると見做すことができる。この場合、3点を通る円の方程式x+y+ax+by+c=0に対して、x=n+1、y=Δtn+1を代入すると、次式が得られる。
【数6】
【0023】
この式は、Δtn+1を変数とした二次方程式であるため、二次方程式の解は、次式で表すことができる。但し、Δtn+1≧0である。
【数7】
【0024】
このように得られた解に対して定数a,b及びcを代入することで、次回の割り込みタスクの実行時期を予測することができる。従って、3点を通る円弧を利用した「円弧線法」では、このように求められた解を利用することで、次回の割り込みタスクの発生時期を予測することができる。このとき、次回の割り込みタスクの発生時期は、その直前の割り込みタスクの発生間隔が増加傾向又は減少傾向であれば、その傾向を考慮して予測することができる。
【0025】
電子制御装置200に対して割り込みタスクの実行時期の予測処理及びタスク抜けの診断処理を実装する場合、タイマ機能によって計測された割り込みタスクの実行間隔の測定値を時系列ですべて保存しておくことは現実的ではない。
【0026】
直線法においては、図5に示すように、割り込みタスクを実行する診断タイミングになったとき、3回前の測定値t及び2回前の測定値tからその次回(1回前)の割り込みタスクの実行時期Tを予測し、これに対してマージンを持たせた範囲内に直前の測定値tが入っているかにより、タスク抜けが発生したか否かを診断することができる。従って、直線法では、少なくとも、測定値t~tが保存されていれば足りる。
【0027】
一方、円弧法においては、図6に示すように、割り込みタスクを実行する診断タイミングになったとき、4回前の測定値t、3回前の測定値t及び2回前の測定値tからその次回(1回前)の割り込みタスクの実行時期Tを予測し、これに対してマージンを持たせた範囲内に直前の測定値tが入っているかにより、タスク抜けが発生したか否かを診断することができる。従って、円弧線法では、少なくとも、測定値t~tが保存されていれば足りる。
【0028】
このような考察を踏まえ、電子制御装置200のプロセッサ210は、例えば、タイマ240によるタイマ機能を利用して、割り込みタスクの実行間隔を計測する。そして、電子制御装置200のプロセッサ210は、タイマ機能を利用して測定した実行間隔について、例えば、揮発性メモリ230に測定値t~t(直線法ではn=3、円弧線法ではn=4)として時系列で保存する。なお、電子制御装置200のプロセッサ210は、不揮発性メモリ220に格納されているアプリケーションプログラムに従って、割り込みタスクの実行間隔を測定して保存する。
【0029】
図7は、割り込みタスクの実行と同期して、電子制御装置200のプロセッサ210が実行するタスク抜け診断処理の一例を示している。なお、電子制御装置200のプロセッサ210は、不揮発性メモリ220格納されたアプリケーションプログラムに従ってタスク抜け診断処理を実行する。
【0030】
ステップ10(図7では「S10」と略記する。以下同様。)では、電子制御装置200のプロセッサ210が、揮発性メモリ230を参照し、割り込みタスクの実行間隔の測定値t~tを読み込む。
【0031】
ステップ11では、電子制御装置200のプロセッサ210が、上述したような直線法又は円弧線法を使用して、以下詳細を説明するように、割り込みタスクの実行時期Tを予測する。
【0032】
<<直線法>>
直線法では、上述したように、割り込みタスクの実行間隔t及びtを使用して、次回の割り込みタスクの実行時期tを予測する。そこで、直線法において割り込みタスクの実行時期を予測する上記式において、次回の割り込みタスクの実行時期Δtn+1をT、割り込みタスクの実行間隔Δtn-1及びΔtを夫々t及びtとおくと、次式が得られる(但し、n=2)。
【数8】
【0033】
このように得られた式に対して、ステップ10において読み込んだ測定値t及びtを代入し、割り込みタスクの実行時期Tを予測する。
【0034】
<<円弧線法>>
円弧線法では、上述したように、割り込みタスクの実行間隔t~tを使用して、次回の割り込みタスクの実行時間tを予測する。そこで、円弧線法において割り込みタスクの実行時期を予測する上記式において、次回の割り込みタスクの実行時期Δtn+1をT、割り込みタスクの実行間隔Δtn-2~Δtを夫々t~tとおくと、次式が得られる(但し、n=3)。
【数9】
【0035】
このように得られた式に対して、ステップ10において読み込んだ測定値t~tを代入し、定数a,b及びcを求めるとともに、これから次回の割り込みタスクの実行時期Tを予測する。
【0036】
ステップ12では、電子制御装置200のプロセッサ210が、タスク抜けを診断するための範囲の下限値として、「下限値=(1-α)T」を算出する。ここで、αは、割り込みタスクの実行時期Tに対する割合を示す定数(固定値)であって、例えば、実験やシミュレーションなどを通して適宜選定される。
【0037】
ステップ13では、電子制御装置200のプロセッサ210が、タスク抜けを診断するための範囲の上限値として、「上限値=(1+α)T」を算出する。従って、タスク抜けを診断するための範囲としては、割り込みタスクの実行時期Tを中心として、これに応じた幅を有するものとして設定されることとなる。
【0038】
ステップ14では、電子制御装置200のプロセッサ210が、ステップ10において読み込んだ測定値t、即ち、前回の割り込みタスクの実行から今回の割り込みタスクの実行までの時間が下限値以上であるか否かを判定する。そして、電子制御装置200のプロセッサ210は、測定値tが下限値以上であると判定すれば(Yes)、処理をステップ15へと進める。一方、電子制御装置200のプロセッサ210は、測定値tが下限値未満であると判定すれば(No)、処理をステップ17へと進める。
【0039】
ステップ15では、電子制御装置200のプロセッサ210が、測定値tが上限値以下であるか否かを判定する。そして、電子制御装置200のプロセッサ210は、測定値tが上限値以下であると判定すれば(Yes)、処理をステップ16へと進める。一方、電子制御装置200のプロセッサ210は、測定値tが上限値を超えていると判定すれば(No)、処理をステップ17へと進める。
【0040】
ステップ16では、電子制御装置200のプロセッサ210が、測定値tが下限値以上かつ上限値以下であったため、予測した割り込みタスクの実行時期Tにその割り込みタスクが実行されたと判定し、「タスク抜け」なしと診断する。その後、電子制御装置200のプロセッサ210は、タスク抜け診断処理を終了させる。
【0041】
ステップ17では、電子制御装置200のプロセッサ210が、測定値tが下限値未満、又は測定値tが上限値を超えていたため、予測した割り込みタスクの実行時期Tにその割り込みタスクが実行されなかったと判定し、「タスク抜け」ありと診断する。その後、電子制御装置200のプロセッサ210は、タスク抜け診断処理を終了させる。
【0042】
かかるタスク抜け診断処理によれば、電子制御装置200のプロセッサ210は、割り込みタスクを実際に実行するタイミングで、過去において計測した複数の割り込みタスクの実行間隔から、上記のような直線法又は円弧線法を使用して、次回の割り込みタスクの実行時期Tを予測する。このように予測された割り込みタスクの実行時期Tは、1点の時点における時間を示しているため、例えば、測定誤差、演算誤差などを含んでいる。そこで、このように予測された割り込みタスクの実行時期Tを中心として、これに所定割合を示す定数αを考慮して求められた幅を持たせた範囲を算出する。そして、電子制御装置200のプロセッサ210は、計測した最新の割り込みタスクの実行間隔tが上記範囲内にあるか否かを介して、タスク抜けが発生したか否かを診断することができる。
【0043】
従って、本実施形態に係る電子制御装置200においては、計測された複数の割り込みタスクの実行間隔から直線法又は円弧線法を使用して割り込みタスクの実行時期Tを予測するため、制御構成が複雑になることを抑制しつつ、割り込みタスクの実行時期Tを狭めに予測することができる。そして、マップを使用しないことから、エンジン運転状態の過渡状態が考慮されるようになり、トレードオフ関係にある「精度」と「リソース」とを両立させることができる。
【0044】
このとき、上記範囲の幅は、割り込みタスクの実行時期Tの所定割合であるため、実行時期Tが短い場合には幅が小さく、実行時期Tが長い場合には幅が大きくなる。その結果、誤診断を抑制するために範囲を必要以上に広くするする必要がなくなり、診断精度を向上させることもできる。
【0045】
本実施形態の理解を容易ならしめることを目的として、具体的な事例を挙げてこれを説明する。
【0046】
<<直線法>>
図8に示すように、実行回数1回目における割り込みタスクの実行間隔tを2[ms]、実行回数2回目における割り込みタスクの実行間隔tを5[ms]とする。このとき、図9に示すように、割り込みタスクの実行時期Tは、例えば、エンジン運転状態を反映して増加傾向にあると考えることができる。直線法による割り込みタスクの実行時期Tを予測する式に対して、測定値t=2[ms]、及び測定値t=5[ms]を夫々代入すると、割り込みタスクの実行時期Tは8[ms]となる。図9において、点(1,2)及び点(2,5)を通る直線は点(3,8)も通るため、このように求められた割り込みタスクの実行時期Tが正しいことを理解できるであろう。
【0047】
<<円弧線法>>
図10に示すように、実行回数1回目~3回目の割り込みタスクの実行間隔t~tを夫々2,4及び5[ms]とする。このとき、図11に示すように、割り込みタスクの実行時期Tは、例えば、エンジン運転状態を反映して増加率が徐々に低下する傾向にあると考えることができる。円弧線法による割り込みタスクの実行時期Tを予測する式に対して、測定値t=2[ms]、測定値t=4[ms]、及び測定値t=5[ms]を夫々代入すると、3点を通る円弧の方程式における定数a~cはそれぞれ、-13、-1及び10になる。このように求められた定数a~cを、割り込みタスクの実行時期Tを予測する式に代入すると、T=5.60[ms]となる。図11において、点(1,2)、点(2,4)及び点(3,5)を通る円弧は点(4,5.60)も通るため、このように求められた割り込みタスクの実行時期Tが正しいことを理解できるであろう。
【0048】
また、タスク抜けが発生した場合、例えば、その割り込みタスクが信号入力処理を含むものであれば、エンジン過渡状態においては制御パラメータが大きく変化し、制御対象機器がスムーズに制御できなくなる可能性がある。このため、電子制御装置200のプロセッサ210は、タスク抜けが発生したと診断した場合、制御対象機器をフィードバック制御するフィードバックゲインを一時的に小さくするようにしてもよい。このようにすれば、制御パラメータが大きく変化しても、制御対象機器が大きく変化することがなく、スムーズな制御を行うことができる。ここで、一時的とは、所定時間に亘って、又は所定回数に亘ってなど、永続的ではなく短い時間に限ることを意味する。
【0049】
なお、当業者であれば、様々な上記実施形態の技術的思想について、その一部を省略したり、その一部を適宜組み合わせたり、その一部を周知技術に置き換えたりすることで、新たな実施形態を生み出せることを容易に理解できるであろう。
【0050】
その一例を挙げると、割り込みタスクの実行時期Tは、割り込みタスクを実際に実行するときに限らず、割り込みタスクの実行時期を計測するときに予測してもよい。この場合、予測した割り込みタスクの実行時期Tは揮発性メモリ230に一時的に保存され、電子制御装置200のプロセッサ210がタスク抜け診断を行うときに、揮発性メモリ230を参照して取得することができる。
【0051】
クランク信号は、クランクシャフトと一体的に回転するシグナルプレートの歯部をセンサが検知して出力する。この場合、シグナルプレートには、クランクシャフトの回転角度の基準位置を規定する歯欠け部が形成されており、この歯欠け部では所定角度に亘ってクランク信号が出力されないために誤診断が行われてしまう可能性がある。このため、電子制御装置200のプロセッサ210は、タスク抜けを検知したとき、その後に歯欠け部であったか否かを判定し、歯欠け部であったと判定したならば診断をキャンセルするようにしてもよい。
【符号の説明】
【0052】
200 電子制御装置
210 プロセッサ
230 タイマ(計時機能)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11