NI製品ディスカッション

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

時間積分の方法について

解決済み
解決策を見る

いつもお世話になっております。

 

添付させていただきました図1のプログラムの中で、計測した電流値を積分して累積電荷量を求めています。

データを細かく取るために、待機時間を「1000ms→100ms」に変更したところ、所定の電荷量までに要する時間が約10分の1になってしまいました。

1000msの場合と100msの場合とで測定している電流値に違いがないため、プログラム内の「積分(Sum[Xdt])」は1000ms以外の場合には適していないのでしょうか。

「積分(Sum[Xdt])」のdtは、どこが決定しているのかがわかりませんでした。

 

100ms毎で積分していくために何かいい方法はありますでしょうか。

将来的には100msよりもう少し短くできればと思っています。

 

とても初歩的な問題で恐縮ですが、ご助言いただけると有り難いです。

よろしくお願いいたします。

0 件の賞賛
メッセージ1/12
6,398件の閲覧回数

こんな感じのは、どうでしょうか?

 

サンプリング周期変更対応.jpg

0 件の賞賛
メッセージ2/12
6,380件の閲覧回数

xyzz様、返信が大変遅くなりまして申し訳ありません。

ご指摘ありがとうございました。

 

添付してくださった画像のようにしましたところ、上手く100msで動作することができるようになりました。

 

積分(Sum[Xdt])のdtがどのようになっているのかわからないのですが、保存されたデータを見ると、ループの待機時間に関わらず電流値に相当するデータが入ってくるたびに足し合わされているように思いました。

上手く表現できず申し訳ないのですが・・・。

 

同様の方法で10msの場合を試してみたのですが、上手く動作させることができませんでした。

サンプリングレートも大きくしてみたのですが、保存されたデータを見るとおおよそ40ms毎の記録になっていました。

何かが原因して制約がかかってしまっているのでしょうか。

 

本当にたびたびで申し訳ないのですが、アドバイスをいただけると幸いです。

0 件の賞賛
メッセージ3/12
6,292件の閲覧回数

波形を入力すると波形データ内のdtが効いてきます。

積分と総和ダイアグラム.jpg

 

積分と総和フロントパネル.jpg

0 件の賞賛
メッセージ4/12
6,266件の閲覧回数

設定した周期よりも、実際の周期の方が大きい場合は、

ループ内の処理が設定した周期では完了出来無いという事です。

今回の場合はループ毎に、ファイル保存しているので

ファイル保存を処理1シーケンスから切り離し、次のシーケンスに移動、もしくは

新規シーケンスを作成すれば

処理1シーケンスにかかる時間は短くなります。

 

周期時間をだんだん短くしていった時に、周期時間のバラツキが出た場合は、

他アプリーケーション等の割り込み処理等によって、定周期性が確保できません。

根本的な解決策は、リアルタイムOSのシステムに変更しないといけないと思います。

その前に定周期性が必要な所をシンプルにして処理を軽くする。

(必要最低限の処理にする、ロアレベル関数に変更する。)

ループをタイミングループに変更してみる。

をやってみてください。

 

0 件の賞賛
メッセージ5/12
6,264件の閲覧回数

安定したdtを得るためには 連続サンプル集録 にした方が良いと思います。

dtはDAQデバイスが制御するので安定しています。

 

連続集録2ダイアグラム.jpg

0 件の賞賛
メッセージ6/12
6,241件の閲覧回数

xyzz様、再び返信が大変遅くなりまして申し訳ありません。

ご指摘ありがとうございました。

 

添付してくださった画像のようにしようと試みたのですが、添付した画像の赤枠部分が必要なことと、ループ毎の保存データが必要なため、波形作成のdtの値を効かせることができませんでした。

まだタイミングループを試したことがないので、そちらを試してみたいと思います。

0 件の賞賛
メッセージ7/12
6,163件の閲覧回数

まずは

ループ毎のファイルへの書き込みが時間がかかると思ったので

ループごとにメモリー(チャートの記録、シフトレジスタ等)に溜め、

ループ終了時に溜めたデータを一気にファイルに保存すれば、

ループ毎の処理が軽くなると思ったのですが。

 

後でまとめてデータのファイル保存をしても良い場合は、試してみてください。

 

0 件の賞賛
メッセージ8/12
6,144件の閲覧回数

DAQアシスタントの設定が

Nサンプルの場合、毎回初期化を行っていると思うので

連続サンプルに変更することによって初期化の時間分だけ

処理が軽くなると思います。

間違っていたらすみません。

 

Nサンプル周期.jpg

 

連続サンプル周期.jpg

0 件の賞賛
メッセージ9/12
6,140件の閲覧回数
解決策
トピック作成者Yoshihitoが受理

ザックリとしていますが、連続サンプル案をUPしておきます。

 

連続サンプル案ダイアグラム.jpg

すべてをダウンロード
メッセージ10/12
6,087件の閲覧回数