HOME >> 鉄道模型実験室 > 動力車の発進時や停止時の動き

鉄道模型実験室  動力車の発進時や停止時の動き

■ はじめに

 つい最近、TOMIXのEF210形機関車を導入した。 近くを走るJR在来線で、コンテナ車を牽引する姿を度々見ていたので、マイコレクションに追加することにしたのである。これによって、小型のEF210形と合わせて、親子セットが増えたことになる。 そして、その動力車が滑らかに発進して行くのをじっと見ていて、その特性を何らかの方法で比較検討できないものかと思案を始めた。 また、悪い虫が動き出したのである。

 今までの動力特性の測定は、速度変化具合を考慮しない、いわゆる “静特性” を対象にして来た。 発進時や停止時の動きを見るとすると、何らかの “動特性” を見て行かなくてはならないのである。 動特性と言えば、周波数応答とか過渡応答とかの高等な分野に入り込みそうであるが、鉄道模型、特にNゲージの場合は、質量の影響は殆んど考慮する必要はないと判断しているので、F = mαの式や運動方程式はお呼びではないのである。 モータが低電圧からゆっくりと回り始めてくれるのだろうか、駆動系の摩擦抵抗は少ないのだろうか、通電部の接触不良はないだろうかといった要因を見て行けば良いと考えている。

 実車の場合には、その加速性の良し悪しは優秀な車両の重要特性であるが、Nゲージの場合はまったく逆である。 如何にして脱兎のごとく飛び出さないようにするか、この努力が今の鉄道模型メーカーの腕の見せ所になったいると思っている。

             如何にゆっくりとスムースに発進させるのか! 

 鉄道模型には、この観点から発進時や停止時の動きを見て行けば良いのではないかと考えている。 しからば、その特性はどうやって測定し、そして、測定されたデータをどのように考察していけば良いのであろうか? これが今回のテーマである。

 

■ 動き始めを測定するには

  .

 鉄道模型は供給電圧でしか制御出来ないので、模型車両を発車させるためにはコントローラの電圧を上げて行くしかないのである。 ただし、DCCの場合を除く。 そこで、この供給電圧を徐々に上昇させた状態を想定して電圧、電流、車速の状態を表現してみると、左の様なグラフで表わされると考えられる。

 電圧をゼロから徐々に上げて行くと、モータの巻線抵抗に応じて電流も流れ出すが、まだモータは回転しないので、車両も動かない。 そして、ある電圧になると、突然モータが動き出し、その回転によって逆起電力が発生するため電流値は下がり始める。 そして、モータ回転の上昇に伴い車速もアップして行く。

 しかし、供給電圧と逆起電力がバランスし、今まで測定してきた速度特性(静特性)の値に一致すると、その後は供給電圧に依存した状態となる。

 即ち、 のゾーンではモータのロック特性を示し、 のゾーンでは今までの速度特性(静特性)を示す。 問題の発進特性は、 のゾーンにのみ表れのである。 このゾーンの動きを把握出来れば発進特性を掴んだと言えるのである。 停止時でもこの逆の事が言えるのである。

 一般に過渡応答では、突然ある一定値の値をそのシステムに与え、そのシステムの動きが一定値になるまでの時間や特性カーブを評価して過渡応答特性としてきた。 しかし、我々の鉄道模型では、そのようなデータには何ら興味が無いのである。 逆に脱兎のごとく飛び出す事すら “悪” なのである。 むしろ、動き始めの電圧値が小さく、かつ、その電圧で走れる速度が低いほど、スムースでゆっくりとした発進が出来のであり、“性能の良い鉄道模型車両” と評価されるのである。 即ち、図の 点である発進時の電圧値が評価の対象になると考えるべきであろう。

 本来なら、発進を始めたらその電圧を維持すべきであるが、これはなかなか難しそうな操作と予想する。 そして、問題は車両の速度をどうやって測定するかである。 電圧や電流は、今までの自動測定装置を使用すれば実施出来そうであるが、車速測定はゲート間を一定速度で通過する時間から計算していたので、この方法が使用出来ないのである。

 今回の測定の目的が、発進時の電圧を知ることなので、あえて車速を測定しなくても出来そうであると判断し、早速トライして見ることにした。

 

■ 装置の手直し

 取りあえず、現在の測定装置で、電圧と電流を測定してみよう。 測定装置とデータ処理のパソコンを下に示す。 測定用Arduino とパソコンの間はUSBケーブルで接続しシリアル通信を実施している。 今回は測定台の傾斜装置はまだ取り付けていない。

 測定台は従来のままで、電源は安定化電源を使用している。 速度測定用ゲートは使用しないのでArduino へは接続していない。 2個のコネクタは外している。

 ハード類はそのまま使用するとしても、測定開始のスイッチの追加が必要であったのでブレッドボードを使って配線した。 

 ***** スケッチの内容 ******

#define START_PIN 13
#define LEDG_PIN 9
#define LEDY_PIN 8
#define LEDR_PIN 7

void setup()
{
  pinMode(START_PIN,INPUT);
  pinMode(LEDG_PIN,OUTPUT);
  pinMode(LEDY_PIN,OUTPUT);
  pinMode(LEDR_PIN,OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  int voltage;
  int current;
  int angle;
  unsigned long vol;
  unsigned long cur;
  int angle_pin = 0;
  int vol_pin = 1;
  int cur_pin = 2;
  int n;
  int i;
  unsigned long t1;
  unsigned long t2;
  unsigned long tt;
  int start;

  //測定開始ボタンの動作チェック
  start = digitalRead(START_PIN) ;
  if (start == HIGH){
    digitalWrite(LEDG_PIN, HIGH);

    //測定開始ボタンを待つ
    while (start == HIGH) {
      start = digitalRead(START_PIN) ;
    }
    digitalWrite(LEDY_PIN, HIGH); 
    //測定開始
    t1 = millis();

    for(n=0; n<125; n++){   
// 0.2*25=125 回測定する       vol = 0;       cur = 0;      //測定       for(i=0;i<10;i++){         voltage = analogRead(vol_pin);         current = analogRead(cur_pin);         vol = vol + voltage;         cur = cur + current;       }       t2 = millis();       angle = analogRead(angle_pin);              //出力処理       tt = t2 - t1;       String buf = String(vol) + ","
+ String(cur) + "," + String(tt
)+ "," + String(angle) + ",E";       Serial.println(buf);       delay(196);     }     digitalWrite(LEDY_PIN, LOW);     //測定完了     digitalWrite(LEDG_PIN, LOW);        }    else {    //スタートボタン不良エラー処理     digitalWrite(LEDR_PIN, HIGH);     delay(500);     digitalWrite(LEDR_PIN, LOW);   }  }

 測定装置の説明が先行したが、測定方法を次に示す。

  1. 測定車両を直線路の端に停車させておく。
  2. 電源電圧をゼロにしておく。
  3. パソコン側の処理ソフトをスタートさせる。
  4. 測定開始のボタンを押してArduino の測定を開始する。
  5. 電源電圧を徐々に上げて行き、動力車を発進させる。
  6. 規定の時間が経過するとArduino は測定を終了し、次のスタートボタンが押されるまで待機する。
  7. パソコン側の処理ソフトのデータをチェックして整理する。

 この様な内容を実行出来るように、Arduino 回りの回路を下のように修正した。 スタートボタンの追加である。

 

 Arduino は、次の動作を実施するようにスケッチに書き込んだ。 傾斜量については、測定台を傾斜させておくことにより、負荷荷重が掛った状態での発進特性を測定することになるので、いまからその処理を残しておくことにした。 また、電圧と電流は10回測定して平均値を計算することにし、0.2 秒毎のデータを測定を測定することにする。

  1. スタートボタンのON により測定を開始する。
  2. 測定開始の時刻を記憶する。
  3. 電圧と電流を10回測定して、その累積値を計算する。
  4. 傾斜量を測定し 測定開始からの経過時間も計算する。
  5. 電圧と電流の累積値、傾斜量、および経過時間のデータを送信する。
  6. 指定時間(0.2 秒)待つ。
  7. 手順(3)に戻り、指定回数の測定ループを実施する。
  8. 指定回数の測定ループが完了したら、手順(1)に戻り、スタートボタンがON されるまで待機する。

 スケッチの内容を右に示す。 シリアルモニタを見ながらプログラムの修正と調整を行った。 手順(6)の指定時間について、送信されてきた経過時間のデータを見ながら調整したもので、電圧と電流を10回測定しても、その必要時間は 4msec 程度で済んでいる事になる。 これはまだまだ余裕がありそうである。

 測定ループの指定回数は125回としているが、これは0.2 秒毎のデータ測定を125回実施する、即ち、25秒間測定するように設定したものである。

 パソコン側の処理は、EXCELを使用して測定データをグラフ表示させる。 処理内容は暖機運転時の処理内容をもとに、不要な計算部分を取り去って修正した。 ゲートの経過時間による速度計算などは不要であり、グラフの表示方法も修正した。

 

 

 

■ 実験開始

 適当な車両を選択して早速実験を開始した。 試験車両は EF65-1097号機である。 シリアルモニタにより、Arduino からの送信を確認し、上記のように定数を調整した後、EXCELでの取り込みを実施した。

 その結果の一部を下に紹介する。 この状態を茫然と眺めてしまった。 何が起きているのかすぐには理解できなかった。 場合によっては、EXCELがフリーズしてしまうのである。 自分の思惑では、Arduino からの送信データは左のvol欄、cur欄、tt欄、angle欄、Type欄にしか書込まないはずなのに、右の方の計算欄や枠外まで勝手に書込み、さらにデータを2重に書き込む欄まであるのである。

 

 シリアルモニタには正しく表示されているので、シリアル通信は正常と判断する。 従ってEXCELの処理がおかしいと判断する。 おそらく処理が追いつかないのではないかと想定して、送信処理を1秒毎に変更してみると、データは正しく書き込まれEXCELは正常に処理を実行した。

 1秒毎のデータ処理では、目的とする測定は達成できないので、なんとか処理する方法を検討した。 0.2 秒毎に測定して5回分のデータを一度に送信すると、EXCEL側の処理は1秒毎になるので上手く行くのではないかとテストするも、この方法もダメであった。 しつこくいろいろ試してみたがあきらめて他の方法で測定する事にした。

 

■シリアルモニタを活用する

 EXCELでの受信処理はあきらめて、シリアルモニタを活用する方法にて実験してみた。 その方法は、

  1. Arduino のシリアルモニタにて受信データを表示させる。 データはコンマ区切りで表示される。
  2. 測定が終了すると、データを全て選択してコピーを実施する。
  3. 開いているノートパットにペーストして、テキストデータとして保存する。 コンマ区切りのデータファイルとなる。
  4. EXCELからこの保存したコンマ区切りのテキストファイルを開き、コンマを区切りとして処理する。
  5. データが表示された欄を全て選択してコピーする。
  6. EXCELに設定してある指定のデータ処理シートの指定欄に、値だけをペーストする。

 これに依って、受信データは必要な処理が実施され、グラフ表示が可能となる。 何のことはないEXCELでの受信処理を手動で実施したのである。 でも、測定データは綺麗にグラフ化することが出来た。 その例を下に示す。

 グラフは横軸に経過時間を、縦軸に電圧と電流を表示させた。 上左のグラフ。 電圧を一定に上昇させるのは結構難しいが、発進状態は上手く測定できていると判断する。 このデータを電流-電圧特性として表示したのが上右のグラフである。 これらのグラフよりモータが動き出したのは、1.5Voltを過ぎてからと読み取れる。

 なお、この時の測定条件は、電圧と電流を 50 回測定してその累積値を、0.112〜0.114秒毎に送信している状態であった。 delay(100) である。 このデータ間隔ではまだ荒さが目に付くので、 delay(50) として測定した結果が下のグラフである。

 測定の密度は上がり、送信間隔は、0.062〜0.064秒であった。 この密度で対応できるのであれば充分と判断する。 でも、今回の発進時の電圧は、2.8Voltであり、前の測定とかなり異なっている。 これはバラツキなのであろうか? 電流-電圧特性をみていても直線部のパターンが異なる様にも見える・・・・・・。

 次に最新車両であるTOMIXのEF210-109号機を測定してみることにした。

 最新車両でもあるので、走り出しは 1.4Volt と低く、その後の電流の落ち込みも少ないし、定常運転領域でのバラつきも小さいと言えよう。 この辺の数値がスムースな走り出しを評価する尺度になりそうである。

 次に、KATOのEF510 500 カシオペア色 EF510-510号機の発進特性をみてみることにしよう。

 走り出しは 2.8Volt と意外と高く、その後の電流の落ち込みも絶対値は小さいものの、割合としては3割もダウンしている。 全体に消費電流が少ないのはこのモデルのうたい文句であるが、落ち込みの割合が大きいのは意外である。 今回は、スタート直後から3秒ほど電圧を一定にして見たが、その時の電流変化は見られないので、車両は既に定常状態に入っているのだろうか? 車両の速度を測定してみないと分からない様である。

 次に、停止時の特性を測ッて見よう。 あれこれといろいろのアイディアが湧いて来て面白くなってきた。 電圧を段々と減少させてきた時の状態はどうであろうか?

 電圧が 2.1Volt まで低下すると、電流値がぴょんと跳ねあがっている。 この時にモータが停止したと判断出来るが、走り出しとは 0.7Volt も開きがある。 これは予想された現象であるが、意外と正確に測定出来るようである。 そこで、電源を突然切ったらどうなるのであろうか? フライホイールによって慣性運転をしている様子を見ることが出来るであろうか? 早速実験してみた。

 一定電圧で走行中に、供給電圧をスイッチに依って切断した場合のデータを上に示す。 電流値は瞬時にゼロになっているが、電圧は1.5秒ほどかけてゼロに落ちているのが判る。 しかし速度はどうだったのだろうか? 完全に停止したのは何時で、どこまで走ったのだうかと知りたくなる。

 なお、これらの走り出し電圧などは、その模型車両のバラツキやメンテナンス具合、あるいは測定条件によってかなり変化すると思われるので、この値だけで模型車両の良し悪しを判定するのは危険である。 自分の所有している現在の状態を示していると認識しておこう。

 

■ まとめ

 今回の実験で、模型車両の発進や停止状態を測定出来ることが判った。 多くの改良点が有るので、更なる工夫が必要と考えている。

  1)EXCELを使って直接的にデータ処理を実施したい。
シリアルモニタを使ってのデータ処理は可能であるが、かなり面倒である。 原因はシリアル通信で受取ったデータを如何に素早く正確に処理する事が出来るのかといった点にあると思っている。 このため、他の方法を考えてて見たい。 例えば、有名な “EasyComn” を使用したらどうなのだろうか。 但し、このサイトは現在閉鎖されているが、以前にダウンロードしたファイルが有るので、これを使ってみることにしよう。
  2)速度情報の代わりに位置情報をセンシングしてみよう。
発進や停止時の動きを的確に把握するには、速度データが必要である。 模型車両に触れずに測定するにはスピードガンなどの道具があるものの、ホビーとしては高価な道具となってします。 精度的にも問題ありそうです。 そこで位置情報をセンシングして車両の動きを把握する方法を検討してみたいと考えています。
  3)停止時の測定の工夫
停止時の状態を実験してみたが、電流と電圧では良く判らないようである。 位置情報が加わればもう少し判断材料が増えると期待してる。 ねらいはフライホイールの有無による違いを把握したいのである。 発進時でも判断出来るかも知れないが、停止時にはフライホイール搭載車の違いを実感しているからです。 停止距離などが把握できそうです。
  ここで、停止時の電気回路はスイッチを切れば良のだろかと疑問が湧いてきました。 回路を切断するのか、シュートさせるのか、あるいはある程度の抵抗を介して接続させておくのか。 実際の電車における電気ブレーキあるいは回生ブレーキの原理を知る上で、なんだか面白そうに思えて来ました。 フライホール効果の違いが出てくれば良いのですが。

 早速、改善作業に取り掛かることにしましょう。