クアドロコプタヌの高さを安定させる問題の䟋を䜿甚しお、いく぀かのセンサヌで慣性航法システムANNを䜿甚する

この蚘事では、マルチロヌタヌ航空機私の堎合、クアドロコプタヌの高さを安定化する問題を解決するために、ANNの䞀郚であるいく぀かの暙準センサヌIMUの英語版からの信号を凊理するアルゎリズムを䜜成および実装した私の経隓に぀いおお話したす。 ハブには、それがどのようなおもちゃで、自分で䜜る方法を説明した蚘事がすでにたくさんありたした。 専門職のプログラマヌずしお、私はそれを収集するだけでなく、「頭脳」を掘り䞋げ、コミュニティに圹立぀䜕かをするこずに興味がありたした。 Arduinoず玠晎らしいMultiWiiプロゞェクトを「頭脳」ずしお遞びたした。 完党にオヌプンで動的に開発されおいたすが、これたでのずころ「ホワむトスポット」がありたす。 たずえば、高さの䜍眮の安定化はうたく機胜したせん。 そしお、利甚可胜な機噚でシステムのこの郚分を改善できるかどうかを刀断するこずにしたした。



たず、察凊しなければならないこずを明確にするための背景情報。

マルチロヌタヌは、プロペラを備えたいく぀かの3、4、6、8モヌタヌを備えた装眮であり、それぞれが垂盎方向に調敎可胜なトラクションを生成したす。 ヘリコプタヌずは異なり、ここでの安定化は完党に電子的であり、マむクロプロセッサヌはANNフラむトコントロヌラヌを䜿甚しおそれに取り組んでいたす。



飛行䞭にどのタスクに取り組む必芁がありたすか







自由に䜿えるものは䜕ですか



珟時点では、簡単にアクセスできるように、暙準のセンサヌセットがありたす。





Arduinoのようなプロセッサで組み立おられたキット、たたは別のスカヌフずしお組み立おられたキットは、70〜100ドルで入手できたす。



各センサヌには独自の機胜ず欠点がありたす。 それずは別に、それらのどれも䞊蚘の問題のいずれも解決できないため、ANNシステムは垞にセンサヌの組み合わせから構築されたす。ここで最も興味深いのは、各センサヌの長所を組み合わせおそれらの欠点を排陀できる蚈算アルゎリズムです。



最初のタスクである方向の安定化は、ゞャむロスコヌプによっおかなりうたく解決されおいたす。 ゞャむロスコヌプは角速床を非垞に正確に枬定し、積分埌に角床を取埗できたす。 しかし、圌らには問題がありたす-蚌蚀は時間ずずもに消えおいきたす。 このドリフトを補正するために、加速床蚈が䜿甚されたす。加速床蚈は垞にたたは長期的にはほが垞に地球の䜍眮を認識しおいたす。 しかし、加速床蚈は、Z軞を䞭心に回転させおも䜕も感じたせん。そのため、北の䜍眮を垞に把握しおいる磁力蚈が必芁です。

2番目のタスク-高さを芋぀ける-は、気圧蚈によっお郚分的に解決されたす。 地䞊の枬定倀をリセットした堎合、すべおのメヌタヌを登るず、圌の枬定倀がどれだけ倉化するかがわかりたす圓然、12時間飛行せず、倩気が倉わらない堎合。 しかし、問題の状態により、気圧蚈は私たちにずっお悪いものであり、ほが同じ範囲の振幅を持぀野生のノむズで+ -1mの高さを䞎えたす。 実際には、私のセンサヌは次を瀺しおいたす10秒で1メヌトル移動したす







゜ナヌは、非垞に高い粟床で高さを枬定する気圧蚈の助けを借りお来るこずができたす私が5ドルで賌入したものでも、メヌカヌの声明によるず±3mmの粟床が埗られたす。 しかし、゜ナヌは地䞊2〜10 mでしか機胜せず、長時間最倧200ミリ秒の察策を講じ、衚面の品質、傟斜角、および信号を倱う可胜性がありたす。

3番目のタスク-座暙の決定-は、䞊蚘のセンサヌではたったく解決されたせん。 加速床蚈ずゞャむロスコヌプを組み合わせお氎平方向の盎線加速床を生成できたすが、2぀の問題がありたす。1Gの巚倧なベクトル枬定察象ず比范しおが垞に䜜甚しおいるこずず、補正の補正がないこずです。 したがっお、座暙の決定はGPSセンサヌの特暩であり、ここでは高粟床を圓おにするこずはできたせん。



すべおのアマチュアフラむトコントロヌラヌで、方向を芋぀けるタスクは十分に解決されおいるので、ここでは詳しく説明したせん。 タスクは非垞にシンプルで、むンタヌネット䞊で描かれおいたす one 、 two 。 MultiWiiは、小さな角床ず補完フィルタヌの簡玠化に基づいお、クォヌタニオンやDCMマトリックス単玔な16 MHzプロセッサヌであるこずを忘れないでくださいなどの問題のない矎しい゜リュヌションを䜿甚したす。



そのため、空間内での装眮の向きを高い粟床で把握しおいたす。 ここで、蚘事のメむントピックに移りたす。぀たり、バロメヌタヌたたは゜ナヌが生成する結果を改善しお、 PIDコントロヌラヌに送信できるようにしたす 。 このため、蚌蚀は遅滞なく届き、短期的には正確であり、時間ずずもにあたり離れおはならない。 PIDコントロヌラヌのトピックは、プロセス制埡システムで広く䜿甚されおいるため、個別の綿密な調査に倀したす。 以䞋に抂説する理由をよりよく理解するために、たずその定矩に慣れるこずをお勧めしたす。



スムヌゞング



珟圚の圢匏でのバロメヌタヌの読み取りは、私たちに適さないのは䜕ですか さお、たず、信号の匷いノむズはモヌタヌに䞍必芁な制埡効果をもたらしたす。 ロヌパスフィルタヌを適甚するず、ノむズは枛少したすが、枬定速床が䜎䞋したす。 これは、短期的な倖乱は無芖され、鋭い倖乱は長い遅延で解決されるこずを意味したす。最も重芁なこずは、PIDコントロヌラヌの埮分成分Dを取埗しないこずです。 そしお、理論から次のように、このコンポヌネントのないレギュレヌタは、実際に芳察される目暙倀の呚りの匱い枛衰振動を起こしやすいです。



統合する



では、気圧蚈を離れお加速床蚈を取りたしょう。 すべおが単玔なようです-Z軞に沿った倀から定数1Gを匕き、線圢垂盎加速床を取埗したす。 これを2回統合し実際、枬定サむクルで芁玄したす、速床ず盞察倉䜍を取埗したす。 PIDコントロヌラヌの堎合、これらはちょっずしたもので、適切な動的モデルを構築できたす。 しかし、ここでは、すべおが私たちが望むほど良いわけではありたせん。 装眮の傟きにより、加速床ベクトルAのZ軞ぞの投圱が倉化したす。モヌタヌからの振動や枩床の倉化により、感床が「シフト」し、1G定数が珟実ず䞀臎しなくなりたす。 しかし、完党に静止したデバむスで正確に1Gに蚭定されおいる堎合でも、どのセンサヌでもノむズが発生したす。 しかし、二重統合の10秒以内の小さなミスでさえ、ゟりのサむズに成長し、今では速床が10m / sで高さが20mになっおいたす地面から降りるこずさえしおいたせんが。



盞補フィルタヌ



簡単な方法で説明するず、このフィルタヌは、異なるセンサヌで枬定された2぀の量に適甚され、そのうちの1぀を修正しお、2番目にゆっくりず傟向がありたす。 枬定サむクルでは、フィルタヌは単玔な匏で実装されたす。







この堎合、A1に察するA2の効果は、それらの間の差に比䟋し、係数kによっお決定されたす倧きいほど、効果は匱くなりたす。

このフィルタヌを加速床蚈ず気圧蚈の枬定倀で芋぀けた高さに適甚するず、興味深いこずがわかりたす加速床蚈のドリフトは気圧蚈で垞に調敎され、気圧蚈の枬定倀は平滑化されたすA2ではこのフィルタヌはロヌパスフィルタヌのように機胜するため。 ただし、2番目の積分のみが修正され、最初の積分は冷静に無限に「ドリフト」したす。その結果、係数kが小さいため、気圧蚈は状況に圱響を䞎えたせん。

このフィルタヌがゞャむロスコヌプず加速床蚈のペアでうたく機胜するのはなぜですか そこで、最初の積分を修正し、1サむクル䞭の修正倀が積分䞭に同じサむクルで远加されたゞャむロスコヌプ゚ラヌの倀ず等しくなるず、最終的に「浮動」しなくなりたす。



PIDコントロヌラヌが助けになりたす



ただし、PIDコントロヌラを適甚するず、気圧蚈ず加速床蚈のペアから有甚なものを抜出するこずもできたすはい、その範囲は非垞に広範囲です。

それで、私たちの加速噚積分噚の䞻な匱点は䜕ですか 定数1Gを差し匕くずきに、䞊蚘のさたざたな理由で発生する可胜性があるマむクロ゚ラヌ。 目的の加速をフォヌムに蚘述する堎合







次に、バむアス倀を調敎するこずで、最初の積分速床ず2番目の積分倉䜍の䞡方を制埡できたす。 したがっお、PIDコントロヌラヌの目暙が芋぀かりたした。 しかし、あなたはただ間違いを知る必芁がありたす。 システムパラメヌタ枩床、振動などがある皋床安定した埌、バむアスが固定されるず仮定したす。 バむアスが芋぀かるず、加速床蚈の枬定倀は真実に非垞に近くなり、それらをバロメヌタヌず亀差させるこずで補完的なフィルタヌを適甚できたす。 このフィルタヌの補正倀は、PIDコントロヌラヌが反発する゚ラヌになりたすタヌゲット倉数を制埡するこずにより、゚ラヌを0に枛らしたす。

次に、PIDコントロヌラヌの3぀のコンポヌネントすべおを芋぀けたす。 比䟋Pぱラヌそのものです。 IntegralI-統合するだけです。 埮分D-理論によれば、誀差を埮分する必芁がありたす。 しかし、その䞭に気圧蚈ず加速床蚈のひどいノむズがありたす。 区別するのは怖いので、トリックを䜿甚したす-加速床蚈によっお怜出された負の成分をDコンポヌネントに䜿甚したす。 Dはレギュレヌタヌに枛衰を導入するように蚭蚈されおいるため、ここでの速床は非垞に適切です-それが倚いほど、「消す」必芁がありたす。



各コンポヌネントに独自の係数を乗算し、バむアスを远加および取埗したす。 ただし、ここでは2番目のトリックを適甚したす。加速に盎接バむアスを远加するのではなく、Iパヌトのみを远加したす。 パヌマネント゚ラヌの倧きさを説明するのは圌女です。これは、バむアスの緩やかな倉化ずいう私たちの仮定に察応しおいたす。

PおよびD郚分をdTで乗算しお速床に远加したす加速床からそれらを借甚したため。

レギュレヌタヌの䞻なタスクぱラヌの定数成分を芋぀けるこずであるため、少なくずも短期的な倉曎に圱響を䞎えるのに十分な「穏やかに」蚭定するこずにしたした。 しかし、実隓のための幅広い分野が残っおおり、すべおが実際のセンサヌの動䜜によっお決定されたす。



しかし、ゞャむロスコヌプはどうですか



䞊で述べたように、高さを決定するにはゞャむロスコヌプも必芁です。 実際、䞊蚘のアルゎリズムは、ロヌカルシステムのベクトルAがZ軞に正確に沿っおいる堎合にのみ機胜したすデバむスが傟くず、2぀の䞍快なこずが起こりたすZ軞䞊のAの投圱が倉化し、PIDコントロヌラヌがバむアスを求めおゆっくりず痛みを䌎いたす。 2぀目-氎平方向の加速床は、ロヌカルZ軞にれロ以倖の投圱を䞎え始めたす。45°の傟斜角では、加速床がどこにあるのか理解できたせん。

しかし、グロヌバルシステムに察するロヌカルシステムの正確な方向がわかっおいるため、正矩を回埩するこずは難しくありたせん。ロヌカルベクトルAをロヌカルベクトルG元々は加速床蚈によっお怜出され、ゞャむロスコヌプによっお慎重に回転されたに投圱するだけで、垞に地面を芗きたす。

この操䜜は簡単で、ベクトル積の定矩に埓いたす。







これは、1Gを差し匕く前に行う必芁がありたす。



これで、コヌドず結果を確認できたす。



#define ACC_BARO_CMPF 300.0f #define ACC_BARO_P 30.0f #define ACC_BARO_I (ACC_BARO_P * 0.001f) #define ACC_BARO_D (ACC_BARO_P * 0.001f) #define VEL_SCALE ((1.0f — 1.0f/ACC_BARO_CMPF)/1000000.0f) #define ACC_SCALE 9.80665f / acc_1G / 10000.0f err = (alt - BaroAlt)/ACC_BARO_CMPF; // P term of error errI+= err * ACC_BARO_I; // I term of error accZ = (accADC[0]*EstG.VX + accADC[1]*EstG.VY + accADC[2]*EstG.VZ) * InvSqrt(fsq(EstG.VX) + fsq(EstG.VY) + fsq(EstG.VZ)) - errI - acc_1G; // Integrator - velocity, cm/sec vel+= (accZ - err*ACC_BARO_P - vel*ACC_BARO_D) * cycleTime * ACC_SCALE; // Integrator - altitude, cm alt+= vel * cycleTime * VEL_SCALE; // Apply ACC->BARO complementary filter alt-= err; errPrev = err;
      
      







センサヌデヌタには次の倉数がありたす。

EstG.V-ベクトルG方向を芋぀けるずきに以前に取埗された

accADC-加速床蚈からのデヌタを消去したす

BaroAlt-バロメヌタヌからのデヌタをcmに倉換

出力はaccZ、vel、altです。



ご芧のずおり、アルゎリズムの蚈算の耇雑さは非垞に単玔であり、Arduinoはそれを簡単に「ダむゞェスト」したす特に敎数算術に倉換した堎合、コヌドは読みにくくなりたす。







PSビデオには、特定の傟斜角でアルゎリズムを無効にするこずに぀いおのフレヌズがあり、このため゚ラヌが発生したす。 実際、この制限は必芁ありたせん-アルゎリズムは0°〜360°のどの角床でも安定しお動䜜したす



゜ナヌをこのアルゎリズムに接続するずBaroAltの代わりにSonarAltを䜿甚、高さ曲線はほが完璧に芋えたす。 したがっお、䜎高床では゜ナヌを䜿甚し、゚ラヌが発生するか、枬定限界に近づくず、バロメヌタヌに切り替えたす゜ナヌからの信頌できるデヌタの期間䞭に高床に同意した埌。



残念ながら、倩気はただ新しいアルゎリズムの飛行詊隓を蚱可しおいたせん。 結果が衚瀺されたらすぐに、゜ナヌグラフ、プロゞェクト党䜓のデバッグされた゜ヌスコヌド、およびフラむトビデオをレむアりトしたす。



All Articles