図1は、本発明が適用される建設機械としてのショベル(掘削機)を示す側面図である。ショベルの下部走行体1には、旋回機構2を介して上部旋回体3が搭載されている。上部旋回体3にはブーム4が取り付けられている。ブーム4の先端にはアーム5が取り付けられ、アーム5の先端にはエンドアタッチメントとしてのバケット6が取り付けられている。作業要素としてのブーム4、アーム5及びバケット6は、アタッチメントの一例である掘削アタッチメントを構成している。そして、ブーム4はブームシリンダ7で駆動され、アーム5はアームシリンダ8で駆動され、バケット6はバケットシリンダ9で駆動される。
ブーム4にはブーム角度センサS1が取り付けられ、アーム5にはアーム角度センサS2が取り付けられ、バケット6にはバケット角度センサS3が取り付けられている。また、上部旋回体3には機体傾斜センサS4及び旋回角速度センサS5が取り付けられている。
ブーム角度センサS1は、上部旋回体3に対するブーム4の回動角度であるブーム角度を取得するセンサである。ブーム角度センサS1は、例えば、ブームフートピン回りのブーム4の回転角度を検出する回転角度センサ、ブームシリンダ7のストローク量(ブームストローク量)を検出するシリンダストロークセンサ、ブーム4の傾斜角度を検出する傾斜(加速度)センサ等を含む。加速度センサとジャイロセンサの組み合わせであってもよい。ブーム4に対するアーム5の回動角度であるアーム角度を検出するアーム角度センサS2、及び、アーム5に対するバケット6の回動角度であるバケット角度を検出するバケット角度センサS3についても同様である。
機体傾斜センサS4は水平面に対する上部旋回体3の傾斜(機体傾斜角度)を検出する。本実施例では、機体傾斜センサS4は上部旋回体3の前後軸及び左右軸回りの傾斜角度を検出する加速度センサである。上部旋回体3の前後軸及び左右軸は、例えば、互いに直交してショベルの旋回軸上の一点であるショベル中心点を通る。
旋回角速度センサS5は、上部旋回体3の旋回角速度を検出する。本実施例では、ジャイロセンサである。レゾルバ、ロータリエンコーダ等であってもよい。
ブームシリンダ7にはブームロッド圧センサS6a、ブームボトム圧センサS6b、及び、ブームシリンダストロークセンサS7が取り付けられている。アームシリンダ8にはアームロッド圧センサS6c、アームボトム圧センサS6d、及び、アームシリンダストロークセンサS8が取り付けられている。バケットシリンダ9にはバケットロッド圧センサS6e、バケットボトム圧センサS6f、及び、バケットシリンダストロークセンサS9が取り付けられている。
ブームロッド圧センサS6aはブームシリンダ7のロッド側油室の圧力(以下、「ブームロッド圧」とする。)を検出し、ブームボトム圧センサS6bはブームシリンダ7のボトム側油室の圧力(以下、「ブームボトム圧」とする。)を検出する。アームロッド圧センサS6cはアームシリンダ8のロッド側油室の圧力(以下、「アームロッド圧」とする。)を検出し、アームボトム圧センサS6dはアームシリンダ8のボトム側油室の圧力(以下、「アームボトム圧」とする。)を検出する。バケットロッド圧センサS6eはバケットシリンダ9のロッド側油室の圧力(以下、「バケットロッド圧」とする。)を検出し、バケットボトム圧センサS6fはバケットシリンダ9のボトム側油室の圧力(以下、「バケットボトム圧」とする。)を検出する。
上部旋回体3には、運転室としてのキャビン10が設けられ且つエンジン11等の動力源が搭載されている。
図2は、図1のショベルの駆動系の構成例を示すブロック図であり、機械的動力伝達ライン、作動油ライン、パイロットライン、電気制御ラインをそれぞれ二重線、太実線、破線、点線で示す。
ショベルの駆動系は、主に、エンジン11、レギュレータ13、メインポンプ14、パイロットポンプ15、コントロールバルブ17、操作装置26、吐出圧センサ28、操作圧センサ29、コントローラ30、情報取得装置40等を含む。
エンジン11は、ショベルの駆動源である。本実施例では、エンジン11は、例えば、所定の回転数を維持するように動作する内燃機関としてのディーゼルエンジンである。また、エンジン11の出力軸は、メインポンプ14及びパイロットポンプ15のそれぞれの入力軸に連結される。
メインポンプ14は、作動油ラインを介して作動油をコントロールバルブ17に供給するための装置であり、例えば、斜板式可変容量型油圧ポンプである。
レギュレータ13は、メインポンプ14の吐出量を制御するための装置である。本実施例では、レギュレータ13は、例えば、メインポンプ14の吐出圧、コントローラ30からの指令電流等に応じてメインポンプ14の斜板傾転角を調節することによってメインポンプ14の吐出量を制御する。
パイロットポンプ15は、パイロットラインを介して操作装置26を含む各種油圧制御機器に作動油を供給する装置であり、例えば、固定容量型油圧ポンプである。
コントロールバルブ17は、ショベルにおける油圧システムを制御する油圧制御装置である。具体的には、コントロールバルブ17は、メインポンプ14が吐出する作動油の流れを制御する複数のスプール型の制御弁を含む。例えば、ブーム制御弁17A、アーム制御弁17B、バケット制御弁17C、左走行モータ制御弁17D、右走行モータ制御弁17E、及び、旋回制御弁17Fを含む。そして、コントロールバルブ17は、それら制御弁を通じ、メインポンプ14が吐出する作動油を1又は複数の油圧アクチュエータに選択的に供給できる。それら制御弁は、メインポンプ14からセンターバイパス管路を通って作動油タンクに流れる作動油の流量、メインポンプ14から油圧アクチュエータに流れる作動油の流量、及び、油圧アクチュエータから作動油タンクに流れる作動油の流量を制御できる。油圧アクチュエータは、ブームシリンダ7、アームシリンダ8、バケットシリンダ9、左側走行油圧モータ1L、右側走行油圧モータ1R、及び、旋回油圧モータ2Aを含む。ブーム制御弁17A、アーム制御弁17B、バケット制御弁17C、左走行モータ制御弁17D、右走行モータ制御弁17E、及び、旋回制御弁17Fのそれぞれには、スプール変位量を検出するためのスプール変位センサ18が取り付けられている。
スプール変位センサ18は、ブームスプール変位センサ18A、アームスプール変位センサ18B、バケットスプール変位センサ18C、左走行モータスプール変位センサ18D、右走行モータスプール変位センサ18E及び旋回スプール変位センサ18Fを含む。
ブームスプール変位センサ18Aは、ブーム制御弁17Aを構成するスプールの変位量を検出する。アームスプール変位センサ18Bは、アーム制御弁17Bを構成するスプールの変位量を検出する。バケットスプール変位センサ18Cは、バケット制御弁17Cを構成するスプールの変位量を検出する。左走行モータスプール変位センサ18Dは、左走行モータ制御弁17Dを構成するスプールの変位量を検出する。右走行モータスプール変位センサ18Eは、右走行モータ制御弁17Eを構成するスプールの変位量を検出する。旋回スプール変位センサ18Fは、旋回制御弁17Fを構成するスプールの変位量を検出する。
操作装置26は、操作者が油圧アクチュエータの操作のために用いる装置である。本実施例では、操作装置26は、キャビン10内に設置され、パイロットポンプ15が吐出する作動油をパイロットライン経由で油圧アクチュエータのそれぞれに対応する制御弁のパイロットポートに供給する。パイロットポートのそれぞれに供給される作動油の圧力(パイロット圧)は、油圧アクチュエータのそれぞれに対応する操作装置26のレバー又はペダルの操作方向及び操作量に応じた圧力である。
吐出圧センサ28は、メインポンプ14が吐出する作動油の圧力を検出する圧力センサである。本実施例では、吐出圧センサ28は、検出した値をコントローラ30に対して出力する。
操作圧センサ29は、操作装置26に対する操作内容を検出するための圧力センサである。本実施例では、操作圧センサ29は、例えば、油圧アクチュエータのそれぞれに対応する操作装置26のレバー又はペダルの操作方向及び操作量を圧力の形で検出し、検出した値をコントローラ30に対して出力する。操作装置26の操作内容は、圧力センサ以外の他のセンサを用いて検出されてもよい。
情報取得装置40はショベルに関する情報を検出する。本実施例では、情報取得装置40は、ブーム角度センサS1、アーム角度センサS2、バケット角度センサS3、機体傾斜センサS4、旋回角速度センサS5、ブームロッド圧センサS6a、ブームボトム圧センサS6b、アームロッド圧センサS6c、アームボトム圧センサS6d、バケットロッド圧センサS6e、バケットボトム圧センサS6f、ブームシリンダストロークセンサS7、アームシリンダストロークセンサS8、バケットシリンダストロークセンサS9、スプール変位センサ18、吐出圧センサ28、及び、操作圧センサ29のうち少なくとも1つを含む。情報取得装置40は、例えば、掘削アタッチメントに関する情報として、ブーム角度、アーム角度、バケット角度、機体傾斜角度、旋回角速度、ブームロッド圧、ブームボトム圧、アームロッド圧、アームボトム圧、バケットロッド圧、バケットボトム圧、ブームストローク量、アームストローク量、バケットストローク量、各制御弁のスプール変位量、メインポンプ14の吐出圧、及び、操作装置26の操作圧のうちの少なくとも1つを取得する。
コントローラ30は、ショベルを制御するための制御装置である。本実施例では、コントローラ30は、例えば、CPU、揮発性記憶装置、不揮発性記憶装置等を備えたコンピュータで構成される。また、コントローラ30は、アタッチメント制御部31に対応するプログラムをROMから読み出して揮発性記憶装置にロードし、対応する処理をCPUに実行させる。
アタッチメント制御部31は、アタッチメントの動きを制御する機能要素である。基本的に、アタッチメントは、複数の操作装置26のそれぞれに対する操作に応じて動く。一方で、アタッチメント制御部31は、操作装置26に対する操作の有無にかかわらず、アタッチメントを動かすことができる。
例えば、掘削アタッチメントは、基本的に、操作装置26としてのブーム操作レバー、アーム操作レバー、及びバケット操作レバーのそれぞれに対する操作に応じて動く。一方で、アタッチメント制御部31は、例えば、ブーム操作レバー、アーム操作レバー、及びバケット操作レバーのそれぞれに対する操作の有無にかかわらず、予め設定された動作パターンに従って掘削アタッチメントを動かすことができる。
動作パターンは、例えば、ブームシリンダ流入量、アームシリンダ流入量、及び、バケットシリンダ流入量のそれぞれの時系列データ(目標値)の組み合わせで表される。時系列データ(目標値)の組み合わせは、例えば、1秒刻みに設定されている。ブームシリンダ流入量は、ブーム制御弁17Aを通ってブームシリンダ7に流入する作動油の流量である。アームシリンダ流入量は、アーム制御弁17Bを通ってアームシリンダ8に流入する作動油の流量である。バケットシリンダ流入量は、バケット制御弁17Cを通ってバケットシリンダ9に流入する作動油の流量である。この場合、将来のある時点における掘削アタッチメントの姿勢は、その時点に至るまでのブームシリンダ流入量、アームシリンダ流入量、及び、バケットシリンダ流入量のそれぞれの推移で決まる。動作パターンは、ブームストローク量、アームストローク量、及び、バケットストローク量のそれぞれの時系列データ(目標値)の組み合わせで表されていてもよい。この場合、ブームシリンダ流入量、アームシリンダ流入量、バケットシリンダ流入量は、ブームストローク量、アームストローク量、バケットストローク量から算出される。或いは、動作パターンは、ブームシリンダ伸縮速度、アームシリンダ伸縮速度、及び、バケットシリンダ伸縮速度のそれぞれの時系列データ(目標値)の組み合わせで表されていてもよい。この場合、ブームシリンダ流入量、アームシリンダ流入量、バケットシリンダ流入量は、ブームシリンダ伸縮速度、アームシリンダ伸縮速度、バケットシリンダ伸縮速度から算出される。
本実施例では、ブーム操作レバーとバケット操作レバーは別個独立の操作レバーとして説明されているが、物理的には同じ1つの操作レバーであり傾倒方向のみが異なるものであってもよい。アーム操作レバーと旋回操作レバーの関係についても同様である。
次に、図3を参照し、掘削アタッチメントの自動制御を実現する制御機構50の一例について説明する。図3は、制御機構50としてのアーム制御機構50Bが取り付けられた操作装置26としてのアーム操作レバー26Bの構成例を示す図である。以下の説明は、制御機構50が取り付けられた他の操作レバーについても同様に適用される。例えば、ブーム制御弁17Aを移動させるためのブーム制御機構50Aが取り付けられたブーム操作レバー、及び、バケット制御弁17Cを移動させるためのバケット制御機構50Cが取り付けられたバケット操作レバー等についても同様に適用される。
制御機構50は、パイロット式スプール弁としての制御弁のスプール位置を調整する機構であり、主に電磁弁51、電磁弁52L、電磁弁52R等を含む。具体的には、図3に示すアーム制御機構50Bは、パイロット式スプール弁としてのアーム制御弁17Bのスプール位置を調整する機構であり、主に電磁弁51B、電磁弁52BL、及び、電磁弁52BR等を含む。
電磁弁51Bは、パイロットポンプ15とアーム操作レバー26Bとを繋ぐ管路に配置される電磁比例減圧弁であり、コントローラ30からの制御電流に応じてその開口面積を増減させる。
電磁弁52BLは、アーム操作レバー26Bとアーム制御弁17Bの左側パイロットポート17Lとを接続する管路C1に配置される電磁弁であり、コントローラ30からの指令に応じてその弁位置を切り替える。管路C1は、管路C11及び管路C12を含む。電磁弁52BLは第1弁位置と第2弁位置とを有する。第1弁位置は、管路C11と管路C12とを連通させ、且つ、管路C3と管路C12との連通を遮断する。第2弁位置は、管路C11と管路C12との連通を遮断し、且つ、管路C3と管路C12とを連通させる。管路C11はアーム操作レバー26Bと電磁弁52BLとを接続する。管路C12は電磁弁52BLとアーム制御弁17Bの左側パイロットポート17Lとを接続する。管路C3は電磁弁51Bと電磁弁52BLとを接続する。
電磁弁52BRは、アーム操作レバー26Bとアーム制御弁17Bの右側パイロットポート17Rとを接続する管路C2に配置される電磁弁であり、コントローラ30からの指令に応じてその弁位置を切り替える。管路C2は、管路C21及び管路C22を含む。電磁弁52BRは第1弁位置と第2弁位置とを有する。第1弁位置は、管路C21と管路C22とを連通させ、且つ、管路C4と管路C22との連通を遮断する。第2弁位置は、管路C21と管路C22との連通を遮断し、且つ、管路C4と管路C22とを連通させる。管路C21はアーム操作レバー26Bと電磁弁52BRとを接続する。管路C22は電磁弁52BRとアーム制御弁17Bの右側パイロットポート17Rとを接続する。管路C4は電磁弁51Bと電磁弁52BRとを接続する。
アーム操作レバー26Bは、閉じ方向に傾けられると管路C1内の作動油の圧力を増大させ、開き方向に傾けられると管路C2内の作動油の圧力を増大させる。管路C1内の作動油の圧力であるアーム閉じパイロット圧は、操作圧センサ29の一例であるアーム閉じパイロット圧センサ29Lによって検出される。管路C2内の作動油の圧力であるアーム開きパイロット圧は、操作圧センサ29の一例であるアーム開きパイロット圧センサ29Rによって検出される。アーム閉じパイロット圧が増大するとスプール弁としてのアーム制御弁17Bが右方向に移動してメインポンプ14とアームシリンダ8のボトム側油室とを連通させてアームシリンダ8を伸張させる。アーム開きパイロット圧が増大するとアーム制御弁17Bが左方向に移動してメインポンプ14とアームシリンダ8のロッド側油室とを連通させてアームシリンダ8を収縮させる。
アタッチメント制御部31は、アームシリンダ8を自動的に伸張させる場合、電磁弁51Bに対してスプール制御指令(電流指令)を出力し、且つ、電磁弁52BLに対して開指令を出力する。スプール制御指令を受けた電磁弁51Bは、そのスプール制御指令に応じた開口面積を実現するように動作する。開指令を受けた電磁弁52BLは第2弁位置に切り替わり、パイロットポンプ15が吐出する作動油を管路C12に流入させる。
同様に、アタッチメント制御部31は、アームシリンダ8を自動的に収縮させる場合、電磁弁51Bに対してスプール制御指令を出力し、且つ、電磁弁52BRに対して開指令を出力する。スプール制御指令を受けた電磁弁51Bは、そのスプール制御指令に応じた開口面積を実現するように動作する。開指令を受けた電磁弁52BRは第2弁位置に切り替わり、パイロットポンプ15が吐出する作動油を管路C22に流入させる。
このように、アタッチメント制御部31は、例えば、予め設定された動作パターンを参照してスプール制御指令を生成し、アーム制御弁17Bのスプール位置(変位)を制御する。アーム制御弁17Bは、例えば、動作パターンを構成するアームシリンダ流入量を実現するように動作する。
また、アタッチメント制御部31は、制御弁をモデル化した推定器として機能する。アタッチメント制御部31は、例えば、情報取得装置40の出力に基づき、制御弁(ここではアーム制御弁17B)を通過する作動油の流量(通過流量)の推定値Q1を導き出す。例えば、式(1)〜式(5)を用いて推定値Q1を導き出す。
式(1)は制御弁を通過する作動油の流量に関する。式(1)において、cは流量係数を表し、Aは制御弁の開口面積を表し、ρは作動油の密度を表し、ΔPは制御弁の前後の圧力差を表す。本実施例では、c及びρは予め記憶されている値である。
式(2)は、制御弁を通過する作動油が制御弁に及ぼす流体力に関する。式(2)において、Fsは制御弁を通過する作動油の流体力を表し、Cdは流量係数を表す。φは制御弁の移動方向と作動油の流れ方向との間の角度である流入角度を表し、kは制御弁を中立弁位置に戻すためのリターンスプリングのばね定数を表す。本実施例では、Cd、φ及びkは予め記憶されている値である。xは通油時(作動油が実際に制御弁を通過するとき)における制御弁のスプール変位量を表し、xNは無通油時(作動油が制御弁を通過しないとき、すなわち、真空中で制御弁が動作するとき)における制御弁のスプール変位量を表す。本実施例では、スプール変位量xは、スプール制御指令に応じた実際のスプール変位量であり、アームスプール変位センサ18Bの検出値である。無通油時スプール変位量xNは、スプール制御指令に応じて決まる理論的なスプール変位量であり、スプール制御指令の値に対応付けて予め記憶されている。このように、式(2)は、流体力Fsがスプール変位量xから一意に決まることを表す。
式(3)は制御弁の開口面積Aが通油時における制御弁のスプール変位量xの関数であることを表す。すなわち、開口面積Aがスプール変位量xから一意に決まることを表す。また、式(4)は、式(2)と式(3)から導き出され、圧力差ΔPがスプール変位量xから一意に決まることを表す。そして、式(5)は式(1)〜式(4)から導き出され、推定値Q1がスプール変位量xから一意に決まることを表す。
このように、アタッチメント制御部31は、アームスプール変位センサ18Bの検出値であるスプール変位量xと式(5)とに基づいて推定値Q1を導き出すことができる。すなわち、アームロッド圧センサS6c、アームボトム圧センサS6d、吐出圧センサ28等の検出値を用いて制御弁(アーム制御弁17B)の前後の圧力差ΔPを算出することなく、推定値Q1を導き出すことができる。そのため、メインポンプ14の吐出圧とアームボトム圧との圧力差をアーム制御弁17Bの前後の圧力差ΔPとみなす場合よりも、アーム制御弁17Bを通過する作動油の流量の推定値Q1を高精度に導き出すことができる。
そして、アタッチメント制御部31は、スプール制御指令に対応する油圧シリンダ流入量の目標値Qtと推定値Q1との差に基づいてスプール制御指令を補正する。本実施例では、アタッチメント制御部31は、QtとQ1の差が小さくなるようにスプール制御指令を補正する。例えば、Q1がQtより大きい場合、制御弁の実際のスプール変位量が小さくなるようにスプール制御指令を補正する。反対に、Q1がQtより小さい場合、制御弁の実際のスプール変位量が大きくなるようにスプール制御指令を補正する。
次に、図4及び図5を参照しながら、コントローラ30のアタッチメント制御部31がアタッチメントの動きを自動的に制御する機能(以下、「自動制御機能」とする。)の一例について説明する。図4及び図5は、自動制御機能のブロック図である。
最初に、アタッチメント制御部31は、図4に示すように、操作傾向に基づいて爪先目標移動速度を生成し、且つ、爪先目標移動方向を決定する。操作傾向は、例えば、レバー操作量に基づいて判定される。爪先目標移動速度は、バケット6の爪先の移動速度の目標値であり、爪先目標移動方向は、バケット6の爪先の移動方向の目標値である。現在の爪先位置は、例えば、ブーム角度β1、アーム角度β2、及び、バケット角度β3に基づいて算出される。
その後、アタッチメント制御部31は、爪先目標移動速度と、爪先目標移動方向と、現在のバケット6の爪先位置の三次元座標(Xe、Ye、Ze)とに基づき、動作パターンとしての単位時間経過後の爪先位置の三次元座標(Xer、Yer、Zer)を算出する。単位時間経過後の爪先位置の三次元座標(Xer、Yer、Zer)は、例えば、設計面に対する目標施工面上の座標である。ここで、設計面及び目標施工面は、稼働前に事前に設定される。なお、本実施例では、爪先位置のY座標の値は移動の前後で不変である。すなわち、単位時間経過後の爪先位置のY座標の値Yerは、現在の爪先位置のY座標の値Yeと同じである。そのため、図4では、Y座標の値に関する記載を省略している。単位時間は、例えば、制御周期の整数倍に相当する時間である。
アタッチメント制御部31は、予め設定された動作パターンに基づき、単位時間経過後の爪先位置の三次元座標(Xer、Yer、Zer)を算出してもよい。
その後、アタッチメント制御部31は、算出したX座標の値XerとZ座標の値Zerに基づき、ブーム4、アーム5及びバケット6の回転動作に関する指令値β1r、β2r、β3rを生成する。指令値β1rは、例えば、爪先位置を三次元座標(Xer、Yer、Zer)に合わせることができたときのブーム角度を表す。同様に、指令値β2rは、爪先位置を三次元座標(Xer、Yer、Zer)に合わせることができたときのアーム角度を表し、指令値β3rは、爪先位置を三次元座標(Xer、Yer、Zer)に合わせることができたときのバケット角度を表す。
アタッチメント制御部31は、例えば、予め設定された計算式を用いて指令値を生成する。本実施例では、アタッチメント制御部31は、以下の式(6)及び式(7)を用い、爪先位置を三次元座標(Xer、Yer、Zer)に合わせることができたときの指令値β1r、β2r、β3rを算出する。
Xe=H0X+L1cosβ1+L2cosβ2+L3cosβ3・・・(6)
Ze=H0z+L1sinβ1+L2sinβ2+L3sinβ3・・・(7)
なお、ブーム長さL1は、ブームフートピン位置とアームピン位置とを結ぶ線分の長さであり、アーム長さL2は、アームピン位置とバケットピン位置とを結ぶ線分の長さであり、バケット長さL3は、バケットピン位置とバケット爪先位置とを結ぶ線分の長さである。また、H0Xは、ブームフートピン位置のX座標の値であり、H0zはブームフートピン位置のZ座標の値である。
また、上述のように、アタッチメントの回動方向のみに関する動作パターンに基づいてブーム4、アーム5及びバケット6を駆動する場合には、Y方向に関しては考慮する必要は無い。なお、X方向はショベルの前後方向を示し、Z方向はX方向に垂直なショベルの高さ方向を示し、Y方向はX方向及びZ方向のそれぞれに垂直な方向を示している。また、X方向として定義されるショベルの前後方向は、ショベルの接地面に平行である必要は無い。例えば、X方向として定義されるショベルの前後方向は、アタッチメントの回動面であるXZ平面内において、ショベルからバケット6が離れたりショベルにバケット6が接近したりする所定の方向であってもよい。
指令値β1r、β2r、β3rの算出は、X座標の値Xer及びZ座標の値Zerが何れも、指令値β1r、β2r、β3rの関数であるという事実に基づく。この場合、アタッチメント制御部31は、例えば、バケット角度β3を不変とし、且つ、ブーム角度β1及びアーム角度β2の双方を変化させるという前提の下で指令値β1r、β2r、β3rを算出する。但し、アタッチメント制御部31は、他の前提の下で指令値β1r、β2r、β3rを算出してもよい。或いは、アタッチメント制御部31は、爪先位置と、ブーム角度β1、アーム角度β2及びバケット角度β3との関係を予め記憶しているテーブルを参照して指令値を生成してもよい。
その後、アタッチメント制御部31は、図5に示すように、ブーム角度β1、アーム角度β2及びバケット角度β3のそれぞれの実測値が、生成された指令値β1r、β2r、β3rとなるようにブーム4、アーム5及びバケット6を動作させる。
具体的には、アタッチメント制御部31は、ブーム角度β1の現在値と指令値β1rとの差Δβ1に対応するブームシリンダパイロット圧指令を生成する。そして、ブームシリンダパイロット圧指令に対応する制御電流をブーム制御機構50Aに対して出力する。ブーム制御機構50Aは、ブームシリンダパイロット圧指令に対応する制御電流に応じたパイロット圧をブーム制御弁17Aに対して作用させる。
その後、ブーム制御機構50Aが生成したパイロット圧を受けたブーム制御弁17Aは、メインポンプ14が吐出する作動油を、パイロット圧に対応する流れ方向及び流量でブームシリンダ7に供給する。
このとき、アタッチメント制御部31は、ブームスプール変位センサ18Aの検出値であるブーム制御弁17Aのスプール変位量に基づいてブームスプール制御指令を生成してもよい。そして、ブームスプール制御指令に対応する制御電流をブーム制御機構50Aに対して出力してもよい。この場合、ブーム制御機構50Aは、ブームスプール制御指令に対応する制御電流に応じたパイロット圧をブーム制御弁17Aに対して作用させる。
ブームシリンダ7は、ブーム制御弁17Aを介して供給される作動油により伸縮する。ブーム角度センサS1は、伸縮するブームシリンダ7によって動かされるブーム4のブーム角度β1を検出する。
その後、アタッチメント制御部31は、ブーム角度センサS1が検出したブーム角度β1を、ブームシリンダパイロット圧指令を生成する際に用いるブーム角度β1の現在値としてフィードバックする。
なお、上述の説明は、指令値β1rに基づくブーム4の動作に関するものであるが、指令値β2rに基づくアーム5の動作、及び、指令値β3rに基づくバケット6の動作にも同様に適用可能である。そのため、指令値β2rに基づくアーム5の動作、及び、指令値β3rに基づくバケット6の動作の流れについてはその説明を省略する。
コントローラ30は、図4に示すように、ポンプ吐出量導出部CP1、CP2、CP3を用い、指令値β1r、β2r、β3rからポンプ吐出量を導き出してもよい。本実施例では、ポンプ吐出量導出部CP1、CP2、CP3は、予め登録されたテーブル等を用いて指令値β1r、β2r、β3rからポンプ吐出量を導き出す。ポンプ吐出量導出部CP1、CP2、CP3が導き出したポンプ吐出量は合計され、合計ポンプ吐出量としてポンプ流量演算部に入力される。ポンプ流量演算部は、入力された合計ポンプ吐出量に基づいてメインポンプ14の吐出量を制御する。本実施例では、ポンプ流量演算部は、合計ポンプ吐出量に応じてメインポンプ14の斜板傾転角を変更することによってメインポンプ14の吐出量を制御する。
このように、コントローラ30は、ブーム制御弁17A、アーム制御弁17B及びバケット制御弁17Cの開口制御とメインポンプ14の吐出量の制御とを同時に実行できる。そのため、ブームシリンダ7、アームシリンダ8及びバケットシリンダ9のそれぞれに適切な量の作動油を供給できる。
また、コントローラ30は、三次元座標(Xer、Yer、Zer)の算出、指令値β1r、β2r及びβ3rの生成、並びに、メインポンプ14の吐出量の決定を1制御サイクルとし、この制御サイクルを繰り返すことで自動制御を実行する。また、コントローラ30は、ブーム角度センサS1、アーム角度センサS2及びバケット角度センサS3のそれぞれの出力に基づいて爪先位置をフィードバック制御することで自動制御の精度を向上させることができる。具体的には、ブームシリンダ7、アームシリンダ8及びバケットシリンダ9のそれぞれに流入する作動油の流量をフィードバック制御することで自動制御の精度を向上させることができる。
次に、図6を参照し、掘削アタッチメントの動きに関するパラメータの関係について説明する。図6は、掘削アタッチメントの動きに関するパラメータの関係を示す図である。
図6に示すように、ある時点におけるバケット6の爪先の位置座標(X、Y、Z)が決まると、その時点におけるブームストローク量、アームストローク量、及び、バケットストローク量が一意に決まる。これは、その時点におけるブーム角度、アーム角度、及び、バケット角度が一意に決まることを意味する。
そして、任意の2つの時点のそれぞれにおけるブームストローク量、アームストローク量、及び、バケットストローク量が決まると、それら2つの時点間のブームシリンダ伸縮速度、アームシリンダ伸縮速度、及び、バケットシリンダ伸縮速度が一意に決まる。
更に、ブームシリンダ伸縮速度、アームシリンダ伸縮速度、及び、バケットシリンダ伸縮速度が決まると、ブームシリンダ流入量、アームシリンダ流入量、及び、バケットシリンダ流入量が一意に決まる。
そして、ブームシリンダ流入量、アームシリンダ流入量、及び、バケットシリンダ流入量が決まると、ブーム制御弁17Aのスプール変位(開口面積)、アーム制御弁17Bのスプール変位(開口面積)、及び、バケット制御弁17Cのスプール変位(開口面積)が一意に決まる。
従って、アタッチメント制御部31は、ブーム制御弁17A、アーム制御弁17B、及び、バケット制御弁17Cのそれぞれのスプール変位(開口面積)を高精度に制御することで、バケット6の爪先の位置を高精度に制御できる。
次に、図7を参照し、アタッチメント制御部31が掘削アタッチメントを自動制御する際の処理(以下、「アタッチメント自動制御処理」とする。)の一例について説明する。図7は、アタッチメント自動制御処理の一例を示す制御フロー図である。アタッチメント制御部31は、所定周期で繰り返しこの処理を実行する。
図7の例では、アタッチメント自動制御処理は、パイロット式スプール弁を備えたショベルで実行される。しかしながら、アタッチメント自動制御処理は、例えば、電磁式のスプール型の制御弁(電磁スプール弁)を備えたショベルで実行されてもよい。
最初に、アタッチメント制御部31は、変位指令を生成する(ステップST1(図4参照))。変位指令は、掘削アタッチメントの所定部位の変位に関する指令であり、例えば、バケット6の爪先の変位量及び変位方向に関する指令である。本実施例では、変位指令は、ブームシリンダ7、アームシリンダ8、及び、バケットシリンダ9のそれぞれの変位(伸縮)の大きさを表す変位目標値である。アタッチメント制御部31は、不揮発性記憶装置等に記憶された動作パターンを参照して変位指令を生成する。アタッチメント制御部31は、例えば、動作パターンを構成する油圧シリンダ伸縮速度(ブームシリンダ伸縮速度、アームシリンダ伸縮速度、及び、バケットシリンダ伸縮速度)のそれぞれから変位指令を生成する。
その後、アタッチメント制御部31は、油圧シリンダ流入量の目標値を算出する(ステップST2)。本実施例では、アタッチメント制御部31は、ステップST1で生成した変位指令としての変位目標値と、シリンダストロークセンサの検出値に基づいて導き出される実変位との差を算出し、その差に基づいて油圧シリンダ流入量(ブームシリンダ流入量、アームシリンダ流入量、及び、バケットシリンダ流入量)の目標値Qtを算出する。目標値Qtは、変位目標値が実変位よりも大きいほど大きくなるように算出される。
その後、アタッチメント制御部31は、スプール制御指令を生成する(ステップST3)。本実施例では、アタッチメント制御部31は、油圧シリンダ流入量の目標値Qtに基づいてスプール制御指令を生成する。制御弁がパイロット式スプール弁である場合、スプール制御指令は、目標値Qtを実現するパイロット圧に対応する。具体的には、目標値Qtに等しい推定値Q1をもたらすスプール変位量x及び無通油時スプール変位量xNを実現するパイロット圧に対応する。制御弁が電磁スプール弁である場合、スプール制御指令は、目標値Qtを実現する制御電流(パイロット電流)に対応する。具体的には、目標値Qtに等しい推定値Q1をもたらすスプール変位量x及び無通油時スプール変位量xNを実現するパイロット電流に対応する。
そして、アタッチメント制御部31は、生成したスプール制御指令をアーム制御機構50Bの電磁弁51Bに対して出力する。油圧シリンダ流入量とスプール制御指令との対応関係は、例えば、式(5)の関係に基づくものであり、不揮発性記憶装置等に予め記憶されている。具体的には、アタッチメント制御部31は、ブームシリンダ流入量の目標値に基づいてブーム制御弁17Aに対するスプール制御指令を生成する。アーム制御弁17B及びバケット制御弁17Cについても同様である。そして、ブーム操作レバー、アーム操作レバー、及び、バケット操作レバーのそれぞれに取り付けられた制御機構50の電磁弁51に対してスプール制御指令を別々に供給する。
スプール制御指令が電磁弁51に対して出力されると、各油圧シリンダに対応する制御弁のスプールが変位する(ステップST4)。本実施例では、ブーム制御弁17A、アーム制御弁17B、バケット制御弁17Cのそれぞれにおけるスプールが変位する。ブーム制御弁17Aを構成するスプールの変位は、ブームスプール変位センサ18Aで検出される。アーム制御弁17Bを構成するスプールの変位は、アームスプール変位センサ18Bで検出される。バケット制御弁17Cを構成するスプールの変位は、バケットスプール変位センサ18Cで検出される。
スプールが変位すると、制御弁を通過する作動油の流れ、すなわち、油圧シリンダに流入する作動油の流れが生成される(ステップST5)。本実施例では、スプール制御指令に応じて変位したスプールによって形成される開口を通ってブームシリンダ7、アームシリンダ8、及び、バケットシリンダ9のそれぞれに流入する作動油の流れが生成される。
油圧シリンダに作動油が流入すると、油圧シリンダは伸縮する(ステップST6)。本実施例では、ブームシリンダ7、アームシリンダ8、及び、バケットシリンダ9のそれぞれが、作動油の流入量に応じた速度vで伸縮する。
その後、アタッチメント制御部31は、油圧シリンダの変位を算出する(ステップST7)。本実施例では、シリンダストロークセンサの検出値に基づいて導き出された油圧シリンダ伸縮速度を積分(積算)して油圧シリンダの変位を算出する。算出された変位は、油圧シリンダの実変位としてステップST2にフィードバックされる。
スプールの変位を検出した後、アタッチメント制御部31は、スプール制御指令を補正する(ステップST8)。本実施例では、アタッチメント制御部31は、上述の式(5)で算出される推定値Q1と、油圧シリンダ流入量の目標値Qtとに基づいてスプール制御指令を補正する。図7の「Qt'」は、目標値Qtをもたらすための補正後の電流指令を表し、「f(Qt−Q1)」は、QtとQ1の差に基づいてスプール制御指令が補正されることを表す。このようにして、アタッチメント制御部31は、ブーム制御弁17A、アーム制御弁17B、及び、バケット制御弁17Cのそれぞれに関するスプール制御指令を補正する。
このように、アタッチメント制御部31は、制御弁のスプール変位(開口面積)に基づいて算出される推定値Q1をフィードバックして制御弁を通過する流量を制御する。そのため、アタッチメント制御部31は、油圧シリンダに流入する作動油の実際の流量をより正確に目標値Qtに合わせることができる。その結果、アタッチメント制御部31は、例えば、バケット6の姿勢、及び、バケット6の爪先の位置をより正確に制御することができる。或いは、予め設定された動作パターンに沿って掘削アタッチメントをより正確に動作させることができる。
また、アタッチメント制御部31は、フィードバック制御を二重ループにしたカスケード制御を実行する。具体的には、制御弁のスプール変位(開口面積)に基づいて算出される推定値Q1をフィードバックして制御弁を通過する流量を制御し、更に、油圧シリンダの実変位をフィードバックして掘削アタッチメントの所定部位の変位を制御する。そのため、アタッチメント制御部31は、油圧シリンダに流入する作動油の流量をより正確に目標値に合わせることができる。また、掘削アタッチメントの所定部位の変位をより正確に目標値に合わせることができる。その結果、アタッチメント制御部31は、例えば、バケット6の姿勢、及び、バケット6の爪先の位置をより正確に制御することができる。或いは、予め設定された動作パターンに沿って掘削アタッチメントをより正確に動作させることができる。すなわち、作業効率及び目標面(掘削動作によって形成される地面の目標形状)に対する仕上げ精度を向上させることができる。
次に、図8を参照し、図3に示すようなパイロット式スプール弁としてのアーム制御弁17Bに関するスプール制御指令の補正について説明する。図8は、アーム制御弁17Bに作用するパイロット圧Pとスプール変位量xとの関係の一例を示す図である。具体的には、図8の実線がパイロット圧Pとスプール変位量xとの関係を示し、点線がパイロット圧Pと無通油時スプール変位量xNとの関係を示す。電磁弁51Bに対して出力されるスプール制御指令は、アームシリンダ流入量の目標値Qtを実現するパイロット圧Ptに対応する。例えば、パイロット圧Ptが大きいほどスプール制御指令は大きくなる。
アームシリンダ流入量の目標値Qtに対応する目標スプール変位量xtは、予め不揮発性記憶装置に記憶されている。メインポンプ14の斜板傾転角、すなわち、レギュレータ13に対する制御指令の値に基づいて算出されてもよい。目標スプール変位量xtと目標スプール変位量xtに対応するパイロット圧Ptとの関係は、図8に示すような関係として、予め不揮発性記憶装置に記憶されている。更に、パイロット圧Ptとパイロット圧Ptに対応するスプール制御指令の値との関係も予め不揮発性記憶装置に記憶されている。すなわち、目標値Qtに対応するスプール制御指令の値は、当初は、不揮発性記憶装置から読み出され、或いは、レギュレータ13に対する制御指令の値に基づいて算出される。アタッチメント制御部31は、このスプール制御指令を電磁弁51Bに対して出力し、アーム制御弁17Bにパイロット圧Ptを作用させる。
アーム制御弁17Bにパイロット圧Ptが作用すると、アーム制御弁17Bのスプールは、作動油の流体力によるスプール変位量xS(破線で描かれた両方向矢印参照。)と、無通油時スプール変位量xN(一点鎖線で描かれた両方向矢印参照。)との合計だけ変位する。図8の例は、アーム制御弁17Bのスプールが、作動油の流体力によるスプール変位量xSだけ無通油時スプール変位量xNよりも大きく変位する様子を示している。但し、アーム制御弁17Bのスプールの変位は、作動油の流体力によるスプール変位量xSだけ無通油時スプール変位量xNより小さい場合もある。
このときのアームスプール変位センサ18Bの検出値であるスプール変位量xが目標スプール変位量xtより大きい場合、アタッチメント制御部31は、スプール制御指令が小さくなるように所定の補正幅でスプール制御指令を低減補正する。パイロット圧Pを小さくしてスプール変位量xを小さくするため、すなわち、目標スプール変位量xtに近づけるためである。反対に、アームスプール変位センサ18Bの検出値であるスプール変位量xが目標スプール変位量xtより小さい場合、アタッチメント制御部31は、スプール制御指令が大きくなるように所定の補正幅でスプール制御指令を増大補正する。パイロット圧Pを大きくしてスプール変位量xを大きくするため、すなわち、目標スプール変位量xtに近づけるためである。
所定の補正幅は、アーム制御弁17Bを通過する作動油の流量(通過流量)の推定値Q1とアームシリンダ流入量の目標値Qtとに基づいて決定される。推定値Q1は、スプール制御指令の大きさに応じて一意に決まる無通油時スプール変位量xNと、アームスプール変位センサ18Bの検出値であるスプール変位量xと、式(5)とに基づいて算出される。所定の補正幅は、典型的には、推定値Q1と目標値Qtとの差が大きいほど大きい。
このようにして、アタッチメント制御部31は、作動油の流体力によるスプール変位量xSと無通油時スプール変位量xNとの合計であるスプール変位量xを目標スプール変位量xtに一致させるようにする。なお、作動油の流体力によるスプール変位量xSは、メインポンプ14の吐出量等に応じて変化するが、無通油時スプール変位量xNは、スプール制御指令の大きさに応じて一意に決まる。
上述のように、本発明の実施例に係るショベルは、制御弁(例えばアーム制御弁17B)を通過する作動油の流量である通過流量を制御するコントローラ30を有する。そして、コントローラ30は、通過流量の目標値Qtとアームスプール変位センサ18Bの検出値に基づいて算出される通過流量の推定値Q1とに基づいて通過流量を制御する。コントローラ30は、アーム制御弁17Bを構成するスプールの前後の圧力差ΔPを用いずに通過流量の推定値Q1を算出する。そのため、メインポンプ14の吐出圧とアームシリンダ8における作動油の圧力(シリンダ圧)との圧力差をスプールの前後の圧力差ΔPとした上で通過流量を推定する場合よりも、アームシリンダ8に流入する作動油の流量を高精度に制御できる。
コントローラ30は、望ましくは、制御弁(例えばアーム制御弁17B)を通過する作動油がその制御弁に及ぼす流体力に基づいて通過流量の推定値を算出する。典型的には、アームスプール変位センサ18Bの検出値を式(5)のスプール変位量xに代入して推定値Q1を算出する。そのため、コントローラ30は、スプールの前後の圧力差ΔPを特定することなく、通過流量を推定できる。すなわち、メインポンプ14の吐出圧とシリンダ圧との圧力差をスプールの前後の圧力差ΔPとする手法等によってスプールの前後の圧力差ΔPを特定する際に不可避的に含まれてしまう誤差の影響を回避できる。その結果、スプールの前後の圧力差ΔPを特定する場合よりも、アームシリンダ8に流入する作動油の流量を高精度に制御できる。また、流体力を考慮するため、自動的に或いは半自動的にアームシリンダ8を僅かに伸縮させる場合であっても、アームシリンダ8に流入する作動油の流量を高精度に制御できる。
本発明の実施例に係るショベルは、望ましくは、油圧アクチュエータに関する操作装置26の操作量とは独立して、パイロット式スプール弁である制御弁に作用するパイロット圧を調整可能な電磁弁を備えている。例えば、アームシリンダ8に関する操作装置26であるアーム操作レバー26Bの操作量とは独立して、アーム制御弁17Bに作用するパイロット圧を調整可能な電磁弁51Bを備えている。電磁弁51Bは、基本的には、アーム操作レバー26Bの操作量に応じたパイロット圧をアーム制御弁17Bに対して出力する。その上で、電磁弁51Bは、必要に応じて、アーム操作レバー26Bの操作量とは無関係に、アーム制御弁17Bに対するパイロット圧を増減できるように構成されている。この構成により、電磁弁51Bは、アームシリンダ8を自動的に或いは半自動的に伸縮させることができる。
コントローラ30は、油圧アクチュエータに関する操作装置26の操作量とは独立して、電磁スプール弁である制御弁に対する制御電流を調整できるように構成されていてもよい。例えば、コントローラ30は、基本的には、アーム操作レバー26Bの操作量に応じたパイロット電流を電磁スプール弁としてのアーム制御弁17Bに対して出力する。その上で、コントローラ30は、必要に応じて、アーム操作レバー26Bの操作量とは無関係に、アーム制御弁17Bに対するパイロット電流を増減できるように構成されている。この構成により、コントローラ30は、アームシリンダ8を自動的に或いは半自動的に伸縮させることができる。
アタッチメント制御部31は、ショベルを制御するための制御装置であるコントローラ30で動作する機能要素として構成されているが、コントローラ30とは別の油圧制御装置として構成されていてもよい。この場合、油圧制御装置は、制御弁を通過する作動油の流量である通過流量を制御する独立した装置として構成されていてもよい。また、制御機構50に組み込まれていてもよい。そして、油圧制御装置は、通過流量の目標値と制御弁のスプールの変位を検出するスプール変位センサの検出値に基づいて算出される通過流量の推定値とに基づいて通過流量を制御する。例えば、油圧制御装置は、アーム制御弁17Bを構成するスプールの前後の圧力差ΔPを用いずに通過流量の推定値Q1を算出した上で、通過流量の目標値Qtと推定値Q1とに基づいて通過流量を制御する。そのため、メインポンプ14の吐出圧とアームシリンダ8における作動油の圧力との圧力差をスプールの前後の圧力差ΔPとした上で通過流量を推定する場合よりも、アームシリンダ8に流入する作動油の流量を高精度に制御できる。
以上、本発明の好ましい実施例が説明された。しかしながら、本発明は、上述した実施例に限定されることはない。上述した実施例は、本発明の範囲を逸脱することなしに、種々の変形、置換等が適用され得る。また、上述の実施例を参照して説明された特徴のそれぞれは、技術的に矛盾しない限り、適宜に組み合わされてもよい。
例えば、上述の実施例では、アタッチメント自動制御処理は、掘削アタッチメントを全自動で動作させるために実行される。しかしながら、アタッチメント自動制御処理は、例えば、掘削アタッチメントを半自動で動作させるために実行されてもよい。アタッチメント自動制御処理は、例えば、整地作業等のために操作者がアーム閉じ操作を行っているときに、バケット6の爪先が目標面(水平面)に沿って移動するようブーム4を自動的に上昇させる際に実行されてもよい。この場合、動作パターンを構成するブームシリンダ流入量(目標値)は、例えば、アーム操作レバー26Bに関する操作圧センサ29の検出値、アームシリンダストロークセンサS8の検出値等から導き出されてもよい。
また、上述の実施例では、油圧式パイロット回路を備えた油圧式操作レバーが開示されている。具体的には、アーム操作レバー26Bに関する油圧式パイロット回路では、パイロットポンプ15からリモコン弁27Bへ供給される作動油が、アーム操作レバー26Bの傾倒によって開閉されるリモコン弁27Bの開度に応じた流量で、アーム制御弁17Bのパイロットポートへ伝達される。
但し、このような油圧式パイロット回路を備えた油圧式操作レバーではなく、電気式パイロット回路を備えた電気式操作レバーが採用されてもよい。この場合、電気式操作レバーのレバー操作量は、電気信号としてコントローラ30へ入力される。また、パイロットポンプ15と各制御弁のパイロットポートとの間には電磁弁が配置される。電磁弁は、コントローラ30からの電気信号に応じて動作するように構成される。この構成により、電気式操作レバーを用いた手動操作が行われると、コントローラ30は、レバー操作量に対応する電気信号によって電磁弁を制御してパイロット圧を増減させることで各制御弁を移動させることができる。なお、各制御弁は電磁スプール弁で構成されていてもよい。この場合、電磁スプール弁は、電気式操作レバーのレバー操作量に対応するコントローラ30からの電気信号に応じて動作する。