長期間かかりましたが、ようやくパワー計算プログラム完成しました。4月に一度トライして能力不足であきらめたのですが、
今回は、何とか目標に近いものができました。
●目標
①ADサンプリング周期を1msecに近づけること
②クランク角15度毎に仕事量とパワー値を出力できること
③ひずみ値から力への補正をSIN(クランク角)で正確におこなう。
●結果
①平均で1.2msecでADCサンプリングできてます。エンコーダ割り込み時に
1個前の15度周期の積分を入れてますが、その時に2msecになります。
15度周期は、ケイデンス120rpmで21msecですが、その中にADCデータが14個くらい入っていて積分します。
条件は、ADCサンプリング速度を1msecに設定して、pc.printfで時間測定して、データ出力もシリアル経由で整数値1個を半周に一回転送するだけです。2msecにとび跳ねているのが、エンコーダーのエッジ割り込みのタイミングで積分計算している時間です。
ここでADCサンプリング周期を0.5msecまで早くすると、割り込みとのバランスがとれなくなってデータが化けたので、1msec固定にしてあります。
②、③仕事量パワー値、補正値
仕事量と時間がわかればパワーは随時計算できるので、仕事量と周期だけ配列データとして保持してます。補正がSIN(クランク角)を1度間隔程度で計算してあります。
まだ、校正値が入ってないので、踏力を一定で1として計算した場合です。
1ポイントが15度周期での積分値です。手でクランクを逆回させて高速に回してますので、120rpm以上になってますが、ADCが早いため破たんしてません。
15度おきのパワー値をどう表現するかは、PCかLCDで表示します。
半回転ごとのパワーは、半周積算してから針式メーターに送ります。
●以後
計測データは、NUCLEOへシリアル通信でメーターに送りますが、シリアルが50msecでしか受信できないので針メーター専用になってしまいました。
15度ごとの早いデータはLCDかPCへ流します。
針式メーターの動作不安定を解析してプログラム直さないといけません、
ここのところデバッグ漬けになっていて、デバッグが上手になりました。
プログラムは、下手ですが、デバッグで試行錯誤して何とか目的のプログラムが作れる自信がつきつつあります。
針メーターを土日で片づけられたら、来週LCDとXBEEをいじってみようと思います。19日までにパワーメーターを動作OKにしないとMFT2017が苦しくなりますが、コアの測定プログラムが完成しているので一安心です。パワー値は校正値をいれてから、パワータップと比較しながら現物合わせしていきます。XBEEが動作できれば動的校正ができるので、理想的なのですが無理かもしれません。