(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024011916
(43)【公開日】2024-01-25
(54)【発明の名称】制御装置、制御方法、および制御プログラム
(51)【国際特許分類】
B62D 6/00 20060101AFI20240118BHJP
【FI】
B62D6/00
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022114258
(22)【出願日】2022-07-15
(71)【出願人】
【識別番号】000005119
【氏名又は名称】日立造船株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】松▲崎▼ 弘樹
(72)【発明者】
【氏名】笠原 暢
【テーマコード(参考)】
3D232
【Fターム(参考)】
3D232CC20
3D232CC24
3D232DA03
3D232DA04
3D232DA22
3D232DA23
3D232DA90
3D232DC03
3D232DC04
3D232DC09
3D232DC22
3D232DD02
3D232DE02
3D232EA01
3D232EB04
3D232EB07
3D232EB08
3D232EC23
(57)【要約】
【課題】不感帯の影響をキャンセルしつつ、蛇行や発散の発生を防ぐ。
【解決手段】制御装置(1)は、車両の進行方向を制御する制御値として当該車両の舵角を算出する舵角算出部(11)と、舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始すると共に、次に舵角が減少から増加にまたは増加から減少に転じるまでに不感帯幅をゼロにする不感帯補償部(12)と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
車両の進行方向を制御する制御値として当該車両の舵角を算出する舵角算出部と、
前記舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始すると共に、次に前記舵角が減少から増加にまたは増加から減少に転じるまでに前記不感帯幅をゼロにする不感帯補償部と、を備える、制御装置。
【請求項2】
前記不感帯補償部は、前記車両の進行方向の変化速度に連動させて、前記不感帯幅を減少させる、請求項1に記載の制御装置。
【請求項3】
前記不感帯補償部は、前記車両の進行方向の変化速度がピークに達したことを契機として前記不感帯幅を減少させ始める、請求項2に記載の制御装置。
【請求項4】
前記不感帯補償部は、前記不感帯補償を開始したタイミングおよび前記不感帯補償を開始したときの前記舵角の少なくとも何れかを基準として前記不感帯幅を減少させ始めるタイミングを決定する、請求項1または2に記載の制御装置。
【請求項5】
前記不感帯補償部は、前記車両の進行方向の変化速度がピークに達した時点から所定期間で前記不感帯幅をゼロにする、請求項1または2に記載の制御装置。
【請求項6】
前記不感帯補償部は、前記車両の進行方向の変化速度に応じて前記不感帯補償の開始時における前記不感帯幅を決定する、請求項1から3の何れか1項に記載の制御装置。
【請求項7】
車両の進行方向を制御する制御値として当該車両の舵角を算出する舵角算出部と、
前記舵角に対する不感帯補償を行うものであって、前記車両の進行方向の変化速度に応じて当該不感帯補償の開始時における不感帯幅を決定する不感帯補償部と、を備える、制御装置。
【請求項8】
1または複数の情報処理装置が実行する車両の制御方法であって、
前記車両の進行方向を制御する制御値として当該車両の舵角を算出する舵角算出ステップと、
前記舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始すると共に、次に前記舵角が減少から増加にまたは増加から減少に転じるまでに前記不感帯幅をゼロにする不感帯補償ステップと、を含む車両の制御方法。
【請求項9】
請求項1に記載の制御装置としてコンピュータを機能させるための制御プログラムであって、前記舵角算出部および前記不感帯補償部としてコンピュータを機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両を自律走行させるための制御装置等に関する。
【背景技術】
【0002】
トラクタ等の作業車両を自律走行させるための技術が従来から知られている。例えば、下記の特許文献1には、自動運転制御部によりトラクタの自動運転を制御する自動運転システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
これは作業用車両に限られないが、ハンドル(ステアリングホイール)を操作することで進行方向を制御する車両には、ハンドルを操作しても車輪が動かず、舵角が変化しない範囲が存在する。このため、特許文献1のように、ハンドルに対して制御を行うことにより車両を旋回させる場合、旋回のタイミングが遅れて蛇行走行となってしまうことがある。このような蛇行走行の原因と考えられる、ハンドル操作のために入力される舵角の制御値の範囲のうち、車輪の角度変化を生じさせない範囲は不感帯と呼ばれる。
【0005】
不感帯の影響を抑えるための方法としては不感帯補償が知られている。舵角の制御において不感帯補償を行う場合には、舵角の制御値に所定の不感帯幅を加算すればよい。これにより、車輪の角度変化が所定のタイミングで開始されるようにして、旋回のタイミングが遅れることを防ぐことができる。
【0006】
しかしながら、不感帯幅を加算する場合、不感帯幅を加算した分だけ舵角の制御値の振幅が大きくなり、これは蛇行や発散の原因となる。本発明の一態様は、不感帯の影響をキャンセルしつつ、舵角の制御値の振幅が大きくなり過ぎることによる蛇行や発散の発生を防ぐことを可能にする制御装置等を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本発明の一態様に係る制御装置は、車両の進行方向を制御する制御値として当該車両の舵角を算出する舵角算出部と、前記舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始すると共に、次に前記舵角が減少から増加にまたは増加から減少に転じるまでに前記不感帯幅をゼロにする不感帯補償部と、を備える。
【0008】
上記の課題を解決するために、本発明の一態様に係る制御方法は、1または複数の情報処理装置が実行する車両の制御方法であって、前記車両の進行方向を制御する制御値として当該車両の舵角を算出する舵角算出ステップと、前記舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始すると共に、次に前記舵角が減少から増加にまたは増加から減少に転じるまでに前記不感帯幅をゼロにする不感帯補償ステップと、を含む。
【発明の効果】
【0009】
本発明の一態様によれば、不感帯の影響をキャンセルしつつ、舵角の制御値の振幅が大きくなり過ぎることによる蛇行や発散の発生を防ぐことが可能になる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態に係る制御装置の要部構成の一例を示すブロック図である。
【
図2】上記制御装置によるトラクタの走行制御を説明する図である。
【
図4】不感帯補償部が実行する処理の一例を示すフローチャートである。
【
図5】不感帯幅を調整する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
〔制御装置の構成〕
本実施形態に係る制御装置1の構成を
図1に基づいて説明する。
図1は、制御装置1の要部構成の一例を示すブロック図である。また、
図1には、制御装置1の制御対象である車両の一例としてトラクタTR1を記載している。図示は省略しているが、トラクタTR1には、トラクタTR1の位置を検出する位置検出装置およびトラクタTR1の速度を検出する速度センサ等のトラクタTR1の自動運転に必要な各種装置が取り付けられており、これらの装置は制御装置1に接続されている。
【0012】
制御装置1は、トラクタTR1の動作を制御する装置である。制御装置1は、トラクタTR1に内蔵されていてもよいし、トラクタTR1に外付けされていてもよい。図示のように、制御装置1は、舵角算出部11と不感帯補償部12を備えていると共に、制御装置1が使用する各種データを記憶する記憶部13を備えている。
【0013】
舵角算出部11は、トラクタTR1に取り付けられた位置検出装置により検出されたトラクタTR1の位置情報、および、トラクタTR1の正面方向を示す方位角を示す情報を取得し、それらの情報を用いてトラクタTR1の舵角を算出する。この舵角は、トラクタTR1の進行方向を制御する制御値である。舵角算出部11による舵角の計算方法については後記「走行制御」の項目で説明する。
【0014】
不感帯補償部12は、舵角算出部11が出力する舵角に対して不感帯補償を行い、不感帯補償後の舵角を指令舵角としてトラクタTR1に出力する。より詳細には、不感帯補償部12は、舵角算出部11が出力する舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始する。そして、不感帯補償部12は、舵角算出部11が出力する舵角が次に減少から増加にまたは増加から減少に転じるまでに不感帯幅をゼロにする。
【0015】
以上のように、制御装置1は、トラクタTR1の進行方向を制御する制御値としてトラクタTR1の舵角を算出する舵角算出部11と、舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始すると共に、次に舵角が減少から増加にまたは増加から減少に転じるまでに不感帯幅をゼロにする不感帯補償部12と、を備える。
【0016】
上記の構成によれば、舵角が増加から減少にまたは減少から増加に転じるとき、すなわちトラクタTR1の進行方向を変えるときに不感帯補償を開始するので、トラクタTR1の進行方向を変える際の不感帯の影響をキャンセルすることができる。また、上記の構成によれば、次に舵角が減少から増加にまたは増加から減少に転じるまで、すなわち次にトラクタTR1の進行方向を変えるときまでに不感帯幅をゼロにする。よって、舵角の制御値の振幅が大きくなり過ぎることを防ぎ、これにより蛇行や発散の発生を防ぐことが可能になる。なお、ここで、「不感帯幅をゼロにする」とは、舵角の制御値の振幅が大きくなり過ぎることを防ぎ、これにより蛇行や発散の発生を防ぐことが可能な程度の十分に小さい値まで不感帯幅を減少させることを意味する。つまり、「不感帯幅をゼロにする」の範疇には、不感帯幅を完全にゼロにする構成の他、不感帯幅を実質的にゼロにする構成等も含まれる。以下の説明においても同様である。また、制御装置1は、トラクタTR1に限られず、任意の車両の走行制御に利用することができる。このため、以下の説明における「トラクタTR1」は、任意の「車両」に置き換えることができる。
【0017】
〔走行制御〕
制御装置1によるトラクタTR1の走行制御について
図2に基づいて説明する。
図2は、制御装置1によるトラクタTR1の走行制御を説明する図である。
図2では、目標経路始点WPsと目標経路終点WPeとを結ぶ経路をトラクタTR1に走行させることを想定している。なお、
図2において、Y軸の正方向が北、X軸の正方向が東である。また、
図2においては、トラクタTR1の正面方向を示す方位角θpは、真北の方向(Y軸方向)を基準として表している。つまり、トラクタTR1が真北を向いているときの方位角θpは0°であり、トラクタTR1が真東を向いているときの方位角θpは90°である。
【0018】
図2に示す状態では、制御装置1が取り付けられたトラクタTR1は、目標経路始点WPsと目標経路終点WPeとを結ぶ経路から外れた位置にある。当該経路からトラクタTR1の重心位置Pまでの距離(横方向偏差)はΔdである。
図2では、重心位置Pから距離Δdだけ離れた経路上の点をMとしている。
【0019】
この場合、制御装置1は、トラクタTR1に取り付けられた位置検出装置が出力する位置情報に基づいて、トラクタTR1を経路上に移動させる制御を行う。具体的には、制御装置1が備える舵角算出部11が、上述の点Mから上述の経路を予め定められた前方注視距離Lだけ進んだ位置を仮想目標点Tに設定する。続いて、舵角算出部11は、重心位置Pと仮想目標点Tを結ぶ線分と基準方向(真北)とのなす角を目標方位角θtに設定する。そして、舵角算出部11は、設定した目標方位角θtと、トラクタTR1の方位角θpとの差を方位偏差Δθ(経路方位偏差Δθc)として算出し、算出した方位偏差ΔθだけトラクタTR1を旋回させるための舵角δを算出する。
【0020】
例えば、舵角算出部11は、方位偏差Δθを方位についての比例制御器に入力して算出させた舵角の方位要素δaと、距離Δdを横方向についての比例積分制御器に入力して算出させた舵角の横方向要素δsとに基づいて舵角δを算出してもよい。なお、上記の比例制御器と比例積分制御器は舵角算出部11の構成要素として設ければよい。
【0021】
このようにして算出された舵角δに対して不感帯補償部12が不感帯補償を行い、不感帯補償後の舵角を指令舵角としてトラクタTR1に出力し、これによりトラクタTR1のハンドル(ステアリングホイール)が指令舵角分だけ回動する。以上のような処理は、重心位置Pを随時更新しながら、Δdおよび方位偏差Δθがゼロになるまで繰り返し行われる。
【0022】
〔不感帯補償〕
本項目では、
図3に基づいて不感帯補償の例を説明する。
図3は、不感帯補償の例を示す図である。
図3には、グラフG1~G4を示している。グラフG1は、舵角算出部11が算出する舵角の時系列変化の一例を示している。
図3の例では、舵角算出部11が算出する舵角は、周期的かつ所定の振幅で増減している。
【0023】
また、グラフG2は、グラフG1のように舵角を変化させたときのトラクタTR1の正面方向を示す方位偏差(
図2におけるΔθ)の微分値の時系列変化を示している。方位角あるいは方位偏差の微分値は、トラクタTR1の進行方向の変化速度を表している。方位偏差の微分値は舵角と同じ周期で増減しているが、舵角のグラフG1と方位偏差の微分値のグラフG2とは位相がずれている。すなわち、舵角がピークのときに微分値はゼロになり、微分値がピークのときに舵角はゼロになっている。これは、トラクタTR1のハンドル(ステアリングホイール)を切る方向が反転する直前のタイミングで舵角はピークとなり、このタイミングではトラクタTR1の進行方向が変化しないためである。
【0024】
グラフG3は、不感帯補償の比較例を示し、グラフG4は不感帯補償部12による不感帯補償の例を示している。グラフG3およびG4における破線は舵角算出部11が算出する舵角(グラフG1に示すものと同じ)の時系列変化を示し、実線は不感帯補償後の舵角の時系列変化を示している。
【0025】
グラフG3の例では、舵角算出部11が算出する舵角がピークに達する直前に舵角を所定の不感帯幅だけ増加または減少させる不感帯補償を行っている。例えば、舵角が正の値でピークとなる時刻t1付近においては舵角を減少させる負方向の不感帯補償を行っている。そして、舵角が負の値でピークとなる時刻t3の直前で負方向の不感帯補償を終了し、その直後に舵角を増加させる正方向の不感帯補償を行っている。
【0026】
このような不感帯補償を行うことにより、不感帯の影響を抑えることが可能である。ただし、グラフG3の例では、不感帯補償後の舵角の振幅が、不感帯補償前よりも不感帯幅の分だけ大きくなっている。このような振幅の増加は蛇行や発散の原因となるため好ましくない。
【0027】
そこで、不感帯補償部12は、舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始すると共に、次に舵角が減少から増加にまたは増加から減少に転じるまでに不感帯幅をゼロにする。
【0028】
例えば、グラフG4の例では、不感帯補償部12は、舵角が増加から減少に転じる時刻t1から不感帯補償を開始している。そして、不感帯補償部12は、時刻t2から不感帯幅を減少させ始め、時刻t1の次に舵角が減少から増加に転じる時刻t3までに不感帯幅をゼロにしている。これにより、振幅が大きくなり過ぎることを防ぎ、蛇行や発散の発生を防ぐことが可能になる。
【0029】
また、不感帯補償部12は、方位偏差の微分値すなわちトラクタTR1の進行方向の変化速度がピークに達したことを契機として、不感帯幅を減少させ始めてもよい。例えば、グラフG4の例では、時刻t2の直前に方位偏差の微分値が負の値でピークとなっており、不感帯補償部12は、このことを契機として不感帯幅を減少させ始めている。
【0030】
ここで、トラクタTR1の進行方向の変化速度がピークに達した時点では、直前の不感帯の影響はキャンセルできていると考えられる。例えば、グラフG4の例では、時刻t1におけるハンドルの切り返し時の不感帯の影響は、時刻t2付近ではキャンセルできていると考えられる。
【0031】
そして、トラクタTR1の進行方向の変化速度がピークに達した後は、当該変化速度は減少に転じるから、トラクタTR1の進行方向の変化速度がピークに達したことを契機として不感帯幅を減少させ始める上記の構成によれば、不感帯の影響を確実にキャンセルしつつ、滑らかなステアリングを実現することが可能になる。
【0032】
〔不感帯幅の調整〕
また、グラフG4の例では、不感帯補償部12は、方位偏差の微分値すなわちトラクタTR1の進行方向の変化速度に連動させて不感帯幅を減少させている。例えば、時刻t2から時刻t3の期間では、方位偏差の微分値がゼロに近付くにつれて不感帯幅の減少速度を低下させている。
【0033】
一般に、車両の進行方向を変える場合、車両の進行方向の変化速度は経時的に増加してピークを迎えた後、経時的に減少してゼロになる。よって、トラクタTR1の進行方向の変化速度に連動させて不感帯幅を減少させる上記の構成によれば、経時的に減少するトラクタTR1の進行方向の変化速度に連動させて不感帯幅を減少させることができる。そして、これにより、不感帯補償後の舵角が急変することを防いで、滑らかなステアリングを実現することができる。
【0034】
方位偏差の微分値に連動させて不感帯幅を減少させる場合、不感帯補償部12は、例えば下記の数式(1)を用いて不感帯幅を調整してもよい。
【0035】
【0036】
上記数式(1)において、δ’deadzoneは調整後の不感帯幅であり、δdeadzoneは不感帯幅の初期値である。また、
【0037】
【0038】
は方位偏差の微分値であり、
【0039】
【0040】
は上記微分値のピーク値である。
【0041】
上記の数式(1)を用いて不感帯幅を調整する場合、方位偏差の微分値がピーク値と等しいときに、調整後の不感帯幅が初期値の1/2となる。そして、方位偏差の微分値のピーク値に対する比が減少するにつれて調整後の不感帯幅も減少し、方位偏差の微分値がゼロになるときに、調整後の不感帯幅がゼロになる。よって、不感帯補償部12は、数式(1)を用いて不感帯幅を調整することにより、方位偏差の微分値がピークになったときからゼロになるまでの期間に徐々に不感帯幅を小さくすること、つまり方位偏差の微分値に連動させて不感帯幅を減少させることができる。
【0042】
〔方位偏差の微分値が小さい状態における不感帯幅の調整〕
ところで、方位偏差の微分値が小さい状態が続いているときは、舵角の変化が小さい状態が続いているといえる。例えば、トラクタTR1が経路に沿って直進している際には、舵角および方位偏差の微分値の何れも変化が小さい状態となる。このような状態において、旋回時と同様の不感帯幅で不感帯補償を行った場合、指令舵角が振動的になり直進走行に支障が出ることも想定される。
【0043】
そこで、例えば、不感帯補償部12は、方位偏差の微分値が所定の閾値φ以下であるときには、下記の数式(2)を用いて不感帯幅を調整してもよい。
【0044】
【0045】
不感帯補償部12は、上記数式(2)を用いて不感帯幅を調整することにより、方位偏差の微分値が小さいときに、不感帯補償の開始時における不感帯幅を小さくすることができる。また、上記数式(2)を用いて不感帯幅を調整する場合も、方位偏差の微分値が小さくなるにつれて、徐々に不感帯幅を小さくすることができる。
【0046】
このように、不感帯補償部12は、トラクタTR1の進行方向の変化速度に応じて不感帯補償の開始時における不感帯幅を決定してもよい。上述のように、トラクタTR1の進行方向が大きく変化していないときに不感帯幅の大きい不感帯補償を行うと、かえって蛇行などが生じることがあるが、当該構成によれば、不要に大きい不感帯幅で不感帯補償が行われることを避けることができる。
【0047】
なお、不感帯補償部12は、上記数式(2)を用いて不感帯補償の開始時における不感帯幅を決定した後、他の方法で不感帯幅を減少させてもよい。例えば、不感帯補償部12は、上記数式(2)を用いて不感帯幅を決定した後、上記数式(1)を用いて不感帯幅を減少させてもよいし、後述する
図6または
図7のような方法で不感帯幅を減少させてもよい。
【0048】
〔処理の流れ〕
不感帯補償部12が実行する処理について
図4に基づいて説明する。
図4は、不感帯補償部12が実行する処理の一例を示すフローチャートである。なお、
図4および後述の
図5の処理が行われている期間中には、トラクタTR1の進行方向を制御する制御値として舵角を算出する処理(舵角算出ステップ)が舵角算出部11により所定時間毎に繰り返し行われ、算出された舵角が記憶部13に記憶されている。
【0049】
S1では、不感帯補償部12は、入力が増加したか否か、すなわち舵角算出部11が算出した最新の舵角が、その直前に算出された舵角に対して増加したか否かを判定する。S1でYESと判定された場合にはS2の処理に進み、S1でNOと判定された場合にはS3の処理に進む。
【0050】
S2では、不感帯補償部12は、入力の増減を表すパラメータを1に設定する。つまり、入力の増減を表すパラメータが1であることは、不感帯補償部12に対する入力が増加していることを示す。S2の後は、S21~S26の処理に進む。
【0051】
一方、S3では、不感帯補償部12は、入力の増減を表すパラメータを-1に設定する。つまり、入力の増減を表すパラメータが-1であることは、不感帯補償部12に対する入力が減少していることを示す。S3の後は、S31~S36の処理に進む。
【0052】
S21では、不感帯補償部12は、入力が増加したか否かを判定する。S1、S2、S21の順で処理が遷移した場合にはS21の判定結果はYESとなる。後述するS23またはS36からS21に遷移した場合には、舵角算出部11が算出した最新の舵角が、その直前に算出された舵角に対して増加したか否かが判定される。S21でYESと判定された場合にはS22の処理に進み、S21でNOと判定された場合にはS23の処理に進む。
【0053】
S22では、不感帯補償部12は、舵角算出部11が算出した舵角のピーク値を更新する。なお、S22の処理の初回実行時には、記憶部13にピーク値が記録され、S22の処理の2回目以降の実行時には記憶部13に記録されているピーク値が更新される。この後、処理はS21に戻る。
【0054】
S23では、不感帯補償部12は、入力すなわち舵角算出部11が算出した最新の舵角と、S22で記録または更新されたピーク値との差が閾値以下であるか否かを判定する。この閾値は、舵角算出部11が算出する舵角の微細な変動で不感帯補償が開始または終了させることを防ぐために設定されている。S23でYESと判定された場合にはS21の処理に戻り、S23でNOと判定された場合にはS24の処理に進む。
【0055】
なお、増減を表すパラメータが1であるときに入力が減少し(S21でNO)、かつピーク値と入力の差が閾値より大きくなる(S23でNO)ということは、舵角が増加から減少に転じたことを意味する。つまり、S21およびS23では舵角が増加から減少に転じたか否かが判定されている。
【0056】
S24では、不感帯補償部12は、正方向の不感帯補償の実行中であるか否かを判定する。なお、正方向の不感帯補償とは、舵角算出部11が算出した舵角に所定の不感帯幅を加算することを意味する。S24でYESと判定された場合にはS25の処理に進み、S24でNOと判定された場合にはS26の処理に進む。
【0057】
S25では、不感帯補償部12は、正方向の不感帯補償を終了し、S21の処理に戻る。一方、S26では、不感帯補償部12は、入力の増減を表すパラメータを、入力が減少していることを示す-1の値に更新し、負方向の不感帯補償すなわち舵角算出部11が算出した舵角から所定の不感帯幅を減算する処理を開始する。この後、処理はS31に進む。
【0058】
S31では、不感帯補償部12は、入力が減少したか否かを判定する。S1、S3、S31の順で処理が遷移した場合、入力の変化がゼロでなければS31の判定結果はYESとなる。S26またはS33からS31に遷移した場合には、舵角算出部11が算出した最新の舵角が、その直前に算出された舵角に対して減少したか否かが判定される。S31でYESと判定された場合にはS32の処理に進み、S31でNOと判定された場合にはS33の処理に進む。
【0059】
S32では、不感帯補償部12は、入力のピーク値すなわち舵角算出部11が算出した舵角のピーク値を更新する。なお、S32の処理の初回実行時には、記憶部13にピーク値が記録され、S32の処理の2回目以降の実行時には記憶部13に記録されているピーク値が更新される。この後、処理はS31に戻る。
【0060】
S33では、不感帯補償部12は、入力すなわち舵角算出部11が算出した最新の舵角と、S32で記録または更新されたピーク値との差が閾値以下であるか否かを判定する。S33でYESと判定された場合にはS31の処理に戻り、S33でNOと判定された場合にはS34の処理に進む。
【0061】
なお、増減を表すパラメータが-1であるときに入力が増加し(S31でNO)、かつピーク値と入力の差が閾値より大きくなる(S33でNO)ということは、舵角が減少から増加に転じたことを意味する。つまり、S31およびS33では舵角が減少から増加に転じたか否かが判定されている。
【0062】
S34では、不感帯補償部12は、負方向の不感帯補償の実行中であるか否かを判定する。なお、負方向の不感帯補償とは、舵角算出部11が算出した舵角から所定の不感帯幅を減算することを意味する。S34でYESと判定された場合にはS35の処理に進み、S34でNOと判定された場合にはS36の処理に進む。
【0063】
S35では、不感帯補償部12は、負方向の不感帯補償を終了し、S31の処理に戻る。一方、S36では、不感帯補償部12は、入力の増減を表すパラメータを、入力が増加していることを示す1の値に更新し、正方向の不感帯補償すなわち舵角算出部11が算出した舵角に所定の不感帯幅を加算する処理を開始する。この後処理はS21に戻る。
【0064】
〔処理の流れ:不感帯幅の調整〕
不感帯幅を調整するために不感帯補償部12が実行する処理について
図5に基づいて説明する。
図5は、不感帯幅を調整する処理の一例を示すフローチャートである。
図5の処理は、
図4の処理と並行して行われる。
【0065】
S5では、不感帯補償部12は、トラクタTR1の正面方向を示す方位角(
図2におけるθp)の微分値、あるいは方位偏差(
図2におけるΔθ)の微分値を平滑化する。平滑化は、ノイズ等の影響を抑えて微分値の変動のパターンを適切に把握するために行われる。平滑化処理の内容は特に限定されず、例えば、不感帯補償部12は、直近の所定数の微分値(例えば直近5点の微分値)の平均値を平滑化後の微分値としてもよい。なお、S5の処理は、最新の方位角を示す情報が取得される毎に行われ、平滑化された微分値は記憶部13に記憶される。
【0066】
S6では、不感帯補償部12は、不感帯補償の実行中であるか否かを判定する。S6の処理は、YESと判定されるまで定期的に繰り返し行われ、S6でYESと判定された場合にはS7の処理に進む。なお、
図5の処理は、
図4のS26またはS36の処理の直後に行われてもよく、この場合S6の処理は省略してもよい。
【0067】
S7では、不感帯補償部12は、正方向の不感帯補償の実行中であるか否かを判定する。S7でYESと判定された場合にはS81の処理に進み、S7でNOと判定された場合にはS91の処理に進む。以下説明するS81~S85およびS91~S95は、舵角が増加から減少にまたは減少から増加に転じたと判定されたことを契機として
図4のS26またはS36で開始された不感帯補償において、次に舵角が減少から増加にまたは増加から減少に転じるまでに不感帯幅をゼロにする処理(不感帯補償ステップ)である。
【0068】
S81では、不感帯補償部12は、方位偏差の微分値が増加したか否かを判定する。この判定は、記憶部13に記憶された時系列の微分値を参照することにより行われる。S81でYESと判定された場合にはS82の処理に進み、S81でNOと判定された場合にはS83の処理に進む。
【0069】
S82では、不感帯補償部12は、方位偏差の微分値のピーク値を更新する。なお、S82の処理の初回実行時には、記憶部13にピーク値が記録され、S82の処理の2回目以降の実行時には記憶部13に記録されているピーク値が更新される。この後、処理はS81に戻る。
【0070】
S83では、不感帯補償部12は、方位偏差の微分値(S5で平滑化したもの)がゼロ以下であるか否かを判定する。正方向の不感帯補償の実行中に方位偏差の微分値がゼロ以下になるということは舵角が増加から減少に転じたことを意味する。つまり、S83では舵角が増加から減少に転じたか否かが判定されている。S83でYESと判定された場合にはS84の処理に進み、S83でNOと判定された場合にはS85の処理に進む。S85では、不感帯補償部12は、不感帯幅をゼロにし、S7の処理に戻る。
【0071】
一方、S84では、不感帯補償部12は、不感帯幅を調整する。例えば、不感帯補償部12は、下記の数式(3)により不感帯幅を調整してもよい。なお、数式(3)における微分値は、方位偏差の微分値(S5で平滑化したもの)であり、ピーク値はS82で更新された最新のピーク値つまり上記微分値の極大値である。
【0072】
δ’deadzone=δdeadzone×(微分値)/(ピーク値)…(3)
なお、不感帯補償部12は、上述の数式(1)または(2)を用いて不感帯幅を調整してもよい。不感帯幅の調整後にはS81の処理に戻る。
【0073】
また、S91では、不感帯補償部12は、方位偏差の微分値が減少したか否かを判定する。この判定は、記憶部13に記憶された時系列の微分値を参照することにより行われる。S91でYESと判定された場合にはS92の処理に進み、S91でNOと判定された場合にはS93の処理に進む。
【0074】
S92では、不感帯補償部12は、方位偏差の微分値のピーク値を更新する。なお、S92の処理の初回実行時には、記憶部13にピーク値が記録され、S92の処理の2回目以降の実行時には記憶部13に記録されているピーク値が更新される。この後、処理はS91に戻る。
【0075】
S93では、不感帯補償部12は、方位偏差の微分値(S5で平滑化したもの)がゼロ以上であるか否かを判定する。なお、負方向の不感帯補償の実行中に方位偏差の微分値がゼロ以上になるということは舵角が減少から増加に転じたことを意味する。つまり、S93では舵角が減少から増加に転じたか否かが判定されているといえる。S93でYESと判定された場合にはS94の処理に進み、S93でNOと判定された場合にはS95の処理に進む。
【0076】
S95では、不感帯補償部12は、不感帯幅をゼロにし、S7の処理に戻る。一方、S94では、不感帯補償部12は、不感帯幅を調整する。調整方法としてはS84と同様の方法を適用することができる。不感帯幅の調整後にはS91の処理に戻る。
【0077】
以上のように、制御装置1が実行する車両の制御方法は、車両であるトラクタTR1の進行方向を制御する制御値としてトラクタTR1の舵角を算出する舵角算出ステップと、舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始する(
図4のS26またはS36)と共に、次に舵角が減少から増加にまたは増加から減少に転じるまでに不感帯幅をゼロにする不感帯補償ステップ(
図5のS81~S85またはS91~S95)と、を含む。この構成によれば、舵角の制御値の振幅が大きくなり過ぎることを防ぎ、蛇行や発散の発生を防ぐことが可能になる。
【0078】
〔不感帯補償の他の例〕
図6に基づいて不感帯補償の他の例を説明する。
図6は、不感帯補償の他の例を示す図である。
図6には、グラフG1、G2、およびG5を示している。グラフG1およびG2は、
図3に示したものと同じであり、舵角算出部11が算出する舵角と、方位偏差の微分値の時系列変化をそれぞれ示している。
【0079】
グラフG5は、不感帯補償部12が実行する不感帯補償の例を示している。グラフG5における破線は舵角算出部11が算出する舵角(グラフG1に示すものと同じ)の時系列変化を示し、実線は不感帯補償後の舵角の時系列変化を示している。
【0080】
グラフG5の例では、舵角が増加から減少にまたは減少から増加に転じた直後の所定期間にのみ不感帯補償を行っている。具体的には、グラフG5の例では、
図3のグラフG4の例と同様に、舵角が増加から減少に転じる時刻t1から不感帯補償が開始されているが、不感帯補償を終了させるタイミングが
図3の例と異なっている。すなわち、グラフG5の例では、不感帯補償部12は、時刻t2’から不感帯幅を減少させ始め、時刻t3’に不感帯幅をゼロにしている。
【0081】
不感帯補償部12は、不感帯幅を減少させ始める時刻t2’を、不感帯補償を開始したタイミングおよび不感帯補償を開始したときの舵角の少なくとも何れかを基準として決定することができる。例えば、不感帯補償部12は、不感帯補償を開始した時刻t1から所定時間後の時刻を、不感帯幅を減少させ始める時刻t2’としてもよい。また、不感帯補償部12は、不感帯補償を開始したときから舵角が所定角度だけ変化したときの時刻を、不感帯幅を減少させ始める時刻t2’としてもよい。
【0082】
このように、不感帯補償部12は、不感帯補償を開始したタイミングおよび不感帯補償を開始したときの舵角の少なくとも何れかを基準として、不感帯幅を減少させ始めるタイミングを決定してもよい。
【0083】
上記の構成のうち、不感帯補償を開始したタイミングを基準として不感帯幅を減少させ始めるタイミングを決定する構成によれば、不感帯の影響をキャンセルすることができると共に、舵角の制御値の振幅が大きくなり過ぎる前に不感帯幅をゼロにすることが可能になる。また、不感帯補償を開始したときの舵角を基準として不感帯幅を減少させ始めるタイミングを決定する場合も同様に、不感帯の影響をキャンセルすることができると共に、舵角の制御値の振幅が大きくなり過ぎる前に不感帯幅をゼロにすることが可能になる。
【0084】
なお、時刻t2’以降における不感帯幅の減少のさせ方は任意であり、
図6の例に限られない。例えば、不感帯補償部12は、方位偏差の微分値の変化に連動させて、言い換えればトラクタTR1の進行方向の変化速度に連動させて、不感帯幅を減少させてもよい。これにより、時刻t2’以降に舵角が急変することを防いで、滑らかなステアリングを実現することができる。
【0085】
〔不感帯補償のさらに他の例〕
図7に基づいて不感帯補償のさらに他の例を説明する。
図7は、不感帯補償のさらに他の例を示す図である。
図7には、グラフG1、G2、およびG6を示している。グラフG1およびG2は、
図3に示したものと同じであり、舵角算出部11が算出する舵角と、方位偏差の微分値の時系列変化をそれぞれ示している。
【0086】
グラフG6は、不感帯補償部12が実行する不感帯補償の例を示している。グラフG6における破線は舵角算出部11が算出する舵角(グラフG1に示すものと同じ)の時系列変化を示し、実線は不感帯補償後の舵角の時系列変化を示している。
【0087】
グラフG6の例では、舵角がピークに達したときに不感帯補償を開始し、舵角が次のピークに達する前に不感帯補償を終了している。具体的には、グラフG6の例では、
図3のグラフG4の例と同様に、舵角が増加から減少に転じる時刻t1から不感帯補償が開始されているが、不感帯補償を終了させるタイミングが
図3の例と異なっている。すなわち、グラフG6の例では、不感帯補償部12は、時刻t2”から不感帯幅を減少させ始め、時刻t3”に不感帯幅をゼロにしている。
【0088】
不感帯補償部12は、不感帯幅を減少させ始める時刻t2”を、方位偏差の微分値がピークに達した時刻t4を基準として決定してもよい。なお、時刻t4は、トラクタTR1の進行方向の変化速度がピークに達した時刻でもある。
【0089】
具体的には、不感帯補償部12は、時刻t2”および不感帯幅をゼロにする時刻t3”を、舵角がピークに達する前に不感帯補償を終了できるように決定すればよい。例えば、不感帯補償部12は、時刻t4から所定時間後の時刻または時刻t4から舵角が所定角度だけ変化したときの時刻t2”を、不感帯幅を減少させ始める時刻とし、不感帯幅をゼロにする時刻t3”が舵角のピークを超えない範囲で不感帯幅をゼロにする期間を設定すればよい。
【0090】
以上のように、不感帯補償部12は、トラクタTR1の進行方向の変化速度がピークに達した時点から所定期間で不感帯幅をゼロにしてもよい。この構成によれば、トラクタTR1の進行方向の変化速度がピークに達した時点、すなわち直前の不感帯の影響はキャンセルできており、トラクタTR1の進行方向の変化速度が減少に転じる直前の時点から所定期間で不感帯幅をゼロにする。よって、不感帯の影響をキャンセルすることができると共に、舵角の制御値の振幅が大きくなり過ぎる前に不感帯幅をゼロにすることが可能になる。
【0091】
なお、時刻t2”以降における不感帯幅の減少のさせ方は任意であり、
図7の例に限られない。例えば、不感帯補償部12は、方位偏差の微分値の変化に連動させて、言い換えればトラクタTR1の進行方向の変化速度に連動させて、不感帯幅を減少させてもよい。これにより、時刻t2”以降に舵角が急変することを防いで、滑らかなステアリングを実現することができる。
【0092】
〔変形例〕
上述の実施形態で説明した各処理の実行主体は任意であり、上述の例に限られない。つまり、相互に通信可能な複数の情報処理装置(プロセッサということもできる)により、制御装置1の機能を実現することができる。例えば、
図4および
図5のフローチャートに記載されている各処理を複数の情報処理装置に分担させることもできる。つまり、上述の実施形態における制御方法の実行主体は、1つの情報処理装置(例えば制御装置1)であってもよいし、複数の情報処理装置であってもよい。
【0093】
〔参考例〕
一参考例に係る制御装置は、車両の進行方向を制御する制御値として当該車両の舵角を算出する舵角算出部と、前記舵角に対する不感帯補償を行うものであって、前記車両の進行方向の変化速度に応じて当該不感帯補償の開始時における不感帯幅を決定する不感帯補償部と、を備えている。
【0094】
車両の進行方向が大きく変化していないときに不感帯幅の大きい不感帯補償を行うと、かえって蛇行などが生じることがあるが、上記の構成によれば、不要に大きい不感帯幅で不感帯補償が行われることを避けることができる。
【0095】
上記舵角算出部は、上述の舵角算出部11と同様のものを適用することができる。また、上記不感帯補償部は、例えば車両の進行方向の変化速度が所定の閾値φ以下であるときには上述の数式(2)を用いて不感帯幅を決定し、当該変化速度が所定の閾値φより大きいときには上述の数式(1)を用いて不感帯幅を決定してもよい。
【0096】
なお、本参考例に係る制御装置が備える不感帯補償部は、上述の不感帯補償部12と同様の機能、すなわち、舵角が増加から減少にまたは減少から増加に転じるときに所定の不感帯幅で不感帯補償を開始すると共に、次に舵角が減少から増加にまたは増加から減少に転じるまでに不感帯幅をゼロにする機能を備えていてもよいし、備えていなくてもよい。
【0097】
〔ソフトウェアによる実現例〕
制御装置1の機能は、当該装置としてコンピュータを機能させるためのプログラムであって、制御装置1の各制御ブロック(特に舵角算出部11および不感帯補償部12)としてコンピュータを機能させるための制御プログラムにより実現することができる。
【0098】
この場合、制御装置1は、上記制御プログラムを実行するためのハードウェアとして、少なくとも1つの制御装置(例えばプロセッサ)と少なくとも1つの記憶装置(例えばメモリ)を有するコンピュータを備えている。この制御装置と記憶装置により上記制御プログラムを実行することにより、上記各実施形態で説明した各機能が実現される。
【0099】
上記制御プログラムは、一時的ではなく、コンピュータ読み取り可能な、1または複数の記録媒体に記録されていてもよい。この記録媒体は、制御装置1が備えていてもよいし、備えていなくてもよい。後者の場合、上記制御プログラムは、有線または無線の任意の伝送媒体を介して制御装置1に供給されてもよい。
【0100】
また、上記各制御ブロックの機能の一部または全部は、論理回路により実現することも可能である。例えば、上記各制御ブロックとして機能する論理回路が形成された集積回路も本発明の範疇に含まれる。この他にも、例えば量子コンピュータにより上記各制御ブロックの機能を実現することも可能である。
【0101】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0102】
1 制御装置
11 舵角算出部
12 不感帯補償部