【理化学計測】オウンドメディア:電気化学測定(02)

【理化学計測】オウンドメディア:電気化学測定(02)に関するFAQ

QVersion 10.00 リリースノート

Q0を中心に±に振れる信号があります。正側を5倍、負側を3倍にしたい

FAQ ID:s068

A

以下のサンプルファイルを例にします。

この信号に対して0より大きい値を5倍、0より小さい値を3倍にします。
最初に必要なのでは、0より大きい信号を見つけることです。ある条件を設定し、値を抽出するためには関数SearchLevelを利用すると便利です。

resp = SearchLevel( Data, 2, 0, 0, 0, 0, 0, 0)

この関数を実行すると、0より大きい値を抽出します。

この信号を5倍して、元のデータに戻すことで目的を達成します。信号を5倍にするためには単純に5を掛ければよいです。元のデータに値を戻すには関数”Set”を利用します。
SearchLevelの結果はXY波形です。Set関数の第2引数にXデータ、第3引数にYデータを指定します。

Data = Set( Data, resp.X, resp.Y*5)

以上で結果は正側のみ5倍になります。

この後、負側も同様に行います。

以上です。

シーケンスは以下の通りです。

;***********************************************
;
; 正側を5倍、負側を3倍にします
;
;***********************************************
; 後でデータを比較するためにコピーします。
  Data = sintest1
; 正側のデータを抽出します
  resp = SearchLevel(Data, 2, 0, 0, 0, 0, 0, 0)
; 負側のデータを抽出します
  resm = SearchLevel(Data, 1, 0, 0, 0, 0, 0, 0)
; 元のデータに演算結果を戻します
  Data = Set(Data,resp.X, resp.Y*5)
  Data = Set(Data,resm.X, resm.Y*3)

回答を閉じる

QNI社DIADEM .tdmsファイルを読み込みたい。

A

Ver 6.3から標準で読み込みに対応しています。ただし、NI社が公開するAPIが必要です。
NI社が公開するAPI(TDM C DLL)ファイルを解凍後、下記へコピーして下さい。 なお、NI社が公開するAPIについてのサポートはできませんのでご了承下さい。

・32bit OSの場合
tdm_c_dll\Dominonilibddc\dev\bin\32-bit フォルダー内の全ファイルを
C:\Program Files\imc\shared\Extensions フォルダーへコピーして下さい。

・64bit OS + 32bit FAMOSの場合
tdm_c_dll\Dominonilibddc\dev\bin\32-bit フォルダー内の全ファイルを
C:Program Files (x86)\imc\shared\Extensions フォルダーへコピーして下さい。

・64bit OS + 64bit FAMOSの場合
tdm_c_dll\Dominonilibddc\dev\bin\64-bit フォルダー内の全ファイルを
C:\Program Files\imc\shared\Extensions フォルダーへコピーして下さい。

製品詳細はこちら

回答を閉じる

Q4 マイクロホンの手入れや取扱はどのようにすれば良いですか。

FAQ ID:セクションⅥ:メンテナンスと取扱方法

A

精密機器ですので、取扱には注意が必要です。計測用マイクロホンの保護とメンテナンスについては、こちらのビデオをご覧ください。(約4分20秒)

PCB社マイクロホンの詳細検索はこちら

回答を閉じる

Q表示しているウィンドウのY軸を一度にdB (or リニア)に変更したい

FAQ ID:x209

A

以下に手順を示します。

  • ウィンドウの表示エリアで右クリックして、コンテキストメニューから"プロパティ"を選択してください。
  • 表示されたダイアログの右下にある適用先から”全てのウィンドウ”を選択してください。

  • また、このダイアログの右上のY軸から希望するスケールを選択します。

製品詳細はこちら

回答を閉じる

QシーケンスでUFFファイルへ波形を保存したい。

A

UFFファイルなど、[ファイル]>[保存]から選択できるファイルフォーマットへ、FileOpenFAS()関数により開いたファイルへ保存できます。第2引数に指定するエクスポートDLL名とパラメーターは[エクストラ]>[オプション]から[インポートフィルター]の[ID]で確認できます。
Q.BBM社PAK softwareで読み込み可能なUFFファイルをFAMOSから出力するには?」もご参照下さい。

例)
_id = FileOpenFAS("C:¥imc¥Datsintest1.uff", "#UffImportExport.dll|Universal File Format", 1)
SetComm(sintest1, "// Time Response")
FileObjWrite(_id, sintest1)
FileClose(_id)

製品詳細はこちら

回答を閉じる

Qパルス信号を回転数に変換したい

FAQ ID:s067

Q

パルス信号を回転数データに変換することはできますか?

A

可能です。
以下のデータを対象とします。"pulse"はパルス信号、"signal"は加速度信号です。

以下の図はパルス信号の拡大図です。

最初にこのパルス信号の各パルスの立ち上がりポイントを取得します。
この位置を取得するためには関数"SearchLevel"を利用します。

res = SearchLevel( pulse, 2, 1, 0, 2, 0, 0, 1)

関数のパラメータを簡単に設定するためにはSearchLevelと記述した後で、関数の上にカーソルを置いてSHIFT+F1を押してください。以下のダイアログが表示され、パラメータを簡単に設定できます。

上の設定は1V以上の立ち上がりの変化ポイントを検出します。
この結果は変数リストに以下のように表示されます。

注意:
下図のように表示されない場合、変数リストの上で右クリックして、”コンポーネント表示”を選択してください。

結果は以下のように条件が成立した点だけ取得しますので、等間隔データではなく、XY波形となります。

この"res.X"変数はパルスの立ち上がりポイントのX座標を示します。

この結果を利用して回転数を求めます。
各ポイントのX座標の間隔は前後のデータのX座標の差分です。データ数を合わせるために1つずらしたデータを作成します。

res1 = CutIndex( res.X, 1, leng?(res.X)-1)
res2 = CutIndex( res.X, 2, leng?(res.X))

これらの差分が各パルスの時間間隔です。

DiffTime = Res2-Res1

回転数(RPM)に変換するためには以下のようにします。

RPM = 1/DiffTime*60

以上よりRPM信号を取得できます。
例えば、この結果を利用して、加速度波形のRMSを求めてXYグラフを作成すると以下のようになります。

Acc = MvRMS(Signal,0.04,0.04)
Result = XYof(RPM,ACC)

シーケンスは以下の通りです。

;***********************************************
;
; パルス信号をRPMに変換
;
;   pulseという変数にパルス信号を入力してください
;***********************************************
;パルスの立ち上がりを検出します。
res = SearchLevel(pulse, 2, 1, 0, 2, 0, 0, 1)
;パルスの立ち上がり時間間隔からRPMを算出します
res1 = CutIndex( res.X, 1, leng?(res.X)-1)
res2 = CutIndex( res.X, 2, leng?(res.X))
DiffTime = Res2-Res1
RPM = 1/DiffTime*60
;この部分はおまけです。XY波形を作成します
Acc = MvRMS(Signal,0.04,0.04)
Result = XYof(RPM,ACC)

製品詳細はこちら

回答を閉じる

Q情報トレースに表示されるdB表示が小数点一桁までしか表示されない

FAQ ID:x083

Q

情報トレースに表示されるdB表示が小数点一桁までしか表示されません。小数点以下の桁数を増やすことはできますか?

A

可能です。

以下の手順に従ってください。

  • 下記手順で物理量設定画面を開きます。
    V7以降の場合
    ホームタブ内の「物理量」をクリックします

    V6以前の場合
    メニュー"ユーザ/ユーザ設定"を選択してください。

    続いて、ダイアログが表示されるので、"物理量"タブをクリックしてください。
  • ダイアログが表示されますので、"物理量"タブを選択してください。

結果は以下のように変更されます。

製品詳細はこちら

回答を閉じる

QVersion 9.00 リリースノート

QVersion 8.30 リリースノート

Q間欠的な振動波形を波形毎に切り出してFFTしたい

FAQ ID:s039

Q

下図のように間欠的に振動が発生します。このデータをFFTすると、振動の途中でウィンドウを切り出してしまい上手くデータ処理されません。 各振動波形を切り出してからFFTできますか?

A

以下のシーケンスでは各振動波形を切り出して、最後にFFT処理を行っています。

;ドリフト成分を除去します

_temp1 = FiltHP(data, 0, 0, 8, 1)
_temp2 = ExpoRMS(_temp1, 0.02, 0.02)
_temp3 = SearchLevel(_temp2, 2, 1, 0, 0, 0, 0, 1)

;ここではSearchLevelでどのような処理をするのでしょうか?
;----------------------------------------------------
;各振動波形を分離するための座標を取得しています。
;結果を確認したければ、_temp2を表示させ、その上に_temp3を重ね書きしてください
;その後で_temp3のスタイルを丸などに変更すると結果を確認できます。

_temp4 = Leng(0,1024)
show _temp4

; Leng(0,1024)では波形が”0”になっています。どういう事でしょうか?
;なぜShowにて表示するのでしょうか?
;----------------------------------------------------
;計算途中を表示するために長さ1024の空の波形を作っています。

_temp6 = Leng(0,0)

; Leng(0,0)では波形が”0”になっています。どういう事でしょうか?
;----------------------------------------------------
;後のループで値を代入するために_temp6というダミー波形を作成しました。

_i=1
while _i<Leng?(_temp3)
_temp5 = Cut(_temp1, _temp3[_i].X-0.1, _temp3[_i+1].X-0.1)
_temp4 = Leng(_temp5, 1024)

_temp6 = Join(_temp6, _temp4)

_i=_i+1
end

;これらの行でどのような処理をされているのでしょうか?
;----------------------------------------------------
;SearchLevelで検出した各振動波形毎にデータを切り出し、
;そのデータ長さを1024点に拡張して、再構成しています。

Result = AmpSpectrumRMS_1(_temp6, 1024, 0, 0, 1)

製品詳細はこちら

回答を閉じる

QBBM社PAK softwareで読み込み可能なUFFファイルをFAMOSから出力するには?

FAQ ID:g043

A

出力する変数のコメントに、FFTスペクトルの場合は「// Auto Spectrum」、時系列データの場合は「// Time Response」と設定してから、UFFファイルに保存して下さい。

製品詳細はこちら

回答を閉じる

Qグラフの表示更新速度を速くしたい、遅くしたい。

FAQ ID:x205

A

画面のリフレッシュレートを変更することができます。

以下の手順にしたがってください。

  • メニュー"ユーザ/ユーザ設定"を選択してください。
    V7以降の場合
    ホームタブ内の一般ボタンを押します。
     
    V6以前の場合
    メニュー"ユーザ/ユーザ設定"を選択してください。  
    表示されたダイアログで"一般"タブを選択してください。  
  • ウィンドウリフレッシュレートを変更します
     

製品詳細はこちら

回答を閉じる

QVersion 8.20 リリースノート

Qデータサイズが大きすぎてExcelに貼り付けられません

FAQ ID:s037

Q

通常、波形エディターに数値データを表示させて、Excelにコピーしています。
今回データサイズが大きすぎてExcelに貼り付けられません。対策はありますか?

A

波形をExcelで処理できるデータ数に分割してから貼り付ける必要があります。
これを自動化したシーケンスを以下に示しますので参考にしてください。

;------------------------------------
;サンプルデータの作成
;------------------------------------
    data = sin(Ramp(0,1,100000))
;------------------------------------
;定義
;------------------------------------
    ;Excelの最大行
    RowMax = 65000
    ;出力したい列番号
    Col    = 1
;------------------------------------
;データ転送
;------------------------------------
    ;区切り文字の指定
    DDESepar( "\r\n")
    ;シート数の算出
    _SheetNum = Floor( Leng?(data)/65000)+1
    _page=1
    while _page<=_SheetNum
        ;転送先アドレス
        _cellAdr = "R1C"+TForm(col,"F00")+":R"+TForm(RowMax,"F00")+
        "C"+TForm(col,"F00")
        ;波形を切り出し
        _temp    = CutIndex(data, (_page-1)*RowMax+1, _page*RowMax)
        ;データ転送
        _err     = DDESet("Excel", "Sheet"+TForm(_page,"F00"), _cellAdr,
       _temp, 1)
       _page=_page+1
    end

製品詳細はこちら

回答を閉じる

QExcel形式で保存した場合に16384行しか保存できない

FAQ ID:g043

Q

Excel形式でデータをエクスポートしました。そのファイルを開いてみると16384行までしか保存されていません。

A

エクセルの制限が原因です。

16bit版のエクセル95では、16,384行のリミットとなります。
32bit版エクセル97以降では、65,536行までの制限となります。
Excel2007以降では、1,048,576行までの制限となります。

製品詳細はこちら

回答を閉じる

Qアクティブなウィンドウのみオートスケール

FAQ ID:x175

Q

Ctrl+Aやツールバーのオートスケールを適用すると、全てのウィンドウがオートスケールになってしまいます。アクティブなウィンドウのみオートスケールにすることは可能ですか?

A

可能です。

Ctrl+Alt+A

製品詳細はこちら

回答を閉じる

QVersion 8.00 リリースノート

Q一度に違う形式のデ―タを読み込みたい

FAQ ID:g066

A

メニュー"ファイル/開く"を選択して表示された標準のFAMOSダイアログでは、同じ種類のファイルは複数読み込めますが、異なる種類のファイルは読み込めません。

代替案

シーケンスを使用すれば、実現可能です。
以下にサンプルを示します。

;****************************************************************
; 拡張子が異なるファイルを開く方法
;
; FAMOSの標準的な方法(ファイル/開く)では同じファイルの種類しか
; 開くことができません。
; シーケンスを用いて対応します。
;****************************************************************

;; ファイルキットを使うと便利です。
;; ダイアログで複数のファイルを選択してください
fid = FsDlgSelectFiles("ファイル選択","c:\temp","*.uff;*.lst",0)
fmax = FsFileListGetCount(fid)
i=1
While i<=fmax
    filename = FsFileListGetName(fid,i)
    fileext = FsSplitPath(filename,3)
    If TComp(fileext,"uff")=0
        id = FileOpenFAS(filename,"UFFインポートファイル",0)
    End
    If TComp(fileext,"lst")=0
        id = FileOpenFAS(filename,"LSTインポートファイル",0)
    End

    ;共通の処理
    cnt = FileObjNum?(id)
    n=1
    While n<=cnt
        varname = FileObjName?(id,n)
        <varname> = FileObjRead(id,n)         n=n+1
    End
    FileClose(id)     i=i+1
End
FsFileListClose(fid)

製品詳細はこちら

回答を閉じる

Qsmo関数のパラメータ指定方法について

FAQ ID:s036

Q

平滑する幅は奇数ポイントになるように指定しないといけないのでしょうか?
偶数ポイントになるような指定をするとどのような処理になるのでしょうか?

A

平滑化する幅が5点より大きいければ、重み関数は三角形の形状で、奇数ポイントとなります。
選択された間隔が5点ならば、関数"Smo5"と同じです。3点ならば関数"Smo3"と同じです。

偶数ポイントを指定した場合、指定した値に対して最も大きい奇数ポイントで計算します。
以下のサンプルでご確認ください。

a=ramp(0,1,20)
i=1
while i<=20
  if mod(i,2)=1
    a[i]=-a[i]
  end
  i=i+1
end

b1=smo(a,1)
b2=smo(a,2)
b3=smo(a,3)
b4=smo(a,4)
b5=smo(a,5)
b6=smo(a,6)
b7=smo(a,7)
b8=smo(a,8)
b9=smo(a,9)

製品詳細はこちら

回答を閉じる