Notch Data Maker

公開

Notch Data Maker トップ画像

>>Download (2015-10-07 公開, 614KiB / 628,846bytes)

概要

 BVE5用のノッチ曲線データの作成を補助するアプリケーションです。

 当アプリケーションはMITライセンスにて提供されている数値計算ライブラリ「Math.NET Numerics」を利用しています。Math.NET Numericsのライセンス文章は以下のリンクからご確認ください。

更新履歴

2015-10-07
Ver1.0 公開

動作環境

 Microsoft .NET Framework Version 3.5がインストールされているWindows上で動作します。

使い方

 当アプリケーションは独自のパラメータデータを使用したデータの補間・出力とグラフ表示機能を有しています。

 BVE用のノッチ曲線データを出力するために必要となるノッチ曲線パラメータデータはテキストエディタや表計算ソフトを用いて手動で作成する必要があります。また、ノッチ曲線の数値化はGraphcelなどの別アプリケーションを別途ご利用ください。Graphcelを利用したノッチ曲線の数値化手順につきましては、GraphCelによる数値化の記事をご覧ください。

 おおまかなノッチ曲線データ作成の流れは以下のようになります。

  • Graphcelなどを使用し、ノッチ曲線を数値化
  • ノッチ曲線パラメータデータの作成
  • パラメータデータを読み込み、グラフで出力データ確認
  • パラメータデータを編集し、リロードしてグラフを確認
  • BVE用のノッチ曲線データとしてエクスポート

 アプリケーションの操作方法は以下の通りです。

ファイルメニュー

ファイルメニュー一覧

開く

 ノッチ曲線パラメータデータの読み込みを行います。パラメータファイルの読み込みは、メイン画面へのドラッグ&ドロップでも行うことができます。ノッチ曲線パラメータデータの作成法は後ほど解説します。

リロード

 パラメータデータの再読み込みを行います。

エクスポート

 読み込んだパラメータファイルを使用して、BVE用の引張力-速度特性曲線データもしくは電流-速度特性曲線データを出力します。

Current0出力

 引張力-電流特性曲線データへのファイル名がパラメータファイルに記述されている場合、これを元にCurrent0の数値を計算し出力します。複数の同一ノッチインデックスが記述されている場合は、最も左の列に記述されている引張力-電流特性曲線データからCurrent0を計算します。

終了

 アプリケーションを終了します。

メイン画面

メイン画面操作部

インデックス

 指定したインデックスのノッチ曲線をハイライト表示します。元データの全ての座標も共にグラフ画面に表示されます。

グラフX軸最大値

 右に表示される、ノッチ曲線出力データを表示するグラフ画面のX軸最大値を設定します。

グラフY軸最大値

 グラフ画面のY軸最大値を設定します。

加速度表示

 引張力-速度特性曲線データを表示している場合において、チェックを入れると下の「車両パラメータ」に記載された数値を元に加速度曲線(km/h/s単位)を計算し右のグラフ画面に表示します。なお、慣性係数はBVEのデフォルト値を使用しています。

パラメータファイルの設定

 ノッチ曲線データの作成を行うためには、まずCSV形式のパラメータファイルを作成する必要があります。一列目に設定項目名を文字列で記述し、二列目以降に設定内容を数値もしくは文字列で記述します。

 パラメータファイルには、全てのノッチ曲線に対して行う共通設定と、各ノッチ曲線データに対して行う個別設定の二種類があります。

 いくつかの形式のノッチ曲線データ用のサンプルパラメータファイルと、パラメータファイルのひな形として使用できる表計算シートファイルをSampleフォルダ内に同梱しています。パラメータファイルの設定の参考にしてみてください。

ヘッダ

 パラメータファイルの一行目にはヘッダ文字列『Notch Data Maker Parameter Table 1.00』を記述します。

 ヘッダ文字列の後にコロンで区切って文字エンコードを指定することにより、文字エンコーディングを指定して読み込みを行うことができます。文字エンコーディング指定を省略するか、もしくは不正なエンコーディング指定が行われた場合はUTF-8で読み込みを行います。正しいエンコーディングが指定されない場合、日本語が文字化けする可能性があります。

共通設定

 設定内容は二列目のみに記述してください。それ以外の列に記述した場合は無視されます。共通設定の設定項目名は以下の通りです。

設定項目名概要
UnitConversion単位変換の設定
OutputSpeedMin出力データの速度最小値
OutputSpeedMax出力データの速度最大値
OutputSpeedInterval出力データの速度間隔
OutputValueMin引張力or電流出力の最小値
OutputValueMax引張力or電流出力の最大値
OutputEncoding出力文字エンコーディングの設定
OutputHeaderVersion出力データのバージョン指定

UnitConversion

 入力データのうち引張力もしくは電流に適用する単位変換の設定を行います。省略した場合は単位変換を行いません。

 以下の一覧の「設定文字列」に示す力の単位を文字列として入力した場合、その単位をニュートンに変換する数値を自動で設定します。主電動機個数(MM)は4個で固定です。

設定文字列別の表記例
N/MMN/M
kN
kN/MMkN/M
kgfkg
kgf/MMkg/MM, kg/M
tonfton, t
tonf/MMton/MM, ton/Mなど

 上の表に掲載されていない単位変換を行いたい場合は、正の実数値を記述します。その場合、引張力もしくは電流の入力データにその実数値を乗算します。

OutputSpeedMin

 出力ノッチ曲線データの速度最小値を正の実数で設定します。省略した場合のデフォルト値は0です。

OutputSpeedMax

 出力ノッチ曲線データの速度最大値を正の実数で設定します。省略した場合のデフォルト値は160です。

OutputSpeedInterval

 出力ノッチ曲線データの速度値間隔を正の実数で設定します。省略した場合のデフォルト値は1です。

OutputValueMin

 引張力もしくは電流の出力値の最小値を設定します。省略した場合のデフォルト値は0です。

OutputValueMax

 引張力もしくは電流の出力値の最大値を設定します。省略した場合のデフォルト値は1000000です。

OutputEncoding

 出力ノッチ曲線データの文字エンコーディングを設定します。省略した場合や不正なエンコーディング文字列が設定された場合は、パラメータファイルの読み込み時と同じ文字エンコーディングで出力します。

OutputHeaderVersion

 出力ノッチ曲線データのヘッダに記載されるバージョン番号を設定します。省略した場合は1.00に設定されます。

個別設定

 以下の表は各曲線データに対して設定する個別設定の項目名一覧です。

設定項目名概要
NotchIndexノッチインデックス
NotchLabel各ノッチ識別用ラベル
CurveDataFileName引張力or電流-速度曲線データファイル名
ForceCurrentFileName引張力-電流曲線データファイル名
InterpolationMethod補間方式
CurveCrossing曲線交差時の数値比較

NotchIndex

 ノッチインデックスを整数値で記述します。同じインデックスを複数記述した場合、複数の曲線を組み合わせたノッチ曲線データを作成します。この設定項目は必須です。

NotchLabel

 ノッチインデックスをわかりやすくするためのラベル文字列を記述します。省略した場合、特性曲線データのファイル名を採用します。複数の同一ノッチインデックスが記述されている場合は、最も左の列に記述されているラベルが有効になります。

CurveDataFileName

 CSV形式の電流-速度特性曲線もしくは引張力-速度特性曲線データのファイル名をパラメータファイルからの相対パスで記述します。この設定項目は必須です。

 ここで読み込むデータファイルには、1列目に速度、2列目に1列目に記載の速度に対応する引張力もしくは電流を記載します。数値以外の文字列は無視されます。Graphcelで出力したCSVファイルをそのまま読み込ませることも可能です。

ForceCurrentFileName

 電流-速度特性曲線を引張力-速度特性曲線に変換するためのCSV形式の引張力-電流特性曲線データのファイル名をパラメータファイルからの相対パスで記述します。

 ここで読み込むデータファイルには、1列目に電流、2列目に1列目に記載の電流に対応する引張力を記載します。こちらもGraphcelで出力したCSVファイルをそのまま読み込ませることが可能です。

InterpolationMethod

 データの補間手法を選択します。省略した場合は「定数」が指定されます。

 各補間手法と設定文字列の対応は以下の通りです。日本語の設定文字列2を利用する場合は、正しくない文字エンコードが指定されると文字化けして認識できなくなる可能性があるため、文字エンコーディング指定に注意してください。

設定文字列1設定文字列2補間手法
Constant定数定数
LinearRegression線形回帰直線あてはめ
QuadraticRegression二次回帰二次関数あてはめ
FractionalRegression分数回帰分数関数あてはめ
LinearInterpolation線形補間 線形補間
SplineInterpolationスプライン補間スプライン補間
AkimaInterpolation秋間補間秋間スプライン補間

 飛び飛びのデータ間の数値を求める手法は大別して曲線あてはめにより求めた式を利用するものと、各種補間法を利用するものの二種類に大別されます。

 曲線あてはめは電流と速度、もしくは引張力と速度からなるデータの組に回帰分析により最もよくあてはまる曲線の関数を求め、これに等間隔の速度値を代入してBVE用のノッチ曲線データを作成します。適切にあてはめる関数を選択すれば、データの範囲外の数値ももっともらしく求められるという特徴があります。

 補間は発電ブレーキ特性曲線や気動車の性能曲線など、特定の式で表しづらい複雑な形の曲線データに向いています。ただし、データの範囲を大きく離れた値の推定にはあまり向いていません。

定数

 傾きが0の直線を線形回帰により求めてあてはめます。

直線あてはめ

 一次関数\(y = ax + b\)を線形回帰により求めてあてはめます。データの組は最低2つ必要になります。

二次関数あてはめ

 二次関数\(y = ax^2 + bx + c\)を二次回帰により求めてあてはめます。データの組は最低3つ必要になります。引張力-電流曲線データに関しては二次回帰を適用しています。

分数関数あてはめ

 分数関数\(y = 1 / (ax^2 + bx + c)\)を二次回帰により求めてあてはめます。データの組は最低3つ必要になります。電流-速度特性曲線や引張力-速度特性曲線に現れる曲線によくあてはまります。

線形補間

 それぞれのデータ間はデータの組は最低2つ必要になります。発電ブレーキ特性曲線の補間に適しています。

スプライン補間

 データの組は最低2つ必要になります。

秋間スプライン補間

 データの組は最低5つ必要になります。

CurveCrossing

 同じNotchIndexが複数記述されている場合において、パラメータを記述する列のノッチ曲線と、その右の同一ノッチインデックスのノッチ曲線が交差している時、どの曲線の電流or引張力値(Y軸値)を選択して出力するのかを設定します。一つのノッチ曲線に対して3つ以上の曲線データが指定されている場合、まずは1つ目の曲線データと2つ目の曲線データを比較し、以後は前の比較結果と次の曲線データとの比較を順次行っていきます。

CurveCrossingの設定による出力結果の違い

 設定文字列と設定内容の対応は以下の通りです。省略時にはLessが指定されます。

設定文字列 概要
Less 両者のY軸値を比較し、小さいほうの値を出力
Greater 両者のY軸値を比較し、大きいほうの値を出力

Tips

Graphcelによる数値化時におけるノッチ曲線画像の方向

 電流-速度曲線や引張力-速度曲線をGraphcelで数値化する場合、X軸(横方向)に速度の軸が来るように画像の向きを設定します。

電流or引張力-速度特性曲線

 また、引張力-電流曲線の場合は電流がX軸となるようにします。このように画像の向きを設定することにより、Graphcelで数値化して出力したCSVデータをそのまま読み込ませることができます。そうでない場合、別途X座標値とY座標値を入れ替える作業が必要になります。

引張力-電流特性曲線

複数の曲線の組み合わせ

 複数の曲線を組み合わせて複雑なノッチ曲線を作成する場合、、まずは別々のインデックスでパラメータを登録し、順次交差の具合を確認しながらインデックスを統合していくことをおすすめします。

東武10080系ブレーキ電流特性曲線の設定過程

西武2000系ブレーキ電流特性曲線の設定過程