2012年11月2日金曜日

BLHELI 日本語マニュアル

QLOOKアクセス解析 自分の備忘録として、helifreaksの書き込みにあった、BLHELIの設定やモードの解説などを訳しました。

(BLHELI Ver,3の時の書き込みですので現在のVer,8では違っているかもしれません)

和訳と原文をアップします。

和訳は、英語力が乏しいため、意味不明の場所は勝手に意訳しているので間違っていたら指摘ください。

(以下の赤字の部分はmcpxの場合でwalkeraには当てはまりません)

ESCの初期化設定

ほとんどのESCは、接続時の偶発的な回転を防ぐために、ゼロスロットルキャリブレーションを行う必要がありますが、BLHeliは他のESCとは異なるゼロスロットルキャリブレーションを行います。
BLHeliは、始動前に一度ゼロスロットル、次にハーフスロットルまで上げて再びゼロスロットルに戻す必要があります。
アーミングシーケンスは次のとおりです。
1.送信機をゼロスロットルにする
2.フライトバッテリー接続 - >ビープ音3回
3.ハーフスロットル    - >低トーンのビープ音
4.ゼロスロットル     - >高音のビープ音   - > モーターの起動準備完了
3-in-1ボード(mcpxの場合)は起動時に0から50%以上にスロットルの値が瞬間的に変化したときにはソフトスタートになるので、ESCを初期化する時にスロットルホールドもしくはアイドルアップスイッチの使用ではなくスロットルスティックをお勧めします。
ソフトスタートになると上記のステップ3からステップ4に行く時間がソフトスタート分長く必要になります。


送信機でのプログラミング

他のESCのように、送信機を使用してパラメータをプログラムすることができます。
プログラムモードに入るには、アーミング・シーケンスのステップ3でハーフスロットルの後、ステップ4でフルスロットルにします。その場合送信機のスロットルカーブはフルスロットル時に100%にしておく必要があります。
ここでも、3イン1のソフトスタート・シーケンスを回避するためにスロットルホールドまたはアイドルアップスイッチの代わりにスロットルスティックを使用します。
後はプログラミングマニュアルの指示に従ってください。
BLHeliSetupツールでは、モータが停止した後、毎回このアーミング/プログラムモードシーケンスを必要とするかどうかを選択できます。
このオプションがチェックされ、 "すべてのスタート後アーミングを可能にする"ときは、モータが停止した後は毎回このシーケンスを行う必要があります。
このオプションがはずされていたら、バッテリーを差し込んだ後、このアーミング・シーケンスは最初の一回だけ行えば良いことになります。
ガバナーモードとは
BLHeliは、ガバナーモードの送信機モードがデフォルト設定になっています。(スロットルモード(非ガバナーモード)も選べる)
新たにファームウェアをフラッシュしたESCを単に接続しても、通常のコントローラー(スロットルモード)のようには飛びません。
ガバナーモードの設定に慣れていない人にとってガバナーモードで飛ばすためには、送信機に今までと全く異なるセットアップが必要です。
ガバナーモードではESCは負荷に関係なく一定のモーター回転を維持しようとします。
ガバナーモードのヘリは、正しく設定すれば、様々な負荷範囲、バッテリーの放電状態にかかわらず一定のパフォーマンスを維持します。
実際LVC(ローボルテージカットオフ)されるまで、パワー低下に気づくことが無く一定です。
また、ローターの過回転を防ぐためにも機能します。
ガバナーは、スロットルモードとはまったく異なる動作するため、ガバナーモードでの動作を適切に設定するためにいくつかのことを知っている必要があります。
ガバナーモードでは、スロットル開度がモータ回転数(ローター回転数)を決定します。
スプレッドシートは(6マグネット、9ソレノイド磁石モーターを64Tメインギアの8Tピニオンを想定して作成されています。9Tピニオンを装着した場合は、9/8倍してください)
hp05sだろうがhp07だろうがモーターパワーに関係なくスロットル値が同じ、たとえば68%ならば両方のモーターは同じ回転数になります。一方、hp05sではスロットル値が75%以上の設定回転数はモーターの能力から維持できません。
3-in-1のボードのバージョンや、モーターポートか直接マイコンから信号を取得するかどうかによって、設定回転数は、変化することに注意する必要があります。
V2ボードのモータポート信号は、低い周波数のPWM値を出力しているので、80%以上のスロットル値まで設定することができます。

hp07(hp06v2)または同等のモーターを使用するときは82%以上の設定回転数では使用することができません。
V1ボードのモーターポートは約60%のスロットル開度でのみ使用できるので、直接マイコンから信号を取得することをお勧めします。
V2ボードのモータポートの信号を使用する場合は、ほとんどのESC入力がハイインピーダンスなことから、モーターポートとアース間にプルダウン1Kオームの抵抗が必要です。

ヘッドスピードの決定はどうすればいいか?
一般的には、そのモータの能力から決まる最大ヘッドスピードの90%で始めて、次にどのくらいハードに操縦するかや、単に好みに応じてだんだん低下させていきます。
これは、一定のヘッドスピードを維持するために、負荷が高くなった時に余力を持たすためです。
あなたの好みのヘッドスピードよりすでに十分低いローター回転にもかかわらず一定回転を維持できないなら、ガバナーモードのフル機能を利用していないことに気付くべきです。ピッチを減らすかまたは高性能のモーターにアップグレードしてください。
シュテフェンの書き込みでは、以前のバージョンに基づいているため、スプレッドシートが66Tメインギアを想定していることに注意してください。
これは、66を掛けて、64で割ることによって修正することができます。

- hp07/hp06v2は、80から84パーセントがmax
- hp05sは70から74パーセントがmax
- c05mは(推定、試していない)60から64パーセントがmax



つまり、hp07を70%スロットル開度で設定した場合、基本的にhp05sをぎりぎりのパワーで使うよりフライトの最後まで一定のパワーで制御しやすくなります。しかし、その結果フライト時間は短くなります。(どのくらい短くなるかはコントローラーが一定のヘッドスピードを維持するためにどれだけモーターに負荷をかけるかによります。)

ガバナーモードには、次の3つがあります。

1.送信機モード

常にスロットル信号を読み取り、それに対応するモータ速度に変換するのが送信機モードです。
このモードではアイドルアップで一定回転を保つため、スロットルカーブを水平にする必要があります。さもないとヨーヨーのように上がったり下がったりを繰り返します。この原因はESCが(ESCはガバナーのスムーズな実行のための洗練されたアルゴリズムを実行するため)要求ヘッドスピードに合わせてモーター回転を変化させるからです。
しかし、離陸と着陸のためにノーマルモードでは線形スロットルカーブを使いますが、スロットル開度を変化させるとモータースピードが変わるというガバナーモードを意識して使う必要があります。

2.アームモード

リアルタイムにヘッドスピードを決めるスロットル値を読み取る代わりに、アームモードはアーミングシーケンス中に読み込んだ最大回転数にセットされます。武装した後は、スロットルモードの設定でも約20%のスロットル値以上でガバナーモードに切り替わります。(BLHeli将来のバージョンでこの値は変更される場合があります)
20%以上の値のスロットル変化はESCによって無視されます。
適切にアームモードを設定するには、ノーマルモードでは0-20-20-20-Xに設定を行います(Xは設定したいヘッドスピードに対応したスロットル値です)。アイドルアップのスロットルカーブはすべての値が20%以上である限り何でもかまいません。それについては後で話します。アームモードでESCをアーミングするために、ストットルスティックをハーフスロットルではなく1秒間フルスロットルにし、ゼロに戻します。これはESCがスロットル値Xを読み取るためです。モータを始動するためにはアイドルアップモードに切り替えてゼロピッチ付近にスティックを移動し回転が安定するまで待ちます。
アームモードではアーミングにスロットルホールドまたはアイドルアップスイッチを使用しないでください。
3-in-1のボードはゼロから50%以上にスロットル値が瞬間的に変化した場合にソフトスタートを行い(V1で5秒、v2で10秒程度)待たなければならなくなり、正しいX値のセットができなくなります。

テールミキシングについて
なぜテールミキシングがガバナーモードに必要なのか?
これは、テールの微調整のためです。テール?、我々はメインモーターの話をしていませんか?
これからは背景情報です。ヘッドロックジャイロは一種の負帰還制御システムです。負帰還制御は現在の値を読み取って目的の値とどのくらい離れているかを見てそれを修正するシステムです。例えばかなり離れているとより多くの修正が必要であり、その逆の場合は少しで済みます。それゆえ "負帰還"と言われます。ヘッドロックジャイロのケースでは、テールを維持するためテールモーターのパワーを調整する必要があります。理論的には、ジャイロがその仕事をやるはずです。
問題は、負帰還システムが常に(私は上記でどのように動作するか述べましたが)遅延や不具合の影響を受けやすいということです。
ミキシングで十分近い値まで修正し、ジャイロにが残りをやらせるほうがはるかに正確に制御できます。
ホイールアライメントが狂って片側によれる車を常にハンドルを修正しながら車をまっすぐ走らせる時を想像してください。急発進や急ブレーキで別の力が働いた時何が起こりますか?
あなたの手が素早く十分である場合は、車が直進を保つことができるかもしれません。しかし、すこしでもステアリングホイールのグリップを失うとどうなりますか。それはヘリのテールヘッドロックジャイロでも同じ状況です。メインモータでテールを駆動するのとは異なり、メインモーターのパワーを上げてもテール推力を上げることはできません。これがメインモーターパワーに応じてテールモーターパワーを調整するテールミックスが3-in-1のボードに内蔵されている理由です。
しかしスロットルカーブがフラットの場合は、ヘッドロックジャイロが常にメインモーター負荷に対応するためにテール電力を変化させる必要があります。スロットルモードではテールジャイロは問題なく作動しますが、ガバナーモードではカーブが水平のためにホバリング時に負荷に対応したパワーがテールモーターに必要になります。
つまり、動作範囲がはるかに広くなっていることを意味します。安定したホバリングを行うためには、ピッチ変化に対応してテールモーターのパワーを合わすためにスロットル開度を減らす必要があります。テールのモーター駆動でハンチングが起きやすいのはこのためです。振動、不具合、ぐらつきなどがハンチングの原因になるため、時間をかけて回転部品のバランスを完璧にとって振動を減らすことも大切ですが、根本原因はテールミックスがなくその修正のためにジャイロが常にテールパワーを増減していることです。私たちはゼロ付近ピッチ(低負荷)でスロットルカーブをV字に減らして低負荷時にスロットル信号を減らすことでテールモーターの回転も下げることができます。もちろん最終的なテールのコントロールはジャイロが行いますが、ゼロピッチ付近の修正を少なくする事になります。それがハンチングを防ぐことにもなるのです。

私がV字アイドルアップスロットルカーブを使ってからは、どんなにサーボが杜撰で、ローターヘッドのバランスがとれてなく、フレームやキャノピーやスキッドが割れていても、hp-07搭載ヘリでハンチングを経験したことがありません。
最初に100%フラットカーブで設定したときは、部品は新品でしたが、4つのうち1つのキャノピーの固定金具が受信機ボードの上にかぶせたESCのために固定していなかったことがハンチングの原因になりました。(この辺の真偽は怪しい)

悪名高いハンチング以外に、V字型のスロットルカーブは、ピッチを上下させた場合のテールの安定に役立ちます。フラット100%スロットルカーブだとピッチ上下の際にジャイロがテールパワーを上げたり下げたりする必要があり結果十分な安定を得ることができません。負帰還システムでは完璧に遅延なしで動作させることができないからです。しかしV字型曲線はジャイロの負担を軽減しテールを安定させることができます。
テールミキシングは、メイン/テールモーターのパワーと効率等、多くの要因に依存しているのでアームモードで100-75-50-75-100カーブで始めてV字型曲線を仕上げるのに試行錯誤が必要になります。
もう一度言いますが、TXモードでV字カーブを実行しないでください。
左にテールが振られるなら、そのポイントの近くのスロットル値を下げるか、または緩やかな勾配でそのポイントの下のスロットル値を増やします。右に振られる場合はその逆です。試行錯誤が必要ですが、V字カーブの方が(アームモードでの話ですが)常にフラットカーブより良い結果が得られます。しかし、ガバナーモードを無効にする20パーセント以下の値にはしないでください。

3.セットアップモード

BLHeliバージョン3はセットアップモードと呼ばれる新しいモードのオプションを持っています。このモードは、ESCをアーミングするときに余分な作業をせずにアームモードと同じ動作をします。アーミングシーケンスで最大値を読み取る代わりにプリセット値(BLHeliSetupツールで設定します)がセットされます。送信機モードやスロットルモードのやり方でアームモードの設定ができます。しばしばヘッドスピードを変更することがない人のために便利です。

ガバナーモードとLVC(Low Voltage Cut)
ガバナーモードを正しく設定すればLVCまで気がつかずに電圧減少に気づかずに飛ばすことができます。送信機モードの場合、在来の3-in-1のLVCは非常にうまく機能します。LVCが動作した瞬間にESCはスロットルを低回転まで下げます。
しかし、アームモードまたはセットアップモードの場合にはESCはスロットル信号が20%以下に低下するまで反応しません。このスロットル値は、将来的に変更されますが、スレッドで述べたように、少なくとも0%よりうまく働きます。

Arming ESC
BLHeli has a different arming sequence than most other ESCs. Most ESCs need to see a zero throttle before it'll start the motor to prevent accidental startup on plug-in. BLHeli needs to see a zero throttle first, then a part-throttle, and then another zero throttle, before it'll start the motor. Here's the sequence of events:
1. Zero throttle on TX.
2. Plug in flight battery -> 3 beeps.
3. Mid-throttle -> low-tone beep
4. Zero throttle -> high-tone beep -> ESC is ready to start motor.
I highly recommend using throttle stick instead of throttle hold or idle-up switch to arm ESC because when 3-in-1 board sees a throttle jump of more than 50% from 0 on startup, it'll trigger its soft-start procedure. That means at point 3 above, throttle value varies depends on how long you wait before going to step 4. As you read on, max thorttle value seen at point 3 is very important. You don't want it random.

TX Programming
Like most ESCs, you can program parameters using TX. To enter program mode, follow steps above for the arming sequence but use full-throttle in step 3 instead of mid-throttle. Make sure your throttle curve runs up to 100%. Again, use throttle stick instead of throttle-hold or idle-up switch to avoid 3-in-1's built-in soft-start sequence. Follow instructions in the programming manual.
From the BLHeliSetup tool you can choose to require or not this arming/program-mode sequence after motor stops every time. When "enable arming after every Start" option is checked, you'll have to go thru' the same sequence again every time after motor has stopped. When this option is unchecked, you'll go thru' this arming sequence only the first time after plugging in the battery.
Governor modes
BLHeli comes default with governor TX mode. Don't just plug in the newly flashed ESC and expect it to fly just like throttle mode. It needs a totally different set up on the TX. For those who aren't familiar with governor mode operation, this is when the ESC tries to maintain a certain motor speed regardless of load. Governor mode on heli main rotor is good for its predictable and consistent performance thru' various load range and various discharge state when set up properly. In fact, the performance is so consistent that you can easily not notice power drop towards end of charge until it hits LVC. It's also good for not over-spinning main rotor on descend which often triggers wobble on a not-so-perfect rotor head.
Since governor operates totally different than throttle mode, you need to know a few things to set up governor mode operation properly. In governor mode, throttle value determines targeted motor speed (thus headspeed). This spreadsheet cross-references throttle value to headspeed (assuming 8T pinion on 64T main gear with a 6-magnet 9-solenoid motor, X9/8 if you run 9T). That means regardless of power level of your brushless motor say hp05s vs hp07, setting a throttle value of say 68% gives you the same motor speed for both motors. On the other hand, hp05s for example cannot achieve speed set by throttle value 75% or higher so note that throttle value may not be accurate depending on which version of 3-in-1 board and whether to get signal from motor port or direct MCU output. V2 board runs a lower frequency PWM motor port signal so it's usable and can resolve up to 80%+ throttle value. If you run hp07 (hp06v2) or lower motor you cannot reach target speed set by 82% or higher anyways. V1 board however can only resolve throttle to about 60% so in that case I highly recommend running signal directly from MCU output.
That said, if you run motor port signal from v2 board, most (if not all) compatible ESCs run high-impedance input which means you need to run a pull-down 1k ohm resistor across motor port and ground. This is best done on the ESC side for clean install.
How do I know what headspeed to start play with? In general, start with max 10% throttle value lower than what throttle value that results in max achievable headspeed for that motor then lowers it according to how much bogging on hard maneuvers or just according to your liking. This in general gives enough headroom for ESC to increase power on high load situation to maintain headspeed. If you get bogging but feel like headspeed is already too low for your taste, of course you can keep that headspeed without going any lower, but beware that you're not utilising the full capability of the governor mode. Either reduce pitch travel (reduce load) or upgrade to a hotter motor. Here's a little trick I used to easily test different headspeed in TX mode. Follow this trick, you'll be starting with 50% throttle which is about stock and you can get a feel of what headspeed is like before settling with one. Note that in that post the spreadsheet was based on an earlier version from Steffen which incorrectly assumed a 66T main gear. You can correct by multiply it by 66 and divide by 64. Here're a few common #s:
- hp07/hp06v2 maxes out at 80-84%
- hp05s maxes out at 70-74%
- c05m maxes out at (estimated, haven't tried) 60-64%
That means when I set my hp07 to run 70% it's basically like running an hp05s except better bail-out power, less bogging, and more consistent power towards end of flight, in return for a little shorter flight time (how short depends on how often I load up the motor and requires ESC to maintain governor headspeed).
Governor TX mode
There are three ways to run governor mode. Default is TX mode which constantly reads throttle signal and converts to its corresponding motor speed. In this mode a flat throttle curve for idle-up mode is required to maintain a governed headspeed or else you get a yo-yo effect because ESC tries to slowly (because ESC runs a sophisticated algorithm for smooth governor performance) vary motor speed to a new desired headspeed. You can still run a linear throttle curve in normal mode for take-off and landing, but be aware of the governor mode operation where it'll not change motor speed instantly to throttle change.
Governor arm mode
Instead of reading real-time throttle value for targeted headspeed, arm mode sets targeted headspeed by reading the max throttle seen during arming sequence. Once armed, the ESC will run in throttle mode until about 20% throttle (may change in future BLHeli versions) and switch to governor mode for the targeted headspeed. Any real-time throttle change above 20% will be ignored by the ESC. To properly set up arm mode, Set up normal curve to 0-20-20-20-X where X is your desired throttle value corresponding to your target headpseed. Throttle curve for idle-up can be anything as long as all values higher than 20%. Will talk about that later. To arm ESC in arm mode, move throttle stick to full up instead of part-throttle for about 1 second and then back to zero. This will make the ESC reads throttle value X. To start motor, flip to idle-up mode and then move throttle stick to just below zero-pitch and wait for spool up. Do not use throttle hold or idle-up switch to arm ESC in arm mode. The problem is that when 3-in-1 board sees a sudden jump of throttle value from zero to more than 50%, it'll trigger its soft-start procedure. That means until you wait for soft-start to finish (about 5s for V1 and 10s for v2), the ESC will not see the targeted throttle X value to correctly set governor headspeed.
Tail-mix
So why all these extra to run governor mode? This provides opportunity to fine-tune tail-mix for the 3-in-1 board. What tail, aren't we talking main motor? Here's some background info. A heading-hold gyro is a negative feedback control system which like any negative feedback control system reads a certain value to see how far it's off from its desired value and then corrects it. If too far left for example, a more right is required and vice versa and hence the name "negative feedback". In the heading-hold tail gyro case, it needs to correct tail motor power to maintain heading of the tail. Theoretically, we can just feed tail motor an arbitrary amount of power and let the tail gyro do its job to vary it and maintain heading. The problem is that a negative feedback system is always susceptible to delay and glitches (consider how it works as I mentioned above). It's much better to start feeding the tail with close enough power and let the gyro do the rest. In an analogy, you keep your car driving straight on the road by constant correction on the steering wheel (like heading-hold gyro). You can have your wheel alignment way off that the car always pull to one side yet you can still keep the car going straight by constantly pulling the steering wheel. What happens when you accelerate or brake hard suddenly and generate different pull on the steering wheel? If you hands are quick enough you may be able to keep the car going straight. What if you lose grip of the steering wheel for a moment? You get the idea. It's the same situation with heading-hold gyro for heli tail. Unlike a main motor driven tail, you don't get increased tail thrust by increasing main motor power. That's why a tail-mix is built-in the 3-in-1 board to apply tail power proportinal to main power. With a flat throttle curve for the main motor however, heading hold gyro needs to constantly vary tail power a lot for the corresponding load on the main motor. With stock power setup, tail gyro can handle it no problem. Remember with a much higher power setup, you still require similar amount of power to hover. That means the operating power range is much wider. With a matching power tail motor, that means the tail needs to throttle down much more to maintain hover. This is why 120SR tail motor and up are more susceptible to the infamous CW-1/4-turn kick where the tail gyro loses its ability to substantially reduce tail power even in just a short moment. Vibes, glitch, wobble, etc. can confuse the tail gyro for even just a moement and you get the CW-1/4-turn kick. Sure enough if you go the extra mile to make sure every rotating parts is perfect to prevent vibes you're less likely to get the CW-1/4-turn kick. However, the root cause of the problem is still because tail mix is way off and the tail gyro has to constantly reduce tail power to correct. What if we run a V-shaped throttle curve to reduce throttle signal intended to the main motor to the 3-in-1 board around zero pitch (low load)? The 3-in-1 board will reduce tail power around zero pitch. Of course the final tail power is still controlled
by the heading hold gyro, but the tail gyro needs not to significantly reduce tail power all the time around zero pitch and that means any vibes or glitch will less likely trigger a CW-1/4-turn kick. Ever since I run less than 100% idle-up throttle curve, I've never seen a single CW-1/4-turn kick on my hp07 bird no matter how sloppy my servos are, or how unbalanced my main rotor head, or how broken my way-overdue frame, canopy, and landing gear are. When I ran 100% flat idle-up throttle curve at first with my hp05s setup when virtually every part was new, any tiny bit of details like un-hooking the canopy from 1 of the 4 canopy posts or exact location of the ESC over the 3-in-1 board would trigger a CW-1/4-turn kick. Besides the infamous CW-1/4-turn kick, a V-shaped throttle curve also helps tail hold during pitch pumps. A flat 100% throttle curve means during pitch pumps from hover, tail gyro needs to transition quickly from significantly reduce tail power to significnatly add tail power, and may result in not enough tail thrust doing pitch pumps, even though tail motor have enough power capability. Like any negative feedback control system, you cannot expect it to perform perfect with no delay. A V-shaped curve in this case means tail power requirement is better estimated and tail gyro needs not to do as dramatic a job to hold the tail.
Since tail mix depends on a lot of factors like main/tail motor power and efficiency, etc., you'll need trial-and-error to tailor your own V-shaped curve. Start with a 100-75-50-75-100 curve in arm mode. Again, don't run V-curve in TX mode. If you notice tail-kick to the left, reduce throttle value near that throttle point or increase throttle value below that point for a gentler slope, and vice versa. You'll need lots of trial-and-error but the bottom line is a V-curve (again, in arm mode) is always better than a flat curve. Also, do not run any throttle point below 20% which triggers ESC to disable governor mode.
Setup mode
BLHeli version 3 up has a new governor mode option called Setup mode. This mode has the same operation as arm mode but without the extra work to arm the ESC. Instead of reading max throttle value during arming sequence, ESC takes a preset value (only settable thru' BLHeliSetup tool). That means you can arm ESC in arm mode like you do TX mode or direct-throttle mode. This can be handy for those who don't need to change targeted headspeed often.
Governor mode and LVC
Since governor mode works so well that when set up properly you get consistent power throughout entire battery charge so good that you won't notice power drop until LVC. If you run governor TX mode, stock 3-in-1 LVC works very well. As soon as LVC kicks in, ESC drops throttle to target a lower headspeed reflected by the reduced throttle. However, if you run governor arm mode or governor setup mode, ESC doesn't respond to reduced throtttle from 3-in-1's LVC until it drops out of 20%. This throttle value may be changed in the future but at least it works better than 0% in the beginning like I mentioned in this thread for more background reading.

2 件のコメント:

  1. ありがとうございます~

    ぼくもこのマニュアルは目にしたことがあったのですが、どうしてもテールミキシングのところが理解できたなかったんです。
    この訳でようやく理解できました!

    いつもTXモードでしたが、今度アームモードでスロットルカーブをV字にして3in1ボードの賢いテールミックスを試してみたいと思います!

    返信削除
    返信
    1. kanta coolwind様、どうも
      私も意味不明のところはテキトー意訳ですので、あってるかどうか?

      是非試した感想教えてください。

      削除

誰でもコメントできるように設定変更しました。