図1は実施例1の傾斜自動制御装置を搭載したトラクタの側面図、図2は傾斜自動制御装置の接続状態の説明図、図3は傾斜制御のフローチャート、図4は傾斜センサ安定判断のフローチャート、図5は角速度センサ安定判断のフローチャート、図6は傾斜シリンダ制御のフローチャート、図7は傾斜自動制御の実例の線図である。
図1に示すように、走行機体(トラクタ10)の後部には昇降リンク機構20が接続され、昇降リンク機構20の後部には、回転刃31を有する作業機(ロータリ耕耘ユニット)30が連結されている。昇降リンク機構20は、1個のアッパリンク21と左右一対のロアリンク22を備える三点式のもので、作業機30以外にも種々の作業機を選択して装着可能である。
昇降リンク機構20のロアリンク22は、リフトロッド24を介してリフトアーム23に吊り下げ支持され、リフトアーム23は、その根元側に配置したリフトシリンダ27の伸長/収縮動作によって上下に回動される。したがって、リフトシリンダ27を油圧駆動して作業機30を上昇/下降動作させたり、任意の耕耘深さを設定したりすることができる。
また、トラクタ10の進行方向左側のリフトロッド24は、リフトロッドシリンダ25を介してリフトアーム23に吊り下げ支持されており、リフトロッドシリンダ25を油圧駆動して左右のリフトロッド24の長さを異ならせることによって、作業機30の左右傾き角度を任意に設定可能である。
トラクタ10の運転席15に隣接させて操作パネル16が配置され、操作パネル16の下方に傾斜自動制御装置40が配置されている。操作パネル16には、リフトアーム23を手動で昇降動作させるポジションレバー11と、作業に関する各種設定や切替えを行うためのスイッチやボリュームが多数配置されている。
図2に示すように、傾斜自動制御装置40は、マイクロコンピュータ回路(MPU、RAM、ROM、IO回路等を含む)を用いて構成される電子回路であって、ポジションレバー11による設定高さを目標として作業機30を自動的に昇降制御するポジション制御、図示しない耕深設定ボリュームの設定耕深を目標として作業機30を自動的に昇降制御する耕深自動制御、傾斜設定ボリューム43の設定傾斜角度を目標として作業機30を自動的に傾斜制御する傾斜自動制御等の制御を実行する。
傾斜自動制御装置40には、自動切替ボリューム41、作業機切替ボリューム42、傾き設定ボリューム43、操作スイッチ44、エンジン回転センサ45、車軸回転センサ46、リモコンスイッチ47、リフトアームセンサ26、リフトロッドセンサ28、ポジションレバーセンサ29、傾斜センサ13、角速度センサ14、リレーユニット57、ソレノイドバルブ51、52等が接続されている。
自動切替ボリューム41は、操作パネル16に配置された自動切替ツマミに連動させた可変抵抗器であって、傾斜自動制御のON/OFF等に対応させた複数の固定ポジションを判別させる。自動切替スイッチでOFFが設定されると作業機30の左右傾斜の自動調整は実行されないが、ONが設定されるとスピーカー54を通じて短い切替音が出力されて自動調整が開始され、自動調整状態を通知するランプ55が点灯される。
作業機切替ボリューム42は、操作パネル16に配置された作業機切替ツマミに連動させた可変抵抗器であって、トラクタ10に連結する作業機の種類に対応させた複数の固定ポジションを判別させる。
傾き設定ボリューム43は、操作パネル16に配置された傾斜角度設定ツマミに連動させた可変抵抗器であって、作業者が傾斜角度設定ツマミを回転させて設定した作業機30の傾斜角度に対応するアナログ電圧を出力する。操作スイッチ群44は、傾斜角度調整の作動感度を設定する等、傾斜自動制御の付属機能を設定するものである。
エンジン回転センサ45は、トラクタ10のエンジン出力軸に取り付けられたパルスエンコーダであって、エンジン回転速度に応じた周波数のパルス電圧を出力する。車軸回転センサ46は、トラクタ10の後輪軸に取り付けられたパルスエンコーダであって、トラクタ10の対地速度(走行速度)に応じた周波数のパルス電圧を出力する。リモコンスイッチ47は、リフトロッドシリンダ25を運転席15の外から手動で動作させるスイッチである。
リフトアームセンサ26は、図1にも示すように、リフトアーム23の根元に配置された可変抵抗器であって、リフトアーム23の回動角に応じた電圧信号を出力する。リフトロッドセンサ28は、リフトロッドシリンダ25に隣接配置された測長センサであって、リフトロッドシリンダ25の引出し長さに応じた電圧信号を出力する。ポジションレバーセンサ29は、ポジションレバー11の根元に配置された可変抵抗器であって、ポジションレバー11の回動角に対応した電圧信号を出力する。
傾斜センサ13は、トラクタ10の後輪軸の近傍に配置された重力式の傾斜角度センサであって、車体のローリング傾斜角度に対応した電圧信号を出力する。角速度センサ14は、傾斜自動制御装置40の箱内に格納された角速度センサであって、車体のローリング角速度に応じた電圧信号を出力する。
ステアリング切れ角検出スイッチ56は、トラクタ10のステアリング12が回転されて前輪切れ角が左右一定角度以上になるとONするように配置されたリミットスイッチである。リレーユニット57は、ステアリング12が操作されてステアリング切れ角検出スイッチ56のいずれかがONしている間、一定の電圧信号を出力する。
ソレノイドバルブ51は、リフトロッドシリンダ25の伸長方向にオイルを流し、ソレノイドバルブ52は、リフトロッドシリンダ25の短縮方向にオイルを流す。プライオリティバルブ53は、ソレノイドバルブ51、52へのオイル供給を許可(または停止)する。
以上のように構成された実施例1の傾斜自動制御装置40では、自動切替ボリューム41がONに設定されて左右傾斜角度の自動調整が選択され、作業機切替ボリューム42はロータリ式の作業機30に設定されている。このとき、傾斜自動制御装置40は、傾斜センサ13および角速度センサ14の出力に基づいてトラクタ10の刻々の傾斜角を演算し、リフトロッドセンサ28の出力を参照しつつ傾き設定ボリューム43に設定された傾斜角度を目標にして刻々の制御量を演算する。そして、傾斜自動制御装置40は、この制御量に基づいてソレノイドバルブ51、52を作動させることにより、リフトロッドシリンダ25を伸長/短縮して作業機30の傾斜角を制御する。
傾斜自動制御装置40は、図3に示すように傾斜制御フロー(110)を実行する。すなわち、ステップ111で作業機30が上昇状態でないと判定され、ステップ112で最後の作業機下降から限界時間TAが経過していると判定され、ステップ113で傾斜センサ13の出力が安定していると判定され、さらに、ステップ114で角速度センサ14の出力が安定していると判定された場合についてだけ、ステップ115へ進んで、図6に示すように、作業機30の自動傾斜制御を実行させる。
ステップ111では、ポジションレバーセンサ29とリフトアームセンサ26の出力が参照され、操作者が自らの意図で作業機30を上昇させて作業を中断させているか否かを判定する。
ステップ112では、リフトアームセンサ26が最後に下降位置へ回動されてからの経過時間が参照され、この経過時間が限界時間TA(2秒間)を越えたか否かを判定する。
ステップ113では、図4に示すように、そのステップ121で今回の傾斜角と前回の傾斜角が参照される。そして、両者の差の絶対値が偏差α未満であればステップ122へ進んで傾斜センサ13の出力が安定していると判定するが、偏差α以上であればステップ123へ進んで不安定であると判定する。なお、傾斜センサ13の出力は200msecごとにサンプリングされて傾斜角が演算されている。
ステップ114では、図5に示すように、そのステップ131で、今回演算された角速度が限界角速度βと比較される。そして、限界角速度β未満であればステップ132へ進んで角速度センサ14の出力が安定していると判定するが、限界角速度β以上であればステップ133へ進んで不安定であると判定する。
ステップ115では、図6に示すように、ステップ141でリレーユニット57の出力が参照され、ステアリング切れ角検出スイッチ56がONしているか否か、言い換えれば旋回に匹敵するステアリング操作がなされたか否かが判定される。そして、大きなステアリング操作が確認されるとステップ145へ進んで、車軸センサ46の出力が参照されて車軸回転速度が限界速度S未満か否かが判定され、限界速度S以上であれば傾斜角の演算が実行されず、従って、ステップ144へ進んでもソレノイドバルブ51、52は駆動されない。
しかし、ステップ141で大きなステアリング操作が確認されない場合や、大きなステアリング操作が確認されてもステップ145で限界速度S未満と判定された場合にはステップ142へ進んで、今回の角速度が基準値を中心とする不感帯角速度(不感帯γ)の範囲か否かを判定する。不感帯γは、車軸センサ46の出力から演算した走行速度Vに応じて挿入図150に示すように設定されている。すなわち走行速度Vが2.5km/hr以下では1.5度、6.0km/hr以上では2.25度、その中間の速度範囲ではこれら2つの角度を結んで直線的に増加する。
そして、今回の角速度が不感帯γの範囲であれば、ステップ146へ進んで、角速度の現在までの不感帯滞在時間が参照され、これが限界時間TBを越えていればステップ147へ進んで傾斜センサ13の出力から傾斜角が演算される。
しかし、ステップ142で今回の角速度が不感帯γの範囲に収まらないと判定された場合とステップ146で限界時間TBを越えていないと判定された場合とについては、ステップ143へ進んで、角速度センサ14の出力を積分して傾斜角が演算される。ステップ144では、このようにして演算された傾斜角を用いてソレノイド51、52を駆動させる。
以上のように構成された実施例1の傾斜自動制御装置では、図7に示すように、時刻t1で作業機30が下降されると限界時間TAが経過した時刻t2まで傾斜角の自動制御が中断し、その後、傾斜センサ13および角速度センサ14の出力の安定を確認して時刻t3で傾斜角の自動制御を再開する。
その後、時刻t4でトラクタ10が傾斜し始めると、傾斜センサ13の出力は120〜250msec遅れて傾斜に反応する。しかし、角速度センサ14は直ちに角速度を検知し始めるから、傾斜角度の演算値は遅れなく追従しており、この演算値に基づいて制御出力が出力されてリフトロッドシリンダ25の引き出し長さが調整される。
その後、時刻t5でトラクタ10の傾斜が停止すると加速度センサ14の出力は不感帯γ以下となって演算値は変化しなくなるが、限界時間TBが経過する時刻t6で傾斜センサ13の出力に基づく制御へとスイッチされて、その結果、若干の傾斜角度調整が実行される。
その後、時刻t7で再び角速度センサ14の出力が不感帯γを突破すると、角速度センサ14の出力に基づいて遅滞なく傾斜角度調整が開始され、再び時刻t8で不感帯γ以下となって限界時間TBが経過した時刻t9で傾斜センサ13の出力に基づく制御へとスイッチされて、その結果、同様に若干の傾斜角度調整が実行される。
その後、角速度センサ14の出力が不感帯γを越えるごとに傾斜角度調整が実行されるが、時刻t10で作業者が作業機30を持ち上げると傾斜角度の自動制御は中断され、時刻t11からステアリング12が操作されてトラクタ10が横揺れするなどしても、これによる傾斜センサ13の出力の乱れは制御出力に反映されない。
実施例1の傾斜自動制御装置によれば、作業機30の下降を検知しても限界時間TAが経過するまで傾斜角の自動制御それ自体を中断するから、作業機30の下降、接地に伴って発生する傾斜センサ13の誤出力が闇へ葬り去られて自動制御の誤動作が回避される。
すなわち、特許文献1〜4に記載された傾斜自動制御装置は、傾斜自動制御が選択されていれば、最低限、傾斜センサの出力に基づく制御を持続させていたが、実施例1の傾斜自動制御装置では、作業中断時、および再開時の傾斜センサの出力不安定にも着目し、そのような出力不安定が再開直後の傾斜自動制御に影響を与えないようにしている。
また、限界時間TAが経過しても傾斜センサ13および角速度センサ14の出力が安定するまで傾斜角度の自動制御を再開しないから、正確な傾斜角度の演算値で傾斜角度の自動制御を再開でき、傾斜センサ13と角速度センサ14の誤出力に基づく自動制御再開時の誤動作が回避される。
また、不感帯γを越えるような角速度が検知された場合について角速度センサの出力に基づく傾斜角度の演算を行い、不感帯γの範囲では傾斜センサの出力に基づく傾斜角度の演算を行うから、図6に示すように、トラクタ10の姿勢が急変した際には角速度センサの高い応答性を活用した追従性の高い傾斜角度制御が実行される一方、トラクタ10の姿勢が安定している期間は、積算誤差を排除した、傾斜センサによる正確な傾斜角度制御が実行される。
また、角速度センサ14の出力が不感帯γに復帰しても、限界時間TBを待って傾斜センサ13の出力に基づく制御へスイッチするから、傾斜センサ13の出力がトラクタ10の傾斜へ完全に追従するまでの不正確な傾斜角に基づいて作業機30に誤った傾斜角が設定されないで済む。
また、大きなステアリング切れ角が検知された際には車軸回転速度を検知して、車軸回転速度が限界速度Sを越えていれば傾斜角の演算値が更新されず、結果的に傾斜角の自動制御が中断されるから、高速旋回に伴って発生する傾斜センサ13と角速度センサ14の誤出力が闇へ葬り去られて自動制御の誤動作が回避される。
なお、実施例1の傾斜自動制御装置は、実際には、図2に示される以外のスイッチ、ボリューム、センサも接続されていて、作業機30の傾斜角度を制御するのみならず、ポジション制御、耕深自動制御を始めとする各種の制御を時分割的に実行する電子回路であるが、実施例1で説明されない他の制御については、特許文献1、2、3、4等に記載されている種々の制御方法を採用することができる。
図8は実施例2の傾斜自動制御装置における制御全体のフローチャート、図9は初期設定のフローチャート、図10は平滑初期設定と基準初期設定のフローチャート、図11は接続判断のフローチャート、図12は接続判断におけるタイマ割込処理のフローチャート、図13は平滑処理のフローチャート、図14は演算不感帯設定のフローチャート、図15は切替制御のフローチャート、図16は切替制御における部分的なフローチャート、図17は角度演算のフローチャート、図18は傾斜制御のフローチャート、図19は基準データ処理のフローチャート、図20は基準データ処理における部分的なフローチャート、図21はヒステリシス設定の線図、図22は傾斜制御における不感帯設定の線図、図23は基準データ処理における不感帯設定の線図である。
実施例2の傾斜自動制御装置では、図1に示されるトラクタ10に搭載され、図2に示されるように入出力を接続された傾斜自動制御装置40に搭載される自動傾斜制御のプログラム、すなわち処理フローを図8〜20のように変更して実現される。
図8に示すように、傾斜自動制御装置40は、ステップ210〜370で構成されるメインフロー(200)に従って自動傾斜制御を実行する。
ステップ210では、図9に示すように、各種演算処理の初期設定を行う。続くステップ220では、図11、図12に示すように、角速度センサの接続判断を行う。続くステップ250では、図13、14に示すように、傾斜センサ13の出力を平均して基準データを作成する平滑処理を行う。続くステップ280では、図14に示すように、角速度センサ14の出力を積算する際の判断に使用される演算不感帯設定を行う。続くステップ310では、図15、16に示すように、トラクタ10の状況に応じて角速度センサ14に基づく制御と傾斜センサ13に基づく制御とを選択する切替制御を行う。続くステップ360では、図17に示すように、角速度センサ14の出力を積算する角度演算を行う。続くステップ370では、図18に示すように、演算された傾斜角度に基づいて出力を制御する傾斜制御を行う。
図9に示すように、初期設定フロー(210)では、ステップ211で初期設定が必要か否かを判定し、自動切替スイッチがONされる等して必要と判断されればステップ212〜216に示されるように、各種演算処理の初期設定を行う。ステップ212では演算開始フラグと積算フラグがリセットされる。
図9のステップ213では、図10に示すように、平滑初期設定フロー(240)が実行される。すなわち、ステップ241では、平滑データとして傾斜センサ13の基準値が採用され、ステップ242では、平滑演算データの設定が開始され、ステップ244では平滑フラグがクリアされる。
図9のステップ214では、図10に示すように、基準初期設定フロー(390)が実行される。すなわち、ステップ391では基準シフトの設定が開始され、ステップ392ではベースの設定が開始され、ステップ393では制御カウンタがクリアされる。
図9に示すように、ステップ215では、更新確認タイマ、タイムアウト、開始遅延タイマの各設定が開始される。ステップ216では、演算不感帯の設定が開始される。
図11に示すように、接続判断フロー(220)では、ステップ221で角速度センサ14の出力値が正常範囲か否かが判定される。正常範囲は、図21に示すように、角速度センサの出力0〜5Vの範囲中0.1〜4.9Vの範囲に定められ、正常範囲の上下0.2Vの範囲にヒステリシス範囲を設けている。ここで、正常範囲外と判断されればステップ224へ進んで範囲外フラグがONされ、さらに、ステップ225へ進んでセンサ外れタイマが限界時間を越えたか否かが判定される。センサ外れタイマは、図12に示すように、タイマ割込み処理として範囲外フラグのON経過時間を積算しており、ON状態が限界時間に達するとステップ226へ進んでセンサ外れフラグがONされる。
一方、角速度センサ14の出力値が正常範囲内であれば、ステップ222へ進んでヒステリシス範囲か否かが判定される。そして、ヒステリシス範囲でなければ、ステップ227へ進んで範囲外フラグがOFFされ、さらに、ステップ228へ進んでセンサ接続タイマが限界時間を越えたか否かが判定される。センサ接続タイマは、図12に示すように、タイマ割込み処理として範囲外フラグのOFF経過時間を積算しており、OFF状態が限界時間を越えていればステップ229へ進んでセンサ外れフラグがONか否かが判定され、センサ外れフラグがONであれば、ステップ231へ進んでセンサ外れフラグがOFFされる。続いて、ステップ232ではリセット処理が実行され、ステップ233ではベース初期設定が実行される。
また、ステップ222でヒステリシス範囲の場合、ステップ223へ進んで範囲外フラグのON/OFFが判定され、OFFの場合はステップ227へ進むが、ONの場合(正常出力範囲外からヒステリシス範囲へ入った場合に該当)はステップ224へ進んで範囲外に対応する処理を継続する。そして、ステップ225でセンサ外れタイマ未了、ステップ228でセンサ接続タイマ未了、ステップ229でセンサ外れフラグOFFのそれぞれの場合は、現状の各フラグ状態が継続される。
このようにして、角速度センサ14の出力を判定し、角速度センサ14の接続と機能の正常が確認されるとセンサ外れフラグはOFFとなる一方、確認されないとセンサ外れフラグはONとなる。
図13に示すように、平滑制御フロー(250)では、傾斜センサ13の出力の平均値を演算するためのサンプリング周期を設定する。ステップ251では、平滑フラグが平滑初期設定フロー(240)でクリアされたまま、すなわち初期状態のままか否かが判定される。そして、初期状態であればステップ253へ進んで通常の200msecのサンプリング周期が設定される。
一方、初期状態でなければ、ステップ252へ進んで作業開始フラグがセットからリセットへ反転したか否かが確認される。作業開始フラグは、図15、16に示す切替制御フロー(310)で説明するように、作業機が下降されて所定時間が経過するまでセットされ続け、経過後にリセットされるので、セットからリセットへ反転すると、作業開始と判定してステップ254へ進み、短い100msecのサンプリング周期を設定する。作業開始に該当しなければ通常の200msecのサンプリング周期が設定される。
このようにして、作業機30を下降させて傾斜制御を再開する際には、傾斜センサ13の出力値も変動し易いため、サンプリング周期を短くして少しでも正確な傾斜角を演算しようとしている。
傾斜センサ13の出力値の平滑処理は、タイマ割り込み処理フロー(260)で実行される。ステップ261でサンプリング時刻と判定されると、ステップ262へ進んで傾斜センサ13出力値が加算される。続くステップ263で所定回数(5回)の加算が確認されると、ステップ264へ進んで平滑フラグがセットされる。
このようにして、作業開始時以外は、ほぼ1秒ごとに200msec間隔の5個のサンプリング出力値が加算平均される。
図14に示すように、不感帯設定フロー(280)では、トラクタ10の対地速度に応じた不感帯を設定する。不感帯は、角速度センサ14の小さな出力変化を傾斜角の自動制御に反映させないために設定される出力範囲である。ステップ280では、車軸回転センサ46の出力が参照され、対地速度2.5km/h未満か否かが判定される。そして、対地速度2.5km/h以下に該当すれば、線図290に示すように、ステップ283へ進んで不感帯を1.5度に設定するが、該当しなければ、ステップ282へ進んで対地速度6.0km/hを越えるか否かが判定される。そして、対地速度が6.0km/hを越えていればステップ284へ進んで不感帯を2.25度に設定するが、対地速度2.5〜6.0km/hの範囲であれば、線図290に示すように、1.5度から2.25度の範囲の連続した値を設定する。
このようにして、トラクタ10の対地速度が増すと同じ耕作面でも角速度センサ14の出力値の変化が大きくなるが、対地速度に対応させて不感帯を大きく設定することによって、制御出力の回数が異常に増えたり、制御の反転を繰り返して不安定を引き起こしたりする事態を回避している。
図15に示すように、切替制御フロー(310)では、角速度センサ14の出力が不感帯を越えた場合にだけ角速度センサ14の出力に基づく制御を適用している。ステップ311ではリレーボックス57の出力が参照され、ステアリング12が所定角度を越えて操作されたか否かが判定される。そして、操作されていなければステップ312へ進んでポジションレバーセンサ29の出力が参照され、ポジションレバー11が上昇状態に操作されているか否かが判定される。そして、上昇状態に操作されていれば、ステップ313へ進んでリフトアームセンサ26の出力が参照され、リフトアーム23が上昇状態か否かが判定される。
そして、ステアリング12が所定角度を越えて操作されたか、ポジションレバーセンサ29またはリフトアームセンサ26の出力によって作業機30が上昇状態と判定される場合には、ステップ154へ進んで開始遅延タイマのカウントを開始させるが、いずれにも該当しなければ、ステップ320へ進んで開始遅延タイマが限界時間TAを越えたか否かを判定する。
開始遅延タイマは、ステップ321でカウントアップされてステップ311〜313をNOで通過し続ける時間(最後にステップ154を実行してからの経過時間、言い換えればステアリング終了または作業機30の下降完了からの経過時間)を計測しており、開始遅延タイマが限界時間TAを越えるとステップ320からステップ331へ移行して、作業開始フラグをリセットするが、限界時間TAに達するまでは、ステップ321で開始遅延タイマのカウントを継続し、ステップ322で積算フラグをリセットし、ステップ323で傾斜基準データに平滑データを取り込み、ステップ324で角速度センサ14の出力の積算データをクリアし、ステップ325で作業開始フラグをセットし、ステップ326でタイムアウトのカウントダウンを開始させ続ける。
ステップ331に続くステップ332ではタイムアウトをカウントダウンし、ステップ333では、角速度センサ14の出力値から基準データを差し引いた絶対値から、不感帯の角速度を差し引いた差分データが演算される。続くステップ334では、差分データが判定され、差分データが0より大、すなわち角速度センサ14の出力が不感帯を越える場合にはステップ335へ進んでタイムアウトに達したか否かが判定される。ステップ335でタイムアウト未了の場合はステップ336へ進んで演算開始フラグがセットされ、ステップ337で更新確認タイマがクリアされ、ステップ338で積算フラグがセットされる。
なお、このときの不感帯は、先に図14の不感帯設定フロー(280)で対地速度に応じて1.5〜2.25度の範囲に定めたものであって、図22に示されるように、実際には境界での不安定を回避すべく、ヒステリシスを加味して不感帯の内外を判定される。
ここで、タイムアウトは角速度センサ14の出力が長時間に渡って不感帯を越えている場合にその積算誤差を除去するために設定されるタイマである。タイムアウトは、作業機30の下降後限界時間TAが経過する直前にステップ326を通過した時点、または角速度センサ14の出力が最後に不感帯にあったステップ356でカウントダウン開始されている。ステップ335でタイムアウト完了の場合は、ステップ341へ進んで積算フラグがリセットされ、ステップ342で傾斜基準データに平滑データが取り込まれ、ステップ343で積算データがクリアされる。
一方、ステップ334で差分データが0以下、すなわち角速度センサ14の出力が不感帯の内側と判定された場合、図16の部分的なフロー330へ移行する。図16に示すように、ステップ351では演算開始フラグがリセットされ、ステップ352では更新確認タイマのカウント完了か否かが確認される。
ここで、更新確認タイマは、角速度センサ14の出力が最後に不感帯外から不感帯内へ変化して以降の経過時間を計測し、限界時間TBの経過を検知する。そして、角速度センサ14の出力が不感帯内へ変化しても角速度センサ14の出力に基づく傾斜角の演算を限界時間TBだけ継続させ、その後に傾斜センサ13の平滑データで傾斜角を演算開始させることにより、傾斜センサ13の出力が傾斜に追従する時間を確保して、安定した切替えが実現される。
ステップ352で更新確認タイマ完了と判定された場合、ステップ355へ進んで積算フラグがリセットされ、続くステップ356でタイムアウトが設定され、続くステップ357で傾斜基準データとして平滑データが取り込まれ、続くステップ358で積算データがクリアされる。一方、ステップ352で更新確認タイマ未了と判定された場合、ステップ353へ進んで更新確認タイマのカウントが継続され、ステップ354で積算フラグがセットされる。
図17に示すように、角度演算フロー(360)では、傾斜基準データを初期値にして角速度センサ14の出力を積分することにより、トラクタ10の刻々の傾斜角を演算する。
ステップ361では、一定周期でサンプリングされる角速度センサ14の差分データが加算されて毎秒積算回数で除算された後に、傾斜データと角速度データの定数比が乗算され、これに傾斜センサ13の出力の平滑データが加算される。
ここで、角速度センサ14の差分データを所定時間分積算して毎秒積算回数で除算すると、当該所定時間の傾斜角変化(積分値)が演算される。例えば、200msecごとにサンプリングされる角速度センサ14の出力値から基準データを差し引いた差分データ1度が5回分加算されて毎秒積算回数5で除算されると、1秒間に追加された傾斜角1度が演算される。
また、傾斜データと角速度データの定数比とは、出力レベルの異なる角速度センサの出力を傾斜センサの出力に適合させて加算減算を可能にするための定数であって、例えば、傾斜センサ13が10度の傾斜に対して1Vを出力し、角速度センサ14が同じ10度の傾斜に対して2Vを出力するとすれば、角速度センサの積分値を傾斜センサ13のレベルに合わせるために1/2とするものである。
実際の積算処理は、タイマ割込処理365によって実行される。ステップ366ではサンプリング時刻か否かが判定される。サンプリング時刻に合致すればステップ367へ進んで積算フラグのONが確認され、積算フラグがONであればステップ368へ進んで角速度データが加算されるが、積算フラグがOFFの場合はステップ369へ進んで積算データがクリアされる。なお、積算フラグは、図15のステップ338において、角速度センサ14の出力(差分データ)が不感帯の外にある限りセットされ続ける。
このようにして、トラクタ10が左右に傾斜して角速度センサ14の出力が不感帯から飛び出すと、次回に不感帯へ復帰するまで角速度センサ14の出力変化を積分した傾斜角が演算され続ける。
図18に示すように、傾斜制御フロー(370)では、演算された傾斜角に基づいてソレノイドバルブ51、52を作動させて作業機30の傾斜角制御を行う。ステップ371ではセンサ接続が判定され、図11に示す接続判断フロー(220)でセットされたセンサ接続フラグがONの場合は、ステップ372へ進んで積算フラグがセットされているか否かが確認される。そして、図15、16に示す切替制御フロー(310、330)で積算フラグがセットされていれば、ステップ373へ進んで、図17に示す角度演算フロー(360)で演算された角速度積算データを傾斜データとして採用する。そして、続くステップ374では、図14に示す不感帯設定フロー(280)で設定した1.5〜2.25度の狭い不感帯を採用する。
一方、ステップ371でセンサ外れフラグがONの場合は、ステップ377へ進んで無事な傾斜センサデータ13だけを採用し、続くステップ378では、ステップ374の場合よりも広い不感帯を設定する。また、ステップ372で積算フラグがリセット状態の場合は、ステップ375へ進んで傾斜センサの平滑データを採用し、ステップ376でステップ374の場合よりも広い不感帯を設定する。
そして、いずれの場合もステップ379へ進み、演算された傾斜データに基づいてソレノイドバルブ51、52を作動させて作業機30の傾斜角制御を行う。
さて、実施例1の傾斜角自動制御装置では、角速度センサ14の出力の基準値を200msecおきに定期的に更新する基準データ処理を実行する。基準値とは、角速度センサ14の出力の右回りと左回りを判別する原点値、すなわち角速度0に対応する角速度センサ14の出力値である。
角速度センサ14は、図21を参照して説明したように、右回り最大角速度で0V、左回り最大角速度で5Vを出力し、両者の間の角速度に対して0〜5Vのアナログ電圧を出力する。
そして、このアナログ電圧は、図23に示すように、8ビット256段階の出力データとして傾斜制御装置40に読み取られ、出力データから基準値(以下基準データ)を差し引いて角速度(差分)が演算される。その後、差分を積算して毎秒積算回数で除することによって傾斜角が演算されることは、図17に示す角度演算フロー(360)について説明したとおりである。
そして、基準データの更新は、
新しい基準データ=現在の基準データ+(出力データ−現在の基準データ)/2のn乗
という演算によって実行され、乗数nは、角速度レベルが大きいと次第に減らされるが、角速度レベルが小さいと次第に増加される。
図19に示すように、ステップ421では、基準データ処理のタイミングに合致するか否かが判定され、合致していればステップ422へ進んでリレーボックス57の出力が参照されて、ステアリング切れ角スイッチ56がONする旋回中に合致するか否かが判定される。そして、この旋回中に合致しなければ、ステップ423以下の基準データ処理が実行される。旋回中は地軸感度の影響で角速度センサ14の出力値が変化するので、基準データ処理は行わない。
ステップ423では、角速度センサ14の出力データから現在の基準値(以下基準データ)が差し引かれて差分が演算される。この差分は、現在の基準データに基づく現在の角速度に対応している。続くステップ424では、差分が0以上か否かが判定される。0以上の場合は、ステップ425以下のフローへ進むが、0未満の場合は図20に示すステップ445以下のフローへ進む。
ステップ425では、以下のフローでは使用されない減算アップカウンタおよび減算ダウンカウンタがクリアされ、続くステップ426では差分が不感帯の範囲か否かが判定される。ここで、不感帯は、図14に示す不感帯設定フロー(280)で設定した不感帯とは異なる、さらに小さな範囲の不感帯であって、現在の基準データを中心とする±16の範囲に定められている。ステップ426で差分が不感帯内と判定されるとステップ427へ進んで加算アップカウンタがクリアされて、加算ダウンカウンタがインクリメントされる。
加算アップカウンタ、加算ダウンカウンタは、同じ乗数nによる基準データ処理の繰り返し回数を設定するもので、例えば2と設定していれば、2回おきに乗数nが1つ増加または1つ減少される。
ステップ428では、加算ダウンカウンタが設定回数に達したか否かが判定され、達していなければ、ステップ431へ進んで同じ乗数nで、
差分シフト処理データ=(出力データ−現在の基準データ)/2のn乗
の演算を実行する。続くステップ432では、
新しい基準データ=現在の基準データ+差分シフト処理データ
の演算を実行する。
一方、ステップ428で加算ダウンカウンタが設定回数に達していると、ステップ429へ進んで加算ダウンカウンタがクリアされ、続くステップ430では乗数n(基準シフト)が1つ加算される。
ここで、図23に示すように、角速度センサ14の出力データが130のとき、基準データが125とすると、差分は130−125=5となって、ステップ424からステップ425へ進む。その後、ステップ426では差分5が不感帯±16の範囲と判断されてステップ427へ進み、加算ダウンカウンタが設定値に達するまで、200msecごとに、例えば乗数8で上記演算を繰り返す。
そして、加算ダウンカウンタが設定値に達すると、ステップ429からステップ430へ進んで乗数nが1つ増やされ、次に加算ダウンカウンタが設定値に達するまで乗数9による上記演算が繰り返される。これにより、基準データは、最初は大きく次第にゆっくりと正しい基準データ130へ向かってシフトされ、なめらかに正しい基準データ130へ収束する。
ところで、ステップ426で差分が不感帯外と判定されるとステップ436へ進んで差分が範囲外か否かが判定される。この範囲外の領域は、図23に示すように、不感帯の外側に間隔を置いて上下に配置されている。この範囲外の領域に達するほど角速度レベルが大きい場合には、ステップ437以下のフローへ進んで乗数nを次第に減らす基準データ処理を実行するが、範囲外の領域ほど大きくない場合には、ステップ435へ進んで加算アップカウンタおよび加算ダウンカウンタをクリアし、現在の乗数nを継続した基準データ処理を実行する。
従って、トラクタ10に範囲外の領域に達するほどの大きな揺れが発生している場合には1回あたりの補正量を大きくし、正しい基準データへの収束が遅れないようにしている。このようにして、乗数nは、図10に示す基準初期設定390のステップ391で8と初期設定された後は揺れのレベルに応じて2〜16の範囲でインクリメント/デクリメントされ、これに対応して差分シフト処理データは、差分データ/4(2の2乗)から差分データ/(2の16乗)の範囲で変化する。
ステップ437では、加算アップカウンタをインクリメントして加算ダウンカウンタをクリアする。続くステップ438では加算アップカウンタが設定回数に達したか否かが判定され、達していればステップ439へ進んで加算アップカウンタをクリアし、続くステップ440で乗数n(基準シフト)がデクリメントされる。達していなければ、ステップ231へ進んで、加算アップカウンタが設定回数に達するまで同じ乗数nの演算を繰り返す。
一方、ステップ424で差分が0未満と判定された場合、すなわち差分が0以上と判定された場合とは逆方向に角速度を検知しているような場合、図20に示すように、ステップ445以下のフローを実行して、基準データを引き下げる方向で、ステップ425以下とほぼ同様な基準データ処理を実行する。
ステップ445では、以下のフローで使用しない加算アップカウンタおよび加算ダウンカウンタをクリアする。続くステップ446では差分が不感帯の範囲か否かが判定され、不感帯内と判定されるとステップ477へ進んで加算アップカウンタがクリアされて、減算ダウンカウンタがインクリメントされる。減算アップカウンタ、減算ダウンカウンタもまた、同じ乗数nによる基準データ処理の繰り返し回数を設定するものである。
続くステップ448では、減算ダウンカウンタが設定回数に達したか否かが判定され、達していなければ、ステップ451へ進んで同じ乗数nで、
差分シフト処理データ=(出力データ−現在の基準データ)/2のn乗
の演算を実行する。続くステップ452では、
新しい基準データ=現在の基準データ+差分シフト処理データ
の演算を実行する。
一方、ステップ448で減算ダウンカウンタが設定回数に達していると、ステップ449へ進んで減算ダウンカウンタがクリアされ、続くステップ450では乗数n(基準シフト)が1つ加算される。
ところで、ステップ446で差分が不感帯外と判定されるとステップ456へ進んで差分が範囲外か否かが判定される。そして、範囲外に該当すればステップ457以下のフローへ進んで乗数nを次第に減らす基準データ処理を実行するが、範囲外に該当しなければステップ455へ進んで減算アップカウンタおよび減算ダウンカウンタをクリアし、現在の乗数nを継続した基準データ処理を実行する。
ステップ457では、減算アップカウンタをインクリメントして減算ダウンカウンタをクリアする。続くステップ458では減算アップカウンタが設定回数に達したか否かが判定され、達していればステップ459へ進んで減算アップカウンタをクリアし、続くステップ460で乗数n(基準シフト)がデクリメントされる。達していなければ、ステップ451へ進んで、減算アップカウンタが設定回数に達するまで同じ乗数nの演算を繰り返す。
以上のように構成された実施例の傾斜角自動制御装置では、図15に示すステップ311〜313によって旋回が終了して作業機30が下降された際にステップ154で開始させたタイムカウントをステップ320で判断し、所定時間が経過した後にステップ322以下の傾斜角自動制御を開始させるから、旋回時や旋回直後や作業機30下降直後の不安定な傾斜センサ13と角速度センサ14の出力が傾斜角制御に影響を及ぼさない。従って、制御再開直後から安定した正確な耕耘を開始でき、転回後の耕耘開始部分の乱れが少なくて済む。
また、角速度センサの出力信号を出力データに変換し、角速度0に対応する基準データを出力データから差し引いた差分データに基づいて傾斜角を演算する傾斜自動制御装置において、基準データを(新しい基準データ←古い基準データ+差分データ×比例定数)という演算式によって刻々と修正するから、図23に示すように、正しい基準データに向かって現在の基準データが次第に収束する。
そして、基準データ、出力データ、比例定数という3つの数値データだけで修正演算が完了するから、出力データの移動平均値で基準データを更新する場合に比較して過去の出力データが不要な分、演算負荷が軽減される。そして、出力データの移動平均値を求める場合に比較して、ピーク検出の必要が無い分、出力データのサンプリング間隔を拡大しても修正精度がさほど低下しないから、サンプリング回数を減らして演算負荷を大幅に削減できる。
従って、角速度センサの基準値を刻々と補正する際の演算負荷や必要なメモリ容量が小さく済み、しかも、角速度センサ出力の読み込み頻度が少なくても補正の精度が必要十分に確保される。これにより、低速でメモリ容量の少ないマイコン素子等を採用して小型安価低消費電力を実現でき、例えば、メモリやADコンバータをCPUとともに1チップ化した8ビットマイコン素子でも、基準データの修正を含む傾斜角自動制御全体の演算処理を賄うことができる。
また、その比例定数は、差分データの絶対値が小さい領域(不感帯)では、次第に小さく置き換えられ、一方、差分データの絶対値が大きい領域(範囲外)では、次第に大きく置き換えられるから、角度センサの基準値が大きく変化した場合でも、基準データが速やかに正しい基準値に相当する基準データへ収束する。
また、比例定数は、1/(2のn乗)と定めて、乗数nを段階的に増減することにより比例定数を変化させるから、比例定数の演算と、差分データとの乗算とをデジタル回路で簡単に演算でき、演算負荷はさらに軽減される。
また、角速度センサの出力データに不感帯を設定し、差分データが不感帯内であれば傾斜センサの出力データの移動平均値を傾斜角データとし、差分データが不感帯の外側であれば角速度センサの出力データから基準データを差し引いた差分データを積算して傾斜角データを演算する傾斜自動制御装置において、不感帯を走行機体の対地速度に応じて変化させて対地速度が高い場合は低い場合よりも広い不感帯を設定し、かつ、基準データを(新しい基準データ←古い基準データ+差分データ×比例定数)という演算式によって刻々と修正する構成を採用したので、不感帯の外側では、常に基準データが更新された高精度の差分データを積算して正確な傾斜角の演算ができるとともに、基準データの更新を含む角速度演算に使用する合計のデータ数が少なくて済み、演算もデジタル処理が容易な数式によってなされ、しかも、演算頻度を下げても傾斜角制御の制度が十分確保できるようになった。従って、低速でメモリ容量の少ないマイコン素子等を採用して小型安価低消費電力を実現でき、例えば、メモリやADコンバータをCPUとともに1チップ化した8ビットマイコン素子でも、基準データの修正を含む傾斜角自動制御全体の演算処理を賄うことができる。