FAQ
FAQ検索結果
検索キーワード:
QFAMOSを使った周波数解析サンプル
はじめに
FAMOSシーケンスの内容を説明するために、振動波形データを1チャンネルのみに限定してシーケンスを作成しました。
FAMOSを使用する前に
作成したFAMOSのシーケンスでは”Spectrum Kit[1](スペクトラムキット)”を使用します。スペクトラムキットを利用するためには、以下の手順に従って設定する必要があります。
1)FAMOSを起動
2)メニュー”Option/ Register Kits”を選択します。
3)起動したダイアログから”Spectral-Analysis [im7spct0.dll]”をチェックします。ここでチェックしたキットがFAMOSで利用できます。
以上でFAMOSの準備は終了です。
インストール
作成したサンプルシーケンスをインストールします。
1)ディレクトリーを作成します。
C:\TOYO\
2)以下のファイルを作成したディレクトリーにコピーします。
機能 |
ファイル名 |
説明 |
---|---|---|
データファイル |
C002d01.raw |
振動波形データ |
I001d01.raw |
エンジン回転数データ |
|
簡易3D FFT解析 |
FFT.seq |
シーケンスファイル |
FFT.ccv |
グラフ設定ファイル |
|
3D FFT解析 |
FFT2.seq |
シーケンスファイル |
FFT2.ccv |
グラフ設定ファイル |
|
クランク角連動時間波形 |
Event.seq |
シーケンスファイル |
Event.ccv |
グラフ設定ファイル |
|
RPM‐Vpp表示 |
XY.seq |
シーケンスファイル |
XY.ccv |
グラフ設定ファイル |
|
定幅トラッキング分析 |
Order.seq |
シーケンスファイル |
Order.ccv |
グラフ設定ファイル |
解析内容
簡易3D FFT解析
最終的な目的は周波数と回転数の3D表示ですが、最初に簡単な3Dのサンプルを示します。このシーケンスでは時間波形をFFTし、周波数とその時間経過を3D表示しています。回転数を徐々に変化させる場合などには、時間経過が回転数に相当するため簡単に解析できます。
カーブウィンドウのメニューから”Opt./ Display”を選択して、”Waterfall”をチェックすると、以下のように表示されます。
3D FFT解析
周波数と回転数の3D表示です。
RPM‐Vpp表示
回転数とVpp(Peak-to-Peak)を作成します
Peak-to-Peakを計算する区間はクランク角2回転分としています。
RPM‐Vpp表示
時間波形からクランク角で2回転分を切り出します。
回転信号に対して、開始・終了回転数を設定し、回転数の刻み幅毎にクランク角2回転分の振動波形を切り出します。
各回転数に対応する波形を表示させるためには、カーブウィンドウの上で右クリックして、コンテキストメニューから”Window Configuration”を選択してください。
起動したダイアログの”Event”タブを選択して、下の図のように選択します。
“This Event”に希望する番号を入力してください。このサンプルでは、3000[RPM]がNo.1で以降10[RPM]毎にインクリメントしていきます。
このとき、ダイアログを表示させたままカーブウィンドウの表示が変化することを確認してください。
定幅トラッキング
振動波形を定幅トラッキング解析します。計算は最初に3D FFT解析を行い、その後各次数成分とオーバーオール値を求めます。
シーケンスファイルの実行方法
詳しい説明はマニュアルを参照してください。
1) ーケンスファイル実行させるためには、最初にFAMOSにデータを読み込んでください。データが読み込まれると、変数リストに変数名が表示されます。
2) 次にシーケンスファイルを読み込みます。FAMOSのメニュー”Extra/ Sequece Editor”を選択します。選択すると、下図のようにエディターが起動します。
3)シーケンスエディターのメニュー”File/ Load”を選択して、希望のシーケンスを読み込みます。
4)シーケンスを実行させるためには、メニュー”Run/ Start”を選択します。このメニューを選択するとシーケンスが最後まで完全に実行されます。1行ずつコマンドを実行させるためには、メニュー ”Run/ Step”を選択します。この方法で各ステップを確認しながら実行することを勧めます。ステップ実行では、各ステップの計算結果を確認することができま す。
プログラム
ページの都合上、改行を入れてある部分があります。正確にはシーケンスファイルを参照してください。
7.1 簡易3D FFT解析
;**************************************************
;FFT.Seq
振動波形を3次元表示します。(周波数・回数・レベル)
この方法は、非常に簡単ですが、FFTのように回数軸がRPMにはなりません。
時間の経過に対するFFT結果の推移を観察できます。
;
;FAMOSの組込み関数は、青字で表示されます。
;オンラインヘルプを表示させるためには、カーソルを組込み関数の上に持っていき、"Ctrl+F1"キーを押してください。
;FAMOSメインウィンドウの"Output"ボックスにヘルプが表示されます。
;**************************************************
;----------------------------------
;ベースディレクトリーを設定します。
;ユーザーの環境に合わせて変更してください。
;----------------------------------
FT_Dir = "c:\TOYO\"
;----------------------------------
;データを設定します。
;----------------------------------
FT_Input = Channel_03
;---------------------------------------------
;フィルターを使用するときには、次のコマンドを利用します。
;先頭のセミコロン";"を取り除くと、コマンドが利用できます。
;
;フィルターのパラメータを変更したいときには、直接パラメータを変更しても良いですが、
;フォーミュラーアシスタントを利用すると便利です。
;その方法は、
; 1) "FiltLP"の上にカーソルを置き、
; 2) "SHIFT+F1"キーを押してください。
; 3) フォーミュラーアシスタントが起動しますので、パラメータを入力します。
; 4) "Sequence"というボタンを押すと、コマンドが変更されます。
;---------------------------------------------
;XY_Input = FiltLP(XY_Input, 0, 0, 2, 500)
;FFTパラメータ
FT_WindowWidth = 1024 ; ポイント数
FT_WindowType = 2 ; 0:Rectangle / 1:Hamming / 2:Hanning / 3:Blackman / 4:Blackman-Harris / 5:Flat Top
FT_Overlapping = 50 ; [%]
FT_Reduction = 1
FT_AveragingType = 0
;定常(DC)成分を取り除きます
FT_Input = FiltHP( FT_Input, 0, 0, 2, 0.5)
;FFT演算を行います。
Result = AmpSpectrumPeak(FT_Input,FT_WindowWidth,FT_WindowType,FT_Overlapping,FT_Reduction,FT_AveragingType )
;結果を表示します。
Show Result
CvConfig( Result, TAdd( FT_Dir, "FFT.ccv"))
;テンポラリー変数を削除します。
Del FT_*
7.2 3D FFT解析
;***************************************************************
;FFT2.seq
; 振動波形を3次元表示します。(周波数・回転数・レベル)
; カーブウィンドウでの3D表示の場合、回転数に相当するZ軸は等間隔でプロットされなければなりません。
; 従って、この方法では回転数を一定刻み幅で設定し、そのときの波形に対してFFT演算を実行しています。
;
;FAMOSの組込み関数は、青字で表示されます。
;オンラインヘルプを表示させるためには、カーソルを組込み関数の上に持っていき、"Ctrl+F1"キーを押してください。
;FAMOSメインウィンドウの"Output"ボックスにヘルプが表示されます。
;***************************************************************
;----------------------------------
;ベースディレクトリーを設定します。
;ユーザーの環境に合わせて変更してください。
;----------------------------------
XY_Dir = " c:\TOYO\"
;----------------------------------
;データを設定します。
;----------------------------------
XY_Pulse = Inc_Encod_01
XY_Input = Channel_03
;--------------------------------------------------
;FFTパラメータ
XY_WindowWidth = 1024 ; ポイント数
XY_WindowType = 2 ; 0:Rectangle / 1:Hamming / 2:Hanning / 3:Blackman / 4:Blackman-Harris / 5:Flat Top
XY_Overlapping = 50 ; [%]
XY_Reduction = 1
XY_AveragingType = 0
;--------------------------------------------------
;定常(DC)成分を取り除きます
XY_Input = FiltHP( XY_Input, 0, 0, 2, 0.5)
;---------------------------------------------
;フィルターを使用するときには、次のコマンドを利用します。
;先頭のセミコロン";"を取り除くと、コマンドが利用できます。
;
;フィルターのパラメータを変更したいときには、直接パラメータを変更しても良いですが、
;フォーミュラーアシスタントを利用すると便利です。
;その方法は、
; 1) "FiltLP"の上にカーソルを置き、
; 2) "SHIFT+F1"キーを押してください。
; 3) フォーミュラーアシスタントが起動しますので、パラメータを入力します。
; 4) "Sequence"というボタンを押すと、コマンドが変更されます。
;---------------------------------------------
XY_Input = FiltLP(XY_Input, 0, 0, 2, 500)
;--------------------------------------------
;回転数の設定
;--------------------------------------------
XY_RPM_Start = 700 ;解析開始回転数
XY_RPM_STOP = 3000 ;解析終了回転数
XY_RPM_delta = 10 ;回転数の刻み幅
;計算するポイント数を求めます
XY_Data_num = 1+Abs((XY_RPM_Stop-XY_RPM_Start)/XY_RPM_delta)
;結果を格納する配列を作成します。
;FFTのデータ数が1024点の場合、FFT演算結果は513となります。
;従って、513×演算回数分の2次元マトリクスを用意します。
Result = Leng( 0, (XY_WindowWidth/2+1)*XY_Data_num)
SetSegLen( Result, (XY_WindowWidth/2+1))
;時間データを切り出す時間です。
XY_delta_Time = XY_WindowWidth*XDel?( XY_Input)/2
XY_i=1
XY_RPM = XY_RPM_Start
While XY_RPM<=XY_RPM_Stop
;指定回転数に対応する測定時間の取得
XY_X_Center = Pos( XY_Pulse, XY_RPM)
;1回分のFFTに必要な時間データを取り出します
XY_Temp_Data = Cut( XY_Input, XY_X_center-XY_delta_Time, XY_X_center+XY_delta_Time)
;1回分のFFTを行います。
XY_Seg_Dat = AmpSpectrumPeak( XY_Temp_Data, XY_WindowWidth, XY_WindowType, XY_Overlapping, XY_Reduction, XY_AveragingType )
XY_Delta = Xdel?(XY_Seg_Dat)
;テンポラリーのデータに算出した値を格納します。
Result[ XY_i] = XY_Seg_Dat[1]
XY_i=XY_i+1
XY_RPM = XY_RPM+XY_RPM_delta
End
SetUnit( Result, "RPM", 2)
SetZoff( Result, XY_RPM_Start)
SetZdel( Result, XY_RPM_delta)
XUnit Result "Hz"
Result = Xdel( Result, XY_Delta)
Show Result
CvConfig( Result, TAdd( XY_Dir, "FFT2.ccv"))
Del XY_*
7.3 RPM‐Vpp表示
;***************************************************************
;XY.seq
; 回転数とVpp(Peak-to-Peak)を作成します
; Peak-to-Peakを計算する区間はクランク角2回転分としています。
;
;FAMOSの組込み関数は、青字で表示されます。
;オンラインヘルプを表示させるためには、カーソルを組込み関数の上に持っていき、"Ctrl+F1"キーを押してください。
;FAMOSメインウィンドウの"Output"ボックスにヘルプが表示されます。
;***************************************************************
;----------------------------------
;ベースディレクトリーを設定します。
;ユーザーの環境に合わせて変更してください。
;----------------------------------
XY_Dir = " c:\TOYO\"
;----------------------------------
;データを設定します。
;----------------------------------
XY_Pulse = Inc_Encod_01
XY_Input = Channel_03
;---------------------------------------------
;フィルターを使用するときには、次のコマンドを利用します。
;先頭のセミコロン";"を取り除くと、コマンドが利用できます。
;
;フィルターのパラメータを変更したいときには、直接パラメータを変更しても良いですが、
;フォーミュラーアシスタントを利用すると便利です。
;その方法は、
; 1) "FiltLP"の上にカーソルを置き、
; 2) "SHIFT+F1"キーを押してください。
; 3) フォーミュラーアシスタントが起動しますので、パラメータを入力します。
; 4) "Sequence"というボタンを押すと、コマンドが変更されます。
;---------------------------------------------
;XY_Input = FiltLP(XY_Input, 0, 0, 2, 500)
;--------------------------------------------
;回転数の設定
;--------------------------------------------
XY_RPM_Start = 700 ;解析開始回転数
XY_RPM_STOP = 3000 ;解析終了回転数
XY_RPM_delta = 10 ;回転数の刻み幅
;計算するポイント数を求めます
XY_Data_num = 1+Abs((XY_RPM_Stop-XY_RPM_Start)/XY_RPM_delta)
;テンポラリーのデータです
XY_X_data = Leng(0, XY_Data_num)
XY_Y_data = Leng(0, XY_Data_num)
XY_i=1
XY_RPM = XY_RPM_Start
While XY_RPM<=XY_RPM_Stop
;指定回転数に対応する測定時間の取得
XY_X_Center = Pos( XY_Pulse, XY_RPM)
;2回転に対応する時間を求めます
XY_RPM_Time = 2/(XY_RPM/60)
;回転数に対応する時間の2回転分を切り出します。
XY_Temp_Data = Cut( XY_Input, XY_X_center-XY_RPM_Time, XY_X_center+XY_RPM_Time)
;この区間のPeak-to-Peakを求めます。
XY_Vpp=Max( XY_Temp_Data)-Min( XY_Temp_Data)
;テンポラリーのデータに算出した値を格納します。
XY_X_Data = ReplIndex( XY_X_Data, XY_RPM, XY_i)
XY_Y_Data = ReplIndex( XY_Y_Data, XY_Vpp, XY_i)
XY_i=XY_i+1
XY_RPM = XY_RPM+XY_RPM_delta
End
;XY波形を作成します
Result = XYof( XY_X_Data, XY_Y_Data)
;単位を設定します
XUnit Result "RPM"
YUnit Result "μS"
Show Result
Del XY_*
7.4 RPM‐Vpp表示
;****************************************************************
;Event.Seq
; 時間波形からクランク角で2回転分を切り出します。
; 回転信号に対して、開始・終了回転数を設定し、回転数の刻み幅毎にクランク角2回転分の振動波形を切り出します
;
;FAMOSの組込み関数は、青字で表示されます。
;オンラインヘルプを表示させるためには、カーソルを組込み関数の上に持っていき、"Ctrl+F1"キーを押してください。
;FAMOSメインウィンドウの"Output"ボックスにヘルプが表示されます。
;****************************************************************
;----------------------------------
;ベースディレクトリーを設定します。
;ユーザーの環境に合わせて変更してください。
;----------------------------------
Ev_Dir = " c:\TOYO\"
;--------------------------------------------
;回転数の設定
;--------------------------------------------
EV_RPM_Start = 700 ;解析開始回転数
EV_RPM_STOP = 3000 ;解析終了回転数
EV_RPM_delta = 10 ;回転数の刻み幅
;--------------------------------------------
;データの設定
;--------------------------------------------
EV_Pulse = Inc_Encod_01
EV_Input = Channel_03
;---------------------------------------------
;フィルターを使用するときには、次のコマンドを利用します。
;先頭のセミコロン";"を取り除くと、コマンドが利用できます。
;
;フィルターのパラメータを変更したいときには、直接パラメータを変更しても良いですが、
;フォーミュラーアシスタントを利用すると便利です。
;その方法は、
; 1) "FiltLP"の上にカーソルを置き、
; 2) "SHIFT+F1"キーを押してください。
; 3) フォーミュラーアシスタントが起動しますので、パラメータを入力します。
; 4) "Sequence"というボタンを押すと、コマンドが変更されます。
;---------------------------------------------
;XY_Input = FiltLP(XY_Input, 0, 0, 2, 500)
;*****************************************
;1回目のみイベントデータを新規に定義します
;*****************************************
;指定回転数に対応する測定時間の取得
EV_RPM = EV_RPM_Start
EV_X_Center = Pos( Ev_Pulse, EV_RPM)
;2回転に対応する時間を求めます
EV_RPM_Time = 2/(EV_RPM/60)
;回転数に対応する時間の2回転分を切り出します。
EV_Temp_Data = Cut( EV_Input, EV_X_center-EV_RPM_Time, EV_X_center+EV_RPM_Time)
;データをイベントデータとして記録します。
Result = EventNew(EV_Temp_Data, 0)
;*****************************************
;2回目以降はイベントデータに追加します。
;*****************************************
EV_RPM = EV_RPM+EV_RPM_delta
While EV_RPM<=EV_RPM_Stop
;指定回転数に対応する測定時間の取得
EV_X_Center = Pos( EV_Pulse, EV_RPM)
;2回転に対応する時間を求めます
EV_RPM_Time = 2/(EV_RPM/60)
;回転数に対応する時間の2回転分を切り出します。
EV_Temp_Data = Cut( EV_Input, EV_X_center-EV_RPM_Time, EV_X_center+EV_RPM_Time)
EventAppend( Result, EV_Temp_Data, 0)
EV_RPM = EV_RPM+EV_RPM_delta
End
Show Result
CvConfig( Result, TAdd( Ev_Dir, "Event.ccv"))
Del Ev_*
7.5 定幅トラッキング分析
;***************************************************************
;Order.seq
; 振動波形を次数分析します。
;
;FAMOSの組込み関数は、青字で表示されます。
;オンラインヘルプを表示させるためには、カーソルを
;組込み関数の上に持っていき、"Ctrl+F1"キーを押してください。
;FAMOSメインウィンドウの"Output"ボックスにヘルプが表示されます。
;***************************************************************
;----------------------------------
;ベースディレクトリーを設定します。
;ユーザーの環境に合わせて変更してください。
;----------------------------------
OR_Dir = "c:\TOYO\"
;------------------------------------
;次数を設定します。
;------------------------------------
OR_Order2 = 2 ;次数
OR_Order4 = 4 ;次数
OR_Order_delta = 5 ;[Hz]
;------------------------------------
;ウォーターフォール波形を作成
;------------------------------------
OR_TempDir = TAdd( OR_Dir, "FFT2.seq")
Sequence <OR_TempDir>
;------------------------------------
;ウォーターフォールから回転数の情報を取得
;------------------------------------
OR_RPMStart = ZOff?( Result)
OR_delta = ZDel?( Result)
OR_num = Leng?( Result)/SegLen?( Result)
OR_RPMStop = OR_RPMStart + OR_delta*(OR_num-1)
;----------------------------------
;結果を格納する配列を作成します。
;----------------------------------
ResOrder2 = Leng( 0, OR_num)
ResOrder4 = Leng( 0, OR_num)
ResOrderOA = Leng( 0, OR_num)
OR_i = 1
OR_RPM = OR_RPMStart
While OR_RPM<=OR_RPMStop
;2次成分を取り出します。
OR_Temp1 = Cut( Result[OR_i], OR_RPM/60*OR_Order2-OR_Order_delta, OR_RPM/60*OR_Order2+OR_Order_delta)
ResOrder2 = ReplIndex( ResOrder2, RMS( OR_Temp1), OR_i)
;4次成分を取り出します。
OR_Temp2 = Cut( Result[OR_i], OR_RPM/60*OR_Order4-OR_Order_delta, OR_RPM/60*OR_Order4+OR_Order_delta)
ResOrder4 = ReplIndex( ResOrder4, RMS( OR_Temp2), OR_i)
;OverAllを計算します
OR_Temp = Sqrt( SUM( Result[OR_i]^2))
ResOrderOA = ReplIndex( ResOrderOA, OR_Temp, OR_i)
OR_i = OR_i+1
OR_RPM = OR_RPM+OR_delta
End
;----------------------------------
;波形の表示
;----------------------------------
Show ResOrder2
CvYaxis( ResOrder2, ResOrder4, 0, 0, 0, 400, -2 )
CvYaxis( ResOrder2, ResOrderOA, 0, 0, 0, 400, -2 )
ResOrder2 = XOff( ResOrder2, OR_RPMStart)
ResOrder2 = XDel( ResOrder2, OR_delta)
SetComm( ResOrder2, "2次")
ResOrder4 = XOff( ResOrder4, OR_RPMStart)
ResOrder4 = XDel( ResOrder4, OR_delta)
SetComm( ResOrder4, "4次")
ResOrderOA = XOff( ResOrderOA, OR_RPMStart)
ResOrderOA = XDel( ResOrderOA, OR_delta)
SetComm( ResOrderOA, "O.A.")
XUnit ResOrder2 "RPM"
CvConfig( ResOrder2, TAdd( OR_Dir, "Order.ccv"))
;-----------------------------------
;変数の削除
;-----------------------------------
Del OR_*
Del Result
[1]キットとはFAMOSの機能を拡張させる関数です。スペクトラムキットには周波数解析用の関数が多数含まれます。
Qサンプリング速度と解析レンジ
Qテーブルビュー: テーブルセルにテキストを動的に設定したい
Qチャンネル名を日本語で表示したい
Version5.0以降
変数名に日本語文字列を使用することができるようになりましたので、カーブウィンドウに日本語名が表示されます。Version4以前のようなことはありません。
ただし、一部の2バイト文字(ゼ ゾ 深 転 望 etc.)はエラーになります。それらの文字を使用する場合は変数名を{}で囲むことであらゆる文字が使用できます。あるいは後述の「Version4以前では」の手法で凡例に日本語表示できます。
例)
回転 = ramp(0, 0.001, 10000) ; "転"は変数名に使用できない文字のためエラー
{回転} = ramp(0, 0.001, 10000) ; {}で囲むことにより正常に完了
{高速回転} = {回転} * 100 ; {}で囲むことにより正常に完了
(シーケンス内で日本語を使用する場合の注意点)
スペースで式間を調整する際に全角スペースを使用しないように注意して下さい。全角スペースは目視できないため、見た目で判別しにくいエラーになります。
Version4以前では
直接日本語の変数名を指定しないで下さい。文字コードの問題で正常に処理されない場合があります。
変数名に日本語を使用しなくでもカーブウィンドウなどに日本語を表示させることは可能です。
方法
STEP1
コメントに表示したい日本語を設定する
STEP2
波形を表示させる
STEP3
カーブウィンドウメニュー”オプション/凡例”をクリックして、凡例のテキストで”チャンネルコメント”選択してください。
Q時系列データにフィルタをかける方法
操作方法を以下に示します
(V6.7以降)
- アナライザ設定ブラウザ>フィルタビルダで、希望するフィルタを作成します。
- アナライザ設定ブラウザ>フロントエンド>入力>入力1>入力フィルタで、フィルタビルダで設定したフィルタを選択してください。
(V6.0以前)
- コネクションモードでNVGateを起動してください。
- レコードで時系列データを記録します。
- 記録したレコードデータをプレーヤへ読み込んでください。
- フロントエンドの出力にプレーヤの信号を接続してください。
- フィルタビルダで希望するフィルタを作成します。
- フロントエンドの出力のフィルタ欄に作成したフィルタを設定してください。
- アナライザのOut端子をInput1端子と物理的に接続してください。 (Out端子からは記録した波形にフィルタリング処理をした信号が出力されます)
- 入力1をレコーダと接続してください。
以上の操作を行う事で記録した波形にフィルタ処理を施す事が可能です。
QWAVEファイルをインポートできますか?
Qサウンドキットが見つかりません
サウンドキットがインストールされているかどうか確認するためにはFAMOSメニュー"エクストラ/オプション"をクリックしてください。
次のダイアログが表示されますので左側のリストから”機能拡張・キット関数”を選択してください。右側に対応したパネルが表示されます。
このリストに”SoundKit”が存在するかどうか確認してください。
リストに存在しなければサウンドキットはPCにインストールされていません。CD-ROMから再度FAMOSをインストールしてください。このとき、途中でオプションを選択するダイアログが表示されます。ここでサウンドキットを指定してください。
リストに存在している場合には左側のチェックボックスがチェックされているかどうか確認してください。このチェックボックスがチェックされるとキット関数がFAMOSに呼び込まれ、関数リストの”Kit”タブにサウンドキット関数が表示されます。
【注意】
サウンドキットはデフォルトではインストールされません。
Qカーブウィンドウをカラーで表示させるには?
Q矩形波の作成
Q連続したフォルダー内のデータをループで結合する方法
;分割した保存したデータを結合する方法 ;例えば停電などで途中までのデータが消失してしまわないように ;1時間の測定に対して10分毎に保存したと考えます。 ; ;ディレクトリー構造は以下と仮定します。 ;(FAMOSのサンプルデータと同じです。) ; ; C:\imc\dat\Experim\ ; | ; |__ 0001\ ; | Channel1.DAT ; | Channel3.DAT ; |__ 0002\ ; | Channel1.DAT ; | Channel3.DAT ; |__ 0003\ ; | Channel1.DAT ; | Channel3.DAT ; |__ 0004\ ; | Channel1.DAT ; | Channel3.DAT ; |__ 0005\ ; | Channel1.DAT ; | Channel3.DAT ; |__ 0006\ ; Channel1.DAT ; Channel3.DAT ; ;以下にFAMOSシーケンスを示します。Example
Example
;;;;ダミーデータの作成 Channel1 = Leng(0,0) Channel3 = Leng(0,0) ;;;;Main Loop FAMOS i=1 While i<=6 ;;;;ファイル名の作成 dir = "C:\imc\dat\Experim\000" + TForm(i, "F00") temp1 = dir + "\Channel1.DAT" temp2 = dir + "\Channel3.DAT" ;;;;データの読み込み Load <temp1> data1 Load <temp2> data2 ;;;;データの結合 Channel1 = Join( Channel1, data1) Channel3 = Join( Channel3, data2) i=i+1 End
■日付フォルダー内のデータをループで結合する方法
フォルダー名が日付になっていると”その1”の方法ではエラーが表示されてしまいます。
どのように対応すればよいですか?
; C:\imc\dat\Experim\ ; | ; |__ 2003-01-23 10-31-22 (1)\ ; | Channel1.DAT ; | Channel3.DAT ; |__ 2003-01-23 10-31-32 (2)\ ; | Channel1.DAT ; | Channel3.DAT ; |__ 2003-01-23 10-31-42 (3)\ ; | Channel1.DAT ; | Channel3.DAT
上記のようにフォルダー名にスペースや括弧が含まれている場合、関数"LOAD"はパスを認識できません。
このような場合、ファイル関数を使用してください。
Example
;;;;ダミーデータの作成 Channel1 = Leng(0,0) Channel3 = Leng(0,0) ;;;;Main Loop FID = FsFileListNew("c:\imc", "*.*", 1, 0, 0) i=1 While i<=FsFileListGetCount(FID) ;;;;ファイル名の作成 dir = FsFileListGetName(FID,i) Name1 = dir + "\Channel01.DAT" Name2 = dir + "\Channel03.DAT" ;;;;データの読み込み DID = FileOpenDSF(Name1,0) data1 = FileObjRead(DID,1) Err = FileClose(DID) DID = FileOpenDSF(Name2,0) data2 = FileObjRead(DID,1) Err = FileClose(DID) ;;;;データの結合 Channel1 = Join( Channel1, data1) Channel3 = Join( Channel3, data2) i=i+1 End FsFileListClose(FID)
Qアクティブラインをキーボードで移動できますか?
Q数値を切り上げするためには?
QDDE通信でExcelにデータを転送できますか?(シーケンスを使用:Excel ⇒ FAMOS)
Q簡単に式を作成するためには?
最初にコマンドを探すためには、関数ボタンやフォーミュラーアシスタントを使用してください。
変数リストから関数ボックスの希望するボタンへドラッグ&ドロップしてください。
以下のようにフォーミュラアシスタントで簡単にパラメータを指定できます。
既存のシーケンスなどを変更する場合
関数が決まり、そのパラメータを入力する際にフォーミュラーアシスタントを利用すると、簡単にパラメータを指定できます。
具体的な方法は、
1)オペレーションボックスやシーケンスエディター上でパラメータを指定したい関数にカーソルをあてます。
2)このあと、SHIFT + F1ボタンを押してください。以下のダイアログで簡単にパラメータを指定できます。
Qコマンドパラメータを利用できますか?
以下のコマンドパラメータが用意されています。
/C 設定ファイルのレジストリーキーの設定
/L 測定ファイルを開く
/D 測定ファイルを開き、表示
/F インポートフィルター指定
/S シーケンスを実行
/E オペレーションの実行
例:
Windowsメニュー“スタート / ファイル名を指定して実行”を選択し、以下のように入力して実行させてください。
FAMOSを起動した後、変数”Slope”を読み込み、表示させます。
例:
インポートフィルターを使用する場合には以下のように /F オプションを使用して下さい。
c:\imc\bin\famos /D recorder.dlo /F recorder.fas
QMe’Scopeに伝達関数のデータを転送したい
Q信号波形にA特性フィルタを適用して波形を記録したい(その2)
x091で紹介したオプション"オーバオールアコースティック"を利用する方法をお勧めします。
ここでは、オプションを使用しない方法を紹介します。但し、少し手間がかかります。また、時間ウェイティングは適用できません。
【A特性フィルタの適応】
(V6.7以降)
アナライザ設定ブラウザ>フロントエンド>入力>入力1>入力フィルタで、Aウェイティングを選択します。
(V6.0以前) 少し複雑ですが以下のように操作すれば、波形を記録することができます。
(1) レコーダで信号を記録
(2) 記録した波形をプレーヤに読み込み
(3) フロントエンドの出力にプレーヤの信号を接続
(4) フロントエンドの出力のフィルタから"Aウェイティング"を適用
(5) アナライザのOutをInputへ物理的に接続
Outからは記録された加速度信号が積分され、出力されます。
【RMS値の時間波形の記録】
入力1をモニタに接続します。
アナライザ設定ブラウザ>ウォーターフォールで右クリックして、プロパティを選択し、ウォーターフォールチャンネル選択ダイアログを表示させます。
モニタタブでRMSを選択して、緑の矢印ボタンを押して追加します。
(V7以降) この波形を、表示/グラフタブ>追加・削除を選択して、ウォーターフォールタブから選択します。
(V6以前) この波形を、メニュー"ウィンドウ/追加・削除"を選択して、ウォータフォールタブから選択します。
関連
Q各スペクトラムの計算の違いについて
スペクトラムキットに組み込まれている
AmpSpectrumRMS
AmpSpectrumPeak
PowerSpectrum
PowerDS
について説明します。
AmpSpectrumRMSとAmpSpectrumPeakの違い
AmpSpectrumPeakは、その振幅を返します。
AmpSpectrumRMSは、その振幅の実効値を返します。
例えば振幅1の正弦波を入力した場合、AmpSpectrumPeakは、その振幅を返します。(=1)
AmpSpectrumRMSは、その振幅の実効値を返します。(=0.707)
PowerSpectrumとAmpSpectrumRMSの違い
AmpSpectrumRMSを2乗したものがPowerSpectrumとなります。
PowerSpectrumとPowerDSの違い
PowerSpectrumを周波数分解能で割った値がPowerDSとなります。
今回の例では周波数分解能を2Hzに設定しています。従って、パワースペクトラムの値を1/2倍したものがパワースペクトラム密度になります。
Qブロックデータの読み込み方法
For、もしくはWhile文で各ブロックをループします。
各ブロック毎にデータをセグメントデータとして読み込みます。
詳細はサンプルファイルを参考にしてください。