Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 111 additions & 1 deletion docs/can-pid-map.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,12 @@ Speed-Density に落ちたときだけ効く。

```
1782 17A0 097C 1410 1103 1104 16E8 16CD
17BB 17BC 17C1 3201 096E 098E 16E9 1746 1101
17BB 17BC 17C1 096E 098E 16E9 1746
```

2026-09-01 に `1101` (ブレーキ / ラジエータファン) と `3201` (勾配) を同定したため
17個から15個になった。下記「2026-09-01 に同定した Mode 22 PID」を参照。

`1782` は走行中は ATF と相関 (+0.980) するが、停車暖機では逆に動く。
日をまたぐと矛盾するため単純な温度ではない。

Expand Down Expand Up @@ -263,3 +266,110 @@ lag 0 でも −0.9959 と差が 0.001 しかない。

- **R レンジのギア比** — 理論値 2.648 なら B2=9 のはずだが、実測は 26 (1速と同じ)。
低速バック入庫のデータしかなく未確認。R で TC ロック時のデータが要る。

## 2026-09-01 に同定した Mode 22 PID

### 0x1101 — ステータスビット (ブレーキ / ラジエータファン)

| ビット | 意味 | 確度 |
|---|---|---|
| bit0 | ラジエータファン | 確定 |
| bit1 | ブレーキペダル | 確定 |
| bit3 | 走行中ほぼ常時1 (未同定) | — |
| bit7 | 稀に1 (未同定) | — |

**bit1 = ブレーキ。** 停車・アイドル・アクセル全閉で固定した状態で、20秒踏む → 離す →
20秒踏む、を実施した。95個の全 PID のうち、この操作に一致した唯一の PID だった。

```
00:32:10 - 00:32:26 b1=2 (1回目の20秒)
00:32:32 - 00:32:53 b1=0 (離した)
00:32:57 - 00:33:18 b1=2 (2回目の20秒)
00:33:21 - 00:33:31 b1=0
押した区間14サンプル全部2 / 離した区間8サンプル全部0
```

過去ログでも裏が取れた。2026-08-28 20:04 の急減速 (-5.69 m/s²、3日間で唯一 5 を超えた)
では、bit1 が立った瞬間から速度が崩れている。

```
20:03:59 bit1=0 76 km/h
20:04:02 bit1=1 67 km/h ← 踏んだ
20:04:05 bit1=1 29 km/h
```

**bit0 = ラジエータファン。** サイドブレーキを疑って試験したが、引いている最中に 0 に
なる矛盾が出た。水温と突き合わせると答えが出た。

```
bit0=0 のとき 水温 95→98℃ と上昇
bit0=1 に 水温 97→89℃ へ下降
bit0=0 に戻る また 90℃ へ
```

**サイドブレーキは CAN に出ていない。** ブロードキャストも 70 秒間まったく反応せず、
Mode 22 にも該当なし。機械式ワイヤーで警告灯の switch がメーターへ行くだけなので、
PCM が知る必要がない。一方フットブレーキは**ロックアップ解除に必須**なので PCM が持つ。

### 0x3201 — 勾配 (負 = 登り)

符号付き16bit。**大橋JCT (高低差71m、勾配8.9%、2周の螺旋) の登坂で特定した。**

```
車速48-60km/h・定常(|a|<0.3) で揃えた比較
大橋ループ n=13 中央 -690
他の区間 n=55 中央 0
```

決め手は3つ。

**1. 加速度と無相関** (r=+0.009)。加速度センサーの写しではない。

**2. 登坂中だけ連続して負になる。** 0.85km 連続。74km の走行中、-500 未満は20件しか
なく、**うち15件 (75%) がこの2km区間に集中**していた。

**3. 登り切った瞬間に符号が反転する。**

```
km 28.22-28.50 -80 〜 +510 進入
km 28.56-29.41 -240 〜 -1010 ★登坂中ずっと負
km 29.46-29.50 +990, +1320 ★登り切って正に反転
km 29.60 +20 平常
```

単なる負荷やトルクの写しなら反転しない。

**当初の候補 098E / 1746 は外れだった。** 平地データで「停車中は固定・走行中に動く・
車速と無相関」という条件で17個から2個に絞ったが、実際の8.9%登坂では動かなかった。
098E はむしろ登坂中に**下がった** (0 vs 12)。平地データからの絞り込みには限界がある。

### 副産物 — GPS 無しで経路を復元できた

2026-09-01 の首都高一周 (79.57km) で、GPS 測位ゼロのまま経路を復元できた。

- **距離**: パルス計数 (0x420 B1) と公表の路線キロ程を突き合わせる
- **勾配**: 燃料レートが同速度比で 2.0 倍 → 8.9% 登坂と一致
- **JCT**: 低速・低ギア・S+HOLD の持続時間で識別 (大橋の螺旋は 85 秒)

推定した経路は運転者の申告と一致した。**ただし入口 IC の特定まではできていない** (距離
だけでは ±1km の誤差が残り、C1 と 6号向島線の区間長を概算で置いたため)。

### 燃料からの標高推定 (副産物)

平坦な往復走行で熱効率を較正すると、燃料の熱量と走行抵抗の差から標高差が出せる。

較正: 新東名 214km で 17.7%、首都高一周 75km で 18.9% → η=18% を採用。
どちらも往復なので勾配が相殺し、較正に使える。

| 区間 | 距離 | 推定標高差 | 平均勾配 | 備考 |
|---|---|---|---|---|
| 新東名 上り | 214 km | +198 m | +0.1% | 検算。ほぼ平坦で妥当 |
| 首都高 一周 | 75 km | −139 m | −0.2% | 検算。一周なのでほぼゼロ |
| **比叡山 登坂** | 14.1 km | **+832 m** | **+5.9%** | 実際の山頂 848m と整合 |
| 比叡山 下り | 10.4 km | +100 m | +1.0% | **失敗** |

**下りでは使えない。** 降坂中は燃料カットが効いて燃料をほとんど使わず、仕事をするのは
重力なので、燃料の熱量から逆算する前提が崩れる。登坂専用の手法である。

短い急坂も苦手で、大橋JCT (実際 +71m) は +19m と出た。窓に登坂以外の区間が混ざる
ことと、低負荷域では η=18% の仮定が粗くなるため。**数km以上の持続した登坂でのみ使える。**
Loading
Loading