第12章付録 数式の関数一覧
数式(第7章)で使える演算子・定数・関数のすべてです。表の「例」の値は、サンプルデータ sample_endurance_run.csv(0〜599.9 s・0.1 s ごと・6000点)で計算した結果です。
12.1書き方の決まり
| 要素 |
書き方 |
説明 |
| 数値 |
3、0.25、1e3、2.5E-1 |
小数点は1つまでです。指数(e・E)の後ろには数字が必要です。全角の数字は使えません |
| 系列(名前) |
`電流`、`電流|sample_endurance_run` |
半角のバッククォートで囲みます |
| 系列(記号) |
$1〜$10 |
記号と項目の対応 で系列を割り当てます |
| 系列(囲まない名前) |
Base |
半角の英字か _ で始まり、英数字と _ だけの名前に限ります |
| 時間の変数 |
x |
各点の X の値です(後述) |
| 区切り |
, |
関数の引数を区切ります |
| 空白 |
|
式の中の空白と改行は無視します |
- 関数の名前は小文字で書きます。
SIN(x) は 未知の関数 になります。
- 定数の
PI・E は大文字です。pi と書くと、系列の名前として探します。
- 次の全角・和文の記号は、半角に直して読みます(バッククォートで囲んだ名前の中は直しません)。
| 書いた記号 |
読み方 |
| ×、✕、* |
* |
| ÷、/ |
/ |
| −(U+2212)、-(全角)、–、— |
-(長音の「ー」とハイフン「‐」は読み替えず、使えない文字になります) |
| ( )、,、. |
( )、,、. |
| √( |
sqrt( |
12.2演算子
| 演算子 |
意味 |
例 |
結果 |
+ - |
足し算・引き算 |
2+3*4 |
14 |
* / |
掛け算・割り算 |
7/2 |
3.5 |
^ |
べき乗 |
2^-2 |
0.25 |
-(前に付ける) |
符号を反転 |
-2^2 |
−4 |
( ) |
先に計算する |
(2+3)*4 |
20 |
- 計算の順は、べき乗 → 符号の反転 → 掛け算・割り算 → 足し算・引き算 です。
- べき乗は右から計算します。
2^3^2 は 2^9 で 512 です。
- 符号の反転は、べき乗より後です。
-2^2 は −(2^2) で −4、(-2)^2 は 4 です。1.0.11 より前の版では -2^2 を 4 と計算していました。保存済みの数式にこの形があると、LOGADEC を開いたときに知らせが表示されます(movavg を使った数式も、計算の決まりが変わったことを同じように知らせます)。
- 割り算の余り(
%)はありません。使用できない文字になります。
12.3定数と変数
| 名前 |
意味 |
例 |
結果 |
PI |
円周率 |
sin(PI/2) |
1 |
E |
自然対数の底 |
log(E) |
1 |
x |
各点の X の値(X軸の単位のまま) |
x |
0〜599.9 |
系列を1つも参照しない式(例: sin(2*PI*x/60))は、画面に読み込まれているデータの X で計算します。状態の表示は「計算準備OK(定数/数式のみ …)」になります。データを読み込む前は保存できません。
12.4点ごとの関数
それぞれの点で計算します。引数には、系列・数値・式を書けます。
| 関数 |
意味 |
例 |
結果 |
sqrt(a) |
平方根 |
sqrt(16) |
4 |
abs(a) |
絶対値 |
abs(-3.5) |
3.5 |
log(a) |
自然対数(底は e)。常用対数は log(a)/log(10) |
log(100) |
4.60517 |
exp(a) |
e の a 乗 |
exp(1) |
2.71828 |
sin(a) cos(a) tan(a) |
三角関数(a はラジアン。度のときは a*PI/180) |
cos(PI) |
−1 |
pow(a, b) |
a の b 乗(引数はちょうど2つ) |
pow(2, 10) |
1024 |
min(a, b, …) |
点ごとの最小(引数は2つ以上) |
min(3, 1, 2) |
1 |
max(a, b, …) |
点ごとの最大(引数は2つ以上) |
max(3, 1, 2) |
3 |
floor(a) |
小さいほうの整数へ |
floor(-2.5) |
−3 |
ceil(a) |
大きいほうの整数へ |
ceil(-2.5) |
−2 |
round(a) |
いちばん近い整数へ。ちょうど半分のときは大きいほうへ |
round(2.5)・round(-2.5) |
3・−2 |
sign(a) |
符号(負は −1、0 は 0、正は 1) |
sign(-7) |
−1 |
- 計算できない点は値なし(NaN)になります。例:
sqrt(-1)、log(-1)、1/0。グラフでは線が切れます。
min・max は点ごとの比較です。系列全体の最小・最大は minval・maxval を使います。例: max(`電流`, 15) は、15 A を下回る点を 15 にします。
12.5集約の関数
系列全体から1つの値を求め、すべての点に同じ値を入れます。引数には系列か式を1つ書きます。
| 関数 |
意味 |
例 |
結果 |
mean(s) |
平均 |
mean(`油温`) |
71.8156 |
std(s) |
標準偏差(点の数 N で割る) |
std(`電流`) |
2.00724 |
sum(s) |
合計 |
sum(`電流`) |
103944.097 |
minval(s) |
最小値 |
minval(`回転数`) |
790.9 |
maxval(s) |
最大値 |
maxval(`回転数`) - minval(`回転数`) |
2233.1 |
median(s) |
中央値(点の数が偶数のときは、真ん中の2つの平均) |
median(`電流`) |
17.0755 |
- 値なしの点は除いて計算します。
- 適用範囲 X を使うと、範囲の中の点だけで計算します。
- 引数は式でもかまいません。
mean(`電流`*2) は 34.648 です。sum(1) は点の数(6000)になります。
- よく使う形:
`油温` - mean(`油温`)(平均からのずれ)、`振動RMS` / maxval(`振動RMS`)(最大を 1 にそろえる)。
12.6時系列の関数
前後の点を使って計算します。
| 関数 |
意味 |
例 |
結果 |
diff(s) |
微分。(今の値 − 1つ前の値)÷(今の X − 1つ前の X) |
diff(`回転数`) |
0.1 s で −97(rpm/s) |
integ(s) |
積分。最初の点を 0 として、台形で積み上げる |
integ(`電力`) / 3600 |
599.9 s で 38.825 |
movavg(s, n) |
移動平均。今の点を含む直前の n 点の平均 |
movavg(`振動RMS`, 10) |
0.9 s で 0.2072 |
shift(s, n) |
n 点ずらす。n が正なら過去の値、負なら先の値 |
shift(`電流`, 1) |
0.1 s で 13.768(0 s の値) |
diff
- 単位は「元の系列の単位 ÷ X の単位」です。X が秒なら、1秒あたりの変化になります。
- 最初の点は、1つ前の点が無いので値なしです。
- X が増えていない点(同じ時刻・戻る時刻)と、前後どちらかが値なしの点は、値なしです。
integ
- 単位は「元の系列の単位 × X の単位」です。電力(W)を秒で積分すると J になります。Wh にするときは 3600 で割ります。
- 最初の点は 0 です。
- 次の区間は足しません(積分の値はそのまま、次の区間から足し続けます)。
- 両端のどちらかが値なしの区間
- X の間隔が、刻み(間隔の中央値)の 1.5 倍を超える区間
- X が増えていない区間
movavg
- n は 1 以上の整数で、数字で書きます(系列や小数は使えません)。省略すると 5 です。
- 最初の n−1 点は、点がそろわないので値なしです。
- 平均する n 点の中に値なしの点があると、その点も値なしです。
- 例:
movavg(`電流`) は5点の平均で、0.4 s の値は 0〜0.4 s の5点の平均 14.0486 です。
shift
- n は整数で、数字で書きます。省略すると 1 です。
- ずらした結果、データの外になる点は値なしです。
- 例:
`回転数` - shift(`回転数`, 1) は、となりの点との差です。
12.7エラーの表示
式に誤りがあると、状態の表示に理由が出て、保存できません。
| 表示 |
原因と直し方 |
| 使用できない文字 |
使えない文字があります。日本語の名前をバッククォートで囲んでいない、全角の数字、% など |
| 未知の関数 |
関数の名前が違います。大文字で書いていないか確かめます |
| (関数名)() の引数は…個必要です |
引数の数が違います。例: pow(2)(2つ必要)、min(1)(2つ以上必要) |
| movavg の n は1以上の整数の定数で指定してください |
movavg の n が小数・0・系列などです |
| shift の n は整数の定数で指定してください |
shift の n が小数・系列などです |
| 閉じられていない(バッククォート)があります |
バッククォートが閉じていません |
| 数値の書き方が正しくありません |
数値の書き方の誤りです。例: 1.2.3、1e+ |
| 構文エラー: 余分なトークンがあります |
演算子が抜けています。例: 2 3、$11 |
| $ の後には 1〜10 の番号が必要です |
記号の番号が違います。例: $0 |
| 系列「…」が見つかりません。名前を確認してください。 |
その名前の系列も、保存済みの数式もありません。名前を確かめます |
| (記号)の対応項目を選択してください。 |
式に使っている記号に、系列を割り当てていません |
| 循環参照があります |
数式どうしが互いを参照しています。入力中の状態の表示ではなく、保存しようとしたときに出て、保存されません |