【理化学計測】オウンドメディア:電気化学測定(02)
【理化学計測】オウンドメディア:電気化学測定(02)に関するFAQ
Qカーブウィンドウの色変更
Qデータのサンプリング間隔を変更したい(関数による変更)
Qピークカーソルが表示されません
FAQ ID:x090
ピークカーソルが表示されません。
表示されるときもありますので、操作方法には問題は無いと思います。
ピークカーソルや最大値カーソルではスレッショルドを設け、指定値以下の値を無視することができます。
既にデフォルト設定がなされています。信号が接続されていない場合などこのデフォルト設定によりピークが表示されません。
【ピークマーカの追加】
(V7以降)
表示グラフタブ>マーカから、ピークを選択します。
マーカモードになりますので、グラフ上でダブルクリックをすると、ピークマーカーがグラフに追加されます。
(V6以前)
カーソルを表示させるためにはモードをカーソルモードに切り替えます。
【マーカの編集】
グラフ上で右クリックして表示さえたコンテキストメニューから"マーカマネージャ"を選択します。
グラフに定義されたマーカの一覧が表示されますので編集したいマーカを選択して、"プロパティ"を選択します。
各マーカの特性を設定するダイアログが表示されます。
マーカが表示されない場合には"スレッショルド"を小さい値に変更してみてください。
Q1つのグラフには最大どれだけのチャンネルを表示できますか?
FAQ ID:x120
結論から申し上げると、最大32チャンネルです。
但し、これは各プラグインで用意されているチャンネルの最大が32チャンネルであるからです。
従いまして、ご購入されたオプションによりこの最大値は変わります。
尚、画面サイズの大きさに依存して物理的に表示できない場合があります。
上図では32チャンネル設定していますが、画面サイズの制約により全チャンネルの表示はなされていません。
QFFTプラグインや次数比分析プラグインで用意されている次数ラインより多くの次数を抽出したい
FAQ ID:x181
FFTプラグインや次数比分析プラグインの次数トラッキングでは抽出できる次数に制約があります。 より多くの次数を抽出したいのですが、可能ですか?
このような場合は以下のようにすることで対応できます。
方法1.
FFTプラグインのチャンネルに同じ入力信号を複数割り当てることで、抽出する次数を増やすことができます。
FFTの設定ウィンドウの”チャンネル”タブからソースに同じ信号を割り当てます。
割り当てたチャンネルそれぞれで追跡する次数を設定します。
方法2.
ウォーターフォールのセクションマネージャーを用いて次数を抽出します。
ウォーターフォールのグラフで右クリックをしてセクションマネージャーを開きます。
次数抽出を選択して、必要な次数を設定することで次数の抽出ができます。
関連
Qオーバーラップ率の設定範囲は?
Qレコーダで記録可能な時間は?
Q信号ソースにプレーヤのチャンネルが表示されない
Qタコ信号の設定
FAQ ID:x033
測定対象はパルス/回転(Pulse/Rev)が117に設定されています。
NVGateでこの設定を行うと最大回転速度(Max.Speed)=5128.2rpmと表示され、計測したい回転数を満たすことはできません。
そこで、プリディバイダ(PriDevider)の値を変更してみましたが、最大回転速度(Max.Speed)=5128.2rpmのまま変更されません。
<<< 質問 >>>
(1) パルス/回転(Pulse/Rev)=117のシステムで10000回転以上回転数を測定するためにはどのように設定すればよいか教えてください。
(2) パルス/回転(Pulse/Rev)とプリディバイダ(PriDevider)と最大回転速度(Max.Speed)の関係が良く理解できません。これらの関係を教えてください。
(1)
フロントエンドを最大サンプリングスピード(102.4 kS/s)にしてください。
10 256 RPMまで上昇します。
(2)
OR3x アナライザは正しい回転を取得するために少なくとも 5.12 samples/pulse を要求します。この制約は以下となります。
: 51.2 kS/s / (5.12 S * 117 pulses) * 60 = 5128.2 RPM.
外部タコ入力は指定された値をカウントするプリディバイダー機能を持ちます。
このプリディバイダーは1-63の値を設定できます。
プリディバイダーとパルス/回転(Pulse/Rev)は整数倍の関係になるように注意してください。
ユーザーの場合;
プリディバイダ (predevider) = 13
パルス/回転 (pulse/rev) = 117 (ratio = 9).
この(プリディバイダー)設定は最大スピードを増加させます。
Q時系列のピークをカーソルで確認したい
Q既に存在するプロジェクトから、設定のみを引き継ぎたい
FAQ ID:x067
既に作成してあるプロジェクトの設定を利用したいと考えています。
プロジェクトを”名前を付けて保存”しようと思いましたが、既存のプロジェクトには既にたくさんの結果ファイルが存在し、これらの結果は必要ありません。結果ファイルを削除するのは面倒です。
プロジェクトの設定のみを引き継ぐ方法はありませんか?
プロジェクトマネージャを開き、引き継ぎたいプロジェクト直下のWorkbookを右クリックして”読み込み”を選択してください。(Workbookとは、プロジェクトの設定データを格納したフォルダです。)
すると、設定のみが現在のプロジェクトに読み込まれます。
一方、"部分的な読み込み"を選択すると、以下のダイアログが表示されます。
このダイアログで必要な設定のみ選択して読み込むことも可能です。
QOR36/38の内蔵ディスクの空き容量
FAQ ID:x050
OR36/38に内蔵されるハードディスクの空き容量はどのように確認すればよいですか?
ハードディスク容量の確認方法には以下の2つの方法があります。
(1) NVGateV10以降であれば、入力設定タブ内の記録(レコード)項目に、現在のハードディスクの使用率が表示されます。この使用率は、OROSに接続中はOROSの内臓ハードディスクの使用率が、OROSを接続していない場合はPCのハードディスクの使用率が表示されます。
(2) メニュー"ヘルプ/NVGateについて"を選択してください。
ダイアログが表示されますので、"詳細(More info)"ボタンをクリックしてください。
リストより"OR38/ハードディスク/ディスク空き容量"を参照してください。
Qソフトウェアバージョンの確認方法
Q他のPCでマクロを使用するためには?
FAQ ID:x018
マクロファイルは下記のディレクトリに保存されています。
C:\OROS\NVGate data\Macros
この中にある".macro"ファイルをコピーして、対象のPCの同じ場所に保存してご利用ください。
なお、”アラーム”機能を使用した場合のように、特定の設定を使用する事が前提のマクロを移行する際は、元にしたプロジェクトも移行するのを忘れないようにしましょう。
プロジェクトを移行する方法については、プロジェクトを別のPCに移行する方法をご参照ください。
Qimc License Managerで認証時に「Connection error ...」が表示されて認証できない。
Qオクターブ分析結果の3D表示
FAQ ID:c030
測定データに対してオクターブ分析を行い、これを3D表示させるため、以下のシーケンス作成しました。
data = sin ( ramp ( 0, 1/40000, 1000 ) * (6.28 * 300) )
OctI(0, -1, 1, -1, 0, 0, 0) ; 1/1オクターブ、Fast時間重み
res = OctA( data, 16, 8000) ; 解析周波数16~8000Hz
1/1オクターブ解析のため16, 31.5, 63, 125, 250, 500, 1000, 2000, 4000, 8000Hz、すなわち変数resには10点ごとにFast時間重みでの1/1オクターブ解析が格納されています。
変数resを周期ごとに3D表示するには下記の2通りがあります。((1)がおすすめです。)
(1)
SetSegLen(res, 10)
のようにSetSegLen()関数で変数resをセグメント化してカーブウィンドウでウォーターフォールまたはカラーマップ表示を行ってください。
(2)
カーブウィンドウでウォーターフォールまたはカラーマップ表示を行った後、[設定]>[イベント、セグメント、間隔]をクリックして、下記のように[周期]タブで[周期の選択]に[全て]、時間の配置に[最初の周期のx0]、[周期長さ]に[10]を指定して[OK]をクリックしてください。
結果は下記のような表示になります。
QVersion 3.1 新機能
FAQ ID:g021
レポートジェネレータ
- 根本的な見直し
- 新しいオブジェクト。例:表、多角形、矢印、楕円など
- 既存のオブジェクトに対する新しいプロパティ。例:フレーム付きのテキスト、背景のテクスチャー、配置(左・右・中央)
- 拡張された編集コマンド。例:コピー・ペースト、連携したオブジェクト、アンドゥー
- カーブウィンドウ・FAMOS変数リスト・波形エディターとのドラッグ&ドロップの互換性
- 新しいリモートコントロールキット。例:列・行・セルへのデータ転送
- OLEコンテナー
ファイルウィンドウ
- 素早く簡単にデータディレクトリーをナビゲートする新しいファイルウィンドウ表示モード
- imc社LOOK機能を完全に統合
カーブウィンドウ
- カラーマップ表示
- 拡張されたリモートコントロールキット。例:マーカー設定、測定カーソル
- Windowsの設定と独立したプリンター設定
- ウォーターフォール表示モードでの不等間隔のZ軸スケール
- デジタルデータを含んだスタック表示。スペースを節約できるので、アナログとデジタルデータが混在したカーブウィンドウではアナログデータをより大きく表示
- カーブウィンドウ設定のための新しいダイアログ。イベントやセグメントの選択・配置。いくつかのカーブウィンドウを周期比較するためのオプション
波形エディター
- プリンターサポート
- レポートジェネレータとのドラッグ&ドロップの互換性
- 新しいコンテキストメニュー
シーケンスエディター
- シーケンスの印刷
- 新しいコンテキストメニュー
FAMOS関数
- 移動処理(RMS, 最大、最小、合計、平均)
- X軸の代わりにインデックスを使った新しい波形の編集関数 (カット、ペースト、データ抽出など...)
- マルチイベント波形を扱うさまざまな関数
- DIN IEC651 (騒音レベル測定)に準拠したA, B, C周波数特性
- imc社のトランジショナルレコードを使ったデータリダクション・アルゴリズム
- ASCIIファイルの行単位の読み込み・書き込み
- 時間、あるいはX方向での波形の正しい加算、減算、除算、積算
- 時間、あるいはX方向での波形の結合、マージ
- FAMOS編ストから変数名を取得する関数
- ボタンを使ったポップアップメッセージ(例:"Yes", "No" )
- XY波形でも使用できる多くの関数。例:微分、積分
- FFT関数のためのフラットトップウィンドウ
その他
- FAMOSを終了してもオペーションボックスのコマンド履歴を使用できます。
- オペレーションボックスのためのコンテキストメニュー
- 拡張された変数リストのためのコンテキストメニュー
- 変数リスト:新しいキーボードショートカット、文字を入力するとその文字で始まる変数にジャンプします。
- 既存の変数を再読込したときに変数名を変更したり上書きするための向上したダイアログ。新しいオプション<全てを上書き>
- XYや複素波形でもダイアログを使ってASCII保存できます。
- ツールバーや関数ボタンのためのツールチップ(少し遅れてヘルプがポップアップします)
関数の詳細
関数 | 詳細 |
---|---|
波形編集 | |
CutIndex | インデックス番号で指定された区間を切り出します。 |
ValueIndex | インデックスで指示された位置のY座標を返します。 |
SetIndex | 指定したインデックス番号を新しいY座標値で設定する。 |
RekplIndex | 元の波形の一部をインデックス番号を参照して、新しいデータに置き換えます。 |
マルチイベント波形の取扱い | |
EventNew | イベントの設定されていないデータからマルチイベントデータを作成します。 |
EventNum? | マルチショット波形のイベントの数を取得する。 |
EventAppend | マルチイベントデータに新しいイベントを追加します。 |
EventDel | マルチイベントデータからイベントを削除します。 |
EventGet | マルチショット波形からイベントを取り出す。 |
EventProp? | マルチイベントデータのイベントのプロパティを取得します。 |
EventProp | マルチイベントデータのイベントのプロパティを設定します。 |
EventJoin | マルチイベント波形のイベントを破棄する。(1つのイベントに結合する。) |
EventSet | マルチイベントデータを定義したイベントと置き換えます。 |
移動平均など | |
MvRMS | データ低減付き移動RMSの算出 |
ExpoRMS | データ低減付き指数重みをかけたRMS |
MvMin | ポイント数を指定し、その区間を移動させながらの最小値 |
MvMax | ポイント数を指定し、その区間を移動させながらの最大値 |
MvMean | ポイント数を指定し、その区間を移動させながらの平均値 |
MvSum | ポイント数を指定し、その区間を移動させながらの積算値 |
時間とオフセットの結合 | |
Add | 2つの値の和算を取ります。結果はX軸の共通部分のみ返されます。 |
Sub | 2つの値の減算を取ります。結果はX軸の共通部分のみ返されます。 |
Mult | 2つの値の積算を取ります。結果はX軸の共通部分のみ返されます。 |
Div | 2つの値の除算を取ります。結果はX軸の共通部分のみ返されます。 |
Append | 2つの波形を結合します。 |
ASCIIファイルの書き出しと読み込み | |
FileOpenASCII | ASCIIファイルを開く |
FileLineWrite | 開かれたASCIIファイルに1行を書き込む |
FileLineRead | 開かれたASCIIファイルの1行を読み込む |
その他 | |
ABCRating | DIN IEC 651に従うA,B,C特性 |
TransRec | imc社のトランジショナルレコードを使ったデータリダクション・アルゴリズム |
Sum | データの合計を求めます。 |
atan2 | アークタンジェント、デカルト座標での角度 |
VarExist? | 変数が存在するか返す |
VarGetInit | FAMOSロードされている変数の総数を返します。 |
VarGetName? | 指定した変数名を返す |
SetBoxPos | ポップアップする出力ボックスの大きさと位置を設定する。 |
BoxMessage | 出力メッセージボックスを表示させる。 |
Qカーソルで指定した2点を通る直線を求める
FAQ ID:s011
Show DATA
CvWin( DATA, 9)
Ret=BoxMessage("Line1設定", "Line1を決定するポイントにカーソルを置き、
確定した後でOKボタンを押してください", "!1")
X1 = CvCursor( DATA, 1)
X2 = CvCursor( DATA, 2)
Y1 = Value( Check1, X1)
Y2 = Value( Check1, X2)
Point1 = XYof(leng(0,2), Leng(0,2))
Point1[1].x = X1
Point1[2].X = X2
Point1[1].y = Y1
Point1[2].y = Y2
CvYAxis( DATA, 2)
CvYAxis( DATA, Point1, 0, 0, 0, 400+5000+70000, -2)
2点間の直線の係数を求めるために関数"Poly"を使用します。
Polyは標準波形しか引数に使用できないので、一度標準波形に変換します。
TempLine = XYdt( Point1.X, Point1.Y, 0.01)
Line1Coff = Poly( TempLine, 1, 2)
Line1 = Line1Coff[2]*ramp( Min(Check1Volt),
(Max(Check1Volt) - Min(Check1Volt))/100, 100)+Line1Coff[1]
CvYAxis( DATA, Line1, 0, 0, 0, 400, -2)
QウォーターフォールのZ方向を正しく表示させたい
FAQ ID:o004
OROSで解析したウォーターフォールデータのZ方向がセグメント番号で表示されています。正しく表示することはできますか?
OROSデータを読み込んだ場合、ウォーターフォールデータはZ方向のデータを持ちません。セグメント番号で管理しています。
従って、ご指摘のようにそのまま表示すると奥行き方向はセグメント番号で表示されます。
この奥行き方向には回転数や時間などが対応します。これらのデータはX軸がセグメント番号になっています。
ここで、回転数が等間隔になっている場合、Z方向のオフセットとサンプリング間隔を設定すれば正しく表示されます。
通常、緩加速データではこの方法で問題ありません。
OROSは測定時の回転数を記録するため、データ不等間隔になっていますが、データ測定時にユーザーは開始回転数やデルタ回転数を設定しているはずです。従って、回転数に多少の誤差があったとしても仕方がないと考え、これらの値を設定します。
FFTメーカーの製品には自動的にこの補正を行い、設定どおりの回転数を出力しているものもあります。
しかし、実際には上と同じ補正を行っています。
ここで、下図のように回転数の変動が激しい、急加速の場合が問題となります。
この場合、回転数データに対応させたラベリングを行わないといけません。
これを実現するためには、セグメントデータをそれぞれ標準波形に変換して、Z方向のオフセットを指定します。
以下にサンプルシーケンスを示します。
;-----------------------------------------
;データの置き換え
DATA = const_b_wf:Wtf_Spectrum_updown
RPM = const_b_wf:RPM_Profile_Tach_1_RPM
;-----------------------------------------
i=1
;結果を格納する変数
NewData = GrNew()
;---------------------------
;全てのセグメントに対して処理
;---------------------------
While i<=Leng?(Data)/SegLen?(Data)
;セグメントを分解するので名前をつける
Name = TAdd( "segment", Tform(i,"F00"))
<Name> = DATA[i]
;プロパティを設定
SetZOff( <Name>, RPM[i])
SetColor(<Name>, RGB(0,0,0))
SetUnit(<Name>, "RPM", 2)
;グループ変数に追加
GrChanAppend( NewData, <Name>)
Delete <Name>
i=i+1
End
Delete Name
Delete i
注意
Z方向の表示が上図のように表示されない場合、カーブウィンドウメニュー”オプション/3D”を選択して、
データのZ方向を”データのZ座標を加える”を選択してください。
QFAMOSを使った周波数解析サンプル
FAQ ID:f004
はじめに
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の機能を拡張させる関数です。スペクトラムキットには周波数解析用の関数が多数含まれます。