JP6853883B2 - コントローラ - Google Patents

コントローラ Download PDF

Info

Publication number
JP6853883B2
JP6853883B2 JP2019524656A JP2019524656A JP6853883B2 JP 6853883 B2 JP6853883 B2 JP 6853883B2 JP 2019524656 A JP2019524656 A JP 2019524656A JP 2019524656 A JP2019524656 A JP 2019524656A JP 6853883 B2 JP6853883 B2 JP 6853883B2
Authority
JP
Japan
Prior art keywords
control
backup
control program
value
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019524656A
Other languages
English (en)
Other versions
JPWO2018229930A1 (ja
Inventor
祐 石郷岡
祐 石郷岡
勇樹 堀田
勇樹 堀田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2018229930A1 publication Critical patent/JPWO2018229930A1/ja
Application granted granted Critical
Publication of JP6853883B2 publication Critical patent/JP6853883B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/048Monitoring; Safety
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24007Backup data if microprocessor not responding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Safety Devices In Control Systems (AREA)

Description

本発明は、制御システム内で故障発生時に安全にバックアップ制御プログラムに切り替えるための技術に関するものである。
近年の多くの制御システムは複数のコントローラで構成され、それらが有線ネットワークまたは無線ネットワークで協調して動作する。例えば、車両システムでは、電子化された車両制御機器を操作するECU、すなわち電子制御装置(Electronic Control Unit)と、複数のECU間の通信を可能にする車載ネットワークから構成される。車両システム分野では、ドライバのアクセル操作、ブレーキ操作、ステアリング操作なしに目的地まで自動で運ぶ自動運転システムの需要が高まっている。このシステムではドライバの操作や判断を肩代わりしている自動運転統合ECUが故障した際にも、ユーザが所望する目的地に安全たどり着ける、または安全な場所に退避できるといった自動運転システムサービスを継続できるフェールオペレーショナルが求められる。具体的な方法として自動走行機能が継続できることが挙げられる。
フェールオペレーショナルを実現する方法の一つとして機能の冗長化が挙げられる。例えばホットスタンバイ方式では同じ機能を備えたECUを2つ以上用意し、故障が発生する前から予め2つ以上を同時に実行する。この方式では、一方が故障した際に他方に瞬時に切り替えることで処理を継続できる。この際に同じアルゴリズムや設計コンセプトで機能を冗長化すると、同じ故障要因ですべての冗長化されたコントローラが同時に故障する同一要因故障となる可能性があるため、異なるアルゴリズムや設計コンセプトで冗長系を実現することが求められる。ホットスタンバイ方式はリアルタイムに切り替えられるため制御システムに有効であるが、コストが高くなる課題がある。
他の方法として故障した際に機能を起動するコールドスタンバイ方式があるが、制御システムのリアルタイム性の要求を満たせない課題がある。下記特許文献1では故障前からシステムのデータをバックアップに取り、故障が発生してもバックアップに保存したデータを新規に起動したシステムにコピーすることで高速なリカバリを実現している。なお、リカバリとは代替する機能を立ち上げ、引き継げる状態に初期化し、前機能に引き継ぐまでの一連の処理を示す。
特開平5−12048号公報
しかし、上記特許文献1では異種の制御システムではすべてのデータに互換性がないため、データのバックアップのみではリカバリできない。不足したデータは他の制御システムの演算結果を適用することで徐々に初期化されていくが、時間が必要となり制御システムのリアルタイム性を保証できない課題がある。
本発明は、上記のような課題を解決するためになされたものであり、制御システムの一部に故障が生じても、バックアップとして用意した異なる機能の制御ソフトウェアに対してリアルタイムにリカバリ可能とするコントローラを提供することを目的とする。
上記課題を解決するため本発明のコントローラは、一方の制御プログラムが算出した状態値と制御計画値を抽出する制御バックアップデータ抽出部と、前記状態値、前記制御計画値、及び他方の制御プログラムが参照する入力値を時系列にバックアップとして保存する制御バックアップデータ保存部と、前記一方の制御プログラムの故障検知後に、前記他方の制御プログラムに前記状態値と前記入力値を前記時系列の順に入力し、制御出力が可能な状態として制御機能を維持する制御プログラム高速起動部と、を備えることを特徴とする。
本発明に係るコントローラによれば、システムに故障が発生してもバックアップとして用意した制御ソフトウェアへリアルタイムに切り替えられるため、可用性と安全性を担保できる。
実施の形態1に係る車両システムの構成図 実施の形態1に係る通常走行モード時の動作フロー 実施の形態1に係るリカバリモード時の動作フロー 実施の形態1に係る縮退モード時の動作フロー 実施の形態1に係るフェールセーフモード時の動作フロー 実施の形態1に係るシステムの状態遷移図 通常制御プログラムの動作フロー 制御バックアップデータ抽出部の動作フロー 制御バックアップデータ保存部の動作フロー 故障検知部の動作フロー 制御プログラム高速起動部の動作フロー バックアップ制御プログラムの動作フロー 代理出力部の動作フロー 再構成検証部の動作フロー 運動制御プログラムの動作フロー フェールセーフプログラムの動作フロー 走行起動を例とした制御計画値の比較 縮退モードとフェールセーフモードの制御指令値の例 実施の形態2に係る車両システムの構成図 実施の形態2に係る通常走行モード時の動作フロー 実施の形態2に係るリカバリモード時の動作フロー 実施の形態2に係る縮退モード時の動作フロー 実施の形態2に係るフェールセーフモード時の動作フロー 制御バックアップデータ保存部の動作フロー 故障検知部の動作フロー 制御プログラム高速起動部の動作フロー
本発明に係るコントローラは、システムが故障する前に制御ソフトウェアの状態値をバックアップし、さらにリカバリ後の制御ソフトウェアが正常出力するまでに必要となる入力値を時系列でバックアップすることで、故障検知後にシステムをリカバリさせる際にはバックアップした状態値と入力値を用いることで高速にバックアップ制御ソフトウェアを正常に出力できる状態までリカバリすることができ、システムの可用性と安全性を担保できる。
以下、図面を用いて本発明の実施の形態について説明する。
<実施の形態1>
図1は、本発明の実施の形態1に係る車両システム1の構成図である。本システムにはECU−A(コントローラ部)11、ECU−B(コントローラ部)12、ネットワークバス13を備える。なお、ECU−A(コントロール部)11、ECU−B(コントロール部)12、ネットワークバス13を含んでコントローラと称する。
本実施例ではECU−A11が周囲の状況に応じて車両の走行軌道を演算する自動運転ECU、ECU−B12が、走行軌道に応じて車両の運動制御を演算し、エンジンECUやブレーキECUやステアリングECUに制御コマンドを送付する車両運動ECUを想定している。しかしこれらに限らない。本実施例ではネットワークバス13にCAN(Controller Area Network)やCAN−FD(Controller Area Network Flexible Data)、FlexRayのようなバス型ネットワークバスを想定しているが、これに限らない。例えばEthernetのような1対1型のネットワークバスでも良い。ECU−A11とECU−B12はネットワークバス13を介してデータの通信が可能である。
図2は実施の形態1に係る通常走行モード1021時の動作フローである。
ECU−A11は通常制御プログラム111と制御バックアップデータ抽出部112を備え、ECU−B12は制御バックアップデータ保存部121、運動制御プログラム127を備える。ECU−B12はバックアップデータとして制御計画値バックアップ161と制御リカバリバックアップ162を備える。
通常制御プログラム111は入力値1501に基づいてプログラムの内部状態を示す状態値1502を更新し、制御計画値1503をECU−B12に送付する。
入力値1501とは、プログラムが演算で参照するデータであり、例えばセンサの入力値や他のECUが演算した結果である。制御計画値1503とは制御対象の動作させる計画を示す情報である。例えば車両の数秒先までの走行軌道である。
状態値1502とは、プログラムの内部状態であり、例えばプログラムが現在の車両がレーン変更のためレーンを跨いでいる最中であるといったプログラムが内部的に管理している状態である。
制御バックアップデータ抽出部112は通常制御プログラム111の状態値1502を読み出し、前記状態値150をECU−B12に送付する。
ECU−B12の制御バックアップデータ保存部121は制御計画値1503を受信し、制御計画値バックアップ161に制御計画値1505を保存する。制御計画値1503と制御計画値1505は同じ値でっても良いし、特定の法則に基づいて変換されても良い。また前記制御バックアップデータ保存部121は入力値1501と状態値1504を受信し、制御リカバリバックアップ162に状態値1506と入力値1507を保存する。状態値1504と状態値1506は同じ値でっても良いし、特定の法則に基づいて変換されても良い。入力値1501と入力値1507は同じ値であっても良いし、入力値1507は入値150のサブセット、またはその逆であっても良い。例えば、入力値150はレーザレンジセンサによる外界認識結果とカメラによる外界認識結果であったとき、入力値1507はカメラによる外界認識結果のみであっても良い。入力値1507はリカバリ対象の制御ソフトウェアの入力に基づいて決定される。
制御リカバリバックアップ162の保存形式は一定期間の状態値と入力値が失われないように時系列順に保存されることを想定している。この時系列はバックアップとして実行される制御ソフトウェアが正常な出力を生成可能となるまでに必要な最小限のデータ以上である。制御計画値バックアップ161は通常制御プログラム111の制御計画値1503を保存するデータベースである。本実施の形態によると、通常制御プログラム111の制御計画値1503のみを保存しているが、これに限らない。例えば、複数の制御プログラムの制御計画値を保存しても良い。制御リカバリバックアップ162は通常制御プログラム111の状態値1502と入力値1501を保存するデータベースである。
本実施の形態によると、通常制御プログラム111の状態値1502のみを保存しているが、これに限らない。例えば、複数の制御プログラムの状態値を保存しても良い。運動制御プログラム127は通常制御プログラム111が送付した制御計画値1503を受信し、その情報に基づいて、エンジンECUやブレーキECU、ステアリングECUへの制御指令となる速度値や舵角値といった制御指令値1514を送付する。
図3は実施の形態1に係るリカバリモード1022時の動作フローである。
ECU−B12は故障検知部122、制御プログラム高速起動部123、バックアップ制御プログラム124、代理出力部125、再構成検証部126、運動制御プログラム127を備え、ECU−A11は故障している。
故障検知部122はECU−A11の故障を検知するとリカバリモードに遷移し、検知時刻1513を再構成検証部126に通知する。故障を検知する方法はECU−A11からのデータが一定時間届かないときに故障と判断しても良いし、他の方法でも良い。本実施例では故障とは設計に想定した正常状態でないことを示す。従ってECU−A11のハードウェアが物理的に壊れた事象のみを示すわけではなく、例えばECU−A11でリセットが繰り返し入り、起動しないような設計不良(バグ)やデッドロックなども含む。またECU−A11とECU−B12間のネットワークバス故障も含む。また通知する方法は割り込み信号を用いても良いし、予め再構成検証部126が周期的に検知時刻1513の更新を監視しても良い。故障検知部122は制御プログラム高速起動部123を実行する。
制御プログラム高速起動部123は制御リカバリバックアップ162から状態値1506と入力値1507を時系列に読み出し、その時系列に基づいてバックアップ制御プログラム124が制御計画値1510を設計時に意図した値で出力できるまで実行する。
代理出力部125は制御計画値バックアップ161から制御計画値1505を読み出し、制御計画値1511を出力する。制御計画値1505と制御計画値1511は同じ値であっても良いし、特定の法則に基づいて変換されても良い。
再構成検証部126は、検知時刻1513に基づいて制御計画値1510と制御計画値1511を比較し、リカバリ完了と判断したときに縮退モード1023に遷移し、制御計画値1510を制御計画値1512として出力する。リカバリ未完了と判断したときに制御計画値1511を制御計画値1512として出力する。検知時刻1513から一定時間内にリカバリ完了とならないときフェールセーフモード1024に遷移する。なお、再構成検証部126が比較で使用した制御計画値と出力する制御計画値が必ずしも同じでなくても良い。例えば、比較時には過去の制御計画値も含めて比較し、出力時の制御計画値には現在から未来の制御計画値のみに絞った値としても良い。
運動制御プログラム127は新たな制御計画値1503を受信していない場合、制御計画値1512に基づいて制御指令値1514を送付する。制御計画値1503と制御計画値1512で制御指令値1514を算出するアルゴリズムを変えても良いし、同じであってもよい。
図4は実施の形態1に係る縮退モード1023時の動作フローである。ECU−B12はバックアップ制御プログラム124、再構成検証部126、運動制御プログラム127を備え、ECU−A11は故障している。縮退モードのバックアップ制御プログラム124は入力値1501に基づいて内部状態を更新し、制御計画値1510を出力する。縮退モードの再構成検証部126は制御計画値1510に基づいて制御計画値1512を出力する。運動制御プログラム127は新たな制御計画値1503を受信していない場合、制御計画値1512に基づいて制御指令値1514を送付する。制御計画値1503と制御計画値1512で制御指令値1514を算出するアルゴリズムを変えても良いし、同じであってもよい。
図5は実施の形態1に係るフェールセーフモード1024時の動作フローである。ECU−B12はフェールセーフプログラム128、再構成検証部126、運動制御プログラム127を備え、ECU−A11は故障している。フェールセーフモードに遷移すると再構成検証部126はフェールセーフプログラム128が周期的に実行されるように起動する。本実施の形態では周期的に実行されることを想定しているがこれに限らない。例えば、再構成検証部126がフェールセーフプログラム128を実行するようにしてもよい。
フェールセーフプログラム128は制御計画値バックアップ161に格納された制御計画値1505と入力値1501に基づいて制御計画値1510を出力する。本実施例では入力値1501と制御計画値1505から制御計画値151を出力しているがこれに限らない。例えば、制御計画値1505のみから制御計画値151を出力しても良い。
運動制御プログラム127は新たな制御計画値1503を受信していない場合、制御計画値1512に基づいて制御指令値1514を送付する。制御計画値1503と制御計画値1512で制御指令値1514を算出するアルゴリズムを変えても良いし、同じであってもよい。
図6は実施の形態1に係る車両システム1の状態遷移図である。車両システム1が起動(キーON)するとシステム初期化モード101に遷移する。初期化モードでは各ECUのプログラムの初期化が行われる。初期化が終了すると走行モード102の通常走行モード1021に遷移する。通常走行モード1021では故障を検知するとリカバリモード1022に遷移する。リカバリモード1022では時間内にバックアップ制御プログラムのリカバリが成功すると縮退モード1023に遷移する。時間内にリカバリが成功せず、既定の時間を超えてしまうとフェールセーフモード1024に遷移する。既定の時間は制御計画値バックアップ161に保存した制御計画値1505で、制御システムの安全が担保できなくなる時間によって決まる。
しかし、これに限らない。例えば、ユーザが独自に規定しても良い。車両システム1がキーOFFされるとシステム終了モード103に遷移する。システム終了モード103で学習値の保存などを行うシャットダウン処理を実施し、完了すると車両システム1が終了する。
以降より、実施の形態1に関わる動作フローの詳細を説明する。
図7は通常制御プログラム111の動作フローである。以下、図7の各ステップについて説明する。
(図7:ステップ1111)
通常制御プログラム111は入力値1501に基づいて内部状態を示す状態値1502を更新し、制御計画値1503を出力する。
図8は制御バックアップデータ抽出部112の動作フローである。以下、図8の各ステップについて説明する。
(図8:ステップ1121)
制御バックアップデータ抽出部112は通常制御プログラム111の内部状態を示す状態値1502を読み出し、状態値1504を出力する。状態値1502と状態値1504は同値であっても良いし、特定の規則に則って変換された異なる値であっても良い。
図9は制御バックアップデータ保存部121の動作フローである。以下、図9の各ステップについて説明する。
(図9:ステップ1211)
制御バックアップデータ保存部121は受信した通常制御プログラム111の状態値1504を制御リカバリバックアップ162に保存する。
(図9:ステップ1212)
制御バックアップデータ保存部121は受信した入力値1501を制御リカバリバックアップ162に時系列に保存する。
(図9:ステップ1213)
制御バックアップデータ保存部121は受信した通常制御プログラム111の制御計画値1503を制御計画値バックアップ161に時系列に保存する。
図10は故障検知部122の動作フローである。以下、図10の各ステップについて説明する。
(図10:ステップ1221)
故障検知部122は通常制御プログラム111に故障が発生したか否かを判定する。故障と判定した場合にはステップ1222に進み、それ以外の場合には処理を終了する。
(図10:ステップ1222)
故障検知部122は状態をリカバリモード1022に遷移させる。またユーザに通知することを想定しているが、これに限らない。
(図10:ステップ1223)
故障検知部122は現在時刻を検知時刻1513として保存する。
(図10:ステップ1224)
故障検知部122は制御プログラム高速起動部123を呼び出す。
(図10:ステップ1225)
故障検知部122は再構成検証部126を呼び出す。
図11は制御プログラム高速起動部123の動作フローである。以下、図11の各ステップについて説明する。
(図11:ステップ1231)
制御プログラム高速起動部123は制御リカバリバックアップ162から状態値106を読み出し、バックアップ制御プログラム124に設定する。
(図11:ステップ1232)
制御プログラム高速起動部123は使用していない時系列データがあるか否かを判定する。時系列データとは時系列順に保存した状態値1506と入力値1507、あるいは入力値1507のみである。使用していない時系列データがある場合にはステップ1233に進み、ない場合には処理を終了する。
(図11:ステップ1233)
制御プログラム高速起動部123は制御リカバリバックアップ162から最も古い入力値を読み出し、それを入力としてバックアップ制御プログラム124を実行する。
図12はバックアップ制御プログラム124の動作フローである。以下、図12の各ステップについて説明する。
(図12:ステップ1241)
バックアップ制御プログラム124は入力値1509に基づいてプログラム内部の状態値を更新し、制御計画値1510を出力する。出力とは他のプログラムからの参照可能な状態になることを示す。例えばメモリへの保存などがある。
図13は代理出力部125の動作フローである。以下、図13の各ステップについて説明する。
(図13:ステップ1251)
代理出力部125は制御計画値バックアップ161から制御計画値1505を読み出し、状況に基づいて制御計画値を出力する。状況とは、例えば、故障検知からの計画時間を示すがこれに限らない。例えば、入力値1501から車両システムに対する情報、あるいは外界の情報を得ることで、それに基づいて制御計画値を出力してもよい。
図14は再構成検証部126の動作フローである。以下、図14の各ステップについて説明する。
(図14:ステップ1261)
再構成検証部126は検知時刻1513からの経過時間が閾値を超えたか否かを判定する。超えている場合にはステップ1268へ進み、超えていない場合にはステップ1262へ進む。
(図14:ステップ1262)
再構成検証部126は代理出力部125の制御計画値1511とバックアップ制御プログラム124の制御計画値1510を比較する。
(図14:ステップ1263)
比較結果が閾値以内に収まる場合にはステップ1264へ進み、収まらない場合には1267へ進む。
(図14:ステップ1264)
再構成検証部126はバックアップ制御プログラム124の制御計画値1510を制御計画値1512として出力する。
(図14:ステップ1265)
再構成検証部126は縮退モード1023に遷移する。またユーザにモード変更を通知することを想定しているがこれに限らない。
(図14:ステップ1266)
再構成検証部126はバックアップ制御プログラム124の周期起動設定を行う。
(図14:ステップ1267)
再構成検証部126は代理出力部125の制御計画値1511を制御計画値1512として出力する。
(図14:ステップ1268)
再構成検証部126はフェールセーフモード1024に遷移する。またユーザにモード変更を通知することを想定しているがこれに限らない。
(図14:ステップ1269)
再構成検証部126はフェールセーフプログラム128を起動し、周期的に起動するように設定を行う。
図15は運動制御プログラム127の動作フローである。以下、図15の各ステップについて説明する。
(図15:ステップ1271)
運動制御プログラム127は制御計画値1512に基づいた制御指令値1514を出力する。制御指令値1514はネットワークに送信されることを想定しているが、これに限らない。例えば他のプログラムが参照できるようにメモリに保存することも考えられる。
図16はフェールセーフプログラム128の動作フローである。以下、図16の各ステップについて説明する。
(図16:ステップ1281)
フェールセーフプログラム128は制御計画値バックアップ161の制御計画値1505に基づいて制御計画値1510を出力する。制御計画値に速度指令などの情報が入っている場合には原則そのままの速度指令を出力しない。例えば、時間が経過するに応じて徐々に減速するように変更した制御計画値1510を出力する。
図17は走行軌道を例にした制御計画値1510と制御計画値1511の比較である。実線の矢印は制御計画値バックアップ161の制御計画値1511を示し、点線の矢印はバックアップ制御プログラム124の制御計画値1510を示す。車両システムの現在地を示す「自車」が道路の走行ポイント1-1〜1-7を通るように制御計画値1511に保存されている。1-7に到着するまでがタイムアウト時間とすると、シーン1では、1-3〜1-7を通るように制御計画値1510が計算されているため1-3の時点で制御計画値が一致し、縮退モード1023に遷移する。しかし、シーン2の場合には2-3〜2-7を通るように制御計画値1510が計算されているため、リカバリが成功せず、タイムアウトの時点でフェールセーフモード1024に遷移する。
図18は縮退モード1023とフェールセーフモード1024の制御指令値1514の例である。シーン1は故障検知後、再構成デッドライン1515ΔT以内に縮退モード1023に遷移できたケースの例である。実施形態1では再構成デッドライン1515は故障検知時刻1513からの経過時間で定義しているがこれに限らない。例えば、故障発生時刻からの経過時間と定義しても良い。
この例の縮退モード1023では、故障後にバックアップ制御プログラム124に制御を引き継ぐことができたため、通常制御プログラム111の制御指令値80kmと同様の80kmをバックアップ制御プログラム124が出している。
一方、シーン2は、再構成デッドラインΔT以内に縮退モード1023に遷移できなかったケースの例である。再構成デッドラインΔTを超過するとフェールセーフモード1024に遷移する。フェールセーフモード102ではフェールセーフプログラム128が速度を減速させるように制御を実施し、徐々に車が停止するように制御指令値1514を出力する。
本実施の形態1では、ECU−Aが故障した場合を取り上げているが、これに限らない。例えば、ECU−AとECU−Bの間のネットワークバスが故障し、ECU−BがECU−Aからの制御計画値を受信できず、故障検知部がECU−Aを故障と判定する場合が考えられる。
本実施の形態1では、ECU−A故障後にすぐにECU−Bでリカバリを実行しているがこれに限らない。例えば、ECU−A内でリセットを実行し、その回復を試みても良い。リセットにより回復しない場合にはソフトウェアの一時故障ではなく、永久故障と判定し、ECU−Bでバックアップ制御プログラムを起動させてよい。
本実施の形態1では、フェールセーフプログラムは、再構成デッドライン超過後に起動する構成だがこれに限らない。例えば、常に実行されていても良い。その場合には、フェールセーフプログラムの制御指示値か他の通常制御プログラムの制御値指示値を比較することが考えられる。
本実施の形態1では、フェールセーフプログラムは、制御指令値を出力することを想定しているがこれに限らない。例えば、ユーザに通知するための画面出力であっても良い。
本実施の形態1によると、ECU−B12にECU−A11の制御計画値1503が設計値通りに到着しない場合、ECU−B12が機能の故障と判定し、制御バックアッププログラムに切り替えるためのフェールオペレーショナル動作を実施できる。正常動作し続ける場合は、制御バックアッププログラムを実行する必要がないため、CPUリソースやRAMリソースを節約できる。
本実施の形態1によると、初回の正常な制御計画値を出力するために受信した入力値1509を用いて複数回実行する必要があるバックアップ制御プログラム124において、入力値1509を周期的に受信するECU−B12であったとしても、制御プログラム高速起動部123により、必要な実行回数×受信周期未満の時間で、バックアップ制御プログラム124の初回の正常な制御計画値を出力することを可能にできる。必要な実行回数はバックアップ制御プログラム124の運動方程式における微分回数以上を想定しているがこれに限らない。
本実施の形態1によると、故障検知部122が検知時刻1513を測定することにより、再構成検証126がリカバリのタイムアウト(再構成のデッドラインΔT)を判定できる。
本実施の形態1によると、バックアップ制御プログラム124が初期化されている間、代理出力部125が故障前までに生成された制御計画値を通常制御プログラムの代理で出力する。前記制御計画値は故障前までに生成されたため、妥当な値であり、制御システムが暴走することがない。
本実施の形態1によると、再構成検証部126が再構成デッドラインΔT以内にバックアップ制御プログラムのリカバリが成功したか否かを、通常制御プログラムの制御計画値との比較結果で行っているが、これに限らない。例えば、再構成検証部126はバックアップ制御プログラムの制御計画値の妥当性を他のセンサから得られた外界情報と照らし合わせて行っても良い。
本実施の形態1では、通常制御プログラム、バックアップ制御プログラム、フェールセーフプログラムの出力が制御計画値であるが、これに限らない。例えば制御指令値であってもよい。
本実施の形態1では、通常制御プログラムが故障時にバックアップ制御プログラムに切り替えているがこれに限らない。例えば、通常制御プログラムを2種類設けた車両システムにおいて、一方の通常制御プログラムが故障時に、他方に切り替えてもよい。同様に、通常制御プログラムが故障時に、更に機能レベルが高い制御プログラムに切り替えてもよい。
本実施の形態1ではECU−AとECU−B間の通信はバス型のネットワーク13を介して行われたが、これに限らない。例えば、WiFiのような公知の無線通信であっても良し、共有メモリであってもよい。
本実施の形態1ではコントローラの例としてECUを例題としたがこれに限らない。ファクトリーオートメーションで用いるコントローラでも良いし、モバイル端末であってもよい。
本実施の形態1ではECU−A11が故障時に他のECUであるECU−B12で制御バックアッププログラムを起動させているがこれに限らない。例えば故障要因が通常制御プログラムの不具合である場合、ECU−A11にバックアップ制御プログラムなどのECU−B12のソフトウェア、データをすべて配置することで、ECU−A11でバックアップ制御プログラムによるリカバリを実施してもよい。
本実施の形態1では通常制御プログラム111、バックアップ制御プログラム124、フェールセーフプログラム128をCPU(Central Processing Unit)で実行することを想定しているが、これに限らない。例えば、FPGA(Field−Programmable Gate Array)を利用しても良いし、GPGPU(General―Purpose Computing On Graphics Processing Units)を利用しても良い。
本実施の形態1ではフェールセーフプログラムを故障検知後に起動しているがこれに限らない。例えば、フェールセーフプログラムを通常制御プログラムと同様に常時起動していても良い。
本実施の形態1では制御リカバリバックアップに格納した入力値を時系列順にバックアップ制御プログラムに入力して実行したのちに、再構成検証部を実行していたがこれに限らない。例えば、時系列データでバックアップ制御プログラムを更新するたびに逐次再構成検証部を実行しても良い。
本実施の形態1では複数のECUを例としたがこれに限らない。例えば、マルチコアシステムにおいて、ECU−Aを一方のコア、ECU−Bを他方のコアとしても良い。
本実施の形態1では再構成検証部126が故障検知時刻からの計画時間が閾値を超えた際にすぐにフェールセーフモードに遷移するが、これに限らない。例えば、現在の車両の状態がリカバリに適さない場合には、それが終わるまで待った後にフェールセーフモードに遷移してもよい。
<実施の形態2>
図19は、本発明の実施の形態2に係る車両システム2の構成図である。本システムにはECU−A21、ECU−B22、ECU−C23、ネットワークバス24を備える。実施の形態1のECUB12のモジュールを、ECU−B22とECU−C23に分割した構成となっている。
図20は実施の形態2に係る通常走行モード1021時の動作フローである。ECU−A21は図2で述べたECU−A11と同様であり、ECU−B22とECU−C23は図2で述べたECU−B12と制御バックアップデータ保存部221が制御バックアップデータ保存部121と入れ替わっているが、他は同様である。
図21は実施の形態2に係るリカバリモード1022時の動作フローである。ECU−B22は制御バックアップデータ保存部221、故障検知部225、制御プログラム高速起動部224、バックアップ制御プログラム124を備え、ECU−C23は故障検知部225、代理出力部125、再構成検証部126、運動制御プログラム127を備え、ECU−A21は故障している。
このようにバックアップ制御プログラム124と代理出力部125を異なるECUで実行することで、バックアップ制御プログラム124に切り替える際にリセットを行うことが可能になり、オペレーティングシステムの構成を変更することが容易になる。
図22は実施の形態2に係る縮退モード1023時の動作フローである。ECU−B22はバックアップ制御プログラム124を備え、ECU−C23は再構成検証部126、運動制御プログラム127を備え、ECU−A21は故障している。
図23は実施の形態2に係るフェールセーフモード1024時の動作フローである。ECU−C23はフェールセーフプログラム128、再構成検証部126、運動制御プログラム127を備え、ECU−A21は故障し、ECU−B22はリカバリのタイムアウト状態となっている。
図24は制御バックアップデータ保存部221の動作フローである。以下、図24の各ステップについて説明する。
(図24:ステップ2211)
制御バックアップデータ保存部221は現在のシステム状態が通常走行状態であるかを確認する。通常走行状態である場合にはステップ2212に進み、それ以外である場合にはステップ2213に進む。
(図24:ステップ2212)
制御バックアップデータ保存部221は受信した通常制御プログラム111の状態値1504を制御リカバリバックアップ162に保存する。
(図24:ステップ2213)
制御バックアップデータ保存部221は受信した入力値1501を入力値プール222に時系列に保存する。
(図24:ステップ2214)
制御バックアップデータ保存部221は受信した入力値1501を制御リカバリバックアップ162に時系列に保存する。
(図24:ステップ2215)
制御バックアップデータ保存部221は受信した通常制御プログラム111の制御計画値1503を制御計画値バックアップ161に時系列に保存する。
図25は故障検知部225の動作フローである。以下、図25の各ステップについて説明する。
(図25:ステップ2251)
故障検知部225は通常制御プログラム111に故障が発生したか否かを判定する。故障と判定した場合にはステップ2252に進み、それ以外の場合には処理を終了する。
(図25:ステップ2252)
故障検知部225は状態をリカバリモード1022に遷移させる。またユーザに通知することを想定しているが、これに限らない。
(図25:ステップ2253)
故障検知部225は故障要因対応アクション(ECU−B22の場合は223、ECU−C23の場合は231)のアクション指示(ECU−B22の場合は2203、ECU−C23の場合は2301)が機能再構成であるか否かを確認する。機能再構成である場合にはステップ2254に進み、それ以外の場合にはステップ2255に進む。
(図25:ステップ2254)
故障検知部225は制御プログラム高速起動部224を呼び出す。
(図25:ステップ2255)
故障検知部225は現在時刻を検知時刻1513として保存する。現在時刻はハードウェアタイマを想定しているがこれに限らない。
(図25:ステップ2256)
故障検知部225は代理出力部125を周期的に実行されるように起動する。
(図25:ステップ2257)
故障検知部225は再構成検証部126を周期的に実行されるように起動する。
図26は制御プログラム高速起動部224の動作フローである。以下、図26の各ステップについて説明する。
(図26:ステップ2241)
制御プログラム高速起動部224は制御リカバリバックアップ162から状態値106を読み出し、バックアップ制御プログラム124に設定する。
(図26:ステップ2242)
制御プログラム高速起動部224は制御リカバリバックアップ162に使用していない時系列データがあるか否かを判定する。時系列データとは時系列順に保存した状態値1506と入力値1507、あるいは入力値1507のみである。使用していない時系列データがある場合にはステップ2243に進み、ない場合にはステップ2244に進む。
(図26:ステップ2243)
制御プログラム高速起動部224は制御リカバリバックアップ162から最も古い入力値を読み出し、それを入力としてバックアップ制御プログラム124を実行する。
(図26:ステップ2244)
制御プログラム高速起動部224は入力値プール222に使用していない時系列データがあるか否かを判定する。使用していない時系列データがある場合にはステップ2245に進み、ない場合には処理を終了する。
(図26:ステップ2245)
制御プログラム高速起動部224は入力値プール222から最も古い入力値を読み出し、それを入力としてバックアップ制御プログラム124を実行する。
実施の形態2では代理出力部や再構成検証部は周期に実行されることを想定しているがこれに限らない。例えば、一度だけ代理出力部と再構成検証部を実行しても良いし、縮退モード時やフェールセーフモード時に代理出力部を停止させてもよい。
実施の形態2によると、入力値プールによりリカバリモード時に新たに受信した入力値に対しても対応できるため、制御の安定性が向上する。
実施の形態2によると、ECU−B22でリカバリのためにリセットを行ったとしても、ECU−C23の代理出力部の実行を阻害しないため、制御の安定性が向上する。
バックアップ制御プログラムの出力は、制御リカバリバックアップと入力値プールの時系列データをすべて使用した後に初めて行っても良い。これによりネットワークの通信負荷を低減することが可能になる。またバックアップ制御プログラムが最も安定した状態となるため、安全性が向上する。一方、リアルタイム性を追求する場合には、時系列データがすべて使用するまで待たずに、中間値などを出力し、再構成が成功した場合には縮退モードにすぐに切り替える設計としても良い。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形形態が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
実施の形態1、形態2ともにバックアップ制御プログラムと制御リカバリバックアップを同じECUに配置しているが、これに限らない。例えば、制御リカバリバックアップをバックアップ制御プログラムと異なるECUに配置し、リカバリモード時に制御リカバリバックアップの状態値と入力値をネットワーク経由で受信し、制御プログラム高速起動部でバックアップ制御プログラムを実行する形態としてもよい。
11 ECU−A(コントローラ部)、12 ECU−B(コントローラ部)、112 制御バックアップデータ抽出部、121 制御バックアップデータ保存部、123 制御プログラム高速起動部、125 代理出力部

Claims (8)

  1. 一方の制御プログラムが算出した状態値を出力する制御バックアップデータ抽出部と、
    前記制御バックアップデータ抽出部が出力した状態値、前記一方の制御プログラムが算出した制御計画値、及び他方の制御プログラムが参照する入力値を時系列にバックアップとして保存する制御バックアップデータ保存部と、
    前記一方の制御プログラムの故障検知後に、前記他方の制御プログラムに前記制御バックアップデータ保存部が保存する前記状態値と前記入力値を前記時系列の順に入力し、制御出力が可能な状態として制御機能を維持する制御プログラム高速起動部と、を備え
    前記一方の制御プログラムに故障が発生した際に、一定時間以内であれば、前記他方の制御プログラムでバックアップ制御プログラムを起動し、一定時間を超過する場合には、前記他方の制御プログラムでフェールセーフプログラムを実行することを特徴とするコントローラ。
  2. 前記故障検知後に保存された前記制御計画値を出力する代理出力部を備えることを特徴とする、請求項1記載のコントローラ。
  3. 前記他方の制御プログラムの初期化後に、前記バックアップ制御プログラムが演算した御計画値と前記代理出力部の前記制御計画値とを比較し、閾値に応じて出力する制御計画値を選定する構成検証部を備えることを特徴とする、請求項2記載のコントローラ。
  4. 前記再構成検証部は、前記一方の制御プログラムに故障が発生した際に一定時間を超過する場合にはフェールセーフプログラムに切り替えることを特徴とする、請求項3記載のコントローラ。
  5. 故障が発生した際の切り替え結果をユーザに通知することを特徴とする、請求項4に記載のコントローラ。
  6. 前記制御プログラム高速起動部と前記代理出力部が異なるハードウェアで実行されることを特徴とする、請求項2に記載のコントローラ。
  7. 複数のコントローラ部を備え、一方の前記コントローラ部に故障が発生した際に、一定時間以内であれば、他方の前記コントローラ部でバックアップ制御プログラムを起動し、一定時間を超過する場合には、前記他方の前記コントローラ部でフェールセーフプログラムを実行することを特徴とする、請求項1記載のコントローラ。
  8. ソフトウェア起因の故障である場合には、前記他方の前記コントローラ部でバックアップ制御プログラムを起動せずに、故障が発生した前記一方の前記コントローラ部でバックアップ制御プログラムを起動することを特徴とする、請求項7記載のコントローラ。
JP2019524656A 2017-06-15 2017-06-15 コントローラ Active JP6853883B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/022112 WO2018229930A1 (ja) 2017-06-15 2017-06-15 コントローラ

Publications (2)

Publication Number Publication Date
JPWO2018229930A1 JPWO2018229930A1 (ja) 2020-04-09
JP6853883B2 true JP6853883B2 (ja) 2021-03-31

Family

ID=64660533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019524656A Active JP6853883B2 (ja) 2017-06-15 2017-06-15 コントローラ

Country Status (4)

Country Link
US (1) US11366443B2 (ja)
EP (1) EP3614216B1 (ja)
JP (1) JP6853883B2 (ja)
WO (1) WO2018229930A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7010087B2 (ja) * 2018-03-16 2022-01-26 トヨタ自動車株式会社 プログラム更新管理装置、プログラム更新管理方法、およびプログラム
US20200410785A1 (en) * 2018-03-26 2020-12-31 Sumitomo Electric Industries, Ltd. On-vehicle communication system, switch device, communication control method, and communication control program
JP7363118B2 (ja) * 2019-06-14 2023-10-18 マツダ株式会社 外部環境認識装置
JP7316245B2 (ja) * 2020-03-27 2023-07-27 日立Astemo株式会社 車両制御システム及び車両制御装置
JP2023028829A (ja) * 2021-08-20 2023-03-03 株式会社日立製作所 制御装置、制御装置の制御方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2612385B2 (ja) * 1991-07-02 1997-05-21 富士通株式会社 多重化サブシステム間処理引継ぎ処理方式
JP3072048B2 (ja) * 1996-03-19 2000-07-31 株式会社東芝 計算機システムおよび計算機システムのソフトウェア故障回復方法
JP2001063492A (ja) * 1999-08-27 2001-03-13 Nec Corp 車両安全制御装置の電子制御装置
JP3816416B2 (ja) * 2002-03-28 2006-08-30 三菱電機株式会社 電子スロットル制御システムのフェイルセーフ装置
JP4701977B2 (ja) * 2005-10-06 2011-06-15 株式会社デンソー 車載ネットワークの診断システム及び車載制御装置
US7480827B2 (en) * 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
ES2345115T3 (es) * 2006-12-19 2010-09-15 Saab Ab Un procedimiento para asegurar la funcion de salvaguardar en un sistema electrico de un vehiculo, y sistema electrico correspondiente.
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers
US9853453B2 (en) * 2012-04-20 2017-12-26 Siemens Aktiengesellschaft Wind park control system
US10185315B2 (en) 2014-02-25 2019-01-22 Hitachi Automotive Systems, Ltd. Motor control system and motor control method
JP6213483B2 (ja) * 2015-01-09 2017-10-18 トヨタ自動車株式会社 クランク角センサの故障診断装置
JP6650242B2 (ja) * 2015-10-16 2020-02-19 日立オートモティブシステムズ株式会社 自動運転システム、自動運転制御方法、データecuおよび自動運転ecu
JP6698320B2 (ja) 2015-11-16 2020-05-27 日立オートモティブシステムズ株式会社 処理装置および車両制御システム
US9952948B2 (en) 2016-03-23 2018-04-24 GM Global Technology Operations LLC Fault-tolerance pattern and switching protocol for multiple hot and cold standby redundancies

Also Published As

Publication number Publication date
WO2018229930A1 (ja) 2018-12-20
US11366443B2 (en) 2022-06-21
EP3614216B1 (en) 2022-11-23
EP3614216A4 (en) 2020-12-16
JPWO2018229930A1 (ja) 2020-04-09
EP3614216A1 (en) 2020-02-26
US20200159180A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
JP6853883B2 (ja) コントローラ
CN111994094B (zh) 远程遥控接管方法、装置、系统、介质及无人驾驶车辆
JP5632602B2 (ja) 飛行制御システムを再起動するための方法およびシステム
CN112004730B (zh) 车辆控制装置
US8452465B1 (en) Systems and methods for ECU task reconfiguration
CN107315656B (zh) 多内核的嵌入式plc软件恢复方法和plc
JP2010285001A (ja) 電子制御システム、機能代行方法
EP3330857B1 (en) Vehicle control device
CN104570721A (zh) 冗余控制器主从状态确定方法
CN115826393A (zh) 一种飞控系统的双余度管理方法及装置
JP6861302B2 (ja) 車両制御装置および電子制御システム
CN107038095B (zh) 用于冗余地处理数据的方法
CN113993752B (zh) 电子控制单元和计算机可读取的记录介质
JP5880411B2 (ja) 情報処理装置
CN114407909B (zh) 控制装置
US10324636B2 (en) Fail-operational system design pattern based on software code migration
US10963354B2 (en) Control apparatus and recovery processing method for control apparatus
WO2023007209A1 (en) Fault-tolerant distributed computing for vehicular systems
JP3122371B2 (ja) 計算機システム
JP2010055509A (ja) 障害復旧システム、方法及びプログラム、並びにクラスタシステム
KR101660094B1 (ko) N+1 다중화 구조의 스위치 패브릭 카드에서의 마스터 클럭원 설정 방법 및 동기 클럭 제공 시스템
JP6710128B2 (ja) 通信装置及び通信装置の復旧方法
WO2020039739A1 (ja) 通信端末、通信端末の異常確認方法、通信端末用プログラム
CN117992278A (zh) 一种故障处理方法和车载装置
Murakami Fault tolerance design for computers used in humanoid robots

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210302

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210312

R150 Certificate of patent or registration of utility model

Ref document number: 6853883

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150