NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

サンプリング時間の設定とグラフの横軸が合わない

こんにちは。
 
電流値の測定にLabVIEWを使用しています。
サンプリング周波数20Hz(whileループの中の待機時間を50ミリ秒に設定)にしてデータを取っており、最終的に電流値の変化をグラフにしています。
 
グラフの設定は、縦軸を電流値、横軸の初期値を0、送り値を20(Hz)×60(秒)=1200とし、横軸が(分)で表されるように設定しているのですが、実際の測定時間とグラフの横軸の数値が合いません。
 
基本的に、3時間から30時間程度の長時間の測定なのですが、時間がたつほどこの傾向は顕著に現れ、計測速度も明らかに落ちています(1秒に5回程度のサンプリングに)。
 
サンプリング周波数20Hzは決して高い数値ではないと思うのですが、これはパソコンのメモリが少ないことが原因でしょうか?
0 件の賞賛
メッセージ1/2
4,918件の閲覧回数
平素より弊社製品をご使用いただき誠に有難うございます。
日本ナショナルインスツルメンツ技術部の竹内です。

サンプリング周波数20Hzというのは決して早い数値ではないですが、長時間実行しているというところに問題があるかもしれません。

現状ではグラフに表示しているという状況だと思いますが、これは3時間から30時間の集録が終わった後に全ての配列データを一度にグラフに表示させているということになりますでしょうか。もし、whileループの中で配列連結追加などで配列操作を行っているようであれば配列が大きくなればなるほど処理に時間がかかります。そのような場合は集録しながらファイルに保存するというデータストリーミングの方式でHDD上に保存した後に、ファイルを読み取りグラフに表示させるという方法がよいです。

またwhileループが初めから20Hz(50ms)で繰り返されているかということを確認する必要もございます。WindowsOSをご使用の場合はループに数mから十数m秒のジッタがかかります。そのため50msで正確にループが繰り返されず、ジッタの積み重ねがソフトウェアタイミングで集録してかつ長時間実行の場合、時間のずれとして問題になることがございます。そのため長時間実行を行う際はLabVIEW Real-TimeとReal-Time OSの使用をお勧めいたします。

Real-Time Tutorial

実際の集録時間も同時に取得すれば繰り返し時間がずれていたとしても対応できるかと思います。その場合は「日付/時間を秒で取得」関数などでタイムスタンプを取得していただけます。

以上、ご不明な点等ございましたら弊社までご連絡下さい。
よろしくお願い申し上げます。

0 件の賞賛
メッセージ2/2
4,897件の閲覧回数