3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

matlabのData Acquisition Toolboxを使う① NI USB-6009

Last updated at Posted at 2021-01-13

 アナログ入力を手軽に得る方法に、NIの測定ツールを使う方法があります。低速なものから高速なツールがあります。USB-6009(14ビット、差動4チャネル)は、低速ですが、複数の入出力をもち、安価なのが特徴です。USBケーブルでPCとつなぐだけで準備は終わります。

ファイル名

 ebayだと、中古品が約1万円代で入手できます。

NI-MAXで接続を見る

 無料で入手できるNIのツールMAXを起動します。「デバイスとインターフェース」の項目に、USB-6009を見つけてきます。
ni101.png

 テストパネルをクリックします。開始をクリックすると、何らかのデータをロギングしていることがわかります。入力にはファンクション・ジェネレータのFGX-2005をつないでいます。
スクリーンショット 2021-01-13 08.05.03.png

 終了します。

アプリAnalog Input Recorderを起動

 Data Acquisition Toolboxをインストールすると、Analog Input Recorder、Analog Output Generatorがアプリに登録されています。Analog Input Recorderを起動します。USB-6009を探し出してきて、入力波形を表示します。
スクリーンショット 2021-01-13 08.07.54.png

 画面上部の右端にあるGenerate Script codeをクリックします。
スクリーンショット 2021-01-13 10.51.43.png

 そのまま実行をクリックします。1秒間ロギングしたデータがグラフに描かれます。

ファイル名

 ファンクション・ジェネレータは10Hz、3Vp-pの正弦波です。100Hzにします。

ファイル名

 細かくてわからないので、

data = Dev1_1(1:50, :)

 先頭の50個を表示しました。

ファイル名

 サンプリング・レートが低いですね。デフォルトは1000になっていました。5000に変更します。グラフの表示数は、50から200個に増やしました。

d.Rate = 5000;
ファイル名

 電圧が足りませんね。summaryも表示しまっす。振幅は取れたようですが、3Vp-pに対して、-3.5V、+2.9なので、正常なデータの取得ではありません。A-DコンバータのS&Hが十分な性能ではないかもしれません。
ni106.png
 全データを表示すると、息継ぎをするようなところが出てしまい、サンプリング・レート48000はあまり信用できないと思われます。

ファイル名

方形波

 ファンクション・ジェネレータの出力を、サイン波から方形波に変更しました。
 ni108.png
 プログラムです。

%Create DataAcquisition Object
%Create a DataAcquisition object for the specified vendor.
d = daq("ni");
d.Rate = 48000;

%Add Channels
%Add channels and set channel properties, if any.
addinput(d,"Dev1","ai0","Voltage");

%Read Data
%Read the data in timetable format.
Dev1_1 = read(d,seconds(0.1))
samples = length(Dev1_1.Dev1_ai0)
summary(Dev1_1)
%Dev1_1.Time(1:5)
%Dev1_1.Dev1_ai0(1:5)
data = Dev1_1(1:1000,:);
%data = Dev1_1(timerange(1,10))

%Plot Data
%Plot the read data on labeled axes.
plot(data.Time, data.Variables)
xlabel("Time")
ylabel("Amplitude (V)")
legend(Dev1_1.Properties.VariableNames)

%Clean Up
%Clear all DataAcquisition and channel objects.
clear d

ローパス・フィルタをかける

 plotの最後に、


lowpass(data.Variables, 10 ,1000)

を追加しました。カットオフ周波数が10Hzで、サンプリング周波数は1kHzです。この周波数には何の根拠もありません。
少しだけ、立ち上がりが緩くなっています。

ni109.png

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?