説明

倒立振子型車両の制御装置

【課題】移動動作部(車輪体)とクラッチとを連動することで操作性を向上させ、また、クラッチの動作状況(操作状態)に応じて適切な姿勢制御を行うことができる、倒立振子型車両の制御装置を提供する。
【解決手段】倒立振子型車両1Aは、右側の電動モータ31Rに繋がるクラッチ32Rと、左側の電動モータ31Lに繋がるクラッチ32Lとを備えている。そして、例えば、電動モータ31Lに特定の状態が発生した場合は、電動モータ31Lのクラッチ32Lが開放される。この場合、倒立振子型車両1Aは、電動モータ31Rにより、特定の一方向(乗員から見て斜め方向)にのみ移動ができるようになる。そして、倒立振子型車両1Aがこの一方向へ移動する場合に、制御ユニット50Aは、一方向姿勢演算部を選択し、この特定の一方向に対する姿勢制御演算により適切な姿勢制御を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、床面上を全方向に移動可能な倒立振子型車両の制御装置に関する。
【背景技術】
【0002】
床面上を全方向(2次元的な全方向)に移動可能な全方向移動車両(倒立振子型車両)の制御装置としては、例えば、特許文献1、2に見られるものが本願出願人により提案されている。これらの特許文献1、2に見られる倒立振子型車両にあっては、床面に接地しながら該床面上を全方向に移動可能な、球体状又は車輪状又はクローラ状の移動動作部と、該移動動作部を駆動する電動モータ等を有するアクチュエータ装置とが車両の基体に組付けられている。そして、この車両は、アクチュエータ装置により移動動作部を駆動することによって、床面上を移動する。
【0003】
また、この種の倒立振子型車両の移動動作を制御する技術としては、例えば特許文献3に見られる技術が本願出願人により提案されている。この技術では、車両の基体が球体状の移動動作部に対して前後・左右に傾動自在に設けられている。そして、基体の傾き角を計測し、この傾き角を所要の角度に保つように、移動動作部を駆動する電動モータのトルクを制御することによって、基体の傾動動作に応じて車両を移動させるようにしている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第08/132778号パンフレット
【特許文献2】国際公開第08/132779号パンフレット
【特許文献3】特許第3070015号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、特許文献1,2、あるいは特許文献3に見られる如き倒立振子型車両の移動制御を行なう場合、モータと移動動作部との間にクラッチを設けることで、動作状況に応じて適切な駆動をさせることが望しい。しかし摩擦力により動力を伝達する駆動装置を用いた場合、一方の電動モータをクラッチにより切り離した場合は、車両の進行方向が大きく変わってしまう。このため、一方のクラッチを切り離した場合においても、適切な姿勢制御を行うことができる全方向移動車両(倒立振子型車両)の提供が望まれていた。
【0006】
本発明は、かかる背景に鑑みてなされたものであり、本発明の目的は、移動動作部とアクチュエータ装置との間にクラッチを設けることにより倒立振子型車両の操作性を向上させることができ、また、クラッチの動作状況(操作状態)に応じて適切な姿勢制御を行うことができるとともに、クラッチ操作により特定の一方向に移動する際にも適切な姿勢制御を行うことができる、倒立振子型車両の制御装置を提供することにある。
【課題を解決するための手段】
【0007】
本発明の倒立振子型車両の制御装置は、かかる目的を達成するために、床面上を互いに直交する第1の方向及び第2の方向を含む全方向に車両を移動可能に駆動する移動動作部と、該移動動作部を駆動するアクチュエータ装置と、該移動動作部及びアクチュエータ装置とが組付けられる基体と、前記基体の傾斜に基づいて倒立振子制御による姿勢制御演算を行い前記移動動作部を制御する制御部と、を備える倒立振子型車両の制御装置であって、前記倒立振子型車両は、前記アクチュエータ装置から前記移動動作部に対し動力を伝達するとともに、前記車両を前記第1および第2の方向を含む全方向に移動するか、または前記第1および第2の方向とは異なる特定の一方向に対してのみ移動するかを選択可能にする複数のクラッチを備え、前記制御部は、前記複数のクラッチの操作状態に応じて、前記車両を前記第1および第2の方向を含む全方向に移動させる場合に、前記第1の方向および第2の方向のそれぞれに対して姿勢制御演算を行い、前記車両を前記特定の一方向に移動させる場合に、該特定の一方向に対して姿勢制御演算を行うことを特徴とする(第1発明)。
【0008】
なお、本発明において、前記移動動作部が、「第1の方向及び第2の方向を含む全方向に移動可能」ということは、該第1の方向及び第2の方向に直交する軸方向で見た場合における各瞬間での該移動動作部の速度ベクトルの向きが、移動動作部の駆動によって、上記軸方向の周りの任意の角度方向の向きを採り得るということを意味する。この場合、上記軸方向は、概ね、上下方向又は床面に垂直な方向である。また、本発明における「直交」は厳密な意味での直交であることは必須ではなく、本発明の本質を逸脱しない範囲で、厳密な意味での直交から若干のずれがあってもよい。また、本発明において、「床」は、通常的な意味での床(屋内の床など)だけを意味するものではなく、屋外の地面もしくは路面をも含むものとして使用する。
【0009】
そして、前記第1発明によれば、アクチュエータ装置から移動動作部(車輪体)に対し動力を伝達するための複数のクラッチを備え、このクラッチの選択操作により、車両を全方向に移動させるか、または車両を特定の一方向に対してのみ移動させるかを選択可能にする。そして、制御部では、車両を全方向に移動させる場合には、第1の方向(前後方向)および第2の方向(左右方向)のそれぞれに対して姿勢制御演算を行う。また、車両を特定の一方向にのみ移動させる場合は、この特定の一方向に対して姿勢制御演算を行う。
これにより、クラッチを使用して倒立振子型車両の操作性を向上させることができる。また、クラッチの動作状況(操作状態)に応じて適切な姿勢制御を行うことができる。
【0010】
かかる第1発明においては、制御部は、移動動作部(車輪体)に対するアクチュエータ装置の駆動状態(クラッチの操作状態)に応じて適切な姿勢制御を行うことが好ましい(第2の発明)。
【0011】
そこで、第2の発明は、前記制御部は、前記車両を前記第1および第2の方向を含む全方向に移動させる場合に、前記第1および第2の方向のそれぞれに対して姿勢制御演算を行う全方向姿勢演算部と、前記車両を特定の一方向にのみ移動させる場合に、該特定の一方向に対して姿勢制御演算を行う一方向姿勢演算部と、前記クラッチの駆動状態に応じて、前記全方向姿勢演算部または前記一方向姿勢演算部を選択して姿勢制御演算を切り替える姿勢制御モード切替部と、を備えることを特徴とする。
【0012】
この第2の発明では、倒立振子型車両において、制御部内の全方向姿勢演算部が、全方向に車両を移動する場合に、第1の方向(前後方向)および第2の方向(左右方向)に対して姿勢制御演算を行う。また、一方向姿勢演算部が、特定の一方向にのみ車両を移動する場合に、該特定の一方向に対して姿勢制御演算を行う。また、姿勢制御モード切替部は、アクチュエータ装置の操作状態(駆動状態)に応じて、全方向姿勢演算部または一方向姿勢演算部を選択して姿勢制御演算処理を切り替える。
これにより、移動動作部に対するアクチュエータ装置の操作状態(クラッチの操作状態)に応じて適切な姿勢制御を選択することができる。すなわち、アクチュエータ装置に不具合が生じた場合において、クラッチを選択して駆動し、倒立振子型車両を特定の一方向にしか移動できない場合においても、該一方向に対して適切な姿勢制御を行うことができる(第2発明)。
【0013】
かかる第1発明および第2発明においては、第1のアクチュエータ装置と第2のアクチュエータ装置とで移動動作部(車輪体)を同時に駆動することにより車両を全方向に移動させるように構成される場合において、第1のアクチュエータ装置または第2のアクチュエータ装置のいずれかに特定の状態が発生した場合は、一方のアクチュエータ装置を駆動して特定の一方向にだけでも移動(走行)できることが好ましい(第3発明)。
【0014】
そこで、第3の発明では、前記倒立振子型車両は、前記移動動作部を第1の駆動側から駆動する第1のアクチュエータ装置と、前記移動動作部を、前記第1の駆動側とは異なる第2の駆動側から駆動する第2のアクチュエータ装置と、前記第1のアクチュエータ装置と前記移動動作部との間を動力の伝達状態または非伝達状態にする第1のクラッチと、前記第2のアクチュエータ装置と前記移動動作部との間を動力の伝達状態または非伝達状態にする第2のクラッチと、前記第1のクラッチと前記第2のクラッチにおける動力の伝達状態を制御するクラッチ制御部と、を備え、前記クラッチ制御部は、前記車両を全方向に移動させる場合に、前記第1のクラッチと前記第2のクラッチとを動力の伝達状態にし、前記車両を前記特定の一方向にのみ移動させる場合には、前記第1のクラッチまたは前記第2のクラッチのいずれか一方のクラッチのみを動力の伝達状態にすることを特徴とするる。
【0015】
このように、第3の発明によれば、第1のアクチュエータが移動動作部(車輪体)を第1の駆動側(右側面側)から駆動し、第2のアクチュエータ装置が移動動作部(車輪体)を第2の駆動側(左側面側)から駆動する。また、第1のクラッチにより、移動動作部と第1のアクチュエータ装置との間の動力の伝達状態/非伝達状態を切り替え、第2のクラッチにより、移動動作部と第2のアクチュエータ装置との間の動力の伝達状態/非伝達状態を切り替える。そして、クラッチ制御部は、車両を全方向に移動させる場合は、第1および第2のクラッチの両方を動力の伝達状態にし、倒立振子型車両を特定の一方向にのみ移動させる場合には、第1または第2のクラッチのいずれか一方のクラッチのみを動力の伝達状態にする。姿勢制御モード切替部は、第1および第2のクラッチの動力の伝達状態に応じて、全方向姿勢演算部または一方向姿勢演算部を選択して姿勢制御演算を行う。
これにより、移動動作部(車輪体)に対する第1のクラッチおよび第2のクラッチによる動力の伝達状態に応じて、全方向姿勢演算または一方向姿勢演算を選択することができる。すなわち、一方のクラッチのみにより移動動作部に動力を伝達し、車両を特定の一方向に移動させる場合においても、当該特定の一方向に対して適切な姿勢制御を行うことができる。
【0016】
また、前記第1の発明、第2の発明、および第3の発明では、車両が特定の一方向に移動する場合において、該特定の一方向に対して適切な姿勢制御を行うことができるとともに、特定の一方向に垂直な方向(床面に平行な面内において垂直な方向)に対しても適切な姿勢を得ることが好ましい(第4の発明)。
【0017】
そこで、この第4の発明では、前記車両が前記特定の一方向へのみ駆動される場合に、前記特定の一方向とは異なる方向であって前記移動動作部の接地点から所定の距離を隔てた地点に補助輪を接地させる補助輪制御部を備えることを特徴とする。
この第4の発明によれば、補助輪制御部は、第1のクラッチまたは第2のクラッチのいずれか一方のみが動力の伝達状態にされ、倒立振子型車両が特定の一方向へのみ駆動される場合に、移動動作部の床面への接地点以外の接地点であって、特定の一方向とは異なる方向の地点において補助輪を接地させる。
これにより、倒立振子型車両が移動する特定の一方向に対して適切な姿勢制御を行うことができるとともに、特定の一方向に垂直な方向(床面に平行な面内において垂直な方向)に対しても適切な姿勢を得ることができる。
【図面の簡単な説明】
【0018】
【図1】倒立振子型車両の正面図。
【図2】倒立振子型車両の側面図。
【図3】倒立振子型車両の下部を拡大して示す図。
【図4】倒立振子型車両の下部の斜視図。
【図5】倒立振子型車両の移動動作部(車輪体)の斜視図。
【図6】倒立振子型車両の移動動作部(車輪体)とフリーローラとの配置関係を示す図。
【図7】倒立振子型車両の制御ユニットの処理を示すフローチャート。
【図8】倒立振子型車両の動力学的挙動を表現する倒立振子モデルを示す図。
【図9】図7のステップS9の処理に係わる処理機能を示すブロック図。
【図10】図9に示すゲイン調整部の処理機能を示すブロック図。
【図11】図10に示すリミット処理部(又は図12に示すリミット処理部)の処理機能を示すブロック図。
【図12】図9に示す重心速度制限部76の処理機能を示すブロック図。
【図13】図9に示す姿勢制御演算部80の処理機能を示すブロック図。
【図14】図9に示す要求重心速度生成部74の処理を示すフローチャート。
【図15】図14のステップS23のサブルーチン処理を示すフローチャート。
【図16】図15のステップS23−5のサブルーチン処理を示すフローチャート。
【図17】図15のステップS23−5のサブルーチン処理を示すフローチャート。
【図18】図15のステップS23−6のサブルーチン処理を示すフローチャート。
【図19】図14のステップS24のサブルーチン処理を示すフローチャート。
【図20】図14のステップS25のサブルーチン処理を示すフローチャート。
【図21】図14のステップS25のサブルーチン処理を示すフローチャート。
【図22】クラッチを備える倒立振子型車両の構成図。
【図23】クラッチを備える倒立振子型車両の一方向移動動作を示す図。
【図24】制御ユニット50Aの構成を示す図。
【図25】一方向姿勢演算部の構成を示す図。
【図26】補助輪を備える倒立振子型車両の構成を示す図。
【図27】制御ユニット50Bの構成を示す図。
【図28】制御ユニット50Bにおける処理を示すフローチャート。
【図29】クラッチ制御モードにおける処理を示すフローチャート。
【図30】中央部連結クラッチを備える倒立振子型車両の構成を示す図。
【図31】制御ユニット50Cの構成を示す図。
【発明を実施するための形態】
【0019】
[本発明が適用される倒立振子型車両の基本的な構成と動作の説明]
最初に、本発明が適用される全方向移動車両(倒立振子型車両)の基本的な構成と動作について以下に説明する。なお、本発明の倒立振子型車両の制御装置は、図1に示す倒立振子型車両1を基本的な構成として、この倒立振子型車両1にクラッチを装備することにより、操作性を向上させた倒立振子型車両の制御装置に係わるものである。
【0020】
図1は、倒立振子型車両の基本的な構成を示す図であり、クラッチを有していない倒立振子型車両の構成を示す図である。まず、図1〜図6を参照して、倒立振子型車両1の構成について、その構造を説明する。
図1及び図2に示すように、倒立振子型車両1は、乗員(運転者となる搭乗者)のシート(搭乗部)3と、床面に接地しながら該床面上を全方向(前後方向及び左右方向を含む2次元的な全方向)に移動可能な移動動作部5と、この移動動作部5を駆動する動力を該移動動作部5に付与するアクチュエータ装置7と、これらのシート3、車輪体5及びアクチュエータ装置7が組付けられた基体9とを備える。
【0021】
ここで、「前後方向」、「左右方向」は、それぞれ、シート(搭乗部)3に標準的な姿勢で搭乗した乗員の上体の前後方向、左右方向に一致もしくはほぼ一致する方向を意味する。なお、「標準的な姿勢」は、シート3に関して設計的に想定されている姿勢であり、乗員の上体の体幹軸を概ね上下方向に向け、且つ、上体を捻ったりしていない姿勢である。
【0022】
この場合、図1においては、「前後方向」、「左右方向」はそれぞれ、紙面に垂直な方向、紙面の左右方向であり、図2においては、「前後方向」、「左右方向」はそれぞれ、紙面の左右方向、紙面に垂直な方向である。また、この倒立振子型車両1についての説明では、参照符号に付する添え字「R」,「L」は、それぞれ車両1の右側、左側に対応するものという意味で使用する。
【0023】
基体9は、移動動作部5及びアクチュエータ装置7とが組付けられた下部フレーム11と、この下部フレーム11の上端から上方に延設された支柱フレーム13とを備える。
【0024】
支柱フレーム13の上部には、該支柱フレーム13から前方側に張り出したシートフレーム15が固定されている。そして、このシートフレーム15上に、乗員が着座するシート3が装着されている。そして、このシート3が乗員の搭乗部となっている。従って、倒立振子型車両1(以降、単に車両1ともいう)は、乗員がシート3に着座した状態で、床面上を移動するものである。
【0025】
また、シート3の左右には、シート3に着座した乗員が必要に応じて把持するためのグリップ17R,17Lが配置され、これらのグリップ17R,17Lがそれぞれ、支柱フレーム13(又はシートフレーム15)から延設されたブラケット19R,19Lの先端部に固定されている。
【0026】
下部フレーム11は、左右方向に間隔を存して二股状に対向するように配置された一対のカバー部材21R,21Lを備える。これらのカバー部材21R,21Lの上端部(二股の分岐部分)は、前後方向の軸心を有するヒンジ軸23を介して連結され、カバー部材21R,21Lの一方が他方に対して相対的にヒンジ軸23の周りに揺動可能となっている。この場合、カバー部材21R,21Lは、図示を省略するバネによって、カバー部材21R,21Lの下端部側(二股の先端側)が狭まる方向に付勢されている。
【0027】
また、カバー部材21R,21Lのそれぞれの外面部には、前記シート3に着座した乗員の右足を載せるステップ25Rと左足を載せるステップ25Lとが各々、右向き、左向きに張り出すように突設されている。
【0028】
移動動作部5及びアクチュエータ装置7は、下部フレーム11のカバー部材21R,21Lの間に配置されている。これらの移動動作部5及びアクチュエータ装置7の構造を図3〜図6を参照して説明する。
【0029】
なお、移動動作部5及びアクチュエータ装置7は、例えば前記特許文献2の図1に開示されているものと同じ構造のものである。従って、移動動作部5及びアクチュエータ装置7の構成に関して、前記特許文献2に記載された事項については、簡略的な説明に留める。
【0030】
移動動作部5は、ゴム状弾性材により円環状に形成された車輪体であり、ほぼ円形の横断面形状を有する。この移動動作部5(以降、車輪体5という)は、その弾性変形によって、図5及び図6の矢印Y1で示す如く、円形の横断面の中心C1(より詳しくは、円形の横断面中心C1を通って、車輪体5の軸心と同心となる円周線)の周りに回転可能となっている。
【0031】
この車輪体5は、その軸心C2(車輪体5全体の直径方向に直交する軸心C2)を左右方向に向けた状態で、カバー部材21R,21Lの間に配置され、該車輪体5の外周面の下端部にて床面に接地する。
【0032】
そして、車輪体5は、アクチュエータ装置7による駆動(詳細は後述する)によって、図5の矢印Y2で示す如く車輪体5の軸心C2の周りに回転する動作(床面上を輪転する動作)と、車輪体5の横断面中心C1の周りに回転する動作とを行なうことが可能である。その結果、車輪体5は、それらの回転動作の複合動作によって、床面上を全方向に移動することが可能となっている。
【0033】
アクチュエータ装置7は、車輪体5と右側のカバー部材21Rとの間に介装される回転部材27R及びフリーローラ29Rと、車輪体5と左側のカバー部材21Lとの間に介装される回転部材27L及びフリーローラ29Lと、回転部材27R及びフリーローラ29Rの上方に配置されたアクチュエータとしての電動モータ31Rと、回転部材27L及びフリーローラ29Lの上方に配置されたアクチュエータとしての電動モータ31Lとを備える。
【0034】
電動モータ31R,31Lは、それぞれのハウジングがカバー部材21R,21Lに各々取付けられている。なお、図示は省略するが、電動モータ31R,31Lの電源(蓄電器)は、支柱フレーム13等、基体9の適所に搭載されている。
【0035】
回転部材27Rは、左右方向の軸心を有する支軸33Rを介してカバー部材21Rに回転可能に支持されている。同様に、回転部材27Lは、左右方向の軸心を有する支軸33Lを介してカバー部材21Lに回転可能に支持されている。この場合、回転部材27Rの回転軸心(支軸33Rの軸心)と、回転部材27Lの回転軸心(支軸33Lの軸心)とは同軸心である。
【0036】
回転部材27R,27Lは、それぞれ電動モータ31R,31Lの出力軸に、減速機としての機能を含む動力伝達機構を介して接続されており、電動モータ31R,31Lからそれぞれ伝達される動力(トルク)によって回転駆動される。各動力伝達機構は、例えばプーリ・ベルト式のものである。すなわち、図3および図4に示す如く、回転部材27Rは、プーリ35Rとベルト37Rとを介して電動モータ31Rの出力軸に接続されている。同様に、回転部材27Lは、プーリ35Lとベルト37Lとを介して電動モータ31Lの出力軸に接続されている。
【0037】
なお、上記動力伝達機構は、例えば、スプロケットとリンクチェーンとにより構成されるもの、あるいは、複数のギヤにより構成されるものであってもよい。また、例えば、電動モータ31R,31Lを、それぞれの出力軸が各回転部材27R,27Lと同軸心になるように各回転部材27R,27Lに対向させて配置し、電動モータ31R,31Lのそれぞれの出力軸を回転部材27R,27Lに各々、減速機(遊星歯車装置等)を介して連結するようにしてもよい。
【0038】
各回転部材27R,27Lは、車輪体5側に向かって縮径する円錐台と同様の形状に形成されており、その外周面がテーパ外周面39R,39Lとなっている。
【0039】
回転部材27Rのテーパ外周面39Rの周囲には、回転部材27Rと同心の円周上に等間隔で並ぶようにして、複数のフリーローラ29Rが配列されている。そして、これらのフリーローラ29Rは、それぞれ、ブラケット41Rを介してテーパ外周面39Rに取付けられ、該ブラケット41Rに回転自在に支承されている。
【0040】
同様に、回転部材27Lのテーパ外周面39Lの周囲には、回転部材27Lと同心の円周上に等間隔で並ぶようにして、複数(フリーローラ29Rと同数)のフリーローラ29Lが配列されている。そして、これらのフリーローラ29Lは、それぞれ、ブラケット41Lを介してテーパ外周面39Lに取付けられ、該ブラケット41Lに回転自在に支承されている。
【0041】
前記車輪体5は、回転部材27R側のフリーローラ29Rと、回転部材27L側のフリーローラ29Lとの間に挟まれるようにして、回転部材27R,27Lと同軸心に配置されている。
【0042】
この場合、図1及び図6に示すように、各フリーローラ29R,29Lは、その軸心C3が車輪体5の軸心C2に対して傾斜すると共に、車輪体5の直径方向(車輪体5をその軸心C2の方向で見たときに、該軸心C2と各フリーローラ29R,29Lとを結ぶ径方向)に対して傾斜する姿勢で配置されている。そして、このような姿勢で、各フリーローラ29R,29Lのそれぞれの外周面が車輪体5の内周面に斜め方向に圧接されている。
【0043】
より一般的に言えば、右側のフリーローラ29Rは、回転部材27Rが軸心C2の周りに回転駆動されたときに、車輪体5との接触面で、軸心C2周りの方向の摩擦力成分(車輪体5の内周の接線方向の摩擦力成分)と、車輪体5の前記横断面中心C1の周り方向の摩擦力成分(円形の横断面の接線方向の摩擦力成分)とを車輪体5に作用させ得るような姿勢で、車輪体5の内周面に圧接されている。左側のフリーローラ29Lについても同様である。
【0044】
この場合、前記したように、カバー部材21R,21Lは、図示しないバネによって、カバー部材21R,21Lの下端部側(二股の先端側)が狭まる方向に付勢されている。このため、この付勢力によって、右側のフリーローラ29Rと左側のフリーローラ29Lとの間に車輪体5が挟持されると共に、車輪体5に対する各フリーローラ29R,29Lの圧接状態(より詳しくはフリーローラ29R,29Lと車輪体5との間で摩擦力が作用し得る圧接状態)が維持される。
【0045】
以上説明した構造を有する車両1においては、電動モータ31R,31Lによりそれぞれ、回転部材27R,27Lを同方向に等速度で回転駆動した場合には、車輪体5が回転部材27R,27Lと同方向に軸心C2の周りに回転することとなる。これにより、車輪体5が床面上を前後方向に輪転して、車両1の全体が前後方向に移動することとなる。なお、この場合は、車輪体5は、その横断面中心C1の周りには回転しない。
【0046】
また、例えば、回転部材27R,27Lを互いに逆方向に同じ大きさの速度で回転駆動した場合には、車輪体5は、その横断面中心C1の周りに回転することとなる。これにより、車輪体5がその軸心C2の方向(すなわち左右方向)に移動し、ひいては、車両1の全体が左右方向に移動することとなる。なお、この場合は、車輪体5は、その軸心C2の周りには回転しない。
【0047】
さらに、回転部材27R,27Lを、互いに異なる速度(方向を含めた速度)で、同方向又は逆方向に回転駆動した場合には、車輪体5は、その軸心C2の周りに回転すると同時に、その横断面中心C1の周りに回転することとなる。
【0048】
この時、これらの回転動作の複合動作(合成動作)によって、前後方向及び左右方向に対して傾斜した方向に車輪体5が移動し、ひいては、車両1の全体が車輪体5と同方向に移動することとなる。この場合の車輪体5の移動方向は、回転部材27R,27Lの回転方向を含めた回転速度(回転方向に応じて極性が定義された回転速度ベクトル)の差に依存して変化するものとなる。
【0049】
以上のように車輪体5の移動動作が行なわれるので、電動モータ31R,31Lのそれぞれの回転速度(回転方向を含む)を制御し、ひいては回転部材27R,27Lの回転速度を制御することによって、車両1の移動速度及び移動方向を制御できることとなる。
【0050】
次に、図1に示す車両1の動作制御のための構成を説明する。なお、以降の説明では、図1及び図2に示すように、前後方向の水平軸をX軸、左右方向の水平軸をY軸、鉛直方向をZ軸とするXYZ座標系を想定し、前後方向、左右方向をそれぞれX軸方向、Y軸方向と言うことがある。
【0051】
まず、車両1の概略的な動作制御を説明すると、基本的には、シート3に着座した乗員がその上体を傾けた場合(詳しくは、乗員と車両1とを合わせた全体の重心点の位置(水平面に投影した位置)を動かすように上体を傾けた場合)に、該上体を傾けた側に基体9がシート3と共に傾動する。そして、この時、基体9が傾いた側に車両1が移動するように、車輪体5の移動動作が制御される。例えば、乗員が上体を前傾させ、ひいては、基体9をシート3と共に前傾させると、車両1が前方に移動するように、車輪体5の移動動作が制御される。
【0052】
すなわち、図1に示す倒立振子型車両では、乗員が上体を動かし、ひいては、シート3と共に基体9を傾動させるという動作が、車両1に対する1つの基本的な操縦操作(車両1の動作要求)とされ、その操縦操作に応じて車輪体5の移動動作がアクチュエータ装置7を介して制御される。
【0053】
ここで、倒立振子型車両1は、その全体の接地面としての車輪体5の接地面が、車両1とこれに搭乗する乗員との全体を床面に投影した領域に比して面積が小さい単一の局所領域となり、その単一の局所領域だけに床反力が作用する。このため、基体9が傾倒しないようにするためには、乗員及び車両1の全体の重心点が車輪体5の接地面のほぼ真上に位置するように、車輪体5を動かす必要がある。
【0054】
そこで、倒立振子型車両1では、乗員及び車両1の全体の重心点が、車輪体5の中心点(軸心C2上の中心点)のほぼ真上に位置する状態(より正確には当該重心点が車輪体5の接地面のほぼ真上に位置する状態)での基体9の姿勢を目標姿勢とし、基本的には、基体9の実際の姿勢を目標姿勢に収束させるように、車輪体5の移動動作が制御される。
【0055】
また、車両1を発進させる場合等において、アクチュエータ装置7による推進力とは別に、例えば乗員が必要に応じて自身の足により床を蹴り、それにより車両1の移動速度を増速させる推進力(乗員の足平と床との摩擦力による推進力)を、付加的な外力として車両1に作用させた場合には、それに応じて車両1の移動速度(より正確には、乗員及び車両の全体の重心点の移動速度)が増速するように、車輪体5の移動動作が制御される。なお、当該推進力の付加が停止された状態では、車両1の移動速度が一旦、一定速度に保持された後、減衰して、該車両1が停止するように、車輪体5の移動動作が制御される(車輪体5の制動制御が行なわれる)。
【0056】
さらに、車両1に乗員が搭乗していない状態では、車両1の単体の重心点が、車輪体5の中心点(軸心C2上の中心点)のほぼ真上に位置する状態(より正確には当該重心点が車輪体5の接地面のほぼ真上に位置する状態)での基体9の姿勢を目標姿勢とし、該基体9の実際の姿勢を目標姿勢に収束させ、ひいては、基体9が傾倒することなく車両1が自立するように、車輪体5の移動動作が制御される。
【0057】
倒立振子型車両1では、以上の如き車両1の動作制御を行なうために、図1及び図2に示すように、マイクロコンピュータや電動モータ31R,31Lのドライブ回路ユニットなどを含む電子回路ユニットにより構成された制御ユニット50と、基体9の所定の部位の鉛直方向(重力方向)に対する傾斜角θb及びその変化速度(=dθb/dt)を計測するための傾斜センサ52と、車両1に乗員が搭乗しているか否かを検知するための荷重センサ54と、電動モータ31R,31Lのそれぞれの出力軸の回転角度及び回転角速度を検出するための角度センサとしてのロータリーエンコーダ56R,56Lがそれぞれ、車両1の適所に搭載されている。
【0058】
この場合、制御ユニット50及び傾斜センサ52は、例えば、基体9の支柱フレーム13の内部に収容された状態で該支柱フレーム13に取付けられている。また、荷重センサ54は、シート3に内蔵されている。また、ロータリーエンコーダ56R,56Lは、それぞれ、電動モータ31R,31Lと一体に設けられている。なお、ロータリーエンコーダ56R,56Lは、それぞれ、回転部材27R,27Lに装着してもよい。
【0059】
上記傾斜センサ52は、より詳しくは、加速度センサとジャイロセンサ等のレートセンサ(角速度センサ)とから構成され、これらのセンサの検出信号を制御ユニット50に出力する。そして、制御ユニット50が、傾斜センサ52の加速度センサ及びレートセンサの出力を基に、所定の計測演算処理(これは公知の演算処理でよい)を実行することによって、傾斜センサ52を搭載した部位(支柱フレーム13)の、鉛直方向に対する傾斜角度θbの計測値とその変化速度(微分値)である傾斜角速度θbdotの計測値とを算出する。
【0060】
この場合、計測する傾斜角度θb(以降、基体傾斜角度θbということがある)は、より詳しくは、それぞれ、Y軸周り方向(ピッチ方向)の成分θb_xと、X軸周り方向(ロール方向)の成分θb_yとから成る。同様に、計測する傾斜角速度θbdot(以降、基体傾斜角速度θbdotということがある)も、Y軸周り方向(ピッチ方向)の成分θbdot_x(=dθb_x/dt)と、X軸周り方向(ロール方向)の成分θbdot_y(=dθb_y/dt)とから成る。
【0061】
なお、倒立振子型車両1の説明では、上記基体傾斜角度θbなど、X軸及びY軸の各方向(又は各軸周り方向)の成分を有する運動状態量等の変数、あるいは、該運動状態量に関連する係数等の変数に関しては、その各成分を区別して表記する場合に、該変数の参照符号に、添え字“_x”又は“_y”を付加する。
【0062】
この場合において、並進速度等の並進運動に係わる変数については、そのX軸方向の成分に添え字“_x”を付加し、Y軸方向の成分に添え字“_y”を付加する。
【0063】
一方、角度、回転速度(角速度)、角加速度など、回転運動に係わる変数については、並進運動に係わる変数と添え字を揃えるために、便宜上、Y軸周り方向の成分に添え字“_x”を付加し、X軸周り方向の成分に添え字“_y”を付加する。
【0064】
さらに、X軸方向の成分(又はY軸周り方向の成分)と、Y軸方向の成分(又はX軸周り方向の成分)との組として変数を表記する場合には、該変数の参照符号に添え字“_xy”を付加する。例えば、上記基体傾斜角度θbを、Y軸周り方向の成分θb_xとX軸周り方向の成分θb_yの組として表現する場合には、「基体傾斜角度θb_xy」というように表記する。
【0065】
前記荷重センサ54は、乗員がシート3に着座した場合に該乗員の重量による荷重を受けるようにシート3に内蔵され、その荷重に応じた検出信号を制御ユニット50に出力する。そして、制御ユニット50が、この荷重センサ54の出力により示される荷重の計測値に基づいて、車両1に乗員が搭乗しているか否かを判断する。
【0066】
なお、荷重センサ54の代わりに、例えば、乗員がシート3に着座したときにONとなるようなスイッチ式のセンサを用いてもよい。
【0067】
ロータリーエンコーダ56Rは、電動モータ31Rの出力軸が所定角度回転する毎にパルス信号を発生し、このパルス信号を制御ユニット50に出力する。そして、制御ユニット50が、そのパルス信号を基に、電動モータ31Rの出力軸の回転角度を計測し、さらにその回転角度の計測値の時間的変化率(微分値)を電動モータ53Rの回転角速度として計測する。電動モータ31L側のロータリーエンコーダ56Lについても同様である。
【0068】
制御ユニット50は、上記の各計測値を用いて所定の演算処理を実行することによって、電動モータ31R,31Lのそれぞれの回転角速度の目標値である速度指令を決定し、その速度指令に従って、電動モータ31R,31Lのそれぞれの回転角速度をフィードバック制御する。
【0069】
なお、電動モータ31Rの出力軸の回転角速度と、回転部材27Rの回転角速度との間の関係は、該出力軸と回転部材27Rとの間の一定値の減速比に応じた比例関係になるので、以下の説明では、便宜上、電動モータ31Rの回転角速度は、回転部材27Rの回転角速度を意味するものとする。同様に、電動モータ31Lの回転角速度は、回転部材27Lの回転角速度を意味するものとする。
【0070】
以下に、制御ユニット50の制御処理をさらに詳細に説明する。
制御ユニット50は、所定の制御処理周期で図7のフローチャートに示す処理(メインルーチン処理)を実行する。
【0071】
まず、ステップS1において、制御ユニット50は、傾斜センサ52の出力を取得する。次いで、ステップS2に進んで、制御ユニット50は、取得した傾斜センサ52の出力を基に、基体傾斜角度θbの計測値θb_xy_sと、基体傾斜角速度θbdotの計測値θbdot_xy_sとを算出する。
【0072】
なお、以降の説明では、上記計測値θb_xy_sなど、変数(状態量)の実際の値の観測値(計測値又は推定値)を参照符号により表記する場合に、該変数の参照符号に、添え字“_s”を付加する。
【0073】
次いで、制御ユニット50は、ステップS3において、荷重センサ54の出力を取得した後、ステップS4の判断処理を実行する。この判断処理においては、制御ユニット50は、取得した荷重センサ54の出力が示す荷重計測値があらかじめ設定された所定値よりも大きいか否かによって、車両1に乗員が搭乗しているか否か(シート3に乗員が着座しているか否か)を判断する。
【0074】
そして、制御ユニット50は、ステップS4の判断結果が肯定的である場合には、基体傾斜角度θbの目標値θb_xy_objを設定する処理と、車両1の動作制御用の定数パラメータ(各種ゲインの基本値など)の値を設定する処理とを、それぞれステップS5、6で実行する。
【0075】
ステップS5においては、制御ユニット50は、基体傾斜角度θbの目標値θb_xy_objとして、あらかじめ定められた搭乗モード用の目標値を設定する。
【0076】
ここで、「搭乗モード」は、車両1に乗員が搭乗している場合での車両1の動作モードを意味する。この搭乗モード用の目標値θb_xy_objは、車両1とシート3に着座した乗員との全体の重心点(以降、車両・乗員全体重心点という)が車輪体5の接地面のほぼ真上に位置する状態となる基体9の姿勢において、傾斜センサ52の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するようにあらかじめ設定されている。
【0077】
また、ステップS6においては、制御ユニット50は、車両1の動作制御用の定数パラメータの値として、あらかじめ定められた搭乗モード用の値を設定する。なお、定数パラメータは、後述するhx,hy,Ki_a_x,Ki_b_x,Ki_a_y,Ki_b_y(i=1,2,3)等である。
【0078】
一方、ステップS4の判断結果が否定的である場合には、制御ユニット50は、基体傾斜角度θb_xyの目標値θb_xy_objを設定する処理と、車両1の動作制御用の定数パラメータの値を設定する処理とを、ステップS7、8で実行する。
【0079】
ステップS7においては、制御ユニット50は、傾斜角度θbの目標値θb_xy_objとして、あらかじめ定められた自立モード用の目標値を設定する。
【0080】
ここで、「自立モード」は、車両1に乗員が搭乗していない場合での車両1の動作モードを意味する。この自立モード用の目標値θb_xy_objは、車両1単体の重心点(以降、車両単体重心点という)が車輪体5の接地面のほぼ真上に位置する状態となる基体9の姿勢において、傾斜センサ52の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するようにあらかじめ設定されている。この自立モード用の目標値θb_xy_objは、搭乗モード用の目標値θb_xy_objと一般的には異なる。
【0081】
また、ステップS8においては、制御ユニット50は、車両1の動作制御用の定数パラメータの値として、あらかじめ定められた自立モード用の値を設定する。この自立モード用の定数パラメータの値は、搭乗モード用の定数パラメータの値と異なる。
【0082】
搭乗モードと自立モードとで、上記定数パラメータの値を異ならせるのは、それぞれのモードで上記重心点の高さや、全体質量等が異なることに起因して、制御入力に対する車両1の動作の応答特性が互いに異なるからである。
【0083】
以上のステップS4〜8の処理によって、搭乗モード及び自立モードの動作モード毎に個別に、基体傾斜角度θb_xyの目標値θb_xy_objと定数パラメータの値とが設定される。
【0084】
なお、ステップS5,6の処理、又はステップS7,8の処理は、制御処理周期毎に実行することは必須ではなく、ステップS4の判断結果が変化した場合にだけ実行するようにしてもよい。
【0085】
補足すると、搭乗モード及び自立モードのいずれにおいても、基体傾斜角速度θbdotのY軸周り方向の成分θbdot_xの目標値とX軸周り方向の成分θbdot_yの目標値とは、いずれも“0”である。このため、基体傾斜角速度θbdot_xyの目標値を設定する処理は不要である。
【0086】
以上の如くステップS5,6の処理、又はステップS7,8の処理を実行した後、制御ユニット50は、次にステップS9において、車両制御演算処理を実行することによって、電動モータ31R,31Lのそれぞれの速度指令を決定する。この車両制御演算処理の詳細は後述する。
【0087】
次いで、ステップS10に進んで、制御ユニット50は、ステップS9で決定した速度指令に応じて電動モータ31R,31Lの動作制御処理を実行する。この動作制御処理では、制御ユニット50は、ステップS9で決定した電動モータ31Rの速度指令と、ロータリーエンコーダ56Rの出力に基づき計測した電動モータ31Rの回転速度の計測値との偏差に応じて、該偏差を“0”に収束させるように電動モータ31Rの出力トルクの目標値(目標トルク)を決定する。そして、制御ユニット50は、その目標トルクの出力トルクを電動モータ31Rに出力させるように該電動モータ31Rの通電電流を制御する。左側の電動モータ31Lの動作制御についても同様である。
【0088】
以上が、制御ユニット50が実行する全体的な制御処理である。次に、上記ステップS9の車両制御演算処理の詳細を説明する。
【0089】
なお、以降の説明においては、前記搭乗モードにおける車両・乗員全体重心点と、前記自立モードにおける車両単体重心点とを総称的に、車両系重心点という。該車両系重心点は、車両1の動作モードが搭乗モードである場合には、車両・乗員全体重心点を意味し、自立モードである場合には、車両単体重心点を意味する。
【0090】
また、以降の説明では、制御ユニット50が各制御処理周期で決定する値(更新する値)に関し、現在の(最新の)制御処理周期で決定する値を今回値、その1つ前の制御処理周期で決定した値を前回値ということがある。そして、今回値、前回値を特にことわらない値は、今回値を意味する。
【0091】
また、X軸方向の速度及び加速度に関しては、前方向きを正の向きとし、Y軸方向の速度及び加速度に関しては、左向きを正の向きとする。
【0092】
そして、前記車両系重心点の動力学的な挙動(詳しくは、Y軸方向からこれに直交する面(XZ平面)に投影して見た挙動と、X軸方向からこれに直交する面(YZ平面)に投影して見た挙動)が、近似的に、図8に示すような、倒立振子モデルの挙動(倒立振子の動力学的挙動)によって表現されるものとして、ステップS9の車両制御演算処理が行なわれる。
【0093】
なお、図8において、括弧を付していない参照符号は、Y軸方向から見た倒立振子モデルに対応する参照符号であり、括弧付きの参照符号は、X軸方向から見た倒立振子モデルに対応する参照符号である。
【0094】
この場合、Y軸方向から見た挙動を表現する倒立振子モデルは、車両系重心点に位置する質点60_xと、Y軸方向に平行な回転軸62a_xを有して床面上を輪転自在な仮想的な車輪62_x(以降、仮想車輪62_xという)とを備える。そして、質点60_xが、仮想車輪62_xの回転軸62a_xに直線状のロッド64_xを介して支持され、該回転軸62a_xを支点として該回転軸62a_xの周りに揺動自在とされている。
【0095】
この倒立振子モデルでは、質点60_xの運動が、Y軸方向から見た車両系重心点の運動に相当する。また、鉛直方向に対するロッド64_xの傾斜角度θbe_xがY軸周り方向での基体傾斜角度計測値θb_x_sと基体傾斜角度目標値θb_x_objとの偏差θbe_x_s(=θb_x_s−θb_x_obj)に一致するものとされる。また、ロッド64_xの傾斜角度θbe_xの変化速度(=dθbe_x/dt)がY軸周り方向の基体傾斜角速度計測値θbdot_x_sに一致するものとされる。また、仮想車輪62_xの移動速度Vw_x(X軸方向の並進移動速度)は、車両1の車輪体5のX軸方向の移動速度に一致するものとされる。
【0096】
同様に、X軸方向から見た挙動を表現する倒立振子モデル(図8の括弧付きの符号を参照)は、車両系重心点に位置する質点60_yと、X軸方向に平行な回転軸62a_yを有して床面上を輪転自在な仮想的な車輪62_y(以降、仮想車輪62_yという)とを備える。そして、質点60_yが、仮想車輪62_yの回転軸62a_yに直線状のロッド64_yを介して支持され、該回転軸62a_yを支点として該回転軸62a_yの周りに揺動自在とされている。
【0097】
この倒立振子モデルでは、質点60_yの運動が、X軸方向から見た車両系重心点の運動に相当する。また、鉛直方向に対するロッド64_yの傾斜角度θbe_yがX軸周り方向での基体傾斜角度計測値θb_y_sと基体傾斜角度目標値θb_y_objとの偏差θbe_y_s(=θb_y_s−θb_y_obj)に一致するものとされる。また、ロッド64_yの傾斜角度θbe_yの変化速度(=dθbe_y/dt)がX軸周り方向の基体傾斜角速度計測値θbdot_y_sに一致するものとされる。また、仮想車輪62_yの移動速度Vw_y(Y軸方向の並進移動速度)は、車両1の車輪体5のY軸方向の移動速度に一致するものとされる。
【0098】
なお、仮想車輪62_x,62_yは、それぞれ、あらかじめ定められた所定値Rw_x,Rw_yの半径を有するものとされる。
【0099】
また、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x,ωw_yと、電動モータ31R,31Lのそれぞれの回転角速度ω_R,ω_L(より正確には、回転部材27R,27Lのそれぞれの回転角速度ω_R,ω_L)との間には、次式01a,01bの関係が成立するものとされる。
ωw_x=(ω_R+ω_L)/2 ……式01a
ωw_y=C・(ω_R−ω_L)/2 ……式01b
【0100】
なお、式01bにおける“C”は、前記フリーローラ29R,29Lと車輪体5との間の機構的な関係や滑りに依存する所定値の係数である。
【0101】
ここで、図8に示す倒立振子モデルの動力学は、次式03x,03yにより表現される。なお、式03xは、Y軸方向から見た倒立振子モデルの動力学を表現する式、式03yは、X軸方向から見た倒立振子モデルの動力学を表現する式である。
d2θbe_x/dt2=α_x・θbe_x+β_x・ωwdot_x ……式03x
d2θbe_y/dt2=α_y・θbe_y+β_y・ωwdot_y ……式03y
傾斜角度θbe_x:鉛直方向に対するロッド64_xの傾斜角度
【0102】
式03xにおけるωwdot_xは仮想車輪62_xの回転角加速度(回転角速度ωw_xの1階微分値)、α_xは、質点60_xの質量や高さh_xに依存する係数、β_xは、仮想車輪62_xのイナーシャ(慣性モーメント)や半径Rw_xに依存する係数である。式03yにおけるωwdot_y、α_y、β_yについても上記と同様である。
【0103】
これらの式03x,03yから判るように、倒立振子の質点60_x,60_yの運動(ひいては車両系重心点の運動)は、それぞれ、仮想車輪62_xの回転角加速度ωwdot_x、仮想車輪62_yの回転角加速度ωwdot_yに依存して規定される。
【0104】
そこで、Y軸方向から見た車両系重心点の運動を制御するための操作量(制御入力)として、仮想車輪62_xの回転角加速度ωwdot_xを用いると共に、X軸方向から見た車両系重心点の運動を制御するための操作量(制御入力)として、仮想車輪62_yの回転角加速度ωwdot_yを用いる。
【0105】
そして、ステップS9の車両制御演算処理を概略的に説明すると、制御ユニット50は、X軸方向で見た質点60_xの運動と、Y軸方向で見た質点60_yの運動とが、車両系重心点の所望の運動に対応する運動となるように、操作量としての上記回転角加速度ωwdot_x,ωwdot_yの指令値(目標値)である仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdを決定する。さらに、制御ユニット50は、仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdをそれぞれ積分してなる値を、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x,ωw_yの指令値(目標値)である仮想車輪回転角速度指令ωw_x_cmd,ωw_y_cmdとして決定する。
【0106】
そして、制御ユニット50は、仮想車輪回転角速度指令ωw_x_cmdに対応する仮想車輪62_xの移動速度(=Rw_x・ωw_x_cmd)と、仮想車輪回転角速度指令ωw_y_cmdに対応する仮想車輪62_yの移動速度(=Rw_y・ωw_y_cmd)とを、それぞれ、車両1の車輪体5のX軸方向の目標移動速度、Y軸方向の目標移動速度とし、それらの目標移動速度を実現するように、電動モータ31R,31Lのそれぞれの速度指令ω_R_cmd,ω_L_cmdを決定する。
【0107】
なお、操作量(制御入力)としての上記仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdは、それぞれ、後述する式07x,07yに示す如く、3個の操作量成分を加え合わせることによって決定される。
【0108】
制御ユニット50は、上記の如き、ステップS9の車両制御演算処理を実行するための機能として、図9のブロック図で示す機能を備えている。
【0109】
すなわち、制御ユニット50は、基体傾斜角度計測値θb_xy_sと基体傾斜角度目標値θb_xy_objとの偏差である基体傾斜角度偏差計測値θbe_xy_sを算出する偏差演算部70と、前記車両系重心点の移動速度である重心速度Vb_xyの観測値としての重心速度推定値Vb_xy_sを算出する重心速度算出部72と、乗員等による車両1の操縦操作(車両1に推進力を付加する操作)によって要求されていると推定される上記重心速度Vb_xyの要求値としての要求重心速度V_xy_aimを生成する要求重心速度生成部74と、これらの重心速度推定値Vb_xy_s及び要求重心速度V_xy_aimから、電動モータ31R,31Lの回転角速度の許容範囲に応じた制限を加味して、重心速度Vb_xyの目標値としての制御用目標重心速度Vb_xy_mdfdを決定する重心速度制限部76と、後述する式07x,07yのゲイン係数の値を調整するためのゲイン調整パラメータKr_xyを決定するゲイン調整部78とを備える。
【0110】
制御ユニット50は、さらに、前記仮想車輪回転角速度指令ωw_xy_cmdを算出する姿勢制御演算部80と、この仮想車輪回転角速度指令ωw_xy_cmdを、右側の電動モータ31Rの速度指令ω_R_cmd(回転角速度の指令値)と左側の電動モータ31Lの速度指令ω_L_cmd(回転角速度の指令値)との組に変換するモータ指令演算部82とを備える。
【0111】
なお、図9中の参照符号84を付したものは、姿勢制御演算部80が制御処理周期毎に算出する仮想車輪回転角速度指令ωw_xy_cmdを入力する遅延要素を示している。該遅延要素84は、各制御処理周期において、仮想車輪回転角速度指令ωw_xy_cmdの前回値ωw_xy_cmd_pを出力する。
【0112】
前記ステップS9の車両制御演算処理では、これらの上記の各処理部の処理が以下に説明するように実行される。
【0113】
すなわち、制御ユニット50は、まず、偏差演算部70の処理と重心速度算出部72の処理とを実行する。
【0114】
偏差演算部70には、前記ステップS2で算出された基体傾斜角度計測値θb_xy_s(θb_x_s及びθb_y_s)と、前記ステップS5又はステップS7で設定された目標値θb_xy_obj(θb_x_obj及びθb_y_obj)とが入力される。そして、偏差演算部70は、θb_x_sからθb_x_objを減算することによって、Y軸周り方向の基体傾斜角度偏差計測値θbe_x_s(=θb_x_s−θb_x_obj)を算出すると共に、θb_y_sからθb_y_objを減算することによって、X軸周り方向の基体傾斜角度偏差計測値θbe_y_s(=θb_y_s−θb_y_obj)を算出する。
【0115】
なお、偏差演算部70の処理は、ステップS9の車両制御演算処理の前に行なうようにしてもよい。例えば、前記ステップS5又は7の処理の中で、偏差演算部70の処理を実行してもよい。
【0116】
前記重心速度算出部72には、前記ステップS2で算出された基体傾斜角速度計測値θbdot_xy_s(θbdot_x_s及びθbdot_y_s)の今回値が入力されると共に、仮想車輪速度指令ωw_xy_cmdの前回値ωw_xy_cmd_p(ωw_x_cmd_p及びωw_y_cmd_p)が遅延要素84から入力される。そして、重心速度算出部72は、これらの入力値から、前記倒立振子モデルに基づく所定の演算式によって、重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を算出する。
【0117】
具体的には、重心速度算出部72は、次式05x,05yにより、Vb_x_s及びVb_y_sをそれぞれ算出する。
Vb_x_s=Rw_x・ωw_x_cmd_p+h_x・θbdot_x_s ……05x
Vb_y_s=Rw_y・ωw_y_cmd_p+h_y・θbdot_y_s ……05y
【0118】
これらの式05x,05yにおいて、Rw_x,Rw_yは、前記したように、仮想車輪62_x,62_yのそれぞれの半径であり、これらの値は、あらかじめ設定された所定値である。また、h_x,h_yは、それぞれ倒立振子モデルの質点60_x,60_yの高さである。この場合、車両系重心点の高さは、ほぼ一定に維持されるものとされる。そこで、h_x,h_yの値としては、それぞれ、あらかじめ設定された所定値が用いられる。補足すると、高さh_x,h_yは、前記ステップS6又は8において値を設定する定数パラメータに含まれるものである。
【0119】
上記式05xの右辺の第1項は、仮想車輪62_xの速度指令の前回値ωw_x_cmd_pに対応する該仮想車輪62_xのX軸方向の移動速度であり、この移動速度は、車輪体5のX軸方向の実際の移動速度の現在値に相当するものである。また、式05xの右辺の第2項は、基体9がY軸周り方向にθbdot_x_sの傾斜角速度で傾動することに起因して生じる車両系重心点のX軸方向の移動速度(車輪体5に対する相対的な移動速度)の現在値に相当するものである。これらのことは、式05yについても同様である。
【0120】
なお、前記ロータリーエンコーダ56R,56Lの出力を基に計測される電動モータ31R,31Lのそれぞれの回転角速度の計測値(今回値)の組を、仮想車輪62_x,62_yのそれぞれの回転角速度の組に変換し、それらの回転角速度を、式05x、05yのωw_x_cmd_p、ωw_y_cmd_pの代わりに用いてもよい。ただし、回転角速度の計測値に含まれるノイズの影響を排除する上では、目標値であるωw_x_cmd_p、ωw_y_cmd_pを使用することが有利である。
【0121】
次に、制御ユニット50は、要求重心速度生成部74の処理とゲイン調整部78の処理とを実行する。この場合、要求重心速度生成部74及びゲイン調整部78には、それぞれ、重心速度算出部72で上記の如く算出された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)が入力される。
【0122】
そして、要求重心速度生成部74は、詳細は後述するが、車両1の動作モードが搭乗モードである場合に、入力された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を基に、要求重心速度V_xy_aim(V_x_aim,V_y_aim)を決定する。なお、車両1の動作モードが自立モードである場合には、要求重心速度生成部74は、要求重心速度V_x_aim及びV_y_aimをいずれも“0”とする。
【0123】
また、ゲイン調整部78は、入力された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を基に、前記ゲイン調整パラメータKr_xy(Kr_x及びKr_y)を決定する。
【0124】
このゲイン調整部78の処理を図10及び図11を参照して以下に説明する。
【0125】
図10に示すように、ゲイン調整部78は、入力された重心速度推定値Vb_x_s,Vb_y_sをリミット処理部86に入力する。このリミット処理部86では、重心速度推定値Vb_x_s,Vb_y_sに、電動モータ31R,31Lのそれぞれの回転角速度の許容範囲に応じた制限を適宜、加えることによって、出力値Vw_x_lim1,Vw_y_lim1を生成する。出力値Vw_x_lim1は、前記仮想車輪62_xのX軸方向の移動速度Vw_xの制限後の値、出力値Vw_y_lim1は、前記仮想車輪62_yのY軸方向の移動速度Vw_yの制限後の値としての意味を持つ。
【0126】
このリミット処理部86の処理を、図11を参照してさらに詳細に説明する。なお、図11中の括弧付きの参照符号は、後述する重心速度制限部76のリミット処理部100の処理を示すものであり、リミット処理部86の処理に関する説明では無視してよい。
【0127】
リミット処理部86は、まず、重心速度推定値Vb_x_s,Vb_y_sをそれぞれ処理部86a_x,86a_yに入力する。処理部86a_xは、Vb_x_sを仮想車輪62_xの半径Rw_xで除算することによって、仮想車輪62_xのX軸方向の移動速度をVb_x_sに一致させたと仮定した場合の該仮想車輪62_xの回転角速度ωw_x_sを算出する。同様に、処理部86a_yは、仮想車輪62_yのY軸方向の移動速度をVb_y_sに一致させたと仮定した場合の該仮想車輪62_yの回転角速度ωw_y_s(=Vb_y_s/Rw_y)を算出する。
【0128】
次いで、リミット処理部86は、ωw_x_s,ωw_y_sの組を、XY−RL変換部86bにより、電動モータ31Rの回転角速度ω_R_sと電動モータ31Lの回転角速度ω_L_sとの組に変換する。
【0129】
この変換は、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_s,ωw_y_s,ω_R_s,ω_L_sに置き換えて得られる連立方程式を、ω_R_s,ω_L_sを未知数として解くことにより行なわれる。
【0130】
次いで、リミット処理部86は、XY−RL変換部86bの出力値ω_R_s,ω_L_sをそれぞれ、リミッタ86c_R,86c_Lに入力する。このとき、リミッタ86c_Rは、ω_R_sが、あらかじめ設定された所定値の上限値(>0)と下限値(<0)とを有する右モータ用許容範囲内に収まっている場合には、ω_R_sをそのまま出力値ω_R_lim1として出力する。また、リミッタ86c_Rは、ω_R_sが、右モータ用許容範囲から逸脱している場合には、該右モータ用許容範囲の上限値と下限値とのうちのω_R_sに近い方の境界値を出力値ω_R_lim1として出力する。これにより、リミッタ86c_Rの出力値ω_R_lim1は、右モータ用許容範囲内の値に制限される。
【0131】
同様に、リミッタ86c_Lは、ω_L_sが、あらかじめ設定された所定値の上限値(>0)と下限値(<0)とを有する左モータ用許容範囲内に収まっている場合には、ω_L_sをそのまま出力値ω_L_lim1として出力する。また、リミッタ86c_Lは、ω_L_sが、左モータ用許容範囲から逸脱している場合には、該左モータ用許容範囲の上限値と下限値とのうちのω_L_sに近い方の境界値を出力値ω_L_lim1として出力する。これにより、リミッタ86c_Lの出力値ω_L_lim1は、左モータ用許容範囲内の値に制限される。
【0132】
上記右モータ用許容範囲は右側の電動モータ31Rの回転角速度(絶対値)が高くなり過ぎないようにし、ひいては、電動モータ31Rが出力可能なトルクの最大値が低下するのを防止するために設定された許容範囲である。このことは、左モータ用許容範囲についても同様である。
【0133】
次いで、リミット処理部86は、リミッタ86c_R,86c_Lのそれぞれの出力値ω_R_lim1,ω_L_lim1の組を、RL−XY変換部86dにより、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x_lim1,ωw_y_lim1の組に変換する。
【0134】
この変換は、前記XY−RL変換部86bの変換処理の逆変換の処理である。この処理は、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_lim1,ωw_y_lim1,ω_R_lim1,ω_L_lim1に置き換えて得られる連立方程式を、ωw_x_lim1,ωw_y_lim1を未知数として解くことにより行なわれる。
【0135】
次いで、リミット処理部86は、RL−XY変換部86dの出力値ωw_x_lim1,ωw_y_lim1をそれぞれ処理部86e_x,86e_yに入力する。処理部86e_xは、ωw_x_lim1に仮想車輪62_xの半径Rw_xを乗じることによって、ωw_x_lim1を仮想車輪62_xの移動速度Vw_x_lim1に変換する。同様に、処理部86e_yは、ωw_y_lim1を仮想車輪62_yの移動速度Vw_y_lim1(=ωw_y_lim1・Rw_y)に変換する。
【0136】
以上のリミット処理部86の処理によって、仮想車輪62_xのX軸方向の移動速度Vw_xと、仮想車輪62_yのY軸方向の移動速度Vw_yとをそれぞれ重心速度推定値Vb_x_s,Vb_y_sに一致させたと仮定した場合(換言すれば、車輪体5のX軸方向の移動速度とY軸方向の移動速度とをそれぞれ、Vb_x_s,Vb_y_sに一致させたと仮定した場合)に、それらの移動速度を実現するために必要な電動モータ31R,31Lのそれぞれの回転角速度ω_R_s,ω_L_sが、両方とも、許容範囲内に収まっている場合には、Vb_x_s,Vb_y_sにそれぞれ一致する出力値Vw_x_lim1,Vw_y_lim1の組がリミット処理部86から出力される。
【0137】
一方、電動モータ31R,31Lのそれぞれの回転角速度ω_R_s,ω_L_sの両方又は一方が許容範囲から逸脱している場合には、その両方又は一方の回転角速度が強制的に許容範囲内に制限された上で、その制限後の電動モータ31R,31Lのそれぞれの回転角速度ω_R_lim1,ω_L_lim1の組に対応する、X軸方向及びY軸方向の移動速度Vw_x_lim1,Vw_y_lim1の組がリミット処理部86から出力される。
【0138】
従って、リミット処理部86は、その出力値Vw_x_lim1,Vw_y_lim1の組に対応する電動モータ31R,31Lのそれぞれの回転角速度が許容範囲を逸脱しないことを必須の必要条件として、その必要条件下で可能な限り、出力値Vw_x_lim1,Vw_y_lim1をそれぞれVb_x_s,Vb_y_sに一致させるように、出力値Vw_x_lim1,Vw_y_lim1の組を生成する。
【0139】
図10の説明に戻って、ゲイン調整部78は、次に、演算部88_x,88_yの処理を実行する。演算部88_xには、X軸方向の重心速度推定値Vb_x_sと、リミット処理部86の出力値Vw_x_lim1とが入力される。そして、演算部88_xは、Vw_x_lim1からVb_x_sを減算してなる値Vover_xを算出して出力する。また、演算部88_yには、Y軸方向の重心速度推定値Vb_y_sと、リミット処理部86の出力値Vw_y_lim1とが入力される。そして、演算部88_yは、Vw_y_lim1からVb_y_sを減算してなる値Vover_yを算出して出力する。
【0140】
この場合、リミット処理部86での出力値Vw_x_lim1,Vw_y_lim1の強制的な制限が行なわれなかった場合には、Vw_x_lim1=Vb_x_s、Vw_y_lim1=Vb_y_sとなるので、演算部88_x,88_yのそれぞれの出力値Vover_x,Vover_yはいずれも“0”となる。
【0141】
一方、リミット処理部86の出力値Vw_x_lim1,Vw_y_lim1が、入力値Vb_x_s,Vb_y_sに対して強制的な制限を施して生成された場合には、Vw_x_lim1のVb_x_sからの修正量(=Vw_x_lim1−Vb_x_s)と、Vw_y_lim1のVb_y_sからの修正量(=Vw_y_lim1−Vb_y_s)とがそれぞれ、演算部88_x,88_yから出力される。
【0142】
次いで、ゲイン調整部78は、演算部88_xの出力値Vover_xを処理部90_x,92_xに順番に通すことによって、ゲイン調整パラメータKr_xを決定する。また、ゲイン調整部78は、演算部88_yの出力値Vover_yを処理部90_y,92_yに順番に通すことによって、ゲイン調整パラメータKr_yを決定する。なお、ゲイン調整パラメータKr_x,Kr_yは、いずれも“0”から“1”までの範囲内の値である。
【0143】
上記処理部90_xは、入力されるVover_xの絶対値を算出して出力する。また、処理部92_xは、その出力値Kr_xが入力値|Vover_x|に対して単調に増加し、且つ、飽和特性を有するようにKr_xを生成する。該飽和特性は、入力値がある程度大きくなると、入力値の増加に対する出力値の変化量が“0”になるか、もしくは、“0”に近づく特性である。
【0144】
この場合、処理部92_xは、入力値|Vover_x|があらかじめ設定された所定値以下である場合には、該入力値|Vover_x|に所定値の比例係数を乗じてなる値をKr_xとして出力する。また、処理部92_xは、入力値|Vover_x|が所定値よりも大きい場合には、“1”をKr_xとして出力する。なお、上記比例係数は、|Vover_x|が所定値に一致するときに、|Vover_x|と比例係数との積が“1”になるように設定されている。
【0145】
また、処理部90_y,92_yの処理は、それぞれ上記した処理部90_x,92_xの処理と同様である。
【0146】
以上説明したゲイン調整部78の処理によって、リミット処理部86での出力値Vw_x_lim1,Vw_y_lim1の強制的な制限が行なわれなかった場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度Vw_x,Vw_yを、それぞれ、重心速度推定値Vb_x_s,Vb_y_sに一致させるように電動モータ31R,31Lを動作させても、電動モータ31R,31Lのそれぞれの回転角速度が許容範囲内に収まるような場合には、ゲイン調整パラメータKr_x,Kr_yはいずれも“0”に決定される。
【0147】
一方、リミット処理部86の出力値Vw_x_lim1,Vw_y_lim1が、入力値Vb_x_s,Vb_y_sに対して強制的な制限を施して生成された場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度Vw_x,Vw_yを、それぞれ、重心速度推定値Vb_x_s,Vb_y_sに一致させるように電動モータ31R,31Lを動作させると、電動モータ31R,31Lのいずれかの回転角速度が許容範囲を逸脱してしまう場合(いずれかの回転角速度の絶対値が高くなり過ぎる場合)には、前記修正量Vover_x,Vover_yのそれぞれの絶対値に応じて、ゲイン調整パラメータKr_x,Kr_yの値がそれぞれ決定される。この場合、Kr_xは、“1”を上限値して、修正量Vx_overの絶対値が大きいほど、大きな値になるように決定される。このことは、Kr_yについても同様である。
【0148】
図9の説明に戻って、制御ユニット50は、重心速度算出部72及び要求重心速度生成部74の処理を前記した如く実行した後、次に、重心速度制限部76の処理を実行する。
【0149】
この重心速度制限部76には、重心速度算出部72で算出された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)と、要求重心速度生成部74で決定された要求重心速度V_xy_aim(V_x_aim及びV_y_aim)とが入力される。そして、重心速度制限部76は、これらの入力値を使用して、図12のブロック図で示す処理を実行することによって、制御用目標重心速度V_xy_mdfd(V_x_mdfd及びV_y_mdfd)を決定する。
【0150】
具体的には、重心速度制限部76は、まず、定常偏差算出部94_x,94_yの処理を実行する。
【0151】
この場合、定常偏差算出部94_xには、X軸方向の重心速度推定値Vb_x_sが入力されると共に、X軸方向の制御用目標重心速度Vb_x_mdfdの前回値Vb_x_mdfd_pが遅延要素96_xを介して入力される。そして、定常偏差算出部94_xは、まず、入力されるVb_x_sが比例・微分補償要素(PD補償要素)94a_xに入力する。この比例・微分補償要素94_xは、その伝達関数が1+Kd・Sにより表される補償要素であり、入力されるVb_x_sと、その微分値(時間的変化率)に所定値の係数Kdを乗じてなる値とを加算し、その加算結果の値を出力する。
【0152】
次いで、定常偏差算出部94_xは、入力されるVb_x_mdfd_pを、比例・微分補償要素94_xの出力値から減算してなる値を演算部94b_xにより算出した後、この演算部94b_xの出力値を、位相補償機能を有するローパスフィルタ94c_xに入力する。このローパスフィルタ94c_xは、伝達関数が(1+T2・S)/(1+T1・S)により表されるフィルタである。そして、定常偏差算出部94_xは、このローパスフィルタ94c_xの出力値Vb_x_prdを出力する。
【0153】
また、定常偏差算出部94_yには、Y軸方向の重心速度推定値Vb_y_sが入力されると共に、Y軸方向の制御用目標重心速度Vb_y_mdfdの前回値Vb_y_mdfd_pが遅延要素96_yを介して入力される。
【0154】
そして、定常偏差算出部94_yは、上記した定常偏差算出部94_xと同様に、比例・微分補償要素94a_y、演算部94b_y及びローパスフィルタ94c_yの処理を順次実行し、ローパスフィルタ94c_yの出力値Vb_y_prdを出力する。
【0155】
ここで、定常偏差算出部94_xの出力値Vb_x_prdは、Y軸方向から見た車両系重心点の現在の運動状態(換言すればY軸方向から見た倒立振子モデルの質点60_xの運動状態)から推測される、将来のX軸方向の重心速度推定値の収束予測値の制御用目標重心速度Vb_x_mdfdに対する定常偏差としての意味を持つものである。同様に、定常偏差算出部94_y出力値Vb_y_prdは、X軸方向から見た車両系重心点の現在の運動状態(換言すればX軸方向から見た倒立振子モデルの質点60_yの運動状態)から推測される、将来のY軸方向の重心速度推定値の収束予測値の制御用目標重心速度Vb_y_mdfdに対する定常偏差としての意味を持つものである。以降、定常偏差算出部94_x,94_yのそれぞれの出力値Vb_x_prd,Vb_y_prdを重心速度定常偏差予測値という。
【0156】
重心速度制限部76は、上記の如く定常偏差算出部94_x,94_yの処理を実行した後、定常偏差算出部94_xの出力値Vb_x_prdに要求重心速度Vb_x_aimを加算する処理と、定常偏差算出部94_yの出力値Vb_y_prdに要求重心速度Vb_y_aimを加算する処理とをそれぞれ、演算部98_x,98_yにより実行する。
【0157】
従って、演算部98_xの出力値Vb_x_tは、X軸方向の重心速度定常偏差予測値Vb_x_prdに、X軸方向の要求重心速度Vb_x_aimを付加した速度となる。同様に、演算部98_yの出力値Vb_y_tは、Y軸方向の重心速度定常偏差予測値Vb_y_prdに、Y軸方向の要求重心速度Vb_y_aimを付加した速度となる。
【0158】
なお、車両1の動作モードが自立モードである場合等、X軸方向の要求重心速度Vb_x_aimが“0”である場合には、X軸方向の重心速度定常偏差予測値Vb_x_prdがそのまま、演算部98_xの出力値Vb_x_tとなる。同様に、Y軸方向の要求重心速度Vb_y_aimが“0”である場合には、Y軸方向の重心速度定常偏差予測値Vb_y_prdがそのまま、演算部98_yの出力値Vb_y_tとなる。
【0159】
次いで、重心速度制限部76は、演算部98_x,98_yのそれぞれの出力値Vb_x_t,Vb_y_tを、リミット処理部100に入力する。このリミット処理部100の処理は、前記したゲイン調整部78のリミット処理部86の処理と同じである。この場合、図11に括弧付きに参照符号で示す如く、リミット処理部100の各処理部の入力値及び出力値だけがリミット処理部86と相違する。
【0160】
具体的には、リミット処理部100では、前記仮想車輪62_x,62_yのそれぞれの移動速度Vw_x,Vw_yを、Vb_x_t,Vb_y_tにそれぞれ一致させたと仮定した場合の各仮想車輪62_x,62_yの回転角速度ωw_x_t,ωw_y_tがそれぞれ処理部86a_x,86a_yにより算出される。そして、この回転角速度ωw_x_t,ωw_y_tの組が、XY−RL変換部86bにより、電動モータ31R,31Lの回転角速度ω_R_t,ω_L_tの組に変換される。
【0161】
さらに、これらの回転角速度ω_R_t,ω_L_tが、リミッタ86c_R,86c_Lによって、それぞれ、右モータ用許容範囲内の値と左モータ用許容範囲内の値とに制限される。そして、この制限処理後の値ω_R_lim2,ω_L_lim2が、RL−XY変換部86dによって、仮想車輪62_x,62_yの回転角速度ωw_x_lim2,ωw_y_lim2に変換される。
【0162】
次いで、この各回転角速度ωw_x_lim2,ωw_y_lim2に対応する各仮想車輪62_x,62_yの移動速度Vw_x_lim2,Vw_y_lim2がそれぞれ処理部86e_x,86e_yによって算出され、これらの移動速度Vw_x_lim2,Vw_y_lim2がリミット処理部100から出力される。
【0163】
以上のリミット処理部100の処理によって、リミット処理部100は、リミット処理部86と同様に、その出力値Vw_x_lim2,Vw_y_lim2の組に対応する電動モータ31R,31Lのそれぞれの回転角速度が許容範囲を逸脱しないことを必須の必要条件として、その必要条件下で可能な限り、出力値Vw_x_lim2,Vw_y_lim2をそれぞれVb_x_t,Vb_y_tに一致させるように、出力値Vw_x_lim2,Vw_y_lim2の組を生成する。
【0164】
なお、リミット処理部100における右モータ用及び左モータ用の各許容範囲は、リミット処理部86における各許容範囲と同一である必要はなく、互いに異なる許容範囲に設定されていてもよい。
【0165】
図12の説明に戻って、重心速度制限部76は、次に、演算部102_x,102_yの処理を実行することによって、それぞれ制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdを算出する。この場合、演算部102_xは、リミット処理部100の出力値Vw_x_lim2から、X軸方向の重心速度定常偏差予測値Vb_x_prdを減算してなる値をX軸方向の制御用目標重心速度Vb_x_mdfdとして算出する。同様に、演算部102_yは、リミット処理部100の出力値Vw_y_lim2から、Y軸方向の重心速度定常偏差予測値Vb_y_prdを減算してなる値をY軸方向の制御用目標重心速度Vb_y_mdfdとして算出する。
【0166】
以上のようにして決定される制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdは、リミット処理部100での出力値V_x_lim2,V_y_lim2の強制的な制限が行なわれなかった場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度を、それぞれ、演算部98_xの出力値Vb_x_tと演算部98_yの出力値Vb_y_tとに一致させるように電動モータ31R,31Lを動作させても、電動モータ31R,31Lのそれぞれの回転角速度が許容範囲内に収まるような場合には、要求重心速度Vb_x_aim,Vb_y_aimがそれぞれ、そのまま、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。
【0167】
なお、この場合、X軸方向の要求重心速度Vb_x_aimが“0”であれば、X軸方向の制御用目標重心速度Vb_x_mdfdも“0”となり、Y軸方向の要求重心速度Vb_y_aimが“0”であれば、Y軸方向の制御用目標重心速度Vb_y_mdfdも“0”となる。
【0168】
一方、リミット処理部100の出力値Vw_x_lim2,Vw_y_lim2が、入力値Vb_x_t,Vb_y_tに対して強制的な制限を施して生成された場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度を、それぞれ、演算部98_xの出力値Vb_x_tと演算部98_yの出力値Vb_y_tとに一致させるように電動モータ31R,31Lを動作させると、電動モータ31R,31Lのいずれかの回転角速度が許容範囲を逸脱してしまう場合(いずれかの回転角速度の絶対値が高くなり過ぎる場合)には、X軸方向については、リミット処理部100の出力値Vw_x_lim2の入力値Vb_x_tからの修正量(=Vw_x_lim2−Vb_x_t)だけ、要求重心速度Vb_x_aimを補正してなる値(当該修正量をVb_x_aimに加算した値)が、X軸方向の制御用目標重心速度Vb_x_mdfdとして決定される。
【0169】
また、Y軸方向については、リミット処理部100の出力値Vw_y_lim2の入力値Vb_y_tからの修正量(=Vw_y_lim2−Vb_y_t)だけ、要求重心速度Vb_y_aimを補正してなる値(当該修正量をVb_y_aimに加算した値)が、Y軸方向の制御用目標重心速度Vb_y_mdfdとして決定される。
【0170】
この場合において、例えばX軸方向の速度に関し、要求重心速度Vb_x_aimが“0”でない場合には、制御用目標重心速度Vb_x_mdfdは、要求重心速度Vb_x_aimよりも“0”に近づくか、もしくは、要求重心速度Vb_x_aimと逆向きの速度となる。また、要求重心速度Vb_x_aimが“0”である場合には、制御用目標重心速度Vb_x_mdfdは、定常偏差算出部94_xが出力するX軸方向の重心速度定常偏差予測値Vb_x_prdと逆向きの速度となる。これらのことは、Y軸方向の速度に関しても同様である。
【0171】
以上が、重心速度制限部76の処理である。
【0172】
図9の説明に戻って、制御ユニット50は、以上の如く重心速度算出部72、重心速度制限部76、ゲイン調整部78、及び偏差演算部70の処理を実行した後、次に、姿勢制御演算部80の処理を実行する。
【0173】
この姿勢制御演算部80の処理を、以下に図13を参照して説明する。なお、図13において、括弧を付していない参照符号は、X軸方向に輪転する仮想車輪62_xの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_x_comを決定する処理に係わる参照符号であり、括弧付きの参照符合は、Y軸方向に輪転する仮想車輪62_yの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_y_comを決定する処理に係わる参照符号である。
【0174】
姿勢制御演算部80には、偏差演算部70で算出された基体傾斜角度偏差計測値θbe_xy_sと、前記ステップS2で算出された基体傾斜角速度計測値θbdot_xy_sと、重心速度算出部72で算出された重心速度推定値Vb_xy_sと、重心速度制限部76で算出された目標重心速度Vb_xy_cmdと、ゲイン調整部78で算出されたゲイン調整パラメータKr_xyとが入力される。
【0175】
そして、姿勢制御演算部80は、まず、これらの入力値を用いて、次式07x,07yにより、仮想車輪回転角加速度指令ωdotw_xy_comを算出する。
ωwdot_x_cmd=K1_x・θbe_x_s+K2_x・θbdot_x_s
+K3_x・(Vb_x_s−Vb_x_mdfd) ……式07x
ωwdot_y_cmd=K1_y・θbe_y_s+K2_y・θbdot_y_s
+K3_y・(Vb_y_s−Vb_y_mdfd) ……式07y
【0176】
従って、Y軸方向から見た倒立振子モデルの質点60_xの運動(ひいては、Y軸方向から見た車両系重心点の運動)を制御するための操作量(制御入力)としての仮想車輪回転角加速度指令ωdotw_x_comと、X軸方向から見た倒立振子モデルの質点60_yの運動(ひいては、X軸方向から見た車両系重心点の運動)を制御するための操作量(制御入力)としての仮想車輪回転角加速度指令ωdotw_y_comとは、それぞれ、3つの操作量成分(式07x,07yの右辺の3つの項)を加え合わせることによって決定される。
【0177】
この場合、式07xにおける各操作量成分に係わるゲイン係数K1_x,K2_x,K3_xは、ゲイン調整パラメータKr_xに応じて可変的に設定され、式07yにおける各操作量成分に係わるゲイン係数K1_y,K2_y,K3_yは、ゲイン調整パラメータKr_yに応じて可変的に設定される。以降、式07xにおけるゲイン係数K1_x,K2_x,K3_xのそれぞれを第1ゲイン係数K1_x、第2ゲイン係数K2_x、第3ゲイン係数K3_xということがある。このことは、式07yにおけるゲイン係数K1_y,K2_y,K3_yについても同様とする。
【0178】
式07xにおける第iゲイン係数Ki_x(i=1,2,3)と、式07yにおける第iゲイン係数Ki_y(i=1,2,3)とは、図13中にただし書きで示した如く、次式09x、09yにより、ゲイン調整パラメータKr_x,Kr_yに応じて決定される。
Ki_x=(1−Kr_x)・Ki_a_x+Kr_x・Ki_b_x ……式09x
Ki_y=(1−Kr_y)・Ki_a_y+Kr_y・Ki_b_y ……式09y
ここで(i=1,2,3)
【0179】
ここで、式09xにおけるKi_a_x、Ki_b_xは、それぞれ、第iゲイン係数Ki_xの最小側(“0”に近い側)のゲイン係数値、最大側(“0”から離れる側)のゲイン係数値としてあらかじめ設定された定数値である。このことは、式09yにおけるKi_a_y、Ki_b_yについても同様である。
【0180】
従って、式07xの演算に用いる各第iゲイン係数Ki_x(i=1,2,3)は、それぞれに対応する定数値Ki_a_x、Ki_b_xの重み付き平均値として決定される。そして、この場合、Ki_a_x、Ki_b_xにそれぞれ掛かる重みが、ゲイン調整パラメータKr_xに応じて変化させられる。このため、Kr_x=0である場合には、Ki_x=Ki_a_xとなり、Kr_x=1である場合には、Ki_x=Ki_b_xとなる。そして、Kr_xが“0”から“1”に近づくに伴い、第iゲイン係数Ki_xはKi_a_xからKi_b_x近づいていく。
【0181】
同様に、式07yの演算に用いる各第iゲイン係数Ki_y(i=1,2,3)は、それぞれに対応する定数値Ki_a_y、Ki_b_yの重み付き平均値として決定される。そして、この場合、Ki_a_y、Ki_b_yにそれぞれ掛かる重みが、ゲイン調整パラメータKr_yに応じて変化させられる。このため、Ki_xの場合と同様に、Kr_yの値が“0”から“1”の間で変化するに伴い、第iゲイン係数Ki_yの値が、Ki_a_yとKi_b_yとの間で変化する。
【0182】
補足すると、上記定数値Ki_a_x、Ki_b_x及びKi_a_y,Ki_b_y(i=1,2,3)は、前記ステップS6又は8において値が設定される定数パラメータに含まれるものである。
【0183】
姿勢制御演算部80は、上記の如く決定した第1〜第3ゲイン係数K1_x,K2_x,K3_xを用いて前記式07xの演算を行なうことで、X軸方向に輪転する仮想車輪62_xに係わる仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
【0184】
さらに詳細には、図13を参照して、姿勢制御演算部80は、基体傾斜角度偏差計測値θbe_x_sに第1ゲイン係数K1_xを乗じてなる操作量成分u1_xと、基体傾斜角速度計測値θbdot_x_sに第2ゲイン係数K2_xを乗じてなる操作量成分u2_xとをそれぞれ、処理部80a,80bで算出する。さらに、姿勢制御演算部80は、重心速度推定値Vb_x_sと制御用目標重心速度Vb_x_mdfdとの偏差(=Vb_x_s−Vb_x_mdfd)を演算部80dで算出し、この偏差に第3ゲイン係数K3_xを乗じてなる操作量成分u3_xを処理部80cで算出する。そして、姿勢制御演算部80は、これらの操作量成分u1_x,u2_x,u3_xを演算部80eにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_comを算出する。
【0185】
同様に、姿勢制御演算部80は、上記の如く決定した第1〜第3ゲイン係数K1_y,K2_y,K3_yを用いて前記式07yの演算を行なうことで、Y軸方向に輪転する仮想車輪62_yに係わる仮想車輪回転角加速度指令ωwdot_y_cmdを算出する。
【0186】
この場合には、姿勢制御演算部80は、基体傾斜角度偏差計測値θbe_y_sに第1ゲイン係数K1_yを乗じてなる操作量成分u1_yと、基体傾斜角速度計測値θbdot_y_sに第2ゲイン係数K2_yを乗じてなる操作量成分u2_yとをそれぞれ、処理部80a,80bで算出する。さらに、姿勢制御演算部80は、重心速度推定値Vb_y_sと制御用目標重心速度Vb_y_mdfdとの偏差(=Vb_y_s−Vb_y_mdfd)を演算部80dで算出し、この偏差に第3ゲイン係数K3_yを乗じてなる操作量成分u3_yを処理部80cで算出する。そして、姿勢制御演算部80は、これらの操作量成分u1_y,u2_y,u3_yを演算部80eにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_comを算出する。
【0187】
ここで、式07xの右辺の第1項(=第1操作量成分u1_x)及び第2項(=第2操作量成分u2_x)は、Y軸周り方向での基体傾斜角度偏差計測値θbe_x_sを、フィードバック制御則としてのPD則(比例・微分則)により“0”に収束させる(基体傾斜角度計測値θb_x_sを目標値θb_x_objに収束させる)ためのフィードバック操作量成分としての意味を持つ。
【0188】
また、式07xの右辺の第3項(=第3操作量成分u3_x)は、重心速度推定値Vb_x_sと目標重心速度Vb_x_mdfdとの偏差をフィードバック制御則としての比例則により“0”に収束させる(Vb_x_sをVb_x_mdfdに収束させる)ためのフィードバック操作量成分としての意味を持つ。
【0189】
これらのことは、式07yの右辺の第1〜第3項(第1〜第3操作量成分u1_y,u2_y,u3_y)についても同様である。
【0190】
姿勢制御演算部80は、上記の如く、仮想車輪回転角加速度指令ωwdot_x_com,ωwdot_y_comを算出した後、次に、これらのωwdot_x_com,ωwdot_y_comをそれぞれ積分器80fにより積分することによって、前記仮想車輪回転速度指令ωw_x_com,ωw_y_comを決定する。
【0191】
以上が姿勢制御演算部80の処理の詳細である。
補足すると、式07xの右辺の第3項を、Vb_x_sに応じた操作量成分(=K3_x・Vb_x_s)と、Vb_x_mdfdに応じた操作量成分(=−K3_x・Vb_x_mdfd)とに分離した式によって、仮想車輪回転角加速度指令ωdotw_x_comを算出するようにしてよい。同様に、式07yの右辺の第3項を、Vb_y_sに応じた操作量成分(=K3_y・Vb_y_s)と、Vb_y_mdfdに応じた操作量成分(=−K3_y・Vb_y_mdfd)とに分離した式によって、仮想車輪回転角加速度指令ωdotw_y_comを算出するようにしてよい。
【0192】
また、倒立振子型車両1においては、車両系重心点の挙動を制御するための操作量(制御入力)として、仮想車輪62_x,62_yの回転角加速度指令ωw_x_cmd,ωw_y_cmdを用いるようにしたが、例えば、仮想車輪62_x,62_yの駆動トルク、あるいは、この駆動トルクに各仮想車輪62_x,62_yの半径Rw_x,Rw_yを乗じてなる並進力(すなわち仮想車輪62_x,62_yと床面との間の摩擦力)を操作量として用いるようにしてもよい。
【0193】
図9の説明に戻って、制御ユニット50は、次に、姿勢制御演算部80で上記の如く決定した仮想車輪回転速度指令ωw_x_com,ωw_y_comをモータ指令演算部82に入力し、該モータ指令演算部82の処理を実行することによって、電動モータ31Rの速度指令ω_R_comと電動モータ31Lの速度指令ω_L_comとを決定する。このモータ指令演算部82の処理は、前記リミット処理部86(図11参照)のXY−RL変換部86bの処理と同じである。
【0194】
具体的には、モータ指令演算部82は、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_com,ωw_y_com,ω_R_cmd,ω_L_cmdに置き換えて得られる連立方程式を、ω_R_cmd,ω_L_cmdを未知数として解くことによって、電動モータ31R,31Lのそれぞれの速度指令ω_R_com,ω_L_comを決定する。
【0195】
以上により前記ステップS9の車両制御演算処理が完了する。
【0196】
以上説明した如く制御ユニット50が制御演算処理を実行することによって、前記搭乗モード及び自立モードのいずれの動作モードにおいても、基本的には、基体9の姿勢が、前記基体傾斜角度偏差計測値θbe_x_s,θbe_y_sの両方が“0”となる姿勢(以下、この姿勢を基本姿勢という)に保たれるように、換言すれば、車両系重心点(車両・乗員全体重心点又は車両単体重心点)の位置が、車輪体5の接地面のほぼ真上に位置する状態に保たれるように、操作量(制御入力)としての仮想車輪回転角加速度指令ωdotw_xy_comが決定される。より詳しく言えば、基体9の姿勢を前記基本姿勢に保ちつつ、車両系重心点の移動速度の推定値としての重心速度推定値Vb_xy_sを制御用目標重心速度Vb_xy_mdfdに収束させるように、仮想車輪回転角加速度指令ωdotw_xy_comが決定される。なお、制御用目標重心速度Vb_xy_mdfdは、通常は(詳しくは搭乗モードで乗員等が車両1の付加的な推進力を付与しない限り)、“0”である。この場合には、基体9の姿勢を前記基本姿勢に保ちつつ、車両系重心点がほぼ静止するように、仮想車輪回転角加速度指令ωdotw_xy_comが決定されることとなる。
【0197】
そして、ωdotw_xy_comの各成分を積分してなる仮想車輪回転角速度指令ωw_xy_comを変換してなる電動モータ31R,31Lのそれぞれの回転角速度が、電動モータ31R,31Lの速度指令ω_R_cmd,ω_L_cmdとして決定される。さらに、その速度指令ω_R_cmd,ω_L_cmdに従って、各電動モータ31R,31Lの回転速度が制御される。ひいては車輪体5のX軸方向及びY軸方向のそれぞれの移動速度が、ωw_x_comに対応する仮想車輪62_xの移動速度と、ωw_y_comに対応する仮想車輪62_yの移動速度とに各々一致するように制御される。
【0198】
このため、例えば、Y軸周り方向で、実際の基体傾斜角度θb_xが目標値θb_x_objから前傾側にずれると、そのずれを解消すべく(θbe_x_sを“0”に収束させるべく)、車輪体5が前方に向かって移動する。同様に、実際のθb_xが目標値θb_x_objから後傾側にずれると、そのずれを解消すべく(θbe_x_sを“0”に収束させるべく)、車輪体5が後方に向かって移動する。
【0199】
また、例えば、X軸周り方向で、実際の基体傾斜角度θb_yが目標値θb_y_objから右傾側にずれると、そのずれを解消すべく(θbe_y_sを“0”に収束させるべく)、車輪体5が右向きに移動する。同様に、実際のθb_yが目標値θb_y_objから左傾側にずれると、そのずれを解消すべく(θbe_y_sを“0”に収束させるべく)、車輪体5が左向きに移動する。
【0200】
さらに、実際の基体傾斜角度θb_x,θb_yの両方が、それぞれ目標値θb_x_obj,θb_y_objからずれると、θb_xのずれを解消するための車輪体5の前後方向の移動動作と、θb_yのずれを解消するための車輪体5の左右方向の移動動作とが合成され、車輪体5がX軸方向及びY軸方向の合成方向(X軸方向及びY軸方向の両方向に対して傾斜した方向)に移動することとなる。
【0201】
このようにして、基体9が前記基本姿勢から傾くと、その傾いた側に向かって、車輪体5が移動することとなる。従って、例えば前記搭乗モードにおいて、乗員が意図的にその上体を傾けると、その傾けた側に、車輪体5が移動することとなる。
【0202】
なお、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdが“0”である場合には、基体9の姿勢が基本姿勢に収束すると、車輪体5の移動もほぼ停止する。また、例えば、基体9のY軸周り方向の傾斜角度θb_xを基本姿勢から傾いた一定の角度に維持すると、車輪体5のX軸方向の移動速度は、その角度に対応する一定の移動速度(制御用目標重心速度Vb_x_mdfdと一定の定常偏差を有する移動速度)に収束する。このことは、基体9のX軸周り方向の傾斜角度θb_yを基本姿勢から傾いた一定の角度に維持した場合も同様である。
【0203】
また、例えば、前記要求重心速度生成部74で生成される要求重心速度Vb_x_aim,Vb_y_aimの両方が“0”となっている状況において、基体9の前記基本姿勢からの傾き量(基体傾斜角度偏差計測値θbe_x_s,θbe_y_s)が比較的大きくなり、それを解消し、もしくはその傾き量を維持するために必要な車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度(これらの移動速度は、それぞれ、図12に示した前記重心速度定常偏差予測値Vb_x_prd、Vb_y_prdに相当する)が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になるような状況では、該車輪体5の移動速度に対して逆向きとなる速度(詳しくは、Vw_x_lim2−Vb_x_prd及びVw_y_lim2−Vb_y_prd)が制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。そして、制御入力を構成する操作量成分のうちの操作量成分u3_x,u3_yが、この制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sをそれぞれ収束させるように決定される。このため、基体9の前記基本姿勢からの傾き量が過大になるのを予防し、ひいては、電動モータ31R,31Lの一方又は両方の回転角速度が高速になり過ぎるのが防止される。
【0204】
さらに、前記ゲイン調整部78では、重心速度推定値Vb_x_s,Vb_y_sの一方又は両方が大きくなり、ひいては、基体9の前記基本姿勢からの傾きを解消し、もしくはその傾き量を維持するために必要な車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になる恐れがある状況では、その逸脱が顕著になるほど(詳しくは、図10に示すVover_x,Vover_yの絶対値が大きくなるほど)、前記ゲイン調整パラメータKr_x,Kr_yの一方又は両方が“0”から“1”に近づけられる。
【0205】
この場合、前記式09xにより算出される各第iゲイン係数Ki_x(i=1,2,3)は、Kr_xが“1”に近づくほど、最小側の定数値Ki_a_xから最大側の定数値Ki_b_xに近づく。このことは、前記式09yにより算出される各第iゲイン係数Ki_y(i=1,2,3)についても同様である。
【0206】
そして、上記ゲイン係数の絶対値が大きくなることによって、基体9の傾きの変化に対する操作量(仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmd)の感度が高まる。従って、基体9の基本姿勢からの傾き量が大きくなろうとすると、それを素早く解消するように、車輪体5の移動速度が制御されることとなる。従って、基体9が基本姿勢から大きく傾くことが強めに抑制され、ひいては、車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になるのを防止することができる。
【0207】
また、搭乗モードにおいて、要求重心速度生成部74が、乗員等の操縦操作による要求に応じて要求重心速度Vb_x_aim,Vb_y_aim(Vb_x_aim,Vb_y_aimの一方又は両方が“0”でない要求重心速度)を生成した場合には、電動モータ31R,31Lの一方又は両方の回転角速度が許容範囲を逸脱するような高速の回転角速度にならない限り(詳しくは図12に示すVw_x_lim2,Vw_y_lim2がVb_x_t,Vb_y_tにそれぞれ一致する限り)、要求重心速度Vb_x_aim,Vb_y_aimがそれぞれ前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。このため、要求重心速度Vb_x_aim,Vb_y_aimを実現するように(実際の重心速度が要求重心速度Vb_x_aim,Vb_y_aimに近づくように)、車輪体5の移動速度が制御される。
【0208】
次に、説明を後回しにした、前記要求重心速度生成部74の処理の詳細を説明する。
要求重心速度生成部74は、車両1の動作モードが自立モードである場合には、前記したように、要求重心速度Vb_x_aim,Vb_y_aimを“0”とする。
【0209】
一方、要求重心速度生成部74は、車両1の動作モードが搭乗モードである場合には、乗員等による車両1の操縦操作(車両1に推進力を付加する操作)に応じて、該操作により要求されると推定される要求重心速度Vb_x_aim,Vb_y_aimを決定する。
【0210】
ここで、例えば、車両1の乗員が、車両1の発進時等において、車両1の移動速度(車両系重心点の移動速度)を積極的に増速させようとする場合には、自身の足により床を蹴り、それにより車両1に移動速度を増速させる推進力(乗員の足平と床との摩擦力による推進力)を車両1に付加する。あるいは、例えば、車両1の乗員の要求に応じて、外部の補助者等が、車両1にその移動速度を増速させる推進力を付加する場合もある。
【0211】
このような場合に、要求重心速度生成部74は、車両系重心点の実際の速度ベクトル(以降、重心速度ベクトル↑Vbという)の大きさ(絶対値)の時間的変化率に基づいて、車両1の移動速度を増加させる要求としての加速要求が発生したか否かを判断しつつ、それに応じて、↑Vbの目標値としての要求重心速度ベクトル↑Vb_aim(要求重心速度Vb_x_aim,Vb_y_aimを2つの成分とする速度ベクトル)を逐次決定する。
【0212】
その処理を概略的に説明すると、上記加速要求が発生した場合には、該加速要求が解消するまでの間、要求重心速度ベクトル↑Vb_aimの大きさを増加させるように、要求重心速度ベクトル↑Vb_aimが決定される。そして、上記加速要求が解消すると、要求重心速度ベクトル↑Vb_aimの大きさを段階的に減衰させていくように、要求重心速度ベクトル↑Vb_aimが決定される。この場合、基本的には、加速要求が解消してから、所定時間の期間、要求重心速度ベクトル↑Vb_aimの大きさが一定に保たれる。そして、その後に、要求重心速度ベクトル↑Vb_aimの大きさが“0”まで連続的に減衰させられる。なお、この減衰時には、適宜、要求重心速度ベクトル↑Vb_aimの向きがX軸方向に近づけられる。
【0213】
このような処理を実行する要求重心速度生成部74を、図14〜図20のフローチャートを参照して以下に詳細に説明する。
【0214】
図14を参照して、要求重心速度生成部74は、まず、ステップS21の処理を実行する。この処理では、要求重心速度生成部74は、入力される重心速度推定値Vb_x_s,Vb_y_sを2つの成分とする速度ベクトル(実際の重心速度ベクトル↑Vbの観測値)である推定重心速度ベクトル↑Vb_sの大きさ|↑Vb_s|(|↑Vb_s|=sqrt(Vb_x_s2+Vb_y_s2))の時間的変化率(微分値)DVb_sを算出する。このDVb_sは、実際の重心速度ベクトル↑Vbの大きさの時間的変化率の観測値(推定値)としての意味を持つ。以降、DVb_sを推定重心速度絶対値変化率DVb_sという。なお、上記sqrt( )は、平方根関数である。
【0215】
さらに、ステップS21では、要求重心速度生成部74は、入力される重心速度推定値Vb_x_s,Vb_y_sのそれぞれの時間的変化率(微分値)である重心加速度推定値Vbdot_x_s,Vvdot_y_sを算出する。なお、Vbdot_x_s,Vvdot_y_sを2つの成分とするベクトルは、車両系重心点の実際の加速度ベクトルの観測値を意味する。
【0216】
次いで、ステップS22に進んで、要求重心速度生成部74は、要求重心速度Vb_x_aimを算出するための現在の演算処理モードが、どのモードであるかを判断する。
【0217】
ここで、要求重心速度生成部74は、要求重心速度ベクトル↑Vb_aimの基本値(以降、基本要求重心速度ベクトル↑Vb_aim1という)を決定した上で、この基本要求重心速度ベクトル↑Vb_aim1に要求重心速度ベクトル↑Vb_aimを追従させるように(定常的には一致させるように)、要求重心速度ベクトル↑Vb_aimを決定する。
【0218】
上記演算処理モードは、上記基本要求重心速度ベクトル↑Vb_aim1の決定の仕方の種別を表すものである。そして、該演算処理モードとしては、制動モード、速度追従モード、速度ホールドモードの3種類のモードがある。
【0219】
制動モードは、基本要求重心速度ベクトル↑Vb_aim1の大きさを“0”に減衰させていくか、又は“0”に保持するように↑Vb_aim1を決定するモードである。また、速度追従モードは、基本要求重心速度ベクトル↑Vb_aim1を、推定重心速度ベクトル↑Vb_sに追従させるように(一致又はほぼ一致させるように)決定するモードである。また、速度ホールドモードは、基本要求重心速度ベクトル↑Vb_aim1の大きさを一定に保つように↑Vb_aim1を決定するモードである。
【0220】
なお、制御ユニット50の起動時等に該制御ユニット50が初期化された状態での演算処理モード(初期演算処理モード)は、制動モードである。
【0221】
要求重心速度生成部74は、上記ステップS22において、現在の演算処理モードが制動モードである場合と、速度追従モードである場合と、速度ホールドモードである場合とで、それぞれ、次に、ステップS23の演算処理、ステップS24の演算処理、ステップS25の演算処理を実行し、基本要求重心速度ベクトル↑Vb_aim1を決定する。
【0222】
これらの各モードに対応する演算処理は、次のように実行される。
ステップS23における制動モードの演算処理は、図15のフローチャートに示す如く実行される。具体的には、要求重心速度生成部74は、まず、前記ステップS21で算出した推定重心速度絶対値変化率DVb_sと、重心加速度推定値Vbdot_x_s,Vbdot_y_sとに関して、「DVb_s>DV1」、且つ、「|Vbdot_x_s|>a1*|Vbdot_y_s|」という条件が成立するか否かをステップS23−1で判断する。この判断処理は、車両1の移動速度を車両1の概略前後方向で増速させようとする加速要求が有るか否かを判断する処理である。
【0223】
ここで、上記DV1は、あらかじめ設定された正の値の第1閾値DV1(>0)である。そして、DVb_s>DV1であるということは、実際の重心速度ベクトル↑Vbの大きさ|↑Vb|が第1閾値DV1よりも大きな時間的変化率で増加している状況を意味する。
【0224】
また、上記a1は、あらかじめ設定された正の値の係数値である。そして、|Vbdot_x_s|>a1*|Vbdot_y_s|であるということは、車両系重心点の実際の加速度ベクトルが“0”でないX軸方向の成分を有し、且つ、該加速度ベクトルのX軸方向に対する鋭角側の角度(=tan-1(|Vbdot_y_s|/|Vbdot_x_s|)が、所定角度(=tan-1(1/a1))よりも“0”に近い状況であることを意味する。この例では、a1は、例えば“1”又はこれに近い値に設定されている。
【0225】
従って、ステップS23−1の判断結果が肯定的になる状況は、乗員あるいは外部の補助者等により概略前後方向での重心速度ベクトル↑Vbの大きさを増加させようとする操縦操作(車両1に概略前後方向の推進力を付加する操縦操作)が行なわれている状況である。
【0226】
ステップS23−1の判断結果が否定的となる場合、すなわち、車両1の加速要求(概略前後方向での車両1の加速要求)が無い場合には、要求重心速度生成部74は、次に、ステップS23−4の判断処理を実行する。
【0227】
ステップS23−4の判断処理では、要求重心速度生成部74は、ステップS21で算出した推定重心速度絶対値変化率DVb_sが、あらかじめ設定された負の値の第3閾値DV3(<0)よりも小さいか否かを判断する。この判断処理は、車両1の乗員が重心速度ベクトル↑Vbの大きさを積極的に減少させようとする減速要求が発生したか否かを判断するものである。この場合、車両1の乗員が意図的に自身の足を接地させ、自身の足と床との間に車両1の制動方向の摩擦力を発生させたような場合にステップS23−4の判断結果が肯定的になる。
【0228】
そして、要求重心速度生成部74は、ステップS23−4の判断結果が否定的である場合(減速要求が発生していない場合)には、ステップS23−5で第1制動演算処理を実行することによって、基本要求重心速度ベクトル↑Vb_aim1の大きさ|↑Vb_aim1|(以降、基本要求重心速度ベクトル絶対値|↑Vb_aim1|という)と方位角θvb_aim1(以降、基本要求重心速度ベクトル方位角θvb_aim1という)とを決定し、図15の処理を終了する。また、ステップS23−4の判断結果が肯定的である場合(減速要求が発生した場合には)、要求重心速度生成部74は、ステップS23−6で第2制動演算処理を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定し、図15の処理を終了する。
【0229】
なお、基本要求重心速度ベクトル方位角θvb_aim1は、sin(θvb_aim1)=Vb_x_aim1/|↑Vb_aim1|,cos(θvb_aim1)=Vb_y_aim1/|↑Vb_aim1|となる角度(180°≦θVb_aim≦180°)として定義される。また、|↑Vb_aim|=0である場合には、θVb_aim=0°であるとする。
【0230】
上記ステップS23−5の第1制動演算処理は、図16及び図17のフローチャートに示す如く実行される。
【0231】
この第1制動演算処理(減速要求が発生している場合)では、要求重心速度生成部74は、まず、ステップS23−5−1において基本要求重心速度ベクトル絶対値|↑Vb_aim1|の前回値|↑Vb_aim_p|からあらかじめ設定された正の所定値ΔVb1だけ減少させてなる値を、|↑Vb_aim1|の候補値ABS_Vbとして算出する。ΔVb1は、制御処理周期毎の|↑Vb_aim1|の減少量(ひいては|↑Vb_aim1|の時間的変化率)を規定する設定値である。
【0232】
次いで、要求重心速度生成部74は、ステップS23−5−2において、この候補値ABS_Vbと、“0”とのうちの大きい方の値max(0,ABS_Vb)を、|↑Vb_aim1|の今回値として決定する。従って、ABS_Vb≧0である場合には、ABS_Vbがそのまま|↑Vb_aim1|の今回値として決定され、ABS_Vb<0である場合には、|↑Vb_aim1|の今回値は“0”とされる。
【0233】
次いで、要求重心速度生成部74は、上記の如く決定した|↑Vb_aim1|が“0”であるか否かをステップS23−5−3で判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−4において、θvb_aim1の今回値を0°とし、図16の処理を終了する。
【0234】
ステップS23−5−3の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−5からの処理によって、θvb_aim1の前回値θvb_aim1_pの値が、0°≦θvb_aim1_p≦θth1+、θth1-≦θvb_aim1_p<0°、θth2+≦θvb_aim1_p≦180°、−180°≦θvb_aim1_p≦θth2-、θth1+<θvb_aim1_p<θth2+、θth2-<θvb_aim1_p<θth1-のいずれの範囲内の値であるかに応じて、θvb_aim1の今回値を決定する。
【0235】
ここで、θth1+は、0°と90°との間の値であらかじめ設定された正の方位角閾値、θth1-は、0°と−90°との間の値であらかじめ設定された負の方位角閾値、θth2+は、90°と180°との間の値であらかじめ設定された正の方位角閾値、θth2-は、−90°と−180°との間の値であらかじめ設定された負の方位角閾値である。この例では、θth1+とθth1-とは、それらの絶対値が互いに同一の値(例えば45°もしくはその近辺の角度値)に設定されている。また、θth2+とθth2-とは、それらの絶対値が互いに同一の値(例えば135°もしくはその近辺の角度値)に設定されている。なお、θth1+とθth1-との差(=(θth1+)−(θth1-))と、θth2とθth2-との差(=(θth2+)−(θth2-))とは、互いに同一である必要はない。
【0236】
ステップS23−5−5からの処理は以下に説明する如く実行される。すなわち、要求重心速度生成部74は、ステップS23−5−5において、0°≦θvb_aim1_p≦θth1+であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−6において、θvb_aim1の前回値θvb_aim1_pからあらかじめ設定された正の所定値Δθvb1だけ減少させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。Δθvb1は、制御処理周期毎のθvb_aim1の変化量(ひいてはθvb_aim1の時間的変化率)を規定する設定値である。
【0237】
そして、要求重心速度生成部74は、ステップS23−5−7において、この候補値ANG_Vbと、0°とのうちの大きい方の角度値max(0,ANG_Vb)をθvb_aim1の今回値として決定し、図16の処理を終了する。従って、ANG_Vb≧0°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb<0°である場合には、θvb_aim1の今回値は0°とされる。
【0238】
ステップS23−5−5の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−8において、θth1-≦θvb_aim1_p<0°であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−9において、θvb_aim1の前回値θvb_aim1_pから前記所定値Δθvb1だけ増加させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。
【0239】
そして、要求重心速度生成部74は、ステップS23−5−10において、この候補値ANG_Vbと、0°とのうちの小さい方の角度値min(0,ANG_Vb)をθvb_aim1の今回値として決定し、図16の処理を終了する。従って、ANG_Vb≦0°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb>0°である場合には、θvb_aim1の今回値は0°とされる。
【0240】
ステップS23−5−8の判断結果が否定的である場合には、要求重心速度生成部74は、次に、図17のステップS23−5−11において、θth2+≦θvb_aim1_p≦180°であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−12において、θvb_aim1の前回値θvb_aim1_pから前記所定値Δθvb1だけ増加させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。
【0241】
そして、要求重心速度生成部74は、ステップS23−5−13において、この候補値ANG_Vbと、0°とのうちの小さい方の角度値min(180,ANG_Vb)をθvb_aim1の今回値として決定し、図17の処理を終了する。従って、ANG_Vb≦180°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb>180°である場合には、θvb_aim1の今回値は180°とされる。
【0242】
ステップS23−5−11の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−14において、−180°≦θvb_aim1_p≦θth2-であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−15において、θvb_aim1の前回値θvb_aim1_pから前記所定値Δθvb1だけ減少させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。
【0243】
そして、要求重心速度生成部74は、ステップS23−5−16において、この候補値ANG_Vbと、−180°とのうちの大きい方の角度値max(180,ANG_Vb)をθvb_aim1の今回値として決定し、図17の処理を終了する。従って、ANG_Vb≧−180°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb<−180°である場合には、θvb_aim1の今回値は−180°とされる。
【0244】
ステップS23−5−14の判断結果が否定的である場合、すなわち、θth1+<θvb_aim1_p<θth2+又はθth2-<θvb_aim1_p<θth1-である場合には、要求重心速度生成部74は、ステップS23−5−17において、θvb_aim1の今回値を、前回値θvb_aim1_pと同じ値に決定し、図17の処理を終了する。
【0245】
以上が、ステップS23−5の第1制動演算処理の詳細である。
【0246】
一方、図15に示す前記ステップS23−6の第2制動演算処理(減速要求が発生した場合)は、図18のフローチャートに示す如く実行される。
【0247】
この第2制動演算処理では、要求重心速度生成部74は、まず、ステップS23−6−1において基本要求重心速度ベクトル絶対値|↑Vb_aim1|の前回値|↑Vb_aim_p|からあらかじめ設定された正の所定値ΔVb2だけ減少させてなる値を、|↑Vb_aim1|の候補値ABS_Vbとして算出する。ΔVb2は、第2制動演算処理での、制御処理周期毎の|↑Vb_aim1|の減少量(ひいては|↑Vb_aim1|の時間的変化率)を規定する設定値である。この場合、ΔVb2は、前記第1制動演算処理で使用する所定値ΔVb1よりも大きな値に設定されている。
【0248】
次いで、要求重心速度生成部74は、ステップS23−6−2において、前記ステップS23−5−2と同様の処理を実行し、ステップS23−6−1で算出した候補値ABS_Vbと、“0”とのうちの大きい方の値max(0,ABS_Vb)を、|↑Vb_aim1|の今回値として決定する。
【0249】
次いで、要求重心速度生成部74は、上記の如く決定した|↑Vb_aim1|が“0”であるか否かをステップS23−6−3で判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、次に、ステップS23−6−4において、θvb_aim1の今回値を“0”とし、図18の処理を終了する。
【0250】
また、ステップS23−6−3の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−6−5において、θvb_aim1の今回値を、前回値θvb_aim1_pと同じ値に決定し、図18の処理を終了する。
【0251】
以上が、ステップS23−6の第2制動演算処理の詳細である。
【0252】
図15の説明に戻って、前記ステップS23−1の判断結果が肯定的である場合、すなわち、概略前後方向での車両1の加速要求が有る場合には、要求重心速度生成部74は、ステップS23−2で基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。要求重心速度生成部74は、ステップS23−3で演算処理モードを制動モードから速度追従モードに変更し、図15の処理を終了する。
【0253】
上記ステップS23−2では、具体的には、前記推定重心速度ベクトル↑Vb_s(今回値)の大きさ|↑Vb_s|(=sqrt(Vb_x_s2+Vb_y_s2))に、あらかじめ設定された所定値の比率γを乗じてなる値が、基本要求重心速度ベクトル絶対値|↑Vb_aim1|として決定される。上記比率γは、“1”よりも若干小さい正の値(例えば0.8)に設定されている。
【0254】
さらに、ステップS23−2では、推定重心速度ベクトル↑Vb_sの方位角θvb_s(=sin-1(Vb_x_s/|↑Vb_s|))がそのまま、基本要求重心速度ベクトル方位角θvb_aim1として決定される。従って、ステップS23−2では、結果的には、推定重心速度ベクトル↑Vb_sに上記比率γを乗じてなるベクトルが、基本要求重心速度ベクトル↑Vb_aim1として決定されることとなる。
【0255】
このようなステップS23−2の処理は、|↑Vb_x_aim1|とθvb_aim1との決定の仕方を、次回の制御処理サイクルから開始する速度追従モードに合わせるものである。
【0256】
なお、上記比率γの値が“1”よりも若干小さいことは必須ではなく、例えば、該比率γの値を“1”あるいはそれよりも若干大きい値に設定してもよい。この例では、乗員が体感的(感覚的)に認識する車両1の移動速度が、実際の移動速度に比べて高速であるかのように認識されるのを防止するために、比率γの値を“1”よりも若干小さい値に設定している。
【0257】
以上が、ステップS23における制動モードの演算処理である。
【0258】
なお、ステップS23−1の判断結果が否定的となる場合には、演算処理モードは変更されないので、次回の制御処理周期においても、演算処理モードは、制動モードに維持されることとなる。
【0259】
次に、図14に示すステップS24における速度追従モードの演算処理は、図19のフローチャートに示す如く実行される。具体的には、要求重心速度生成部74は、まず、ステップS24−1において、前記ステップS23−4と同じ判断処理、すなわち、車両1の減速要求が発生したか否かの判断処理を実行する。
【0260】
この判断結果が肯定的である場合には、要求重心速度生成部74は、次に、ステップS24−6において、前記ステップS23−6と同じ処理(図18のフローチャートに示す処理)を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。さらに、要求重心速度生成部74は、ステップS24−7において、演算処理モードを速度追従モードから制動モードに変更し、図19の処理を終了する。
【0261】
一方、前記ステップS24−1の判断結果が否定的である場合、すなわち、車両1の減速要求が発生していない場合には、要求重心速度生成部74は、次にステップS24−2の処理を実行する。このステップS24−2では、要求重心速度生成部74は、前記ステップS23−2と同じ処理を実行し、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。すなわち、|↑Vb_x_s|*γが|↑Vb_aim1|として決定される共に、θvb_sがθvb_aim1として決定される。
【0262】
次いで、要求重心速度生成部74は、ステップS24−3において、前記推定重心速度絶対値変化率DVb_s(ステップS21で算出した値)が、あらかじめ設定された第2閾値DV2よりも小さいか否かを判断する。この第2閾値DV2は、前記第3閾値DV3よりも大きい(DV3よりも“0”に近い)負の所定値に設定されている。なお、第2閾値DV2は、“0”もしくは“0”よりも若干大きい正の値(ただし、前記第1閾値DV1よりも小さい値)に設定されていてもよい。
【0263】
このステップS24−3の判断処理は、速度追従モードから、前記速度ホールドモードへの移行タイミングを判断するものである。そして、要求重心速度生成部74は、ステップS24−3の判断結果が否定的である場合には、そのまま図19の処理を終了する。この場合には、演算処理モードは変更されないので、次回の制御処理周期においても、演算処理モードは、速度追従モードに維持されることとなる。
【0264】
また、ステップS24−3の判断結果が肯定的である場合には、要求重心速度生成部74は、車両1の加速要求が完了したものとみなして、ステップS24−4において、カウントダウンタイマを初期化する。そして、要求重心速度生成部74は、ステップS24−5にて演算処理モードを速度追従モードから速度ホールドモードに変更し、図19の処理を終了する。
【0265】
上記カウントダウンタイマは、次回の制御処理周期から開始する速度ホールドモードの開始後の経過時間を計時するタイマである。そして、ステップS24−4では、該タイマの計時値CNTに、あらかじめ設定された初期値Tmがセットされる。初期値Tm_xは、速度ホールドモードを継続させようとする時間の設定値を意味する。
【0266】
以上が、ステップS24における速度追従モードの演算処理である。
【0267】
次に、図14に示すステップS25における速度ホールドモードの演算処理は、図20のフローチャートに示す如く実行される。具体的には、要求重心速度生成部74は、まず、ステップS25−1において、前記ステップS23−4と同じ判断処理、すなわち、車両1の減速要求が発生したか否かの判断処理を実行する。
【0268】
そして、このステップS25−1の判断結果が肯定的である場合(車両1の減速要求が発生した場合)には、要求重心速度生成部74は、次に、ステップS25−2において、前記ステップS23−6と同じ処理(図18のフローチャートに示す処理)を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。さらに、要求重心速度生成部74は、ステップS25−3において、演算処理モードを速度ホールドモードから制動モードに変更し、図20の処理を終了する。
【0269】
一方、前記ステップS25−1の判断結果が否定的である場合(車両1の減速要求が発生していない場合)には、要求重心速度生成部74は、前記ステップS23−1と同じ判断処理、すなわち概略前後方向での車両1の加速要求が有るか否かの判断処理をステップS25−4で実行する。
【0270】
そして、ステップS25−4の判断結果が肯定的である場合(概略前後方向での車両1の加速要求が再び発生した場合)には、要求重心速度生成部74は、ステップS25−5において、前記ステップS23−2と同じ処理を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。すなわち、|↑Vb_x_s|*γが|↑Vb_aim1|として決定される共に、θvb_sがθvb_aim1として決定される。
【0271】
さらに、要求重心速度生成部74は、ステップS25−6において、演算処理モードを速度ホールドモードから速度追従モードに変更し、図20の処理を終了する。
【0272】
前記ステップS25−4の判断結果が否定的である場合(概略前後方向での加速要求が無い状態が継続している場合)には、要求重心速度生成部74は、ステップS25−7において、前記カウントダウンタイマの計時値CNTをデクリメントする。すなわち、計時値CNTの現在値から所定値ΔT(制御処理周期の時間)を差し引くことによって、計時値CNTを更新する。
【0273】
次いで、要求重心速度生成部74は、カウントダウンタイマの計時値CNTが“0”よりも大きいか否か、すなわち、カウントダウンタイマの計時が終了したか否かをステップS25−8にて判断する。
【0274】
このステップS25−8の判断結果が肯定的である場合は、速度ホールドモードが開始してから、カウントダウンタイマの前記初期値Tmにより表される時間が未だ経過していない場合である。この場合には、要求重心速度生成部74は、演算処理モードを速度ホールドモードに維持するものとして、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度方位角θvb_aim1とをステップS25−9にて決定し、図20の処理を終了する。
【0275】
この場合、ステップS25−9では、|↑Vb_aim1|の今回値は、前回値|↑Vb_aim1_p|と同じ値に決定される。また、θvb_aim1の今回値は、前回値θvb_aim1_pと同じ値に決定される。従って、基本要求重心速度ベクトル↑Vb_aim1_pの前回値がそのまま、↑Vb_aim1の今回値の速度ベクトルとして決定される。
【0276】
なお、ステップS25−8の判断結果が肯定的である場合には、演算処理モードは変更されないので、次回の制御処理周期においても、演算処理モードは、速度ホールドモードに維持されることとなる。
【0277】
前記ステップS25−8の判断結果が否定的となった場合、すなわち、速度ホールドモードが開始してから、カウントダウンタイマの前記初期値Tmにより表される所定時間が経過した場合には、要求重心速度生成部74は、ステップS25−10において、前記ステップS23−5と同じ処理(図16及び図17のフローチャートの処理)を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度方位角θvb_aim1とを決定する。
【0278】
さらに、要求重心速度生成部74は、ステップS25−11にて、演算処理モードを速度ホールドモードから制動モードに変更し、図20の処理を終了する。
【0279】
以上が、ステップS25における速度ホールドモードの演算処理である。
【0280】
図14の説明に戻って、要求重心速度生成部74は、以上の如くステップS23〜25のいずれかの演算処理を実行した後、次に、その演算処理により決定した|↑Vb_aim1|とθvb_aim1とをそれぞれフィルタに入力する処理(フィルタリング処理)をステップS26にて実行する。
【0281】
ここで、|↑Vb_aim1|とθvb_aim1とをそれぞれ入力するフィルタは、特に、演算処理モードが制動モードから速度追従モードに変更された直後に、要求重心速度ベクトル↑Vb_aimの大きさ|↑Vb_aim|と方位角θvb_aimとがステップ状に急変するのを防止するための一次遅れ特性のローパスフィルタである。この場合、|↑Vb_aim|を入力するフィルタの時定数は比較的短い時定数に設定されており、|↑Vb_aim1|が急変した直後以外の状況では該フィルタの出力値が|↑Vb_aim1|に一致又はほぼ一致するようになっている。θvb_aim1を入力するフィルタについても同様である。
【0282】
そして、ステップS26では、θvb_aim1を入力したフィルタの出力値が、そのまま、要求重心速度ベクトル↑Vb_aimの方位角θvb_aim(以降、要求重心速度ベクトル方位角θvb_aimという)として決定される。
【0283】
次いで、ステップS27に進んで、要求重心速度生成部74は、|↑Vb_aim1|を入力したフィルタの出力値を、リミッタに通してなる値を、最終的に要求重心速度ベクトル↑Vb_aimの大きさ|↑Vb_aim|(以降、要求重心速度ベクトル絶対値|↑Vb_aim|という)として決定する。この場合、該リミッタは、|↑Vb_aim|が過大になるのを防止するためのものであり、|↑Vb_aim1|を入力したフィルタの出力値があらかじめ設定された所定の上限値以下である場合には、該フィルタの出力値をそのまま|↑Vb_aim|として出力する。また、該リミッタは、フィルタの出力値が上記上限値を超えている場合には、該上限値を|↑Vb_aim|として出力する。換言すれば、該リミッタは、フィルタの出力値と上記上限値とのうちの小さい方の値を|↑Vb_aim|として出力する。
【0284】
次いで、ステップS28に進んで、要求重心速度生成部74は、上記の如く決定した|↑Vb_aim|とθvb_aimとから、要求重心速度ベクトル↑Vb_aimのX軸方向成分(X軸方向の要求重心速度)Vb_x_aimと、Y軸方向の成分(Y軸方向の要求重心速度)Vb_y_aimとを算出する。より詳しくは、|↑Vb_aim|*sin(θvb_aim)がVb_x_aimとして算出され、|↑Vb_aim|*cos(θvb_aim)がVb_y_aimとして算出される。
【0285】
以上が要求重心速度生成部74の処理の詳細である。
【0286】
以上説明した要求重心速度生成部74の処理によって、要求重心速度ベクトル↑Vb_aimは(ひいては要求重心速度Vb_x_aim,Vb_y_aim)は、以下のような態様で決定されることとなる。
【0287】
すなわち、例えば、車両1の移動速度を増速するために、乗員が自身の足平で床を蹴ることによって、あるいは、補助者等が車両1を押すことによって、車両1に対して、概略X軸方向の推進力(詳しくは、前記ステップS23−1の判断結果が肯定的となるような推進力)を付加した場合を想定する。
【0288】
なお、推進力を付加する前の演算処理モードは、前記制動モードであるとする。また、ここでは、理解の便宜上、図14のステップS26で|↑Vb_aim1|を入力するフィルタの出力値は、ステップS27でのリミッタによる強制的な制限がかからない程度の範囲内に収まる値(該リミッタの上限値以下の値)であるとする。同様に、重心速度推定値Vb_x_s,Vb_y_sが、前記リミット処理部104での出力値V_x_lim2,V_y_lim2の強制的な制限が行なわれない程度の範囲内に収まるものとする。
【0289】
この場合、車両1に推進力を付加することによって、前記ステップS23−1の判断結果が肯定的となると、図15のステップS23−3の処理によって、演算処理モードが制動モードから速度追従モードに変更されることとなる。
【0290】
この速度追従モードでは、減速要求が発生しない状況(ステップS24−1の判断結果が否定的となる状況)で、推定重心速度ベクトル↑Vb_sの今回値(現在値)に、所定値の比率γを乗じてなるベクトル、すなわち、↑Vb_sよりも大きさが若干小さく、且つ、↑Vb_sと同じ向きの速度ベクトルが、基本要求重心速度ベクトル↑Vb_aim1として逐次決定される。
【0291】
このため、要求重心速度生成部74が逐次決定する要求重心速度ベクトル↑Vb_aimは、車両1に付加された推進力によって増速する(大きさが増加する)実際の重心速度ベクトル↑Vbにほぼ一致する速度ベクトル↑Vb_aim1(=γ*↑Vb_s)に追従するように、決定されることとなる。
【0292】
そして、このように決定される要求重心速度ベクトル↑Vb_aimのX軸方向成分とY軸方向成分とが前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。さらに、各仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmdにそれぞれ含まれる操作量成分u3_x,u3_yは、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sを各々収束させるように決定される。
【0293】
この結果、乗員が車両1に付加した推進力による車両系重心点の実際の移動速度の増速(概略前後方向での増速)が該推進力による要求に即して速やかに行なわれるように、車輪体5の移動速度が制御されることとなる。従って、車両1が付加された推進力によって円滑に加速することとなる。
【0294】
なお、速度追従モードにおいて、車両1に制動力を付加することによって、図19のステップS24−1の判断結果が肯定的になると(減速要求が発生すると)、演算処理モードが前記制動モードに変化する。このため、車両1の移動速度が減衰していくこととなる。この場合、減速要求の発生中は、ステップS23−6の第2制動演算処理(図18の処理)によって、|↑Vb_aim1|とθvb_aim1とが決定されるので、基本要求重心速度ベクトル↑Vb_aim1、あるいはこれに追従する要求重心速度ベクトル↑Vb_aimは、その向きを一定に保ったまま、大きさが一定の時間的変化率(前記所定値ΔVb2により規定される時間的変化率)で減衰していくように決定されることとなる。
【0295】
次に、速度追従モードにおいて、車両1への推進力の付加が終了し、推定重心速度絶対値変化率DVb_sが前記第2閾値DV2よりも小さくなると(図19のステップS24−3の判断結果が肯定的になると)、図19のステップS24−5の処理によって、演算処理モードが速度追従モードから速度ホールドモードに変更されることとなる。
【0296】
この速度ホールドモードでは、加速要求及び減速要求が発生しない状況(図20のステップS25−1、25−4の判断結果がいずれも否定的となる状況)で、カウントダウンタイマの計時が終了するまで、基本要求重心速度ベクトル↑Vb_aim1は、前回値の速度ベクトル↑Vb_aim1_pと同じ速度ベクトルに設定される。
【0297】
従って、速度ホールドモードの開始後、カウントダウンタイマの計時が終了するまでの所定時間(カウントダウンタイマの初期値Tmの時間)の期間において、基本要求重心速度ベクトル↑Vb_aim1は、速度ホールドモードが開始する直前に決定された速度ベクトルと同じ速度ベクトルで一定に保持されることとなる。
【0298】
このため、↑Vb_aim1に追従するように決定される要求重心速度ベクトル↑Vb_aimも、一定の速度ベクトル(速度ホールドモードが開始する直前に決定された↑Vb_aimと一致又はほぼ一致する速度ベクトル)に保たれるように決定されることとなる。
【0299】
そして、上記の如く決定される要求重心速度ベクトル↑Vb_aimのX軸方向成分とY軸方向成分とが前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。さらに、各仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmdにそれぞれ含まれる操作量成分u3_x,u3_yは、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sを各々収束させるように決定される。
【0300】
この結果、車両1の増速後に、カウントダウンタイマの計時が終了するまでの期間(前記初期値Tmにより表される時間の期間)において、乗員の上体の姿勢の頻繁な調整を必要とすることなく、車両系重心点の実際の速度ベクトル↑Vbの大きさ及び向きが一定に保たれるように該車輪体5の移動速度が制御されることとなる。従って、この状況での車両1の実際の走行状態は、乗員がその上体を積極的に動かすような操縦操作をせずとも、ほぼ一定の速度ベクトルで滑走するような状態となる。
【0301】
なお、速度ホールドモードにおいて、再び車両1に概略前後方向の推進力を付加することによって、図20のステップS25−4の判断結果が肯定的になると(加速要求が発生すると)、演算処理モードが前記速度追従モードに戻る。このため、車両1が再び概略前後方向で加速することとなる。
【0302】
また、速度ホールドモードにおいて、車両1に制動力を付加することによって、図20のステップS25−1の判断結果が肯定的になると(減速要求が発生すると)、演算処理モードが前記制動モードに変化する。このため、車両1の移動速度が減衰していくこととなる。この場合、速度追従モードで減速要求が発生した場合と同様に、減速要求の発生中は、ステップS23−6の第2制動演算処理(図18の処理)によって、|↑Vb_aim1|とθvb_aim1とが決定される
【0303】
次に、速度ホールドモードにおいて、加速要求及び減速要求が発生しない状況(図20のステップS25−1、25−4の判断結果がいずれも否定的となる状況)が保たれたまま、前記カウントダウンタイマの計時が終了すると、図20のステップS25−11の処理によって、演算処理モードが速度ホールドモードから制動モードに変更されることとなる。
【0304】
この制動モードでは、加速要求及び減速要求が発生しない状況(図15のステップS23−1,23−4の判断結果がいずれも否定的となる状況)で、図16のステップS23−5−1,23−5−2の処理が制御処理周期毎に実行されることによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|が、“0”まで一定の時間的変化率(前記ΔVb1により規定される時間的変化率)で連続的に減衰していくこととなる。そして、|↑Vb_aim1|が“0”まで減衰した後には、|↑Vb_aim1|が“0”に保持される。
【0305】
さらに、制動モードでは、加速要求及び減速要求が発生しない状況で、図16のステップS23−5−3以降の処理が制御処理周期毎に実行される。この場合、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1の向き(図20のステップS25−8の判断結果が否定的となる制御処理周期の1つ前の制御処理周期で決定された↑Vb_aim1の向き)が、X軸方向と異なり、且つ、比較的X軸方向に近い向きである場合(より正確には、移行直前に決定された↑Vb_aim1の方位角θvb_aim1が、0°<θvb_aim1_p≦θth1+、θth1-≦θvb_aim1_p<0°、θth2+≦θvb_aim1_p<180°、−180°<θvb_aim1_p≦θth2-のいずれかの範囲内の角度値である場合)には、|↑Vb_aim1|が“0”に減衰するまでの期間内において、θvb_aim1が一定の時間的変化率で収束目標角度値としての0°又は180°又は−180°に近づいていき、最終的に、該収束目標角度値に保持される。従って、制動モードの開始後、|↑Vb_aim1|が“0”に減衰するまでの期間内において、基本要求重心速度ベクトル↑Vb_aimの向きが、連続的にX軸方向に近づいていくこととなる。換言すれば、当該期間内において、基本要求重心速度ベクトル↑Vb_aimのX軸方向成分Vb_x_aim1の絶対値に対するY軸方向成分Vb_y_aim1の絶対値の比率が、“0”に近づいていくこととなる。そして、|↑Vb_aim1|が“0”に減衰するまでに、↑Vb_aim1の向きがX軸方向と同じ向きに到達すると(Vb_y_aim1=0になると)、↑Vb_aim1の向きがX軸方向と同じ向きに保持される。
【0306】
従って、↑Vb_aim1は、その大きさが減衰しつつ、その向きがX軸方向に近づく(収束する)ように決定される。このように↑Vb_aim1が決定される状況では、↑Vb_aim1に追従するように決定される要求重心速度ベクトル↑Vb_aimも、その大きさが減衰しつつ、その向きがX軸方向に近づくように決定されることとなる。
【0307】
また、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1の向きが、X軸方向と異なり、且つ、X軸方向から比較的乖離した向きである場合(より正確には、上記移行直前に決定された↑Vb_aim1の方位角θvb_aim1が、θth1+<θvb_aim1_p<θth2+、θth2-<θvb_aim1_p<θth1-のいずれかの範囲内の角度値である場合)には、|↑Vb_aim1|が“0”に減衰するまでの期間内において、θvb_aim1が、上記移行直前に決定された↑Vb_aim1の方位角θvb_aim1と同じ角度値で一定に保持される。
【0308】
従って、↑Vb_aim1は、その大きさが減衰しつつ、その向きが一定に保たれるように決定される。このように↑Vb_aim1が決定される状況では、↑Vb_aim1に追従するように決定される要求重心速度ベクトル↑Vb_aimも、その大きさが減衰しつつ、その向きが一定に保たれるように決定されることとなる。
【0309】
なお、速度ホールドモードでは、↑Vb_aim1は、その大きさ及び向きが一定に保持されるので、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1は、結果的には、速度追従モードから速度ホールドモードへの移行直前に決定された↑Vb_aim1(図19のステップS24−3の判断結果が肯定的となる制御処理周期で決定された↑Vb_aim1)に一致する。
【0310】
そして、制動モードで上記の如く決定される要求重心速度ベクトル↑Vb_aimのX軸方向成分とY軸方向成分とが前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。さらに、各仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmdにそれぞれ含まれる操作量成分u3_x,u3_yは、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sを各々収束させるように決定される。
【0311】
この結果、前記制動モードの前の演算処理モードが速度ホールドモードである場合に、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の実際の速度ベクルの大きさが速度ホールドモードでの大きさから連続的に減衰していくように車輪体5の移動速度が制御されることとなる。
【0312】
この場合、速度ホールドモードから制動モードへの移行直前に決定された↑Vb_aim1(=速度追従モードから速度ホールドモードへの移行直前に決定された↑Vb_aim1)の向きが、X軸方向と異なり、且つ、比較的X軸方向に近い向きである場合には、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の速度ベクトルの大きさが減衰しながら、該速度ベクトルの向きが自動的にX軸方向(乗員の前後方向)に近づいていくこととなる。従って、乗員の前後方向に対する車両1の直進性が高まる。
【0313】
ここで、車両1を加速しようとする場合、多くの場合、特に乗員の前後方向で車両1を加速することが要求される。この場合、倒立振子型車両1は、上記の如く前後方向に対する直進性が高いので、車両1に付加する推進力の向きが、前後方向から多少ずれていても、その後の速度ホールドモードに続く制動モードにおいて、自動的に車両系重心点の速度ベクトルが、前後方向に向くように車輪体5の移動速度が制御される。
【0314】
このため、車両1の移動方向のばらつきが生じにくく、乗員の前後方向に対して高い直進性を有する車両1(乗員の前後方向に進み易い車両1)が実現されている。ひいては、車両1を前後方向に移動させる場合に、車両1に付加する推進力を正確に前後方向に向けずとも、該車両1を前後方向に移動させることができる。その結果、車両1を前後方向に移動させる操縦操作が容易になる。
【0315】
また、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1(=速度追従モードから速度ホールドモードへの移行直前に決定された↑Vb_aim1)の向きが、X軸方向と異なり、且つ、X軸方向から比較的乖離した向きである場合には、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の速度ベクトルの大きさが減衰しながら、該速度ベクトルの向きがほぼ一定に保たれる。すなわち、速度ホールドモードから制動モードへの移行直前に決定された↑Vb_aim1の向きが、X軸方向から比較的乖離した向きである場合には、速度追従モードで最終的に乗員が意図した車両系重心の速度ベクトルの向きが、X軸方向と異なる向きである可能性が高い。従って、速度追従モード以後に、車両系重心点が、乗員が意図する方向と乖離する向きに移動しようとするのを防止できる。
【0316】
[倒立振子型車両1の変形例についての説明]
次に、前述した倒立振子型車両1(基本構成例)の変形例について図21を参照しつつ以下に説明する。なお、この変形例は、前記速度ホールドモードでの一部の処理のみが前記基本構成例と相違するものである。このため、この変形例の説明では、倒立振子型車両1(基本構成例)と同一の構成及び処理については説明を省略する。
【0317】
この変形例では、図14のステップS25の速度ホールドモードの演算処理は、図21のフローチャートに示す如く実行される。この場合、図21のステップS25−8の判断結果が肯定的となった場合以外の処理は、前述の倒立振子型車両1で説明した処理(図20の処理)と同じである。
【0318】
そして、本変形例では、図21のステップS25−8の判断結果が肯定的となった場合、すなわち、速度ホールドモードが開始してから、加速要求及び減速要求が発生しない状態で、カウントダウンタイマの初期値Tmにより表される所定時間が未だ経過していない場合には、要求重心速度生成部74は、ステップS25−9aにおいて基本要求重心速度ベクトル絶対値|↑Vb_aim1|を決定し、さらに、ステップS25−9bにおいて基本要求重心速度ベクトル方位角θvb_aim1を決定する。
【0319】
この場合、ステップS25−9aでは、|↑Vb_aim1|の今回値は、前述の基本構成例の場合と同様に、前回値|↑Vb_aim1_p|と同じ値に決定される。
【0320】
また、ステップS25−9bでは、θvb_aim1の今回値は、前記基本構成例で説明した図16、17のステップS25−5−5〜25−5−17と同じ処理によって決定される。従って、速度追従モードから速度ホールドモードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1の向き(図19のステップS24−3の判断結果が肯定的となる制御処理周期で決定された↑Vb_aim1の向き)が、X軸方向と異なり、且つ、比較的X軸方向に近い向きである場合(より正確には、移行直前に決定された↑Vb_aim1の方位角θvb_aim1が、0°<θvb_aim1_p≦θth1+、θth1-≦θvb_aim1_p<0°、θth2+≦θvb_aim1_p<180°、−180°<θvb_aim1_p≦θth2-のいずれかの範囲内の角度値である場合)には、速度ホールドモードの継続期間において、θvb_aim1が一定の時間的変化率で収束目標角度としての0°又は180°又は−180°に近づいていき、最終的に、0°又は180°又は−180°に保持されるようにθvb_aim1が決定される。
【0321】
このため、速度ホールドモードとこれに続く制動モードとを合わせた期間で、θvb_aim1が一定の時間的変化率で収束目標角度(0°又は180°又は−180°)に近づいていき、最終的に、該収束目標角度に保持されるようにθvb_aim1が決定される。
【0322】
また、速度追従モードから速度ホールドモードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1の向き(図19のステップS24−3の判断結果が肯定的となる制御処理周期で決定された↑Vb_aim1の向き)が、X軸方向と異なり、且つ、X軸方向から比較的乖離した向きである場合(より正確には、上記移行直前に決定された↑Vb_aim1の方位角θvb_aim1が、θth1+<θvb_aim1_p<θth2+、θth2-<θvb_aim1_p<θth1-のいずれかの範囲内の角度値である場合)には、速度ホールドモードの継続期間において、θvb_aim1が、上記移行直前に決定された↑Vb_aim1の方位角θvb_aim1と同じ角度値で一定に保持される。従って、この場合における方位角θvb_aim1の決定処理は、前述の基本構成例と同じである。このため、速度ホールドモードとこれに続く制動モードとを合わせた期間で、θvb_aim1が一定に保持されるように決定される。
【0323】
以上説明した以外の処理は、前述の基本構成例と同じである。
【0324】
かかる変形例では、速度追従モードから速度ホールドモードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1の向きが、X軸方向と異なり、且つ、比較的X軸方向に近い向きである場合に、速度ホールドモードに続く制動モードだけでなく、速度ホールドモードにおいても、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の速度ベクトルの向きが自動的にX軸方向(乗員の前後方向)に近づいていくこととなる。従って、乗員の前後方向に対する車両1の直進性がより一層高めることができる。
【0325】
[クラッチを備える倒立振子型車両の構成と動作についての説明]
次に、図1に示す倒立振子型車両1にクラッチを追加した倒立振子型車両の例を、本発明の実施形態として説明する。
【0326】
図22は、本発明の実施の形態に係わるクラッチを備える倒立振子型車両の構成を示す図である。図22に示す倒立振子型車両1Aは、図1に示す倒立振子型車両1を基本の構成とし、新たにクラッチ32L,32Rを追加したものである。
【0327】
この倒立振子型車両1Aにおいては、電動モータ31Lの出力軸側とプーリ57Lとの間に、クラッチ32Lが設けられている。このクラッチ32Lは、電動モータ31Lとプーリ57Lとを連結して動力の伝達状態とし、または電動モータ31Lとプーリ57Lと開放して動力の非伝達状態とするクラッチである。また、電動モータ31Rの出力軸側とプーリ57Rとの間に、クラッチ32Rが設けられている。このクラッチ32Rは、電動モータ31Lとプーリ57Lとを連結して動力の伝達状態し、または電動モータ31Rとプーリ57Rと開放して動力の非伝達状態とするクラッチである。
【0328】
この倒立振子型車両1Aにおいては、例えば、一方の電動モータ31Lにおいて特定の状態(例えば、モータ温度が所定の温度より高い状態等)が発生した場合に、当該電動モータ31Lに連結するクラッチ32Lを開放し、右側の電動モータ31Rだけを運転することにより、前後および左右方向とは異なる特定の一方向(斜め方向)にのみ運転を継続できるようにしている。また、支柱フレーム13内の制御ユニット50Aには、クラッチ32L,32Rを駆動する制御機能が付加され、また、モータドライバ部51には、車輪体5の駆動用のモータドライバが含まれる。なお、車輪体5の駆動用の電動モータ31R,31Lは、ACサーボモータ(3相誘導電動機)や、同期型のACサーボモータや、DCサーボモータなどである。
【0329】
その他の構成については、先に説明した図1に示す倒立振子型車両1と同様である。このため、同一の構成部分には同一の符号を付し、重複する説明は省略する。
【0330】
このように、本発明のクラッチを備える倒立振子型車両1Aにおいては、車輪体5を左側から駆動する第1のアクチュエータ装置(電動モータ31L、クラッチ32L、回転部材27L、フリーローラ29L等)からの動力の伝達を、クラッチ32Lにより開放(動力の非伝達状態)することができる。また、車輪体5を右側から駆動する第2のアクチュエータ装置(電動モータ31R、クラッチ32R、回転部材27R、フリーローラ29R等)からの動力の伝達を、クラッチ32Lにより開放(動力の非伝達状態)することができる。
【0331】
これにより、例えば、電動モータ31R,31Lの一方に特定の状態が発生した場合にも、当該電動モータ側のクラッチを開放することにより、残りの一方の電動モータを使用して、特定の方向(斜め方向)に対して移動(走行)を継続できるようになる。
【0332】
図23は、クラッチを備える倒立振子型車両1Aの一方向移動動作について説明するための図である。例えば、図23(A)に示すように、クラッチの操作(クラッチ32Lの開放)により、フリーローラ29Lが横力を発生しない状態にあるとする。この状態では、例えば、一方のフリーローラ29Rのみが、並進するように電動モータ31Rにより駆動されることにより、軸心C4方向にフリーローラ29Rの横力が発生する。
【0333】
この状態においては、図23(B)に示すように、車輪体5とフリーローラ29Rとの接触状態(主に接触する角度)により決まる、符号P´で示す特定の一方向にのみ移動することができる状態となる。
【0334】
逆に、クラッチの操作(クラッチ32Rの開放)により、フリーローラ29Rが停止した状態(電動モータ31Rにより駆動されない状態)にすると、符合Pで示す特定の一方向にのみ移動することができる状態となる。このように、クラッチ32R,32Lを操作することにより、倒立振子型車両1Aを特定の一方向PまたはP´にのみ移動させることができる。
【0335】
図24は、制御ユニット50Aの構成を示す図である。より正確には、制御ユニット50A中の、クラッチ制御に係わる機能と、車両制御演算処理(モータの速度指令を決定する処理)に係わる処理機能を示すブロック図である。また、図24に示す例では、モータドライバ85R,85Lから出力される特定状態通知信号(Status信号)により、クラッチの連結(動力の伝達状態)または開放(動力の非伝達状態)を制御する例を示している。
【0336】
図24において、モータドライバ85Rは、全方向姿勢演算部121または一方向姿勢演算部131から出力される回転角速度指令ω_R_cmdに応じて右側の電動モータ31Rを回転駆動するドライバである。同様に、モータドライバ85Lは、全方向姿勢演算部121または一方向姿勢演算部131から出力される回転角速度指令ω_L_cmdに応じて左側の電動モータ31Lを回転駆動するドライバである。このモータドライバ85R,85Lは、例えば、電動モータ31R,31LがACサーボモータである場合は、ベクトル制御方式のPWMインバータである。
【0337】
また、制御ユニット50A内には、クラッチ制御部111と、姿勢制御モード切替部112と、全方向姿勢演算部121と、一方向姿勢演算部131とを備えている。
【0338】
クラッチ制御部111は、クラッチ32R,32Lをクラッチ開閉信号CL_R,CL_Lにより連結または開放に制御する。クラッチ制御部111では、通常の場合は、クラッチ32R,32Lの両方を連結状態(動力の伝達状態)とし、モータドライバ85Rから特定状態通知信号(Status_R)を受信した場合に、電動モータ31Rとプーリ57Rとを連結するクラッチ32Rを開放(動力の非伝達状態に)する。同様に、クラッチ制御部111は、モータドライバ85Lから特定状態通知信号(Status_L)を受信した場合にクラッチ32Lを開放する。
【0339】
なお、モータドライバ85R,85Lからクラッチ制御部111に向けて出力される特定状態通知信号Status_R,Status_Lは、モータドライバに装備されている保護機能により検出される信号である。また、クラッチ制御部111は、クラッチ32R,32Lの連結または開放状態の情報をクラッチ状態信号として、姿勢制御モード切替部112に出力する。
【0340】
姿勢制御モード切替部112は、クラッチ57R,57Lの連結・開放状態に応じて、全方向姿勢演算部121または一方向姿勢演算部131のいずれかを選択する処理を行う。この姿勢制御モード切替部112は、通常の状態、すなわちクラッチ32Rにより電動モータ31Rとプーリ57Rとが連結され、またクラッチ32Lにより電動モータ31Lとプーリ57Lとが連結されている場合は、信号ALLDにより全方向姿勢演算部121を選択する。また、クラッチ32Rまたはクラッチ32Lのいずれか一方が開放している場合は、信号ONEDにより、一方向姿勢演算部131を選択する。
【0341】
全方向姿勢演算部121の処理部の構成は、図9に示す処理部の構成と同じである。一方、一方向姿勢演算部131の構成は、図9に示す処理部の構成と基本的には同じであるが、演算方法が異なる。
【0342】
図25は、一方向姿勢演算部131の構成を示す図である。この一方向姿勢演算部131においては、基体9の傾斜角θb、重心速度推定値Vb_s、及び目標重心移動速度Vb_mfd等を、X軸、Y軸方向ごとに独立に求めるのではなく、図23に示すP軸の1方向を基準にして算出するように構成されている。なお、以下の説明では、フリーローラ29L側のみが駆動され、倒立振子型車両1AがP軸方向に移動する場合の例について説明するが、倒立振子型車両1Aが、P´方向に移動する場合においても、演算処理の基準となる軸方向が変化する点が異なるが、基本的には同様の処理となる。
【0343】
すなわち、一方向姿勢演算部131では、図23に示すP軸を基準として、傾斜センサ52により検出される傾斜角度θbを、P軸方向成分の傾斜角度θb_p_sに換算し、またロータリーエンコーダ56Rまたは56Lにより検出される重心速度推定値Vb_xy_sをP軸方向に換算した重心速度推定値Vb_p_sに換算する。
【0344】
例えば、P軸方向の傾斜角度P(P=θb_p)は、X軸方向の傾斜角度θb_xと、Y軸方向の傾斜角度θb_yにより、以下の式により換算(座標変換)することにより求めることができる。
P=θb_p=wx・θb_x+wy・θb_y 式10
Pdot=θbdot_p=wx・θbdot_x+d(wy・θbdot_y) 式11
ここで、Pdot(=dP/dt)、θbdot_p(=dθb_p/dt)、θbdot_x(=dθb_x/dt)、θbdot_y(=dθb_y/dt)、定数wxはP軸とX軸との間の角度により決まる重み付け係数、定数wyはP軸とY軸との間の角度により決まる重み付け係数である。これらの重み付けの係数wx,wyは、車輪体5に対するフリーローラ29R,29Lの取り付け角度等により決まる定数である。
【0345】
また、P軸方向への重心速度推定値Vb_p_sは、以下の式により算出することができる。
Vb_p_s=h・Pdot+a・ωw 式12
ここで、PdotはdP/dt、定数hは基体9の高さに依存する係数、定数aは、車輪体5が速度ωwで回転する場合の、P軸方向への移動速度に換算する係数を示している。
【0346】
そして、姿勢制御演算部80は、これらの入力値を用いて、前述の式07xに対応する、P軸方向についての以下の式13で示す演算により、仮想車輪回転角加速度指令ωdotw_p_comを算出する。
ωdot_p_cmd=K1・P+K2・Pdot+K3・(Vb_p_s−Vps_p_mdfd) 式13
【0347】
このように、姿勢制御演算部80では、P軸方向についての仮想車輪回転角速度指令ωw_p_cmdを算出する。モータ指令演算部82では、仮想車輪回転角速度指令ωw_p_cmdを基に、左側の電動モータ31Lのみを駆動してP軸方向に移動する場合は、左側の電動モータ31Lに対する速度指令ω_L_cmd(回転角速度の指令値)を算出する。また、逆に右側の電動モータ31Rのみを駆動してP´軸方向に移動する場合は、右側の電動モータ31Rに対する速度指令ω_R_cmd(回転角速度の指令値)を算出する。
【0348】
このように、一方向姿勢演算部131においては、左側の電動モータ31Lのみが動作する場合(P軸方向に移動する場合)は、左側の電動モータ31Lの速度指令ω_L_cmd(回転角速度の指令値)を算出してモータドライバ85Lに出力する。同様にして、左側の電動モータ31Lのみが動作する場合は、図10に示すゲイン調整部78、図11に示すリミット処理部86、図12に示す重心速度制限部76、図13に示す姿勢制御演算部80における演算処理についても、前記P軸方向を基準にして演算が行われることになる。
【0349】
ところで、倒立振子型車両1Aが、電動モータ31R,31Lのいずれか一方により片側駆動されて特定の一方向、例えば、P軸方向に駆動される場合は、P軸方向に対しての姿勢制御が行われる。このため、倒立振子型車両1Aの前後、左右方向に補助輪200を設けて適切な姿勢を得るようにする。
【0350】
図26は、補助輪を備える倒立振子型車両の構成例を示す図である。図26(A)に示すように、この補助輪を備える倒立振子型車両では、倒立振子型車両の前後および左右の4箇所に補助輪200L_F,200L_R,200R_F,200R_Rを設け、P軸方向等の特定の一方向に移動する場合においても適切な姿勢を得るようにしている。
【0351】
この補助輪200L_F,200L_R,200R_F,200R_Rの位置は、倒立振子型車両1Aが特定の一方向、例えばP軸方向に駆動される場合に、P軸からみて左右方向に対して適切な姿勢を得ることができる位置に配置される。
【0352】
すなわち、補助輪200L_F,200L_R,200R_F,200R_Rを、車輪体5の床面への接地点以外の接地点であって、特定の一方向(例えば、P軸方向)とは異なる方向であり、かつ特定の一方向からみて左右方向に対して適切な姿勢を得ることができる位置に接地させるようしている。これにより、倒立振子型車両が移動する特定の一方向に対して適切な姿勢制御を行うとともに、特定の一方向に垂直な方向(床面に平行な面内において垂直な方向)に対しても適切な姿勢を得ることができる。
【0353】
図26(A)に示す例では、補助輪用アーム203L_F,203L_R,203R_F,203R_Rが、カバー部材21R,21Lから外側(左右方向)に延びるようにして設けられる。また、この補助輪用アーム203L_F,203L_R,203R_F,203R_Rの先端部に、補助輪装着ベース201L_F,201L_R,201R_F,201R_Rが取り付けられる。そして、この補助輪装着ベース201L_F,201L_R,201R_F,201R_Rのそれぞれには、上下に移動可能なピストン棒202L_F,202L_R,202R_F,202R_Rを介して、補助輪200L_F,200L_R,200R_F,200R_Rが取り付けられている。
【0354】
このピストン棒202L_F,202L_R,202R_F,202R_Rのそれぞれは、例えば、図26(B)に示すピストン棒202L_Fのように、補助輪上下移動用アクチュエータ204L_Fにより矢印a方向に上下に移動可能に構成されている。この構成により、補助輪200L_F,200L_R,200R_F,200R_Rは、通常状態(車輪体5が両方の電動モータ31R,31Lで駆動される状態)においては、床面に対して上昇しており、接地しない状態におかれる。
【0355】
一方、一方向移動状態(車輪体5が電動モータ31R,31Lのいずれか一方の電動モータで駆動される状態)においては、倒立振子型車両の進行方向側の補助輪200L_F,200L_R,200R_F,200R_Rが下降して接地する。例えば、図26(A)において、倒立振子型車両が図面上で右上方向(図23(B)に示すP軸方向)に移動する場合には、例えば、補助輪200L_Fのみが下降して接地する。なお、補助輪200L_Fに加えて、補助輪200R_Fを同時に接地させるようにしてもよく、さらには、補助輪200R_F,200R_Rをも同時に接地させるようにしてもよい。
【0356】
また、例えば、図26(A)において、倒立振子型車両が図面上で左上方向(図23(B)に示すP´軸方向)に移動する場合には、例えば、補助輪200R_Fのみが下降して接地する。なお、補助輪200R_Fに加えて、補助輪200L_Fを同時に接地させるようにしてもよく、さらには、補助輪200R_F,200R_Rをも同時に接地させるようにしてもよい。
【0357】
なお、補助輪200L_F,200L_R,200R_F,200R_Rのそれぞれは、倒立振子型車両が、特定の一方向(例えば、P軸方向)に対して前進または後退する場合に適切な姿勢を得るために設けられているが、倒立振子型車両が前進のみ行い、後退しない場合は、補助輪200L_F,200L_R,200R_F,200R_Rのいずれかを省略できる場合もある。また、補助輪の数(補助輪を接地させる位置の数)は、4個に限定されず、例えば、左右に1個づつ設けるなど(合計2個)、必要に応じて選択できる。
【0358】
図27は、補助輪を備える倒立振子型車両における、制御ユニット50Bの構成を示す図である。図27に示す制御ユニット50Bが、図24に示す制御ユニット50Aと構成上異なるのは、図24に示す制御ユニット50Aに、図27に示す補助輪制御部113をを新たに追加した点であり、他の構成は図24に示す制御ユニット50Aと同様である。このため、同一の構成部分には同一の符号を付し、重複する説明は省略する。
【0359】
この補助輪制御部113は、クラッチ制御部111からクラッチ32R,32Lの開閉状態を示すクラッチ状態信号を受信し、クラッチ32R,32Lの開閉状態(動力の伝達状態)に応じて、補助輪200L_F,200L_R,200R_F,200R_Rの上昇、下降動作を制御する。この補助輪制御部113では、前述のように、通常の状態においては、補助輪200L_F,200L_R,200R_F,200R_Rをすべて上昇させるように制御する。そして、補助輪制御部113は、電動モータ31R,31Lのいずれかに特定の状態が発生し、クラッチ32R,32Lのいずれかを開放して特定の一方向(例えば、P軸方向)への車両の移動が行われる場合に、移動する方向に応じて適切な姿勢を得るために必要な補助輪を選択して下降させる(接地させる)。
【0360】
また、図28は、クラッチ及び補助輪を備える倒立振子型車両における、制御ユニット50Bの処理(メインルーチン処理)を示すフローチャートである。図28のフローチャートに示す処理と、前述の図7のフローチャートに示す処理(メインルーチン処理)とが異なる点は、図28に示すステップS1Aと、ステップS100とを新たに追加した点であり、他の処理ステップは図7に示すフローチャートと同様である。このため、同一の処理内容のステップには同一の符号を付し、重複する説明は省略する。
【0361】
図28において、ステップS1Aでは、クラッチ開放要求が発生しているかどうかを判定する。具体的には、クラッチ制御部111により、モータドライバ85R,85Lから特定状態通知信号(Status信号)が発生しているかどうかを判定する。
【0362】
このステップS1Aにおける判定結果が否定的である場合、すなわちクラッチ開放要求が発生していない場合は(ステップS1A:No)、ステップS1からステップS10に示す通常の処理(図7に示すフローチャートの処理)が行われる。一方、ステップS1Aにおける判定結果が肯定的である場合、すなわちクラッチ開放要求が発生している場合は(ステップS1A:Yes)、クラッチ制御モードの処理ルーチン(ステップS100)に移行する。
【0363】
図29は、クラッチ制御モード(ステップS100)の処理ルーチンを示すフローチャートである。このクラッチ制御モードの処理ルーチンでは、まず、クラッチ制御部111により、モータドライバ85R,85Lから出力される特定状態通知信号Status_Rまたは特定状態通知信号Status_ Lを検出し、特定状態通知信号を発生している電動モータの種別を判定する(ステップS101)。すなわち、左側の電動モータ31Lで特定の状態が発生しているか、右側の電動モータ31Rで特定の状態が発生しているか、または、電動モータ31R,31Lの両方で特定の状態が発生しているかを判定する。
【0364】
そして、左側の電動モータ31Lで特定の状態が発生していると判定された場合(モータドライバ85Lから特定状態通知信号Status_Lが出力される場合)は、クラッチ制御部111により、左電動モータ31Lに接続されたクラッチ32Lを開放する(ステップS111)。また、モータドライバ85Lの運転を停止し、左側の電動モータ31Lの動作をオフ(停止)する(ステップS112)。
【0365】
次に、制御ユニット50Bでは、姿勢制御モード切替部112により右側の電動モータ31Rのみよる制御モードを選択する(一方向姿勢演算部131を選択する)(ステップS113)。続いて、補助輪制御部113により、右側のモータ動作31Rのみを動作させる場合に適切な姿勢を得るための補助輪を選択して接地させる(ステップS114)。その後、クラッチ制御モードにおけるメイン処理のルーチンに移行する(ステップS200)。
【0366】
一方、ステップS101において、右側の電動モータ31Rで特定の状態が発生していると判定された場合(モータドライバ85Rから特定状態通知信号Status_Lが出力される場合)は、クラッチ制御部111により、右側の電動モータ31Rに接続されたクラッチ32Rを開放する(ステップS121)。また、モータドライバ85Rの運転を停止し、右側の電動モータ31Rの動作をオフ(停止)する(ステップS122)。
【0367】
次に、制御ユニット50Bでは、姿勢制御モード切替部112により左側の電動モータ31Lのみよる制御モードを選択する(一方向姿勢演算部131を選択する)(ステップS123)。続いて、補助輪制御部113により、左側の電動モータ31Lのみを動作させる場合に適切な姿勢を得るための補助輪を選択して接地させる(ステップS124)。その後、クラッチ制御モードにおけるメイン処理のルーチンに移行する(ステップS200)。
【0368】
また、ステップS101において、モータドライバ85R,85Lのそれそれから特定状態通知信号Status_R,Status_Lが出力されている場合(左側の電動モータ31Lおよび右側の電動モータ31Rの両方に特定の状態が発生している場合)は、倒立振子型車両を運転することはできないので、制御動作を全て停止することになる、なお、この制御動作を停止する場合においては、補助輪200L_F,200L_R,200R_F,200R_Rの全てを下降させ、倒立振子型車両を自立状態にして停止させるようにしてもよい。
【0369】
なお、ステップS200で示すクラッチ制御モードにおけるメイン処理は、基本的には、図28のステップS1からステップS10に示す処理と同じであるが、前述のように、車両制御演算処理をX軸、Y軸のそれぞれについて行うのではなく、特定の一方向(例えば、図23に示すP軸方向)に対して行う点が異なる。同様にして、図14から図21に示すフローチャートにおいても、P軸方向に対して各演算処理が行われることになる。
【0370】
以上説明したクラッチを備える倒立振子型車両は、各電動モータ31R,31Lのそれぞれの出力軸側にクラッチ32R,32Lを装備する例について説明したが、さらに、図30に示すように、回転部材27Rを回転可能に支持する支軸33Lと、回転部材27Lを回転可能に支持する支軸33Rとの間に、中央部連結クラッチ34を設けるようにしてもよい。
【0371】
この中央部連結クラッチ34を設ける場合は、通常状態(電動モータ31R,31Lの両方が駆動される状態)では、中央部連結クラッチ34を開放状態(動力の非伝達状態)にしておく。そして、電動モータ31R,31Lのいずれかに特定の状態が発生し、この特定の状態が発生した電動モータに対応するクラッチが開放された場合は、中央部連結クラッチ34を接続状態(動力の伝達状態)にして、回転部材27Rと回転部材27Lの両方を1つの電動モータで駆動する。これにより、一方つの電動モータを駆動して、倒立振子型車両を前後方向に駆動することができる。
【0372】
図31は、中央部連結クラッチ34を備える制御ユニット50Cの構成を示す図である。図31に示す制御ユニット50Cが、図27に示す制御ユニット50Bと構成上で異なる点は、図31に示すクラッチ制御部111は、クラッチ開閉信号CLCにより、中央部連結クラッチ34の開閉を行う点である。他の構成は図27に示す制御ユニット50Bと同様である。このため、同一の構成部分には同一の符号を付し、重複する説明は省略する。この中央部連結クラッチ34は、回転部材27Rと支軸33Rとを含む右側の車輪体駆動機構38Rと、回転部材27Lと支軸33Lを含む左側の車輪体駆動機構38Lと、を連結して一体として駆動するためのクラッチである。
【0373】
図31に示す制御ユニット50Cおいて、全方向姿勢演算部121の処理部の構成は、図9に示す処理部の構成と同じである。一方、一方向姿勢演算部131の構成は、図9に示す処理部の構成と基本的には同じであるが、演算方法が異なる。この一方向姿勢演算部131においては、基体9の傾斜角θb、重心速度推定値Vb_s、及び目標重心移動速度Vb_mfd等を、X軸方向(前後方向)だけについて求めることになる。
なお、前述した中央部連結クラッチ34を設けると、前後に進む場合は中央部連結クラッチ34を連結することで、一方の電動モータのみで前後方向に駆動することができるため、一方の電動モータの冷却を行いたい場合などに有効である。
【0374】
以上説明したように、本発明のクラッチを備える倒立振子型車両においては、電動モータ31Rまたは電動モータ31Lのいずれかに特定の状態が発生した場合においても、一方の電動モータのみを駆動して特定の方向(例えば、図23に示すP軸方向)に移動しながら、適切な姿勢制御を行うことができる。また、電動モータ31R,31Lとクラッチ32R,32Lとを連動させることにより操作性を向上させることができる。
【0375】
また、上述したクラッチを備える倒立振子型車両1Aにおいては、電動モータ31R,31Lの特定の状態を検出してクラッチ32R,32Lを開放(駆動力の非伝達状態)する例について説明したが、もちろん、人為的にクラッチ32R,32Lを開放するようにしてもよい。
【0376】
以上、本発明のクラッチを備える倒立振子型車両1Aについて説明したが、前述の制御ユニット50A,50B,50Cは内部にコンピュータシステムを有している。そして、上述した処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。
【0377】
すなわち、クラッチ制御部111、姿勢制御モード切替部112、補助輪制御部113、全方向姿勢演算部121、および一方向姿勢演算部131における、各処理は、CPU等の中央演算処理装置がROMやRAM等の主記憶装置に上記プログラムを読み出して、情報の加工、演算処理を実行することにより、実現されるものである。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。
【0378】
なお、ここで、図22乃至図31において説明したクラッチを備える倒立振子型車両の実施形態と、本発明との対応関係を補足しておく。
【0379】
本実施形態では、倒立振子型車両1Aの乗員の前後方向(X軸方向)、左右方向(Y軸方向)が、それぞれ、本発明における第1の方向、第2の方向に相当する。また、特定の一方向は、例えば、図23に示すP軸方向(または、P´方向)が相当する。また、本発明の移動動作部は車輪体5が主に相当する。また、本発明のアクチュエータ装置は、電動モータ31R,31L、クラッチ32R,32L、及び回転部材27R,27L等を含む車輪体5の駆動機構が相当する。
【0380】
また、本発明の第1のアクチュエータ装置は、電動モータ31R、クラッチ32R、及び回転部材27R等を含む車輪体5の右側の駆動機構が相当する。また、本発明の第2のアクチュエータ装置は、電動モータ31L、クラッチ32L、及び回転部材27L等を含む車輪体5の左側の駆動機構が相当する。また、本発明の第1のクラッチはクラッチ32Rが、第2のクラッチはクラッチ32Lがそれぞれ相当する。また、本発明のクラッチ制御部はクラッチ制御部111が相当し、本発明の姿勢制御モード切替部は姿勢制御モード切替部112が相当し、本発明の補助輪制御部は補助輪制御部113が相当する。
【0381】
そして、本実施形態の倒立振子型車両1Aにおいては、アクチュエータ装置(電動モータ31R,31Lおよび回転部材27R,27L等の駆動機構部)から車輪体5に対し動力を伝達するとともに、車両を前後および左右方向を含む全方向に移動するか、または特定の一方向(P軸方向)に対してのみ移動するかを選択可能にする複数のクラッチ32R,32Lを備える。そして、制御ユニット50Aは、複数のクラッチ32R,32Lの動作状態に応じて、車両を全方向に移動させる場合には、前後方向および左右方向のそれぞれに対して姿勢制御演算を行い、車両を特定の一方向(P軸方向)にのみ移動させる場合は、この特定の一方向に対して姿勢制御演算を行う。
これにより、クラッチを使用して倒立振子型車両の操作性を向上させることができる。また、クラッチの動作状況(操作状態)に応じて適切な姿勢制御を行うことができる。例えば、クラッチ操作により特定の一方向に移動する際にも適切な姿勢制御を行うことができる。
【0382】
また、上記倒立振子型車両1Aにおいては、制御部50A内の全方向姿勢演算部121が、全方向に車両を移動する際に、前後方向および左右方向に対して姿勢制御演算を行う。また、一方向姿勢演算部131が、特定の一方向にのみ車両を移動する際に、該特定の一方向に対して姿勢制御演算を行う。また、姿勢制御モード切替部113は、アクチュエータ装置の駆動状態に応じて、全方向姿勢演算部121または一方向姿勢演算部131を選択して姿勢制御演算を切り替える。
これにより、車輪体5に対するアクチュエータ装置の駆動状態(クラッチの操作状態)に応じて適切な姿勢制御を選択することができる。すなわち、アクチュエータ装置に特定の状態が生じた場合において、クラッチ32R,32Lのいずれかを選択して、倒立振子型車両を特定の一方向にしか移動できない場合においても、該一方向への移動に対して適切な姿勢制御を行うことができる。
【0383】
また、上記倒立振子型車両1Aにおいては、第1のアクチュエータ(電動モータ31Rおよび回転部材27R等)が、車輪体5を第1の駆動側(右側面側)から駆動する。また、第2のアクチュエータ装置(電動モータ31L及び回転部材27L等)が、車輪体5を第2の駆動側(左側面側)から駆動する。また、第1のクラッチ32Rにより、車輪体5と第1のアクチュエータ装置との間を動力の伝達状態または非伝達状態に選択する。また、第2のクラッチ32Lにより、車輪体5と第2アクチュエータ装置との間を動力の伝達状態または非伝達状態に選択する。また、クラッチ制御部111は、第1のクラッチと第2のクラッチにおける動力の伝達状態を制御する。そして、クラッチ制御部111は、倒立振子型車両1Aを全方向に移動させる場合には、第1のクラッチ32Rと第2のクラッチ32Lとを動力の伝達状態にし、倒立振子型車両1Aを特定の一方向にのみに移動させる場合には、第1のクラッチまたは第2のクラッチのいずれか一方のクラッチのみを動力の伝達状態にする。また、姿勢制御モード切替部113は、第1および第2のクラッチの動力の伝達状態に応じて、全方向姿勢演算部121または一方向姿勢演算部131を選択して姿勢制御演算を行う。
これにより、車輪体5に対する第1のクラッチおよび第2のクラッチによる動力の伝達状態に応じて、全方向姿勢演算または一方向姿勢演算を選択することができる。すなわち、一方のクラッチのみにより車輪体5に動力を伝達し、車両を特定の一方向に移動させる場合においても、当該特定の一方向に対して適切な姿勢制御を行うことができる。
【0384】
また、上記倒立振子型車両1Aにおいては、補助輪制御部113は、第1のクラッチ32Rまたは第2のクラッチ32Lの一方のみが接続され、倒立振子型車両1Aが特定の一方向へのみ駆動される場合に、車輪体5の床面への接地点以外の接地点であって、特定の一方向とは異なる方向の地点において補助輪を接地させる。
これにより、倒立振子型車両が移動する特定の一方向に対して適切な姿勢制御を行うことができるとともに、特定の一方向に垂直な方向(床面に平行な面内において垂直な方向)に対しても適切な姿勢を得ることができる。
【0385】
以上、本発明の実施の形態について説明したが、本発明のクラッチを備える倒立振子型車両、さらには、クラッチと補助輪とを備える倒立振子型車両は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【0386】
1、1A…全方向移動車両(倒立振子型車両)、3…シート(搭乗部)、5…車輪体(移動動作部)、9…基体、31R,31L…電動モータ、32R,32L…クラッチ、50A,50B,50C…制御ユニット、72…重心速度算出部、74…要求重心速度生成部、76…重心速度制限部、80…姿勢制御演算部、82…モータ指令演算部、85R,85L…モータドライバ、111…クラッチ制御部、112…姿勢制御モード切替部、113…補助輪制御部、121…全方向姿勢演算部、131…一方向姿勢演算部、200L_F,200L_R,200R_F,200R_R…補助輪

【特許請求の範囲】
【請求項1】
床面上を互いに直交する第1の方向及び第2の方向を含む全方向に車両を移動可能に駆動する移動動作部と、該移動動作部を駆動するアクチュエータ装置と、該移動動作部及びアクチュエータ装置とが組付けられる基体と、前記基体の傾斜に基づいて倒立振子制御による姿勢制御演算を行い前記移動動作部を制御する制御部と、を備える倒立振子型車両の制御装置であって、
前記倒立振子型車両は、
前記アクチュエータ装置から前記移動動作部に対し動力を伝達するとともに、前記車両を前記第1および第2の方向を含む全方向に移動するか、または前記第1および第2の方向とは異なる特定の一方向に対してのみ移動するかを選択可能にする複数のクラッチを備え、
前記制御部は、前記複数のクラッチの操作状態に応じて、
前記車両を前記第1および第2の方向を含む全方向に移動させる場合に、前記第1の方向および第2の方向のそれぞれに対して姿勢制御演算を行い、
前記車両を前記特定の一方向に移動させる場合に、該特定の一方向に対して姿勢制御演算を行う
ことを特徴とする倒立振子型車両の制御装置。
【請求項2】
前記制御部は、
前記車両を前記第1および第2の方向を含む全方向に移動させる場合に、前記第1および第2の方向のそれぞれに対して姿勢制御演算を行う全方向姿勢演算部と、
前記車両を特定の一方向にのみ移動させる場合に、該特定の一方向に対して姿勢制御演算を行う一方向姿勢演算部と、
前記クラッチの駆動状態に応じて、前記全方向姿勢演算部または前記一方向姿勢演算部を選択して姿勢制御演算を切り替える姿勢制御モード切替部と、
を備えることを特徴とする請求項1に記載の倒立振子型車両の制御装置。
【請求項3】
前記倒立振子型車両は、
前記移動動作部を第1の駆動側から駆動する第1のアクチュエータ装置と、
前記移動動作部を、前記第1の駆動側とは異なる第2の駆動側から駆動する第2のアクチュエータ装置と、
前記第1のアクチュエータ装置と前記移動動作部との間を動力の伝達状態または非伝達状態にする第1のクラッチと、
前記第2のアクチュエータ装置と前記移動動作部との間を動力の伝達状態または非伝達状態にする第2のクラッチと、
前記第1のクラッチと前記第2のクラッチにおける動力の伝達状態を制御するクラッチ制御部と、
を備え、
前記クラッチ制御部は、
前記車両を全方向に移動させる場合に、前記第1のクラッチと前記第2のクラッチとを動力の伝達状態にし、
前記車両を前記特定の一方向にのみ移動させる場合には、前記第1のクラッチまたは前記第2のクラッチのいずれか一方のクラッチのみを動力の伝達状態にする
ことを特徴とする請求項1または請求項2に記載の倒立振子型車両の制御装置。
【請求項4】
前記車両が前記特定の一方向へのみ駆動される場合に、前記特定の一方向とは異なる方向であって前記移動動作部の接地点から所定の距離を隔てた地点に補助輪を接地させる補助輪制御部を
備えることを特徴とする請求項1から請求項3のいずれかに記載の倒立振子型車両の制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2011−73524(P2011−73524A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2009−225595(P2009−225595)
【出願日】平成21年9月29日(2009.9.29)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】