FAQ
FAQ検索結果
検索キーワード:
QBBM社PAK softwareで読み込み可能なUFFファイルをFAMOSから出力するには?
Qグラフの表示更新速度を速くしたい、遅くしたい。
QVersion 8.20 リリースノート
Qデータサイズが大きすぎてExcelに貼り付けられません
波形を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行しか保存できない
Qアクティブなウィンドウのみオートスケール
QVersion 8.00 リリースノート
Q一度に違う形式のデ―タを読み込みたい
メニュー"ファイル/開く"を選択して表示された標準の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関数のパラメータ指定方法について
平滑化する幅が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)
Q複数トレースにまとめてウェイティング設定などを設定したい
QVersion 7.00 リリースノート
Qレインフロー法概要
レインフロー法は、振幅の大きさを基準にクラスをカウントしていく手法です。
この振幅の大きさを考える手法は、屋根を流れる雨水の経路をイメージするとわかりやすいです。例として、下図のようなデータがあるものとします。

そして、時間軸を下方向にとった下図のような形で考えます。

例えば、下図の赤〇、緑〇からのポイントから雨水が流れるとすると、図のような経路を取ることがイメージできます。雨水は、その他すべての極値(尖った点)からも同様に流れていきます。

レインフロー法で重要となるのは、一度極値から流れ始めた雨水が、どの点で停止するかです。流れが始まった点、停止した点を使うことで、その経路での振幅を考えることができます。
雨水は、以下の2条件で停止します。
1)流れが右向きである場合、その出発点よりも、もっと左側に次の右向きの出発点がある場合。 (左向きの場合も同様、左右を読み替えて考える)
2)屋根に既に雨水が流れていた場合。
1)流れが右向きである場合、その出発点よりも、もっと左側に次の右向きの出発点がある場合。 の具体例を考えてみましょう。
下図の点Aから流れた雨水は、このような経路を通ったうえでt=4である点で停止します。
これは、点Cが、点Aよりも左側にある、同じく右向きの出発点であるためです。
点Bも右向きの出発点ではありますが、「出発点よりも左側にある」という条件を満たさないため、ここでは停止しません。

この流れの振幅は、出発点がy=0、停止点がy=4、という情報が使われます。
(実際の解析においてはこれらの値から振幅や平均値を求めます)
2)屋根に既に雨水が流れていた場合。
の具体例を考えてみましょう。
先ほどと同じく、下図の点Aから流れた雨水は、このような経路を通ったうえでt=4である点で停止します。
次に点Bから右向きに流れる雨水を考えると、これはすぐに点Aから流れた雨水とぶつかることになり、「屋根に既に雨水が流れていた場合」の条件を満たして停止します。

この流れの振幅は、出発点がy=1、停止点がy=2、という情報が使われます。
レインフロー法では、これらの出発点、停止点から「サイクル」という考え方を使います。ある振動が例えばy=0からy=4まで変化したとして、逆向きのy=4からy=0の変化があればそのセットが「1サイクル」です。片方のみの変化があればそれは「ハーフ(1/2)サイクル」として考えられます。
そのため、最終的な結果ではカウントとして0.5という数値が現れることがあります。これは、該当するクラスにおいてハーフサイクルがカウントされたことを意味します。
Q疲労寿命推定、S-N線図の作成
疲労寿命推定
頻度解析の結果を利用する典型的な例としては疲労寿命推定があります。
ここでは、S-N線図を用いて材料・製品等の疲労寿命を推定する方法について説明します。
S-N線図とは下図のような曲線で、応力(S)と繰り返し回数(N)の関係を表しており、材料・製品自体の特性を示すものです。

例えば下図に示す1点に着目してみましょう。
これは、このS-N線図が示す対象は、10^4程度の応力(S)を加えられた場合、10^5程度の繰り返し回数で破断・破壊されるということを意味します。

疲労寿命推定では、このS-N線図を元に、まず「ダメージ」を見積もります。
先ほど説明した1点、10^4程度の応力(S)を加えられた場合、10^5程度の繰り返し回数で破断・破壊される、ということは、10^4程度の応力が「1回」加えられた時のダメージは1 / 10^5、と言い換えることができます(=ダメージの累計が1で破断・破壊)。

同じことがすべての応力の値に対して考えられるので、試験データを頻度解析した結果からは、その試験での累計のダメージ、を求めることができます。
そこから、対象の疲労寿命を推定できます。例えば以下のような考え方です。
| 試験データの累計ダメージ | 0.02 |
|---|---|
| 試験データが示す時間(実際の動作環境に換算する) | 10h |
| 推定される疲労寿命 | 10h / 0.02 = 500h |
「試験データが示す時間」は、例えば車両であれば距離[km]で表現してもよいでしょう。その場合は疲労寿命も距離[km]の単位で求められることになります。
次項より、実際にimc FAMOSで疲労寿命推定を行う場合のシーケンス記述について説明していきます。
S-N線図の作成
S-N線図の作成は以下のようにSの配列、Nの配列を作成してそれぞれの値を指定し、それを結合する形で作る方法が簡単です。
作成されたS-N線図のデータはファイルとして保存しておけば、以後の解析に使いまわせます。
; 配列の作成
_S = Ramp(0, 1, 3) ; 最後の3が配列の長さ
_N = Ramp(0, 1, 3)
; S/Nそれぞれの値の設定
_S[1] = 1e6
_S[2] = 1e3
_S[3] = 1e1
_N[1] = 1e3
_N[2] = 1e6
_N[3] = 1e10
; 結合、N(=横軸)が先であることに注意
SN = XYof(_N, _S)
QClsPeak1関数(カウント方法、パラメータについて)
カウント方法について
ClsPeak1関数は、ある参照ラインを設定し、そのラインを超えた2点間の最も大きい極値のみをカウントする、という手法を取ります。
例として下図のデータで、参照ラインとして0の場合を考えます。
そうすると、最初の山はy=6とy=5の2つの極大値の両方が、「参照ラインを超えた2点間」に含まれています。そのため、ここではより大きい極値であるy=6のみがカウントされます。
なお、y=2に極小値も存在していますが、極小値は逆に「参照ラインを下回った2点間」をカウントしていくため、この極小値はカウント対象となりません。

同じデータで、参照ラインとして3の場合としてみましょう。
そうすると、y=6とy=5の2つの極大値は、それぞれ別の「参照ラインを超えた2点間」に含まれています。そのため、この状態ではy=6の極値もy=5の極値も両方カウントされます。
(先ほどの例とは逆に、y=2の極小値はカウント対象となります)

同様の考え方が他の極大値、極小値すべてに対しても行われてカウントされていきます。
なお、データの始点/終点もカウントの対象となります。
関数のパラメータについて
ClsPeak1関数のパラメータは以下のようになります。
Result = ClsPeak1(data, MaxValue, MinValue, Number of bisn, Reference, Hysteresis, Options)
| Result | カウント結果の変数名 |
|---|---|
| data | カウント対象データの変数名 |
| MaxValue | カウントするレンジの上限 |
| MinValue | カウントするレンジの下限 |
| Number of bins | 分類するクラスの数 |
| Reference | 参照レベル |
| Hysteresis | 小さな振動を無視するためのヒステリシスの大きさ |
| Options | カウントする際の挙動に関するオプション設定 |
MaxValue, MinValue, Number of binsは、クラスの設定に関するパラメータです。
例として、下図のように-12から+12までの範囲を6個のクラスにするとします。この時のパラメータは
| MaxValue | 12 |
|---|---|
| MinValue | -12 |
| Number of bins | 6 |
となります。(imc FAMOSのクラスは標準では0から始まります)

実際の解析例は、下図のようにどのクラスにいくつの極値がカウントされたか、という系列となります。この解析はReference=0で行っています。
クラス3, 4のカウント結果が疑問の方は「カウント方法について」の説明をご参照ください。
なお、このデータは分類のわかりやすさのために、「カウント方法について」のデータとは多少値を変更しています。(クラスの境界に値が乗らないよう)

Reference(参照レベル)の考え方は「カウント方法について」を参照してください。
0を中心に正負に振れるようなデータであれば、0としておくのがよいでしょう。
Hysteresisは微小な振動(ノイズ等)を無視させるためのパラメータです。
例として、下図のようなデータを参照ライン=0としてそのままカウントした場合、0付近に存在するノイズ成分で余分なカウント結果が出現します。
Hysteresis=1のように設定すると、振幅が1に満たない微小な振動を無視するようになり、実際に欲しい解析結果に近い値が得られるようになります。

optionsはオプション設定用の値で、以下の4つが存在します。
0:オプション設定なし。
1:クラスの上限/下限の外にあるデータもカウントの対象とします。
例えば、クラスの上限が8でy=10の極値がある場合、この極値は上限のクラスに含まれるものとして カウントします。逆にoptions=0の場合はこの極値は無視されます。
2:参照レベルを関数が自動的に決定します。Referenceで設定した値は無視されます。
3:1と2のオプションを同時に適用します。
Qコマンド・関数・キットで同じようなコマンドがありますが、何が違うのですか?
FAMOSの歴史と関係します。概念として以下のような違いがあります。
| コマンド | 非常に簡単に使用できますが、細かなことはできません。 コマンドはFAMOSの古いバージョンで使用していた関数です。 以前のバージョンとの互換性を保つために残されています。 |
|---|---|
| 関数 | 信号処理ソフトウェアとして必要な機能を集約しています。通常はこの関数を利用してください。 |
| キット関数 | 関数でも実現できますが、さらに専門的な処理を実現したものです。 キット関数はアプリケーション使用時のメモリー消費を抑えるために、メニューメニュー”エクストラ/オプション”の”機能拡張/キット関数の登録”で使用するか否か設定可能です。 |
Q複数のグループ変数にある同じチャンネルをまとめたい
Q3 温度係数とは何ですか。温度係数はどのように適用されますか。
温度が変化すると、マイクロホンの感度に影響が出ることがあります。IEC 61094-4 (計測用マイクロホン) 規格で必要とされる係数は、温度の変動による感度の変化を見積もるために使われます。
詳細情報:
ダイアフラムの堅さと、ダイアフラムとバックプレート間の空隙は、バネのように作用します(下図参照)。温度、湿度、気圧の変化は、上述のバネ効果を変化させ、従ってマイクロホンの感度を変化させます。感度の変化を補正しないと、エンドユーザーが正確に計測しようとしている音圧の計測値が不正確になります。

環境の変化に伴う感度の変化を補正するもっとも良い方法は、しばらく待ってマイクロホンが安定してから、試験環境における正確な感度を携帯型校正器(CAL200等)で計測することです。
携帯型校正器(またはピストンホン)をお持ちでなければ、仕様書にある係数を用いて計算をして、環境の影響を見積もることができます。この例では、気温の変化による感度の変化を補正します。
全ての校正証明書には、オリジナルのマイクロホンの感度と、校正時の環境条件が示されています(下記参照)。

温度係数(下表参照)を用いて、環境影響を加えたり差し引いたりできます。正数であれば、右上がりの傾きを意味します(低温では感度が低く、高温では感度が高くなります)。

上述の377B02型マイクロホンを使って100℃の環境下で計測する際の感度を計算するには、校正証明書にある温度との差に係数をかけてください。
∆T = 100℃ – 21℃ = 79 ℃ temperature change 79 ℃ * 0.009 dB/℃ = 0.71 dB
377B02型マイクロホンの例では、感度は49.62 mV/Paであり、これは -26.09 dB re 1V/Paに等しくなります。温度変化に伴う感度の変化0.71 dBを-26.09 dBに加算すると、次のような感度が得られます。
0.71 – 26.09 = -25.38 dB re 1V/Pa
新しく求められた-25.38 dB re 1V/Paに、適切な対数換算式を当てはめてmV/Pa単位の感度に換算すると、100℃では53.83 mV/Paというより高い感度が得られます。49.62 mV/Paから53.83 mV/Paへの変化は、直接気温の変化によるものです。
IEC61094-4規格では温度係数は-10℃から+50℃まで求めるよう規定されていますが、PCBでは試験の結果、係数がマイクロホンを使用可能な120℃まで有効であることを確認しました。
QExcel2003がインストールされている場合、Excel形式で出力できません
Version 4.0 Rev.7までのFAMOSはExcel2003に対応しません。
(Excel2003の方が後から開発されたため。)
Excel2003に対応するためには以下のファイルをダウンロードして、
c:\imc\binに上書きしてください。



V6以前の場合