【ロードセル】干渉補正式の基礎再学習<2年ぶり>

スマートキャリブレーションプローブで秋月のSC301AがY方向偏荷重Mxモーメントで4%以上のクロストークが発生したため、FxFyの分力を使って干渉補正して、精度を向上させないといけません。
幸いクロストークが完全な線形なので、干渉補正結果はよくなると思います。クロストークの線形性が悪い場合は干渉補正しても改善できない場合があるので、きちんと分力がでる起歪体を作ることが大原則です。
プロの6分力計は、ハードがきちんと作られていて、干渉補正
がオプションでついている程度ですので、ハードが基本です。
最高峰のロードセルメーカー HBMのページ
https://www.hbm.com/jp/7115/how-does-a-multi-axis-sensor-work/
https://www.hbm.com/jp/5626/multi-axis-sensor-mcs10/

※2024年9月追記:Pythonで実験データ処理する学習を始めてますが、干渉補正もPythonのライブラリーnumyで一般化逆行列計算
できますので、簡単にできます。EXCELより便利なのでPythonを覚えることをお勧めします。1週間入門学習すれば、干渉補正できると
思います。高校で習った、行列式の基礎を思い出しながらやればいいです。
Pythonでの一般化逆行列(moore penrose式)はたくさん解説があるので安心です。https://qiita.com/y629/items/c0a401e991ad56b93bcf

●2年前のEXCELを眺めた
同志社大学の論文を参考にしました
MFT2018で会場で慌てて、干渉補正をやり直したのが2018年8月だったので2年ぶりに干渉補正のEXCELを眺めてみますが、完全に忘れてしまっていたので当時のファイル類バックアップをみつけて、理解するのに、2日かかってしまいました。当時でも、あまり干渉補正計算を理解してなかった節がありますので、今回でようやく、原理を理解してきたという感じです。
●干渉補正概要:
6分力n干渉補正は、6つの分力を6つの分力ブリッジの出力で1次式で表現されます。Aは求める変換係数、Eはひずみ値(電圧)
Fx=A11*Efx+A12*Efy+A13*Efz+A14*Emx+A15*Emy+A16*Emz
Fy=A21*Efx+A22*Efy+A23*Efz+A24*Emx+A25*Emy+A26*Emz
Fz=A31*Efx+A32*Efy+A33*Efz+A34*Emx+A35*Emy+A36*Emz
Mx=A41*Efx+A42*Efy+A43*Efz+A44*Emx+A45*Emy+A46*Emz
My=A51*Efx+A52*Efy+A53*Efz+A54*Emx+A55*Emy+A56*Emz
Mz=A61*Efx+A62*Efy+A63*Efz+A64*Emx+A65*Emy+A66*Emz
と6x6の連立方程式があります。
理想だと測定したEと分力の値を代入すれば、Aの計算は、連立方程式で
得られるはずですが、実際の実験値では、解がでません。
6次元グラフをイメージすれば、6本の直線が交わるのですが、1点に決まらないということです。交わらないので、たくさんデータを測定して、代入すすることで、それぞれが一番近い近似点を求める方法をとります。多元の最小二乗法になります。その場合は、縦長の矩形行列ができます。行数が試行データセット数で、列は、分力の数だけあります。矩形行列の連立方程式で近似解を得るための
手法として、以下の一般逆行列解法が一般に使われてます。

■こういう現象は、工学では、日常的に存在することで、お決まりの解法としてMoore-Penroseの法則
(MP逆行列とか一般化逆行列とか疑似逆行列と呼ばれてます。)
参照資料は、WEB上に無数にあります。
・いろいろな応用例がみたい場合はこちらが詳しかったです。
http://kaji-lab.jp/kajimoto/leastsquare.htm

・素人用に分かりやすいのがこちらでした。作者様へ感謝です。これだけで、EXCELの計算までもっていけます。
https://imagingsolution.net/math/pseudoinversematrix/

※2020年11月追記
干渉補正学習用のプログラムを作成中です。Matrix_Calculator.vbです。ここで使っている行列計算パッケージは
上記ImagingSolutionでは、不具合が発生(4x4以上の逆行列計算でNANが発生)するので、別のパッケージを検索して、いろいろ試してみて、外池幸太郎様がCから移植されたライブラリーを使うことにしました。
実験データの一般化逆行列計算は、元々完全な線形でなく、逆行列が成り立たないデータを多数回演算する機会が多いため、精度ばらつきが大きいです。さらに、倍精度浮動小数点の演算精度がライブラリーによって、大きく異なります。実績のあるEXCELを基準にしてみてるのですが、外池ライブラリでもEXCELと違う結果がでてきます。Excel自体でもちょっとデータを変えたり、何回も計算していると結果がばらつきます。
最終的には、実験データで計算結果を使って干渉補正して、補正精度の良さ具合でその計算が良かったのか判定する以外にないと思ってます。

【VB.NET】Matrix_Calculator_rev03にアップ<外池幸太郎様へ感謝>

 

●私のEXCELにあった式を理解する
EXCELの行列式関数の基本はこちらです。
https://imagingsolution.blog.fc2.com/blog-entry-82.html

 

■Fx My2軸センサの場合の式
 目標の式は、の[a11,a12][a21,a22]を求めるのが計算の目的
Fx=a11*FxmV+a12*MymV
My=a21*FxmV+a22*MymV

例えばせん断力FxとモーメントMyだけの2分力センサで干渉補正を行う場合 mVは、測定ひずみ値 、
校正荷重を3
水準測定したとします。
校正負荷1kgの場合の分力値(Fx1、My1)
校正負荷2kgの場合の分力値(Fx2、My2)
校正負荷3kgの場合の分力値(Fx3、My3)
◆行列への割り付け

X=[FxmV1,MymV1] [FxmV2,MymV2][FxmV3,MymV3] :[3行][2列]
A=[a11,a12][a21,a22] :[2行][2列]
Y=[Fx1,My1][Fx2,My2][Fx3,My3]  :[3行][2列]

測定ひずみ電圧をX行列、分力をY行列、求める係数A行列として
X行列の一般化逆行列*Y行列の計算式をEXCEL式を1行でまとめてあります。
XA=Y
         A=XY ;一般化逆行列X

※以下[][]を1行で横に列を並べて表現して、
行列計算の[行][列]の数合わせで検算

  行列Aは、[a11,a12][a21,a22]の[2行][2列]
行列Xは、[FxmV1,MymV1][FxmV2,MymV2][FxmV3,MymV3]の[3行][2列]

 行列Xは、矩形型なので、正方型に変換処理するために
   転置x元行列で正方化となる法則を使う
   XTXは、転置[2行][3列」*元[3行][2列] =>[2行][2列]の正方行列になる
  この正方行列の逆行列を計算(XTX)-1  

一般化逆行列:X(XTX)-1XT
          正方[2行][2列]*転置[2行][3列]=>[2行][3列]

A[2行][2列]=XYは、[2行][3列]*[3行][2列]=>[2行][2列]

 

●EXCELからプログラムへ移行
上記EXCELでの計算は、手動で、
  「SHIFT+CTRL+ENTER」というおまじない
 操作しないと、行列計算がスタートしません。
全自動干渉補正システムを構築するうえで、EXCELから脱却しないと
できませんので、上記行列計算をC++にするかProcessingに
するかプログラム化しないといけません。

 

●以後
  行列関係のプログラミングの事例がたくさんあるので、コピペでなんとかできると思います。

※2020年12月3日 追記
干渉補正実験測定作業が大変手間がかかる課題ここ3年間のネックだったのですが、8月から4か月かけてSCP(スマート校正システム)をプログラムして開発しました。数時間かかっていた干渉補正測定作業が十分前後で可能になり劇的な合理化が実現できました。信州MAKERSの2020年のテーマの中では最大の成果が上がりました。
SCPカテゴリーhttp://shinshu-makers.net/shinshu_makers/?cat=50

【SCP】SCP校正基礎実験成功<指先押引きだけで校正干渉補正数分で完了>

【VB.NET】Matrix_Calculator_rev04で干渉補正完成<簡単干渉補正>

 

 

コメントを残す

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