OTHERS


トップへ
戻る
前へ
次へ



2025年07月20日
速度計の変換
         H氏からの依頼で、速度計の変換モジュールを、一年半前に作っていた。 それから2年後 車が仕上がり運転していると ....
         60km/hまでは、針がブレるが速度表示は正確に出てはいる。 しかし、60km/hを超えると 0km/hに針が落ちてしまうとの事。

         この原因は、STACKの内部回路が、入力信号(速度センサーの出力波形)の仕様を限定している事に起因する。
         限定とは、サイン波、オフセット無し、速度に応じて入力信号の振幅レベルを決めている等。
         これらの制限を守らないと、内部回路を通過した波形は消滅してしまう。 普通に考えれば、サイン波であろうが、方形波であろうが
         レベルが小さかろうが大きかろうが、全てに置いて受け入れる回路でなければならない。 
         昔は憧れのSTACKだったのだが、電子系が解る今となっては STUCK と思ってしまう。

         例えば、下の表中で水色を付けた所だが、速度に因って これ以上の信号レベルが入って来ないと、内部回路は感知しない。
         感知しない = メーター上で 0km/hを指す事になる。


センサー出力 : 車輪速センサーの出力



          また、針の動きも変な時が有る。 サイン波を入力して、周波数をゆっくりと変えて行ったのが下の動画。 時々、針が飛んでいる。 
          これは、メーター内のECUが入力された信号の周波数を計算ミスをしているか、分解能が足りていないかのいずれかで起きている。
          まあ、実走行では速度変化は早いし、凝視しない筈だろうしで、視覚上では問題ないのだが。


https://youtu.be/0bdgEtHxCzQ


          まずは、現状をチェックする。 変換モジュールに、信号を入れて徐々に周波数を上げて行く。 60km/hに相当する周波数に達すると
          針がブレ始め、さらに周波数を上げると、針は、0km/hに落ちた。 これが、H氏の言った現象だろう。


https://youtu.be/yvG2ApASl2o




          さて、実際の回路だが  .......  過去にリバースしたのが下図。
          左端のsignalが、車輪速センサーの入力端子。右端のoutが、ECUへ入力され、信号周期を計算後、メーター上に反映となる。
          問題は、signalから繋がる抵抗とコンデンサーで構成されたLPF( ローパスフィルター )。 フィルターのカットオフ周波数を計算
          すると、238(Hz)。 これ以上の周波数は、上れば上がるほど減衰して行く。上表下を見ると、から238(Hz)は、50〜60km/h
          に相当する。 また、信号の波形が方形波だと、さらに減衰してしまう事になる。
          PC上でシミュレーションしても、上記の動画の通り、完全に一致する。 60km/hを超えた当たりから、不安定になり70km/hでは
          波形が消えているのが解ると思う。( 下の緑枠内に、波形が出ていない )
          加えて、出力波形の H の幅が細くなってしまっている。

             青線が入力波形(方形波)、 赤線が現状の内部回路を通った後の波形。 メータの期待値は 60km/hで 370Hz
             70km/hで 441Hz。








          メーター基板上の回路を、そっくり変更出来ないので、常数を変更して対処する。 変える所は、下の赤丸で示したコンデンサー。
          ( 因みに、右横の抵抗 8.2kΩを下げるやり方も有る )







          基板上では、下の赤枠の部品。 コンデンサー容量は、 0.1μF 。 





           これを、一桁小さい、0.01μFに換える。 これで、カットオフ周波数は10倍となり、2380(Hz)となる。
           余りカットオフ周波数を上げると、耐ノイズ性が悪くなるので、これが限界。





           シミュレーション結果が下。 オリジナルの回路で消えていた 70km/hの波形も出て、且つ Hの幅が増えている。
           本来なら、@ H期間 と A L期間 の時間が一致 ( Duty 50% )しているのが望ましいのだが、オリジナルの回路では
           もうちょい変更が必要となる。 今回は面倒なので割愛した。





           コンデンサーを付け替えた後、変換モジュールを通った信号( 方形波 Duty:50% )が反映されるかをチェックする。
           実際に車輪速センサーに疑似した信号を変換モジュールに入力し、その出力信号をメータに入れてやると、60km/hを超えても
           全速度域でOKだった。



           ただね  .....  150km/hを超えると、分解能が足りていない。 ” 足りていない ” の意味は、針が速度に応じて
           細かく動いていない。 簡単に言うと、150から160km/hに針が飛ぶ感じ。 

           これでは、駄目だ。 しかし .............  これはプログラムの変更が必要となる

           一年半前にプログラミングした物、   もう 考えたアルゴリズムなんて   .....   覚えていない  
           取り合えず、プログラムを見てみる。 コメントは至る所に残してはいるのだが、思い出せない ! これに手を入れてもバグを生むだけ。

           ここで、止めとくか ? 




           一からアルゴリズムを考え直す。 高速度域( 周波数が高い )の分解能を上げる為には、ある速度を境にサンプリング速度を
           上げねばならない。 逆に、低速度域ではサンプリング速度を下げる必要がある。 
           難題なのが、この時、旨く波形同士を繋ぐ必要が有る( 全域でも同じく )。 そうしないと、針が飛ぶ。 
           高速域では、サンプリング周波数を 4μs 、 低速域では、32μsにするのがベストと算出した。
           参考だが、240km/hと 230km/hでの差は、 セットするデジタル値で、2の差しかない。 これ程シビアなのだ。

           果たして出来るのか ?

           アルゴリズムを全く変えなければ実現は無理。 そもそも、有るのか  .....  机上で考える事 一日   閃く事あり。
           二日掛かって、ああでもない こうでもないとプログラミング & 検証。 四日目で、何とか形になって来た。
           最後の一日で、 変換周波数誤差 最大で3%( これは高速域 ) 低速域( 110km/h未満 )で、最大1%の精度となった。
           ん    ..........................   久々に、脳が熱くなった。


プログラミング



            メーターに繋ぐと、オドメータが増えてしまうので、デバッグ中は変換モジュールの出力をオシロで観察する。








           最終的に、メーターに繋いでチェックする。






           下の動画は、入力周波数を Sweepさせたもの。
           動画の後半で、110km/h当たりで針が飛ぶ時があるが、これがサンプリング速度を切り替えた時だ。 110km/h時の
           入力周波数は、462Hz。 周期は2.2msで、切り替えたサンプリング速度で時間を測定し直し、計算して変換した周波数を出力
           する。( 因みに、プログラムの1ステップは500ns )
           2.2msの連続性が断たれる事になるのだが、これがメーターの針の動きに反映されてしまう。 意地悪テストをするなら、この
           速度で一定走行をすれば、見られる現象となる。 まあ、切り替えるポイントで、入力される波形がHigh期間なのかLow期間なのか
           に因って、この断続時間が異なる( 最速で1.1ms )ので、メーターに反映されるか/されないかが決まる。
           実際、動画の前半は、スムーズに動いているのが解ると思う。


https://youtu.be/CqAgk8H6M3E


           これが、出来得る限りの事。 
           ただ、一つだけ気になる事が有る。 それは、実際の車輪速センサーから出力される波形を実際には見ていない事。
           波形1周期の  H 期間 と L 期間の比が、ほぼ同じ( Duty 50% )でない場合、破綻を来す事になる。
           センサーは、MRセンサーなら問題はないと思うが、特殊なセンサーを使っていると話は変わって来る。 この場合は、ソフト変更が
           必要となる。
           違和感を感じるなら、センサー極数 28に対応出来るメーターに換えるか、センサー極数 42に換えて現状のメーターを使うか
           その他の手にするかだ。





トップへ
戻る
前へ
次へ