2017/09/03

クランクひずみによるパイロットパワーの計測3

前回に引き続きひずみゲージによるパイロットパワー計測の話です。
今回は取得したデータからパイロットパワーへの変換について書きます。

パワーはトルクと回転数の積から計算することができます。
取得した回転数、ひずみのデータと計算して求めたパワーのグラフを以下に示します。
今回は、左クランクのみにひずみゲージを取り付けたので、右足も同じパワーを出していると仮定して、パイロット出力は左足のものを2倍した値としました。
回転数、ひずみ、パイロット出力。パイロット出力は市販のパワーメータでも測定を行い、一番下のグラフの黒点で示した。
取得したひずみデータは、キャリブレーションから求めた係数を用いることで、トルクの値に変換することができます。
しかし、トルクの値はクランク1回転中に変化する振動を含んだデータなので何らかの形で平均を取ることが必要です。
平均を取る方法としては、移動平均、指数フィルタ等の各種IIR、FIRフィルタ等が使えますが、試してみたところこれらのフィルタでは時定数が長めのフィルタが必要なようなので、クランク1回転の平均を取ることにしました。

クランク1回転の平均値を計算するためには、クランクが1回転する時間の情報が必要になります。
1回転を検出する磁石式の回転数計の場合には直接この値が得られます。
しかし、今回用いた回転数計はフォトインタラプタ+スリットを用いたもので、1スリットが通過する時間を測定するため、直接的に1回転の検出はできません。
(スリットが通過する数を数えれば測定することはできます)
そこで、クランク回転検知は数値的に行いました。
回転数 [rpm]はその定義から回転回数 [回]の時間微分に相当します。
したがって、回転数を数値的に積分した値の整数部が変化する時刻がクランクが1回転した時刻と推定されます。
この方法で推定したクランク回転検知時刻を図中段の青印で示しました。
このデータでは後処理で回転検知を行いましたが、コックピット表示用にマイコン内でも同等の計算を行っています。

図下段のパワーのデータはクランク1周分の平均化を行ったトルクに回転数の値をかけて求めたパイロットパワーです。
薄青色の点は生データ、実線は弱い指数フィルタをかけたデータです。
1秒の平均時間で測定した市販のパワーメータ(ペダル式)の値と多少のずれはあるもののよく一致していることがわかります。

クランクひずみによるパイロットパワーの計測の話はここまでです。
現在はさらに詳細な解析として、クランク上下のひずみゲージの出力からペダリングのベクトルを求められないか試みています。
うまくいった場合にはさらに追加の記事を書きたいと思います。

2017/08/27

クランクひずみによるパイロットパワーの計測2

前回に引き続きひずみゲージによるパイロットパワー計測の話です。
今回はキャリブレーションについて書きます。

ひずみゲージの取り付け状況。左クランク上面、下面に1枚ずつ取り付けた
ひずみゲージは上の写真の通り、左クランクの上面、下面に1枚ずつ貼り付けました。
パイロットパワーを求めるのに必要なのは曲げひずみの値で、2ゲージ法を使うと圧縮ひずみの除去が可能です。
今回は、圧縮ひずみも含めて測定することでペダリングの向きも測ることを目論んで、上下のひずみゲージを独立したブリッジ回路に接続し、1ゲージ法x2で測定を行いました。

1ゲージ法での測定を行う場合には、各種の温度補償の恩恵を受けられないので、温度を含めたキャリブレーションが必要になります。
そこで、クランクに与えるトルクと環境温度の両方を変えながらキャリブレーションを行いました。

キャリブレーションの様子。クランクから奥に延びる青い配線は熱電対につながる
キャリブレーションの結果を下の図に示します。
使用した錘は[0, 2, 14, 20]kg、温度は[18, 24, 28]℃程度です。

キャリブレーション結果。上のグラフは温度を、下のグラフは荷重を固定したものを同じ色で示した
計36点のデータを取得し、
(ADC出力)=(オフセット)+(荷重比例部分)+(温度比例部分)
として重回帰分析を行い、校正係数を求めました。

荷重比例部分の校正係数は市販のパワーメータPolar Keo Powerとの比較も行い、誤差が1%以下であることを確認しました。

「温度」として採用するべきものは、キャリブレーション時に測定したひずみゲージ部分の温度なのですが、外付けの温度センサをつなぐ設計にはなっていないため代わりにADC内蔵温度計のものを採用することとします。
また、この校正試験時にはコネクタを介してひずみゲージを接続していたり、ひずみゲージとブリッジをつなぐケーブルが長かったりしたので、鳥コン本番で使った構成より温度係数が大きめに出ているようです。
このあたりは次に新しく基板を作る際には反映するつもりです。

次回は取得したひずみデータからパワーを計算する部分について書く予定です。

2017/08/18

クランクひずみによるパイロットパワーの計測1

以前の記事に書いた通り、ANT+モジュールにより市販パワーメータGarmin Vector 2Jのデータを受信しパイロットパワーを測定するつもりでしたが、どうもGarmin Vector 2Jではリカンベント式人力飛行機のパワーをうまく計測できないようなので、ひずみゲージを使って自前のパワーメータを作ることにしました。

パワーメータの作製は学生時代(~10年前)に行ったことがありますが、その際にはひずみゲージのゼロ点を半固定抵抗で補正しつつ10~12bitのマイコン内蔵ADCで読み込み、EEPROM/Flash ROMにデータを書き込む構成としていました。
最近は高分解能ADCや無線モジュールが利用しやすくなったこともあるので、クランクひずみの測定回路にはゼロ点調整等は設けず、ひずみゲージを含むブリッジ回路の出力電圧を適当に増幅した後にAD変換し無線で送信する構成としました。
ひずみゲージ用のブリッジ回路は(左/右)足 x (上/下)面用に4系統用意し、1~4ゲージ法のすべてに対応可能なようにしました。

製作したひずみゲージデータの送信機。無線モジュールのアンテナとアンチエイリアスフィルタのキャパシタは未実装。サイズは20 x 67.5mm、重量は5g
上の写真は製作したひずみゲージデータの送信機です。
設計時に何を考えて各種部品を選定したかなどを以下に記します。

ひずみゲージの選定

ひずみゲージは特定材料の線膨張係数の補償を行うように設計されているので、クランク材質に合わせたものを選びます。
今回の場合はアルミ用(東京測器研究所のものだと緑色のもの)です。
その他に決めなくてはならない仕様としてはゲージ長がありますが、今回はクランク歪みの測定で、局所的な情報が必要ないので簡単に手に入るものの中で最長の5mmを選びました。
また、基板との配線の手間を減らすためにリード付きのFLA-5-23-1LJCを選びました。
(余談ですが、東京測器研究所のひずみゲージは個人でも購入可能なので、e-ゲージショップに並んでいるものから選ぶ必要はありません。)

抵抗の選定

ひずみゲージの抵抗変化は抵抗ブリッジにより電圧変化に変換される場合が多いですが、ブリッジを構成する抵抗の良し悪しによっては、電圧変化に大きな温度依存が乗る場合があります。(ある意味ではセンサの一部と言えます)
温度係数の小さな抵抗は高価なので、その他の回路とのバランスを考えて25ppm/degCの薄膜抵抗 進工業製RR1220P-121-Dを選定しました。
また、許容電力にある程度の余裕を持たせるためにサイズは2012としています。

電源回路の検討

クランクひずみ送信機の電源には重量の観点からLiPoバッテリを利用します。
低ノイズの電源回路をコンパクトに作るにはリニアレギュレータを利用するのが簡単です。
また、基板専有面積を抑えるためにデジタル・アナログの電源は共有することにしました。
LiPoバッテリの容量をフルに活用するために、システムの電源電圧は2.85Vとしました。

AD変換器の選定

クランクひずみによるブリッジ回路の電圧変化は小さいので、高分解能(24~16bit程度が目安)のものを使用します。
また、クランクが1周する間に30点程度のデータ(平均誤差1%に対応)を取得しないと、振動するデータを平均する際に誤差が乗るので、サンプリングレートが小さすぎると問題になります。
さらに、基板面積の節約のために、PGA内蔵のものが望ましいです。
これらに電源電圧の条件を加えて検討し、128倍PGA内蔵、8入力、24bit、2ksps Delta Sigma型ADCのTexas Instruments ADC1248を利用することにしました。
同社のADCにはビット数が16bitで他のスペックが同じものもありますが、値段があまり変わらないようなので24bitのものを使いました。
使用する条件(128倍増幅、320sps)だと実効ビット数は16.2bitなので、16bitのものを使っても問題ないとは思います。
ADCには基準電圧源が内蔵されていますが、今回はratiometricな測定を行いたいのでADCの基準電圧には外からフィルタをかけたシステム電圧を供給します。
ブリッジ回路とADCの間には簡単なアンチエイリアスフィルタを入れました。
アンチエイリアス回路に利用するキャパシタは、手持ちの部品の関係から低誘電率系(CH)のセラミックコンデンサとPMLCAPを利用しました。

無線モジュールの選定

基板サイズ・重量を考えるとADCと無線モジュールの間にはマイコンを挟みたくないので、プログラマブルなモジュールを使います。
手軽に入手でき、技適の問題もクリアしているものの候補としてはXBeeTWE-Liteがありますが、表面実装可能なことからTWE-Liteを使いました。
アンテナが基板中央に来る配置になっていて、アンテナの性能は十分に発揮できない配置ですが、受信側基板との距離が1mもないことからこの部分は妥協しています。

その他

回転数の測定用に裏面にジャイロのパターンを設けました。(実際には利用せず)
また、動作確認用に4色のLEDをTWE-Liteにつなげています。

この手のアナログ・デジタル混載回路では定石ですが、アナログ・デジタルグラウンドの分離やリターンパス等を意識して基板のパターンを引きました。

基板の組み立て後は、ブリッジ回路部を中心に念入りにフラックスを洗浄しました。
大抵の場合は大丈夫だとは思いますが、フラックスの絶縁抵抗が低く、かつその抵抗に温度・湿度等の依存性がある場合には測定結果が不安定になる要因となるので、念のために行っています。

ひずみゲージの接続用にコネクタを用意しましたが、接触抵抗の変化や異種金属接合部での起電力とその温度依存が問題になり得るので、コネクタは用いず、ひずみゲージから延びるケーブルを直接基板にはんだ付けしました。

TWE-Liteのファームウエアはソフトウエア開発環境 TWELITE NET SDKを用いて開発しました。
個人的にはわかりにくいと感じた資料だったのですが、SDK全部入りファイルをダウンロードすると開発に必要な情報は全て手に入りました。

測定した結果はデータロガーHPA_Navi IIIで受信しますが、受信側に用いるTWE-Liteにも専用のファームウエアを用意しました。

以上でひずみ測定部分が完成しました。
次回はひずみとトルクの換算係数を得るために行った荷重試験について書きたいと思います。