07-18-2019 02:21 AM
Labview初心者のものです。
今現在、複数入力と1出力を同時に行おうとしています。
入ってきた複数の入力信号のうち指定した1つのデータだけFFT解析を行いたいと考えています。
現段階で同時入出力はできており、そのプログラムを添付しておきます。
どのようにすればよいかご教授お願い致します。
ちなみにタービンの実験で使用するつもりでおり、送風機に信号を送り、2つの差圧計と1つのモーターの電気信号をデータとして取り出し、そのうちモーターだけをFFT解析し回転数を知りたいと考えています。
解決済! 解決策の投稿を見る。
07-18-2019 03:07 AM
平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。
プログラムを添付いただけるようなのですが、それを拝見してから回答させていただいても宜しいでしょうか?
07-18-2019 07:09 PM - 編集済み 07-18-2019 07:11 PM
よろしくお願いします。
07-18-2019 09:31 PM
DAQmx読み取りVIから収集した複数チャンネルのデータから任意のチャンネルをFFT解析したいとのことですので、1次元配列の波形データから指標配列関数を使用して指定したチャンネルのデータを抽出します。
抽出したデータをFFT関数に渡すことで1チャンネルだけをFFT処理が可能です。
FFT関数は、関数パレット > 信号処理 > 波形測定に含まれています。
なお、上図で使用しているFFT関数は複数チャンネルに対応しており、指標配列関数を通さずに配線すると複数チャンネルをFFT処理して、各チャンネルのパワースペクトル結果を返すことが可能です。
07-21-2019 06:40 PM
参考にしてみます。
ありがとうございます。
07-22-2019 01:55 AM
fftを組み込むことは可能になりました。
これを使用して、モーターからの電気信号をFFT解析して、回転数を求めようとしています。周波数から回転数に換算するつもりです。
数分間の実験を想定しているのですが、データの収録の仕方がいまいち定まりません。
なにかアドバイスを頂けたら幸いです。一番上に添付したプログラムに教えていただいたFFTを組み込んでいるのが現状です。
どうかよろしくお願いします。
07-22-2019 04:13 AM
現在のサンプルモードは、「有限サンプル」に設定されています。これは、指定したサンプル数を生成・収集したら終了します。その期間はサンプルレートの逆数 × サンプル数となり、それらの設定を変更すれば生成・収集期間が延びますが、ハードウェアのバッファ(メモリ)が満杯になってしまうと思います。
想定より生成・収集期間が短いようでしたら、サンプルモードを「連続サンプル」に構成して、生成や収集をWhileループで連続的におこなうようにしてみては如何でしょうか?
下記のサンプルは、アナログ入力とアナログ出力を同期して連続的に行うサンプルプログラムですので参考になるかと思います。
07-23-2019 12:11 AM
参考にしてみます。
たびたび申し訳ありませんが、labviewでデータをとる前は、FFTアナライザによって表示された周波数を記録しています。添付画像のように表示され、ピークを示す周波数からモーターの回転数に変換しています。
Labviewによって、回転数を計測し続ける、もしくは数秒ごとに回転数を知ることはできますでしょうか?
よろしくお願いします。
07-23-2019 01:32 AM
同じ信号処理サブパレットの中にシングルトーン情報抽出というVIがあり、FFTして検出された基本周波数を出力しますので、それを回転数を求める計算式に使用すれば良いのではないかと思います。
前回ご紹介したサンプルをシンプルにして、上記の処理を加えたVIを添付致します。デバイス番号やアナログ入出力の設定、ダイアグラムでトリガ参照チャンネルをご確認・変更してから実行してみていただけると幸いです。
07-23-2019 01:56 AM
ありがとうございます。
私が使用しているlabviewが古いため、添付されたデータを開くことができません。
お手数をおかけしますが、スクリーンショットなどを送っていただけると幸いです。
よろしくお願いします。