Paso 5: 浮遊コイルの固定
ステップ3と4では、電磁石を指でつまんで磁気浮揚を行いました。 ここでは、それなりに見栄えの良いフレームを作り、これに電磁石を取り付けます。
フレームに磁化しやすい鉄製の部品を使うと、いろいろ面倒なことになります。 木材、プラスチック、アルミニウムなどであれば心配ないですが、ここでは質感および入手と組み立ての容易さの観点から、ステンレス製の金具とボウルを用います。 なおこれらのステンレス製品は、程度の差はあれ磁化します。
組み立てたステンレス製のフレームに電磁石を取り付けて空中浮遊を試したところ、浮揚物体は空中で安定せず、上下に振動するようになりました。 またこの振動は徐々に大きくなり、最終的に床に落ちたり、上方の電磁石に吸いついたりします。
そこで思い出されるのが、ステップ3の浮揚試行で指先に感じた軽い振動です。 を抑えていたと考えられます。 電磁石を指でつまんだ試行では、指がクッションの役目を果たして振動を吸収し、浮揚物体の振動 (もしくは共振) しかし、ステンレス製のフレームと電磁石との間にはそうした緩衝材はありません。
したがって、何らかの緩衝装置を追加すれば、浮遊が安定するかもしれません。 を実現できないか試してみました。 そこでまず、物理的な材料を使わずに、プログラム上で仮想的な緩衝装置 (ダンパ) しかしこれは予想外に難しく、安定的な浮遊はなかなか実現できませんでした。 (下記のVIDEO (5) の冒頭では、物理的ダンパなしで安定的な空中浮遊が実現できていますが、これはレア・ケースです。 )
原因を分析したいところですが、Arduinoでシリアル通信を行うと処理速度が低下するため、実際の状態はよくつかめません。 また、浮揚の制御で生じる磁場の影響がセンサの出力に混入するため、浮遊物体の位置や動きの正確な評価も困難です。 そこで、状態と制御のモデルを作り、Excelのスプレッド・シートでシミュレーションを行いました (*). その結果、下記の傾向を確認することができました。
(*) シミュレータの作成は簡単ではないので詳細は割愛します。 電磁石が作る外部磁界のモデルをwebで調べましたが適当なものはなかなか見当たりませんでした。 最終的に参照したのは次の2つの解説です (解説A、解説B) 。
()1) 浮遊物体と電磁石の距離を正確かつ高頻度で計測できるならば、単純なPD制御をプログラムに書き足すことで振動を抑制できる
の影響を受けるため、浮遊物体の位置の正確な評価は容易ではありません。 しかし、磁気センサの出力値は、電磁石が作り出す磁場の変化 (ノイズ)
(2) このノイズの変化は周期性を持つが、そのパターンは諸条件に依存するため、この変化パターンを利用してノイズを除去するのも容易ではない
(3) このノイズ込みのセンサ出力を移動平均のような単純な方法で処理しても、浮遊の振動を抑えるのは困難である
(4) 物理的な緩衝材 (ダンパ) は、たとえそれが弱くて貧弱なものだとしても、振動による浮遊の失敗を劇的に改善する
(5) 処理周期が1ミリ秒程度の場合、処理時間の短縮化は非常に重要である(上のグラフ参照)
以上のシミュレーション結果を受けて、低反発のウレタン・シートの小片をフレームと電磁石の間に挟みました。 さらに、PD制御に基づく下記のサンプル・プログラム 「levitate_with_PD.pdf」 の内容をArduinoに新たにアップロードしました。 その結果、しつこい振動が消え、安定的な浮遊を実現できました。
VIDEO(5): ステンレス製フレームの下での磁気浮遊