【パワーメーター2019】VBAでトルク波形解析Pgm作った<WorksheetFunction教訓得た>

左クランクの基板は、3.7VPO電池用電源をTIのTPS63000にすることにして実装をこつこつとやってます。7月末から8月お盆過ぎまで、家事等が多く活動のDUYTが低くなります。更に、9月8日の信越五高原ロングライドに参加する予定で練習に集中しないと完走できそうもないので、練習を最優先させます。

●波形解析方法の検討
トルク波形とフレームに各部ひずみ波形の相関係数をとって
相関係数が高いひずみ波形がトルクと比例関係が強いので
それを採用していくという考え方で一旦、解析してみます。
VBAで解析用プログラムを作ってみました。

●VBA波形解析Pgm
やり方:CPLTでログした波形データを各CH間で相関係数を
求めます。何故VBかとういうと、EXCELの関数を
VBAプログラムで使えるので、自分で苦労して関数を
作らなくて済むのと、EXCELの関数は、最速の計算速度
を提供してくれますので、自分でやるよりすべて良いです。
VBAでなくてもVB.NETでも対応できてますが、私が未だVB.NETに慣れないので、しばらくは、VBAメインで使います。
MSの説明
https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheetfunction

EXCEL関数をVBAで使う使い方はこちらのHPが有名ですプロの方が
長年にわたって気づき上げたHPで、網羅的にVBA解説されてます。
判り易さを一貫しているので、VBAプログラムを作成するときは、こちらを
何回も利用させていただいております。

http://officetanaka.net/excel/vba/speed/s9.htm

TNAKA様のHPで不足した場合は、詳細な解説のHPを探します。
https://www.moug.net/tech/exvba/0100035.html

WorksheetFunction.correl(range(cells(1,A),cells(x,A)),range(cellls(1,B),cells(x,B)))

VBAのソース VBA-CPLT_Correl

UI:CPLTで波形を見ながら、範囲値をVBAに記入して、その範囲内の
相関係数を計算させます。
CPLTのグラフのカーソルで比較したい波形のデータ範囲を決めてから
CPLTのデータ番号をVBAプログラムのフォームへ手入力します。
データ範囲をいれたら計算ボタンを押せば、Max,Min、相関係数がでます

おかしい?? SeatTubeねじり波形とトルク波形が相関1となってます。
確かにピークの波形はぎざぎざ部分も一致してますが、谷側の形が違うのでこの相関係数1はおかしいですので、
=>どうもworksheet function で関数はトラブルが多いようで、ググると大量にでてきます。 関数パラメータが仕様通りになっているかチェックしてみます。
▼はまった事例
https://www.vba-ie.net/qanda2/qanda.cgi?mode=viewthread&id=24

●correlの仕様
MSサイトから確認
https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheetfunction.correl

https://support.office.com/ja-jp/article/correl-%E9%96%A2%E6%95%B0-995dcef7-0c0a-4bed-a3fb-239d7b68ca92

型定義がDOUBLEにしてなかったのが原因でした。DOUBLEに直したらEXCELの手計算と同じ値がでたので、バグFIXしたと判断します。WorksheetFuncitonを使うときは、使うFunctionの仕様を入念にチェックしないと関係ないところでいろいろなエラーが発生してしまうという教訓です。ということでデバッグ後の計算結果は

●計算結果  踏み始め3波形のサンプリング 右クランクのみ

相関係数
1-2ch SeatTube 曲げ波形 vs  SeatTubeねじり波形 -0.9672
1-3ch SeatTube 曲げ波形 vs  クランクトルク波形 0.9255
2-3ch SeatTube ねじり波形 vs  クランクトルク波形 -0.8333

結果1:SeatTubeの曲げとねじりの相関が高い 互いに影響している
結果2:クランクトルクと曲げのほうがねじりより相関高い
=>波形をみるとねじりは谷ができてないので、ねじりに関しては、本当にねじりトルクを測定できているのか検証する必要があるので、シートピラーをはずした状態でも測定してみます。

結果3:トルク値が右クランクのみなので、半端な結果なので、参考値程度です。

●以後
相関係数がいくつだったらパワー精度がどうなるのか考えます。

左クランクの波形を加えて、全部そろえて、相関係数を広範囲に比較してみます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です