2019dj1711572002右クランクの位相ズレが大きいので、あの手この手と4M変動を調べあげてみました。●解析結果1IMUは、速度上がると(60rpm)以上で、ノイズが多くなるが、位相ズレの原因ではない。➁IMUとトルク波形は、同期していて、位相ずれしていても、同じずれ方をしている3SeatTubeで測定している上死点基準で、左右クランクとも位相ずれが発生している。4位相ずれの傾向が一定でなく、データ時間軸に一定の掛け率をかけても位相が合わない。●割り込みTIMERのクロックについて調べた一般にマイコン内蔵のクロックは精度が悪く、精度が必要な場合は、外付けの水晶発振器をつけること言われていますが、精度が悪くても一定なら、時間軸の掛け率を補正すればいいだろうと楽観視していたのですが、具体的なクロック精度を測定してみて、一定なのかを検証しました。●タイマーの時間精度の基礎知識1内蔵タイマーの精度が良くない原因Renesusのフォーラムに大量にマイコンのクロック精度の話題がでてました。マイコンユーザーにとって大きな課題であることが分かります。私はmbedとarduinoを使っているのですが、PICとかRXを使うユーザーは、プロの人が多いので、いい加減に作るわけにはいかないのでとことん詰めているんだと思います。https://japan.renesasrulz.com/cafe_rene/f/forum18/2707/threadクロック精度について考察がありました。ここで、ppm精度で表現されてましたので、時計の精度と比較してみました。PPMの時間精度についてはこちらがわかりやすく解説されてました。年差5秒の時計は高級腕時計なら当たり前ですが、これが0.15ppmだということです。それに比べて、デジタル機器に使われる水晶クロックが高精度で±20ppmですので、いかに腕時計の時間精度がいいかわかります。●時間測定にはオシロを使う以外にないがオシロの時間精度を確認しました。これの精度については、こちらが詳しく実験されてます。月差1分と性能の悪い時計程度でした。このことから、私がパワーメーターでもとめている時間精度が高級ウォッチ並みであって、並み居る電子機器では実現できてないレベルの高精度だったということです。数万円の腕時計に負けてしまう電子機器のほうが品質が悪いと思うのは私だけではないと思います。量産の都合上、コストをかけてもしょうがないところなのでしょうけど、一般ユーザーからすれば、おかしいなと思う点です。●マイコンタイマー割り込みの測定方法オシロの精度がそこそこだということで、10msec周期でオシロの周波数カウンタを使って各種CPUの精度測定してみました。割り込みを10msecいれて奇数複数回でオンオフをピンにDigitalOutして、オシロで計測します。オシロは、周波数カウンタをONにして目視でばらつくか見てます。L432KCは、0.0114%と悪いです。いずれにせよ、数分間カウントしていてもばらつきが全くありません。周期がずれていても、ばらつかないので後で補正がききます。➁STM32F103T8C6のばらつき・母艦用に作っているSTM32F103T8C6ばらつくので、3σで±0.035%ばらついて一定値になりません。●右クランクについているSTM32F103T8C6問題のCPUですが、やはり相当ばらついてました。3σ±0.058%●対策案1案:CPUのクロックがあてにならないので、外付けクロックにするのか=>RTC内蔵している場合は32.768KHZ水晶を外付けにして、ボタン電池も接続してRTCにするという機能をもっているマイコンが多くありますが、RTCは、タイマー割込みの精度を上げられかどうかわからないです、ライブラリーをみると日付年月日の保存機能程度しかみられません。2案:タイマー割り込みを外付けクロックで制御する。=>10msec波形を高精度の発振器で作ってマイコンにいれてピン割り込みをかける方法です。マイコンのプログラムのクロックがばらついているので、そのばらつきが大きい場合は、いくら精度のよいタイマー信号をいれてもばらつきがおさえられないかもしれません。3案:STM32F103T8C6をやめて、外付けクロックで、精度よく管理できるマイコンに変更する●以後2案でやってみて、だめなら、マイコン総入れ替え基板作り直しとなります。位相ずれなおせるか楽しみです。コメントをキャンセルメールアドレスが公開されることはありません。記事再生が慣れてきたので、開発活動を主にできるようになりました。本日は、踏力ベクトル計測の検討です。