JP6991326B2 - 線形計画問題求解システム、解候補算出装置、最適解算出装置、宇宙機のスラスタ制御装置および飛翔体制御装置並びに線形計画問題の求解方法 - Google Patents

線形計画問題求解システム、解候補算出装置、最適解算出装置、宇宙機のスラスタ制御装置および飛翔体制御装置並びに線形計画問題の求解方法 Download PDF

Info

Publication number
JP6991326B2
JP6991326B2 JP2020520941A JP2020520941A JP6991326B2 JP 6991326 B2 JP6991326 B2 JP 6991326B2 JP 2020520941 A JP2020520941 A JP 2020520941A JP 2020520941 A JP2020520941 A JP 2020520941A JP 6991326 B2 JP6991326 B2 JP 6991326B2
Authority
JP
Japan
Prior art keywords
constraint
vector
solution
dual
optimum
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.)
Active
Application number
JP2020520941A
Other languages
English (en)
Other versions
JPWO2019224954A1 (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
Publication of JPWO2019224954A1 publication Critical patent/JPWO2019224954A1/ja
Application granted granted Critical
Publication of JP6991326B2 publication Critical patent/JP6991326B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64GCOSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
    • B64G1/00Cosmonautic vehicles
    • B64G1/22Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
    • B64G1/24Guiding or controlling apparatus, e.g. for attitude control
    • B64G1/244Spacecraft control systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64GCOSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
    • B64G1/00Cosmonautic vehicles
    • B64G1/22Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
    • B64G1/24Guiding or controlling apparatus, e.g. for attitude control
    • B64G1/244Spacecraft control systems
    • B64G1/245Attitude control algorithms for spacecraft attitude control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64GCOSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
    • B64G1/00Cosmonautic vehicles
    • B64G1/22Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
    • B64G1/24Guiding or controlling apparatus, e.g. for attitude control
    • B64G1/26Guiding or controlling apparatus, e.g. for attitude control using jets
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U50/00Propulsion; Power supply
    • B64U50/10Propulsion
    • B64U50/18Thrust vectoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/08Control of attitude, i.e. control of roll, pitch, or yaw
    • G05D1/0808Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for aircraft
    • G05D1/0858Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for aircraft specially adapted for vertical take-off of aircraft
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2201/00UAVs characterised by their flight controls

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Remote Sensing (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Operations Research (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Description

この発明は、ある入力ベクトルに対して、線形制約を満たしつつ線形な評価関数を最小にする出力ベクトルを算出する線形計画問題求解システムおよびこれを用いた制御装置に関するものである。
線形計画問題の代表的な解法として、内点法とシンプレックス法がある。内点法は,反復計算が含まれるため、計算負荷が大きく、収束に至るまでの時間が見積もりにくい。また、シンプレックス法は、有限回の反復で計算が終了するものの、収束に至るまでの時間が見積もりにくいというデメリットが存在する。
特許文献1は、上限下限制約を持つ線形計画問題に対して、変数の定義域の上限値と変数との差に変数を置き換えることによって、上限と下限とを逆転させ、内点法の限界を回避して解の計算を続行することを開示する。
また、上記線形計画問題の解法を用いる対象として、複数のアクチュエータを制御するものが考えられる。例えば、複数のスラスタの噴射によって姿勢制御する宇宙機のスラスタ制御、ロータの推力を一方向にしか出力できないドローンなどである。宇宙機のスラスタの噴射量は、負の値を採らず、噴射燃料最小化は、線形計画問題に帰着する。ドローンのロータ制御においては、推力の大きさよりもトルクを優先して姿勢を迅速に変更する場合、ロータ回転数の上下限制約のもとで,可能な限り目標となるトルクを実現する問題が、線形計画問題となる。
特許文献2は、スラスタ駆動において、予め計算し保管したデータを基に、最小燃料の駆動ベクトルを求める線形計画問題をシンプレックス法で高速に解く方法が記載される。この方法で制御ループ内に最適解が得られなかった場合には,最適性若しくは制約条件を無視して解を出力する、またはスラスタ駆動をしないとする方法を開示する。
特開2001-184334 特表2002-505632
従来の線形計画問題求解システムでは、反復を伴う内点法やシンプレックス法を用いるため、最適解が得るまでに必要な時間の見積もりが困難で、制御サイクル内で最適解が得られない可能性がある。制御サイクル内に最適解が得られない場合は、最適性が犠牲になるまたは制約条件を満たさなくなる問題があった。
本発明の線形計画問題求解システムは、与えられた制約係数行列、随時変化する制約ベクトルおよび制約ベクトルの次元数である制約次元数と異なる変数次元数の変数を持つ変数ベクトルの連立式で表現される制約条件の下で変数ベクトルおよび費用ベクトルの関数である目的関数を最適化する線形計画問題の解を求める線形計画問題求解システムにおいて、制約係数行列および費用ベクトルの情報を入力として、線形計画問題を主問題とする双対問題および双対問題の制約条件の式のうち等号が成立する組合せを表す有効セットを全て求め、有効セットごとに制約条件が有効となる実行可能な双対解候補を求めて有効セットと関連付けて双対解候補を記憶部に記憶する双対解候補探索部と、制約ベクトルを入力とし、記憶部に記憶された双対解候補と制約ベクトルとの内積から最適となる有効セットを選択し、選択した有効セットに対応する実行可能基底解を最適解として求めて出力する最適解算出装置とを備えるものである。
この発明は、最適性を犠牲にする、または制約条件を満たさないことなく、定められた時間内で確実に線形計画問題の解を求めることができる。
本発明の実施の形態1に係る線形計画問題求解システムの構成を説明する図である。 本発明の実施の形態1に係る解候補算出装置の構成を説明する図である。 本発明の実施の形態1に係る最適解算出装置の構成を説明する図である。 本発明の実施の形態2に係る解候補算出装置の構成を説明する図である。 本発明の実施の形態2に係る最適解算出装置の構成を説明する図である。 本発明の実施の形態4に係る宇宙機のスラスタ制御装置の構成を説明する図である。 本発明の実施の形態5に係る解候補算出装置の構成を説明する図である。 本発明の実施の形態5に係る最適解算出装置の構成を説明する図である。 本発明の実施の形態6に係る解候補算出装置の構成を説明する図である。 本発明の実施の形態6に係る最適解算出装置の構成を説明する図である。 本発明の実施の形態7に係る飛翔体のロータ制御装置の構成を説明する図である。 本発明の実施の形態に係る解候補算出装置のハードウェア構成を説明する図である。 本発明の実施の形態に係る最適解算出装置のハードウェア構成を説明する図である。
図1は、この発明の実施の形態1による線形計画問題求解システムの構成を示す。線形計画問題求解システム1は、入力に対して、線形制約を満たしつつ線形な評価関数を最小または最大にする出力ベクトルを算出するものである。図において、線形計画問題求解システム1は、対象とする線形計画問題を繰り返し解く際に、不変となる情報および随時変化する変化情報を入力として、入力された線形計画問題の最適解を求めて、最適解を出力するシステムである。線形計画問題求解システム1は、解候補算出装置2及び最適解算出装置3により構成される。
線形計画問題求解システム1は、与えられた制約係数行列、随時変化する制約ベクトルおよび制約ベクトルの次元数である制約次元数と異なる変数次元数の変数を持つ変数ベクトルの連立式で表現される制約条件の下で変数ベクトルおよび費用ベクトルの関数である目的関数を最適化する線形計画問題の解を求める線形計画問題求解システムである。
線形計画問題求解システム1は、制約係数行列および費用ベクトルの情報を入力として、上記線形計画問題を主問題とする双対問題およびこの双対問題の制約条件の式のうち有効な組合せを表す有効セットを全て求め、求めた有効セットごとに制約条件が有効となる実行可能な双対解候補を求めて有効セットと関連付けて双対解候補を記憶部に記憶する双対解候補探索部と、制約ベクトルを入力とし、記憶部に記憶された双対解候補と制約ベクトルとの内積から最適となる有効セットを選択し、選択した有効セットに対応する実行可能基底解を最適解として求めて出力する最適解算出装置とを備える。
さらに、双対解候補探索部は、双対問題が変数次元数個の式を持つ双対制約条件を含む問題として求め、最適解算出装置は、制約係数行列のうち最適有効セットの情報を使って求めた行列の逆行列と制約ベクトルとの積から変数ベクトルの最適解を求める最適解演算部を備える。ここで、有効セットは、双対制約条件の複数の式のうち変数次元数および制約次元数の少ない方の次元数個の有効な組合せを式の識別子で表したものであり、双対解候補は、有効セットごとに識別子が表す前記双対制約条件の式を満たす解ベクトルである。
解候補算出装置2は、対象とする線形計画問題の不変となる情報を入力として、入力された情報から対象とする線形計画問題を求め、求めた線形計画問題を主問題とする双対問題を求め、求めた双対問題の不等式制約条件の一部が有効となる実行可能な解候補と解候補に対応する有効セットをすべて求めて記憶部に記憶させる。 ここで「不等式制約条件の一部が有効」とは、主問題の制約条件の数と変数ベクトルの次元数の内の少ない方の数となる。
最適解算出装置3は、随時変化する変化情報を入力とし、解候補算出装置2で求めた解候補と入力の内積から最適となる有効セットを選択し、有効セットに対応する実行可能基底解を最適解として求めて出力する。
解候補算出装置2は、上記不変となる情報を入力する問題入力部21、および問題入力部21で入力された情報から線形計画問題の双対問題を求め、求めた双対問題の双対制約条件の内の有効な組合せである有効セットの内の解が一意に求められる有効セットを全て求め、求めた有効セットごとに双対制約条件を満たす解を双対解候補として全て求めて有効セットと関連付けて双対解候補を記憶部に記憶する双対解候補探索部22によって構成される。解候補算出装置2は、有効セット双対解記憶部4に格納するための情報を算出する。
双対解候補探索部22は、入力された情報から、線形計画問題の双対問題を求める双対問題作成部221、求めた双対問題の双対制約条件の内の有効な組合せである有効セットの内の解が一意に求められる有効セットを全て求める全有効セット作成部222、および求めた有効セットごとに双対制約条件を満たす解を双対解候補として全て求めて有効セットと関連付けて双対解候補を記憶部に記憶する双対解算出部223によって構成される。
最適解算出装置3は、線形計画問題の随時変化する変化情報を入力する制御ベクトル入力部31、制御ベクトル入力31で入力された変化情報から、解候補探索部22によって求めた記憶部に記憶された双対解候補から双対問題が最適となる有効セットである最適有効セットを求める最適有効セット演算部32、求めた最適有効セットと不変となる情報と変化情報とから線形計画問題の最適解を求めて出力する最適解演算部33により構成される。
ここで、線形計画問題求解システム1が最適化する線形計画問題として、非退化な標準形の線形計画問題を例にとり説明する。ここで扱う線形計画問題は、与えられた制約係数行列A、随時変化する制約ベクトルb及び制約ベクトルbの次元数である制約次元数Mより多い変数次元数Nの変数を持つ非負の変数ベクトルxの連立方程式で表される制約条件の下で、変数ベクトルxの関数である目的関数を最適化(最小に)する問題で、以下のいわゆる標準形の線形計画問題の式(1)から(3)で表現される。
Figure 0006991326000001
・・・・・・(1)
Figure 0006991326000002
・・・・・・(2)
Figure 0006991326000003
・・・・・・(3)
ここで、費用ベクトルcは、変数次元数Nの次元数を持つN次元(列)ベクトル、制約係数行列Aは、制約次元数M×変数次元数NのM×N次元行列、制約ベクトルbは、制約次元数MのM次元(列)ベクトルである。また、変数ベクトルxは変数次元数NのN次元(列)ベクトルであり、変数次元数Nは、制約次元数Mより大きいものとする。また、Tは、転置行列を表す。ベクトルはすべて列ベクトルを表し、費用ベクトルcの転置行列cTは、行ベクトルとなる。式(3)のs.t.は、such thatを表し、つづく条件を満たすことを表す。
式(2)は、制約係数行列Aと変数ベクトルxの積が制約ベクトルbとなること、式(3)は、変数ベクトルxのすべての要素が0以上であることを表す。
式(1)は、式(2),(3)を満たす変数ベクトルxのうちで,費用ベクトルcと変数ベクトルxの内積を最小にする変数ベクトルxを求めることを意味する.
一般的な線形計画問題は、上述の制約係数行列Aが与えられ、随時変化する制約ベクトルbの制約次元数Mよりも変数ベクトルxの変数次元数Nが大きい問題において、制約係数行列Aと変数ベクトルxとの積が制約ベクトルbとなり、変数ベクトルxが非負である制約のもとで、与えられる任意の実数を要素とする費用ベクトルcと変数ベクトルxとの内積を最小にする問題を対象とする。ただし、制約係数行列Aおよび費用ベクトルcが不変である。
上記問題について、例えば、制御対象であるアクチュエータの制御変数を最適化する問題に適用すると、制約係数行列Aは、アクチュエータの幾何学的配置等に依存する変換行列となる。変数ベクトルxは、アクチュエータの制御変数である。また、費用ベクトルcは、制御変数xの重みとなる。ここで、特徴は、変換行列である制御係数行列Aと制御変数である変数ベクトルxの重みである費用ベクトルcとが不変な情報として与えられ、逐次変化する力やトルクなどの目標値となる制御ベクトルbに応じて、力やトルクなどの目標値のパラメータ数よりも多い数の制御変数である変数ベクトルxを最適化する問題を対象とすることである。
さらに、宇宙機のスラスタを制御対象とする場合には、制約係数行列Aは、スラスタの幾何学的配置のみに依存する行列、費用ベクトルcは、すべての要素が1のベクトル、制約ベクトルbは、目標並進力およびトルクを並べたベクトル、変数ベクトルxは、各スラスタの噴射量となる。さらに、並進3自由度および回転3自由度を制御する場合には、制約次元数Mは6となり、変数次元数Nはスラスタの本数を表すことになる。
なお、あらゆる線形計画問題は、式(1)~(3)に示す標準形の線形計画問題に変換して帰着できるから、他の形で表現される線形計画問題を対象とする場合であっても、変換して上記標準形の線形計画問題にして最適化しても良い。また、退化した問題である場合も摂動を加えることにより非退化な問題に変形することができるため、退化している問題にも適用できる(退化、非退化の定義については双対問題の部分で後述する)。さらに、ここで扱う問題は、式(1)~(3)で示される標準形の線形計画問題の制約係数行列Aと費用ベクトルcは、変化せず、制約ベクトルbが時間的に変化する問題を繰り返し解く場合に、高速に求解を行う方法について具体的に説明する。
問題入力部21は、上記制約係数行列A、費用ベクトルcを入力する。具体的には、例えば、表形式のユーザインタフェースでユーザが入力するようにしても良いし、制約係数行列A、費用ベクトルcの各要素の情報を持つファイルを入力するようにしても良い。
双対問題作成部221は、問題入力部21で入力された制約係数行列A、費用ベクトルcから線形計画問題を作成し、この線形計画問題を主問題とする双対問題を作成する。
双対問題作成部221が作成する双対問題は、変数次元数N及び制約次元数Mのうち大きい方の次元数個の不等式を持つ双対制約条件を含む情報として求められる。例えば、上記非退化の式(1)~(3)で示される標準形の線形計画問題を主問題としたときの双対問題は、下記のように表現できる.
Figure 0006991326000004
・・・・・・(4)
Figure 0006991326000005
・・・・・・(5)
ここで、不等式制約の式(5)は、制約係数行列Aの転置行列と双対問題の解ベクトルyとの積が、費用ベクトルc以下であることを意味する。式(4)は、不等式制約の式(5)を満たす解ベクトルyのうちで、制約ベクトルbと解ベクトルyの内積を最大にするものを求めることを意味する。
上記の双対問題において、制約係数行列Aと費用ベクトルcとが固定であるという上述の問題設定から、式(5)の不等式制約をあらかじめ解くことができる。
不等式制約式(5)を満足する解ベクトルyの領域である実行可能領域はM次実数空間内の凸多面体となり,線形計画問題の一般的な性質から、不等式制約式(5)を満足する解ベクトルyの実行可能領域の頂点の一つが必ず最適解となる。この頂点は、実行可能基底解と呼ばれている。
図12は、本実施の形態の解候補算出装置2のハードウェア構成の例を示す図である。図において、入出力インターフェース1005は、問題入力部21の入力、ユーザインタフェースのための表示、並びに求めた有効セット、双対解候補および有効セットと双対解候補との関係を最適解算出装置3または外部記憶装置への出力を行い、プロセッサ1002は、双対解候補探索部22が行う線形計画問題の双対問題、有効セット、および双対解候補を求める演算を行い、メモリ1003は、解候補算出装置2で実行するプログラムを保存し、双対解候補探索部22で求めた双対解候補と有効セットとを関連付けて記憶して、有効セット双対解記憶部4として機能する。また、バス1004は、プロセッサ1002、メモリ1003、入出力インターフェース1005の間の情報、および信号を伝達する。なお、有効セット双対解記憶部4は、解候補算出装置2のメモリ1003としても良いし、外部の記憶装置であっても良いし、最適解算出装置3のメモリであっても良い。
図13は、本実施の形態の最適解算出装置3のハードウェア構成の例を示す図である。図において、入出力インターフェース1105は、線形計画問題の随時変化する変化情報を入力する制御ベクトル入力部31の入力、双対解候補探索部22で求めた有効セットと関連付けられた双対解候補の入力を行い、プロセッサ1102は、最適有効セット演算部32が行う最適有効セットを求める演算および最適解演算部33が行う最適解を求める演算を行い、メモリ1103は、最適解算出装置3で実行するプログラムを保存し、双対解候補探索部22で求めた有効セットと関連付けられた双対解候補を記憶する。また、バス1104は、プロセッサ1102、メモリ1103、入出力インターフェース1105の間の情報、および信号を伝達する。なお、有効セット双対解記憶部4は、最適解算出装置3のメモリ1103としても良いし、外部の記憶装置であっても良いし、解候補算出装置2のメモリ1003であっても良い。
また、上記メモリ1003、1103は、例えば、RAM、ROM、フラッシュメモリー、EPROM、EEPROM等の、不揮発性または揮発性の半導体メモリや、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等が該当する。
また、図13は、上記で例として記載した、制御対象であるアクチュエータの制御変数を最適化した問題に適用した場合の、最適解算出装置3を含む装置全体の構成の例をも表す。図において、入出力インターフェース1105に接続する受信装置1106は、逐次変化する力やトルクなどの目標値となる制御ベクトルbを受信し、入出力インターフェース1105に接続するアクチュエータ制御装置1107は、最適解算出装置3で求めた最適化された変数ベクトルx、すなわちアクチュエータの制御変数によって、アクチュエータ1108を制御する。
解候補算出装置2は、双対問題の実行可能基底解を最適解候補としてすべて算出する。最適解となる実行可能基底解は、下記に示す手順で求めることができる。
図2に解候補算出装置2の処理のフローチャートを示す。
解候補算出装置2のStep1は、双対問題を作成する。制約係数行列Aは、制約次元数M×変数次元数NのM×N次元行列であるから、双対問題の不等式制約は、変数次元数N個の不等式となる。このステップは、双対問題作成部221で実行される。
解候補算出装置2のStep2は、変数次元数N個の不等式制約のうち、制約次元数M個の制約の等号が成立する、すなわち有効になるとして、有効となる制約の組み合わせを有効セットIとする。有効セットIは、変数次元数N個の不等式制約のうち、有効となる制約の組み合わせである。ここで、不等式制約が有効であるとは、等号が成立する、すなわち等式となることを意味する。例えば、変数次元数N = 4として、1番目と3番目の不等式制約が有効である場合、有効セットIは、{1,3}となる。
解候補算出装置2のStep3は、制約係数行列Aの第i列の制約次元数MのM次元ベクトルをi列制約係数ベクトル a として、i列制約係数ベクトルa (k∈I)をkの小さい順に横に並べた制約次元数MのM×M行列を基底行列 Aにする。さらに、基底行列 A のランクが、制約次元数M、すなわちフルランクであるかどうかを確認する。フルランクである場合は、Step4へ進み、フルランクでない場合は、有効セットを記憶することなく、Step1へ戻り次の有効セットに移行する。
解候補算出装置2のStep4は、下記式(6)のyに関する連立方程式の解を双対基底解y として算出する。
Figure 0006991326000006
・・・・・・(6)
ここで基底費用ベクトルcは、費用ベクトルcのk番目の要素(k∈I)をkの小さい順に並べた制約次元数MのM次元ベクトルである。また、基底行列Aの転置行列を転置基底行列A Tにする。具体的には、ガウスの消去法などを用いて双対基底解y を求める。
解候補算出装置2のStep5は、Step3で得られた双対基底解y が、不等式制約条件 式(5)を満たしているか確認する。不等式制約条件 式(5)を満たしている場合は、Step6に進み,満たしていない場合は、Step1へ戻り次の有効セットに移行する.
解候補算出装置2のStep6は、有効セットIと対応する双対基底解 y を双対解候補 yとして有効セット双対解記憶部4に保存する。さらに具体的には、有効セットIと、Step4で求めた双対解候補 yとを関連付けて、有効セット双対解記憶部4に記憶する。その後、解候補算出装置2のStep1へ戻り、次の有効セットIへ移行する。
有効セットIが異なっても、言い換えると制約次元数M個の制約の等号が成立する不等式が異なっても、双対基底解y が一致することがある。このような基底解は退化しているといわれる。また、双対解候補yの中に、退化した基底解が一つでも存在するときには、線形計画問題は退化しているといわれる。ここで、線形計画問題が、非退化であるとする。すると、有効セットIと双対解候補yとは、一対一に対応する。
次に、最適解算出装置3について、具体的に述べる。最適解算出装置3は、変化する制約ベクトルbが、時間ごとに繰り返し与えられて、制約ベクトルbに応じた最適解xを高速に算出する装置である。図3に最適解算出装置3のフローチャートを示す.
最適解算出装置3のStep1は、有効セット双対解記憶部4に記憶される、すべての有効セットIに対して、制約ベクトルbと双対解候補yとの内積を計算する。
最適解算出装置3のStep2は、Step1で求めた内積が、最大となる有効セットIを最適有効セットI と定義し、以下の式(7)によって、最適有効セットIを求める。
Figure 0006991326000007
・・・・・・(7)
式(7)を満たす最適有効セットIが、複数存在する場合は、どれを選んでも主問題の最適解は変化しないため、その中の一つだけを任意に選んで良い。
最適解算出装置3のStep3は、標準形の線形計画問題の式(2)について、最適有効セットIを基底とした実行可能基底解を最適解x として求める。実行可能基底解の算出には、次式の線形連立方程式を解くことになる。
Figure 0006991326000008
・・・・・・(8)
式(8)は、最適有効セットIについて、制約次元数M×Mの制約係数行列Aと、制約次元数M次の列ベクトルである最適解x との積が、制約ベクトルbとなることを表す主問題の制約条件式(2)を設定した連立方程式である。この連立方程式は、例えば、ガウスの消去法を用いて式(8)の連立方程式を解いて、最適解x を求める。
以上によって、主問題に対する制約ベクトルbについての最適解xを算出することができる。
本実施の形態によれば、与えられた線形計画問題を主問題とする双対問題を求め、双対問題の制約条件が時間的に変化しないことを利用して、前記制約条件が有効となる組み合わせである有効セットIごとに、前記双対問題の最適解候補をオフラインで算出し、前記有効セットとそれに対応する前記最適解候補を有効セット双対解記憶部に記憶したため、最適な有効セットである最適有効セットI、および対応する基底解を最適解xとして高速に算出することができる。
本実施の形態によれば、制約係数行列A、費用ベクトルcが固定であり、制約ベクトルbが変化する非退化な標準形線形計画問題求解システムにおいて、制約ベクトルbに依存しない双対解候補yおよび前記双対解候補に対応する有効セットIを探索し、有効セット双対解記憶部4に保存する解候補算出装置2と、有効セット双対解記憶部4に保存された双対解候補yと制約ベクトルbの内積を計算し、最大となる有効セットIを基底とした主問題の実行可能基底解を最適解xとして算出する最適解算出装置3とを備えた構成となっている。このように構成したので、双対解候補yを予めオフラインで計算しておくことができ、時間ごとに変化する制約ベクトルbが与えられてから、主問題の最適解xを算出するまでの過程に反復計算が不要となる。このことによって、計算の高速化および信頼性の向上を実現することができる。また、最適解を算出するまでの時間を見積もることができるため、制御サイクル内に最適解を確実に得られ、最適性および制約条件を犠牲にすることなく実時間で制御することができる。
実施の形態2.
実施の形態2に係る線形計画問題求解システム1は、解候補算出装置2、最適解算出装置3、および有効セット双対解記憶部4から構成される点で、実施の形態1と同様であるが、解候補算出装置において有効セット双対解記憶部4に格納する情報を追加することで、さらに求解を高速化することができる。具体的には、実施の形態2では、図4に示すように、図2に示した解候補算出装置2のStep5、および最適解算出装置3のStep3を下記のように修正する。
図4は、解候補算出装置2の処理の流れを示す図である。図において、解候補算出装置2のStep5’は、有効セットIに対応する双対基底解 y を双対解候補yとして、有効セット双対解記憶部4に保存する(以上は、実施の形態1のStep5に同じ)。さらに、有効セットIに対する制約次元数M×Mの制約係数行列Aの逆行列である分配行列A -1を算出し、有効セットIごとに関連付けて、有効セット双対解記憶部4に分配行列A -1を保存する。有効セットIに対する制約次元数M×Mの制約係数行列Aの逆行列である分配行列A -1を求めるには、例えば、制約係数行列AをLU分解すれば良い。その後、解候補算出装置2のStep1へ戻り、次の有効セットへ処理を移行する。
実施の形態1では双対解候補yを探索して終了したが、各最適解(有効セット)に対応した主問題の分配行列A -1もあらかじめ計算しておく。また、実施の形態1の最適解算出装置3において、図5に示すように最適解算出装置3のStep3を下記のように修正する。
図5は、最適解算出装置3の処理の流れを示す図である。図において、最適解算出装置3のStep3’は、有効セット双対解記憶部4に記憶されている最適有効セットIに関連付けられた、分配行列A -1を読出し、最適有効セットの分配行列AI* -1とし、制約次元数M×Mの最適有効セットの分配行列と制約ベクトルbの積A -1bを求め、最適解xI* を計算する。Step3’では、既に求まっている分配行列AI* -1を用いるため、逆行列の計算をする必要がなく、最適解算出装置3の演算量をさらに少なくできる。
なお、解候補算出装置2は、実施の形態1に記載の図12と同様に、プロセッサ1002、メモリ1003、入出力インターフェース1005のハードウェア構成で実現できる。また、プロセッサ1002は、制約係数行列Aの逆行列である分配行列A -1を算出し、メモリ1003は、有効セットIごとに関連付けて、有効セット双対解記憶部4に分配行列A -1を記憶する。
また、最適解算出装置3は、実施の形態1に記載の図13と同様に、プロセッサ1102、メモリ1103、入出力インターフェース1105のハードウェア構成で実現できる。また、メモリ1103は、有効セットIごとに関連付けて、有効セット双対解記憶部4に分配行列A -1を記憶し、プロセッサ1102は、最適有効セットIに関連付けられた、分配行列A -1を読出し、分配行列と制約ベクトルbの積A -1bを求め、最適解xI* を計算する。
本実施の形態の線形計画問題求解システム1によれば、解候補算出装置2で有効セットIに対する制約次元数M×Mの制約係数行列Aの逆行列である分配行列A -1を算出し、有効セットIごとに関連付けて有効セット双対解記憶部4に記憶し、最適解算出装置3が、有効セット双対解記憶部4に記憶されている最適有効セットIに関連付けられた、分配行列A -1を読出して最適解xI* を計算するため、最適解算出装置3の演算量をさらに少なくできる。これによって、制御サイクルをさらに短くして、応答が早いまたは滑らかな制御を実現することができる。
実施の形態3.
上記実施の形態では、制約係数行列Aおよび費用ベクトルcが変化せず、固定として扱ったが、制約係数行列Aおよび費用ベクトルcが、可変、すなわち時々刻々変化するものであっても良い。その場合、有効セット双対解記憶部4に保存する、有効セットIに対する双対解候補yI、分配行列A -1は、定数ではなく関数という形で保存することになる。具体的な例を以下に示す。制約係数行列Aおよび費用ベクトルcが、それぞれ次式で表現されているとする。なお、簡単のため、費用ベクトルcは、変化せず、制約係数行列Aが変化する場合を示す。
Figure 0006991326000009
・・・(9)
Figure 0006991326000010
・・・・・(10)
ここで、制約次元数Mは、6、変数次元数Nは、8である。例えば、制御対象を宇宙機のスラスタとすると、u,v,wは、各スラスタにより生成される推力方向を表し、x,y,zは、各スラスタの位置を表し、式(9)の上3行は、各スラスタにより生成される推力方向を表し、下3行は、各スラスタの位置と各スラスタの推力方向との外積を表す。制約次元数Mが6、変数次元数Nが8であるから、双対解候補探索部で得られる情報として、すべての有効セットIは、以下のようになる。
Figure 0006991326000011
・・・・(11)
また、双対解候補探索部で得られる情報として、双対解候補yは、以下の形のように上記各スラスタにより生成される推力方向の変数のu,v,w,各スラスタの位置の変数x,y,zの関数として表される(一部抜粋)。
Figure 0006991326000012
・・・(12)
式(9)~(11)から、有効セットIごとの双対解候補yは、式(12)のように文字式によって表現される。解候補算出装置2は、文字式の形式で有効セット双対解記憶部4に、式(12)のように文字式によって表現された双対解候補yを有効セットIに関係づけて記憶する。
解候補算出装置2のStep3は、制約係数行列Aの第i列の制約次元数MのM次元ベクトルをi列制約係数ベクトル a として、i列制約係数ベクトルa (k∈I)をkの小さい順に横に並べた制約次元数MのM×M行列を基底行列 Aにする。この際、上記文字列で表現された制約係数行列Aから、同じく文字列で表現された、制約次元数MのM×M行列を基底行列 Aを求める。
さらに、基底行列 A のランクが、制約次元数M、すなわちフルランクであるかどうかを確認する。なお、上記の文字列で表現された基底行列 Aのランクは、文字列に依存した形で表現できるので、数式処理によってランクを求める。フルランクである場合は、Step4へ進み、フルランクでない場合は、有効セットを記憶することなく、解候補算出装置2のStep1へ戻り次の有効セットに移行する。
次に、最適解算出装置3の処理について説明する。最適解算出装置3のStep1は、有効セット双対解記憶部4に記憶される、すべての有効セットIに対して、制約ベクトルbと双対解候補yとの内積を計算する。この際、最適解算出装置3は、有効セット双対解記憶部4に記憶される有効セットIに関連付けられた双対解候補yを読出し、制約ベクトルbと双対解候補yとの内積を計算する。
最適解算出装置3のStep2は、Step1で求めた内積が、最大となる有効セットIを最適有効セットI と定義し、式(7)によって、最適有効セットIを求める。
最適解算出装置3のStep3は、標準形の線形計画問題の式(2)について、最適有効セットIを基底とした実行可能基底解を最適解x として求める。実行可能基底解の算出には、式(8)の線形連立方程式を解くことになる。この際、最適解算出装置3は、有効セット双対解記憶部4に記憶される最適有効セットIについて、制約次元数M×Mの制約係数行列Aと制約次元数M次の列ベクトルである最適解x との積が、制約ベクトルbとなることを表す主問題の制約条件式(2)を設定した連立方程式を解く。この際、制約係数行列Aの各係数に当たる関数(例えば、式(9))の各変数(式(9)の場合、u,v,w,x,y,z)に、実際の数値(例えば、上記の例では、各スラスタにより生成される推力方向、位置)を代入して制約次元数M×Mの制約係数行列Aを求めて、上記連立方程式を解き、最適解xを得る。
なお、解候補算出装置2は、実施の形態1に記載の図12と同様に、プロセッサ1002、メモリ1003、入出力インターフェース1005のハードウェア構成で実現できる。最適解算出装置3は、実施の形態1に記載の図13と同様に、プロセッサ1102、メモリ1103、入出力インターフェース1105のハードウェア構成で実現できる。
上述のように本実施の形態によれば、文字式関数として有効セット双対解記憶部4に保存する構成となっているため、最適解算出装置3で実行する前に、文字式に実際の値を代入して関数を計算し、制約係数行列Aおよび費用ベクトルcを求めて、解候補算出装置2の各Stepを実行することで、制約係数行列Aおよび費用ベクトルcが固定でない場合にも実施の形態1,2と同様の手続きで主問題の最適解を反復なしで高速に算出することができる。
これは、例えば、仕様が異なるが同数のスラスタを有する宇宙機がある場合に、制約係数行列を文字式で表現することで、文字式の値に各仕様の値を入力するだけで、特定の仕様の宇宙機向けの解候補算出装置2を構成することができる。
実施の形態4.
本実施の形態は、上記実施の形態1ないし3の概念を用いて、複数のスラスタによる並進方向の位置および姿勢の制御を行う複数のスラスタを有する宇宙機についての実施の形態である。なお、複数のスラスタの数は、制御を行う自由度の数より多いとする。例えば、6自由度の制御を行う場合は、7本以上のスラスタを用いる。
図6は、複数のスラスタによる並進及び姿勢制御を行う宇宙機の構成を示すブロック図である。図において、宇宙機400は、宇宙機400を並進させる量および姿勢を算出する並進姿勢制御装置401、並進姿勢制御装置401からの指令を受けて、宇宙機400のスラスタを制御するスラスタ制御装置402およびスラスタ制御装置402の制御対象となるスラスタ403を含む構成を有し、宇宙機の位置および姿勢を制御する。
スラスタ制御装置402は、並進姿勢制御装置401からの指令を受け、スラスタ403が出力すべき並進力およびトルクが入力される制御入力部411、制御入力部411からの信号(目標の並進力及びトルク)を受けてスラスタ403ごとに推薬を噴射する制御信号を演算するスラスタ駆動演算部412、およびスラスタ駆動演算部412の指示によって制御入力部411からの信号に基づきスラスタ403の噴射量最適化問題を上述の線形計画問題に変換した問題を解く最適解算出装置(回路)413を備える。
なお、制御入力部411は、数値的な安定性を向上させるため、力とトルクとでオーダーを合わせて規格化しても良い。また、制御入力部411は、無くても良く、並進姿勢制御装置401から入力された信号である、スラスタ403が出力すべき並進力およびトルクを直接スラスタ駆動演算部412に入力しても良い。
最適解算出装置(回路)413は、上述の実施の形態の有効セット双対解記憶部に対応する有効セット双対解記憶部414、スラスタ駆動演算部412から時々刻々変化する制約ベクトルbに相当する制御ベクトルbsを受け取る制御ベクトル入力部415、有効セット双対解記憶部414から双対解候補yを読み出して、制御ベクトル入力部415から制御ベクトルbsを受け取り、制御ベクトルbsと双対解候補yとから最適有効セットIを求める最適有効セット演算部416、および最適有効セットIから最適解xを求める最適解演算部417を備える。
以下、宇宙機400の処理の流れについて説明する。
前準備として、ステップ4-0は、上記実施の形態の解候補算出装置2を用いて、有効セット双対解記憶部に有効セットIと関連付けられた双対解候補yを記憶させる。
ここで、宇宙機400のスラスタ403の総噴射量を最小化する問題は、標準形の線形計画問題である式(1)~(3)に帰着されることができるため、上記実施の形態を適用できる。以下、対応関係を説明する。
上記実施の形態の式(1)~(3)において、変数ベクトルxは、最適化すべきスラスタ403の噴射量をスラスタ403の個数次元の非負の変数ベクトルとし、制約ベクトルbは、上記目標並進力および目標トルクを縦に並べたベクトルとし、費用ベクトルcは、最小化すべきもの(総噴射量)と変数ベクトル(各スラスタの噴射量)が定義されると決まる、すべての要素が1のベクトルとする。さらに、制約係数行列Aは、スラスタ403の配置に依存する行列であり、式(9)の説明で示した、各スラスタによって生成される推力方向を表す行および各スラスタの位置と推力方向との外積を表す行で構成される。
ここで、変数ベクトルxの次元数Nは、制約ベクトルbの次元数Mよりも、大きいことを前提とし、上述の実施の形態1の式(1)から(3)で示した条件を満たす。これは、宇宙機を制御する自由度よりも、変数ベクトルxの次元数N、すなわちスラスタ403の本数が多いことを前提としている。例えば、並進3自由度、回転3自由度を合わせて、6自由度の制御をする場合は、宇宙機が、7本以上のスラスタ403を有することを前提とする。宇宙機を制御する自由度数は、6に限らない。例えば、一部のスラスタ403が故障した場合、宇宙機を制御する自由度を5以下にして、制御することもできる。
以上のように構成することで、制御ベクトルb、費用ベクトルc、制約係数行列Aを定めた標準形の線形計画問題を解いて変数ベクトルxを求めることは、上記目標推進力および目標トルクを満たしながら、総噴射量を最小にするスラスタ403の噴射量を求めることになる。
ステップ4-0は、上述の実施の形態の解候補算出装置2のいずれかを適用して、予め問題入力部21が、スラスタ403の宇宙機400における配置から制約係数行列Aを求め、要素が1のN次元の費用ベクトルcを入力し、双対解候補探索部22が、上記宇宙機用の標準形の線形計画問題(式(1)から(3))の双対問題(式(4)、(5))を求め、求めた双対問題の有効セットIと双対解候補 yを求めて、関連付けて、宇宙機400の有効セット双対解記憶部414に記憶する。
具体的には、スラスタ403の宇宙機400における配置から求めた制約係数行列Aおよび要素が1のN次元の費用ベクトルcで定義される標準形の線形計画問題の双対問題に対して、上記図2の処理フローと同じの処理フローを実行する。
また、実施の形態2のように制約係数行列Aの逆行列である分配行列A -1を算出し、有効セットIごとに関連付けて、有効セット双対解記憶部4に分配行列A -1を保存しても良い。また、実施の形態3のように各スラスタ403により生成される推力方向を表す上3行および各スラスタ403の位置と上記推力方向との外積を表す下3行をスラスタ403の推力方向、位置の関数によって制約係数行列Aおよび費用ベクトルcが変化するようにしても良い。
なお、費用ベクトルcは、一部の成分だけ大きな値にすることで、対応するスラスタ403の噴射量が、ほぼ0となる。この特性を利用して、一部のスラスタ403が故障したときに、対応する費用ベクトルcの成分を大きな値にして、近似的に同じ処理で計算することができる。
なお、ステップ4-0は、上述の実施の形態の解候補算出装置2で実行され、解候補算出装置2は、図12の実施の形態1に記載の図12と同様に、プロセッサ1002、メモリ1003、入出力インターフェース1005のハードウェア構成で実現できる。
ステップ4-1は、並進姿勢制御装置401が、GNSS(Global Navigation Satellite system)例えば、GPSを用いて、並進位置を、スターセンサーを用いて、姿勢を計測することによって、宇宙機400の自己位置、速度、姿勢、および角速度を求める。また、これらの目標値である宇宙機400の目標位置、目標速度、目標姿勢、および目標角速度をもとに、並進及び姿勢制御に必要となる所望の並進力およびトルクである目標並進力および目標トルクを算出する。これは例えば、目標位置との差をフィードバックするPID制御などの制御則により実現する。
ステップ4-2は、スラスタ駆動演算部412が、ステップ4-1で得られた目標並進力および目標トルクを実現するためのスラスタ403の噴射量を算出する。
上述の実施の形態の最適解算出装置3のいずれかを適用することによって、最適なスラスタ403の噴射量を高速に算出することができる。
具体的には、上記最適解算出装置3にあたる宇宙機のスラスタ制御装置の最適解算出装置413が、時々刻々変化する上記目標並進力および目標トルクを縦に並べたベクトルである制約ベクトルbが、時間ごとに繰り返し与えられて、制約ベクトルbに応じた最適解xを高速に算出する。この処理フローは、図3と同様になる。
最適解算出装置413は、Step1で、有効セット双対解記憶部414に記憶されるすべての有効セットIに対して、上記目標並進力および目標トルクを含む制約ベクトルbと双対解候補yとの内積を計算する。
最適解算出装置413は、Step2で、Step1で求めた内積が、最大となる有効セットIを最適有効セットI と定義し、式(7)によって、最適有効セットIを求める。
最適解算出装置413は、Step3で、標準形の線形計画問題の式(2)について、最適有効セットIを基底とした実行可能基底解を最適解x として求める。なお、実行可能基底解の算出は、式(8)の線形連立方程式を解く。ここで、式(8)は、各スラスタ403によって生成される推力方向を表す行および各スラスタの位置と推力方向との外積を表す行で構成される制約次元数M×Mの制約係数行列Aと、最適化すべきスラスタ403の噴射量をスラスタ403の個数次元の非負の列ベクトルである最適解x との積が、上記目標並進力および目標トルクを含む制約ベクトルbとなることを表す主問題の制約条件式(2)を設定した連立方程式である。
ステップ4-3は、スラスタ駆動演算部412が、ステップ4-2で最適解算出装置413が算出したスラスタ403の噴射量を含む指令をスラスタ403に送る。これによって、スラスタ403は、ステップ4-2で求めた噴射量を噴射し、総噴射量を最小にする宇宙機400に所望の並進力およびトルクを与えることができる。
なお、スラスタ制御装置402は、実施の形態1に記載の図13と同様に、プロセッサ1102、メモリ1103、入出力インターフェース1105のハードウェア構成で実現できる。入出力インターフェース1105は、制御入力部411の入力、スラスタ駆動演算部412からスラスタ403への出力を行い、プロセッサ1102は、スラスタ駆動演算部412、制御ベクトル入力部415、最適有効セット演算部416および最適解演算部417の演算を行い、メモリ1103は、スラスタ制御装置402の処理プログラムを保持し、有効セット双対解記憶部414を実現する。また、図13の受信装置1106は、本実施の形態では、並進姿勢制御装置401からの情報を受信し、アクチュエータ1108は、スラスタ403にあたり、アクチュエータ制御装置1107は、スラスタ駆動演算部412の一部にあたる。
以上のように、本実施の形態によれば、並進および姿勢制御のアクチュエータとして複数のスラスタ403を有する宇宙機において、スラスタ403の配置から決定される行列A、およびすべての要素が1である費用ベクトルcを入力として、解候補算出装置2に動作させることにより得られる双対解候補および有効セットを有効セット双対解記憶部4に予め保存しておき、目標並進力および目標トルクを縦に並べた制御ベクトルbを入力として最適解算出装置3を動作させてスラスタ403の噴射量を算出するから、総スラスタ噴射量を最小にするスラスタ403の噴射量を高速に算出することができる。
また、制御サイクルごとに制約ベクトルbである目標並進力および目標トルクが変化するが、収束演算をすることなく、制御サイクル内の一定時間内に、制約を満たしながら総噴射量が最小となるスラスタ403の噴射量をリアルタイムで計算できる。宇宙機の搭載計算機は、信頼性や耐放射線性などが求められており、地上の計算機に比べて一般に低性能である。よって、最適な噴射量を一定時間で確実に算出できることは、信頼性を保証する上で重要である。本実施の形態によれば、宇宙機400で変化しないスラスタ403の配置から決定される行列A、およびすべての要素が1である費用ベクトルcから求める双対解候補および有効セットを有効セット双対解記憶部4に予め保存するから、宇宙機400のスラスタ制御装置で収束計算することなく、目標併進力および目標トルクを満たすスラスタ403の総噴射を最小にする噴射量を一定時間内に確実に算出できる。
実施の形態5.
実施の形態1では、非退化な標準形の線形計画問題を対象としていたが、本実施の形態では、標準形線形計画問題の双対問題を主問題とする非退化な線形計画問題を求解する線形計画問題求解システム、解候補算出装置、最適解算出装置について述べる。本実施の形態では、標準形線形計画問題の双対問題を主問題とする非退化な線形計画問題を対象とする。ここで、本実施の形態で対象とする標準形線形計画問題の双対問題を主問題とする非退化な線形計画問題は、与えられた制約係数行列A及び制約ベクトルc並びに変数ベクトルyの連立不等式で表される制約条件下で、変数ベクトルyの関数である目的関数を最適化(最大に)する問題であり、次式で表される。
Figure 0006991326000013
・・・・・・(13)
Figure 0006991326000014
・・・・・・(14)
式(14)において、cは、N次元の制約ベクトルであり、yは、制約ベクトルcの次元数Nより小さいM次元の変数ベクトルであり、Aは、変数ベクトルyの次元数M×制約ベクトルcの次元数Nの制約係数行列である。式(13)において、bは、変数ベクトルyの次元数Mの費用ベクトルであり、式(14)を満たす変数ベクトルyのうち、費用ベクトルbの転置行列と変数ベクトルyの内積を最大にするものを求めることを意味する。
式(13)(14)は、実施の形態1の式(1)~(3)で示される標準形の線形計画問題を主問題としたときの双対問題である式(4)(5)と同じ式であり、この点で、標準形線形計画問題の双対問題を主問題とする線形計画問題であるといえる。
なお、退化した問題である場合も摂動を加えることにより非退化な問題に変形することができるため、退化した問題も非退化な問題に変形して、上記問題として求解することができる。
本実施の形態は、式(13)(14)に示される線形計画問題の制約係数行列Aと費用ベクトルbは変化せず、制約ベクトルcが変化する問題を繰り返し求解することを収束計算なしに高速に実現するものである。
図1は、本実施の形態の標準形線形計画問題の双対問題を主問題とする線形計画問題を求解する線形計画問題求解システムの構成を表す図でもある。実施の形態1と同様に、線形計画問題求解システム1は、入力に対して、線形制約を満たしつつ線形な評価関数を最小にする出力ベクトルを算出するものである。線形計画問題求解システム1は、解候補算出装置2及び最適解算出装置3により構成される。
解候補算出装置2は、対象とする線形計画問題の不変となる情報を入力として、入力された情報から対象とする線形計画問題を求め、求めた線形計画問題を主問題とする双対問題を求め、求めた双対問題の制約条件が有効となる実行可能な解候補と解候補に対応する有効セットをすべて求めて記憶部に記憶させる。
最適解算出装置3は、随時変化する変化情報を入力とし、解候補算出装置2で求めた解候補と入力の内積から最適となる有効セットを選択し、有効セットに対応する実行可能基底解を最適解として求めて出力する。
本実施の形態は、式(13)(14)に示される線形計画問題の制約係数行列Aと費用ベクトルbは変化せず、制約ベクトルcが変化する問題を繰り返し求解することを収束計算なしに高速に実現するものである。以下、この処理の流れを説明する。
まず、解候補算出装置2は、有効セット双対解記憶部4に格納するための情報を算出する。これには、式(13)(14)で示される線形計画問題を主問題としたときの双対問題を求める。この双対問題は、式(13)(14)の式から下記のように表現できる。
Figure 0006991326000015
・・・・・・(15)
Figure 0006991326000016
・・・・・・(16)
Figure 0006991326000017
・・・・・・(17)
式(16)は、制約係数行列Aと次元数Nの解ベクトルxとの積が費用ベクトルbとなる連立方程式を表す。式(17)は、解ベクトルxの要素が、0以上であることを表す。式(15)は、式(16)(17)を満たす解ベクトルxのうちで、制約ベクトルcと解ベクトルxの内積を最小にするものを求めることを意味する。
ここで、制約係数行列Aと費用ベクトルbが固定であるという前提から、式(16)(17)の制約条件を予め解くことができる。この双対問題の制約条件(式(16)および(17))を満足する領域(いわゆる実行可能領域)は、凸領域となる。一方、線形計画問題の一般的性質から、凸領域の頂点の一つが必ず最適解(式(15)を最小とする解)となるといえる。すると、上記前提に基づけば、凸領域の頂点を双対問題の最適解候補として、予め全て求めておくことができる。
そこで、本実施の形態では、解候補算出装置2が、双対問題の最適解候補を全て求め、予め有効セット双対解記憶部4に記憶し、最適解算出装置3が、有効セット双対解記憶部4から最適解候補を読み出して式(11)を最小にする最適解を求める構成をとる。
図7は、解候補算出装置2の処理のフローチャートを示す図である。以下、図に従って説明する。なお、解ベクトルxが、次元数Nのベクトルであるため、双対問題の不等式制約(式(16)(17))は、N個の式となる。なお、以下の処理の前に、図1の双対解候補探索部22の双対問題作成部221が、問題入力部21から入力される標準形線形計画問題の双対問題を主問題とする線形計画問題から双対問題を作成する。
ステップ5-1は、解ベクトルxが、次元数Nのベクトルであるため、主問題(標準形の線形計画問題の双対問題である式(13)(14))の制約ベクトルcの次元数N個の不等式制約(式(14))のうち、変数ベクトルyの次元数M個の制約が有効となるとして、有効となる制約の組み合わせを有効セットIと呼ぶ。このとき、相補性条件より、双対問題の不等式制約(式(17))の内、残りの(N-M)個の制約が、有効になる。
ステップ5-1の処理としては、図1の双対解候補探索部22の全有効セット作成部222が、変数ベクトルyの次元数M個の制約が有効となる1つの組合せ(有効セットI)を設定する。なお、以下の他のステップから戻った場合は、新たな組合せを有効セットIとして処理を続ける。
ステップ5-2は、全有効セット作成部222が、制約係数行列Aから、有効セットIに対応する基底行列となる行列Aを作り、行列Aのランクが、変数ベクトルyの次元数M、すなわちするフルランクであるかを調べる。行列Aがフルランクであれば、次のステップ5-3へ進み、フルランクでない場合は、ステップ5-1へ戻り、次の有効セットIに移行する。
ここで、行列Aは、制約係数行列Aの第i列の変数ベクトルyの次元数Mのベクトルa(1,,・・・・N)としたとき、ベクトルak(kは、有効セットIに属する)をkの小さい順に横に並べた変数ベクトルyの次元数M×Mの行列である。すなわち、行列Aは、基底行列であり、このステップ5-2は、基底行列がフルランクであるかのチェックをすることになる。
ステップ5-3は、図1の双対解候補探索部22の双対解算出部223が、次の連立方程式の解x(M次元ベクトル)を算出する。
Figure 0006991326000018
・・・・・・(18)
ステップ5-4は、双対解算出部223が、ステップ5-3で求めた解xの要素が全て正であるかを確認する。全て正である場合は、ステップ5-5に進み、要素の1つでも正でなければ、ステップ5-1に戻り、次の有効セットに移行する。なお、ステップ5-4において、制約係数行列Aと制約ベクトルcの値によっては、解xの要素に0が含まれる場合があるが、線形計画問題が非退化であるという前提から、解xの要素に0が含まれる場合は考慮する必要がない。
ステップ5-5は、双対解算出部223が、有効セットIと対応するxを双対解候補として、有効セットIに関連付けて有効セット双対解記憶部4に記憶する。その後、全ての有効セットについて処理を終了していなければ、ステップ5-1に戻り、次の有効セットへ移行する。
次に、最適解算出装置3について述べる。図8は、最適解算出装置3の処理のフローチャートを示す図である。最適解算出装置3は、変化する制約ベクトルcが繰り返し与えられて、それに応じた最適解yを収束演算することなく高速に算出する。
ステップ6-1は、図1の最適解算出装置3の最適有効セット演算部31が、有効セット双対解候補記憶部4に記憶された、すべての有効セットIに対して、制御ベクトル入力部30から入力された制約ベクトルcと双対解候補xとの内積を計算する。ここで、cは、制約ベクトルcの要素の中で、有効セットIにおいて制約が有効としたk番目の制約式に対応する要素について、kの小さい順に並べたものであり、変数ベクトルyの次元数MのM次元ベクトルである。
ステップ6-2は、最適有効セット演算部31が、制約ベクトルcと双対解候補xとの内積の中で内積が最小となる有効セットを求める。ここで、上記内積の中で内積が最小となる有効セットを最適有効セットIと呼ぶ。複数ある場合は、どれを選んでも主問題の最適解は変化しないため、その中の一つを任意に選ぶ。これを数式で表すと次式となる。
Figure 0006991326000019
・・・・・・(19)
次に、ステップ6-3は、図1の最適解算出装置3の最適解演算部32が、上記で求めた最適有効セットIについて、主問題(式(14))の制約条件を等式とした、制約係数行列Aの転置行列と解ベクトルyとの積が制約ベクトルcIとなる連立方程式を立て、この連立方手式の解を求める。この解が、求めるべき解ベクトルyの最適解yとなる。この連立方程式は、次式で表される。
Figure 0006991326000020
・・・・・・(20)
以上によって、制約ベクトルcについて、主問題の解ベクトルyの最適解yを算出することができる。
なお、解候補算出装置2は、実施の形態1に記載の図12と同様に、プロセッサ1002、メモリ1003、入出力インターフェース1005のハードウェア構成で実現できる。また、最適解算出装置3は、実施の形態1に記載の図13と同様に、プロセッサ1102、メモリ1103、入出力インターフェース1105のハードウェア構成で実現できる。
以上のように、標準形線形計画問題の双対問題を主問題とする線形計画問題を求解するのに、実施の形態1で説明した、求解対象の線形計画問題を主問題とする双対問題を求め、求めた双対問題の制約条件の有効セットを全て求めた上で、実行可能な双対解候補を求めて双対解候補として記憶し、双対解候補と時々刻々変化する制約ベクトルとの内積から最適有効セットを選択し、選択した最適有効セットに対応する実行可能基底解を求める手法を適用することになる。
この際、本実施の形態は、式(13)(14)の標準形線形計画問題の双対問題を求解対象の線形計画問題とする。この対象の線形計画問題は、式(14)の随時変化する制約ベクトルcの次元数である制約次元数Nは、変数ベクトルyの変数次元数Mより大きい。また、制約条件の連立式は、式(14)の連立不等式である。さらに実施の形態1の双対制約条件は、式(16)の対象の線形計画問題の制約係数行列の転置行列で表される変数次元数M個の等式制約、および式(17)の解ベクトルの非負制約の不等式制約である。また、最適解演算部の逆行列を求める行列は、制約係数行列Aのうちの最適有効セットの識別子に対応する列ベクトルを除いた行列である。ここで最適有効セットの識別子とは、制約係数行列Aのaのiにあたるインデックスである。
本実施の形態によれば、標準線形計画問題の双対問題を主問題とする線形計画問題が与えられ、与えられた線形計画問題を主問題とする双対問題を求め、双対問題の制約条件が時間的に変化しないことを利用して、前記制約条件が有効となる組み合わせである有効セットIごとに、前記双対問題の最適解候補をオフラインで算出し、前記有効セットとそれに対応する前記最適解候補を有効セット双対解記憶部に記憶したため、最適な有効セットである最適有効セットI、および対応する基底解を最適解yとして高速に算出することができる。
また、制約係数行列A、費用ベクトルbが固定であり、制約ベクトルcが変化する非退化な標準線形計画問題の双対問題を主問題とする線形計画問題を対象とする線形計画問題求解システムにおいて、制約ベクトルcに依存しない双対解候補xおよび前記双対解候補に対応する有効セットIを探索し、有効セット双対解記憶部4に保存する解候補算出装置2と、有効セット双対解記憶部4に保存された双対解候補xと制約ベクトルcの内積を計算し、最大となる有効セットIを基底とした主問題の実行可能基底解を最適解yとして算出する最適解算出装置3とを備えた構成となっている。このように構成したので、双対解候補xを予めオフラインで計算しておくことができ、時間ごとに変化する制約ベクトルcが与えられてから、主問題の最適解yを算出するまでの過程に反復計算が不要となる。このことによって、計算の高速化および信頼性の向上を実現することができる。また、最適解を算出するまでの時間を見積もることができるため、制御サイクル内に最適解を確実に得られ、最適性および制約条件を犠牲にすることなく実時間で制御することができる。
実施の形態6.
実施の形態6に係る線形計画問題求解システム1は、解候補算出装置2、最適解算出装置3、および有効セット双対解記憶部4から構成される点で、実施の形態5と同様であるが、実施の形態6では、図9に示すように、図7に示した解候補算出装置において有効セット双対解記憶部4に格納する情報を追加することで、さらに求解を高速化することができる。具体的には、解候補算出装置2のStep5、および最適解算出装置3のStep3を下記のように修正する。
解候補算出装置2のStep5’は、有効セットIに対応する双対基底解 x を双対解候補xとして、有効セット双対解記憶部4に保存する(以上は、実施の形態1のStep5に同じ)。さらに、有効セットIに対する制約次元数M×Mの制約係数行列Aの逆行列である分配行列A -1の転置行列を算出し、有効セットIごとに関連付けて、有効セット双対解記憶部4に分配行列A -1の転置行列を保存する。有効セットIに対する制約次元数M×Mの制約係数行列Aの逆行列である分配行列A -1を求めるには、例えば・・・とすれば良い。その後、解候補算出装置2のStep1へ戻り、次の有効セットへ処理を移行する。
実施の形態5では双対解候補xを探索して終了したが、各最適解(有効セット)に対応した主問題の分配行列A -1の転置行列もあらかじめ計算しておく。また、実施の形態5の最適解算出装置3において、図10に示すように最適解算出装置3のStep3を下記のように修正する。
最適解算出装置3のStep3’は、有効セット双対解記憶部4に記憶されている最適有効セットIに関連付けられた、分配行列A -1の転置行列を読出し、最適有効セットの分配行列AI* -1の転置行列とし、制約次元数M×Mの最適有効セットの分配行列とベクトルの積A -1Tbを求め、最適解yI* を計算する。すなわち、式(20)の連立方程式を解く代わりに、行列とベクトルの積であるy=A -1Tを計算するから、計算量が少ない。Step3’では、既に求まっている分配行列AI* -1の転置行列を用いるため、逆行列の計算をする必要がなく、最適解算出装置3の演算量をさらに少なくできる。
なお、解候補算出装置2は、実施の形態1に記載の図12と同様に、プロセッサ1002、メモリ1003、入出力インターフェース1005のハードウェア構成で実現できる。また、最適解算出装置3は、実施の形態1に記載の図13と同様に、プロセッサ1102、メモリ1103、入出力インターフェース1105のハードウェア構成で実現できる。
本実施の形態の線形計画問題求解システム1によれば、解候補算出装置2で有効セットIに対する制約次元数M×Mの制約係数行列Aの逆行列である分配行列A -1およびこの転置行列を算出し、有効セットIごとに関連付けて有効セット双対解記憶部4に記憶し、最適解算出装置3が、有効セット双対解記憶部4に記憶されている最適有効セットIに関連付けられた、分配行列A -1Tを読出して最適解yI* を計算するため、最適解算出装置3の演算量をさらに少なくできる。これによって、制御サイクルをさらに短くして、応答が早いまたは滑らかな制御を実現することができる。
実施の形態7.
本実施の形態は、実施の形態5または6の概念を用いて、複数のロータによる並進及び姿勢制御を行う複数のロータを有する飛翔体についての実施の形態である。この飛翔体は、ドローンであっても良い。推力を一方向にしか出力できないドローンは、推力の大きさよりも姿勢を変えるトルクを優先的に出力することで姿勢を迅速に変更させたい場合がある。ロータ回転数の上下限制約のもとで、可能な限り目標となる目標推進力と目標となる姿勢にする目標トルクを実現する問題は、目標並進力と目標トルクとに重み付き誤差を設けて、この重み付き誤差を最小にする線形計画問題に帰着できる。
なお、実施の形態4では、スラスタの数は、制御を行う自由度の数より多いとしたが、本実施の形態では、飛翔体の推力発生部の数に制限はない。
すると、上下限制約のあるロータ推力のもとで、目標となる並進力およびトルクとの重み付き誤差を最小化する問題は、線形計画問題を表す式(13)(14)を解き、解ベクトルyを最適化することになるから、実施の形態5,6を適用することができる。以下、複数のロータに回転数の上下制約のあり、推力を一方向に出力する複数のロータを有するドローンを目標推力よりも目標姿勢を優先的に実現するロータ制御を行う装置について説明する。まず、実施の形態5の線形計画問題に、本実施の形態の問題を当て嵌める方法を説明する。
ドローン各ロータの推力を並べた列ベクトルをロータ推力ベクトルu, 各ロータが、ロータ推力ベクトルuを発揮したときに、ドローンに出力される並進力およびトルクを並べた列ベクトルをドローン力ベクトルfとする。すると、ドローン力ベクトルfは、ドローンにおけるロータの配置及び各ロータの特性できまる定数行列Bを用いてロータ推力ベクトルuとの関係が表される。(このあたりで列ベクトルの要素数を説明ください)すなわち、ドローン力ベクトルfとロータ推力ベクトルuとは、定数行列Bの各要素が定数であるから、下記に示す線形な関係となる。
Figure 0006991326000021
・・・・・・(21)
ここで、定数行列Bは、ロータ配置及びロータ特性で決まる定数行列である。また、各ロータの推力であるロータ推力ベクトルuには、上限制約umaxおよび下限制約uminがあり、これは以下の不等式で表される。
Figure 0006991326000022
・・・・・・(22)
このとき、所望の目標となるドローンの目標並進力および目標トルクを並べた列ベクトルを目標ドローン力ベクトルf とすると、目標並進力及び目標トルクと、解となるロータ推力ベクトルuによるドローン並進力及びトルクとの重み付き誤差を最小化する問題は、下記のように定式化できる。
Figure 0006991326000023
・・・・・・(23)
Figure 0006991326000024
・・・・・(24)
ここで、下添え字が1でベクトルが縦棒2本で挟んだ記号は、ベクトルの1ノルムを表す。式(24)は、解となるロータ推力ベクトルuの上下限制約を表す。式(24)の条件のもと、式(23)は、ドローン力ベクトルfと目標ドローン力ベクトルfとの差に、重み行列Wをかけたベクトルの1ノルムを最小にするものを求めることを表す。
上記式(23)(24)は、以下のようにすることで、標準形線形計画問題を主問題としたときの双対問題に対応する線形計画問題(実施の形態5の対象とする問題)と等価な線形計画問題に変形できる。
Figure 0006991326000025
・・・・・・(25)
Figure 0006991326000026
・・・・・・(26)
ここで、実施の形態5の制約係数行列の転置行列A,費用ベクトルb,制約ベクトルcは、下記のように表される。
Figure 0006991326000027
・・・・・・(27)
Figure 0006991326000028
・・・・・・(28)
Figure 0006991326000029
・・・・・・(29)
ただし、nは、ドローンのロータ数、Inは、ロータ数nのn次元単位ベクトル、 0n×6は、n×6の零行列、0nは、0を縦にロータ数n個並べた零ベクトル、1は、1を縦に6個並べたベクトルである。また、解ベクトルyは、ロータ数nの要素を持つロータ推力ベクトルuと、6要素を持つ仮想変数ηとを用いて y = [u η]と表される。ここで、仮想変数ηの各要素は、ドローン力ベクトルfと目標ドローン力ベクトルfとの差に、重み行列WをかけたベクトルW(f-f)の各要素の絶対値を表し、また、数字の6は、並進位置の自由度3と回転自由度3の合計6自由度であるから6となる。
式(26)において、cは、N次元の制約ベクトルであり、yは、制約ベクトルcの次元数Nより小さいM次元の変数ベクトルであり、Aは、変数ベクトルyの次元数M×制約ベクトルcの次元数Nの制約係数行列である。式(25)において、bは、変数ベクトルyの次元数Mの費用ベクトルであり、式(25)は、式(26)を満たす変数ベクトルyのうち、費用ベクトルbと変数ベクトルyの内積を最大にするものを求めることを意味する。
式(27)は、式(14)の制約係数行列Aの転置行列について、最初の n 行は、各ロータの推力が上限制約umax以下であることを表す。次の n 行は、各ロータの推力が下限制約umin以上であることを表す。残りの12行は、式(23)を線形計画問題に変換する際に加えられる不等式を表し、ドローン力ベクトルfと目標ドローン力ベクトルfとの差に、重み行列Wをかけたベクトルの各要素が、各要素の絶対値以下であり、かつ各要素の絶対値に-1をかけた値以上となる、当然に成り立つ関係式が仮想変数ηに関して表現されている。
式(28)は、費用ベクトルbについて、最初のロータ数n個の要素が0であり、続く6個の要素が-1であることを表す。
式(29)は、制約ベクトルcが、最初のロータ数n個の要素が、上限制約umax、続くロータ数n個の要素が、下限制約uminの負ベクトル、続く仮想変数の数6個の要素が、重み行列Wと目標ドローン力ベクトルfの積Wf、及び続く仮想変数の数6個の要素が、積Wfの負ベクトル-Wfであることを示す。
以上のようにすることで、ドローンの目標並進力及び目標トルクと、解となるロータ推力ベクトルuによるドローン並進力及びトルクとの重み付き誤差を最小化する問題は、実施の形態5の式(13)(14)で表現される標準形線形計画問題の双対問題を主問題とする線形計画問題として表現できる。したがって、[u ηで表現される解ベクトルyの最適解yを求めるのに、実施の形態5または6を適用することができる。最適解yが求まれば、最適なロータ推力ベクトルuを取り出すことができる。以下、実施の形態5を適用した一例を示す。
なお、飛翔体の推力発生部、例えば、ドローンのロータの数に制限はないとしたが、これは、次の理由による。実施の形態4の場合には、のスラスタの本数Nが、変数ベクトルxの次元数であり、変数ベクトルxの次元数Nが、制約式の数Mより多いことが、前提であった。しかし、本実施の形態のドローンの場合には、制約式の数Nより変数ベクトルyの次元数Mが多いことが前提となるところ、線形計画問題に変形した時点で、上記式(28)(29)において、ロータ数nの数に依らず、制約式の数Nより変数ベクトルyの次元数Mが大きいことが常に成り立つからである。
具体的には、制約式の数Nは、ロータ推力の上限と下限の制約がロータ数nの2倍と、式(23)を線形計画問題に変換する際に加えられる不等式の数12とを加算した「2*n+12」であり、変数ベクトルyの次元数Mは、ロータ数nと自由度数6とを加算した「n+6」であることから、必ず制約式の数Nが、変数ベクトルyの次元数Mより大きくなるからである。
また、上記は、ドローンを6自由度制御する場合の例を示したが、通常のマルチコプターは、全てのロータ703が同じ方向を向いているから、並進1自由度と回転3自由度の4自由度しか制御できない。この場合でも、上記制約式の数Nは、「2*n+8」、変数ベクトルyの次元数Mは、「n+4」となるから、必ず制約式の数Nが、変数ベクトルyの次元数Mより大きくなる。
図1は、本実施の形態の線形計画問題を求解する線形計画問題求解システムの構成を表す図でもある。実施の形態1と同様に、線形計画問題求解システム1は、入力に対して、線形制約を満たしつつ線形な評価関数を最小にする出力ベクトルを算出するものである。線形計画問題求解システム1は、解候補算出装置2及び最適解算出装置3により構成される。解候補算出装置2は、対象とする線形計画問題の不変となる情報を入力として、入力された情報から対象とする線形計画問題を求め、求めた線形計画問題を主問題とする双対問題を求め、求めた双対問題の制約条件が有効となる実行可能な解候補と解候補に対応する有効セットをすべて求めて記憶部に記憶させる。最適解算出装置3は、随時変化する変化情報を入力とし、解候補算出装置2で求めた解候補と入力の内積から最適となる有効セットを選択し、有効セットに対応する実行可能基底解を最適解として求めて出力する。
飛翔体制御装置は、変数次元数のロータを有する飛翔体制御装置であって、ロータ発揮すべき並進力およびトルクが入力される制御入力部と、並進力およびトルクの情報から制約ベクトルを作成して制約ベクトル入力部に入力し、最適有効セット演算部に最適有効セットを求めさせ、解演算部に最適有効セットから変数ベクトルの最適解を求めさせ、得られた変数ベクトルからロータに出力する信号を作成するロータ駆動演算部とを備え、制約次元数は、変数次元数より大きく、連立式は、連立不等式であり、双対制約条件は、制約係数行列の転置行列で表される変数次元数個の等式制約を含み、不等式は、解ベクトルの非負制約であり、最適有効セット演算部は、求めた内積が最小となる有効セットを最適有効セットとして求める。
図11は、本実施の形態の複数のロータによる並進及び姿勢制御を行うドローンの構成を示すブロック図である。図において、ドローン700は、ドローン700を並進させる量および姿勢を算出する並進姿勢制御装置701、並進姿勢制御装置701からの指令を受けて、ドローン700のロータを制御するロータ制御装置702およびロータ制御装置の制御対象となるロータ703を含む構成を有し、ドローンの位置および姿勢を制御する。
ロータ制御装置702は、並進姿勢制御装置701からの指令を受け、ロータ703が出力すべき並進力およびトルクが入力される制御入力部711、制御入力部711からの目標となる並進力およびトルクの信号を受けてロータ703ごとにロータ回転を制御する制御信号を演算するロータ駆動演算部712、およびロータ駆動演算部712の指示によって制御入力部711からの信号に基づきロータ703の回転量の最適化問題を上述の実施の形態5,6の線形計画問題に変換した問題を解く最適解算出装置(回路)713を備える。
なお、制御入力部711は、数値的な安定性を向上させるため、並進力とトルクとでオーダーを合わせて規格化しても良い。また、制御入力部711は、無くても良く、並進姿勢制御装置701から入力された信号である、ロータ703が出力すべき並進力およびトルクを直接ロータ駆動演算部712に入力しても良い。
最適解算出装置(回路)713は、上述の実施の形態5,6の有効セット双対解記憶部4に対応する有効セット双対解記憶部714、ロータ駆動演算部712から時々刻々変化する制約ベクトルcに相当する目標ドローン力ベクトルfを受け取る制御ベクトル入力部715、有効セット双対解記憶部714から双対解候補xを読み出して、制御ベクトル入力部715から制約ベクトルcを受け取り、制約ベクトルcと双対解候補xとから最適有効セットIを求める最適有効セット演算部716、および最適有効セットIから最適解yを求める最適解演算部717を備える。
以下、ドローン700の処理の流れについて説明する。本実施の形態では、ドローンの目標並進力と目標トルクとに重み付き誤差を設けて、この重み付き誤差を最小にする線形計画問題に帰着する。帰着される線形計画問題の式(25)(26)は、実施の形態5の式(13)(14)と同じであるから、結果的に実施の形態5を適用できる。
前準備として、ステップ6-0は、上記実施の形態5または6の解候補算出装置2を用いて、有効セット双対解記憶部に有効セットIと関連付けられた双対解候補xを記憶させる。
ステップ6-0は、実施の形態5または6の解候補算出装置2を適用して、予め問題入力部21が、ロータ703のドローン700における配置等および重みから式(27)により制約係数行列Aを求め、式(28)から費用ベクトルbを入力し、双対解候補探索部22がドローン用の線形計画問題の双対問題を求め、求めた双対問題の有効セットIと双対解候補 xを求めて、関連付けて、ドローン700の有効セット双対解記憶部714に記憶する。
なお、ステップ6-0は、上述の実施の形態の解候補算出装置2で実行され、解候補算出装置2は、図12の実施の形態1に記載の図12と同様に、プロセッサ1002、メモリ1003、入出力インターフェース1005のハードウェア構成で実現できる。
ステップ6-1は、並進姿勢制御装置701が、自己位置、速度、姿勢、および角速度、ならびにこれらの目標値である目標位置、目標速度、目標姿勢、および目標角速度をもとに、並進及び姿勢制御に必要となる所望並進力とトルクを並進姿勢制御部701において算出する。これは例えば、目標位置との差をフィードバックするPID制御などの制御則により実現できる。
ステップ6-2は、ロータ駆動演算部712が、ステップ6-1で得られた目標並進力およびトルクを可能な限り実現するための各ロータ推力を算出する。このとき、上下限制約のあるロータ推力のもとで、目標となる並進力およびトルクとの重み付き誤差を最小化する問題は、上述のように式(27)-(29)により定義される線形計画問題式(25)(26)を解いて、各ロータの推力を含む最適解yを求める。
この際、制御ベクトル入力部715が、ロータ駆動演算部712から目標ドローン力ベクトルfを受け取り、式(29)によって、目標ドローン力ベクトルf、重みベクトルW、上限制約umaxおよび下限制約uminから制約ベクトルcを求める。最適有効セット演算部716が、有効セット双対解記憶部714に記憶された有効セットIに対応する制約ベクトルcIの転置行列と、双対解候補xIとの内積が最小の最適有効セットI、最適双対解xI*を求める。
ステップ6-3は、最適解演算部717が、ステップ6-2で求めた最適有効セットIについて、主問題(式(25)、(26))の制約条件(式(26))の一部を等式とした連立方程式(A I*I* = cI*。式(20)と同様)を立て、この連立方手式の解を求める。この解が、求めるべき解ベクトルyの最適解yとなる。この連立方程式は、式(20)で表される。さらに、最適解yは、[u ηであるから、最適解yから各ロータ推力ベクトルuを取り出す。
ステップ6-4は、ロータ703に、ステップ7-2で算出したロータ703の制御量を含む指令を送る。これによって、ロータ703は、ステップ7-2で求めたロータ703の制御量によって制御され、推力の大きさよりも姿勢を変えるトルクを優先的に出力することで姿勢を迅速に変更するドローン700の制御をすることができる。
なお、ロータ制御装置702は、実施の形態1に記載の図13と同様に、プロセッサ1102、メモリ1103、入出力インターフェース1105のハードウェア構成で実現できる。入出力インターフェース1105は、制御入力部711の入力、ロータ駆動演算部712からロータ703への出力を行い、プロセッサ1102は、ロータ駆動演算部712、制御ベクトル入力部715、最適有効セット演算部716および最適解演算部717の演算を行い、メモリ1103は、ロータ制御装置702の処理プログラムを保持し、有効セット双対解記憶部714を実現する。また、図13の受信装置1106は、本実施の形態では並進姿勢制御装置701からの情報を受信し、アクチュエータ1108は、ロータ703にあたり、アクチュエータ制御装置1107は、ロータ駆動演算部712の一部にあたる。
以上のように、式(25)(26)の標準形線形計画問題の双対問題を主問題とする線形計画問題を求解するのに、実施の形態1で説明した、求解対象の線形計画問題を主問題とする双対問題を求め、求めた双対問題の制約条件の有効セットを全て求めた上で、実行可能な双対解候補を求めて双対解候補として記憶し、双対解候補と時々刻々変化する制約ベクトルとの内積から最適有効セットを選択し、選択した最適有効セットに対応する実行可能基底解を求める手法を適用することになる。
この際、本実施の形態は、式(25)(26)の標準形線形計画問題の双対問題を求解対象の線形計画問題とする。この対象の線形計画問題は、式(29)の随時変化する制約ベクトルcの次元数である制約次元数Nは、ロータ数nの要素を持つロータ推力ベクトルuと、6要素を持つ仮想変数ηとを用いて y = [u η]と表される変数(解)ベクトルyの変数次元数Mより大きい。また、制約条件の連立式は、式(26)の連立不等式である。さらに実施の形態1の双対制約条件は、式(16)の対象の線形計画問題の制約係数行列の転置行列で表される変数次元数M個の等式制約、および式(17)の解ベクトルの非負制約の不等式制約である。また、最適解演算部の逆行列を求める行列は、制約係数行列Aのうちの最適有効セットの識別子に対応する列ベクトルを除いた行列である。ここで最適有効セットの識別子とは、制約係数行列Aのaのiにあたるインデックスである。
本実施の形態によれば、並進および姿勢制御のアクチュエータとして、ロータを持つドローンにおいて、ロータ配置,ロータ特性,重み行列から決定される行列Aおよびすべての要素が0と-1で構成される費用ベクトルbを入力として、解候補算出装置2によって得られる双対解候補yIおよび有効セットIを有効セット双対解記憶部4に保存し、各ロータ推力ベクトルuの上下限制約、重み行列、所望の並進力及びトルクにより定まる制約ベクトルc を最適解算出装置3に入力することで、目標となる並進力およびトルクとの重み付き誤差を最小化するような上下限制約の範囲内に収まるロータ推力を高速に算出することができる。
なお、ロータの推力方向は、複数のロータ間で同じである必要はなく、様々な方向に推力を発生するようにロータが配置されていても良い。この場合、ロータの推力の向きは、行列Aで指定する。ただし、ドローンの飛行中は、ロータの向きが変わらないものとする。
なお、ドローンのロータ配置によっては1方向にしか推力を出すことができない場合も多く、この場合は並進よりも姿勢の制御を優先するように重み行列を設定することで、目的にあった制御を行うことができる。本実施の形態によって、上下限制約を考慮した最適なロータ推力を高速に決定することができ、ドローンの墜落防止やアクロバティックな飛行を可能にする。
また、上記は、ドローンを中心に説明したが、複数のロータまたは推力発生器を有する飛翔体であっても良く、特にロータまたは推力発生器の推力方向が動的に変わらない飛翔体に本実施の形態を適用でき、同様の効果を有する。
1 線形計画問題求解システム
2 解候補算出装置
3 最適解算出装置
4 有効セット双対解記憶部
21 問題入力部
22 双対解候補探索部
221 双対問題作成部
222 全有効セット作成部
223 双対解算出部
31 制御ベクトル入力部
32 最適有効セット演算部
33 最適解演算部
401 並進姿勢制御装置
402 スラスタ制御装置
403 スラスタ
411 制御入力部
412 スラスタ駆動演算部
413 最適解算出装置
414 有効セット双対解記憶部
415 制御ベクトル入力部
416 最適有効セット演算部
417 最適解演算部
701 並進姿勢制御装置
702 ロータ制御装置
703 ロータ
711 制御入力部
712 ロータ駆動演算部
713 最適解算出装置
714 有効セット双対解記憶部
715 制御ベクトル入力部
716 最適有効セット演算部
717 最適解演算部

Claims (9)

  1. 与えられた制約係数行列、随時変化する制約ベクトルおよび前記制約ベクトルの次元数である制約次元数と異なる変数次元数の変数を持つ変数ベクトルの連立式で表現される制約条件の下で前記変数ベクトルおよび費用ベクトルの関数である目的関数を最適化する線形計画問題の解を求める線形計画問題求解システムにおいて、
    前記制約係数行列および前記費用ベクトルの情報を入力として、前記線形計画問題を主問題とする双対問題および前記双対問題の制約条件の式のうち等号が成立する組合せを表す有効セットを全て求め、前記有効セットごとに前記制約条件が有効となる実行可能な双対解候補を求めて前記有効セットと関連付けて前記双対解候補を記憶部に記憶する双対解候補探索部と、
    前記制約ベクトルを入力とし、前記記憶部に記憶された前記双対解候補と前記制約ベクトルとの内積から最適となる前記有効セットである最適有効セットを選択し、選択した前記有効セットに対応する実行可能基底解を最適解として求めて出力する最適解算出装置とを備える線形計画問題求解システム。
  2. 前記双対解候補探索部は、前記双対問題が前記変数次元数個の式を持つ双対制約条件を含む問題として求め、
    前記有効セットは、前記双対制約条件の複数の前記式のうち前記変数次元数および前記制約次元数の少ない方の次元数個の等号が成立する組合せを前記式の識別子で表したものであり、
    前記双対解候補は、前記有効セットごとに前記識別子が表す前記双対制約条件の前記式を満たす解ベクトルであり、
    前記最適解算出装置は、前記制約係数行列のうち前記最適有効セットの情報を使って求めた行列の逆行列と前記制約ベクトルとの積から前記変数ベクトルの最適解を求める最適解演算部を備える請求項1に記載の線形計画問題求解システム。
  3. 前記制約次元数は、前記変数次元数より小さく、
    前記変数ベクトルは非負であり、
    前記連立式は、連立方程式であり、
    前記双対制約条件は、前記制約係数行列の転置行列で表される前記変数次元数個の不等式制約であり、
    前記最適解算出装置は、求めた前記内積が最大となる前記有効セットを前記最適有効セットとして求める最適有効セット演算部を含み、
    前記最適解演算部の逆行列を求める前記行列は、前記制約係数行列のうちの前記最適有効セットの前記識別子に対応する列ベクトルを並べた行列であることを特徴とする請求項2に記載の線形計画問題求解システム。
  4. 前記制約次元数は、前記変数次元数より大きく、
    前記連立式は、連立不等式であり、
    前記双対制約条件は、前記制約係数行列の転置行列で表される前記変数次元数個の等式制約および前記解ベクトルの非負制約の不等式制約を含み、
    前記最適解算出装置は、求めた前記内積が最小となる前記有効セットを前記最適有効セットとして求める最適有効セット演算部を含み、
    前記最適解演算部の逆行列を求める前記行列は、前記制約係数行列のうちの前記最適有効セットの前記識別子に対応する列ベクトルを除いた行列であることを特徴とする請求項2に記載の線形計画問題求解システム。
  5. 与えられた制約係数行列、随時変化する制約ベクトルおよび前記制約ベクトルの次元数である制約次元数と異なる変数次元数の変数を持つ変数ベクトルの連立式で表現される制約条件の下で前記変数ベクトルおよび費用ベクトルの関数である目的関数を最適化する線形計画問題の解を求める線形計画問題求解システムの解候補算出装置であって、
    前記制約係数行列および前記費用ベクトルの情報を入力として、前記線形計画問題を主問題とする双対問題および前記双対問題の制約条件である双対制約条件の式のうち等号が成立する組合せを表す有効セットを全て求め、前記有効セットごとに前記制約条件が有効となる実行可能な双対解候補を求めて出力する双対解候補探索部と、
    前記双対解候補探索部から出力される前記有効セットと関連付けて前記双対解候補を記憶部に記憶する記憶部とを備える線形計画問題求解システムの解候補算出装置。
  6. 与えられた制約係数行列、随時変化する制約ベクトルおよび前記制約ベクトルの次元数である制約次元数と異なる変数次元数の変数を持つ変数ベクトルの連立式で表現される制約条件の下で前記変数ベクトルおよび費用ベクトルの関数である目的関数を最適化する線形計画問題の解を求める線形計画問題求解システムの最適解算出装置であって、
    前記線形計画問題の情報を入力する問題入力部と、
    前記線形計画問題を主問題とする双対問題および前記双対問題の制約条件である双対制約条件の式のうち等号が成立する組合せを表す有効セットの情報と、前記有効セットごとに前記制約条件が有効となる実行可能な双対解候補とを関連付けて記憶する記憶部と、
    前記制約ベクトルの情報が入力される制約ベクトル入力部と、
    前記記憶部に記憶された前記双対解候補と前記制約ベクトルとの内積から最適となる前記有効セットを最適有効セットとして選択する最適有効セット演算部と、
    前記最適有効セット演算部で選択した前記有効セットに対応する実行可能基底解を最適解として求めて出力する最適解演算部とを備える線形計画問題求解システムの最適解算出装置。
  7. 請求項6に記載の線形計画問題求解システムの最適解算出装置を備え、前記変数次元数のスラスタを有する宇宙機のスラスタ制御装置であって、
    前記宇宙機の発揮すべき並進力およびトルクが入力される制御入力部と、
    前記並進力および前記トルクの情報から前記制約ベクトルを作成して前記制約ベクトル入力部に入力し、前記制約ベクトルを含む前記線形計画問題を前記問題入力部に入力し、前記最適有効セット演算部に前記最適有効セットを求めさせ、最適解演算部に前記最適有効セットから前記変数ベクトルの最適解を求めさせ、得られた前記変数ベクトルから前記スラスタに出力する信号を作成するスラスタ駆動演算部とを備え、
    前記制約次元数は、前記変数次元数より小さく、
    前記変数ベクトルは非負であり、
    前記連立式は、連立方程式であり、
    前記双対制約条件は、前記制約係数行列の転置行列で表される前記変数次元数個の不等式制約であり、
    前記最適有効セット演算部は、求めた前記内積が最大となる前記有効セットを前記最適有効セットとして求めることを特徴とする宇宙機のスラスタ制御装置。
  8. 請求項6に記載の線形計画問題求解システムの最適解算出装置を備え、前記変数次元数のロータを有する飛翔体制御装置であって、
    前記ロータが発揮すべき並進力およびトルクが入力される制御入力部と、
    前記並進力および前記トルクの情報から前記制約ベクトルを作成して前記制約ベクトル入力部に入力し、前記最適有効セット演算部に前記最適有効セットを求めさせ、最適解演算部に前記最適有効セットから前記変数ベクトルの最適解を求めさせ、得られた前記変数ベクトルから前記ロータに出力する信号を作成するロータ駆動演算部とを備え、
    前記制約次元数は、前記変数次元数より大きく、
    前記連立式は、連立不等式であり、
    前記双対制約条件は、前記制約係数行列の転置行列で表される前記変数次元数個の等式制約および前記双対問題の解ベクトルの非負制約であり、
    前記最適有効セット演算部は、求めた前記内積が最小となる前記有効セットを前記最適有効セットとして求めることを特徴とする飛翔体制御装置。
  9. 与えられた制約係数行列、随時変化する制約ベクトルおよび前記制約ベクトルの次元数である制約次元数と異なる変数次元数の変数を持つ変数ベクトルの連立式で表現される制約条件の下で前記変数ベクトルおよび費用ベクトルの関数である目的関数を最適化する線形計画問題の解を求める線形計画問題の求解方法において、
    前記線形計画問題の求解方法は、コンピュータにより実行され、
    前記制約係数行列および前記費用ベクトルの情報を入力として、前記線形計画問題を主問題とする双対問題および前記双対問題の制約条件の式のうち等号が成立する組合せを表す有効セットを全て求め、前記有効セットごとに前記制約条件が有効となる実行可能な双対解候補を求めて前記有効セットと関連付けて前記双対解候補を記憶部に記憶する双対解候補探索ステップと、
    前記制約ベクトルを入力とし、前記記憶部に記憶された前記双対解候補と前記制約ベクトルとの内積から最適となる前記有効セットを選択し、選択した前記有効セットに対応する実行可能基底解を最適解として求めて出力する最適解算出ステップとを備える線形計画問題の求解方法。
JP2020520941A 2018-05-23 2018-05-23 線形計画問題求解システム、解候補算出装置、最適解算出装置、宇宙機のスラスタ制御装置および飛翔体制御装置並びに線形計画問題の求解方法 Active JP6991326B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/019880 WO2019224954A1 (ja) 2018-05-23 2018-05-23 線形計画問題求解システム、解候補算出装置、最適解算出装置、宇宙機のスラスタ制御装置および飛翔体制御装置並びに線形計画問題の求解方法

Publications (2)

Publication Number Publication Date
JPWO2019224954A1 JPWO2019224954A1 (ja) 2021-01-14
JP6991326B2 true JP6991326B2 (ja) 2022-01-12

Family

ID=68615771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020520941A Active JP6991326B2 (ja) 2018-05-23 2018-05-23 線形計画問題求解システム、解候補算出装置、最適解算出装置、宇宙機のスラスタ制御装置および飛翔体制御装置並びに線形計画問題の求解方法

Country Status (4)

Country Link
US (1) US11958635B2 (ja)
EP (1) EP3798869A4 (ja)
JP (1) JP6991326B2 (ja)
WO (1) WO2019224954A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11155356B2 (en) 2020-02-19 2021-10-26 Kitty Hawk Corporation Thrust allocation using optimization in a distributed flight control system
US11163273B2 (en) * 2020-03-02 2021-11-02 Mitsubishi Electric Research Laboratories, Inc. Active set based interior point optimization method for predictive control
CN111353121B (zh) * 2020-03-31 2023-04-11 中国空气动力研究与发展中心超高速空气动力研究所 一种用于确定航天器解体碎片不确定性参数分布的方法
JP7571428B2 (ja) 2020-09-09 2024-10-23 日本電気株式会社 情報処理装置、情報処理方法、および情報処理プログラム
WO2024214167A1 (ja) * 2023-04-11 2024-10-17 日本電気株式会社 最適化装置、最適化方法、および、最適化プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120271528A1 (en) 2008-04-04 2012-10-25 Honeywell International Inc. Methods and systems for the design and implementation of optimal multivariable model predictive controllers for fast-sampling constrained dynamic systems

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3390492B2 (ja) * 1993-07-16 2003-03-24 三菱電機株式会社 宇宙機の制御装置、およびそのスラスタ制御方法
DE19718922C1 (de) 1997-04-25 1998-04-02 Daimler Benz Ag Verfahren zur treibstoffminimalen, rechnergestützten Ansteuerung für beliebig an einem Raumfahrzeug angeordnete Düsen
JP2000142596A (ja) 1998-11-16 2000-05-23 Nec Aerospace Syst Ltd 人工衛星の姿勢制御方法及びその装置
JP2001184334A (ja) * 1999-12-24 2001-07-06 Nec Corp 線形計画問題の求解方法および線形計画問題求解装置
JP4156544B2 (ja) 2004-03-05 2008-09-24 三菱電機株式会社 出力分配算出装置
US8812421B1 (en) * 2008-06-09 2014-08-19 Euler Optimization, Inc. Method and apparatus for autonomous synchronous computing
US9418046B2 (en) * 2014-05-14 2016-08-16 International Business Machines Corporation Price-and-branch algorithm for mixed integer linear programming
JP6838353B2 (ja) * 2016-10-31 2021-03-03 日本製鉄株式会社 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム
US10740431B2 (en) * 2017-11-13 2020-08-11 Samsung Electronics Co., Ltd Apparatus and method of five dimensional (5D) video stabilization with camera and gyroscope fusion

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120271528A1 (en) 2008-04-04 2012-10-25 Honeywell International Inc. Methods and systems for the design and implementation of optimal multivariable model predictive controllers for fast-sampling constrained dynamic systems

Also Published As

Publication number Publication date
EP3798869A4 (en) 2021-06-23
US11958635B2 (en) 2024-04-16
US20210094705A1 (en) 2021-04-01
EP3798869A1 (en) 2021-03-31
JPWO2019224954A1 (ja) 2021-01-14
WO2019224954A1 (ja) 2019-11-28

Similar Documents

Publication Publication Date Title
JP6991326B2 (ja) 線形計画問題求解システム、解候補算出装置、最適解算出装置、宇宙機のスラスタ制御装置および飛翔体制御装置並びに線形計画問題の求解方法
Ulrich et al. Nonlinear adaptive output feedback control of flexible-joint space manipulators with joint stiffness uncertainties
Vukobratovic et al. Applied dynamics and CAD of manipulation robots
Jiang et al. Improving low-thrust trajectory optimization by adjoint estimation with shape-based path
Gondelach et al. Hodographic-shaping method for low-thrust interplanetary trajectory design
CN112313672B (zh) 用于无模型强化学习的堆叠的卷积长短期记忆
JP7035734B2 (ja) 強化学習プログラム、強化学習方法、および強化学習装置
Zhu et al. Fault-tolerant control algorithm of the manned submarine with multi-thruster based on quantum-behaved particle swarm optimisation
Selfridge et al. A multivariable adaptive controller for a quadrotor with guaranteed matching conditions
Park Robust and optimal attitude control of spacecraft with disturbances
Ortega et al. New results on control by interconnection and energy-balancing passivity-based control of port-Hamiltonian systems
Liu et al. Optimal path planning of redundant free-floating revolute-jointed space manipulators with seven links
Sasaki et al. Convex optimization for power tracking of double-gimbal variable-speed control moment gyroscopes
Kim et al. Optimal actuator failure control using a homotopy method
Manh et al. An adaptive neural network-based controller for car driving simulators
Angeletti et al. Automated nested co-design framework for structural/control dynamics in flexible space systems
Kou et al. Constrained control allocation of a quadrotor-like autonomous underwater vehicle
Shi et al. Symbolic programming of a graph-theoretic approach to flexible multibody dynamics
Chamseddine et al. Trajectory planning/re-planning for satellite systems in rendezvous mission in the presence of actuator faults based on attainable efforts analysis
Jin et al. Fault tolerant attitude control for small satellites using single gimbal control moment gyros and magnetic torquers
Chen et al. A reconfiguration control scheme for a quadrotor helicopter via combined multiple models
Ding et al. Smooth and proximate time-optimal trajectory planning of robotic manipulators
Papakonstantinou et al. Global Steering for Control Moment Gyroscope Clusters Using Heuristic Variable Search Techniques
Vang et al. Geometric attitude control via contraction on manifolds with automatic gain selection
Kuseyri MIMO H∞ control of three-axis ship-mounted mobile antenna systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210802

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: 20211109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211207

R150 Certificate of patent or registration of utility model

Ref document number: 6991326

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150