Excelを使わずにVB.NETプログラムだけで、測定から実験データ処理までのプログラムを作ってます。
最終的に実験計測のリアルタイム化を実現することで、今までにない生産性と効率を実現することで
今までできなかった、膨大な測定が簡単にできるようにすることを目標にしてます。
具体的には、自作の各種分力センサのスマート校正システムです。力センサの校正は治具を作って錘を載せて被測定物の姿勢を変えたり、大変な手間と苦労がかかるので、ここ4年間6分力センサの完璧な校正実験がでてきませんでした。さらに、被測定物が大きくて動かせない場合などにも対応したいので、スマート校正システム(SCP)の開発で2020年後半を全部費やすことになった次第です。
干渉補正の基礎
【ロードセル】干渉補正式の基礎再学習<2年ぶり>
【ロードセル】Processing_MatrixライブラリーでMP逆行列計算<転置だけ自作した>
■Matrix_Calculator_rev02の概要
機能 | 内容 |
CSVファイル読み込んでDataGridViewに表示 | ヘッダーの有無を自動で判定してヘッダとデータを表示 ※最初のデータが数値の時はヘッダ無しと判断 |
DataGridView上で、行列の編集 | 行、列別にコピー、ペースト、削除、挿入ができます。※1行、1列ごとの指定で複数ではできません |
DataGridView上のデータをcsvファイル保存 | 編集後のファイルをcsvに保存する ※ヘッダも有れば保存する |
加工された行列データをmatA(,),matB(,)を作成 | 作成した行列計算用MatrixファイルをmatA(,)とmatB(,)に読み込んで行列配列を準備する |
matA,matB独立して、逆行列、転置を作成 | 作成した行列配列の逆行列計算、転置計算をして結果表示して csvファイルに自動保存する |
matAとmatBの積の計算して表示 | matA,matBを準備できたら、積計算を行って結果表示 |
■操作例
①配置
左側がデータ加工、右側がマトリックス計算となってます。
大きな測定ファイルをまず読みこんで、不要な行列を削除、並び替えを行ってSave dgv Fileで保存します。
②行列計算例
3×3の行列から逆行列を作って、元の行列と積をとって
正則行列になるか確認します。
正則行列と逆行列の参照はこちらのリンクにでてます。
●手順2:matAの逆行列を作ります。
元の行列の右隣に逆行列 Inveseができます。
ファイル名先頭が”Inv_A”_とついたCSVが自動で作成保存されます
●手順3:matBにmatAで作成保存した逆行列ファイルを読み込む
●手順4:matAとmatBの積をとる
正則行列ができてますので、プログラムの積計算の動作確認ができました。
■EXEファイル
このプログラム内容が汎用性があるので、EXEもダウンロードできるようにしました。私が作っているCSVファイルは、行末にCRLF(0x0D,0x0A)がついているものです。(EXCELで使える)
準備:Cドライブの直下に vb_DT というフォルダを作ってください。
自動保存ファイルはそこに入りますので、全ファイルこのフォルダに収納して使ってください。
Matrix_Calculator_rev02
※未だ、作成中のほやほやですので、不具合がでると思いますので、コメントなりをいれていただければ助かります。
■ソースコード
DataGridViewを駆使してます。DataTableとDataSetは、当初使っていたのですが、編集すると複雑になってしまうので、DGVだけにしてます。
DataGridView1というコントロール名が長いのdgv1とPropertyで名前変更してあります。
https://gist.github.com/dj1711572002/c331742f5c05798d828f4259870dcb31
使用させていただいているMatrixライブラリーは、ImagingSolution 様がご提供されているものです感謝です。
https://imagingsolution.net/program/csharp/dotnet_matrix_class/
これの使い方の記事は下記です。