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

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

▶ 株式会社アドヴィックスの特許一覧

<>
  • 特開-モータ制御装置 図1
  • 特開-モータ制御装置 図2
  • 特開-モータ制御装置 図3
  • 特開-モータ制御装置 図4
  • 特開-モータ制御装置 図5
  • 特開-モータ制御装置 図6
  • 特開-モータ制御装置 図7
  • 特開-モータ制御装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024021832
(43)【公開日】2024-02-16
(54)【発明の名称】モータ制御装置
(51)【国際特許分類】
   H02P 31/00 20060101AFI20240208BHJP
【FI】
H02P31/00
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022124952
(22)【出願日】2022-08-04
(71)【出願人】
【識別番号】301065892
【氏名又は名称】株式会社アドヴィックス
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】杉本 佳啓
【テーマコード(参考)】
5H501
【Fターム(参考)】
5H501AA20
5H501BB11
5H501DD01
5H501GG01
5H501JJ03
5H501JJ25
5H501LL35
(57)【要約】
【課題】電気モータの駆動によって回転する回転軸の回転角を精度良く算出するモータ制御装置を提供する。
【解決手段】モータ制御装置は、電気モータ31の出力軸32の回転角を検出する回転角センサ70と、ECU80とを備えている。回転角センサ70は、出力軸32に取り付けられている被検出部71と、被検出部71の回転に応じた信号をECU80に出力する検出部72とを有している。ECU80は、基準回転角に応じた電流を電気モータ31に流した場合における回転角検出値と基準回転角との差分を算出し、回転角を変数とする正弦関数の振幅を当該差分の大きさに応じて設定する。ECU80は、回転角検出値を回転角として正弦関数に代入した際の算出値を補正値として取得し、回転角検出値を当該補正値で補正することによって回転角算出値を算出する。
【選択図】図1
【特許請求の範囲】
【請求項1】
電気モータの駆動によって回転する回転軸の回転角を検出する回転角センサであって、前記回転軸に取り付けられている被検出部と、前記被検出部の回転に応じた信号を出力する検出部と、を有して構成されている回転角センサを備え、前記検出部から出力される信号に基づいて前記電気モータを制御するモータ制御装置において、
所定の基準回転角に応じた電流を前記電気モータに流した場合における、前記検出部から出力される信号に応じた前記回転角である回転角検出値と当該基準回転角との差分を算出し、前記回転角を変数とする正弦関数の振幅を前記差分の大きさに応じて設定する関数作成部と、
前記回転角検出値を前記回転角として前記正弦関数に代入した際の算出値を補正値として取得し、前記回転角検出値を当該補正値で補正することによって前記回転角の算出値である回転角算出値を算出する回転角算出部と、を備えている
モータ制御装置。
【請求項2】
前記回転角が0(零)となるときの前記回転角検出値を原点誤差として取得し、当該原点誤差に応じて前記基準回転角を補正する基準回転角補正部を備え、
前記関数作成部は、前記基準回転角補正部によって補正された前記基準回転角に応じた電流を前記電気モータに流した場合における前記回転角検出値と当該基準回転角との差分を算出する
請求項1に記載のモータ制御装置。
【請求項3】
板面が前記回転軸の軸線と直交するように配置され、前記検出部が前記板面に実装されている回路基板を備えている
請求項1又は請求項2に記載のモータ制御装置。
【請求項4】
前記電気モータは、車両の車輪に付与する制動力を調整すべく駆動するものであり、
前記関数作成部は、前記車輪への制動要求がない場合に、前記正弦関数の振幅を設定する
請求項1に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両の制動装置に設けられているモータ制御装置に関する。
【背景技術】
【0002】
特許文献1に開示されている制動装置は、モータ制御装置を備えている。当該モータ制御装置は、電気モータと、回転角センサと、制御部とを備えている。回転角センサは、電気モータの出力軸に取り付けられている被検出部と、被検出部の近傍に配置されている検出部とを有している。出力軸が回転することによって被検出部が回転すると、検出部は、被検出部の回転に応じた信号を制御部に出力する。制御部は、こうした検出部の出力信号に基づいて電気モータの出力軸の回転角を算出する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-172305号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のようなモータ制御装置では、上記回転角を精度良く算出することが求められている。本発明は、電気モータの駆動によって回転する回転軸の回転角を精度良く算出するモータ制御装置を提供することを課題とする。
【課題を解決するための手段】
【0005】
上記課題を解決するためのモータ制御装置は、電気モータの駆動によって回転する回転軸の回転角を検出する回転角センサであって、前記回転軸に取り付けられている被検出部と、前記被検出部の回転に応じた信号を出力する検出部と、を有して構成されている回転角センサを備え、前記検出部から出力される信号に基づいて前記電気モータを制御する装置である。このモータ制御装置は、所定の基準回転角に応じた電流を前記電気モータに流した場合における、前記検出部から出力される信号に応じた前記回転角である回転角検出値と当該基準回転角との差分を算出し、前記回転角を変数とする正弦関数の振幅を前記差分の大きさに応じて設定する関数作成部と、前記回転角検出値を前記回転角として前記正弦関数に代入した際の算出値を補正値として取得し、前記回転角検出値を当該補正値で補正することによって前記回転角の算出値である回転角算出値を算出する回転角算出部と、を備えている。
【0006】
電気モータの駆動によって回転軸を回転させると、回転角検出値と電気モータの回転角の実値との差である検出誤差が周期的に変動する。こうした検出誤差の周期的な変動の振幅は、回転軸と検出部との位置関係に応じた大きさとなる。
【0007】
上記モータ制御装置では、上記正弦関数の振幅が、所定の基準回転角に応じた電流を電気モータに流した場合における回転角検出値と基準回転角との差分の大きさに応じた大きさに設定される。正弦関数に代入する回転角を変化させた場合における正弦関数の算出値の推移を示す正弦波形は、上記回転角を変化させた場合における上記検出誤差の推移を示す波形に近似する。すなわち、上記モータ制御装置は、そのときの上記位置関係を反映した正弦関数を作成できる。そして、上記モータ制御装置は、当該正弦関数を用いて回転角検出値に対応する補正値を取得し、回転角検出値を当該補正値で補正することによって回転角算出値を算出する。したがって、上記モータ制御装置は、回転軸の回転角を精度良く算出できる。
【図面の簡単な説明】
【0008】
図1図1は、実施形態のモータ制御装置を備える制動装置と、摩擦ブレーキとを示す概略構成図である。
図2図2は、同モータ制御装置が備える回転角センサにおいて、被検出部と検出部との位置関係を示す模式図である。
図3図3は、同モータ制御装置が備える電子制御装置を示すブロック図である。
図4図4は、回転軸を回転させた場合における当該回転軸の回転角の実値と回転角検出値との誤差の推移を示すグラフである。
図5図5は、検出誤差が0(零)となる回転角が変わった様子を示す図である。
図6図6は、同電子制御装置の実行部が実行する処理ルーチンを示すフローチャートである。
図7図7は、同実行部が実行する処理ルーチンを示すフローチャートである。
図8図8は、同実行部が実行する処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、モータ制御装置の一実施形態を図1図8に従って説明する。なお、図1において、第1軸Xに沿う2つの方向のうち、一方は車両前方X1であり、他方は車両後方X2である。図1に示す第2軸Zは第1軸Xと直交しており、第2軸Zに沿う2つの方向のうち、一方は車両上方Z1であり、他方は車両下方Z2である。図2に示す第3軸Yは第1軸X及び第2軸Zの双方と直交しており、第3軸Yに沿う2つの方向のうち、一方は車両左方Y1であり、他方は車両右方Y2である。
【0010】
図1は車両10を示す構成図である。車両10は、車輪11と摩擦ブレーキ20と制動装置30とを備えている。摩擦ブレーキ20は、被摩擦部21と摩擦部22とホイールシリンダ23とを有している。被摩擦部21は車輪11と一体に回転する。そのため、摩擦部22を被摩擦部21に押し付けると、車輪11に制動力が付与される。ホイールシリンダ23内の液圧が高いほど、摩擦部22を被摩擦部21に押し付ける力が大きくなる。そのため、摩擦ブレーキ20は、ホイールシリンダ23内の液圧が高いほど大きい制動力を車輪11に付与できる。
【0011】
<制動装置>
制動装置30は、電気モータ31と伝達装置40とシリンダ機構60と回転角センサ70と電子制御装置80とを有している。以降では、電子制御装置80を「ECU80」という。ECUとは、「Electronic Control Unit」の略記である。本実施形態では、回転角センサ70及びECU80により、「モータ制御装置」の一例が構成されている。
【0012】
電気モータ31は、例えば、複数相のコイルを有する直流モータである。電気モータ31は、複数相のコイルへの通電を行うことによって回転する出力軸32を有している。本実施形態では、出力軸32の軸線32aは、第1軸Xと平行である。出力軸32が、電気モータ31の駆動によって回転する「回転軸」に対応する。
【0013】
伝達装置40は、電気モータ31とシリンダ機構60との間で動力を伝達する。伝達装置40は、減速機構41と直動変換機構50とを有している。減速機構41は、電気モータ31の回転運動を減速して直動変換機構50に出力する。例えば、減速機構41は、出力軸32に固定されている入力ギヤ42と、直動変換機構50に取り付けられている出力ギヤ44と、入力ギヤ42及び出力ギヤ44の双方と噛み合う中間ギヤ43とを有している。中間ギヤ43は支持軸45に支持されている。支持軸45は出力軸32と平行な軸である。
【0014】
直動変換機構50は、例えば、ボールねじ機構及び送りねじ機構である。直動変換機構50は、回転部材51と直動部材52とを有している。回転部材51には出力ギヤ44が取り付けられている。そのため、回転部材51は、減速機構41から出力された動力に基づいて回転する。直動部材52は、回転部材51の回転に伴って回転部材51の軸方向に移動する。
【0015】
シリンダ機構60は、シリンダ61と、シリンダ61内に収容されているピストン62とを有している。シリンダ61内には、シリンダ61の側壁とピストン62とによって液室63が区画されている。液室63にはブレーキ液が貯留されているとともに、液室63は液路15を介してホイールシリンダ23に接続されている。
【0016】
車輪11に制動力を付与すべく電気モータ31が駆動すると、電気モータ31の出力が伝達装置40を介してシリンダ機構60に伝達される。すると、シリンダ機構60では、液室63の容積を狭くする方向にピストン62が移動するため、液室63のブレーキ液が液路15を介してホイールシリンダ23に供給される。これにより、ホイールシリンダ23内で液圧が発生するため、摩擦ブレーキ20が車輪11に制動力を付与する。すなわち、制動装置30は、電気モータ31の出力軸32の回転角を制御することにより、車輪11に付与する制動力の大きさを調整できる。
【0017】
図1及び図2に示すように、回転角センサ70は、電気モータ31の出力軸32の回転角を検出する。以降では、電気モータ31の出力軸32の回転角を「電気モータ31の回転角」という。回転角センサ70は、出力軸32に取り付けられている被検出部71と、被検出部71の近傍に配置されている検出部72とを有している。回転角センサ70が磁気式のセンサである場合、被検出部71は、磁石などの磁性体を含んで構成されている。検出部72は、被検出部71の回転に伴う磁界の変化を検出する。そして、検出部72は、被検出部71の回転に応じた信号をECU80に出力する。
【0018】
制動装置30では、回路基板90の実装面91に検出部72が固定されている。回路基板90は、実装面91が出力軸32の軸線32aと直交するように配置されている。すなわち、実装面91は、第2軸Z及び第3軸Yの双方と平行である一方で、第1軸Xと直交している「板面」に対応する。そして、検出部72は半田によって実装面91に固定されている。一方、回路基板90は、第1軸Xに沿う方向に延びるボルトによってハウジングに固定されている。そのため、第1軸Xに沿う方向において検出部72は被検出部71に対して相対的に変位しやすいものの、第2軸Zに沿う方向及び第3軸Yに沿う方向において検出部72は被検出部71に対して相対的に変位しにくい。本実施形態では、検出部72が第2軸Zに沿う方向に相対移動すると、出力軸32の軸線32aを中心とする径方向における出力軸32と検出部72との間隔が変わる。また、検出部72が第3軸Yに沿う方向に相対移動すると、上記径方向における出力軸32と検出部72との間隔が変わるとともに、軸線32aを中心とする周方向に検出部72が変位したことになる。
【0019】
図1及び図3に示すように、ECU80は回路基板90に実装されている。ECU80は、回転角センサ70の出力信号に基づいて電気モータ31を制御することにより、車輪11に付与する制動力を調整する。ECU80は、実行部81と記憶部82とを有している。例えば、実行部81はCPUである。記憶部82は、実行部81によって実行される制御プログラムを記憶している。
【0020】
<回転角の実値と回転角検出値との乖離について>
図4を参照し、電気モータ31の出力軸32を回転させた際における出力軸32の回転角の実値と回転角検出値AngSとの誤差である検出誤差EAngの推移について説明する。図4には、出力軸32を一回転させた場合の検出誤差EAngの推移が図示されている。回転角検出値AngSとは、回転角センサ70の検出部72の出力信号に基づいた回転角である。回転角検出値AngSは、回転角センサ70の検出値であるとも云える。
【0021】
出力軸32が回転して回転角の実値が変化すると、図4に示すように検出誤差EAngが周期的に変動する。図4に示す例では、180°を一周期として検出誤差EAngが変動する。一周期の検出誤差EAngの変動において、回転角の実値が45°の近傍の角度であったり、実値が225°近傍の角度であったりする場合に、検出誤差EAngが最大となる。一方、回転角の実値が135°の近傍の角度であったり、実値が315°近傍の角度であったりする場合に、検出誤差EAngが最小となる。
【0022】
なお、上記のような検出誤差EAngの変動周期は、被検出部71の極数によって変わる。具体的には、被検出部71の極数が多いほど、当該変動周期が短くなる。
本件の発明者は、検出部72と被検出部71との位置関係が変わると検出誤差EAngの推移がどのように変化するのかについての各種の実験やシミュレーションを行った結果、以下のような知見を得た。
【0023】
・検出部72を被検出部71に対して第1軸Xに沿う方向に相対的に変位させると、図4に示したような検出誤差EAngの推移の振幅が変わる。
・検出部72を被検出部71に対して第2軸Zに沿う方向に相対的に変位させると、図4に示したような検出誤差EAngの推移の振幅が変わる。
【0024】
・検出部72を被検出部71に対して第3軸Yに沿う方向に相対的に変位させると、図4に示したような検出誤差EAngの推移の位相が変化する。すなわち、図4において、検出誤差EAngの推移を示す波形が図中右方や図中左方にシフトする。
【0025】
<ECUの機能構成>
図3に示すように、実行部81は、記憶部82に記憶されている制御プログラムを実行することにより、基準回転角補正部101と、関数作成部103と、回転角算出部105と、モータ制御部107として機能する。すなわち、ECU80は、機能部として、基準回転角補正部101と、関数作成部103と、回転角算出部105と、モータ制御部107とを備えている。
【0026】
基準回転角補正部101は基準回転角を補正する。基準回転角は、関数作成部103で用いられる値である。補正前の基準回転角を基準回転角AngBとし、補正後の基準回転角を基準回転角AngBaとする。本実施形態では、図4に示した検出誤差EAngの変動の一周期のうち、検出誤差EAngが最大となるときの回転角が基準回転角AngBとして設定されている。例えば、45°が基準回転角AngBとして設定されている。
【0027】
図5を参照し、基準回転角AngBの補正処理について説明する。基準回転角補正部101は、出力軸32の回転角が0(零)になるときの回転角検出値AngSを原点誤差ΔAngとして取得する。具体的には、基準回転角補正部101は、回転角の指令値である指令回転角Ang*として0(零)を設定する。続いて、基準回転角補正部101は、電気モータ31のコイルに流す電流の指令値として、指令回転角Ang*(この場合は0(零))に応じた電流値を導出する。そして、基準回転角補正部101は、電流の指令値に基づいた電流を電気モータ31のコイルに流す。すなわち、基準回転角補正部101は、指令回転角Ang*に基づいたフィードフォワード制御によって電気モータ31を駆動させる。すると、回転角が0(零)に近づくように出力軸32が回転する。
【0028】
ここで、制動装置30の出荷時における検出部72の第3軸Yに沿う方向の位置を初期位置とする。このとき、検出部72の現時点の第3軸Yに沿う方向の位置が初期位置であると、上記のようなフィードフォワード制御によって電気モータ31を駆動させることにより、回転角検出値AngSが0(零)になる。すなわち、原点誤差ΔAngが0(零)である。しかし、検出部72の現時点の第3軸Yに沿う方向の位置が初期位置からずれている場合、上記のようなフィードフォワード制御によって電気モータ31を駆動させると、回転角検出値AngSは、初期位置からの検出部72の第3軸Yに沿う方向への変位量に応じた値になる。すなわち、原点誤差ΔAngが0(零)ではなくなる。
【0029】
なお、図5においては、検出部72の現時点の第3軸Yに沿う方向の位置が初期位置である場合の検出誤差EAngの推移を示す波形の一部が破線で示されている。また、検出部72の現時点の第3軸Yに沿う方向の位置が初期位置からずれている場合の検出誤差EAngの推移を示す波形の一部が実線で示されている。基準回転角補正部101は、図5における回転角が0(零)である場合の実線の波形と破線の波形との差を原点誤差ΔAngとして取得する。
【0030】
基準回転角補正部101は、原点誤差ΔAngを取得すると、原点誤差ΔAngに応じて基準回転角AngBを補正する。具体的には、基準回転角補正部101は、補正前の基準回転角AngBから原点誤差ΔAngを引いた値を、補正後の基準回転角AngBaとして算出する。
【0031】
関数作成部103は、図4に示したような検出誤差EAngの周期的な変動を示す関数として、以下の式(A1)に示す正弦関数F(θ)を作成する。式(A1)において、「A」は正弦関数F(θ)の振幅であり、「θ」には回転角検出値AngSが代入される。すなわち、正弦関数F(θ)は、回転角を変数とする関数である。
【0032】
F(θ)=A・sin(2・θ) (A1)
関数作成部103は、正弦関数F(θ)を作成する場合、基準回転角補正部101によって補正された基準回転角AngBaを指令回転角Ang*として設定する。続いて、関数作成部103は、電気モータ31のコイルに流す電流の指令値として指令回転角Ang*に応じた電流値を導出する。そして、関数作成部103は、電流の指令値に基づいた電流を電気モータ31のコイルに流す。すなわち、関数作成部103は、指令回転角Ang*に基づいたフィードフォワード制御によって電気モータ31を駆動させる。すると、回転角が補正後の基準回転角AngBaに近づくように出力軸32が回転する。
【0033】
図4を用いて上述したように、回転角が基準回転角である場合の検出誤差EAngが、検出誤差EAngの一周期の変動における最大値であると見なせる。そのため、関数作成部103は、補正後の基準回転角AngBaに応じた電流を電気モータ31のコイルに流した場合における回転角検出値AngSを取得し、当該回転角検出値AngSと補正後の基準回転角AngBaとの差分を算出する。そして、関数作成部103は、正弦関数F(θ)の振幅Aとして、差分の大きさAngDに応じて設定する。本実施形態では、関数作成部103は、差分の大きさAngDを振幅Aとして設定する。
【0034】
回転角算出部105は、関数作成部103によって導出された正弦関数F(θ)を用い、出力軸32の回転角の算出値である回転角算出値AngCを算出する。具体的には、回転角算出部105は、現在の回転角検出値AngSを正弦関数F(θ)の「θ」に代入した際の算出値を補正値α(AngS)として取得する。これにより、回転角算出部105は、現在の回転角検出値AngSに応じた値を補正値α(AngS)として取得できる。そして、回転角算出部105は、回転角検出値AngSを補正値α(AngS)で補正することによって回転角算出値AngCを算出する。具体的には、回転角算出部105は、回転角検出値AngSから補正値α(AngS)を引いた値を回転角算出値AngCとして算出する。
【0035】
モータ制御部107は、車輪11に制動力を付与する場合に電気モータ31を駆動させる。具体的には、モータ制御部107は、車輪11に対する要求制動力に応じた電気モータ31の回転角を指令回転角Ang*として算出する。そして、モータ制御部107は、回転角算出部105によって算出された回転角算出値AngCと指令回転角Ang*との偏差を入力とするフィードバック制御を実施することにより、電気モータ31を駆動させる。
【0036】
<基準回転角補正処理>
図6を参照し、基準回転角AngBを補正する一連の処理の流れである基準回転角補正処理を説明する。実行部81は、基準回転角補正処理を示す処理ルーチンを繰り返し実行する。なお、本処理ルーチンを構成する複数のステップS11~S25は、実行部81が基準回転角補正部101として機能することによって実行される。
【0037】
ステップS11において、実行部81は、補正完了フラグFLG1にオフがセットされているか否かを判定する。補正完了フラグFLG1は、車両10の今回の制御システムの動作中に基準回転角の補正が完了している場合にオンがセットされるフラグである。なお、当該制御システムが停止した場合には、補正完了フラグFLG1にオフがセットされる。実行部81は、補正完了フラグFLG1にオフがセットされている場合(S11:YES)、処理をステップS13に移行する。一方、実行部81は、補正完了フラグFLG1にオンがセットされている場合(S11:NO)、本処理ルーチンを一旦終了する。
【0038】
ステップS13において、実行部81は、車輪11に制動要求があるか否かを判定する。実行部81は、制動要求があると判定した場合(S13:YES)、本処理ルーチンを一旦終了する。すなわち、実行部81は、制動要求がある場合には、基準回転角AngBを補正しない。一方、実行部81は、制動要求がないと判定した場合(S13:NO)、処理をステップS15に移行する。
【0039】
ステップS15において、実行部81は、指令回転角Ang*として原点回転角Ang1を設定する。原点回転角Ang1は0(零)である。ステップS17において、実行部81は、指令回転角Ang*に基づいたフィードフォワード制御によって電気モータ31を駆動させる。実行部81は、出力軸32の回転角が指令回転角Ang*に応じた値になったと判断すると、処理をステップS19に移行する。
【0040】
ステップS19において、実行部81は現在の回転角検出値AngSを取得する。ステップS21において、実行部81は、回転角検出値AngSから原点回転角Ang1を引いた値を原点誤差ΔAngとして算出する。
【0041】
ステップS23において、実行部81は、補正前の基準回転角AngBから原点誤差ΔAngを引いた値を、補正後の基準回転角AngBaとして算出する。ステップS25において、実行部81は補正完了フラグFLG1にオンをセットする。その後、実行部81は本処理ルーチンを一旦終了する。
【0042】
<正弦関数作成処理>
図7を参照し、正弦関数F(θ)を作成する一連の処理の流れである正弦関数作成処理を説明する。実行部81は、正弦関数作成処理を示す処理ルーチンを繰り返し実行する。なお、本処理ルーチンを構成する複数のステップS31~S47は、実行部81が関数作成部103として機能することによって実行される。
【0043】
ステップS31において、実行部81は、関数導出フラグFLG2にオフがセットされているか否かを判定する。関数導出フラグFLG2は、車両10の今回の制御システムの動作中に振幅Aが設定された場合にオンがセットされるフラグである。なお、当該制御システムが停止した場合には、関数導出フラグFLG2にオフがセットされる。実行部81は、関数導出フラグFLG2にオフがセットされている場合(S31:YES)、処理をステップS33に移行する。一方、実行部81は、関数導出フラグFLG2にオンがセットされている場合(S31:NO)、本処理ルーチンを一旦終了する。
【0044】
ステップS33において、実行部81は、補正完了フラグFLG1にオンがセットされているか否かを判定する。実行部81は、補正完了フラグFLG1にオンがセットされている場合(S33:YES)、処理をステップS35に移行する。一方、実行部81は、補正完了フラグFLG1にオフがセットされている場合(S33:NO)、本処理ルーチンを一旦終了する。すなわち、実行部81は、基準回転角AngBの補正が完了してから正弦関数F(θ)の作成を行う。
【0045】
ステップS35において、実行部81は、車輪11に対して制動要求があるか否かを判定する。実行部81は、制動要求がある場合(S35:YES)、本処理ルーチンを一旦終了する。すなわち、実行部81は、制動要求がある場合には正弦関数F(θ)の作成を行わない。一方、実行部81は、制動要求がない場合(S35:NO)、処理をステップS37に移行する。
【0046】
ステップS37において、実行部81は、補正後の基準回転角AngBaを指令回転角Ang*として設定する。ステップS39において、実行部81は、指令回転角Ang*に基づいたフィードフォワード制御によって電気モータ31を駆動させる。実行部81は、出力軸32の回転角が指令回転角Ang*に応じた値になったと判断すると、処理をステップS41に移行する。
【0047】
ステップS41において、実行部81は現在の回転角検出値AngSを取得する。ステップS43において、実行部81は、回転角検出値AngSと補正後の基準回転角AngBaとの差分の大きさAngDを算出する。ステップS45において、実行部81は、差分の大きさAngDを振幅Aとして設定する。これにより、正弦関数F(θ)の作成が完了する。ステップS47において、実行部81は関数導出フラグFLG2にオンをセットする。その後、実行部81は本処理ルーチンを一旦終了する。
【0048】
<回転角算出処理>
図8を参照し、回転角算出値AngCを算出する一連の処理の流れである回転角算出処理を説明する。実行部81は、回転角算出処理を示す処理ルーチンを繰り返し実行する。なお、本処理ルーチンを構成する複数のステップS61~S67は、実行部81が回転角算出部105として機能することによって実行される。
【0049】
ステップS61において、実行部81は、補正完了フラグFLG1及び関数導出フラグFLG2の双方にオンがセットされているか否かを判定する。実行部81は、両フラグFLG1,FLG2の双方にオンがセットされている場合(S61:YES)、処理をステップS63に移行する。一方、実行部81は、両フラグFLG1,FLG2のうち少なくとも一方のフラグにオフがセットされている場合(S61:NO)、本処理ルーチンを一旦終了する。
【0050】
ステップS63において、実行部81は現在の回転角検出値AngSを取得する。ステップS65において、実行部81は、正弦関数作成処理で作成した正弦関数F(θ)を用い、現在の回転角検出値AngSに応じた補正値α(AngS)を算出する。ステップS67において、実行部81は、現在の回転角検出値AngSから補正値α(AngS)を引いた値を回転角算出値AngCとして算出する。その後、実行部81は本処理ルーチンを一旦終了する。
【0051】
なお、図8に示した回転角算出処理で回転角算出値AngCが算出されない場合、実行部81は以下のように回転角算出値AngCを算出するとよい。例えば、実行部81は、制動装置30の諸元で設定された値を振幅Aとする正弦関数F(θ)を用いることにより、回転角検出値AngSに応じた補正値α(AngS)を算出する。そして、実行部81は、回転角検出値AngSを補正値α(AngS)で補正することによって回転角算出値AngCを算出する。
【0052】
<本実施形態の作用及び効果>
(1)ECU80は、正弦関数F(θ)の振幅Aを、所定の基準回転角に応じた電流を電気モータ31のコイルに流した場合における回転角算出値AngCと基準回転角との差分の大きさAngDに応じた大きさに設定する。これにより、出力軸32の回転角を変化させた場合における正弦関数F(θ)の算出値の推移を示す正弦波形を、出力軸32の回転角を変化させた場合における検出誤差EAngの推移を示す波形に近似させることができる。すなわち、ECU80は、そのときの出力軸32と検出部72との位置関係を反映した正弦関数F(θ)を作成できる。そして、ECU80は、正弦関数F(θ)を用いて回転角検出値AngSに対応する補正値α(AngS)を算出し、回転角検出値AngSを補正値α(AngS)で補正することによって回転角算出値AngCを算出する。したがって、ECU80は、電気モータ31の出力軸32の回転角を精度良く算出できる。
【0053】
(2)ECU80は、正弦関数F(θ)の振幅Aを設定する前に、基準回転角AngBを補正するようにしている。そして、ECU80は、振幅Aを、補正後の基準回転角AngBaに応じた電流を電気モータ31に流した場合における回転角算出値AngCと基準回転角との差分の大きさAngDに応じた大きさに設定する。これにより、出力軸32の回転角を変化させた場合における正弦関数F(θ)の算出値の推移を示す正弦波形を、出力軸32の回転角を変化させた場合における検出誤差EAngの推移を示す波形により近似させることができる。したがって、ECU80は、補正値α(AngS)の算出精度を高くできるため、電気モータ31の出力軸32の回転角の算出精度をより高くできる。
【0054】
(3)本実施形態では、検出部72が実装される回路基板90の実装面91は、出力軸32の軸線32aと直交している。その結果、第3軸Yに沿う方向において検出部72が被検出部71に対して相対的に変位しにくい。そのため、ECU80が基準回転角を補正した場合、補正後の基準回転角AngBaと補正前の基準回転角AngBとの差分の大きさが大きくなりにくい。
【0055】
(4)ECU80は、車輪11に対する制動要求がない場合に、基準回転角の補正、及び正弦関数F(θ)の振幅Aの設定を行うようにしている。すなわち、ECU80は、車両10の走行に支障がない状況下で正弦関数F(θ)を作成できる。
【0056】
(5)本実施形態では、車両10の制御システムが起動する度に正弦関数F(θ)を作成するようにしている。そのため、ECU80は、最新の検出部72と被検出部71との位置関係に応じた正弦関数F(θ)を作成できる。したがって、ECU80は、電気モータ31の回転角を算出する精度を高くできる。
【0057】
<変更例>
上記実施形態は、以下のように変更して実施することができる。上記実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0058】
・上記実施形態では、車両10の制御システムの起動時に基準回転角補正処理及び関数作成処理を実行するようにしているが、これに限らない。すなわち、ECU80は、制御システムの動作中でも車輪11に対する制動要求がない状況下であれば、所定の実行条件が成立した場合に基準回転角補正処理及び関数作成処理を実行するようにしてもよい。所定の実行条件は、検出部72と被検出部71との位置関係が変わった可能性ありと判断できる条件である。例えば、実行部81は、基準回転角補正処理及び関数作成処理を実行した時点からの外気温の変化量が所定量を越えた場合に実行条件が成立したと判定し、基準回転角補正処理及び関数作成処理を実行してもよい。
【0059】
・基準回転角補正処理及び関数作成処理を、車両10の制御システムが起動する度に実行することは必須ではない。検出部72と被検出部71との位置関係は、時間がある程度経過してから変化するようになる。そのため、基準回転角補正処理及び関数作成処理を前回に実行した日にちから所定日数が越えた場合に、基準回転角補正処理及び関数作成処理を実行するようにしてもよい。
【0060】
・出力軸32の軸線32aに実装面91が直交するように回路基板90を配置することは必須ではない。
・ECU80が実装されている回路基板90に検出部72を実装することは必須ではない。
【0061】
・基準回転角補正処理では、原点回転角Ang1として0(零)°を設定しているが、これに限らない。検出部72の現時点の第3軸Yに沿う方向の位置が初期位置である場合を所定状態という。このとき、所定状態である場合には原点誤差ΔAngが0(零)となるときの回転角である90°、180°及び270°の何れかを原点回転角Ang1として設定してもよい。すなわち、正弦関数F(θ)の算出値が0(零)となるときの回転角を原点回転角Ang1として設定すればよい。
【0062】
・上記実施形態では、第3軸Yに沿う方向において検出部72は被検出部71に対して相対的に変位しにくい。そのため、ECU80は、基準回転角補正処理を実行しなくてもよい。
【0063】
・基準回転角AngBは、検出誤差EAngが最大となるときの回転角であれば、45°以外の回転角であってもよい。すなわち、225°を基準回転角AngBとして設定してもよい。
【0064】
・検出誤差EAngが最大となるときの回転角を基準回転角AngBとしてもよい。例えば、135°や315°を基準回転角AngBとして設定してもよい。また、20°以上且つ45°未満の回転角を、基準回転角AngBとして設定してもよい。
【0065】
・被検出部71が取り付けられる回転軸は、電気モータ31の駆動によって回転する軸であれば出力軸32でなくてもよい。例えば、中間ギヤ43を支持する支持軸45に被検出部71を取り付け、ECU80では、支持軸45の回転角を算出するようにしてもよい。この場合、支持軸45が「回転軸」に対応することになる。
【0066】
・モータ制御装置を備える制動装置は、電気モータを駆動させることによって車輪11に制動力を付与できるものであれば、図1に示した構成とは異なる構成の装置であってもよい。制動装置は、電動式のポンプを備えたものであってもよい。この場合、モータ制御装置は、ポンプの動力源となる電気モータを備えることになる。
【0067】
・ECU80は、コンピュータプログラムに従って動作する1つ以上のプロセッサ、各種処理のうち少なくとも一部の処理を実行する専用のハードウェアなどの1つ以上の専用のハードウェア回路又はこれらの組み合わせを含む回路として構成し得る。専用のハードウェアとしては、例えば、特定用途向け集積回路であるASICを挙げることができる。プロセッサは、CPU並びに、RAM及びROMなどのメモリを含み、メモリは、処理をCPUに実行させるように構成されたプログラムコード又は指令を格納している。メモリ、すなわち記憶媒体は、汎用又は専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。
【0068】
なお、本明細書において使用される「少なくとも1つ」という表現は、所望の選択肢の「1つ以上」を意味する。一例として、本明細書において使用される「少なくとも1つ」という表現は、選択肢の数が2つであれば「1つの選択肢のみ」又は「2つの選択肢の双方」を意味する。他の例として、本明細書において使用される「少なくとも1つ」という表現は、選択肢の数が3つ以上であれば「1つの選択肢のみ」又は「2つ以上の任意の選択肢の組み合わせ」を意味する。
【0069】
<技術的思想>
次に、上記実施形態及び変更例から把握できる技術的思想を付記として記載する。
(付記1)前記正弦関数の算出値が0(零)となるときの前記回転角を原点回転角としたとき、前記基準回転角補正部は、前記原点回転角に応じた電流を前記電気モータに流した場合における前記回転角検出値から当該原点回転角を引いた値を原点誤差として算出し、当該原点誤差に応じて前記基準回転角を補正することが好ましい。
【符号の説明】
【0070】
10…車両
11…車輪
31…電気モータ
32…出力軸(回転軸の一例)
32a…軸線
45…支持軸(回転軸の一例)
70…回転角センサ
71…被検出部
72…検出部
80…ECU(電子制御装置)
90…回路基板
91…実装面(板面)
101…基準回転角補正部
103…関数作成部
105…回転角算出部
図1
図2
図3
図4
図5
図6
図7
図8