Vehicle Speed Logging System |
ガソリン エンジンでは、出力制御はスロットル バルブによって行われます。
スロットル全開のときエンジンはフルパワーとなり、ポンピング ロスが最低となって運転効率は良くなります。
中低速で一定速度で走行するときはスロットルがあまり開いていないためにポンピング ロスは増加してしまいます。
したがって、効率よくエンジンを運転するためにはなるべくスロットル全開がよい、ということになります。
(ディーゼル エンジンではスロットルがなく、常時全開状態です。
これがディーゼルエンジンの効率のよさの理由の一つです。) しかし全開フルパワーのままでは、車速が上がりすぎてこれまた走行抵抗が増大してしまいます。 そこでエコノパワー燃費競技では、エンジンを始動したらフルパワーで加速し、速度がある程度に達したらエンジンを停止し、 惰性で走らせるとよい、ということになります。 ほとんどの参加車両がこの運転パターンで走行します。 燃料は極力薄くしながらも確実なエンジン始動が求められるし、 エンジンを停止するときにはエンジンブレーキでスピードが殺されないように絶妙のタイミングでクラッチを切る必要があります。 エンジンパワーをロスなく駆動輪に伝達するトランスミッションも必要だし、慣性走行時には完全に駆動系から駆動輪を切り離します。 自転車後輪のフリーホイール機構とチェーン駆動を流用すれば簡単ですが、 フリーホイール空転時の抵抗は無視するには大きすぎるので、お気軽参加チーム以外には使われません。 こうした工夫が完成すると次の質問は、走行パターンをどうするかということになります。 何km/hに達したらエンジンを止めて慣性走行(コースティング)に移行するべきか? 何km/hまで車速が落ちたらエンジンを始動し再加速すべきか? この判断は、その車両とエンジンの特性、ギア比それにコースの起伏が非常に重要になってきます。 あまりに燃料を薄くしたため低速トルクが不足しているなら、車速を落としすぎると再加速の効率が悪くなります。 高回転での効率が悪いエンジンだったり空気抵抗が大きめの車両では速度の上げすぎは不利です。 エンジン始動速度とエンジン停止速度の差を少なくすると、再始動回数が増えてしまい、始動・停止に伴う燃料の無駄が無視できません。 さらに、慣性走行状態で上り坂にさしかかったなら、ちょうど登り終えたころにほぼ車速ゼロとなるようにするのが望ましいといえます。 頂上である程度速度が残ったままだと下り坂でスピードがつきすぎ、 さしかかったコーナーを曲がりきれなくなったり、あるいはやむを得ずブレーキをかける・・・ 燃費競技においては悪夢・・・必要も出てしまいます。 さらに大会本番では、最終ラップの後半でのエンジン再始動をおこなうべきかどうか、というリアルタイムの判断が求められます。 今の速度で慣性だけでゴールにたどり着けるか? たどり着けたとしてもスピードが遅すぎてタイムオーバーになりはしないか? エンジン再始動が必要である場合、何km/hまで加速しておけばゴールにたどり着けるか? コクピットとサイン エリアおよびピット間の無線通信がもっとも緊張する瞬間です。 |
|
最適な走行パターンの研究、車輪のアライメントやフェアリング改良による空走距離あるいは速度低下傾向の把握、
コースの勾配の影響、さらに加速性能の調査比較のために、
車両のスピードとエンジン回転数を記録する装置があれば便利です。
私が参加しているチームでは基本的な車両開発が完了して資金が尽きかけてしまったため
(+日本経済の後退に伴い)、あとはお金のかからない工夫でなんとか改善する必要がでてきました。
そこで、ローコストでデータ ロガーを作ってみようということになりました。
こうなると、「
ゴミ捨て場から夢と価値を
」がセールスコピーであるNoobowSystems Lab.の出番です。 |
以上のことから、パルス オーディオ インターフェイス ユニットの要求仕様は以下の通りとなります。
パルス オーディオ インターフェイス ユニットの回路構成と実装は、 つまるところ手持ちの部品だけで手っ取り早く仕上げられるように決定されました。 低周波発振回路には入門電子工作の定番 NE555 タイマーIC を使用し、アステーブル動作させて矩形波を発生させたのちCRで三角波にしています。 電源電圧安定化回路は持っていません。 仕様上の最大電源電圧はDC15Vであり、車載のDC12Vか9V積層電池を使用します。 気休めの逆接続保護ダイオードを内蔵しています。大して意味はないLEDは、電源インジケータと発振回路出力インジケータです。 |
||||
発振器の出力はオドメータ スイッチで直接断続されます。
NE555のリセット端子をスイッチで制御する方法もありますが、
この方法だと信号はほとんどの間出たままで、
スイッチの近くをマグネットが通過する一瞬だけ音が途切れることになります。
実用上これは好ましくないと考えられました。
反転用トランジスタを組み込むくらいなら出力を直接スイッチングしてもいいだろうと考えたわけです。 基板上には低周波発振回路のほか、クランク角センサ信号用の簡単なアッテネータとフィルタが用意されています。 減衰量はおおよそ26分の1。レベル調整用のトリマを持ちます。 使用した部品はすべてラボのストック パーツであり新品です。 単品で指定購入したものはNE555とソケットだけ( Dan's Small Parts で購入)で、他はすべて Halted Specialities やHaltek Electronics、RA Enterprises のスペシャル セールでのグラブ バッグ、Dan's Small Partsのグラブ バッグ、 サンタクルーズ アマチュア無線クラブ定例ミーティングでのジャンク スワップなどで入手したものを使用しています。 基板取り付け用のペテット(商品名)は勤務先の廃却ジャンクパーツからのサルベージです。 |
低周波発振回路の出力は三角波です。
オシロスコープの観測から、三角波の頂点で極めてシャープなスパイクが発生していることがわかります。
が、これは実用上問題はないでしょう。 発振周波数は基板上の調整トリマにより約370Hzから10kHzまで可変することができます。 出力振幅は発振周波数により変化し、周波数を上げると出力振幅は低下します。 電源投入直後の数100mSecの間は、発振周波数はわずかに変動します。 このため、オドメータ スイッチで発振回路の電源ON-OFFを行った場合は明らかなチャープを伴うでしょう。 出力信号をスイッチで断続する場合は、出力周波数は安定しています。 電源電圧12Vで出力周波数を2.4kHzに調整したとき、出力レベルはおよそ0.7Vp-pです。 この信号を通常の入力レベルに設定した手元のテープデッキに入力した場合、 レベルメータは-10dBを示しました。録音機器側が過大入力になる可能性はありません。 使用予定のミニディスク レコーダのライン入力に接続した場合、録音レベル15(30が最大) で問題なく録音・再生できました。 |
HP-1200A を使用。 |
|||
発振回路出力信号をNoobow9000コンピュータに入力し、
WaveSpectra
を使ってスペクトルを見てみます。
正弦波ではないので、基本周波数2.4kHzのほかに高調波のスペクトルが見られます。 ミニディスク レコーダで録音し再生した信号は元信号に忠実であり、問題は見られませんでした。 低周波発振回路は大して意味のないLEDのためもあり、40mA程度を消費します。 |
クランク角センサは電磁ピックアップであり、その出力電圧は10Vp-pを越えます。
この信号をシミュレートするために、
NF回路ブロック社製モデル1915ファンクション シンセサイザの壊れかけ品を使用しました
(バックアップ用電池が死にかけているためか、電源を入れてもマイクロコントローラが誤動作していると見えてなかなか起動できません)。
シンセサイザの出力を20Vp-pにセットし、数100Hzから10kHz程度の三角波をインターフェイス ユニットに注入します。 オーディオ出力は歪むことのない0.7Vp-p程度で、これならミニディスク レコーダで直接波形を記録できるでしょう。 |
完成したパルス・オーディオ インターフェイス ユニットを使って、
EZ-2実車でのテストを行いました(June 10, 2000)。
車速スイッチは今まで使っていた自転車用スピードメータ用のものそのまま
(ただしスペア用の新品)を使用、
クランク角ピックアップ信号は点火制御コントロール・ユニット内部のコネクタピンから取り出しました。
それぞれのセンサをインターフェイス ユニットにつなぎ、
またインターフェイス ユニットのオーディオ出力をミニディスク レコーダのライン入力端子にステレオ ミニプラグ コードでつなぎます。 実車エンジンのクランク角センサ信号でインターフェイス ユニットを試すのはこれが初めてです。 車両製作を行っているガレージは我がラボから高速道路で1時間離れているところにあるので、 なにかトラブルがあると機材が不足している現地での修正は大変ですが、 幸いにアッテネータの減衰量はちょうど良いもので、歪みなくミニディスクに録音することができました。 ファンクション シンセサイザを使ったシミュレーションのおかげです。 録音したオーディオ信号の一部をここに示します。 テストは実際に車両を走らせたわけではなく、車輪は空転状態。 エンジン回転にしたがい急速に加速しています。 このファイルはサイズの関係でMP3フォーマットです。MP3エンコーダの元祖BladeEncでエンコードしたものです。 オーディオ記録サンプル:MP3:128kbps 44kHz stereo :10秒 :157KB |
||||
ミニディスクを再生して得られたクランク角センサの信号をオシロスコープで観測してみました。
信号のレベルは回転数で大きく変動します。
また、ときおり大きなピークの波形が見えますが、これは上死点センサの出力(クランク1回転で1パルス)が重畳しているためです。
が、波形自身はさほど歪みなく記録再生できており、
ゼロクロスを数えれば回転数を求められるので問題はないでしょう。 使用したミニディスク レコーダにはマニュアル録音レベル調整があり、今回は最大30のうちレベル20で録音しました。 が、実際にはレベルをもう少し上げたほうがよさそうです。 ともあれ、インターフェイス ユニットは構想どおり動作してくれました。 チーム監督に「おい、うまくできたぜ。調子いいぞ」といったら、 「さすがぁ! それじゃさっそくもう一台作ってくれ。ウチにはマシンが2台あることを忘れちゃいないよな?」 ああ、来週の週末もこれで潰れた。 |
クランク角センサ再生波形ムーピー : 17秒 : 384KB |
テスト走行が完了したら、ミニディスク レコーダとコンピュータをつなぎ、MDを再生してWAVファイルに記録します。
これはWindows(TM)付属のサウンド レコーダ アプレットでも可能です。
WAVファイルは非圧縮オーディオなのでファイルサイズはたちまち大きくなってしまいますが、
最近のコンピュータはどれも大容量のハードディスクを持っていますから支障はないでしょう。 我々のチームでは、サウンド レコーダ アプレットではなく、より高度な機能を持つ2つのプログラムを使用しました。 ひとつは Syntrillium社のCoolEdit2000 (*1) です。 これは非常に強力な表示・編集・加工機能を持ったオーディオ・エディタであり、高速なMP3エンコーディング機能も持っています。 一度録音したWAVファイルから不要部分を切り取ったり、分割・結合したり、録音レベルを補正したりが自由自在。 左のスクリーン ショットでは、上側に車速パルスの波形、下側にクランク角センサの波形が見えています (エンジンを始動したあと2回ほどアクセルをあおり、エンジンを止めています)。 オーディオ信号をWAVファイル化するとき、CDオーディオのような音質は必要ではありません。 ファイルサイズを小さくするため、 WAVファイル化するときは8ビット サンプリング、サンプル レート22.05kHzのステレオ音声として記録することにしました。 CD品質のとき(16ビット サンプリング、サンプル レート44.1kHz) にくらべ、ファイルサイズが4分の1で済みます。 *1: CoolEdit2000は製品自体Adobeに買われてしまって、今はAdobe Auditionという製品になっています。 機能が増えてより強力になりましたが、Adobeの他の製品と同様に、値段も吊り上ってしまいました。 |
||||
もうひとつ使用したのは
WaveSpecta
。もともとはオーディオ用FFTアナライザですが、柔軟な録音機能も持ちます。
プログラムが小さく扱いやすいのも美点。 左のスクリーン ショットでは、車速センサの波形の拡大が見えています。 ホイールの磁石がセンサの脇を通過する時だけリード スイッチがONし、発振器のピー音が聞こえます。 それ以外のときは無音状態です。 インターフェイス ユニットの発振器のピー音は、 車速センサのリード スイッチが切れている時も実はごくわずかに聞こえています。 これは、リード スイッチまでの配線の浮遊容量によるリークでしょう。 実際に使ってみると、発振器が正常動作していて配線も正常であることがこのかすかなピー音で確認できますので、 実用上たいへん好都合です。 さあこれで、車速もエンジン回転の情報もWAVファイルの中に「録音」されました。 つぎはこのWAVファイルをデータ解析し、車速とエンジン回転の情報を取り出すプログラムを作成します。 |
|
|
|
|
|
|
|
"RIFF"の4文字。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
このデータのエンコーティング方法を示しています。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
???? |
|
|
|
1 : 非圧縮エンコーティング |
|
|
|
1=モノラル 2=ステレオ |
|
|
|
1秒あたりのサンプリング レートを示します。 |
|
nAvgBytesPerSec |
|
WaveSpectraが作成したWAVファイルでは、このフィールドの内容はゼロになっています。 |
|
|
|
|
|
|
|
|
エンジン回転数と車速の時間的変化を同一グラフにプロットしてみました。なかなかいい具合でグラフ化できています。 |
||||
グラフの最初の30秒間の拡大。 |
|
|
|
|
000008 006932 000010 006947 000012 006974 000014 006990 000016 007005 000018 007018 000020 007049 |
000006 000038 000007 000037 000008 000036 000009 000038 000010 000036 000011 000033 000012 000036 |
|
|
|
|
単位は0.1秒。 つまり000020は2.0秒経過を表す。 |
単位は0.1秒。 つまり000020は2.0秒経過を表す。 |
|
単位はサンプル毎秒。これはオリジナルのWAVファイルのサンプリング レートに依存する。 |
|
カット・アンド・トライの末、安定して動作するセッティングが得られ、実用可能なプログラムが完成しました。
プログラム開発はNoobow8000コンピュータのLinux上で行いましたが、
実際に使用するときはチームメンバーのラップトップ コンピュータを使用しますので、VisualC++を使ってWindows版もビルドしました。
プログラム名は<EZPULSE.EXE>です。 EZPULSEプログラムのソースコードを以下のリンクに用意しました。 EZPULSEプログラム ソースコード リスティング EZ-2のベンチテストで得られた7分間のWAVファイル (ファイル名"test-7min.wav") を解析してみます。 EZPULSE.EXEプログラムはWin32コンソール アプリケーションとしてビルドされているので、 コマンド プロンプト (Windows95/98ではDOSプロンプト)で EZPULSE <WAVファイル名> として起動します。 出力ファイルは以下のようになります。 test-7min.wav.odo01 test-7min.wav.eng01 test-7min.wav.eng02 test-7min.wav.eng03 test-7min.wav.eng04 これらのファイル名から、車両は記録中に完全停止にならずに走行しつづけ、またエンジンは4回始動されていることがわかります。 |
市販のミニディスク レコーダ、手作りのインターフェイス ユニット、
そしてラップトップ コンピュータと自作プログラムによって、
安価で高精度な燃費競技車両用データ計測システムを構築しました。
特殊なものはなにも使用しておらず費用もさほどかからないので (ミニディスク レコーダもコンピュータも手配できるとして) 、
高校生チームであれば類似のシステムを構築できるでしょう。
コストがかかっていない割には、スプレッド シート プログラムを駆使すれば実に多彩なデータ解析が可能です。 で、解析した結果は役に立ったかというと、たぶんYesでしょう。 去年の車両を引っ張り出してメインテナンスだけ行った2001年度は、過去最高の記録を出すことができましたから。 しかし、チームの目標であったリッター1000キロにはあと一歩及ばず。 活動資金もなくなり、わがチームは2002年度を最後に活動休止となります。 EZPulseは10年間の活動のしめくくりの走行を、0.1秒の精度で記録することでしょう。 |