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

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

▶ 株式会社ジェイテクトの特許一覧

<>
  • 特許-モータの制御装置 図1
  • 特許-モータの制御装置 図2
  • 特許-モータの制御装置 図3
  • 特許-モータの制御装置 図4
  • 特許-モータの制御装置 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-01
(45)【発行日】2022-08-09
(54)【発明の名称】モータの制御装置
(51)【国際特許分類】
   H02P 25/22 20060101AFI20220802BHJP
   B60R 16/02 20060101ALI20220802BHJP
【FI】
H02P25/22
B60R16/02 660G
【請求項の数】 6
(21)【出願番号】P 2018169463
(22)【出願日】2018-09-11
(65)【公開番号】P2020043692
(43)【公開日】2020-03-19
【審査請求日】2021-08-17
(73)【特許権者】
【識別番号】000001247
【氏名又は名称】株式会社ジェイテクト
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】西城 正人
(72)【発明者】
【氏名】辻橋 正貴
(72)【発明者】
【氏名】丹羽 智宏
(72)【発明者】
【氏名】藤 公志
【審査官】島倉 理
(56)【参考文献】
【文献】国際公開第2018/12419(WO,A1)
【文献】特開2017-158230(JP,A)
【文献】特開2003-33075(JP,A)
【文献】特開2012-70532(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H02P 25/22
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
互いに絶縁された第1ステータコイルおよび第2ステータコイルを備えるモータを制御対象とし、前記第1ステータコイルに接続されている第1駆動回路、および前記第2ステータコイルに接続されている第2駆動回路を操作するモータの制御装置において、
前記第1ステータコイルを流れる電流を制御すべく前記第1駆動回路に操作信号を出力する第1処理回路と、
前記第2ステータコイルを流れる電流を制御すべく前記第2駆動回路に操作信号を出力する第2処理回路と、を備え、
前記第1処理回路は、起動時に前記第2処理回路が電流の制御を実行している場合、前記第2処理回路に同期信号の出力を要求する要求信号を出力する同期要求処理を実行し、
前記第2処理回路は、前記要求信号に応じて、当該第2処理回路が実行する周期的なタスクの実行タイミングに同期した同期信号を前記第1処理回路に出力する再同期出力処理を実行するモータの制御装置。
【請求項2】
前記第2処理回路は、当該第2処理回路が実行する周期的なタスクに応じた周期信号を出力する周期信号出力処理を実行し、
前記第1処理回路は、前記第2処理回路の前記再同期出力処理による前記同期信号に応じて当該第1処理回路の周期的なタスクを開始した後、前記第2処理回路の前記周期信号出力処理による前記周期信号に基づき、当該第1処理回路の周期的なタスクのタイミングを修正する修正処理を実行する請求項1記載のモータの制御装置。
【請求項3】
前記第2処理回路は、起動時に前記第1処理回路が電流の制御を実行していない場合、前記第1処理回路に準備完了通知を出力する完了出力処理を実行し、
前記第1処理回路は、前記完了出力処理による前記準備完了通知を受信する場合に当該第1処理回路が実行する周期的なタスクの実行タイミングに同期した同期信号を前記第2処理回路に出力する同期出力処理を実行する請求項1または2記載のモータの制御装置。
【請求項4】
前記第1処理回路は、当該第1処理回路が実行する周期的なタスクに応じた周期信号を出力する周期信号出力処理を実行し、
前記第2処理回路は、前記第1処理回路の前記同期出力処理による前記同期信号に応じて当該第2処理回路の周期的なタスクを開始した後、前記第1処理回路の前記周期信号出力処理による前記周期信号に基づき、当該第2処理回路の周期的なタスクのタイミングを修正する修正処理を実行する請求項3記載のモータの制御装置。
【請求項5】
前記周期的なタスクは、第1タスクであり、
前記第1処理回路および前記第2処理回路は、前記第1タスクの実行周期よりも長い周期で周期的に実行される第2タスクを実行し、
前記同期信号は、前記第1タスクおよび前記第2タスクの双方の実行タイミングに同期した信号である請求項1~4のいずれか1項に記載のモータの制御装置。
【請求項6】
前記第1処理回路は、前記第1ステータコイルに流れる電流の検出値を取得する第1電流取得処理と、前記モータの回転角度の検出値を取得する第1角度取得処理と、前記第1電流取得処理によって取得された電流の検出値および前記第1角度取得処理によって取得された回転角度の検出値に基づき前記第1ステータコイルに流れる電流を指令値に制御する第1電流制御処理と、を実行し、
前記第2処理回路は、前記第2ステータコイルに流れる電流の検出値を取得する第2電流取得処理と、前記モータの回転角度の検出値を取得する第2角度取得処理と、前記第2電流取得処理によって取得された電流の検出値および前記第2角度取得処理によって取得された回転角度の検出値に基づき前記第2ステータコイルに流れる電流を指令値に制御する第2電流制御処理と、を実行し、
前記第1タスクは、前記第1電流取得処理および前記第2電流取得処理であり、
前記第2タスクは、前記第1角度取得処理および前記第2角度取得処理である請求項5記載のモータの制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、互いに絶縁された第1ステータコイルおよび第2ステータコイルを備えるモータを制御対象とし、前記第1ステータコイルに接続されている第1駆動回路、および前記第2ステータコイルに接続されている第2駆動回路を操作するモータの制御装置に関する。
【背景技術】
【0002】
たとえば下記特許文献1には、互いに絶縁された2つのステータコイルのそれぞれに流れる電流を制御する各別のMPU(処理回路)を備えた制御装置が記載されている。詳しくは、それら2つの処理回路は、ステータコイルに流れる電流を制御しているときに、互いの制御タイミングのずれを検知し、ずれを低減すべく制御タイミングを微調整する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-158230号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、たとえば2つの処理回路のうちの1つの処理回路の電源電圧が動作保証電圧未満となりリセットされる場合、他方の処理回路は電流の制御を継続している。この段階で、リセットされた処理回路が再度起動する場合、それら2つの処理回路の動作を同期させることができない事態を招いてしまう。
【課題を解決するための手段】
【0005】
以下、上記課題を解決するための手段およびその作用効果について記載する。
1.互いに絶縁された第1ステータコイルおよび第2ステータコイルを備えるモータを制御対象とし、前記第1ステータコイルに接続されている第1駆動回路、および前記第2ステータコイルに接続されている第2駆動回路を操作するモータの制御装置において、前記第1ステータコイルを流れる電流を制御すべく前記第1駆動回路に操作信号を出力する第1処理回路と、前記第2ステータコイルを流れる電流を制御すべく前記第2駆動回路に操作信号を出力する第2処理回路と、を備え、前記第1処理回路は、起動時に前記第2処理回路が電流の制御を実行している場合、前記第2処理回路に同期信号の出力を要求する要求信号を出力する同期要求処理を実行し、前記第2処理回路は、前記要求信号に応じて、当該第2処理回路が実行する周期的なタスクの実行タイミングに同期した同期信号を前記第1処理回路に出力する再同期出力処理を実行するモータの制御装置である。
【0006】
上記構成において、第1処理回路および第2処理回路の双方が電流の制御を実行しているときに、たとえば電源電圧の低下等によって、第1処理回路のみがリセットされることがある。その場合、第1処理回路がリセットから復帰し起動するときに第2処理回路が電流の制御を実行していることとなる。そこで上記構成では、第2処理回路が電流の制御を実行しているときに第1処理回路が起動する場合、第1処理回路から第2処理回路に要求信号を出力し、第2処理回路では要求信号に応じて第2処理回路が実行する周期的なタスクの実行タイミングに同期した同期信号を第1処理回路に出力する。これにより、第1処理回路は、第2処理回路の周期的なタスクに同期してタスクを実行することができる。
【0007】
2.前記第2処理回路は、当該第2処理回路が実行する周期的なタスクに応じた周期信号を出力する周期信号出力処理を実行し、前記第1処理回路は、前記第2処理回路の前記再同期出力処理による前記同期信号に応じて当該第1処理回路の周期的なタスクを開始した後、前記第2処理回路の前記周期信号出力処理による前記周期信号に基づき、当該第1処理回路の周期的なタスクのタイミングを修正する修正処理を実行する上記1記載のモータの制御装置である。
【0008】
上記構成では、第2処理回路が出力する周期信号に基づき第1処理回路が周期的なタスクのタイミングを修正することにより、第1処理回路のタスクの実行タイミングと第2処理回路のタスクの実行タイミングとのずれを低減することができる。
【0009】
3.前記第2処理回路は、起動時に前記第1処理回路が電流の制御を実行していない場合、前記第1処理回路に準備完了通知を出力する完了出力処理を実行し、前記第1処理回路は、前記完了出力処理による前記準備完了通知を受信する場合に当該第1処理回路が実行する周期的なタスクの実行タイミングに同期した同期信号を前記第2処理回路に出力する同期出力処理を実行する上記1または2記載のモータの制御装置である。
【0010】
制御装置の起動時は、第1処理回路および第2処理回路の双方の起動時となり、いずれも電流の制御を実行していない。そこで、上記構成では、第2処理回路の起動時に第1処理回路が電流の制御を実行していない場合には、第2処理回路から第1処理回路に準備完了通知を出力する。これに対し、第1処理回路が第1処理回路の周期的なタスクの実行タイミングに同期した同期信号を第2処理回路に出力することにより、第1処理回路の周期的なタスクと第2処理回路の周期的なタスクとを同期させることができる。
【0011】
4.前記第1処理回路は、当該第1処理回路が実行する周期的なタスクに応じた周期信号を出力する周期信号出力処理を実行し、前記第2処理回路は、前記第1処理回路の前記同期出力処理による前記同期信号に応じて当該第2処理回路の周期的なタスクを開始した後、前記第1処理回路の前記周期信号出力処理による前記周期信号に基づき、当該第2処理回路の周期的なタスクのタイミングを修正する修正処理を実行する上記3記載のモータの制御装置である。
【0012】
上記構成では、第1処理回路が出力する周期信号に基づき第2処理回路が周期的なタスクのタイミングを修正することにより、第1処理回路のタスクの実行タイミングと第2処理回路のタスクの実行タイミングとのずれを低減することができる。
【0013】
さらに、上記構成が上記「2」の構成を有する場合、第1処理回路の起動時に第2処理回路が電流の制御を実行している場合と、第2処理回路の起動時に第1処理回路が電流の制御を実行していない場合とで、修正処理を行う主体を切り替えている。このため、第1処理回路の起動時に第2処理回路が電流の制御を実行しているにもかかわらず第1処理回路の起動後に第2処理回路が修正処理をする場合と比較すると、一方の起動時に既に電流の制御を実行している方を基準とすることができることから、同期処理を実行しやすい。
【0014】
5.前記周期的なタスクは、第1タスクであり、前記第1処理回路および前記第2処理回路は、前記第1タスクの実行周期よりも長い周期で周期的に実行される第2タスクを実行し、前記同期信号は、前記第1タスクおよび前記第2タスクの双方の実行タイミングに同期した信号である上記1~4のいずれか1つに記載のモータの制御装置である。
【0015】
上記構成では、同期信号を第1タスクのみならず第2タスクにも同期した信号とすることにより、第1処理回路の第1タスクの実行タイミングと第2処理回路の第1タスクの実行タイミングとを同期させるのみならず、第1処理回路の第2タスクの実行タイミングと第2処理回路の第2タスクの実行タイミングとを同期させることができる。しかも、第2タスクは、上記2,4の周期信号よりも周期が長いため、上記周期信号によっては同期させることができないものである。
【0016】
6.前記第1処理回路は、前記第1ステータコイルに流れる電流の検出値を取得する第1電流取得処理と、前記モータの回転角度の検出値を取得する第1角度取得処理と、前記第1電流取得処理によって取得された電流の検出値および前記第1角度取得処理によって取得された回転角度の検出値に基づき前記第1ステータコイルに流れる電流を指令値に制御する第1電流制御処理と、を実行し、前記第2処理回路は、前記第2ステータコイルに流れる電流の検出値を取得する第2電流取得処理と、前記モータの回転角度の検出値を取得する第2角度取得処理と、前記第2電流取得処理によって取得された電流の検出値および前記第2角度取得処理によって取得された回転角度の検出値に基づき前記第2ステータコイルに流れる電流を指令値に制御する第2電流制御処理と、を実行し、前記第1タスクは、前記第1電流取得処理および前記第2電流取得処理であり、前記第2タスクは、前記第1角度取得処理および前記第2角度取得処理である上記5記載のモータの制御装置である。
【図面の簡単な説明】
【0017】
図1】一実施形態にかかる制御装置およびモータを示す図。
図2】同実施形態にかかる制御装置が実行する処理の一部を示す図。
図3】同実施形態にかかる第1タスクおよび第2タスクの実行タイミングを例示するタイムチャート。
図4】(a)および(b)は、同実施形態にかかる同期処理の手順を示す流れ図。
図5】同実施形態にかかる同期処理を例示するタイムチャート。
【発明を実施するための形態】
【0018】
以下、モータの制御装置にかかる一実施形態について図面を参照しつつ説明する。
図1に示すモータ10は、転舵輪を転舵させるための転舵アクチュエータにおける動力源である。モータ10は、1つのロータ12と、一対のステータコイルであるA系統ステータコイル14aおよびB系統ステータコイル14bと、を備えている。制御装置20は、モータ10を制御対象とし、モータ10の制御量であるトルクを制御する。制御装置20は、A系統ステータコイル14aおよびB系統ステータコイル14bのそれぞれに対応した各別の回路であるA系統の回路とB系統の回路とを備えている。
【0019】
詳しくは、制御装置20は、A系統の回路として次のものを備えている。すなわち、A系統ステータコイル14aに接続されたA系統インバータ22aと、A系統インバータ22aに操作信号MSaを出力することによってA系統ステータコイル14aに流れる電流を制御するA系統マイコン30aと、A系統マイコン30aに外部クロック信号を出力するA系統発振器24aと、を備えている。また、制御装置20は、B系統の回路として、次のものを備えている。すなわち、B系統ステータコイル14bに接続されたB系統インバータ22bと、B系統インバータ22bに操作信号MSbを出力することによってB系統ステータコイル14bに流れる電流を制御するB系統マイコン30bと、B系統マイコン30bに外部クロック信号を出力するB系統発振器24bと、を備えている。なお、A系統マイコン30aやA系統インバータ22a、B系統マイコン30bやB系統インバータ22bには、バッテリ50の端子電圧が印加されている。
【0020】
上記A系統マイコン30aは、A系統角度センサ40aによって検出されるロータ12の回転角度θaや、A系統ステータコイル14aに流れる3相の電流iua,iva,iwaを取得する。なお、電流iua,iva,iwaは、たとえばA系統インバータ22aの各レッグに接続されたシャント抵抗の電圧降下として検出すればよい。
【0021】
上記B系統マイコン30bは、B系統角度センサ40bによって検出されるロータ12の回転角度θbや、B系統ステータコイル14bに流れる3相の電流iub,ivb,iwbを取得する。なお、電流iub,ivb,iwbは、たとえばB系統インバータ22bの各レッグに接続されたシャント抵抗の電圧降下として検出すればよい。
【0022】
以下では、A系統とB系統とを総括して記載する場合、「#」を用い、たとえば「#系統ステータコイル14#には#系統インバータ14#が接続されている」等と記載することとする。すなわち、「#」は、「系統」の前に記載される場合、大文字の「A,B」を意味し、数字やアルファベット等の記号の後に記載される場合、小文字の「a,b」を意味する。
【0023】
#系統マイコン30#には、CPU32#、ROM34#、周辺回路36#等が備えられ、それらがバスライン38#を介して接続されている。ここで、周辺回路36#は、外部クロック信号に基づき内部の動作を規定するクロック信号を生成する回路や、電源回路、リセット回路等を含む。リセット回路は、#系統マイコン30#(CPU32#)に印加される電圧が#系統マイコン30#(CPU32#)の動作を保証できる電圧範囲から外れる場合にマイコン30#(CPU32#)をリセットする回路である。
【0024】
#系統マイコン30#は、ステアリングホイールから入力されるトルクである操舵トルクThに基づき、モータ10のトルクを制御すべく、#系統ステータコイル14#に流れる電流を制御する。
【0025】
図2に、A系統マイコン30aおよびB系統マイコン30bが実行する処理を示す。図2に示す処理は、ROM34#に記憶されたプログラムをCPU32#が実行することにより実現される。なお、以下では、A系統マイコン30aおよびB系統マイコン30bのそれぞれが実行する処理を総括する場合、「#」を用いて記載する。
【0026】
トルク指令値算出処理M10#は、操舵トルクThに基づき、運転者の操舵をアシストするうえでモータ10に要求されるトルクであるトルク指令値T#*を算出する処理である。なお、A系統マイコン30aおよびB系統マイコン30bの双方ともに電流の制御を実行している場合、A系統ステータコイル14aとB系統ステータコイル14bとの双方に流れる電流の協働で、モータ10のトルクを要求される値に制御する。すなわち、A系統マイコン30aおよびB系統マイコン30bの双方ともに電流の制御を実行している場合、トルク指令値Ta*とトルク指令値Tb*との和が、モータ10に要求されるトルクとなる。
【0027】
電流指令値算出処理M12#は、モータ10のトルクをトルク指令値T#*に応じて制御すべく、#系統ステータコイル14#に流れる電流の指令値である電流指令値id#*,iq#*を算出する処理である。
【0028】
電流取得処理M14#は、#系統ステータコイル14#に流れる電流iu#,iv#,iw#を取得する処理である。dq変換処理M16#は、3相の電流iu#,iv#,iw#をdq軸の電流id#,iq#に変換する処理である。フィードバック処理M18#は、dq軸の電流id#,iq#を電流指令値id#*,iq#*にフィードバック制御するための操作量として、dq軸の電圧vd#,vq#を算出する処理である。3相変換処理M20#は、dq軸の電圧vd#,vq#を3相の電圧vu#,vv#,vw#に変換する処理である。操作信号生成処理M22#は、#系統インバータ22#によって#系統ステータコイル14#に印加される各相の電圧が電圧vu#,vv#,vw#となるように、#系統インバータ22#に操作信号MS#を出力する処理である。ここでの操作信号MS#は、#系統インバータ22#の各スイッチング素子のオン・オフ操作信号である。詳しくは、操作信号生成処理M22#は、三角波PWM処理によって、操作信号MS#を算出する処理を含む。
【0029】
角度取得処理M24#は、#系統角度センサ42#によって検出される回転角度θ#を取得し、dq変換処理M16#や、3相変換処理M20#に出力する処理である。異常判定処理M26#は、#系統マイコン30#内の動作に異常があるか否かを判定する処理である。異常判定処理M26#は、#系統マイコン30#が#系統ステータコイル14#に流れる電流を制御する処理に異常がある場合に動作に異常があると判定する処理を含む。このため、#系統マイコン30#の起動時においては、#系統ステータコイル14#を流れる電流の制御が開始されていないことから、異常判定処理M26#により異常がある旨判定される。
【0030】
同期処理M28#は、内部クロック信号に基づき、電流取得処理M14#や、角度取得処理M24#、操作信号生成処理M22#の動作を同期させる処理である。
図3に、電流取得処理M14#や、角度取得処理M24#、操作信号生成処理M22#の動作を例示する。図3に示す三角波形状のキャリアScと電圧vu#,vv#,vw#との大小比較に基づき操作信号MS#が生成される。なお、図3には、U相の電圧vu#のみを例示した。また、図3に示すように、タスク1として、電流取得処理M14#が、キャリアScの周期と同周期で実行される。なお、電流取得処理M14aによって新たに電流iu#,iv#,iw#が取得される都度、電圧vu#,vv#,vw#が更新され、ひいては操作信号MS#が更新される。ここで、電流取得処理M14#の実行タイミング(タスク1の実行タイミング)は、操作信号MS#の出力タイミングに対して極力離して設定される。これは、操作信号MS#の更新によって、#系統ステータコイル14#に流れる電流にリンギングが生じることに鑑み、リンギングが減衰したタイミングで電流iu#,iv#,iw#を取得することを狙ったものである。
【0031】
また、図3に示すように、タスク2として、角度取得処理M24#が、キャリアScの周期よりも長い周期で実行される。ちなみに、タスク1、タスク2等、#系統マイコン30#によって実行される周期的なタスクの周期は、いずれも内部クロック信号の倍数となっている。また、本実施形態では、タスク1が、A系統マイコン30aおよびB系統マイコン30bの双方が実行する周期的なタスクのうち周期が最も短いタスクとなっている。さらに、本実施形態では、#系統マイコン30#によって実行される周期的なタスクの周期の全ては、それら複数の周期のうちの最長の周期の約数となっている。
【0032】
図2に戻り、同期処理M28#は、A系統マイコン30aおよびB系統マイコン30bの双方が実行する周期的なタスクのうちの周期が最短のタスクの周期に同期した同期信号を図1に示す通信線44を介して出力する周期信号出力処理M30#を含む。周期信号出力処理M30#は、異常判定処理M26#によって異常がある旨判定される場合には、同期信号の出力を停止する。さらに、同期処理M28#は、通信線44を介して、A系統とB系統とで、周期的なタスクの実行を同期させる処理を含む。
【0033】
A系統とB系統とで周期的なタスクの実行を同期させる理由は、第1にトルクリップルを抑制することを狙ったものである。すなわち、たとえばA系統とB系統とでタスク1の実行タイミングがずれる場合には、A系統の操作信号MSaの更新タイミングとB系統のタスク1の実行タイミングとが近づくおそれがある。そしてその場合、電流取得処理M14bによって取得される電流iub,ivb,iwbに、A系統ステータコイル14aを流れる電流iua,iva,iwaのリンギングに起因したノイズが重畳するおそれがある。また、たとえばA系統とB系統とでタスク2の実行タイミングがずれる場合には、たとえ電流iub,ivb,iwbと電流iua,iva,iwaとが等しいとしても、用いる回転角度θa,θbが互いに異なることに起因して、電圧vua,vva,vwaと電圧vub,vvb,vwbとが異なることとなる。
【0034】
第2に、たとえば図1に示すシリアルライン42を介した双方向通信を実行するタスクには、A系統とB系統とが同期していることが要求されるからである。なお、本実施形態では、A系統マイコン30aとB系統マイコン30bとの双方が実行する周期的なタスクのうちの周期が最長のタスクの実行タイミングを同期させることによって、全ての周期的なタスクの実行タイミングを同期させる。
【0035】
図4(a)に、同期処理M28aの手順を示し、図4(b)に、同期処理M28bの手順を示す。図4に示す処理は、ROM34#に記憶されたプログラムをCPU32#が例えば所定の実行条件が成立する都度繰り返し実行することにより実現される。なお、以下では、先頭に「S」が付与された数字によって、各処理のステップ番号を表現する。以下、制御装置20の起動時から実際に生じうる事象の時系列に従って図4に示す処理を説明する。
【0036】
図4(a)に示す一連の処理において、CPU32aは、まず、A系統マイコン30aの起動時であるか否かを判定する(S10)。制御装置20が起動される場合、A系統マイコン30aが起動されることから、CPU32aは、起動時であると判定し(S10:YES)、B系統マイコン30bが正常に動作しているか否かを判定する(S12)。この処理は、B系統マイコン30b側の周期信号出力処理M30bにより周期信号が出力されている場合に、正常に動作していると判定する処理となる。制御装置20の起動時は、B系統マイコン30bの起動時でもあることから、B系統マイコン30bにおいてB系統ステータコイル14bに流れる電流の制御が未だなされておらず、異常判定処理M26bにより異常である旨判定されることによって周期信号出力処理M30bによる周期信号を出力する処理が禁止されている。そのため、CPU32aは、B系統マイコン30bの動作が正常ではないと判定して(S12:NO)、A系統マイコン30aのステータスをマスタとする(S14)。
【0037】
一方、図4(b)に示す一連の処理において、CPU32bは、まず、B系統マイコン30bの起動時であるか否かを判定する(S40)。制御装置20が起動される場合、B系統マイコン30bが起動されることから、CPU32bは、起動時であると判定し(S40:YES)、B系統マイコン30bのステータスをスレーブとする(S42)。次にCPU32bは、A系統マイコン30aが正常に動作しているか否かを判定する(S44)。この処理は、A系統マイコン30a側の周期信号出力処理M30aによって周期信号が出力されている場合に正常に動作していると判定する処理となる。制御装置20の起動時は、A系統マイコン30aの起動時でもあることから、A系統マイコン30aにおいてA系統ステータコイル14aに流れる電流の制御が未だなされておらず、異常判定処理M26aにより異常である旨判定されることによって周期信号出力処理M30aによる周期信号を出力する処理が禁止されている。そのため、CPU32bは、A系統マイコン30aの動作が正常ではないと判定して(S44:NO)、B系統マイコン30b側の各タスクを周期的に実行する準備が整い次第、通信線44を介して準備が整った旨を通知するための準備完了通知を出力する完了出力処理を実行する(S46)。
【0038】
これに対し図4(a)に示すように、CPU32aは、準備完了通知を受信するまで待機する(S16:NO)。そしてCPU32aは、準備完了通知を受信すると(S16:YES)、A系統マイコン30aおよびB系統マイコン30bの双方が実行する周期的なタスクのうちの周期が最長のタスクのA系統マイコン30aにおける実行タイミングに同期した同期信号を通信線44を介して出力する同期出力処理を実行する(S18)。この際、CPU32aは、周期的なタスクの実行を開始する。
【0039】
これにより、図4(b)に示すように、CPU32bは、同期信号を受信し(S48)、同期信号に基づき、B系統マイコン30bにおいて、周期的な各タスクの実行タイミングがA系統マイコン30a側に同期するように、周期的な各タスクの実行を開始する(S50)。これにより、A系統マイコン30aによるA系統ステータコイル14aに流れる電流の制御と、B系統マイコン30bによるB系統ステータコイル14bに流れる電流の制御とが、実行される。
【0040】
その後、図4(b)に示すように、CPU32bは、起動時ではないと判定する場合(S40:NO)、B系統のステータスがマスタであるか否かを判定する(S52)。そしてCPU32bは、スレーブであると判定する場合(S52:NO)、A系統マイコン30aが正常に動作しているか否かを判定する(S54)。
【0041】
CPU32bは、A系統マイコン30aが正常に動作していると判定する場合(S54:YES)、A系統マイコン30aから出力された周期信号を受信する(S56)。そしてCPU32bは、周期信号に基づき、B系統マイコン30b側におけるタスクの実行タイミングを必要に応じて修正することによってA系統マイコン30a側のタスクの実行タイミングに近づける処理を実行する(S58)。詳しくは、CPU32aは、内部クロックの一周期を最小単位として、内部クロックの周期の整数倍の長さを有する時間だけ実行タイミングを適宜修正する。
【0042】
次に、たとえばバッテリ50の端子電圧が低下し、A系統とB系統との電気経路の抵抗値の個体差等に起因して、B系統マイコン30bに印加される電圧のみが動作保証電圧を下回り、B系統マイコン30bがリセットされる場合について説明する。
【0043】
その場合、印加電圧がある程度上昇することにより、B系統マイコン30bが再度起動される。その場合、CPU32bは、起動時であると判定し(S40:YES)、S42の処理を実行した後、A系統マイコン30aが正常に動作しているか否かを判定する(S44)。B系統マイコン30bのみがリセットされた後の起動時の場合、A系統マイコン30aによりA系統ステータコイル14aに流れる電流の制御が実行されており、A系統マイコン30aから周期信号が出力されている。そのため、CPU32bは、A系統マイコン30aが正常に動作していると判定し(S44:YES)、通信線44を介してA系統マイコン30aに同期信号の出力を要求する要求信号を出力する同期要求処理を実行する(S60)。
【0044】
これに対し図4(a)に示すように、CPU32aは、リセットされていないことから、起動時ではないと判定し(S10:NO)、A系統マイコン30aのステータスがマスタであるか否かを判定する(S20)。そしてCPU32aは、マスタであると判定する場合(S20:YES)、要求信号を受信したか否かを判定する(S22)。そしてCPU32aは、要求信号を受信したと判定する場合(S22:YES)、A系統マイコン30aおよびB系統マイコン30bの双方が実行する周期的なタスクのうちの周期が最長のタスクのA系統マイコン30aにおける実行タイミングに同期した同期信号を通信線44を介して出力する再同期出力処理を実行する(S24)。
【0045】
これに対し図4(b)に示すように、CPU32bは、再同期出力処理によって出力された同期信号を受信し(S48)、この同期信号に基づきS50の処理を実行する。
次に、たとえばバッテリ50の端子電圧が低下し、A系統とB系統との電気経路の抵抗値の個体差等に起因して、A系統マイコン30aに印加される電圧のみが動作保証電圧を下回り、A系統マイコン30aがリセットされる場合について説明する。
【0046】
その場合、印加電圧がある程度上昇することにより、A系統マイコン30aが再度起動される。その場合、CPU32aは、起動時であると判定し(S10:YES)、B系統マイコン30bが正常に動作しているか否かを判定する(S12)。A系統マイコン30aのみがリセットされた後の起動時の場合、B系統マイコン30bによりB系統ステータコイル14bに流れる電流の制御が実行されており、B系統マイコン30bから周期信号が出力されている。そのため、CPU32aは、B系統マイコン30bが正常に動作していると判定し(S12:YES)、A系統マイコン30aのステータスをスレーブとする(S26)。そしてCPU32aは、通信線44を介してB系統マイコン30bに同期信号の出力を要求する要求信号を出力する同期要求処理を実行する(S28)。
【0047】
一方、図4(b)に示すように、CPU32bは、B系統ステータコイル14bに流れる電流の制御を継続していることから、起動時ではないと判定し(S40:NO)、B系統マイコン30bのステータスがマスタであるか否かを判定する(S52)。そしてCPU32bは、スレーブであると判定する場合(S52:NO)、A系統マイコン30aが正常に動作しているか否かを判定する(S54)。そしてCPU32bは、A系統マイコン30aが正常に動作していないと判定する場合(S54:NO)、B系統マイコン30bのステータスをマスタとする(S62)。そしてCPU32bは、S62の処理を完了する場合やS52の処理において肯定判定する場合には、要求信号を受信したか否かを判定する(S64)。そしてCPU32bは、要求信号を受信したと判定する場合(S64:YES)、A系統マイコン30aおよびB系統マイコン30bの双方が実行する周期的なタスクのうちの周期が最長のタスクのB系統マイコン30bにおける実行タイミングに同期した同期信号を通信線44を介して出力する再同期出力処理を実行する(S66)。
【0048】
これに対し図4(a)に示すように、CPU32bは、同期信号を受信し(S30)、同期信号に基づき、A系統マイコン30aにおいて、周期的なタスクの実行タイミングがB系統マイコン30b側に同期するように、周期的な各タスクの実行を開始する(S32)。その後、CPU32aは、A系統マイコン30aのステータスがスレーブであると判定し(S20:NO)、B系統マイコン30bから出力された周期信号を受信する(S34)。そしてCPU32aは、周期信号に基づき、A系統マイコン30a側におけるタスクの実行タイミングを必要に応じて修正することによってB系統マイコン30b側のタスクの実行タイミングに近づける処理を実行する(S36)。
【0049】
なお、CPU32aは、S18,S24,S32,S36の処理が完了する場合や、S22の処理において否定判定する場合、図4(a)に示す一連の処理を一旦終了する。一方、CPU32bは、S50,S58,S66の処理が完了する場合や、S64の処理において否定判定する場合、図4(b)に示す処理を一旦終了する。
【0050】
なお、上記の説明において、バッテリ50の端子電圧の低下によって、A系統マイコン30aおよびB系統マイコン30bの双方がリセットされた後の処理については記載しなかったが、その場合には、制御装置20の起動時の処理と同じである。
【0051】
ここで、本実施形態の作用および効果について説明する。
図5に、制御装置20の起動後、B系統マイコン30bのみがリセットされた場合を示す。その場合、CPU32bは、時刻t1においてA系統マイコン30aに要求信号を出力する。これに対し、CPU32aは、要求信号を受信後、A系統マイコン30aとB系統マイコン30bとの双方が実行する周期的なタスクのうちの周期が最長のタスクnの実行タイミングに同期して同期信号を出力する。すなわち、CPU32aは、タスク1、タスク2等の実行タイミングが生じても、タスクnの実行タイミングでない限り、同期信号を出力することなく待機する。そして、時刻t2に、CPU32aは、タスクnの実行タイミング、すなわち、全ての周期的なタスクの実行タイミングとなることにより、同期信号を出力する。タスクnの実行タイミングは、要求信号の受信後において出現する周期的な各タスクの実行タイミングのうち最も遅くに出現するものである。換言すれば、全ての周期的なタスクの実行タイミングは、要求信号の受信後において、タスクnの実行タイミングの出現以前に出現する。タスクnの実行タイミングに同期した同期信号が出力されることにより、CPU32bでは、周期的なタスクの全ての実行タイミングを同期信号に同期させる。ちなみに、全ての周期的なタスクの実行タイミングを同期信号に同期させることは、同一周期を有する複数の周期的なタスクの実行タイミングが一致することを意味しない。すなわち、上述したように、タスク1としての電流取得処理M14#の周期と、操作信号MS#の更新周期とは同一周期であるが、それらの実行タイミング自体は互いに離れている。したがって、同期信号に同期させることには、同期信号の受信後、直ちに実行されるタスクのみならず、同期信号の受信から所定時間経過した時点で実行されるタスクが含まれうる。
【0052】
このように、同期信号を、タスクnの実行タイミングに同期した信号とすることにより、A系統マイコン30aが実行する周期的なタスクとB系統マイコン30bが実行する対応する周期的なタスクとを、全て同期させることができる。これにより、A系統マイコン30aとB系統マイコン30bとのうちのいずれか一方がリセットされる場合であっても、A系統マイコン30aによるA系統ステータコイル14aを流れる電流の制御とB系統マイコン30bによるB系統ステータコイル14bを流れる電流の制御とを実行する正常状態に早期に復帰できる。そのため、A系統マイコン30aによるA系統ステータコイル14aを流れる電流の制御とB系統マイコン30bによるB系統ステータコイル14bを流れる電流の制御とのいずれか一方のみが継続される場合と比較すると、運転者による操舵のアシストを良好とすることができる。ちなみに、A系統マイコン30aによるA系統ステータコイル14aを流れる電流の制御とB系統マイコン30bによるB系統ステータコイル14bを流れる電流の制御とのいずれか一方のみが継続される場合、双方が実行される場合にモータ10が生成するトルクを定常的に生成することは困難である。
【0053】
以上説明した本実施形態によれば、さらに以下に記載する効果が得られる。
(1)制御装置20の起動後、A系統マイコン30aのみがリセットされ、再起動される場合、A系統マイコン30aをスレーブとし、B系統マイコン30bのタスクの実行タイミングにA系統マイコン30a側が修正処理によって合わせることとした。これにより、正常に動作を継続している側が修正処理をすることを回避することができる。
【0054】
<対応関係>
上記実施形態における事項と、上記「課題を解決するための手段」の欄に記載した事項との対応関係は、次の通りである。以下では、「課題を解決するための手段」の欄に記載した解決手段の番号毎に、対応関係を示している。[1]以下のケース1とケース2との場合に分けて記載する。ケース1の場合には、第1ステータコイル、第1駆動回路、および第1処理回路のそれぞれが、A系統ステータコイル14a、A系統インバータ22a、およびA系統マイコン30aに対応する。ケース2の場合には、第1ステータコイル、第1駆動回路、および第1処理回路のそれぞれが、B系統ステータコイル14b、B系統インバータ22b、およびB系統マイコン30bに対応する。ケース1の場合、同期要求処理は、S28の処理に対応し、再同期出力処理は、S66の処理に対応する。ケース2の場合、同期要求処理は、S60の処理に対応し、再同期出力処理は、S24の処理に対応する。[2]ケース1の場合、周期信号出力処理は、周期信号出力処理M30bに対応し、修正処理は、S36の処理に対応する。ケース2の場合、周期信号出力処理は、周期信号出力処理M30aに対応し、修正処理は、S58の処理に対応する。[3]上記ケース1の場合にのみ対応し、完了出力処理は、S46の処理に対応し、同期出力処理は、S18の処理に対応する。[4]上記ケース1の場合のみに対応し、周期信号出力処理は、周期信号出力処理M30aに対応し、修正処理は、S58の処理に対応する。[5]第1タスクは、電流取得処理M14a,M14bに対応し、第2タスクは、角度取得処理M24a,M24bに対応する。[6]第1電流取得処理および第2電流取得処理は、電流取得処理M14a,M14bに対応し、第1角度取得処理および第2角度取得処理は、角度取得処理M24a,M24bに対応する。第1電流制御処理および第2電流取得処理は、フィードバック処理M18a,M18b、3相変換処理M20a,M20bおよび操作信号生成処理M22a,M22bに対応する。
【0055】
<その他の実施形態>
なお、上記実施形態の各事項の少なくとも1つを、以下のように変更してもよい。
・「タスクについて」
上記実施形態では、A系統マイコン30aおよびB系統マイコン30bの双方が実行する周期的なタスクの周期は、同タスクのうち実行周期が最も長いタスクの周期の約数となるようにしたが、これに限らない。たとえば、全てのタスクの周期が、内部クロック信号の周期の倍数であるものの、実行周期が最も長いタスクの周期の約数とはならないものがあってもよい。
【0056】
・「周期信号出力処理について」
上記実施形態では、A系統マイコン30aおよびB系統マイコン30bの双方が実行するタスクのうち実行周期が最も短いタスクに応じた周期信号を出力したが、これに限らない。たとえば、実行周期が最も短いタスクと最も長いタスクとの中間のタスクに応じた周期信号を出力してもよい。
【0057】
上記実施形態では、ステータスがマスタであるかスレーブであるかにかかわらず周期信号出力処理を常時実行したが、これに限らず、たとえばステータスがマスタのものだけが周期信号出力処理を実行してもよい。
【0058】
・「再同期出力処理について」
上記実施形態では、A系統マイコン30aおよびB系統マイコン30bのいずれか一方が同期要求信号を受信する場合、A系統マイコン30aおよびB系統マイコン30bの双方が実行する周期的なタスクのうち実行周期が最も長いタスクの実行タイミングに同期した同期信号を出力したが、これに限らない。たとえば、「タスクについて」の欄に記載したように、周期的なタスクの中に実行周期が最も長いタスクの周期の約数とはならないものがある場合、最も長いタスクの実行タイミングであって且つ全ての周期的なタスクの周期の最小公倍数に同期するタイミングで同期信号を出力すればよい。これにより、同期信号の出力タイミングが、全ての周期的なタスクの実行タイミングに同期することから、A系統マイコン30aが実行する周期的なタスクと、B系統マイコン30bが実行する対応する周期的なタスクとを、全て同期させることができる。
【0059】
もっとも、A系統マイコン30aが実行する周期的なタスクと、B系統マイコン30bが実行する対応する周期的なタスクとを、全て同期させることは必須ではない。たとえば、シリアルライン42を介した双方向通信処理の周期と角度取得処理M24#の周期と電流取得処理M14#の周期との最小公倍数の周期と電流取得処理M14#の実行タイミングとの双方に同期したタイミングに同期信号を出力してもよい。
【0060】
またたとえば、上記「周期信号出力処理について」の欄に記載したように、中間のタスクに応じた周期信号が出力される場合、周期信号に対応するタスクよりも実行周期が長いタスクの実行タイミングに同期した同期信号を出力することが望ましい。これにより、周期信号に対応するタスクよりも実行周期が長いタスクについて、A系統マイコン30aとB系統マイコン30bとで実行周期を同期させることができる。
【0061】
・「電流制御処理について」
上記実施形態では、ステータコイルに流れる電流を指令値に制御する電流制御処理として、フィードバック処理M18#、3相変換処理M20#および操作信号生成処理M22#を例示したが、これに限らない。たとえばステータコイルに流れる電流に基づき、インバータのスイッチングモードを様々に設定したと仮定した場合の電流の予測値と指令値との差に基づき、実際のスイッチングモードを選択するモデル予測制御を行ってもよい。この場合であっても、スイッチングモードや電流の更新周期よりも、上記予測値の算出に用いる回転角度の更新周期を長くすることが望ましい。
【0062】
・「マスタおよびスレーブについて」
上記実施形態では、A系統マイコン30aをデフォルトでマスタとして定め、B系統マイコン30bが正常に動作しているときにA系統マイコン30aがリセットから復帰する場合に限って、B系統マイコン30bをマスタとしたが、これに限らない。たとえば、A系統マイコン30aおよびB系統マイコン30bの双方の停止直前においてマスタであった方が、その後の起動時においてマスタとなるようにしてもよい。これは、たとえばA系統マイコン30aとB系統マイコン30bとのそれぞれに電気的に書き換え可能な不揮発性メモリを備えて、ステータスを不揮発性メモリに記憶しておくことにより実現できる。
【0063】
ステータスを入れ替えること自体、必須ではない。たとえばA系統マイコン30aをマスタとしB系統マイコン30bをスレーブとするなど、ステータスを固定してもよい。その場合、B系統マイコン30bが正常に動作を継続している期間にA系統マイコン30aがリセットから復帰して起動される場合であっても、B系統マイコン30bは、A系統マイコン30aの周期信号を受信して、自らのタスクの実行周期を修正する修正処理を実行すればよい。ただし、B系統マイコン30bが正常に動作しているときにA系統マイコン30aがリセットから復帰する場合には、A系統マイコン30aからB系統マイコン30bに同期要求信号を出力することとする。
【0064】
・「処理回路について」
上記実施形態では、周辺回路36#にリセット回路を含めたが、これに限らず、#系統マイコン30#の外部にリセット回路を備えて、リセット回路のリセット電圧が#系統マイコン#に印加されるようにしてもよい。
【0065】
上記実施形態では、処理回路を構成するプログラム格納装置として、ROMを例示し、ROMがいかなるタイプのものであるかについては触れていなかったが、たとえば書き換え不能なメモリであってもよく、またたとえば、電気的に書き換え可能な不揮発性メモリであってもよい。さらに、プログラム格納装置としては、ROMに限らない。
【0066】
処理回路としては、プログラムを格納したプログラム格納装置とプログラムを実行するCPUとを備えたソフトウェア処理回路に限らず、たとえばASIC等の、所定の処理を実行する専用のハードウェア回路であってもよい。
【0067】
・「ステータコイル、モータおよび駆動回路について」
上記実施形態では、駆動回路として3相インバータを例示したが、これに限らない。たとえばモータとして直流モータを用いて且つ駆動回路としてHブリッジ回路を用いてもよい。
【0068】
・「制御装置について」
上記実施形態では、A系統およびB系統の2つの系統を有する装置を例示したが、これに限らない。たとえばさらにC系統を備える等、ステータコイル、駆動回路および処理回路を3つ以上ずつ備えるものとしてもよい。ただし、その場合、いずれか1つをマスタとし残りをスレーブとすることが望ましい。これは、たとえばマスタとなる優先順位を設定することにより、図4に示した処理の簡易な変更によって実現できる。すなわち、たとえばマスタとなる優先順位をA系統、B系統、C系統の順に低くなるものとする場合、B系統およびC系統が正常に動作しているときにA系統がリセットされる場合、B系統がマスタとなる。
【0069】
・「そのほか」
モータ10の回転角度を検出するセンサとしては、系統毎に各別に備えられた回転角度センサに限らず、たとえば単一の回転角度センサであってもよい。上記実施形態では、操舵トルクThを検出するセンサについて特に言及しなかったが、系統毎に互いに異なったセンサであってもよく、また同一のセンサの検出値を系統間で共有してもよい。
【符号の説明】
【0070】
10…モータ、12…ロータ、14a…A系統ステータコイル、14b…B系統ステータコイル、20…制御装置、22a…A系統インバータ、22b…B系統インバータ、24a,24b…発振器、30a…A系統マイコン、30b…B系統マイコン、32a,32b…CPU、34a,34b…ROM、36a.36b…周辺回路、38a,38b…バスライン、40a…A系統角度センサ、40b…B系統角度センサ、42…シリアルライン、44…通信線、50…バッテリ。
図1
図2
図3
図4
図5