(57)【要約】      （修正有）【課題】車速に関する指令を出さずに、舵角の指令のみを出力することができて、ジョイスティックの操作性を向上した車両用ジョイスティック信号処理装置及び車両を提供する。【解決手段】処理装置のＣＰＵは、ジョイスティックの原点からＹ軸電圧とＸ軸電圧を有する座標値までのベクトル長を演算し、ベクトルのステア舵角を演算する。ＣＰＵは、ベクトル長が、領域Ｉにあるか、領域ＩＩにあるか、または、領域ＩＩＩにあるかの判定を行う。ＣＰＵは、ベクトル長が、領域Ｉにあるときは、トルク指令及びステア舵角指令を０として出力し、領域ＩＩにあるときは、トルク指令を０にして出力し、かつステア舵角を舵角指令として出力する。ＣＰＵは、領域ＩＩＩにあるときは、ベクトル長に応じたトルク指令を出力するとともにステア舵角を舵角指令として出力する。【選択図】図５
2017085751.tif 000002
【特許請求の範囲】
【請求項１】
前後方向に延びるＹ軸と左右方向に延びるＸ軸とを有し、両軸の交点を原点にして、該原点に取付けられた操作レバーを有し、Ｙ軸における前記操作レバーの操作量に応じたＹ値と、Ｘ軸における前記操作レバーの操作量に応じたＸ値を出力するジョイスティックと、
前記原点から前記Ｙ値と前記Ｘ値を有する座標値までのベクトル長を演算する第１演算部と、
前記ベクトル長を有するベクトルの方位角を演算する第２演算部と、
前記ベクトル長が、前記原点から第１所定半径Ｒ１以内の第１不感帯にあるか、前記原点から第２所定半径Ｒ２(＞Ｒ１）以内であって、第１所定半径外の第２不感帯にあるか、または、第２所定半径Ｒ２を超える領域にあるかの判定処理をする判定部と、
前記ベクトル長が、第１不感帯にあるときは、車速に関する指令及び舵角指令を０として出力し、第２不感帯にあるときは、車速に関する指令を０にして出力するとともに前記方位角を舵角指令として出力し、第２所定半径Ｒ２を超える領域にあるときは、前記ベクトル長に応じた車速に関する指令を出力するとともに、前記方位角を舵角指令として出力する指令出力部とを備えた車両用ジョイスティック信号処理装置。
【請求項２】
前記車速に関する指令は、トルク指令である請求項１に記載の車両用ジョイスティック信号処理装置。
【請求項３】
前記ジョイスティックは、前記操作レバーが前方向を含む方向に傾倒された場合には、前記操作レバーが中立位置のＹ値よりも大または小のＹ値のいずれか一方を出力するとともに前記操作レバーが後方向を含む方向に傾倒された場合には、残りの他方のＹ値を出力し、車両が前進走行の場合、前記判定部は、前記一方のＹ値が出力された場合に、前記判定処理を行い、前記他方のＹ値が出力された場合には前記判定処理を無効化する請求項１または請求項２に記載の車両用ジョイスティック信号処理装置。
【請求項４】
前記判定部は、車両が後進走行の場合、前記前進走行の場合の判定処理とは反対の判定処理及び無効化を行う請求項３に記載の車両用ジョイスティック信号処理装置。
【請求項５】
前進及び後進をモータで行う車両であって、
請求項１乃至請求項４のうちいずれか１項に記載の車両用ジョイスティック信号処理装置を備えた車両。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用ジョイスティック信号処理装置及び車両に関する。
【背景技術】
【０００２】
ジョイスティックを用いて、操作対象を制御する場合、原点付近での微動に応じた制御が行われると、操作対象を振動させることになるため、これを防止するために原点から一定の距離の間では動作をさせないように、原点付近では遊びを設けることが行われている。例えば、特許文献１では、ジョイスティックを電動車椅子の走行指令装置として使用している。図９に示すように、特許文献１のジョイスティックでは、ジョイスティックの操作レバーの傾倒方向によって車両の進行方向を指示し、傾倒の深さである傾倒角によって車速を指示するようになっている。
【０００３】
すなわち、傾倒角の前後方向成分（Ｙ軸の値）及び左右方向成分（Ｘ軸の値）に応じた操作信号をジョイスティックは出力するようにしている。
また、ジョイスティックの中立点（原点）付近の所定範囲内、並びに、Ｘ軸及びＹ軸の各軸近傍の帯状範囲で、当該軸の範囲の出力を０とする、いわゆる不感帯ａ、ｂが設けられている。Ｘ軸及びＹ軸の交点（原点Ｏ）の周囲には、四角状の遊び範囲ｃが設けられることになる。この遊び範囲ｃでは、速度及び進行方向の指示を出力することはない。
【０００４】
特許文献２のジョイスティック信号処理装置では、３６０度の全方向に傾倒可能なジョイスティックの傾倒方向に基づいて少なくとも８方位範囲のうちのどの範囲かを判定する手段を有し、前記方位範囲を判定指示するに当たり、判定のための方位角範囲の大きさを不均一にしている。また、判定手段は、ジョイスティックの傾倒角度が予め定めた大きさ以下の傾倒角範囲内を第１不感帯とするとともに、隣接する方位角範囲の境界に位置する予め定めた範囲を第２不感帯としている。ジョイスティックにより指示された方位が、第２不感帯に入る直前の指示方位に維持するようにすることにより、第２不感帯がない場合に比して、指示方位が安定することができる利点がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１３０９１８号公報、段落００１８
【特許文献２】特開２００１−１８８６２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ジョイスティックで車両の舵角及び速度を操作する場合において、例えば、車両を停止した状態、或いはカーブを走行している状態で速度指令を出さずに舵角のみの指令を出したい要望がある。
【０００７】
特許文献１では、不感帯以外の領域ではジョイスティックの傾倒方向を車両の進行方向を指示するようにし、かつ、そのときのジョイスティックの傾倒角を車速の指示に利用しているため、車両の進行方向のみを指示することはできない。すなわち、車両の進行方向を指示するためには、必ず、車速指令が出る構成となっているため、車速の指令を出さずに、車両の進行方向を指示することはできない構成となっている。
【０００８】
また、特許文献２においても、そのような要望に応えることのできる提案はなされていない。
本発明の目的は、車速に関する指令を出さずに、舵角の指令のみを出力することができて、ジョイスティックの操作性を向上した車両用ジョイスティック信号処理装置及び車両を提供することにある。
【課題を解決するための手段】
【０００９】
上記問題点を解決するために、本発明の車両用ジョイスティック信号処理装置は、前後方向に延びるＹ軸と左右方向に延びるＸ軸とを有し、両軸の交点を原点にして、該原点に取付けられた操作レバーを有し、Ｙ軸における前記操作レバーの操作量に応じたＹ値と、Ｘ軸における前記操作レバーの操作量に応じたＸ値を出力するジョイスティックと、前記原点から前記Ｙ値と前記Ｘ値を有する座標値までのベクトル長を演算する第１演算部と、前記ベクトル長を有するベクトルの方位角を演算する第２演算部と、前記ベクトル長が、前記原点から第１所定半径Ｒ１以内の第１不感帯にあるか、前記原点から第２所定半径Ｒ２（＞Ｒ１）以内であって、第１所定半径外の第２不感帯にあるか、または、第２所定半径Ｒ２を超える領域にあるかの判定処理をする判定部と、前記ベクトル長が、第１不感帯にあるときは、トルク指令値及び舵角指令を０として出力し、第２不感帯にあるときは、トルク指令値を０にして出力するとともに前記方位角を舵角指令として出力し、第２所定半径Ｒ２を超える領域にあるときは、前記ベクトル長に応じたトルク指令を出力するとともに、前記方位角を舵角指令として出力する指令出力部とを備えるものである。
【００１０】
また、前記ジョイスティックは、前記操作レバーが前方向を含む方向に傾倒された場合には、前記操作レバーが中立位置のＹ値よりも大または小のＹ値のいずれか一方を出力するとともに前記操作レバーが後方向を含む方向に傾倒された場合には、残りの他方のＹ値を出力し、車両が前進走行の場合、前記判定部は、前記一方のＹ値が出力された場合に、前記判定処理を行い、前記他方のＹ値が出力された場合には前記判定処理を無効化してもよい。
【００１１】
また、前記判定部、車両が後進走行の場合、前記前進走行の場合の判定処理とは反対の判定処理及び無効化を行うものとしてよい。
また、前進及び後進をモータで行う車両は、上記の車両用ジョイスティック信号処理装置を備えることが好ましい。
【発明の効果】
【００１２】
本発明によれば、車速に関する指令を出さずに、舵角の指令のみを出力することができて、ジョイスティックの操作性を向上することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態の車両に搭載した車両用ジョイスティック信号処理装置のブロック図。
【図２】一実施形態の車両制御ユニットのブロック図。
【図３】制御ユニットが実行するフローチャート。
【図４】ベクトル長、舵角、第１不感帯、第２不感帯の説明図。
【図５】第１不感帯、第２不感帯及び不感帯以外の領域の説明図。
【図６】ベクトル長、舵角の説明図。
【図７】ブレーキ演算の説明図。
【図８】ブレーキ指令値の説明図。
【図９】従来の不感帯の説明図。
【図１０】他の実施形態の図６相当図。
【発明を実施するための形態】
【００１４】
以下、本発明の車両用ジョイスティック信号処理装置（以下、単に処理装置という）及び車両を具体化した一実施形態について図１〜図８を参照して説明する。
図１に示すように車両１０は、操作パネル１２と、電源部１４と、ステアモータＭ１、ブレーキモータＭ２、駆動モータＭ３、Ｍ４と、ステアモータ制御部１６、ブレーキモータ制御部１８、駆動モータ制御部２０及び車両制御ユニット２２を備えている。
【００１５】
また、図示はしないが、車両１０は、４輪車であって、左右の前輪が操舵輪で、左右の後輪が駆動輪とされている。
操作パネル１２は、ジョイスティック２４、ジョイスティック２４の操作レバー２４ａに付設されたブレーキスイッチ２６及びシフト切換スイッチ２８を備えている。
【００１６】
ジョイスティック２４は、車両１０の舵角、及び車速を操作するものであって、操作レバー２４ａの基部を支点として周囲３６０°方向に向けて傾倒可能になっている。すなわち、図５、図６に示すように、前後方向に沿ったＹ軸と左右方向に沿ったＸ軸の交点（原点Ｏ）を前記支点にして、操作レバー２４ａは傾倒可能とされている。
【００１７】
ここで、操作レバー２４ａが原点Ｏに傾倒しないで姿勢で位置している場合を中立位置に位置するという。
そして、ジョイスティック２４は、ポテンショメータを備えており、前後方向における操作レバー２４ａの操作量に応じた電圧（以下、Ｙ軸電圧という）をＹ値として、また、左右方向における操作レバー２４ａの操作量に応じた電圧（以下、Ｘ軸電圧という）をＸ値として、それぞれ車両制御ユニット２２のＩＦ２３にそれぞれ出力する。これらの電圧はアナログ値である。
【００１８】
なお、ジョイスティック２４はポテンショメータに限定するものではなく、光学式であってもよく、或いは他の形式であってもよい。
また、本実施形態では、ジョイスティック２４は、車両前方に操作レバー２４ａを傾倒した際には、正のＹ軸電圧を出力し、車両後方へ傾倒した際には、負のＹ軸電圧を出力する。また、本実施形態では、ジョイスティック２４は、右方に操作レバー２４ａを傾倒した際には、正のＸ軸電圧を出力し、左方へ傾倒した際には、負のＸ軸電圧を出力する。
【００１９】
ブレーキスイッチ２６は、操作される毎にブレーキスイッチ状態を示すオン信号またはオフ信号をＩＦ２３に出力する。シフト切換スイッチ２８は、前進または後進のシフト状態を示す信号をＩＦ２３に出力する。電源部１４は、蓄電池等からなる直流電源であり、ジョイスティック２４、車両制御ユニット２２、ステアモータ制御部１６、ブレーキモータ制御部１８、駆動モータ制御部２０等の各部に電源を供給する。
【００２０】
ステアモータＭ１は、車両１０の進行方向を変更するモータである。ステアモータ制御部１６は、ステアモータＭ１を駆動制御するものであり、車両制御ユニット２２のＩＦ２５に接続されている。
【００２１】
ブレーキモータＭ２は、車両１０の車輪のブレーキ装置（図示しない）を駆動するためのものであり、作動することにより、車速を減速、または車両１０を停止させる。ブレーキモータ制御部１８は、ブレーキモータＭ２を駆動制御するものであり、車両制御ユニット２２のＩＦ２５に接続されている。
【００２２】
駆動モータＭ３、Ｍ４は、車両１０の左の駆動輪及び右の駆動輪をそれぞれ駆動するものであって、本実施形態では、三相同期モータ等のＡＣモータで構成されている。駆動モータＭ３、Ｍ４は、それぞれ駆動モータ制御部２０に接続されている。駆動モータＭ３、Ｍ４には、回転数センサＳＲ，ＳＬがそれぞれ配設されている。回転数センサＳＲ、ＳＬは、パルスエンコーダや光センサ等からなり、モータの単位時間当たりのモータ回転数を検出して、その速度に応じたパルス信号を出力するものである。
【００２３】
駆動モータ制御部２０は、インバータを含み、駆動モータＭ３、Ｍ４に駆動電流を供給するもので、その供給電流レベルは、ＣＰＵ３０によって制御されるようになっている。駆動モータ制御部２０は、車両制御ユニット２２のＩＦ２５に接続されている。
【００２４】
ＣＰＵ３０は、第１演算部、第２演算部、判定部、 指令出力部に相当する。
図２に示すように車両制御ユニット２２には、入出力インタフェース（以下、ＩＦという）２３、２５、ＣＰＵ３０及びメモリ３１等を備えている。
【００２５】
メモリ３１は、制御プログラムを記憶するＲＯＭやデータを一時的に保管するＲＡＭから構成されている。また、ＩＦ２３は、ジョイスティック２４からの各種信号を入力する。ＩＦ２５は、車両制御ユニット２２と、ステアモータ制御部１６、ブレーキモータ制御部１８、及び駆動モータ制御部２０のそれぞれの各制御部間との各種信号を入出力する。本実施形態では、ジョイスティック２４及び車両制御ユニット２２とにより処理装置が構成されている。
【００２６】
（ＣＰＵ３０）
図２に示すようにＣＰＵ３０は、車速に関する指令生成処理部Ａ、舵角指令生成処理部Ｂ、及びブレーキ指令生成処理部Ｃ、並びに、ローパスフィルタ（以下、ＬＰＦという）３２〜３５、及びＣＡＮ通信制御部５８を備えている。
【００２７】
（Ａ−１）車速に関する指令生成処理部Ａ
車速に関する指令生成処理部Ａは、ベクトル長演算部３６、アクセル／ブレーキ状態判定部３７、遊び領域判定部３８、開度演算部３９、トルクマップ選択部４０、トルク指令演算部４２、及びトルク指令補正部４４を含む。
【００２８】
（Ａ−２）ベクトル長演算部３６
ベクトル長演算部３６は、ＩＦ２３にてアナログからデジタル（ＡＤ値）に変換されてＬＰＦ３３、３４を介して入力されたＸ軸電圧と、Ｙ軸電圧とに基づいて、ベクトル長演算を行う。ここで、Ｘ軸電圧はＸ値に相当し、Ｙ軸電圧はＹ値に相当する。このベクトル長は、図５、図６に示すように原点ＯからＸ軸電圧（Ｘ値）と、Ｙ軸電圧（Ｙ値）の座標値までのベクトルについての値である。なお、図６に示す例では、Ｘ１をＸ値とし、Ｙ１をＹ値としている。この例では、ベクトル長Ｌは、Ｌ（＝√（Ｘ１^2  ＋  Ｙ１^2））である。なお、「^ 」はべき乗を表わしている。
【００２９】
（Ａ−３）開度演算部３９
開度演算部３９は、ベクトル長演算部３６で算出したベクトル長Ｌの基準ベクトル長に対しての開度（比率）を演算する。基準ベクトル長は、操作レバー２４ａを操作した際に、得ることができる最大長である。従って、得られる開度は、０〜１００％の範囲である。
【００３０】
なお、開度演算部３９は、後述する遊び領域判定部３８での判定結果に基づいて、ベクトル長演算部３６で算出したベクトル長Ｌが、図５に示す領域Ｉ、または領域ＩＩにある場合は、開度を０％とする。
【００３１】
ここで、図６を参照して開度Ｔの算出について説明する。
図６に示すようにベクトル長がＬ（＝√（Ｘ１^2  ＋  Ｙ１^2））のとき、領域Ｉ、領域ＩＩにある長さ部分を除いた残りの部分のベクトル長と、基準ベクトル長（＝√（ｘ^2  ＋  ｙ^2））において、領域Ｉ、領域ＩＩにある長さ部分を除いた残りの部分のベクトル長との比率、すなわち開度Ｔは、下記の式（１）で求められる。なお、ｔ＝Ｒ２である。
【００３２】
開度Ｔ（％）＝
（√（Ｘ１^2  ＋  Ｙ１^2）−ｔ）／（√（ｘ^2  ＋  ｙ^2）−ｔ）
×１００                      ……（１）
（Ａ−４）アクセル／ブレーキ状態判定部３７
アクセル／ブレーキ状態判定部３７は、後述するブレーキ判定部４６からの信号（オンまたはオフ）、開度演算部３９からの開度、Ｙ軸電圧、シフト状態を入力する。アクセル／ブレーキ状態判定部３７は、これらの入力に基づいて、「アクセル状態」、「ブレーキ状態」、「非アクセル・非ブレーキ状態」のいずれか１つの状態を判定する。
【００３３】
具体的には、下記のように判定する。
（１）シフト状態が前進の場合
Ｙ軸電圧が負の場合（図７において、点ハッチング領域にＹ軸電圧がある場合）は、ブレーキ判定部４６からの信号及び開度とは関係なく、ブレーキ状態であるとする。
【００３４】
Ｙ軸電圧が正の場合（図７において、非点ハッチング領域にＹ軸電圧がある場合）であって、ブレーキ判定部４６からのオン信号がある場合は、開度とは関係なく、ブレーキ状態であるとする。
【００３５】
Ｙ軸電圧が正の場合であって、ブレーキ判定部４６からのオフ信号があり、かつ、開度が０％以外であれば、アクセル状態とする。
また、Ｙ軸電圧が正の場合であって、ブレーキ判定部４６からのオフ信号があり、かつ、開度が０％のときは、非アクセル・非ブレーキ状態とする。
【００３６】
（２）シフト状態が後進の場合
Ｙ軸電圧が正の場合（図７において、非点ハッチング領域にＹ軸電圧がある場合）は、ブレーキ判定部４６からの信号及び開度とは関係なく、ブレーキ状態であるとする。
【００３７】
Ｙ軸電圧が負の場合（図７において、点ハッチング領域にＹ軸電圧がある場合）であって、ブレーキ判定部４６からのオン信号がある場合は、開度とは関係なく、ブレーキ状態であるとする。
【００３８】
Ｙ軸電圧が負の場合であって、ブレーキ判定部４６からのオフ信号があり、かつ、開度が０％以外であれば、アクセル状態とする。
また、Ｙ軸電圧が負の場合であって、ブレーキ判定部４６からのオフ信号があり、かつ、開度が０％のときは、非アクセル状態・非ブレーキ状態とする。
【００３９】
（Ａ−５）遊び領域判定部３８
遊び領域判定部３８は、ベクトル長Ｌが、領域Ｉ、領域ＩＩ、及び領域ＩＩＩにあるか否かを判定するためのものであり、Ｘ軸電圧、Ｙ軸電圧及びベクトル長を入力する。
【００４０】
遊び領域判定部３８は、後述するフローチャートに従って、前記ベクトル長が、領域Ｉ、領域ＩＩ、領域ＩＩＩのいずれにあるかを判定する。領域Ｉは第１不感帯であり、領域ＩＩは第２不感帯に相当する。
【００４１】
図５には、領域Ｉ、領域ＩＩ、領域ＩＩＩが図示されている。なお、説明の便宜上、図５では、第一象限のみを図示しているが、第二から第四象限についても同様に領域Ｉ、領域ＩＩ、領域ＩＩＩを有する。
【００４２】
領域Ｉは原点Ｏから半径Ｒ１の円形の領域である。領域ＩＩは、原点Ｏから半径Ｒ２（Ｒ１）の円形の領域以内であって、領域Ｉを除く部分である。領域ＩＩＩは、領域Ｉ、領域ＩＩを除いた部分である。半径Ｒ１は、第１所定半径に相当し、半径Ｒ２は、第２所定半径に相当する。
【００４３】
（Ａ−６）トルクマップ選択部４０
トルクマップ選択部４０は、シフト状態及びアクセル／ブレーキ状態判定部３７からの判定結果を入力する。
【００４４】
トルクマップ選択部４０が選択するトルックマップは、予めメモリ３１に格納されている。トルクマップは、モータ回転数ｎとモータの最大出力（最大トルク）のマップであって、例えば、前進用マップ、後進用マップ等を含む。両マップは、最大出力（最大トルク）を、モータ回転数ｎの関数Ｇ（ｎ）で表わすと、モータ回転数ｎが高速になればなるほど、最大出力が大きくなるように設定されている。また、後進用マップは、前進用マップに比して、同じモータ回転数の場合、最大出力は小さくされている。
【００４５】
アクセル／ブレーキ状態判定部３７からの入力がアクセル状態の場合には、トルクマップ選択部４０は、シフト状態（前進または後進）に応じてアクセル状態に適応した前進用マップまたは後進用マップを選択する。
【００４６】
トルクマップ選択部４０は、アクセル／ブレーキ状態判定部３７からの入力がブレーキ状態の場合には、これ以上トルクを出さないように設定されたトルクマップを選択する。また、アクセル／ブレーキ状態判定部３７からの入力が非アクセル状態・非ブレーキ状態の場合には、非アクセル・非ブレーキ用のトルクマップを選択する。
【００４７】
（Ａ−７）トルク指令演算部４２
トルク指令演算部４２は、開度演算部３９からの開度及び駆動モータＭ３、Ｍ４のモータ回転数を入力し、これら入力したデータとトルクマップ選択部４０で選択されたトルクマップに基づいて、トルク指令演算を行う。なお、トルク指令演算を行う場合、駆動モータＭ３、Ｍ４のモータ回転数は、両モータ回転数の平均値を使用することが好ましい。
【００４８】
トルク指令演算部４２は、トルクマップ（関数Ｇ（ｎ））を使用して、モータ回転数ｎで最大出力（Ｎｍ）を得る。
従って、トルク指令、すなわち、トルク出力は、下記の式（２）で求められる。
【００４９】
トルク出力（Ｎｍ）＝最大出力（Ｎｍ）  ×  開度Ｔ（％）
……（２）
（Ａ−８）トルク指令補正部４４
トルク指令補正部４４は、前記両モータ回転数の平均値と、トルク指令演算部４２が算出したトルク出力（トルク指令）を入力し、トルク指令の値（トルク指令値）が前回の制御周期とのトルク指令から急変しないように時間的ななまし処理を行い、その処理後、ＣＡＮ通信制御部５８に補正後のトルク指令を出力する。
【００５０】
（Ｂ−１．舵角指令生成処理部Ｂ）
舵角指令生成処理部Ｂは、ｓｉｎθ演算部５０、θ演算部５２、ステア舵角演算部５４、及びステア舵角補正部５６を含む。なお、ステア舵角は、ステアリング舵角の略称で使用する。
【００５１】
（Ｂ−２．ｓｉｎθ演算部５０）
ｓｉｎθ演算部５０は、Ｘ軸電圧及びＹ軸電圧を入力し、両軸電圧に基づいて、ｓｉｎθを式（３）にて算出する。
【００５２】
ｓｉｎθ＝Ｙ１／（√（Ｘ１^2  ＋  Ｙ１^2））      ……（３）
なお、ｓｉｎθ演算部５０は、予め設定されたＸ軸クリアランス（＞０）とＸ１の絶対値を比較して、Ｘ１がＸ軸クリアランス以下のときは、Ｘ１の値を０にする。また、ｓｉｎθ演算部５０は、予め設定されたＹ軸クリアランス（＞０）とＹ１の絶対値を比較して、Ｙ１がＸ軸クリアランス以下のときは、Ｙ１の値を０にする。
【００５３】
ここで、Ｘ軸クリアランス及びＹ軸クリアランスは、領域Ｉと領域ＩＩの境界のＸ値、Ｙ値よりもそれぞれ小さな値である。
（Ｂ−３．θ演算部５２）
θ演算部５２は、ｓｉｎθ演算部５０で算出したｓｉｎθに基づいてθを式（４）にて算出する。
【００５４】
θ＝ｓｉｎ^（−1）・Ｙ１／（√（Ｘ１^2  ＋  Ｙ１^2））
……（４）
なお、Ｘ１＝Ｙ１＝０の場合は、θを０とする。
【００５５】
なお、図６に示すように前記θは、Ｘ軸から反時計回り方向の角度である。従って、ステア舵角は、「９０度−θ」である。ここで、ステア舵角は、前記ベクトル長Ｌを有するベクトルのＹ軸に対する方位角に相当する。
【００５６】
（Ｂ−４．ステア舵角演算部５４）
ステア舵角演算部５４は、Ｘ軸電圧が正であれば、右方の操舵と判定するとともに、Ｘ字電圧が負であれば、左方の操舵と判定する。
【００５７】
また、ステア舵角演算部５４は、遊び領域判定部３８の判定結果に応じてステア舵角を演算する。すなわち、ステア舵角演算部５４は、ベクトル長Ｌが、遊び領域判定部３８の第１不感帯（領域Ｉ）にある場合は、ステア舵角を０にする。ステア舵角が０となった場合は、車両は、直進（前進または後進を含む）に設定されたことになる。
【００５８】
また、ステア舵角演算部５４は、ベクトル長Ｌが、遊び領域判定部３８の第２不感帯（領域ＩＩ）または領域ＩＩＩにある場合は、前記θと予め設定された、車両の操舵装置（図示しない）が取り得る最大舵角（最大舵角情報）に基づき、ステア舵角を演算する。最大舵角は、予めメモリ３１に格納されている。
【００５９】
具体的には式（５）にてステア舵角を算出する。
ステア舵角（度）＝（９０−θ）／９０  ×  最大舵角    ……（５）
（Ｂ−５．ステア舵角補正部５６）
ステア舵角補正部５６は、ステア舵角演算部５４で算出されたステア舵角と、前回の制御周期で演算されたステア舵角との差を取り、その差が閾値以上であれば、急激なステア操作があったものとして、なまし処理の補正を行い、補正した後の値をステアリング舵角指令（以下、ステア舵角指令という）にして、ＣＡＮ通信制御部５８に出力する。
【００６０】
また、ステア舵角補正部５６は、前記差が閾値未満であれば、なまし処理を行わずに、ステア舵角演算部５４で算出されたステア舵角をステア舵角指令にして、これをＣＡＮ通信制御部５８に補正後のステア舵角指令を出力する。
【００６１】
（ブレーキ指令生成処理部Ｃ）
ブレーキ指令生成処理部Ｃは、ブレーキ判定部４６、ブレーキマップ４８及びブレーキ指令値演算部４９を含む。
【００６２】
（Ｃ−１．ブレーキ判定部４６）
ブレーキ判定部４６は、ＬＰＦ３２からのブレーキスイッチ状態を示すオン信号またはオフ信号に基づいてブレーキ判定を行う。すなわち、ブレーキ判定部４６は、前記オン信号であれば、ブレーキオンとし、オフ信号であれば、ブレーキオフと判定し、その判定結果をブレーキ指令値演算部４９に入力する。
【００６３】
（Ｃ−２．ブレーキ指令値演算部４９）
ブレーキ指令値演算部４９は、メモリ３１に格納されたブレーキマップ４８、ブレーキ判定部４６のブレーキ判定、アクセル／ブレーキ状態判定部３７の判定結果、及びモータ回転数に基づいてブレーキ指令値を演算する。
【００６４】
具体的には、ブレーキ指令値演算部４９は、ブレーキ判定部４６の判定が、ブレーキオンの場合は、アクセル／ブレーキ状態判定部３７の状態判定に関係なく、値を「１００％」にしたブレーキ指令をＣＡＮ通信制御部５８に出力する。
【００６５】
ブレーキ指令値演算部４９は、ブレーキ判定部４６の判定が、ブレーキオフであって、アクセル／ブレーキ状態判定部３７の状態判定が、「アクセル状態」または「非アクセル・非ブレーキ状態」のときは、値を「０％」にしたブレーキ指令をＣＡＮ通信制御部５８に出力する。従って、この場合は、ブレーキがかからないものとなる。
【００６６】
また、ブレーキ指令値演算部４９は、ブレーキ判定部４６の判定が、ブレーキオフであって、アクセル／ブレーキ状態判定部３７の状態判定が、「ブレーキ状態」のときは、開度演算部３９が演算した開度と、前記両モータ回転数の平均値に応じた、値にしたブレーキ指令をＣＡＮ通信制御部５８に出力する。
【００６７】
具体的には、下記のようにしてブレーキ指令値を決定する。
本実施形態では、図８に示すブレーキマップ４８では、ブレーキ指令値の最大は、モータ回転数が上昇するにつれて減少するように設定されている。この理由は、モータ回転数（ｒｐｍ）が大きい場合には、車速が速いことから、ブレーキをかける場合は、徐々に減速させるためである。
【００６８】
そして、ブレーキ指令値演算部４９は、式（５）にてブレーキ指令値を演算する。
ブレーキ指令値（％）＝開度（％）×最大値のブレーキ指令値（％）…（５）
なお、最大値のブレーキ指令値は、モータ回転数に依存する値である。
【００６９】
一例として、図８に示すようにブレーキ指令値の最大値が４０％となるモータ回転数のときであって、そのときの開度が８０％の場合、ブレーキ指令値は、下記のように算出される。
ブレーキ指令値（％）＝開度  ８０（％）×最大値のブレーキ指令値  ４０（％）
＝３２（％）
（ＣＡＮ通信制御部５８）
ＣＡＮ通信制御部５８は、入力したステア舵角指令を、車両制御ユニット２２が備えるＣＡＮ通信モジュール６０、ＩＦ２５を介してステアモータ制御部１６に出力する。
【００７０】
また、ＣＡＮ通信制御部５８は、入力したブレーキ指令を車両制御ユニット２２が備えるＣＡＮ通信モジュール６０、ＩＦ２５を介してブレーキモータ制御部１８に出力する。
また、ＣＡＮ通信制御部５８は、入力したトルク指令を車両制御ユニット２２が備えるＣＡＮ通信モジュール６０、ＩＦ２５を介して駆動モータ制御部２０に出力する。
【００７１】
（モータ制御部）
ステアモータ制御部１６は、ステア舵角指令に基づいてステアモータＭ１を駆動制御する。また、ブレーキモータ制御部１８は、ブレーキ指令に基づいてブレーキモータＭ２を駆動制御する。また、駆動モータ制御部２０は、トルク指令に基づいて駆動モータＭ３、Ｍ４を駆動制御する。
【００７２】
なお、本実施形態では、上述のようにトルク指令に応じた周波数変換をすることにより、供給電流レベルを変えて駆動モータＭ３、Ｍ４を駆動制御を行うようにしており、トルク指令の値が、負荷トルクを超えていた場合には、モータ回転数が上昇することにより、車速が増加する。また、トルク指令の値が負荷トルクよりも小さくなると、モータ回転数が減少することにより車速が低下する。このようにして、本実施形態では、トルク指令は、車速に関する指令となっている。
【００７３】
（実施形態の作用）
次に、上記のように構成された処理装置において、車両制御ユニット２２がＸ軸電圧、Ｙ軸電圧を入力するところからトルク指令を駆動モータ制御部２０まで出力するまでの流れを説明する。
【００７４】
図３は、ＣＰＵ３０が実行する制御フローチャートであり、所定の制御周期で実行する。
Ｓ１０では、ＣＰＵ３０は、ジョイスティック２４のＸ軸電圧及びＹ軸電圧のＡＤ値、ブレーキスイッチ状態、及びシフト状態を取得する。
【００７５】
Ｓ２０では、Ｘ軸電圧及びＹ軸電圧の交点（座標値）からのベクトル長を演算する（ベクトル長演算部３６の処理）。なお、図３のＳ２０では、代表的にベクトル長演算のみを記載しているが、他に、Ｓ２０では、アクセル／ブレーキ状態判定部３７、遊び領域判定部３８、開度演算部３９、トルクマップ選択部４０、ｓｉｎθ演算部５０、θ演算部５２での処理が行われる。
【００７６】
Ｓ３０は、アクセル／ブレーキ状態判定部３７、遊び領域判定部３８、開度演算部３９、トルクマップ選択部４０、トルク指令演算部４２、ｓｉｎθ演算部５０、θ演算部５２、及びステア舵角演算部５４での処理が行われて、トルク指令とステア舵角が演算される。
【００７７】
Ｓ４０では、トルク指令補正部４４及びステア舵角補正部５６での処理が行われて、トルク指令と、ステア舵角指令がそれぞれ補正される。
Ｓ５０では、補正後の各指令をＣＡＮで各制御部に送信する。
【００７８】
Ｓ６０では、電源部１４がオンとなっている場合等により、システムが終了していない場合、Ｓ１０にリターンし、電源部１４がオフとなった場合等によりシステムが終了している場合には、このフローチャートを終了する。
【００７９】
なお、ブレーキ判定部４６、ブレーキ指令値演算部４９における処理は、上記フローチャートの制御周期と同期して実行される。
本実施形態によれば、ジョイスティック２４の操作レバー２４ａを操作して、ベクトル長が領域ＩＩ（第２不感帯）にある場合には、車両を停止した状態、或いはカーブを走行している状態で速度に関する指令を出さずにステア舵角指令のみを出すことができる。
【００８０】
本実施形態によれば、以下のような効果を得ることができる。
（１）本実施形態の処理装置は、Ｙ軸における操作レバー２４ａの操作量に応じたＹ軸電圧（Ｙ値）と、Ｘ軸における操作レバー２４ａの操作量に応じたＸ軸電圧（Ｘ値）を出力するジョイスティック２４を有する。
【００８１】
また、処理装置は、ＣＰＵ３０を備え、ＣＰＵ３０は、第１演算部として原点ＯからＹ軸電圧（Ｙ値）とＸ軸電圧（Ｘ値）を有する座標値までのベクトル長を演算し、第２演算部として、ベクトル長を有するベクトルのステア舵角（方位角）を演算する。
【００８２】
また、ＣＰＵ３０は、判定部として、ベクトル長が、原点Ｏから第１所定半径Ｒ１以内の遊び領域Ｉ（第１不感帯）にあるか、原点Ｏから第２所定半径Ｒ２（＞Ｒ１）以内であって、第１所定半径外の領域ＩＩ（第２不感帯）にあるか、または、第２所定半径Ｒ２を超える領域ＩＩＩにあるかの判定処理をする。また、ＣＰＵ３０は、指令出力部としてベクトル長が、領域Ｉ（第１不感帯）にあるときは、トルク指令（車速に関する指令）及びステア舵角指令（舵角指令）を０として出力し、領域ＩＩ（第２不感帯）にあるときは、トルク指令を０にして出力するとともにステア舵角を舵角指令として出力する。
【００８３】
また、ＣＰＵ３０は、指令出力部として、第２所定半径Ｒ２を超える領域ＩＩＩにあるときは、ベクトル長に応じたトルク指令を出力するとともに、ステア舵角を舵角指令として出力する。この結果、車速に関する指令を出さずに、舵角の指令のみを出力することができて、ジョイスティックの操作性を向上することができる。
【００８４】
（２）本実施形態の処理装置では、車速に関する指令は、トルク指令で行う。この結果、上記（１）の作用効果を、トルク指令で行う処理装置において、容易に実現することができる。
【００８５】
（３）本実施形態の処理装置では、ジョイスティック２４は、操作レバー２４ａが前方向を含む方向に傾倒された場合には、正のＹ値を出力するとともに操作レバー２４ａが後方向を含む方向に傾倒された場合には、負のＹ値を出力する。
【００８６】
また、車両が前進走行の場合、ＣＰＵ３０（判定部）は、正のＹ値が出力された場合に、前記判定処理を行い、負のＹ値が出力された場合には前記判定処理を行わず、すなわち無効化する。この結果、車両が前進走行の場合に、上記（１）の作用効果を、容易に実現できる。
【００８７】
（４）本実施形態の処理装置では、ＣＰＵ３０（判定部）は、車両が後進走行の場合、負のＹ値が出力された場合に、前記判定処理を行い、正のＹ値が出力された場合には前記判定処理を無効化する。この結果、車両が後進走行の場合に、上記（１）の作用効果を、容易に実現できる。
【００８８】
（５）本実施形態の車両は、前進及び後進をモータで行う車両であって、前記処理装置を備えている。この結果、本実施形態の車両は、上記（１）の効果を容易に実現できる。
なお、本実施形態は以下のように変更してもよい。
【００８９】
・前記実施形態では、ジョイスティック２４は、車両前方に操作レバー２４ａを傾倒した際に、正のＹ軸電圧を出力し、車両後方へ傾倒した際には、負のＹ軸電圧を出力するようにしたが、逆にしてもよい。この場合、アクセル／ブレーキ状態判定部３７におけるＹ軸電圧に基づくアクセル／ブレーキ状態の判定も逆にすればよい。
【００９０】
・前記実施形態では、ジョイスティック２４は、右方に操作レバー２４ａを傾倒した際には、正のＸ軸電圧を出力し、左方へ傾倒した際には、負のＸ軸電圧を出力したが、逆にしてもよい。この場合、ステア舵角演算部５４における、Ｘ軸電圧に基づく操舵方向の判定を逆にすればよい。
【００９１】
・前記実施形態では、トルク指令演算部４２、トルク指令補正部４４、ブレーキ指令値演算部４９ではモータ回転数を駆動モータＭ３、Ｍ４の平均値としたが、いずれか一方の駆動モータのモータ回転数としてもよい。
【００９２】
・前記実施形態では、駆動モータＭ３、Ｍ４をＡＣモータで構成したが、駆動モータＭ３、Ｍ４をＤＣモータに代えてもよい。この場合、ＤＣモータをトルク指令で制御を行う駆動モータ制御部２０に変更すればよい。
【００９３】
・前記実施形態では、車速に関する指令をトルク指令としたが、車速に関する指令はトルク指令に限定するものではなく、トルク指令に代えて、例えば、モータ回転数を指令としてもよい。
【００９４】
・前記実施形態では、ＣＰＵ３０を第１演算部、第２演算部、判定部、指令出力部としたが、単一のＣＰＵで第１演算部、第２演算部、判定部、指令出力部を構成することに限定するものではなく、前記各部の少なくとも１つ以上を機能させたＣＰＵを組み合わせてもよい。
【００９５】
・前記実施形態では、図６に示すように中点（原点Ｏ）に対して、Ｙ（Ｘ）軸電圧が正、及び負に変化することとなっている。すなわち、ジョイスティック２４は、車両前方に操作レバー２４ａを傾倒した際には、正のＹ軸電圧を出力し、車両後方へ傾倒した際には、負のＹ軸電圧を出力する。また、本実施形態では、ジョイスティック２４は、右方に操作レバー２４ａを傾倒した際には、正のＸ軸電圧を出力し、左方へ傾倒した際には、負のＸ軸電圧を出力する。また、ベクトル長Ｌは、Ｌ（＝√（Ｘ１^2  ＋  Ｙ１^2））としている。この構成に代えて、下記のようにしてもよい。
【００９６】
図１０に示すように、ジョイスティック２４の操作レバー２４ａが操作されていない中立位置に位置する場合には、操作レバー２４ａは、それぞれ＋Ｖ／２のＸ軸電圧、及びＹ軸電圧を出力するようにする。なお、Ｙ軸電圧の＋Ｖは、操作レバー２４ａが最も車両前方へ傾倒した際に出力される軸電圧である。また、Ｘ軸電圧の＋Ｖは、操作レバー２４ａが最も右方へ傾倒した際に出力される軸電圧である。
【００９７】
そして、車両前方へ操作レバー２４ａを傾倒するほどその操作量に応じて＋Ｖに近くなる＋のＹ軸電圧を出力し、車両後方へ操作レバー２４ａを傾倒するほどその操作量に応じてＶ／２よりも０に近くなるようにＹ軸電圧を出力する。また、ジョイスティック２４の操作レバー２４ａを右方へ傾倒するほどその操作量に応じて＋Ｖに近くなる＋のＸ軸電圧を出力し、左方へ傾倒するほどその操作量に応じて０に近くなるＸ軸電圧を出力する。
【００９８】
この場合、ベクトル長Ｌは、下記式（６）にて算出する。
Ｌ＝√（（Ｘ１−Ｖ／２）^2  ＋  （Ｙ１−Ｖ／２）^2）    ……（６）
この場合、アクセル／ブレーキ状態判定部３７での状態判定において、前記実施形態では、０を基準としてＹ軸電圧の正、負に応じた状態判定する代りに、Ｙ軸電圧がＶ／２よりも大か小かの大小判定の結果に応じた状態判定を行うようにしてもよい。すなわち、Ｙ軸電圧がＶ／２よりも小であれば、前記実施形態の負の場合と同じとし、大であれば、前記実施形態の正と同じにすればよい。
【００９９】
・また、上記構成に代えて、下記のようにしてもよい。
ジョイスティック２４の操作レバー２４ａが操作されていない中立位置に位置する場合には、ジョイスティック２４は、Ｘ軸電圧、及びＹ軸電圧が、それぞれ−Ｖ／２の値を出力するようにする。
【０１００】
そして、ジョイスティック２４は、操作レバー２４ａが最も車両前方へ傾倒した際には０のＹ軸電圧を出力するとともに、操作レバー２４ａが最も車両後方へ傾倒した際には−ＶのＹ軸電圧を出力する。そして、ジョイスティック２４は、車両前方へ操作レバー２４ａを傾倒するほどその操作量に応じて０に近くなるＹ軸電圧を出力し、車両後方へ操作レバー２４ａを傾倒するほどその操作量に応じて−Ｖに近くなるようにＹ軸電圧を出力する。
【０１０１】
また、ジョイスティック２４は、操作レバー２４ａが最も右方へ傾倒した際には０のＸ軸電圧を出力するとともに、操作レバー２４ａが最も左方へ傾倒した際には−ＶのＸ軸電圧を出力する。そして、ジョイスティック２４は、操作レバー２４ａが右方へ傾倒するほどその操作量に応じて０に近くなるＸ軸電圧を出力し、左方へ操作レバー２４ａを傾倒するほどその操作量に応じて−Ｖに近くなるようにＸ軸電圧を出力する。
【０１０２】
この場合も、ベクトル長Ｌを演算することができる。
また、この場合においても、アクセル／ブレーキ状態判定部３７での状態判定において、Ｙ軸電圧が−Ｖ／２よりも大か小かの大小判定の結果に応じた状態判定を行うようにしてもよい。すなわち、Ｙ軸電圧が−Ｖ／２よりも小であれば、前記実施形態の負の場合と同じとし、大であれば、前記実施形態の正と同じにすればよい。
【符号の説明】
【０１０３】
１０…車両、１２…操作パネル、１４…電源部、１６…ステアモータ制御部、
１８…ブレーキモータ制御部、２０…駆動モータ制御部、
２２…車両制御ユニット、２４…ジョイスティック、２４ａ…操作レバー、
２６…ブレーキスイッチ、２８…シフト切換スイッチ、
３０…ＣＰＵ、３１…メモリ、３２〜３５…ＬＰＦ（ローパスフィルタ）、
３６…ベクトル長演算部、３７…アクセル／ブレーキ状態判定部、
３８…遊び領域判定部、３９…開度演算部、４０…トルクマップ選択部、
４２…トルク指令演算部、４４…トルク指令補正部、４６…ブレーキ判定部、
４８…ブレーキマップ、４９…ブレーキ指令値演算部、
５０…ｓｉｎθ演算部、５２…θ演算部、５４…ステア舵角演算部、
５６…ステア舵角補正部、５８…ＣＡＮ通信制御部、
６０…ＣＡＮ通信モジュール、
Ａ…車速に関する指令生成処理部、Ｂ…舵角指令生成処理部、
Ｃ…ブレーキ指令生成処理部、Ｍ１…ステアモータ、Ｍ２…ブレーキモータ、
Ｍ３、Ｍ４…駆動モータ、ＳＲ、ＳＬ…回転数センサ。
【図１】
2017085751.tif 000003
【図２】
2017085751.tif 000004
【図３】
2017085751.tif 000005
【図４】
2017085751.tif 000006
【図５】
2017085751.tif 000007
【図６】
2017085751.tif 000008
【図７】
2017085751.tif 000009
【図８】
2017085751.tif 000010
【図９】
2017085751.tif 000011
【図１０】
2017085751.tif 000012