2

振動をログに記録して分析し、周波数範囲で振幅が増加する傾向があるかどうかを確認する C# プログラムを作成しようとしています。これには明らかに大量のデータの保存と処理が含まれます。私はこの種のプログラミングに慣れていないため、これをどのように行うべきかわかりません。いくつかのヒントをいただければ幸いです。プログラムがセンサーごとに新しいデータベースを自動的に作成できる場合は、いくつかのセンサーを用意します。

データは明らかにある種のベクトルで、C# ではおそらくリストを意味します (サンプリング周波数が 60 kHz の DAQ ユニットを使用してデータを収集します)。周波数変化の傾向を見つけるには、古いデータをすべて読み込んで、新しい測定値を保存する前に新しい測定値と比較したいのですが、すぐにそれが不可能になることは理解しています. 誰もこれを実際に行う方法について考えを持っていますか?

よろしくお願いします!

アクセル

4

2 に答える 2

2

これが多数のマシンで大規模な場合は、OPC または PI を検討することをお勧めします。それ以外の場合は、おそらくデータベースを選択したいだけです: MySQL? SQL エクスプレス? 他に何か…?

本当に必要なデータの量を考えてください。1 秒あたり 60,000 の測定ポイントを保持していますか? それとも、それらの測定値を平均して、1 秒あたり 1 つのエントリを実行していますか? または、時間間隔で最小/最大を追跡しますか? 古い測定値をクリーンアップするために、毎週/毎月/毎日のバッチ プロセスを実行していますか? 思考の出発点をいくつか...

私は別のコメントを追加するのを見つめていましたが、長すぎたので、ここに行きます:

reddit/r/programming (私が読むのが好きです) では、MariaDB について頻繁に言及されていることを知っています。これは、新しい「セクシー」な (つまり、多くの人が話題にしている) テクノロジの 1 つであるように思われます。これは興味深い検索であり、多くの大手企業が MySQL から MariaDB に切り替えていることがわかりました。ですから、それは考えるべきことの1つです。 http://www.reddit.com/r/programming/search?q=mariadb Reddit/r/programming は、テクノロジに関するアイデアを得るために時々見るのに適したサイトです。

おそらく、これらのデータベースのどれを使用しても問題ありません。いつでも 1 つのデータベースから始めて、後で別のデータベースに移動できます。私が言ったように、大量のデータで物事が本当に重くなり始めた場合は、おそらくOPCまたはPiを調べたいと思うでしょう. Google の「Data Historian」または OPC または Pi :) しかし、今のところは、これらのデータベースの 1 つから始めて、プログラミングを行ってください。Google を使用して、データ ヒストリアン、振動分析などに関するフォーラムを探してみてください。

于 2013-11-09T17:17:22.070 に答える
1

あなたの説明に基づいて、ソリューションのレイアウトについてもう少し考える必要があるように思えます。アルゴリズム自体をしっかりと理解するまで、ストレージについて考えることはできません。

考慮できるストレージ戦略に関するガイドラインをいくつか紹介します。

  1. すべての計算をメモリ内で行い、DB が永続化のためにのみ必要な場合は、単純にそれらを BLOB として格納できます。
  2. ベクトルが時間の経過とともに変化する場合、または計算が十分に単純な場合は、構造を保持する方法でベクトルを DB に格納し、ストアド プロシージャまたはサポートされているスクリプト言語を使用して DB で計算を実行できます。この方法では、DB とアプリケーションの間でデータをやり取りする必要はありません。もちろん、ストアド プロシージャは書いたり維持したりするのがあまり楽しいものではないため、これは少し難しくなります。
  3. ベクター自体を保持する必要は本当にありますか? アルゴリズムが最終的にそれらを消化して結果を処理する場合、実際に保存する必要があるのはこれだけです。
于 2013-11-11T08:26:00.993 に答える