【実施例1】
【0013】
本実施例について、図面を参照しながら説明する。
図1,2に示すように、車両100は、倒立2輪型の移動体であり、左右の車輪12a,12bが取付けられた車体10を備えている。なお、本実施例は、車体10のロール角制御に特徴があり、その他の構成(例えば、倒立二輪制御(車体10の進行方向(車軸13a,13bと直交する方向)の速度制御)、旋回角速度制御(車体10の旋回方向の角速度制御)等)は、従来技術と同様に構成することができる。このため、以下の説明では、車体10のロール角制御に関係する構成を主に説明し、それ以外の構成については適宜説明を省略する。
【0014】
車輪12a,12bは、車体10の側面に回転可能に取付けられている。具体的には、車輪12a,12bは、車軸13a,13bの先端に取付けられている。車軸13a,13bは、同軸上に配置されており、車体10の車幅方向と平行に伸び、車体10に回転可能に支持されている。車軸13a,13bの先端に車輪12a,12bが取付けられることから、車輪12a,12bは車軸13a,13bが伸びる方向(車幅方向)に間隔を空けて配置されている。各車輪12a,12bは、モータ14a,14b(車輪駆動装置の一例)により独立して駆動される。車輪12a,12bを駆動することで、車両100は倒立状態を維持しながら走行面Rを走行する。また、各車輪12a,12bの回転速度を変えることで、車両100は左右に旋回することができる。各車輪12a,12bの回転角は、エンコーダ15a,15b(
図3に図示)によって検出される。エンコーダ15a,15bで検出された各車輪12a,12bの回転角は、制御装置20(
図3に図示)に入力される。
【0015】
車体10は、上述したように車軸13a,13bに対して回転可能となっている。すなわち、車軸13a,13bはピッチ軸であり、車体10は車軸13a,13b(ピッチ軸)周りに回転可能となっている。車体10の重心Gは車軸13a,13bより高い位置にあり、車両100は倒立2輪型の移動体となっている。また、車体10は、ロール軸周りに回転可能となっている。ロール軸は、車軸13a,13bに直交しており、車体10の車幅方向の略中央を通過している。車体10には、車体10のピッチ角速度及びロール角速度を検出するジャイロセンサ(姿勢角センサ)16と、車体10のロール角度を制御するためのアクチュエータ(ロール制御アクチュエータ)18と、モータ14a,14b及びアクチュエータ18を制御する制御装置20(
図3に図示)を備えている。
【0016】
ジャイロセンサ16は、車体10の車軸10(ピッチ軸)周りの角速度(ピッチ角速度)と、車体10のロール軸周りの角速度(ロール角速度)を検出する2軸のジャイロセンサである。
図3に示すように、ジャイロセンサ16は、制御装置20に電気的に接続されている。ジャイロセンサ16から出力されるピッチ角速度信号とロール角速度信号は、制御装置20に入力される。
【0017】
アクチュエータ18は、車体10のロール角度を調整するための装置である。アクチュエータ18は、車体10に対してロール軸周りのトルクτを付与する。
図3に示すように、アクチュエータ18は、制御装置20に電気的に接続されている。制御装置20から出力される制御指令値に基づいてアクチュエータ18は、ロール軸周りにトルクτを発生する。アクチュエータ18には、例えば、ギア付きサーボモータを用いることができる。制御装置は、ジャイロセンサ(姿勢角センサ)16により入力される車体10のロール角に応じてアクチュエータ18を制御することで、車体10のロール角を制御する。これによって、旋回時の走行安定性の向上が図られている。
【0018】
制御装置20は、CPU,ROM,RAM等を備えたコンピュータによって構成されている。制御装置20は、車体10に設置されている。制御装置20は、ジャイロセンサ16とアクチュエータ18とモータ14a,14bとエンコーダ15a,15bに電気的に接続されている。制御装置20がモータ14a,14bを駆動することで、車両100が倒立状態を維持しながら走行面Rを走行し、また、制御装置20がアクチュエータ18を駆動することで、車体10のロール軸周りの姿勢角(ロール角)が制御される。以下、制御装置20について詳細に説明する。
【0019】
図4に示すように、制御装置20は、その機能として、乗算部22と、モデル予測制御部24と、指令値計算部26と、倒立二輪制御部100aと、旋回角速度制御部100bと、ロール姿勢角制御部100cを備えている。
【0020】
乗算部22は、車両100に与えられる進行方向速度指令値v
frefと、旋回方向角速度指令値ω
frefとを乗算することで、車両100の求心加速度指令値a
frefを算出する。すなわち、本実施例において、車両100の目標運動軌跡は、車両100の進行方向(車軸13a,13bに直交する方向)の速度指令値v
frefと、旋回方向角速度指令値ω
frefによって与えられる。乗算部22は、これらの値を乗算することで求心加速度指令値a
fref(=v
fref・ω
fref)を算出する。乗算部22によって求心加速度指令値a
frefに変換することで、後述するモデル予測制御部24における取扱いを容易としている。
【0021】
モデル予測制御部24は、乗算部22から入力される求心加速度指令値a
frefに基づいて、車両100のZMPの軌跡を予測し、予測されるZMPが予め設定された設定範囲(後述する)内に位置するように、車両100の修正求心加速度指令値a
refと車体10のロール角指令値θ
rollrefを算出する。モデル予測制御部24はZMPの未来の軌跡を予測するために、車両100の運動モデルが利用される。運動モデルを用いることで、車体10のロール角加速度を考慮して、ZMPの軌跡が算出される。なお、モデル予測制御部24の詳細な構成は、後で詳述する。
【0022】
指令計算部26は、モデル予測制御部24で算出された修正求心加速度指令値a
refに基づいて、修正進行方向速度指令値v
refと修正旋回方向角速度指令値ω
refとを算出する。すなわち、求心加速度指令値aは、進行方向速度指令値vと旋回方向角加速度指令値ωとの積となる。このため、指令計算部26は、モデル予測制御部24で算出された修正求心加速度指令値a
refを、修正進行方向速度指令値v
refと修正旋回方向角速度指令値ω
refに変換する。例えば、修正進行方向速度指令値v
ref=進行方向速度指令値v
frefとするならば、修正旋回方向角速度指令値ω
ref=修正求心加速度指令値a
ref/修正進行方向速度指令値v
refとなる。なお、修正求心加速度指令値a
refの大きさに応じて、修正進行方向速度指令値v
refを進行方向速度指令値v
frefと異なる値としてもよい。なお、上述した例では、求心加速度指令値aから進行方向速度指令値vと旋回方向角加速度指令値ωを算出したが、このような例に限られない。すなわち、求心加速度指令値は進行方向速度指令値と目標操舵角からも算出することができるため、求心加速度指令値aから進行方向速度指令値vと目標操舵角を算出してもよい。
【0023】
倒立二輪制御部100aは、指令計算部26で算出された修正進行方向速度指令値v
refに基づいてモータ14a,14bを駆動することで、車体10の倒立状態を維持しながら車両100の進行方向の速度を制御する。具体的には、倒立二輪制御部100aには、エンコーダ15a,15bから車輪12a,12bの回転角が入力され、また、ジャイロセンサ16から車体10のピッチ軸周りの角速度が入力される。したがって、これらフィードバックされる状態量と、指令計算部26で算出された修正進行方向速度指令値v
refとに基づいてモータ14a,14bを駆動する。これによって、車体10が倒立状態を維持し、かつ、進行方向に所望の速度で運動する。なお、倒立二輪制御部100aの具体的な構成は、従来公知の制御構成(状態フィードバック制御、H∞制御、PID制御等)を適宜採用することができる。このため、倒立二輪制御部100aの詳細な説明は省略する。
【0024】
旋回角速度制御部100bは、指令計算部26で算出された修正旋回方向角速度指令値ω
refに基づいてモータ14a,14bを駆動することで、車体10の旋回方向の速度を制御する。具体的には、旋回角速度制御部100bには、エンコーダ15a,15bから車輪12a,12bの回転角が入力される。したがって、このフィードバックされる状態量と、指令計算部26で算出された修正旋回方向角速度指令値ω
refとに基づいてモータ14a,14bを駆動する。これによって、車体10が所望の旋回角速度で旋回する。なお、旋回角速度制御部100bの具体的な構成は、従来公知の制御構成(例えば、PID制御、状態フィードバック制御等)を適宜採用することができる。このため、旋回角速度制御部100bの詳細な説明は省略する。
【0025】
ロール姿勢角制御部100cは、モデル予測制御部で算出されたロール角指令値θ
rollrefに基づいてアクチュエータ18を駆動することで、車体10の姿勢(ロール角)を制御する。具体的には、ロール姿勢角制御部100cには、ジャイロセンサ16から車体10のロール軸周りの角速度が入力される。したがって、このフィードバックされる状態量と、モデル予測制御部で算出されたロール角指令値θ
rollrefに基づいてアクチュエータ18を駆動する。これによって、車体10の姿勢(ロール角)が所望のロール角に制御される。このため、車体10が旋回運動を行う際は、その旋回運動と連動して車体10のロール角が制御されるため、車両100は安定して旋回運動を行うことができる。なお、ロール姿勢角制御部100cの具体的な構成は、従来公知の制御構成(例えば、状態フィードバック制御、PID制御等)を適宜採用することができる。このため、ロール姿勢角制御部100cの詳細な説明は省略する。
【0026】
次に、モデル予測制御部24について詳細に説明する。モデル予測制御部24は、車両100のロール軸周りの運動モデルを用いて、車両100のZMP(ゼロ・モーメント・ポイント)を予測し、その予測されるZMPが設定範囲内に位置するように、車両100の修正求心加速度指令値a
refと車体10のロール角指令値θ
rollrefを算出する。まず、運動モデルからZMP軌道を導出する手順を説明し、次いで、導出されたZMP軌道を用いて予測モデルを設計する手順を説明し、最後に、予測モデルを用いて修正求心加速度指令値a
refとロール角指令値θ
rollrefを算出する手順について説明する。
【0027】
(1)運動モデルからZMP方程式の導出
図5は、車両100のロール軸周りの運動モデルを示している。
図5において、ロール軸を通る垂線と走行面Rとの交点を原点[0,0]とし、ZMPの座標をq=[q
y、q
z]、車体10の重心の座標をp=[p
y,p
z]とする。また、hは重心とロール中心との距離であり、rは車輪12a,12bの半径である。また、車体10の重量をM、慣性モーメントをJとしている。上記のモデルからZMP方程式をたてると、次の式(1)となる。
【0028】
【数1】
【0029】
ここで、f
zは走行面Rからの反力fの垂直方向(z方向)の成分であり、f
yは反力fの水平方向(y方向)の成分である。一方、車両100が旋回走行しているときのp
y,p
z,q
z,f
y,f
zは、次の式(2)で与えられる。なお、式(2)においてaは、車両100の求心加速度である。
【0030】
【数2】
【0031】
これらの値を式(1)に代入し、ZMPのy座標(q
y)について解くと、次の式(3)となる。
【0032】
【数3】
【0033】
ここで、θ
roll≪1であるため、sinθ
roll=θ
rollとし、cosθ
roll=1とみなすと、次の式(4)となる。
【0034】
【数4】
【0035】
さらに、h・(d
2θ
roll/dt
2)・θrollはgより極めて小さいため、g−h・(d
2θ
roll/dt
2)・θrollをgとみなすと、式(4)は次の式(5)となる。
【0036】
【数5】
【0037】
上記の式(5)をθrollとaと(d
2θ
roll/dt
2)について整理すると、次の式(6)となる。
【0038】
【数6】
【0039】
式(6)から明らかなように、ZMPのy座標(q
y)は線形な方程式で表される。また、ZMPのy座標(q
y)は、ロール角θ
rollと、ロール角θ
rollの2階微分値であるロール角加速度(d
2θ
roll/dt
2)と、求心加速度aを用いて算出することができる。なお、本実施例において、設定範囲(ZMPの位置が制御される範囲)は、例えば、左右の車輪12a,12bの間の範囲(すなわち、[−w/2,0]から[w/2,0]のトレッド幅の範囲)とすることができる。また、所望の安定余裕性を確保するために、左右の車輪12a,12bの間の範囲(すなわち、[−w/2,0]から[w/2,0]の範囲)内で適宜狭く設定してもよい(例えば、[−k・w/2,0]から[k・w/2,0](kは1未満の正数))。
【0040】
(2)予測モデルの設計
次に、モデル予測制御部24でZMPの軌道(座標値q
y)を予測するために用いられる予測モデルについて説明する。予測モデルは、ロール角指令値と求心加速度指令値が入力され、ZMPの軌道(z座標値q
y)と求心加速度aを出力する。すなわち、本実施例のモデル予測制御部24は、既に説明したように、求心加速度指令値a
frefが入力され、修正求心加速度指令値a
refとロール角指令値θ
rollrefを出力する。このため、予測モデルに対しては、求心加速度指令値a
refとロール角指令値θ
rollrefが入力され、これらに応じてZMPの軌道(z座標値q
y)と求心加速度aが出力されなければならない。そこで、本実施例では、ロール角制御系モデルをベースとして予測モデルを構築する。
【0041】
ここで、ロール角指令値θ
rollrefからロール姿勢角θ
rollまでの伝達関数が次の式(7)で設計されているとする。なお、式(7)は3次系の伝達関数であったが、これ以外の伝達関数を用いてもよい。
【0042】
【数7】
【0043】
式(7)から状態方程式を求めると、次の式(8)となる。
【0044】
【数8】
【0045】
式(8)を離散化すると、次の式(9)が得られる。
【0046】
【数9】
【0047】
ここで、求心加速度aの応答性が優れているとすると、求心加速度指令値a
refと求心加速度aの関係は、1ステップ遅れと同等とみなすことができる。すなわち、次の式(10)に示す関係が成立する。式(10)の関係を導入することによって、予測モデルの状態量を少なく設計することが可能となる。なお、求心加速度指令値a
refと求心加速度aの関係は、式(7)のような高次の伝達関数で表してもよい。
【0048】
【数10】
【0049】
式(10)を式(9)に代入すると、次の式(11)が得られる。
【0050】
【数11】
【0051】
以下の数式展開を簡単に示すために、式(11)を次の式(12)に示すように再定義する。
【0052】
【数12】
【0053】
以上より、式(11)の状態方程式に対して、次の式(13)に示す出力方程式を与えれば、ZMPの軌道(qy)と求心加速度(a)を制御量とすることができる。
【0054】
【数13】
【0055】
(3)予測モデルを用いた指令値a
ref,θ
rollrefの算出手順
上述のように予測モデルが設計されると、この予測モデルを用いて制御指令値a
ref,θ
rollrefを算出しなければならない。本実施例では、予測モデルによって予測されるZMPの軌道が設定範囲内となるように、修正求心加速度指令値a
refとロール角指令値θ
rollrefを算出する。したがって、予測モデルを用いた状態量(ZMP軌道(q
y))の予測方法を説明し、次いで、予測される状態量から制御指令値a
ref,θ
rollrefを算出する手順について説明する。
【0056】
(3−1)予測モデルを用いた状態量の予測
いま、x^
mpc[k+n|k]をkステップ目に予測したk+nステップ目の状態量、u^[k+n|k]をkステップ目に導出するk+nステップ目の制御入力とすると、kステップ目に予測するk+1からk+N
pステップの状態量は、次の式(14)で表される。
【0057】
【数14】
【0058】
ただし、制御入力はN
uステップだけ導出し、それ以降は一定値を取ると仮定すると(すなわち、N
uステップが経過すると定常状態となると仮定すると)、N
uステップからN
p−1までの制御入力は、次の式(15)で表される。
【0059】
【数15】
【0060】
また、モデル予測制御では、制御入力の不連続性を抑制するために、通常、制御入力の変化量Δu[k]=u[k]−u[k−1]を制御入力とみなす。このため、u^[k+i|k](i=0,1,2,・・・,N
u−1)は、次の式(16)で表される。
【0061】
【数16】
【0062】
式(14)に、上記の式(15),(16)を代入して整理すると、次の式(17)が得られる。
【0063】
【数17】
【0064】
よって、制御量yのN
pステップ分の予測値は、次の式(18)で与えられる。
【0065】
【数18】
【0066】
そして、式(17)と式(18)を統合すると、次の式(19)が得られる。
【0067】
【数19】
【0068】
ここで、上記式(19)中のY[k]とΔU[k]は、次の式(20)で与えられる。なお、上記のN
p,N
uは、車両100の制御性と制御装置20の演算負荷を考慮して適宜設定することができる。
【0069】
【数20】
【0070】
(3−2)評価関数及び不等式条件
本実施例では、上述のように予測される状態量を用いて制御指令値a
ref,θ
rollrefを算出する際に、次の事項を考慮する。すなわち、
(1)定常状態でZMP軌道が0に収束すること(
図5の原点[0,0]に収束すること)、
(2)過渡状態でZMP軌道が設定範囲内に収まること、
(3)求心加速度が定常状態で制御指令値に追従すること、
(4)ロール角指令値、旋回角速度指令値が不連続でないこと
である。上記の(1),(3),(4)は評価関数によって考慮され、上記の(2)は不等式条件によって考慮される。式(21)は、評価関数の一例である。式(21)において、重み行列Q,Rは、ZMPの0への収束性、求心加速度の制御指令値への追従性、ロール角指令値及び求心加速度指令値の不連続性を抑制するために適宜設定される。
【0071】
【数21】
【0072】
上記の式(21)において、R[k]は指令ベクトルであり、次の式(22)で与えられる。
【0073】
【数22】
【0074】
また、式(22)中のr[k+i|k](i=1,2,・・,N
p)はiステップ目の指令ベクトルであり、次の式(23)で表される。ここで、a
frefはkステップ目で与えられる求心加速度指令値であり、評価関数ではN
pステップ連続で同一の求心加速度指令値が与えられると仮定することができる。
【0075】
【数23】
【0076】
一方、不等式条件は、次の式(24)によって与えられる。
【0077】
【数24】
【0078】
ここで、式(24)中のGは定数行列であり、以下のように導出することができる。すなわち、Y[k]に対する不等式条件は、次の式(25)によって与えることができる。
【0079】
【数25】
【0080】
ここで、Ymaxは上限値(例えば、
図5において車輪12aの位置[w/2,0])であり、Yminは下限値(例えば、
図5において車輪12bの位置[−w/2,0])である。式(25)を変形すると、次の式(26)を得る。
【0081】
【数26】
【0082】
式(24)と式(26)を比較することで、式(24)の定数行列Gを容易に導出することができる。また、Gの最終列をgとしてG=[Γ g]とし、式(24)に式(19)を代入すると、次の式(27)を得ることができる。
【0083】
【数27】
【0084】
式(27)は、ΔU[k]に関する線形不等式制約となるため、式(27)の不等式条件を満足しながら式(21)の評価関数を最小化するΔU[k]は、2次計画問題を解くことによって導出することができる。このように導出されたΔU[k]はN
pステップ分の制御入力であるため、最初の1ステップ分の制御入力を制御対象に与えるといったプロセルをサンプル周期毎に実行することとなる。
【0085】
上述のように構成されるモデル予測制御部24により、修正求心加速度指令値a
refとロール角指令値θ
rollrefが出力される。そして、これらの制御指令値に基づいてモータ14a,14b及びアクチュエータ18が駆動されることで、車両100のZMPの軌道(z座標値q
y)が設定範囲内とすることができる。
【0086】
次に、上述した制御装置20によるロール角制御をシミュレーションした結果について説明する。シミュレーションでは、6.0[km/h](=1.667[m/s])で直進走行している状態で、時刻t=4.0[s]において旋回角速度指令値ω
fref(=1.176[rad/s](0.2G相当))を与えた。なお、Y
maxとY
minはそれぞれ+0.05[m]と−0.05[m]とした。
【0087】
図6〜8はシミュレーション結果を示しており、
図6はZMPの軌道q
y、
図7はロール角指令値θ
rollrefとロール角θ
rollを示し、
図8は旋回角速度指令値ω
refと旋回角速度ωを示している。
図6〜8から明らかなように、車両100のZMPが設定範囲内(すなわち、−0.05〜0.05[m])に位置するように維持されながら、ZMP軌道が速やかに0に収束すると共に、旋回角速度も速やかに指令値に収束している。以上の結果より、本実施例の車両100では、車体10の安定性を維持しながら、速やかな旋回動作が実行可能であることが確認できた。
【0088】
上述した説明から明らかなように、本実施例の車両100では、車体10のロール軸周りの運動モデルに基づくモデル予測制御により制御指令値を算出するため、過渡期間におけるロール角の変化(姿勢ロール角加速度)が考慮されて制御指令値が算出される。その結果、車両100の姿勢を安定して制御することができ、機敏な旋回動作を実現することができる。
【0089】
以上、本実施例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
【0090】
例えば、上述した実施例では倒立2輪型の移動体であったが、本明細書に開示する技術は、ロール方向の姿勢(ロール角)を制御するアクチュエータを有する車輪型の移動体であればよい。例えば、車輪の数は2輪に限られず、3輪又は4輪であってもよく、また、人が搭乗する移動体であってもよい。
【0091】
また、上述した実施例では、左右の車輪12a,12bの駆動量を変化することで、車両100に旋回動作をさせたが、本明細書に開示の技術は、このような例に限られない。例えば、駆動輪12a,12bとは別に操舵輪を備え、その操舵輪の操舵角を調整することで、車両100に旋回動作を行わせてもよい。この場合は、例えば、操舵輪の操舵角を調整する操舵角調整装置をさらに備え、制御装置が操舵輪の操舵角が目標操舵角となるように操舵角調整装置を駆動してもよい。
【0092】
また、上述した実施例では、アクチュエータ18に流れる電流値に制約が課されない条件で制御装置20を構成したが、本明細書に開示の技術は、アクチュエータ18に流れる電流値が制約されるという条件下でも用いることができる。このような場合の制御装置(詳細には、モデル予測制御部)の構成の一例を説明する。
【0093】
図5に示すロール軸周りの運動モデルにおいて、その運動方程式は次の式(28)で表される。
【0094】
【数28】
【0095】
ここで、Jは重心周りの車体10の慣性モーメント、Mは車体10の重量、hはロール中心から重心までの距離、gは重力加速度、θ
rollはロール角、vは進行方向の車両100の速度、ωは旋回角速度、τはアクチュエータ18の出力トルクである。ここで、出力トルクτと、アクチュエータ18の電流iとの間には、次の式(29)の関係がある。
【0096】
【数29】
【0097】
ここで、n
actは、アクチュエータ18のギヤの減速比、k
tはトルク定数である。モータの回転子の慣性モーメントが小さく、かつ、減速比n
actが大きくないと仮定すると、式(28)と式(29)によって、電流iは次の式(30)のように表される。
【0098】
【数30】
【0099】
したがって、上述した実施例における式(13)に電流iに関する式(30)を加えると、式(31)が導出される。これ以降は、式(13)に代えて式(30)を用いることで、アクチュエータ18の電流iが制限されるときのモデル予測制御部を設計することができる。
【0100】
【数31】
【0101】
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。