(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024177068
(43)【公開日】2024-12-19
(54)【発明の名称】フォークリフト、及びフォークリフトの制御方法
(51)【国際特許分類】
B60L 15/20 20060101AFI20241212BHJP
B60L 9/18 20060101ALI20241212BHJP
B66F 9/24 20060101ALI20241212BHJP
【FI】
B60L15/20 J
B60L9/18 J
B66F9/24 W
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2024067652
(22)【出願日】2024-04-18
(31)【優先権主張番号】P 2023095635
(32)【優先日】2023-06-09
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】石村 祥太
(72)【発明者】
【氏名】山田 剛史
【テーマコード(参考)】
3F333
5H125
【Fターム(参考)】
3F333AA02
3F333AB13
3F333AE02
3F333FA20
3F333FA29
5H125AA13
5H125AC12
5H125BA01
5H125CA01
5H125EE08
5H125EE42
5H125EE62
(57)【要約】
【課題】フォークリフトの操作者に違和感を与えることを抑制すること。
【解決手段】制御装置は、出力割合とトルク電流曲線とを掛け合わせることでトルク電流指令値を算出する。制御装置は、トルク電流指令値をインバータに対する指令値に変換することで走行モータの回転数が目標回転数に追従するように走行モータを制御する。制御装置は、今回の制御周期でのトルクが前回の制御周期でのトルクから0を跨いで変化していない場合に、今回の制御周期での出力割合と前回の制御周期で出力割合との差を加速トルクとして積算していく。制御装置は、今回の制御周期での回転数指令が0の場合、前回の制御周期での出力割合のうち加速成トルクのみを所定値小さくした値を今回の制御周期での出力割合とする。
【選択図】
図6
【特許請求の範囲】
【請求項1】
アクセル部材と、
走行モータと、
前記走行モータを駆動させるインバータと、
前記インバータを制御する制御装置と、を備え、
前記制御装置は、
前記アクセル部材の操作量に応じた回転数指令を取得し、
前記回転数指令、加速度指令、及び減速度指令に基づいて目標回転数を算出し、
前記走行モータの回転数と前記目標回転数との偏差を算出し、
前記偏差、比例ゲイン、及び積分ゲインに基づいて出力割合を算出し、
前記出力割合とトルク電流曲線とを掛け合わせることでトルク電流指令値を算出し、
前記トルク電流指令値を前記インバータに対する指令値に変換することで前記走行モータの回転数が前記目標回転数に追従するように前記走行モータを制御し、
前記出力割合のうち加速に寄与する成分を加速成分とし、前記出力割合のうちブレーキに寄与する成分をブレーキ成分とした場合、今回の制御周期でのトルクが前回の制御周期でのトルクから0を跨いで変化していない場合であって、今回の制御周期での前記出力割合の絶対値が前回の制御周期での前記出力割合の絶対値以下である第1条件又は前記回転数指令と今回の制御周期での前記出力割合との積が0より大きい第2条件が成立する場合、今回の制御周期での前記出力割合と前回の制御周期での前記出力割合との差を前記加速成分として積算していき、
前記加速成分、及び今回の制御周期での前記出力割合から予め定められた最大数を上限とする加速出力割合を算出し、
今回の制御周期での前記回転数指令が0であり、かつ、前記加速出力割合が0とは異なる値の場合、前回の制御周期での前記出力割合のうち前記加速成分のみを所定値小さくした値を今回の制御周期での前記出力割合とする、フォークリフト。
【請求項2】
平坦路で前記フォークリフトの押し込み操作を行った場合、前回の制御周期での前記出力割合は前記加速成分のみを含む、請求項1に記載のフォークリフト。
【請求項3】
坂路で前記フォークリフトを停止させる場合、前回の制御周期での前記出力割合は前記ブレーキ成分のみを含む、請求項1又は請求項2に記載のフォークリフト。
【請求項4】
アクセル部材と、
走行モータと、
前記走行モータを駆動させるインバータと、
前記インバータを制御する制御装置と、を備えたフォークリフトの制御方法であって、
前記制御装置が、
前記アクセル部材の操作量に応じた回転数指令を取得することと、
前記回転数指令、加速度指令、及び減速度指令に基づいて目標回転数を算出することと、
前記走行モータの回転数と前記目標回転数との偏差を算出することと、
前記偏差、比例ゲイン、及び積分ゲインに基づいて出力割合を算出することと、
前記出力割合とトルク電流曲線とを掛け合わせることでトルク電流指令値を算出することと、
前記トルク電流指令値を前記インバータに対する指令値に変換することで前記走行モータの回転数が前記目標回転数に追従するように前記走行モータを制御することと、
前記出力割合のうち加速に寄与する成分を加速成分とし、前記出力割合のうちブレーキに寄与する成分をブレーキ成分とした場合、今回の制御周期でのトルクが前回の制御周期でのトルクから0を跨いで変化していない場合であって、今回の制御周期での前記出力割合の絶対値が前回の制御周期での前記出力割合の絶対値以下である第1条件又は前記回転数指令と今回の制御周期での前記出力割合との積が0より大きい第2条件が成立する場合、今回の制御周期での前記出力割合と前回の制御周期での前記出力割合との差を前記加速成分として積算していくことと、
前記加速成分、及び今回の制御周期での前記出力割合から予め定められた最大数を上限とする加速出力割合を算出することと、
今回の制御周期での前記回転数指令が0であり、かつ、前記加速出力割合が0とは異なる値の場合、前回の制御周期での前記出力割合のうち前記加速成分のみを所定値小さくした値を今回の制御周期での前記出力割合とすることと、を含む、フォークリフトの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、フォークリフト、及びフォークリフトの制御方法に関する。
【背景技術】
【0002】
特許文献1に開示の車両は、走行モータと、走行モータを駆動させるインバータと、インバータを制御する制御装置と、を備える。制御装置は、走行モータの力行によって車両を走行させる。制御装置は、走行モータの回生によって車両を制動させる。制御装置は、走行モータの回転数が目標回転数に追従するようにフィードバック制御を行う。フィードバック制御は、走行モータの回転数と目標回転数との偏差を小さくするように行われる。フィードバック制御は、例えば、比例積分制御である。特許文献2に開示のフォークリフトは、荷役装置を備える。荷役装置は、フォークと、マストと、を備える。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-68596号公報
【特許文献2】特開2023-46547号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
フォークリフトでは、押し込み操作が行われる場合がある。押し込み操作は、置かれている荷に対してフォークを押し込む操作である。例えば、フォークリフトの走行中に荷がフォークから落下することを抑制するため、荷をフォークの基端まで移動させる際に押し込み操作は行われる。押し込み操作を行うと、荷がマストに接触する。この状態でアクセル部材を操作しても、荷と荷が置かれている場所との界面に生じる静止摩擦力によってフォークリフトが走行しない。即ち、アクセル部材を操作すると、目標回転数と走行モータの回転数との偏差が大きくなっていく。
【0005】
特許文献1に開示のように、走行モータの回転数が目標回転数に追従するようにフィードバック制御を行う場合、走行モータの回転数と目標回転数との偏差が大きいほどトルクを大きくしていく。このため、フォークリフトで押し込み操作が行われている場合、偏差が大きくなるにつれてトルクも大きくなっていく。押し込み操作の終了に伴い、アクセル部材が操作されなくなると、偏差が0になる。偏差が0になると、直前のトルクが維持されるため、アクセル部材が操作されていないにも関わらずトルクが生じている状態になる。この状態で、フォークを上昇させると、荷と荷が置かれている場所とが接触しなくなることによって静止摩擦力が作用しなくなる。すると、残存しているトルクによってフォークリフトが走行するおそれがある。これにより、フォークリフトの操作者に違和感を与えるおそれがある。
【課題を解決するための手段】
【0006】
上記課題を解決するフォークリフトは、アクセル部材と、走行モータと、前記走行モータを駆動させるインバータと、前記インバータを制御する制御装置と、を備え、前記制御装置は、前記アクセル部材の操作量に応じた回転数指令を取得し、前記回転数指令、加速度指令、及び減速度指令に基づいて目標回転数を算出し、前記走行モータの回転数と前記目標回転数との偏差を算出し、前記偏差、比例ゲイン、及び積分ゲインに基づいて出力割合を算出し、前記出力割合とトルク電流曲線とを掛け合わせることでトルク電流指令値を算出し、前記トルク電流指令値を前記インバータに対する指令値に変換することで前記走行モータの回転数が前記目標回転数に追従するように前記走行モータを制御し、前記出力割合のうち加速に寄与する成分を加速成分とし、前記出力割合のうちブレーキに寄与する成分をブレーキ成分とした場合、今回の制御周期でのトルクが前回の制御周期でのトルクから0を跨いで変化していない場合であって、今回の制御周期での前記出力割合の絶対値が前回の制御周期での前記出力割合の絶対値以下である第1条件又は前記回転数指令と今回の制御周期での前記出力割合との積が0より大きい第2条件が成立する場合、今回の制御周期での前記出力割合と前回の制御周期での前記出力割合との差を前記加速成分として積算していき、前記加速成分、及び今回の制御周期での前記出力割合から予め定められた最大数を上限とする加速出力割合を算出し、今回の制御周期での前記回転数指令が0であり、かつ、前記加速出力割合が0とは異なる値の場合、前回の制御周期での前記出力割合のうち前記加速成分のみを所定値小さくした値を今回の制御周期での前記出力割合とする。
【0007】
今回の制御周期での回転数指令が0の状態は、アクセル部材が操作されていない状態である。この場合、制御装置は、前回の制御周期での出力割合のうち加速成分のみを所定値小さくした値を今回の制御周期での出力割合とする。加速成分が所定値小さくなることで、出力割合が小さくなる。従って、押し込み操作の終了に伴い回転数指令が0になると、出力割合が小さくなることでトルクが小さくなる。荷と荷が置かれている場所とが接触しなくなることによって静止摩擦力が作用しなくなった際に、アクセル部材が操作されていないにも関わらずフォークリフトの走行が開始されることが抑制される。これにより、フォークリフトの操作者に違和感を与えることを抑制できる。また、加速成分のみを小さくすることで、出力割合のうちフォークリフトのブレーキに寄与するブレーキ成分を残存させることができる。このため、フォークリフトを坂路で停止させる場合など、フォークリフトを停止させる際に出力割合が必要となる場合には、ブレーキ成分によってフォークリフトを停止させることができる。
【0008】
上記フォークリフトについて、平坦路で前記フォークリフトの押し込み操作を行った場合、前回の制御周期での前記出力割合は前記加速成分のみを含んでいてもよい。
上記フォークリフトについて、坂路で前記フォークリフトを停止させる場合、前回の制御周期での前記出力割合は前記ブレーキ成分のみを含んでいてもよい。
【0009】
上記課題を解決するフォークリフトの制御方法は、アクセル部材と、走行モータと、前記走行モータを駆動させるインバータと、前記インバータを制御する制御装置と、を備えたフォークリフトの制御方法であって、前記制御装置が、前記アクセル部材の操作量に応じた回転数指令を取得することと、前記回転数指令、加速度指令、及び減速度指令に基づいて目標回転数を算出することと、前記走行モータの回転数と前記目標回転数との偏差を算出することと、前記偏差、比例ゲイン、及び積分ゲインに基づいて出力割合を算出することと、前記出力割合とトルク電流曲線とを掛け合わせることでトルク電流指令値を算出することと、前記トルク電流指令値を前記インバータに対する指令値に変換することで前記走行モータの回転数が前記目標回転数に追従するように前記走行モータを制御することと、前記出力割合のうち加速に寄与する成分を加速成分とし、前記出力割合のうちブレーキに寄与する成分をブレーキ成分とした場合、今回の制御周期でのトルクが前回の制御周期でのトルクから0を跨いで変化していない場合であって、今回の制御周期での前記出力割合の絶対値が前回の制御周期での前記出力割合の絶対値以下である第1条件又は前記回転数指令と今回の制御周期での前記出力割合との積が0より大きい第2条件が成立する場合、今回の制御周期での前記出力割合と前回の制御周期での前記出力割合との差を前記加速成分として積算していくことと、前記加速成分、及び今回の制御周期での前記出力割合から予め定められた最大数を上限とする加速出力割合を算出することと、今回の制御周期での前記回転数指令が0であり、かつ、前記加速出力割合が0とは異なる値の場合、前回の制御周期での前記出力割合のうち前記加速成分のみを所定値小さくした値を今回の制御周期での前記出力割合とすることと、を含む。
【0010】
押し込み操作の終了に伴い回転数指令が0になると、出力割合が小さくなることでトルクが小さくなる。荷と荷が置かれている場所とが接触しなくなることによって静止摩擦力が作用しなくなった際に、アクセル部材が操作されていないにも関わらずフォークリフトの走行が開始されることが抑制される。これにより、フォークリフトの操作者に違和感を与えることを抑制できる。
【発明の効果】
【0011】
本発明によれば、フォークリフトの操作者に違和感を与えることを抑制できる。
【図面の簡単な説明】
【0012】
【
図3】
図3は出力割合決定部の機能を表す概略構成図である。
【
図4】
図4は加速トルク減算制御を示すフローチャートである。
【
図5】
図5は加速トルク減算制御を示すフローチャートである。
【
図6】
図6は加速トルク算出制御を示すフローチャートである。
【
図8】
図8は加速トルクとブレーキトルクとの分類を示す表である。
【
図9】
図9は比較例のフォークリフトの回転数指令、出力割合、及び実回転数を示す図である。
【
図10】
図10は実施形態のフォークリフトの回転数指令、出力割合、及び実回転数を示す図である。
【発明を実施するための形態】
【0013】
以下、フォークリフト、及びフォークリフトの制御方法の一実施形態について説明する。
<フォークリフト>
図1に示すように、フォークリフト10は、駆動輪12と、操舵輪13と、を備える。フォークリフト10は、カウンタ式であってもよいし、リーチ式であってもよい。
【0014】
フォークリフト10は、フォーク14と、リフトシリンダ15と、マスト16と、を備える。フォーク14には、荷Lが積載される。リフトシリンダ15は、油圧シリンダである。油圧シリンダへの作動油の給排によってフォーク14はマスト16に沿って昇降する。
【0015】
図2に示すように、フォークリフト10は、バッテリ21を備える。バッテリ21は、例えば、蓄電装置を複数接続することで構成されている。蓄電装置は、充放電可能なものであれば、どのようなものを用いてもよい。蓄電装置は、例えば、鉛蓄電池、リチウムイオン二次電池、又はニッケル水素蓄電池である。
【0016】
フォークリフト10は、インバータ22を備える。インバータ22は、例えば、直流電力を3相交流電力に変換する3相インバータである。インバータ22は、バッテリ21に電気的に接続されている。インバータ22は、バッテリ21から入力される直流電力を交流電力に変換して出力する。インバータ22は、例えば、スイッチング素子23を備え、スイッチング素子23のスイッチング動作によって直流電力を交流電力に変換する。
【0017】
フォークリフト10は、走行モータ24を備える。走行モータ24は、例えば、3相交流回転電機である。走行モータ24は、インバータ22によって駆動される。走行モータ24は、インバータ22からの電力供給時には電動機として動作することで回転駆動力を発生させる。この回転駆動力が車軸を通じて駆動輪12に伝達されることでフォークリフト10は走行する。走行モータ24は、フォークリフト10の制動時には発電機として動作することで回生発電を行なう。走行モータ24が発電した電力は、回生電力としてインバータ22を通じてバッテリ21に供給される。このように、走行モータ24は、力行と回生を行うモータジェネレータである。
【0018】
フォークリフト10は、走行モータ24が生じさせる回生制動力によって制動が行われる。フォークリフト10は、ディスクブレーキやドラムブレーキなどのメカニカルブレーキを備えない。従って、フォークリフト10は、制動装置として走行モータ24のみを備える。
【0019】
フォークリフト10が複数の駆動輪12を備える場合、走行モータ24は、駆動輪12毎に設けられていてもよい。この場合、インバータ22は、走行モータ24毎に設けられていてもよい。フォークリフト10は、走行モータ24によって走行する電動フォークリフトである。
【0020】
フォークリフト10は、アクセル部材25を備える。アクセル部材25は、フォークリフト10を走行させる際に操作される部材である。フォークリフト10がカウンタ式のフォークリフトの場合、アクセル部材25は、例えば、アクセルペダルである。フォークリフト10がリーチ式のフォークリフトの場合、アクセル部材25は、例えば、ディレクションレバーである。
【0021】
フォークリフト10は、アクセルセンサ26を備える。アクセルセンサ26は、アクセル部材25の操作量を検知する。アクセルセンサ26は、アクセル部材25の操作量に応じた電気信号を出力する。
【0022】
フォークリフト10は、回転速度センサ27を備える。回転速度センサ27は、走行モータ24の回転数[rpm]に応じた電気信号を出力する。回転速度センサ27は、例えば、レゾルバ、又はエンコーダである。
【0023】
フォークリフト10は、相電流検出部28を備える。相電流検出部28は、走行モータ24に流れる相電流を検出する。相電流検出部28は、少なくとも2相分の相電流を検出する。3相のうち2相分の相電流を検出して、残りの1相分の相電流は2相分の相電流から算出するようにしてもよい。
【0024】
フォークリフト10は、油圧機構29を備える。油圧機構29は、フォークリフト10が備える油圧機器に作動油を給排する。油圧機構29は、例えば、作動油を吐出するポンプ、及び作動油の供給量や供給先を制御するコントロールバルブを含む。フォークリフト10が備える油圧機器は、リフトシリンダ15を含む。
【0025】
フォークリフト10は、制御装置30を備える。制御装置30は、プロセッサと、記憶部と、を備える。プロセッサは、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又はDSP(Digital Signal Processor)である。記憶部は、RAM(Random Access Memory)及びROM(Read Only Memory)を含む。記憶部には、フォークリフト10を動作させるためのプログラムが記憶されている。記憶部は、処理をプロセッサに実行させるように構成されたプログラムコードまたは指令を格納している。記憶部、すなわち、コンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。制御装置30は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェア回路によって構成されていてもよい。処理回路である制御装置30は、コンピュータプログラムに従って動作する1つ以上のプロセッサ、ASICやFPGA等の1つ以上のハードウェア回路、或いは、それらの組み合わせを含み得る。
【0026】
制御装置30は、アクセルセンサ26から電気信号を取得する。制御装置30は、アクセルセンサ26から取得した電気信号からアクセル操作量を認識する。制御装置30は、回転速度センサ27から電気信号を取得する。制御装置30は、回転速度センサ27から取得した電気信号から走行モータ24の回転数を認識する。適宜、回転速度センサ27によって認識した走行モータ24の回転数を実回転数と称する。実回転数[rpm]は、走行モータ24の回転方向によって±の符号が反転する。例えば、実回転数が+であれば正回転、実回転数が-であれば逆回転である。
【0027】
制御装置30は、油圧機構29を制御する。例えば、制御装置30は、油圧機構29を制御することでフォーク14の昇降を行う。
制御装置30は、インバータ22を制御する。制御装置30は、出力割合決定部41と、トルク電流指令算出部31と、電圧指令算出部32と、を備える。出力割合決定部41、トルク電流指令算出部31、及び電圧指令算出部32は、制御装置30が予め定められた処理を実行することで機能する機能部である。
【0028】
出力割合決定部41は、出力割合[%]を決定する。
トルク電流指令算出部31は、トルク電流指令値を算出する。トルク電流指令値は、q軸電流指令値と称されることもある。トルク電流指令算出部31は、出力割合決定部41が決定した出力割合とトルク電流曲線(Torque current curve)との掛け合わせによってトルク電流指令値を算出する。
【0029】
電圧指令算出部32は、トルク電流指令値とトルク電流との偏差、及び励磁電流指令値と励磁電流との偏差に基づいて電圧指令値を算出する。励磁電流指令値は、制御装置30が算出する。励磁電流指令値は、d軸電流指令値と称されることもある。トルク電流は、走行モータ24に流れる電流のうちトルクを生じさせる成分である。励磁電流は、走行モータ24に流れる電流のうち磁束を生じさせる成分である。トルク電流及び励磁電流は、相電流から算出することができる。電圧指令算出部32は、トルク電流指令値とトルク電流との偏差、及び励磁電流指令値と励磁電流との偏差が小さくなるように電圧指令値を算出する。インバータ22は、電圧指令値に基づいて制御される。電圧指令値は、インバータ22に対する指令値である。このように、制御装置30は、トルク電流指令値をインバータ22に対する指令値に変換することで走行モータ24の回転数が目標回転数に追従するように走行モータ24を制御する。
【0030】
図3に示すように、出力割合決定部41は、目標回転数算出部42と、減算部43と、出力割合算出部44と、比例ゲイン算出部45と、積分ゲイン算出部46と、出力割合補正部47と、を備える。
【0031】
目標回転数算出部42は、回転数指令、加速度指令、及び減速度指令に基づいて目標回転数を算出する。回転数指令は、例えば、アクセル操作量に基づいて算出される。目標回転数算出部42は、アクセル操作量に応じて回転数指令を算出してもよい。目標回転数算出部42は、上位制御装置から回転数指令を取得してもよい。回転数指令の±は、例えば、フォークリフト10の前進が指示されているか、フォークリフト10の後進が指示されているかによって異なる。例えば、ディレクションレバーによってフォークリフト10の前進が指示されている場合、回転数指令は+になる。ディレクションレバーによってフォークリフト10の後進が指示されている場合、回転数指令は-になる。加速度指令は、例えば、目標回転数と実回転数との偏差に基づいて算出される。減速度指令は、例えば、目標回転数と実回転数との偏差に基づいて算出される。目標回転数は、加速度指令で指示された加速度、又は減速度指令で指示された減速度で実回転数を追従させる回転数の目標値である。
【0032】
減算部43は、目標回転数と実回転数との偏差である速度偏差を算出する。
出力割合算出部44は、速度偏差、比例ゲイン、及び積分ゲインに基づいて出力割合を算出する。出力割合算出部44は、比例ゲイン、及び積分ゲインに基づき速度偏差が0に近付くように出力割合を算出する。出力割合決定部41は、フィードバック制御として比例積分制御によって出力割合を算出する。
【0033】
走行モータ24の力行時には、実回転数と出力割合の正負が同一になる。走行モータ24の回生時には、実回転数と出力割合の正負が異なる。例えば、走行モータ24の力行時には、実回転数が正の値であれば、出力割合は正の値になる。走行モータ24の回生時には、実回転数が正の値であれば、出力割合は負の値になる。適宜、出力割合算出部44が算出する出力割合を速度制御出力割合と称する。
【0034】
比例ゲイン算出部45は、比例ゲインを算出する。比例ゲインは、例えば、アクセル操作量、及び走行モータ24の実回転数に基づいて算出される。
積分ゲイン算出部46は、積分ゲインを算出する。積分ゲインは、例えば、アクセル操作量、及び走行モータ24の実回転数に基づいて算出される。
【0035】
出力割合補正部47は、速度制御出力割合の補正を行う。そして、出力割合補正部47は、出力割合を出力する。出力割合決定部41は、所定の制御周期で出力割合を出力する。
【0036】
制御装置30は、ブーストモードを備える。ブーストモードは、走行モータ24のトルクを一時的に一定値まで引き上げるモードである。制御装置30は、回転数指令が閾値よりも大きく、かつ、実回転数が当該閾値よりも低く、かつ、出力割合が100[%]、かつ、これらの状態が所定時間継続した場合にブーストモードを設定する。この状態は、出力割合を100[%]にしているにも関わらず、実回転数と回転数指令との乖離が大きい状態である。このため、一時的にトルクを増加させることによって実回転数と回転数指令との乖離が小さくなるように制御を行う。閾値、及び所定時間は、任意に設定することができる。適宜、ブーストモードが設定されていない場合を通常モードと称する。
【0037】
出力割合補正部47は、加速トルク減算制御と、加速トルク算出制御と、を実行する。これにより、制御装置30によるフォークリフト10の制御方法が実行される。
<加速トルク減算制御>
出力割合補正部47が行う加速トルク減算制御について説明する。
【0038】
図4及び
図5に示すように、ステップS1において、出力割合補正部47は、回転数指令が0、かつ、通常モード、かつ、加速出力割合が0とは異なる値か否かを判定する。回転数指令は、アクセル部材25の操作が行われていない場合に0になる。従って、回転数指令が0か否かを判定することで、アクセル部材25の操作が行われなくなったか、アクセル部材25の操作が継続されているかを判定することができる。ブーストモードが設定されていない場合が通常モードであるため、ステップS1ではブーストモードが設定されているか否かが判定される。加速出力割合は、0~予め定められた最大数の範囲の値を取り得る。予め定められた最大数は、例えば、10000である。加速出力割合は、後述する加速トルク算出制御によって算出される。加速出力割合が0の場合、加速トルクも0である。従って、ステップS1において、出力割合補正部47は、回転数指令が0、かつ、通常モード、かつ、加速トルクが0とは異なる値か否かを判定してもよい。この場合、加速トルクは、後述するステップS2と同様の手法で算出すればよい。
【0039】
ステップS1の判定結果が否定の場合、出力割合補正部47は、ステップS30の処理を行う。ステップS30において、出力割合補正部47は、今回値出力割合を速度制御出力割合とする。今回値出力割合は、今回の制御周期での出力割合である。即ち、出力割合決定部41からトルク電流指令算出部31に出力される出力割合である。
【0040】
ステップS1の判定結果が肯定の場合、出力割合補正部47は、ステップS2の処理を行う。ステップS2において、出力割合補正部47は、加速トルクを算出する。出力割合は、フォークリフト10の加速に寄与する加速成分と、フォークリフト10のブレーキに寄与するブレーキ成分と、を含む。加速トルクは、出力割合のうち加速成分である。加速トルクは、前回値出力割合×加速出力割合/予め定められた最大数で算出することができる。これにより、加速トルクを出力割合と同様に百分率で表すことができる。前回値出力割合は、前回の制御周期での出力割合である。予め定められた最大数は、前述した加速出力割合の取り得る最大数である。出力割合から加速トルクを減算した値は、ブレーキトルクである。ブレーキトルクは、出力割合のうちブレーキ成分である。出力割合補正部47は、出力割合から加速トルクを減算することで、ブレーキトルクを算出することもできる。
【0041】
次に、ステップS3において、出力割合補正部47は、加速トルクが0より大きいか否かを判定する。加速トルクの正負は、前回値出力割合の正負と同一である。このため、前回値出力割合が正であれば加速トルクは正である。前回値出力割合が負であれば加速トルクは負である。ステップS3の判定結果が肯定の場合、出力割合補正部47は、ステップS4の処理を行う。
【0042】
ステップS4において、出力割合補正部47は、加速トルクから一定値[%]を減算した値を減算後加速トルクとする。一定値は、加速トルクを0にするために要する目標時間に基づいて設定されている。制御周期毎にステップS4が行われていくことで、減算後加速トルクは制御周期毎に一定値ずつ0に近付いていく。従って、制御周期の間隔と一定値によって、加速トルクを0にするのに要する時間は定まる。例えば、加速トルクを0にするために要する目標時間を300[ms]、制御周期の間隔を4[ms]とする。そして、加速トルクが取り得る最大値である100[%]から目標時間で加速トルクを0にすることを想定した場合、一定値は、1.33[%]に設定される。
【0043】
次に、ステップS5において、出力割合補正部47は、減算後加速トルクが0未満か否かを判定する。即ち、出力割合補正部47は、ステップS4の処理が繰り返されることによって減算後加速トルクが0未満になったか否かを判定する。ステップS5の判定結果が否定の場合、出力割合補正部47は、ステップS7の処理を行う。ステップS5の判定結果が肯定の場合、出力割合補正部47は、ステップS6の処理を行う。
【0044】
ステップS6において、出力割合補正部47は、減算後加速トルクを0にしてステップS7の処理を行う。減算後加速トルクが0未満の値になった場合であっても、ステップS6で減算後加速トルクは0にされる。即ち、減算後加速トルクの下限値は0である。
【0045】
ステップS7において、出力割合補正部47は、減算後出力割合を算出する。減算後出力割合は、前回値出力割合-(加速トルク-減算後加速トルク)によって算出することができる。加速トルクと減速後加速トルクとの差分を算出することによって、ステップS4~ステップS6で加速トルクから減算した値を得ることができる。この値を前回値出力割合から減算することで、減算後出力割合を得ることができる。減算後加速トルクは、制御周期毎に一定値ずつ減算されていくため、減算後出力割合も制御周期毎に一定値ずつ減算されていく。一定値は、前回値出力割合のうち加速トルクから減算される所定値である。
【0046】
次に、ステップS8において、出力割合補正部47は、減算後出力割合が速度制御出力割合より大きいか否かを判定する。ステップS8の判定結果が肯定の場合、出力割合補正部47は、ステップS9の処理を行う。ステップS9において、出力割合補正部47は、今回値出力割合を速度制御出力割合とする。ステップS8の判定結果が否定の場合、出力割合補正部47は、ステップS10の処理を行う。ステップS10において、出力割合補正部47は、今回値出力割合を減算後出力割合とする。
【0047】
ステップS8~ステップS10において、出力割合補正部47は、速度制御出力割合及び減速後出力割合のうち小さい方を今回値出力割合とする。
ステップS3の判定結果が否定の場合、出力割合補正部47は、ステップS20の処理を行う。ステップS20において、出力割合補正部47は、加速トルクが0より小さいか否かを判定する。ステップS20の判定結果が否定の場合、出力割合補正部47は、ステップS30の処理を行う。ステップS20の判定結果が肯定の場合、出力割合補正部47は、ステップS21の処理を行う。
【0048】
ステップS21において、出力割合補正部47は、加速トルクに一定値[%]を加算した値を減算後加速トルクとする。一定値は、ステップS4の一定値と同一値である。
次に、ステップS22において、出力割合補正部47は、減算後加速トルクが0より大きいか否かを判定する。即ち、出力割合補正部47は、ステップS21の処理が繰り返されることによって減算後加速トルクが0より大きくなったか否かを判定する。ステップS22の判定結果が否定の場合、出力割合補正部47は、ステップS24の処理を行う。ステップS22の判定結果が肯定の場合、出力割合補正部47は、ステップS23の処理を行う。
【0049】
ステップS23において、出力割合補正部47は、減算後加速トルクを0にしてステップS24の処理を行う。
ステップS24において、出力割合補正部47は、減算後出力割合を算出する。減算後出力割合は、前回値出力割合-(減算後加速トルク-加速トルク)によって算出することができる。
【0050】
次に、ステップS25において、出力割合補正部47は、減算後出力割合が速度制御出力割合より小さいか否かを判定する。ステップS25の判定結果が肯定の場合、出力割合補正部47は、ステップS26の処理を行う。ステップS26において、出力割合補正部47は、今回値出力割合を速度制御出力割合とする。ステップS25の判定結果が否定の場合、出力割合補正部47は、ステップS27の処理を行う。ステップS27において、出力割合補正部47は、今回値出力割合を減算後出力割合とする。
【0051】
ステップS25~ステップS27において、出力割合補正部47は、速度制御出力割合及び減速後出力割合のうち大きい方を今回値出力割合とする。
上記したように、ステップS4~ステップS10は、加速トルクが正の場合に、加速トルクを小さくするとともに、加速トルクを小さくした今回値出力割合を得るための処理である。ステップS21~ステップS27は、加速トルクが負の場合に、加速トルクを小さくするとともに、加速トルクを小さくした今回値出力割合を得るための処理である。即ち、加速トルクが正であっても負であっても加速トルクを小さくする処理が行われる。加速トルク減算処理では、1回の制御周期で加速トルクを一定値小さくした値を得ることができる。加速トルク減算処理では、ブレーキトルクを小さくする処理が行われないため、加速トルクのみが小さくなる。「加速トルクを小さくする」とは、加速トルクを0に近づけること、即ち、加速トルクの絶対値を小さくすることを意味する。
【0052】
<加速トルク算出制御>
出力割合補正部47が行う加速トルク算出制御について説明する。
図6に示すように、ステップS41において、出力割合補正部47は、出力割合変化量、前回値加速トルク、及び回転数指令と出力割合の積を算出する。出力割合変化量は、今回値出力割合-前回値出力割合で算出することができる。前回値加速トルクは、前回値出力割合×前回値加速出力割合/予め定められた最大数で算出することができる。前回値加速トルクは、前回の制御周期での加速トルクである。前回値加速出力割合は、前回の制御周期での加速出力割合である。予め定められた最大数は、前述した加速出力割合の取り得る最大数である。回転数指令と出力割合の積は、回転数指令×今回値出力割合で算出することができる。
【0053】
次に、ステップS42において、出力割合補正部47は、今回値出力割合が0とは異なる値か否かを判定する。ステップS42の判定結果が否定の場合、出力割合補正部47は、ステップS60の処理を行う。ステップS60において、出力割合補正部47は、加速トルクを0にする。また、出力割合補正部47は、加速出力割合を0にする。加速トルクは出力割合のうち加速に寄与する割合であるため、今回値出力割合が0の場合、加速トルク、及び加速出力割合も0になる。
【0054】
ステップS42の判定結果が肯定の場合、出力割合補正部47は、ステップS43の処理を行う。
ステップS43において、出力割合補正部47は、前回値出力割合が0より大きく、かつ、今回値出力割合が0以上の条件、又は前回値出力割合が0より小さく、かつ、今回値出力割合が0以下の条件が成立するか否かを判定する。上記した2つの条件のいずれかが成立する場合、1制御周期の間に出力割合の正負が変化していない。即ち、今回の制御周期でのトルクが前回の制御周期でのトルクから0を跨いで変化していない。出力割合の正負とトルクの正負とは一致する。ステップS43の判定結果が肯定の場合、出力割合補正部47は、ステップS44の処理を行う。
【0055】
ステップS44において、出力割合補正部47は、今回値出力割合の絶対値が前回値出力割合の絶対値以下である第1条件、又は回転数指令と出力割合の積が0より大きい第2条件が成立するか否かを判定する。今回値出力割合の絶対値が前回値出力割合の絶対値以下の場合、1制御周期の間にトルクが0に近付くように変化している、あるいは、1周期の間にトルクが変化していない。回転数指令と出力割合の積が0より大きい場合、回転数指令の正負と出力割合の正負とが一致している。回転数指令の正負と出力割合の正負とが一致している場合、フォークリフト10の操作者によるアクセル部材25の操作に応じて、走行モータ24が力行している。ステップS44の判定結果が否定の場合、出力割合補正部47は、ステップS49の処理を行う。
【0056】
ステップS44の判定結果が肯定の場合、出力割合補正部47は、ステップS45の処理を行う。ステップS45において、出力割合補正部47は、前回値加速トルク+出力割合変化量を加速トルクとする。第1条件が成立する場合、1制御周期の間に出力割合が減少、又は維持されている。1制御周期の間に出力割合が減少している場合、出力割合変化量は-の値になるため、加速トルクは小さくなる。1制御周期の間に出力割合が維持されている場合、出力割合変化量は0なので、加速トルクは維持される。第1条件が成立しない場合、出力割合は増加している。回転数指令と出力割合の積が0より大きい場合、走行モータ24が力行しているため、この場合に増加した出力割合は加速トルクである。回転数指令と出力割合の積が0より小さい場合、走行モータ24が回生しているため、この場合に増加した出力割合はブレーキトルクである。第2条件が成立する場合、出力割合変化量は+の値になるため、加速トルクは大きくなる。このように、出力割合補正部47は、今回の制御周期でのトルクが前回の制御周期でのトルクから0を跨いで変化していない場合であって、第1条件又は第2条件が成立する場合、今回の制御周期での出力割合と前回の制御周期で出力割合との差を加速トルクとして積算していく。そして、第1条件又は第2条件のいずれが成立するかによって、加速トルクが増加するか減少するかが異なる。
【0057】
ステップS43の判定結果が否定の場合、出力割合補正部47は、ステップS46の処理を行う。
ステップS46において、出力割合補正部47は、回転数指令と出力割合の積が0より大きいか否かを判定する。ステップS46の判定結果が肯定の場合、出力割合補正部47は、ステップS47の処理を行う。ステップS47において、出力割合補正部47は、今回値出力割合を加速トルクとしてステップS49の処理を行う。ステップS46の判定結果が否定の場合、出力割合補正部47は、ステップS48の処理を行う。ステップS48において、出力割合補正部47は、加速トルクを0とし、ステップS49の処理を行う。
【0058】
ステップS43~ステップS48において、加速トルクが定まる。ステップS43、及びステップS44の判定結果が肯定の場合、加速トルクは、前回値加速トルク+出力割合変化量である。即ち、ステップS43、及びステップS44の判定結果が肯定に維持され続けている間は加速トルクが積算されていく。ステップS43の判定結果が否定、ステップS46の判定結果が肯定の場合、加速トルクは、今回値出力割合である。ステップS43、及びステップS46の判定結果が否定、加速トルクは、0である。
【0059】
ステップS49において、出力割合補正部47は、今回値出力割合が0以上、かつ、加速トルクが0より小さい条件、又は今回値出力割合が0以下、かつ、加速トルクが0より大きい条件のいずれかが成立するかを判定する。ステップS49の判定結果が否定の場合、出力割合補正部47は、ステップS51の処理を行う。ステップS49の判定結果が肯定の場合、出力割合補正部47は、ステップS50の処理を行う。
【0060】
ステップS50において、出力割合補正部47は、加速トルクを0にしてステップS51の処理を行う。
ステップS51において、出力割合補正部47は、ステップS45、ステップS47、ステップS48、又はステップS50で定められた加速トルク、及び今回値出力割合から加速出力割合を算出する。即ち、出力割合補正部47は、出力割合変化量、前回値加速トルク、及び回転数指令と出力割合の積を用いて算出した加速トルク、及び今回値出力割合から加速出力割合を算出する。加速出力割合は、加速トルク×予め定められた最大数/今回値出力割合で算出することができる。予め定められた最大数は、前述した加速出力割合の取り得る最大数である。加速出力割合は、出力割合のうち加速に寄与する成分である加速トルクを予め定められた最大数を上限とする数値に換算した値である。ステップS51で加速出力割合を算出すると、出力割合補正部47は、加速トルク算出制御を終了する。
【0061】
上記した加速トルク算出制御は、
図7及び
図8で表すことができる。
図7に示すように、トルクが0から離れるように変化している場合をトルクの増加とする。トルクが0に近付くように変化している場合をトルクの減少とする。
【0062】
図8に示すように、回転数指令の正負とトルクの正負とが一致している場合を加速トルクとする。回転数指令の正負とトルクの正負とが一致していない場合をブレーキトルクとする。回転数指令の正負とトルクの正負とが一致している状態は、フォークリフト10の操作者がフォークリフト10を前進させるためにアクセル部材25を操作することでフォークリフト10が前進している状態を含む。回転数指令の正負とトルクの正負とが一致している状態は、フォークリフト10の操作者がフォークリフト10を後進させるためにアクセル部材25を操作することでフォークリフト10が後進している状態を含む。トルクの正負は、今回値出力割合の正負である。回転数指令の正負とトルクの正負が一致しているか否かは、回転数指令と今回値出力割合の積が0より大きいか否かで判定することができる。
【0063】
図7及び
図8に示すように、トルクが0を跨いで変化していない場合であってトルクの増減に応じて1制御周期の間の出力割合の差分を積算していくことで、加速トルクを算出することができる。
【0064】
平坦路でフォークリフト10の押し込み操作を行った場合、前回の制御周期での出力割合は加速トルクのみを含む。これは、平坦路では、ブレーキトルクによってフォークリフト10を停止させる必要がないため、押し込み操作によって加速トルクのみが大きくなるからである。押し込み操作は、置かれている荷Lに対してフォーク14を押し込む操作である。
【0065】
坂路でフォークリフト10を停止させる場合、前回の制御周期での出力割合はブレーキトルクのみを含む。これは、坂路でフォークリフト10を停止させる場合、ブレーキトルクによってフォークリフト10を停止させる必要があるからである。また、フォークリフト10を停止させる場合、加速トルクは0である。
【0066】
[本実施形態の作用]
図9及び
図10には、回転数指令、出力割合、及び実回転数の関係を示す。
図9及び
図10において、線L1が回転数指令、線L2が出力割合、線L3が実回転数を示す。
【0067】
図9には、比較例として加速トルク減算制御、及び加速トルク算出制御が行われないフォークリフトの回転数指令、出力割合、及び実回転数の関係を示す。
時刻T1までフォークリフトの押し込み操作が行われたとする。押し込み操作を行うと、荷Lがマスト16に接触する。この状態でアクセル部材25を操作しても、荷Lと荷Lが置かれている場所との界面に生じる静止摩擦力によってフォークリフト10が走行しない。このため、回転数指令と実回転数の偏差が大きくなっていく。これに伴い、出力割合、即ち、走行モータ24のトルクも大きくなっていく。
【0068】
時刻T1で押し込み操作が行われなくなると、アクセル部材25が操作されなくなることで回転数指令が0になる。回転数指令と実回転数との偏差が0の場合、目標回転数と実回転数との偏差も0である。比例ゲインや積分ゲイン等のフィードバックゲインは、偏差に対して作用することで偏差を小さくするため、偏差が0の場合、直前の出力割合が維持される。押し込み操作が行われていた場合、押し込み操作が行われていた場合の出力割合が維持されることになる。
【0069】
時刻T2でフォーク14の上昇が開始されると、荷Lがフォーク14によって上昇する。これにより、荷Lと荷Lが置かれている場所とが接触しなくなると、静止摩擦力が作用しなくなる。押し込み操作が行われていた際の出力割合が維持されているため、この出力割合により生じるトルクによってフォークリフト10は走行を開始する。フォークリフト10が走行を開始すると、回転数指令と実回転数との偏差が大きくなることでフォークリフト10が停止するように出力割合が変化する。これにより、フォークリフト10は停止するものの、フォークリフト10の操作者の操作性に違和感を与えるおそれがある。
【0070】
図10には、本実施形態のフォークリフト10の回転数指令、出力割合、及び実回転数の関係を示す。
時刻T1までフォークリフト10の押し込み操作が行われたとする。これにより、出力割合が大きくなっていく。
図10から把握できるように、押し込み操作では、回転数指令の正負と出力割合の正負とが一致する。このため、押し込み操作が継続して行われている間は、加速トルクが積算されていく。
【0071】
時刻T1で押し込み操作が行われなくなると、アクセル部材25が操作されなくなることで回転数指令が0になる。回転数指令が0になると、加速出力割合が0になるまで前回値出力割合から加速トルクが小さくされていく。言い換えれば、回転数指令が0になった時点での出力割合から、その時点での加速トルクを上限として出力割合を小さくする処理が行われる。これにより、時刻T1から出力割合が小さくなっていく。加速トルク減算制御では、加速トルク算出制御で算出された加速トルクのみを小さくしていく。これにより、出力割合のうちブレーキトルクは残存することになる。
【0072】
時刻T2でフォーク14の上昇が開始され、荷Lと荷Lが置かれている場所とが接触しなくなることで静止摩擦力が作用しなくなったとしても、この段階では出力割合から加速トルクが除去されている。これにより、アクセル部材25が操作されていないにも関わらずフォークリフト10の走行が開始されることが抑制されている。
【0073】
[本実施形態の効果]
(1)制御装置30は、回転数指令が0の場合、加速トルクを小さくする。押し込み操作の終了に伴い回転数指令が0になると、出力割合が小さくなることでトルクが小さくなる。荷Lと荷Lが置かれている場所とが接触しなくなることによって静止摩擦力が作用しなくなった際に、アクセル部材25が操作されていないにも関わらずフォークリフト10の走行が開始されることが抑制される。これにより、フォークリフト10の操作者に違和感を与えることを抑制できる。
【0074】
また、加速トルクのみを小さくすることで、出力割合のうちフォークリフト10のブレーキに寄与するブレーキトルクは残存させることができる。このため、フォークリフト10を坂路で停止させる場合など、フォークリフト10を停止させる際に出力割合が必要となる場合には、ブレーキトルクによってフォークリフト10を停止させることができる。
【0075】
(2)平坦路でフォークリフト10の押し込み操作を行った場合、前回の制御周期での出力割合は加速トルクのみを含む。このため、押し込み操作を終えた後には、出力割合が小さくなっていく。押し込み操作を終えた後に加速トルクが小さくなっていくことで、押し込み操作を終えた後に、アクセル部材25が操作されていないにも関わらずフォークリフト10の走行が開始されることが抑制される。
【0076】
(3)坂路でフォークリフト10を停止させる場合、前回の制御周期での出力割合はブレーキトルクのみを含む。加速トルク減算制御でブレーキトルクは、小さくされないため、坂路でフォークリフト10を停止させることができる。
【0077】
(4)制御装置30は、制御周期毎に加速トルクを一定値ずつ減算していく。このため、加速トルクが急激に減少することを抑制することができる。
[変更例]
実施形態は、以下のように変更して実施することができる。実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0078】
○制御装置30は、フィードバック制御として比例積分微分制御を行ってもよい。
○フォークリフト10は、メカニカルブレーキを備えていてもよい。
○所定値は、一定値に限られない。例えば、所定値は、制御周期毎に大きくなる可変値であってもよいし、制御周期毎に小さくなる可変値であってもよい。
【0079】
○制御装置30は、ブーストモードを備えていなくてもよい。
【符号の説明】
【0080】
L…荷、10…フォークリフト、22…インバータ、24…走行モータ、25…アクセル部材、30…制御装置。