hbgn
アルドウィーノを使った
オープンソース、オープンハードの
ローコストECU
テージのECUが壊れているみたいなので
Speeduino(STM32)に装換しました。
その17:
クラッチ交換、燃調マップ調整
クランキング時のノイズ解析
2024年
11月27日
ebayでクラッチ一式注文しました。念のため非スリッパクラッチセットにしました。Duc or Dieという聞いたことないメーカです。メーカのWEBページは見つかっていません。見た目の作りはイタリアのkbikeに似てます。一応ドイツのstein−dinseでも扱っているので大丈夫と思います。ドイツから発送で1週間くらいで届くみたいです。
11月29日
クラッチは12/5日に到着予定です。大分先なので、SpeeduinoECUを取り
外して、USBからファームウェア更新ができるように、Boot0スイッチをケースの外に出します。タブレットにSTM32CubeProgrammerを入れ
れば、タブレットからもファームウェア更新ができるようになると思います。外すにはフロントカウルを外す必要あり、これが結構大変です。また、USBケーブルがタンク下でタイラップで固定されてたので、タンクも外しました。
取り外し完了です。ついでにチェック用の基本信号も出す予定です。プライマリ、セカンダリパルス、点火信号x2、噴射信号x2、Bootスイッチと3V、GNDを合わせて、配線は9本必要です。
11月30日
クラッチはドイツのベルリン、ケルン、ベルギー、フランスに移動しました。
赤枠はブルートゥースモジュール用のケーブルの代わりにBoot0と基本信号の取り出しケーブルに交換しました。
ケーブルの先端にDSUBの9ピンコネクタを付けて、Boot0にプッシュスイッチを付けます。スイッチを押しながら電源を投入すると内蔵されたフラッシュ書き込みモードになります。
その後、STM32CubeProgrammer内でUSBでコネクトし、赤枠のターゲット情報が表示されればファームウェアの更新ができます。
12月1日
エンジン始動時にケッチン状態でクランクが戻される時があるので、クランキング時の点火時期を遅らせていくと、点火信号が不調になります。下の赤枠はクランキングの点火設定ダイアログで、最大で−10度まで遅らせられます。
ECUに基本信号取り出しケーブルを取り付けたので、簡単にアナログディスカバリに接続できます。
早速、波形を取ってみます。−10度の設定では赤枠の垂直気筒の点火が出なくなっています。代わりに、垂直気筒側に赤✕に余分な信号が出ています。
0度の設定では正常です。クランキング時の点火時期をマイナスに指定すると、不調になるようです。
12月2日
エンジンエミュレータでは−10度の時でも正常です。違いはセカンダリパルスのパルス幅でしょうか?エッジで処理しているなら幅は関係無いと思いますが。
クラッチの追跡の続きです。ドバイ、中国の広州、日本まで来ました。到着予定が1日早まって、4日になりました。
12月3日
クラッチが1日早く、3日に到着しました。関税は取られませんでした。良かった。緑枠は回り止めツールです。素材はアルミです。
付属しているクラッチはNEWFRENというイタリアのメーカです。これの梱包箱はクタクタでした。予定としてはバスケットとクラッチディスクのみ交換し、スリッパの状態で様子をみます。バスケットはクリアランスを確保するために、裏側を少し削る必要があるかもしれません。
12月5日
とりあえず、バスケットとディスクのみ交換してみます。右は取り外したバスケットです。クリアランス確保のため、裏側が少し削ってあります。
新しい方も同様にロータリテーブルを使って0.8mm削りました。
付属していた回り止めツールを使って、バスケットを固定します。トルクは35Nmです。固定ネジの内側はクランクケースなので、ネジロック剤を多めに使ってシールします。
新しいディスクを組みつけて、完了です。ドリブンディスクが1枚余りました。ネジロック剤が硬化するのに時間がかかるので試走はお預けです。
12月6日
新しいクラッチで試走しました。ジャダーは出ていないです。ただ、今までもクラッチディスクの組み替えると、短距離ならジャダーが収まり、次の日に乗るとダメだったりしするので、もう少し距離を走らないと分からないです。新品ディスクで合計の厚みが増えたため、暖まるとクラッチの切れが悪くなりました。ドリブンディスクを1枚だけ2mmから1.5mmの薄いものに交換して、改善されました。基本信号取り出しケーブルにノイズが混入しているのか、回転数が偶に上に振れることがあります。これは対策が必要です。
12月7日
ノイズ対策のためにハイテンションコードのシールドを考察します。現在テージに付いているケーブルは抵抗無し、ストレートのジョイント部に1KΩの抵抗が入っています。プラグは抵抗入りタイプで約4.5KΩでした。
廃品で作ったプラグテスタにケーブルを繋げて、シールドの効果を比較してみます。アルミテープでシールドした時はノロジー効果で火花が強くなると期待しましたが変化無しでした。オシロスコープのプローブをループ状にして、周辺の漏れ電圧を確認すと、シールドがある所は漏れが少なくなることを確認しました。
シールドの材料を発注しました。ヤフーショッピングの銅箔テープです。ハイテンションコードとカム角パルスセンサのケーブルのシールドに使います。
こちらのアマゾンの編線です。ハイテンションコードのシールドに使う予定です。いずれも12月10日くらいの到着予定です。
12月9日
アマゾンの編線が到着しました。1mが2本です。
網線にハイテンションコードを通してシールド効果を確認したところ、網線のみでも効果がありました。銅テープを巻くと柔軟性が無くなるので、今夏は網線のみで作成します。両端を熱収縮チューブで処理をして1本作りました。網線は3〜8mmの外径に対応ですが、7mmのハイテンションコードを通すと、その分長さが短くなります。4本分作成するには2mでは足りなかったです。ちょっと失敗です。もう1本追加発注しておきました。12月12日の到着予定です。
12月13日
追加のシールド線が来たので4本ともシールド処理をして取り付けました。外側は熱収縮チューブを巻いておきました。下は垂直気筒右側です。
こちらは垂直気筒左側です。銅箔テープがまだ届いていないです。ガレージ内の気温は曇っていると5〜6℃なので、春まで冬眠した方が良さそうです。
12月15日
銅箔テープがやっと到着しました。
点火系ノイズが混入していると思われるので原因を探ります。まず、基本的な確認をして行きます。下はスマートコイルを非動作状態にして、プラグを外してクランキングした時の基本信号の波形です。圧縮が無いので一番下のセカンダリパルスが均等に出ています。プライマリの1波は720/36=20度で、垂直気筒の点火(IGN1)は基準から約6.5パルス分手前です。設定の通り6.5*20=130度手前で動作良好です。進角が0なので、ここが上死点です。
Speeduinoの設定は以下です。
・トリガアングル:130度
・進角:0度
・トリガエッジ:立ち上がりエッジ
・セカンダリエッジ:立ち下がりエッジ
続いて、上と同様にスマートコイルを非動作状態のまま、プラグを戻してクランキングした時です。プラグが付いているので圧縮があり、セカンダリパルスの幅が不均等になっています。2倍以上変化しているので、以前のミッシングトゥースだと検出ができないかもしれません。ここでも、130度手前で動作良好です。ここまでは点火系ノイズが無いので、正しく動作しています。今後の流れとしてはスマートコイルを動作状態にして確認を行い、パルスセンサにノイズが乗るのか?それ以外なのか?を調べて行きます。SDログも取れるので、何か分かるかもしれません。
12月16日
ノイズ対策の続きです。机上で2番ECUとエンジンエミュレータのノイズが無い環境でクランキング時のSDログを取ります。SDログはブートから20秒間記録する設定にしました。SDログをビューア表示します。途中の緑マーカの位置でクランキングを開始しています。上から回転数、噴射マップ値、secl連番カウンタ、ログTime(10サンプル/秒)です。エミュレータ環境なのでノイズが無くキレイです。
SDログのCSVファイルをオープンオフィスのCALCで読み込んで、数値で確認します。左が項目先頭部、左は項目の後ろです。時間軸は単調増加して、項目の後もデータがキッチリ終わっています。
続いて、実車のスマートコイルを非動作状態で、プラグを外してクランキングした時のSDログをビューア表示します。途中の緑マーカの位置でセルモータを回してクランキングを開始しています。明らかにエミュレータ環境と異なり、クランキング前から、時間軸は単調増加していません。また、セルモータを回してクランキングを開始すると、ズルズルに脱調しています。
上のCSVをCALCで読み込んで、数値で確認します。左が項目の先頭部、左が項目の後ろです。セルモータを回す前から、異常があることが分かります。右の項目の後ろは赤枠で項目をはみ出てデータが並んでいます。改行が抜けているとこの状態になります。
赤枠はセルモータが回ってクランキングを開始した時のデータです。大きく脱調しています。実車でクランキンしても基本信号は正しく出ているので、SDログだけの問題なのかもし知れませんが、正しく動くようにする必要があります。先ずは、ボード固有の問題で無いことを確認して次に進めることにします。
12月18日
SDログの続きです。SDログの不具合解析のため実車から1番のSpeeduinoECUを外しました。
1番と2番に入っていたSDカードを入れ替えました。双方とも8GBですが、脱調していた1番の動作が良好になりました。元々、SPIモードを使っているので書き込みは早くないですが、メーカやモデル、メモリ構成によってSPIモードの書き込み速度に違いがあります。因みに、ログの記録速度を毎秒1回にすると、元のSDカードでも正しく記録できました。原因はSDカードの書き込み速度の可能性が高いです。下はCSVをCALCに読み込んで、項目の後ろを確認したところです。行末が正しく終了しています。
ログの確認は毎秒10回、回転数を9500rpmに上げて、TPSを手動で可変して取りました。seclとTimeが単調増加して良好です。回転数が振れているのは、9500付近の小さい幅で変動しているからです。ノイズではないです。
1番ECUをエンジンエミュレータに接続したところ、インジェクタのLED点灯に異常が発生しました。オシロで波形を確認したところ、左の赤枠の水平気筒のインジェクタのパルスがドライブ不足で下がっていませんでした。右は以前から机上で使っている2番ECUで、こちらは良好です。どの時点で壊れたのか不明ですが、コネクタで外に出した基本信号はコントローラのポート信号なので、今回の故障は分からないです。Speeduinoの基板上に実装されているLEDも外からは確認できません。
回路を確認します。インジェクタの駆動回路はSTマイクロのVNLD5090でSOP8ピンのドライバ付のN−chのFETです。赤枠が水平気筒側のINJ1です。手持ちが1つあるので、交換したところ、復活しました。車載用で保護回路も入っているのに、頻繁に壊れるなら、困りものです。念のためマウザーに追加発注しておきました。SDログが正しく取れるようになったので、ECUを戻して、実車でノイズの確認ができます。
12月22日
SDカードによってSDログが正しく取れないので、PCで書き込み速度を確認してみます。PCはSPIモードではないので、Speeduinoと異なりますが、傾向は分かりそうです。下は動作良好のカードです。因みに、このカードはメーカ不明の無印で、中国製のドローンに付属していた8GBです。
続いて、不具合の8GBカードです。上に比べて書き込み速度が遅いです。
8GBはSDHC規格です。SDHCの容量は4〜32GBなので、手持ちの32GBで確認すると、問題の無いカードと同じような速度が出ています。このカードをSDログに使うと、行末が正しく終わらず、不具合が発生しました。Speeduinoの要求仕様としては4GB以上、256MB以上の空きがあること、フォーマットがExFATとなってます。4GB以上ということはSDHCなので、今後のために4〜8GBを数種類入手して動作確認するのが良さそうです。
ヤフーショッピングでMLCの8GBのSDカードを購入しました。
新しく購入した8GBのSDログは動作良好です。1つ目に購入したものが動作良好で良かったです。速度は下のようになりました。
ノイズ対策の続きです。エンジンエミュレータとスマートコイルで机上で確認します。ハイテンションコードのシールドはシールド追加したゲーブルを使います。プラグキャップとコイルの出力部からも空間を伝わってノイズが出ています。アルミホイルでくるむと低減することを確認しました。スマートコイルの電源と信号線にコンデンサを追加してみましたが、効果は無いようです。
ノイズの影響を受けた時のプライマリパルスの波形を確認しておきます。赤枠はIGN1の点火パルスでノイズで異常動作しています。この時のプライマリパルスはノイズの影響を受けていないように見えます。
続いて、セカンダリパルスです。赤枠は同様にIGN1の点火パルスで異常動作しています。セカンダリパルスもノイズの影響を受けていないようです。ノイズがプライマリ/セカンダリパルスに混入して異常動作しているのでは無さそうです。
壊れて追加購入したSTマイクロのインジェクタドライバのVNLD5090が到着しました。念のため10個購入しておきました。
12月27日
以前、スマートコイルが非動作状態で、プラグを付けてクランキングした時はノイズの影響が無いと書きましたが、どうも違うようです。下はプラグ無しの時で、この時はノイズは無く、動作良好です。
続いて、プラグを付けてクランキングした時です。一番下のプライマリパルスは圧縮の影響で不均等になっています。赤枠のIGN2、INJ2パルスが複数出て異常です。高電圧の点火系は無いので、セルモータノイズの影響と思われます。
赤枠のプライマリパルスを拡大すると、パルス幅は最大で4倍くらい変化しています。デュアルホイールなので、不均等でも正しく動作するはずです。
SDログでバッテリ電圧を確認します。最大は12.5V、クランキング時に下がって、最低が9.9Vです。
アナログディスカバリのパターンジェネレータを使って、不均等なデュアルホイールをエミュレーションしてみます。パターンジェネレータはCSVをインポートできるので、エディタで不均等なプライマリパルスを模したデータを作って、読み込ませます。
セカンダリパルスを追加して、デュアルホイールにして、発振させます。
エンジンエミュレータにプライマリとセカンダリパルスのジャックを追加して、UINOのプログラム出力の代わりにパターンジェネレータのパルスを入力できるように改造します。
パターンジェネレータの不均等パルスで駆動したIGN1
とIGN2です。机上では信号はキレイで、不均等なパルスでも動作良好です。やはり実車ではセルモータのノイズが回り込んでいると思われます。プラグを外した
時は抵抗無くクランキングできますが、プラグを付けると、圧縮で負荷がかかり、ノイズが増えるのが原因と思われます。
実車の動作不良の部分のパルスを拡大してみます。下はIGN2ですが、同じ幅のパルスが2回出ています。
INJ2も同様に、同じ幅のパルスが2回出ています。
ソースコードを調べると、点火/噴射はSMT32の汎用タイマのTIMER2/3が使われています。
タイマは出力比較のトグルモードが使われています。
下は汎用タイマのブロック図です。ノイズでプログラムが脱調すると、もっとひどい動作になると思われるので、タイマのハードウェアにノイズが回り込んでいるのではないかと思います。どのように点火/噴射信号を出しているかプログラムの方も少し解析した方が良さそうです。
12月29日
クランキング時のノイズの続きです。下はクランキング時のバッテリの両端をACカップリングで測った波形です。ノイズ成分の表示が分かりやすいように背景を白にしました。セルモータには大きな電流が流れるので、バッテリの内部抵抗で電圧が約1.5V降下しています。また、ブラシで発生するノイズが、薄黄色のノイズ成分に表示されていると思います。ちなみにセルモータは始動時のみの動作なので、ノイズ防止用のコンデンサなどは付いていないと思います。
下はクランキング時のTPSコネクタから分岐した5V電源をACカップリングで測った波形です。5V電源はイグニッションスイッチを通った12VをSpeeduinoボード上のシリーズレギュレータで5Vに降圧しています。5V電源はセンサやさらに3.3Vに降圧してSTM32の電源に使われます。薄黄色のノイズ成分は400mVくらいです。これはケーブルの先端の5Vなので、元々電源に乗っているノイズなのか、ケーブルに回り込んだノイズかは判別できません。ECUから直接、5Vと3.3Vを引き出て測った方が良さそうです。
12月30日
ECUから直接、5Vと3.3Vを引き出てノイズを測ってみます。初めはDCカップリングです。上が3.3V、下が5Vです。
レンジを上げてACカップリングで確認します。3.3Vは130mV、5Vは150mVくらいノイズが乗っているようです。TPSコネクタで測ったより小さいですが、ノイズの波形は似ています。12Vのノイズ波形とも似ています。
3.3VとIGN1のスマートコイルの駆動パルスを見てみます。赤✕は本来出力されないはずの異常パルスだと思われます、本来の点火時期よりも前にパルスが出ると、ケッチン状態になる可能性があります。因みに、アナログディスカバリのノイズ成分表示はサンプリングレート以上の成分を持っている信号/グリッジが表示されますが、薄色で塗りつぶされるだけでノイズ波形の詳細は分からないです。