JP4156544B2 - 出力分配算出装置 - Google Patents

出力分配算出装置 Download PDF

Info

Publication number
JP4156544B2
JP4156544B2 JP2004062620A JP2004062620A JP4156544B2 JP 4156544 B2 JP4156544 B2 JP 4156544B2 JP 2004062620 A JP2004062620 A JP 2004062620A JP 2004062620 A JP2004062620 A JP 2004062620A JP 4156544 B2 JP4156544 B2 JP 4156544B2
Authority
JP
Japan
Prior art keywords
vector
value
inner product
output
vectors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2004062620A
Other languages
English (en)
Other versions
JP2005250992A (ja
Inventor
岳宏 西山
克彦 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004062620A priority Critical patent/JP4156544B2/ja
Publication of JP2005250992A publication Critical patent/JP2005250992A/ja
Application granted granted Critical
Publication of JP4156544B2 publication Critical patent/JP4156544B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

この発明は、例えば、人工衛星の姿勢制御装置や、4輪独立駆動車両の姿勢制御装置等において、システム全体で所望の出力を実現するための、各アクチュエータ出力を決定する場合に用いられる出力分配算出装置に関するものである。
機械システム等において、与えられた力、あるいはトルク等をある個数のアクチュエータで実現する際に、与えられた力、あるいはトルクの自由度に対して、アクチュエータの自由度(個数)が多ければ、その力、あるいはトルクを実現するためのアクチュエータへの力、あるいはトルクの分配は一般には一意ではない。ここでは、与えられた力、あるいはトルク等をM次元ベクトルfで表し、決定すべき個々のアクチュエータの力あるいはトルクなどを並べてN次元ベクトルxで表したときに、fとxの関係が以下のように線形であるようなものを考える。
f=Ax (101)
ここで、Aはxからfを求めるM×Nの係数行列である。上述のようにN>Mの場合を考えると、与えられたfに対して式(101)を満たすxは一意ではなく、ある程度設定の自由度がある。そこで、この冗長自由度を利用して与えられた目的において最適となるようにxを決定することが考えられる。ここでは、個々のアクチュエータ出力を極力抑えることを目的とし、以下のような目的関数を設定する。
min max|x| (102)
ここで、式(102)は式(101)を満たすxのうちで、各要素xの絶対値の最大値が最小となるようなxを求めることを意味する。
上述のように定式化される問題は、現実問題として様々な分野で現れる。例えば、アクチュエータとして4個以上のリアクションホイールを持つ人工衛星の姿勢制御装置において、人工衛星に所望の姿勢変更を与えるための姿勢駆動トルクコマンドfから、それを実現するためのリアクションホイールの駆動トルクxを決定する場合に、ホイールの数が姿勢駆動トルクfの次元である3よりも多いために、fからxの決定は一意ではない。
そのため、ホイールトルクの飽和を抑えつつ、より効率的に姿勢を駆動するために、ホイールトルク最大値を最小にするようにホイールトルクxを決定することが考えられる。例えば、特許文献1に記載の人工衛星の姿勢制御装置においては、ホイールトルクの飽和を抑えつつ衛星の姿勢角加速度を最大にするために、与えられた姿勢角加速度目標値からホイールトルクを決定する際に、冗長自由度を表す自由パラメータを1軸あるいは2軸まわりの姿勢変更時の近似最適値に比例するように設定し、ホイールトルクの分配を求めていた。
特開2003−252299号公報
しかしながら、従来の出力分配方法では、計算量を少なくするためにいくつかの近似が用いられるため、任意の姿勢駆動トルクに対して、式(101)、(102)で表される問題の最適解としてのホイールトルクを与えるとは限らず、ホイールトルクの飽和を抑え、姿勢駆動の効率を向上するという意味で、確実に最適な分配を与えるわけではない。また、近似的に導出されたアルゴリズムであることから、実際に人工衛星に搭載して実施する上で、信頼性と性能に不安があった。
この発明は上記のような課題を解決するためになされたもので、各アクチュエータの出力を極力抑えつつ、システム全体として所望の出力を得ることのできる出力分配算出装置を得ることを目的とする。
この発明に係る出力分配算出装置は、複数のアクチュエータの出力であるベクトルxと、制御対象の出力であるベクトルfが、f=Axによって関係付けられ、かつベクトルxの次元Nがベクトルfの次元Mよりも大きいモデルに対し、ベクトルfが与えられたときにそれを実現するためのベクトルxを求める場合、行列Aの第i列のM次元ベクトルをa(i=1,・・・N)として、全てのベクトルa(i=1,・・・N)との内積の絶対値の総和がある正の定数CとなるようなM次元ベクトルのうちで、ベクトルfとの内積の値が最大となるようなベクトルyを求めるy演算手段と、ベクトルyとベクトルfとの内積の値を定数Cで割った値xを求めるx演算手段と、ベクトルaとベクトルyとの内積が0でないiに対して、xの値を、xにaとyとの内積の符号を付した値とする第1のx演算手段と、ベクトルaとベクトルyとの内積が0となるiに対して、xの値を、その絶対値がxを超えないように求める第2のx演算手段とを備えたものである。
この発明の出力分配算出装置は、行列Aの第i列のM次元ベクトルをaとして、全てのベクトルaとの内積の絶対値の総和がある正の定数CとなるようなM次元ベクトルのうちで、ベクトルfとの内積の値が最大となるようなベクトルyを求め、ベクトルyとベクトルfとの内積の値を定数Cで割った値xを求め、ベクトルaとベクトルyとの内積が0でないiに対しては、xの値を、xにaとyとの内積の符号を付した値とし、また、ベクトルaとベクトルyとの内積が0となるiに対しては、xの値を、その絶対値がxを超えないように求めたので、与えられたベクトルfを実現するベクトルxのうちで、その各要素絶対値の最大値が最小となるような分配を常に求めることができ、アクチュエータの出力を極力抑えつつ全体として所望の出力が得られるような分配を行うことができる。
実施の形態1.
図1は、この発明の実施の形態1による出力分配算出装置のブロック構成図である。
図の装置は、y演算手段1、x演算手段2、第1のx演算手段3、第2のx演算手段4からなる。y演算手段1は、行列Aの第i列のM次元ベクトルをa(i=1,・・・N)として、全てのベクトルa(i=1,・・・N)との内積の絶対値の総和がある正の定数CとなるようなM次元ベクトルのうちで、ベクトルfとの内積の値が最大となるようなベクトルyを求める機能部である。
演算手段2は、 ベクトルyとベクトルfとの内積の値を前記定数Cで割った値xを求める機能部である。第1のx演算手段3は、ベクトルaとベクトルyとの内積が0でないiに対して、xの値を、xにaとyとの内積の符号を付した値とする機能部である。第2のx演算手段4は、ベクトルaとベクトルyとの内積が0となるiに対して、xの値を、その絶対値がxを超えないように求める機能部である。
本発明の出力分配算出装置は、コンピュータを用いて実現され、上記y演算手段1〜第2のx演算手段4は、それぞれの機能に対応したソフトウェアと、これらのソフトウェアを実行するためのCPUやメモリ等のハードウェアから構成されている。
次に、本実施の形態の出力分配算出装置を用いた出力分配方法を説明する。
本発明では、以下のようにモデル化された力あるいはトルク分配問題を考える。
f=Ax ・・・(1)
min max|x| ・・・(2)
ここで、fはM次元ベクトル、xはN次元ベクトル、AはM×N行列で、N>Mとする。xの各要素x(i=1,・・・,N)は各アクチュエータの駆動力、あるいは駆動トルク等の出力を表し、fの各要素f(i=1,・・・,M)はこれらアクチュエータの駆動力あるいはトルクの合成により実現される力あるいはトルク等のシステム全体としての出力を表す。
式(2)は、式(1)を満たすxのうちで、各要素の絶対値|x|の最大値を最小にするようなものを求めることを意味する。
全体として実現すべき力あるいはトルクfが与えられたときに、問題(1)、(2)の最適解となるようなアクチュエータの出力xを求めることができれば、全てのアクチュエータの出力を極力抑えることができ、fを実現する上で最も効率的と言える。
問題(1)、(2)は一般にミニマックス問題と呼ばれる最適化問題であり、変数の次元Nがそれほど大きくなければ既存の解法を用いて市販のコンピュータ等で解くことができる。しかし、一般に、そのような解法は収束計算等が必要になるため、制御装置等に組み込んで制御ループの中で用いる際には、制御の時間刻みに対して十分に短い時間で確実に解を求めることが必要であり、計算量の観点で現実的ではない。
本発明においては、問題(1)、(2)を直接解くことなく、より簡単な計算により最適な分配xを求める。以下、本実施の形態の出力分配算出装置の動作としての分配方法をフローチャートに従って説明する。
図2は、この発明の実施の形態1による出力分配算出装置における出力分配方法を示すフローチャートである。
先ず、与えられたfに対し、y演算手段1は、次のような問題の解を求める(ステップST1)。
max f・y ・・・(3)
制約条件:Σ |a・y|=C ・・・(4)
ここで、f・yは、ベクトルfとyとの内積を表す。a(i=1,・・・,N)は、行列Aの第i列であるM次元ベクトル、Σ はi=1からi=Nまでの和を表す。Cは適当な正の定数、例えばC=1とする。問題(3)、(4)は、式(4)の制約条件を満たすyのうちで、fとの内積f・yの値が最大となるものを求めることを意味する。以下では、問題(3)、(4)をもとのミニマックス問題(1)、(2)に対して、双対問題と呼ぶ。双対問題の最適解を求めるための具体的な手法については、後に説明する。
双対問題の最適解y=yが得られると、次に、x演算手段2は、xを以下のように与える(ステップST2)。
=f・y/C ・・・(5)
は、求められるアクチュエータへの力、あるいはトルクの分配において、力、あるいはトルクの絶対値の最大値となる。式(5)において、内積f・yの値は双対問題(3)、(4)の目的関数値であるため、双対問題を解く過程で既に計算されている。式(5)の計算は実際にはそれをCで割る計算だけである。C=1としておけば、その計算も不要であり、ステップST2の計算はステップST1の計算と同時に行うことができる。
次に、第1のx演算手段3は、yおよびxを用いて、ベクトルaとyの内積a・yが0とならないiに対するxの値を、xにa・yの符号を付した値として与え、それ以外のiに対するxの値は、一旦x=0としておく。即ち、xを以下のように与える(ステップST3)。
=sign(a・y)x (i=1,・・・,N) ・・・(6)
ここで、sign(t)はt>0のとき+1、t<0のとき−1、t=0のとき0となる符号関数である。a・y=0となるiに対してx=0とするのは、単に記述の簡単化のためであり、実際はここで値を与える必要はない。0とする手順を省いた場合には、後の式(8)の右辺第2項において、Aとxとから対応する列、要素をそれぞれ除いておけばよい。
次に、第2のx演算手段4によって、残りのx、即ち、a・y=0となるxの値を求める。ここで、yとの内積が0となるaの本数をN(1)とおき、これらを列とするM×N(1)行列をA(1)、A(1)の第i列をM次元ベクトルa (1)(i=1,・・・N(1))、対応するxをまとめてN(1)次元ベクトルx(1)とする。x(1)の値は、次式を満たし、かつ、各要素x (1)が|x (1)|≦xを満たすように与えられる(ステップST4)。
(1)(1)=f(1) ・・・(7)
ここで、f(1)は次式で与えられる。
(1)=f−Ax ・・・(8)
但し、式(8)の右辺第2項のxにおいて、x(1)に対応する要素は0となっている。上述のように、式(6)でこれらの要素を0にする手順を省いた場合には、式(8)の右辺第2項は、AとxとからA(1)、x(1)に対応する列、要素を除いて計算する。先に求められていたxと、ここで求められたx (1)をあわせて、xの全ての値が決まる。
次に、実施の形態1に係る、双対問題(3)、(4)の具体的な解法について図3を用いて説明する。
図3は、実施の形態1に係る図2のフローチャートのステップST1のより詳細な動作を説明するものである。
双対問題(3)、(4)の最適解として、行列Aを構成するベクトルa(i=1,・・・,N)のうちの少なくともM−1本との内積が0となるようなものが必ず存在する。そこで、最適解yの候補としては、これらを考えれば十分である。これは以下の理由からである。
今、相対問題(3)、(4)の最適解y=yが求められたとする。yはM次元ベクトルであるので、aのうちのM本以上に直交することはできない(それらaのうちの任意の1本がその他のaの線形結合で表される場合を除く)。そこで、一般にyは高々M−1本以下のaに直交する。残りのN−M+1本以上の(yが直交しない)aに対しては、そのiに対するxの値は、上記の式(6)のように一意的に与えられる。一方、xは式(1)を満たす必要がある。即ち、AのN本の列ベクトルaにN個のパラメータxをかけた形としてベクトルfを表す必要がある。
ここで、例えばyがM−2本のaに直交する場合、N−M+2個のxは式(6)で表されるように一つのパラメータxで決められている。よって、パラメータの数は、式(6)で値の決まらないM−2個のxとxの、合計M−1個しかなく、一般にはM次元ベクトルfを表すことはできない。よって、yはM−1本以上のaに直交する必要がある。以上により、相対問題の最適解yは一般にM−1本のaに直交する。
上記で、例えばM−2個のxとxの合計M−1個のパラメータでM次元ベクトルfを表すことができるような場合も考えられる。しかしそのような場合にも、それらxで値を与えているN−M+2個のxのうちの一つをフリーパラメータとしてパラメータをM個にしても、同じ結果になることは容易にわかるので、そのような特別の場合も含めてyとしては、一般にM−1本のaに直交するものを考えればよい。
以上のような理由から、ステップST10では、準備段階として、M次元ベクトルa(i=1,・・・,N)の内の任意のM−1本に直交し、全てのaとの内積の絶対値の総和がある正の定数Cとなるようなベクトルyの集合Yを求める。
集合Yに含まれるベクトルyとしては、方向が正反対で大きさが同じものをそれぞれ2本ずつ考えることができる。例えば、あるベクトルyがYに含まれていれば、符号を反転した−yもYに含まれる。そこで、そのうち1本ずつを省けば、Yに含まれるベクトルの本数は、ホイールといったアクチュエータの個数Nに対して、M−1となる。
ここで、M−1は異なるN個の要素からM−1個を選ぶ組み合わせの数であり、Mが大きくなければそれほど大きな値ではない。例えば、M=3の場合にはM−1=N(N−1)/2である。これらM次元ベクトルの集合Yは、行列Aが定数として与えられる場合には、予め計算して、メモリ等の記憶部に記憶しておくことができる。そして、次のステップ以降が、fが与えられるごとに計算される。
fが与えられると、記憶されている集合Yを呼び出し(ステップST11)、fとの内積の絶対値が最大となるようなベクトルyを集合Yの中から選び、更にyとfとの内積が負であれば、yの符号を反転しておく(ステップST12)。これを式で表すと以下のようになる。
=argmaxy∈Y|f・y| ・・・(9)
=sign(f・y)y ・・・(10)
ここで、argmaxy∈Y|f・y|は集合Yに含まれるyのうち、|f・y|が最大となるものを意味する。
また、ステップST10で集合Yを求める際、方向が正反対で大きさが同じ2本のyのうち1本を省くことでYに含まれるベクトルの本数を半分にしたが、これら2本を別のものとしてYに含めておけば、式(9)、(10)の計算は、式(9)で絶対値を外した以下の式にまとめることができる。
=argmaxy∈Yf・y ・・・(9’)
これにより、Yを記憶するためのメモリ量は2倍に増え、内積f・yの計算回数も2倍になるが、プログラムの記述を簡単にすることはできる。
また、図3のフローチャートでは、yの候補Yを予め計算しておき、記憶部に蓄えておいたが、これをfが与えられる毎に計算することもできる。この場合計算量は増加するが、その計算量は予め見積もることができるため、計算量が許容される程度である限り、悪影響を及ぼすことはない。
次に、実施の形態1に係る、図2のフローチャートにおけるステップST4の具体的計算方法について、図面を用いて詳細に説明する。
図4は、実施の形態1に係る図2のフローチャートのステップST4のより詳細な動作を説明するものである。
ステップST4では、式(7)を満たし、かつ全ての要素が|x (1)|≦xを満たすようなN(1)次元ベクトルx(1)を求めればよい。ここで、N(1)はベクトルyに直交するベクトルaの本数であった。N(1)≦M−1であれば、式(7)を満たすx(1)は一意に求められるが、N(1)≧Mであれば、x(1)は一意には求められない。そこで、ステップST40として、ベクトルyに直交するベクトルaの本数の判定部分を設ける。N(1)≦M−1である場合に、式(7)を満たすx(1)の求め方としては様々な手法が考えられ、どのような手法を用いてもよいが、例えば以下のように求める(ステップST41)。
(1)=((A(1)(1)−1(A(1)(1)
・・・(11)
ここで、上付きのTは行列の転置、−1は逆行列を表す。
(1)≧Mであった場合、上述のように式(7)を満たすx(1)は一意ではないため、max|x (1)|≦xを満たす範囲内で、何らかの基準に従ってその値を決定する必要がある。アクチュエータ出力を極力抑えることを考えると、max|x (1)|が最小になるように求めることが最適である。そこで、上記同様、次のような問題の最適解となるベクトルy=y(1)*を求める。
max(1)・y ・・・(12)
制約条件:Σ N(1)|a (1)・y|=C(1) ・・・(13)
・y=0 ・・・(14)
ここで、C(1)は適当な正の定数、例えばC(1)=1とする。
問題(12)、(13)、(14)は、形式上、問題(3)、(4)をyに直交する部分空間に制限した形になっている。そのため、問題(3)、(4)と同様にして解くことができ、求められたy=y(1)*を用いて、x(1)の値が決定される。その際、a (1)・y(1)*=0となるa (1)がM−1本以上存在する場合、対応するx (1)の値はやはり一意には求められず、更にyとy(1)*の二つに直交する部分空間での上記と同様の問題を考える必要がある。
そこで、次のような問題を考える(これをk-部分問題と呼ぶことにする)。
k-部分問題:
(k)=A(k)(k) ・・・(15)
min max|x (k)| ・・・(16)
最初のミニマックス問題(1)、(2)は形式的に0-部分問題と呼ぶことにする。即ち、f(0)=f、A(0)=A、x(0)=xとする。また、1-部分問題が上記で考えたx(1)を求める問題である。以下、k-部分問題の解x(k)を求める手順を、図面を用いて説明する。
図5は、k-部分問題の解x(k)を求める手順を示すフローチャートである。
k-部分問題(15)、(16)に対して、次のようにk-双対問題を考える。
k-双対問題:
max(k)・y ・・・(17)
制約条件:Σ N(k)|a (k)・y|=C(k) ・・・(18)
(j)*・y=0 (j=0、・・・、k−1) ・・・(19)
ここで、C(k)は適当な正の定数、例えばC(k)=1とする。また、a (k)(i=1,・・・,N(k))は行列A(k)の第i列であり、y(j)*(j=0、・・・、k−1)はj-双対問題の最適解である。最初の双対問題(3)、(4)は形式的に0-双対問題と呼ぶものとする。即ち、N(0)=N、C(0)=C、y(0)*=yとする。0-双対問題(3)、(4)と同様、k-双対問題の最適解として、a (k)(i=1,・・・,N(k))のうちのM−k−1本との内積が0となる(かつ、制約条件(19)よりy(j)*(j=0、・・・、k−1)との内積も0となる)ようなものが必ず存在する。これら最適解の候補からy(k)*を求める手続きは、上記0-双対問題(3)、(4)の場合と同様である。
k-双対問題の最適解y(k)*が求められる(ステップST101)と、x (k)の絶対値の最大値x (k)は、式(5)と同様に以下の式により求められる(ステップST102)。
(k)=f(k)・y(k)*/C(k)・・・(20)
また、内積a (k)・y(k)*が0でないiに対しては、x (k)の値は、式(6)と同様に以下の式により求められる(ステップST103)。
(k)=sign(a (k)・y(k)*)x (k)
(i=1,・・・,N(k)) ・・・(21)
また、a (k)・y(k)*=0となるiに対するx (k)の値は、a (k)・y(k)*=0となるベクトルa (k)の本数をN(k+1)として、N(k+1)≦M−k−1であれば、式(11)と同様に、以下の式により一意に求められる(ステップST105)。
(k+1)=((A(k+1)(k+1)−1
(A(k+1)(k+1) ・・・(22)
ここで、a (k)・y(k)*=0となるa (k)を列とするM×N(k+1)行列をA(k+1)、対応するx (k)をまとめてN(k+1)次元ベクトルx(k+1)とする。また、f(k+1)は式(8)と同様、式(21)で求められたx(k)を用いて以下のように定義される。
(k+1)=f(k)−A(k)(k) ・・・(23)
(k+1)≧M−kであれば、x(k+1)の値は一意ではなくなるため、更にk+1-部分問題を考え、その値を決定する(ステップST106)。最後に、上記ステップST105あるいはステップST106により求められたx(k+1)の値を、x(k)の対応する位置に代入し、全てのx(k)の値を得る(ステップST107)。
再び図4に戻って説明する。ステップST40においてN(1)≧Mであった場合には、1-部分問題の手続きにより、x(1)を求める(ステップST42)。その際、上述のように、必要であれば、更に2-部分問題、3-部分問題と、k-部分問題をkに関して必要な回数だけ逐次計算する(最大k=M−2まで)。それにより最終的にx(1)が求められ、結局全てのxの値が求められることになる。
尚、与えられたモデルにおいて、行列Aの構成によってはこのようなk-部分問題を逐次解くことも必要ない場合がある。即ち、aのうちの任意のM本が1次独立となっていれば、最初の双対問題の最適解yに対して内積が0となるようなaの本数は常にM−1本以下である。よってそのような場合にはk-部分問題(k≧1)の計算は不要である。また、M≦2の場合にも当然、k-部分問題(k≧1)の計算は不要である。
このように計算を行うことで、与えられたfに対して常にxの各要素絶対値の最大値が最小となることが保証されるようなxを簡単な演算により求められる。それにより、各アクチュエータの出力を極力抑えつつ、所望の力、あるいはトルクを出力できるため、非常に効率的である。また、本装置によると、fの値が連続的に変化したときに、求められるxの値も連続的に変化することが保証される。更に、これらの計算において、特にk-双対問題の最適解を有限個の候補の中から選択するだけで求められるため、収束計算が全く必要なくなり、計算上の信頼性が高い。
このような手法が必要となる例として、姿勢制御用のアクチュエータとしてホイールを備えた人工衛星の姿勢制御装置に適用した場合について、図面を用いて説明する。
図6は、ホイールによる人工衛星の姿勢制御装置の概要を示すブロック図である。
図6において、姿勢制御トルク生成部11は、人工衛星が所望の姿勢駆動を行うための姿勢制御トルクコマンドを生成する機能部である。ホイールトルク分配生成部12は、姿勢制御トルク生成部11の出力である姿勢制御トルクコマンドからホイール13を駆動するためのホイールトルクコマンドを生成する機能部である。ホイール13は人工衛星本体14の姿勢制御を行うためのアクチュエータである。以下、ホイールトルク分配生成部12の働きについて説明する。
3軸の姿勢制御トルクを並べた3次元ベクトルをfとし、ホイール3のN個のホイールの各駆動トルクを並べたN次元ベクトルをxとすると、fとxの関係は以下のように表される。
f=Ax ・・・(24)
ここで、Aはホイール13の幾何学的配置から一意に定まる3×N行列である。即ち、Aの第i列が、i番目のホイールの回転軸方向ベクトルa(i=1,・・・,N)であるような行列である。式(24)は式(1)において、M=3の場合に相当する。ホイールの個数Nが4以上であれば、式(24)を満たすホイール駆動トルクxは一般には一意ではなくなる。通常、ホイールトルク分配生成部12において、姿勢制御トルクfからそれを実現するホイールトルクxを求めるために、次式を用いることが多い。
x=Bf ・・・(25)
ここで、BはAB=Iを満たすN×3の定数行列であり、典型的にはAの擬似逆行列、即ち、B=A(AA−1が用いられる。また、Iは3×3の単位行列である。式(25)によるトルク分配は計算が簡単なため、衛星に搭載のコンピュータで実現する上での問題はないが、ホイールのトルクを有効に利用するという点では効率がよいとはいえない。そこで、ホイールトルク分配生成部12に、本発明に係る出力分配算出装置を適用する。その具体的な構成および動作については、上述の通りである。この場合、M=3であるから、最大でも1-部分問題までを考えればよく、また任意の3本以上のホイール軸が同一平面内に含まれないようなホイール配置であれば、1-部分問題の計算は不要となる。また、双対問題(および1-双対問題)の最適解の候補Yは、ホイールの幾何学的配置から決まるベクトルの集合となる。
このように、ホイールによる人工衛星の姿勢制御装置に本発明に係る出力分配算出装置を適用することで、与えられた3軸姿勢制御トルクfに対して、簡単な演算によりホイールトルク最大値を最小にするようなトルク分配xが求められ、効率的な姿勢駆動が実現できる。本手法においては収束計算が不要なため、衛星搭載のコンピュータにおいて軌道上で用いる上で、十分に信頼性が高い。
また、他の適用例として、本発明に係る出力分配算出装置を、4輪独立駆動車両の姿勢制御装置へ応用する場合について説明する。この種の問題の例が、坂井、佐渡、堀、“4輪独立駆動電気自動車における動的な制駆動力配分法”、電気学会論文誌D、vol.120−D、No.6、pp.761−768(2000年)において述べられている。ここでは、駆動力と制動力をまとめて制駆動力と呼んでいる。
上記論文において述べられているように、電気自動車等においては分散配置されたモータにより、各駆動輪に独立にトルクを分配して、動的に車体姿勢の制御を行うことが可能である。
図7は、このような制御を行う際の車両制御系のブロック図である(上記論文762ページの図2に相当している)。
図中の、車両運動制御部15において、車両の姿勢を制御するための総駆動力(制動力)およびヨーモーメントのコマンドを生成し、制駆動力分配生成部16において、その総駆動力およびヨーモーメントを実現するための各車輪の駆動力(制動力)を求める。制駆動力制御装置17は、制駆動力分配生成部16の出力に従って各車輪に制駆動力を与え、車両本体18の運動が実現される。以下、制駆動力分配生成部16の働きについてより詳細に説明する。
各車輪の制駆動力をx(i=1,・・・,4)とし、実現すべき車両全体の総駆動力をF、ヨーモーメントをMとすると、これらは以下の式を満たす必要がある。
+x+x+x=F ・・・(26)
−d+d−d+d=M・・・(27)
ここで、d、dはそれぞれ前輪、後輪における車輪間隔を2で割った値である。尚、車輪の番号は左前輪、右前輪、左後輪、右後輪の順としている。式(26)、(27)は上記論文中でも用いられている簡単化された車両のモデルである。車輪の数4に対して、制御したい量はF、Mの二つであるから、式(26)、(27)は冗長である。明らかに、f=[F、M、x=[x、x、x、xとおけば、式(26)、(27)は式(1)でM=2、N=4の場合に相当する。
車輪の駆動力が大きくなると車輪の空転が起こりやすくなることから、各車輪の制駆動力の大きさ|x|は極力小さい値であることが好ましい。そこで、|x|の最大値を最小にするように各車輪の制駆動力の分配を求めることを考えると、やはりこの場合もミニマックス問題(1)、(2)の形にモデル化でき、本発明に係る出力分配算出装置を適用可能である。この場合、M=2であるから、k-部分問題(k≧1)は考える必要はなく、また、双対問題の最適解の候補は4本の定数ベクトルであるから、駆動力分配に要する計算量は非常に少ない。
このように、本発明に係る出力分配算出装置を4輪独立駆動車両の姿勢制御装置に用いることで、非常に簡単な演算により最適な制駆動力分配を求めることができるため、このような動的な車両姿勢の制御を実装する上での信頼性を高めつつ、性能を向上することができる。
尚、上記の例はM≦3の場合であるが、これに限定されるものではない。例えば、多関節のロボットアームの手先を物体表面に押し付けるような制御として、物体表面に加える力とトルクを全て所望の値にしたい場合が考えられる。このような場合、Mは、3次元空間における力とトルクの自由度を表すので、M=3+3=6となる。Nはアームの各関節に取り付けられたモータの個数で、関節が多数あってN>6である場合であれば本発明が同様に適用可能である。このような場合でも、特定の関節(モータ)に負荷が偏ることなく制御できるという上記の例と同様の効果を得ることができる。
以上のように、実施の形態1によれば、複数のアクチュエータの出力で制御対象の出力が実現され、前記複数のアクチュエータの個々の出力をN次元ベクトルxで表し、制御対象の出力をM次元ベクトルfで表した場合、ベクトルxとベクトルfが線形の関係式f=Axによって関係付けられ、かつベクトルxの次元Nがベクトルfの次元Mよりも大きいモデルに対し、ベクトルfが与えられたときにそれを実現するためのベクトルxを求める出力分配算出装置において、行列Aの第i列のM次元ベクトルをa(i=1,・・・N)として、全てのベクトルa(i=1,・・・N)との内積の絶対値の総和がある正の定数CとなるようなM次元ベクトルのうちで、ベクトルfとの内積の値が最大となるようなベクトルyを求めるy演算手段と、ベクトルyとベクトルfとの内積の値を定数Cで割った値xを求めるx演算手段と、ベクトルaとベクトルyとの内積が0でないiに対して、xの値を、xにaとyとの内積の符号を付した値とする第1のx演算手段と、ベクトルaとベクトルyとの内積が0となるiに対して、xの値を、その絶対値がxを超えないように求める第2のx演算手段とを備えたので、与えられた制御対象の出力fを実現するアクチュエータの出力xのうちで、その各要素絶対値の最大値が最小となるような分配を常に求めることができ、各アクチュエータの出力を極力抑えつつ、システム全体として所望の出力を得ることができる。
また、実施の形態1によれば、y演算手段を、ベクトルyを求める場合、定数ベクトルの集合Yに含まれるベクトルが、N本のaのうちのM−1本との内積が0であり、かつ、全てのa(i=1,・・・N)との内積の絶対値の総和がある正の定数Cとなるようなベクトルであることを制約条件として、ある本数の前記定数ベクトルの集合Yの中からベクトルfとの内積の値が最大となるようなものを選択するよう構成したので、次のような効果がある。即ち、このように、ベクトルyを求める際に、有限の本数の定数ベクトルの集合の中から選択することで、ベクトルyを求めるための計算が非常に簡単になり、計算量を大幅に減少させることができる。また、収束計算が不要なため、計算の信頼性を向上させることができる。
また、実施の形態1によれば、第2のx演算手段を、aとyとの内積が0となるiに対してxの値を求める際、yとの内積が0となるaの数がM以上であった場合、上述したように定義されるk-部分問題の手続きを、k=1から順に、最大k=M−2まで逐次的に実行し、それらxの値を求めるよう構成したので、次のような効果がある。即ち、aとyとの内積が0となるiに対するxの値を、このように求めることで、簡単な計算によりそれらの値がxを超えないように求めることができ、かつ、それらに対応したアクチュエータ出力を極力小さく抑えることができるため、効率向上を図ることができる。
実施の形態2.
図8は、この発明の実施の形態2による出力分配算出装置のブロック構成図である。
図の装置は、y演算手段1、x演算手段2、第1のx演算手段3、第2のx演算手段4、置き換え手段5からなる。ここで、y演算手段1〜第2のx演算手段4は、図1に示した実施の形態1の構成と同様であるため、対応する部分に同一符号を付してその説明を省略する。
置き換え手段5は、x演算手段2で求められた値に対して、ベクトルfをf(xlim/x)と置き換え、かつ、xの値をxlimに置き換える機能部である。また、置き換え手段5においても、その機能に対応したソフトウェアとこれを実行するためのハードウェアから構成されている。
図9は、実施の形態2の出力分配算出装置の動作を説明するフローチャートである。
図9に示す動作は、図1のフローチャートに示す動作と一部が異なるのみであり、同一の動作をする部分については、同一ステップ符号を付してある。
本実施の形態2において、実施の形態1と異なる点は、ステップST2とステップST3の間に、新たにステップST21を挿入した点である。ステップST21では、置き換え手段5により、ステップST2で求められたxに対し、fをf=(xlim/x)fと置き換え、更にxをx=xlimと置き換える。ここで、xlimは予め定められているアクチュエータ出力の許容値、あるいはそれより少し小さい値とする。その後の計算は実施の形態1と同様である。
このように、アクチュエータ出力の許容値に応じてfおよびxの値を与えることで、アクチュエータ出力許容値の範囲内で、システム全体としての出力が最も大きくなり、非常に効率的である。
例えば、実施の形態1で示した人工衛星の姿勢制御装置に対して、本実施の形態に係る出力分配算出装置を適用することが考えられる。その場合の姿勢制御装置全体のブロック図は図6と同様である。図6において、ホイールトルク分配生成部12に本実施の形態の出力分配算出装置による計算手順を適用する。この場合、xlimはホイールの最大出力可能トルクである。また、姿勢制御トルク生成部11から出力される3軸姿勢制御トルクfは、ホイールトルク分配生成部12においてホイールの最大出力可能トルクに応じてその大きさを変更される。そして、出力されるホイールトルクコマンドは、ホイールの最大出力可能トルクの範囲内で姿勢駆動トルクの大きさが最大となるようなものとなる。
このように、本実施の形態に係るトルク分配方法を人工衛星の姿勢制御装置に適用することで、高速な姿勢駆動や大角度の姿勢変更が必要となる場合に、ホイールの能力の範囲内で全体として最大限の姿勢制御トルクを出力でき、人工衛星の機動性を大幅に向上できる。
以上のように、実施の形態2によれば、実施の形態1の構成に加えて、ベクトルfをf(xlim/x)と置き換え、かつ、xの値をxlimに置き換える置き換え手段を設けたので、アクチュエータの出力が限られているような場合でも、その範囲内でシステム全体としての最も大きな出力を算出することができる。
この発明の実施の形態1による出力分配算出装置を示す構成図である。 この発明の実施の形態1による出力分配算出装置における出力分配方法を示すフローチャートである。 実施の形態1に係る図2のフローチャートのステップST1のより詳細な動作を説明するフローチャートである。 実施の形態1に係る図2のフローチャートのステップST4のより詳細な動作を説明するフローチャートである。 k-部分問題の解x(k)を求める手順を示すフローチャートである。 実施の形態1を適用する人工衛星の姿勢制御装置の概要を示すブロック図である。 実施の形態1を適用する車両制御系のブロック図である。 この発明の実施の形態2による出力分配算出装置のブロック構成図である。 実施の形態2の出力分配算出装置の動作を説明するフローチャートである
符号の説明
1 y演算手段、2 x演算手段、3 第1のx演算手段、4 第2のx演算手段、5 置き換え手段。

Claims (4)

  1. 複数のアクチュエータの出力で制御対象の出力が実現され、前記複数のアクチュエータの個々の出力をN次元ベクトルxで表し、前記制御対象の出力をM次元ベクトルfで表した場合、前記ベクトルxと前記ベクトルfが線形の関係式f=Axによって関係付けられ、かつベクトルxの次元Nがベクトルfの次元Mよりも大きいモデルに対し、ベクトルfが与えられたときにそれを実現するためのベクトルxを求める出力分配算出装置において、
    行列Aの第i列のM次元ベクトルをa(i=1,・・・N)として、全てのベクトルa(i=1,・・・N)との内積の絶対値の総和がある正の定数CとなるようなM次元ベクトルのうちで、ベクトルfとの内積の値が最大となるようなベクトルyを求めるy演算手段と、
    ベクトルyとベクトルfとの内積の値を前記定数Cで割った値xを求めるx演算手段と、
    ベクトルaとベクトルyとの内積が0でないiに対して、xの値を、xにaとyとの内積の符号を付した値とする第1のx演算手段と、
    ベクトルaとベクトルyとの内積が0となるiに対して、xの値を、その絶対値がxを超えないように求める第2のx演算手段とを備えた出力分配算出装置。
  2. 複数のアクチュエータの出力で制御対象出力が実現され、前記複数のアクチュエータの個々の出力をN次元ベクトルxで表し、前記制御対象の出力をM次元ベクトルfで表した場合、前記ベクトルxと前記ベクトルfが線形の関係式f=Axによって関係付けられ、かつベクトルxの次元Nがベクトルfの次元Mよりも大きいモデルに対し、ベクトルfが与えられたときにそれを実現するためのベクトルxを求める出力分配算出装置において、
    行列Aの第i列のM次元ベクトルをa(i=1,・・・N)として、全てのベクトルa(i=1,・・・N)との内積の絶対値の総和がある正の定数CとなるようなM次元ベクトルのうちで、ベクトルfとの内積の値が最大となるようなベクトルyを求めるy演算手段と、
    ベクトルyとベクトルfとの内積の値を前記定数Cで割った値xを求めるx演算手段と、
    ベクトルfをf(xlim/x)と置き換え、かつ、xの値をxlimに置き換える置き換え手段と、
    ベクトルaとベクトルyとの内積が0でないiに対して、xの値を、xにaとyとの内積の符号を付した値とする第1のx演算手段と、
    ベクトルaとベクトルyとの内積が0となるiに対して、xの値を、その絶対値がxを超えないように求める第2のx演算手段とを備えた出力分配算出装置。
  3. 演算手段は、
    ベクトルyを求める場合、定数ベクトルの集合Yに含まれるベクトルが、N本のaのうちの少なくともM−1本との内積が0であり、かつ、全てのa(i=1,・・・N)との内積の絶対値の総和がある正の定数Cとなるようなベクトルであることを制約条件として、ある本数の前記定数ベクトルの集合Yの中からベクトルfとの内積の値が最大となるようなものを選択するよう構成されていることを特徴とする請求項1または請求項2記載の出力分配算出装置。
  4. 第2のx演算手段は、
    とyとの内積が0となるiに対してxの値を求める際、yとの内積が0となるaの数がM以上であった場合、次のように定義されるk-部分問題の手続きを、k=1から順に、最大k=M−2まで逐次的に実行し、それらxの値を求めるよう構成されたことを特徴とする請求項1または請求項2記載の出力分配算出装置。
    k-部分問題:
    (1)全てのa (k)(i=1,・・・N(k))との内積の絶対値の総和がある正の定数C(k)となり、かつ全てのy(j)*(j=0,・・・k−1)との内積が0となるようなベクトルのうちで、f(k)との内積の値が最大となるようなM次元ベクトルy(k)*を求め、
    (2)y(k)*とf(k)との内積の値をC(k)で割った値x (k)を求め、
    (3)a (k)とy(k)*との内積が0でないiに対して、x (k)の値を、x (k)にa (k)とy(k)*との内積の符号を付した値とし、
    (4)a (k)とy(k)*との内積が0となるa (k)がM−k−1本以下であった場合には、x (k+1)の値を、一意的な関係式A(k+1)(k+1)=f(k+1)から求め、
    (5)a (k)とy(k)*との内積が0となるa (k)がM−k本以上であった場合には、更にk+1-部分問題の手続きによりx(k+1)を求め、
    (6)x(k+1)をx(k)の対応する位置に代入する。
    ここで、形式的にN(0)=N、a (0)=a(i=1,・・・N)、A(0)=A、f(0)=f、y(0)*=y、x(0)=xと表したときに、k≧1に対して、
    全てのy(j)*(j=0,・・・k−1)との内積が0となるa (k−1)の数をN(k)、およびそれらを列とするM×N(k)行列をA(k)、およびA(k)の第i列をa (k)(i=1,・・・N(k))、および対応するx (k−1)をまとめたN(k)次元ベクトルをx(k)、およびそのi番目の要素をx (k)(i=1,・・・N(k))とする。また、k-部分問題において現れるf(k+1)は、その時点で値の与えられていないx (k)を一旦0とおいたときに、f(k+1)=f(k)−A(k)(k)と与える。
JP2004062620A 2004-03-05 2004-03-05 出力分配算出装置 Expired - Lifetime JP4156544B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004062620A JP4156544B2 (ja) 2004-03-05 2004-03-05 出力分配算出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004062620A JP4156544B2 (ja) 2004-03-05 2004-03-05 出力分配算出装置

Publications (2)

Publication Number Publication Date
JP2005250992A JP2005250992A (ja) 2005-09-15
JP4156544B2 true JP4156544B2 (ja) 2008-09-24

Family

ID=35031399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004062620A Expired - Lifetime JP4156544B2 (ja) 2004-03-05 2004-03-05 出力分配算出装置

Country Status (1)

Country Link
JP (1) JP4156544B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992080B (zh) * 2017-12-25 2020-12-15 成都纵横自动化技术股份有限公司 控制分配方法、装置及多旋翼飞行器
WO2019224954A1 (ja) 2018-05-23 2019-11-28 三菱電機株式会社 線形計画問題求解システム、解候補算出装置、最適解算出装置、宇宙機のスラスタ制御装置および飛翔体制御装置並びに線形計画問題の求解方法

Also Published As

Publication number Publication date
JP2005250992A (ja) 2005-09-15

Similar Documents

Publication Publication Date Title
Ford et al. Singular direction avoidance steering for control-moment gyros
Bedrossian et al. Steering law design for redundant single-gimbal control moment gyroscopes
US8140189B2 (en) Apparatus and method for computing operational-space physical quantity
US20230150126A1 (en) Generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot
Wang et al. Unit dual quaternion-based feedback linearization tracking problem for attitude and position dynamics
Ott et al. Posture and balance control for biped robots based on contact force optimization
CN102452077B (zh) 用于机器人的控制设备及控制方法
CN100549889C (zh) 操纵装置轨迹的控制
Han et al. Kinematic control of free rigid bodies using dual quaternions
Tahri et al. On visual servoing based on efficient second order minimization
US11691281B2 (en) Robot control at singular configurations
Henninger et al. Optimal under-actuated kinematic motion planning on the ϵ-group
Alamdari et al. Active reconfiguration for performance enhancement in articulated wheeled vehicles
De Magistris et al. Design of optimized soft soles for humanoid robots
JP4156544B2 (ja) 出力分配算出装置
Antonelli et al. A fuzzy approach to redundancy resolution for underwater vehicle-manipulator systems
Li et al. Stochastic adaptive optimal control of under-actuated robots using neural networks
Zarafshan et al. Dynamics modelling and hybrid suppression control of space robots performing cooperative object manipulation
Kłak et al. Quaternion-based constrained dynamics modeling of a space manipulator with flexible arms for servicing tasks
Dzielski et al. Approach to control moment gyroscope steering using feedback linearization
Ding et al. Research on static fault-tolerant control method of thruster based on MPC
Ginting et al. Attitude control of quadrotor using PD plus feedforward controller on SO (3)
Shen et al. Concentric tube robot redundancy resolution via velocity/compliance manipulability optimization
Jin et al. Disturbance compensation of a dual-arm underwater robot via redundant parallel mechanism theory
JP2004230530A (ja) 宇宙ロボットの姿勢制御方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061113

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080605

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080610

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080709

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4156544

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130718

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term