2019年のパワーメーター測定システム3か月たっても、未だ実走行での安定計測できません。
原因は、計測パラメータが10chと多い点と左右クランクからのXbee通信のデータ落ちと結線の不安定性です。受信システムも不備が多く計測データをまとめるのに数時間かかってしまうという不便が開発の遅延を招いております。
信州松本でロードバイクに乗れるのもあと2週間しかありませんので、焦ってます。
SeatTube型のパワー再現性の精度を検証するのは、実走行実績をかさねないとダメなので2020年にまわすとして、計測システムと初期結果は、10月末に完成させたいところです。
●パワーメーター2019活動で得た知見
①Xbeeでは115200bps通信でデータの信頼性を確保するのは難しい。
●原因1:電波の不安さ
電波で通信するので、アナログですのですべての環境変化が通信へ影響します。【距離・回路のノイズ・障害物・電波干渉】など諸々が影響して有線のような安定した通信はできません。現在、HardWareフロー制御をしているのですが、それでも、データ落ちをしてます。Xbeeの通信バッファが256バイトしかないので25バイトのデータなら10回分しかバッファできません。現在6msecで送信してますので60msecの遅延までなら何とかバッファしてくれますが、0.03%頻度でデータ落ちが発生しているので、未だダメだということです。
➁多CHデータを同期させてひとまとめにするのは難しい
マイコンで同時に測定してデータをPCへ転送するのですが、基本的に順番で処理していくので処理によって遅延時間が発生します。単純にAD変換だけで多CHを測定するなら簡単なのですが、パワーメーター2019システムでは、3個のIMU、3個のひずみブリッジから10CHのデータを収集するシステムです。
デバイス | 条件と課題 | |
シリアル1 | 右クランク用Xbee Coordinator | 115200bps Hardwareフロー25バイト 6msec周期(トルク、IMUからの回転角度、タイムスタンプ)
スループットはここで計算するとhttps://www.fukufukudenshi.jp/v2/RS-232C/JikanKeisan/ 25BYTE、115200bpsの 課題2:6msecサンプリングを115200bpsで転送する仕様だとXbeeが厳しいのかデータ落ちがゼロにならない 課題3:当初はXbeeを使わないのでマイクロSDカードでデータをログしようとしたが、マイクロSDでもデータの切れ目がでてしまうので、あきらめた経緯がある=>再度検討してもいいかもしれないがデータ収集が面倒 |
シリアル2 | 右クランク用Xbee Coordinator | |
I2C | LSM9DS1を使って左右クランクのネオジマグネットの磁界をセンシングして、クランクの上死点センサとして使用 | LSM9DS1のMag Mg_xとAcc Ax,Ay,Az 4Ch |
ひずみ | SeatTubeの曲げモーメントブリッジを AD7193で高精度AD変換 |
24ビットシグマデルタICのためサンプリング遅い 200Hz程度 =>当初4Chを想定していたが、現在1ChだけなのでLT1167でアナログアンプで代用したほうが良い |
③配線コネクタ類、センサ取り付けの実走行での振動対策が十分でない
課題1:USBシリアルコネクタの接触管理
母艦1、XBEE受信基板2でマイクロUSBコネクタ接続があるが時々接触不良
コネクタを廃止してはんだ付けにしたい
課題2:XbeeCorrdinatorの取り付け位置が決まらない
クランクの近くに裸で設置すればいいのだがかさばる基板なので収まりが悪い
●課題解決の検討
①6msecサンプリングは必要か
クランクトルクと回転角度の時間分解能がパワー精度にどう効くのか?
6月29日にパワー測定精度の計算を行った結果では、仕事量は、左右別のパワー表示なら180度ごとの表示なので、1度刻みの積分と30度きざみの積分もSINカーブ的なトルク変化なら誤差無しという計算結果で、仕事量は、サンプリングが30度=>150rpmで33msecでも大丈夫という結果
しかし、半周期の時間精度が厳しくて、±2msec以内の時間計測誤差でないと1%以下精度になりません。
●結論
①左右のパワー値を精度よく得るためには、180度周期で精度管理が必要
➁仕事量のサンプリングは、180度周期なら33msec以内ならOK
③半周期測定時間だけ高精度に測定しないといけないので、
・割り込みタイマーで時刻を測定するか
・母艦のサンプリング周期をあげて上死点センサの測定精度をあげるかが必要(IMU速度)
●以後
上記結論の➁③の確認作業を行う
1:LSM9DS1だとI2Cでサンプリング時間が遅いので、
アナログ磁気センサでADCしたほうが時間誤差は少なくすむはず。
もっと単純に、リードスイッチを左右クランクの上死点センサにすればいい話しですが、センシング距離が短いので取り付け位置が厳しいのが欠点です。
2:クランクのサンプリングを遅くしてXbeeの通信速度を57600bpsに落としてデータ落ちの頻度が改善するか実験してみる
57600bps 25byte転送時間が4.34msec計算なので
10msec周期くらいで転送してみます。
3:上記結果で母艦基板の構成を大幅に変更して
Xbee2個を母艦でシリアル受信可能にすることにトライします。