# FSAE EV 電控系統設計指南（2026）

給剛加入車隊的電控組新人工程師。

# 1. 系統總覽

## 1. 系統總覽

### 1.1 電控在整車中的角色

先建立一個概念：**電控不只是「讓車子動起來」的工具，它是整車安全的最後守門員。**

FSAE EV 的電控系統要處理兩件事：

- **功能面**：讓駕駛踩油門，車子加速；處理再生制動；管理動力輸出。
- **安全面**：在任何異常狀態下，確保系統能安全斷電，保護人員與設備。

在整車設計中，電控工程師需要跨部門溝通：
- 與**機械組**：驅動系統介面（馬達安裝、冷卻）
- 與**電池組**：Accumulator 介面、BMS/AMS 通訊
- 與**底盤組**：感測器佈線、接地設計
- 與**車手**：人機介面（儀表、按鈕邏輯）

> 💡 **學長心得**：很多新人以為電控就是寫 code。其實你有一半時間在畫電路圖、拉線、debug 硬體，另一半時間在跟規則書搏鬥。先把規則讀懂，比先去寫程式重要得多。

### 1.2 高壓 / 低壓系統關係

FSAE EV 的電氣系統分為兩個電壓域：

**高壓系統（Tractive System, TS）**
- 電壓範圍：通常 300V–600V DC（依 Accumulator 設計而定）
- 包含：Accumulator、Motor Controller（Inverter）、馬達、HV 線束
- **⚠️ 關鍵規則**：TS 在正常操作下與車架（Grounded Low Voltage, GLV）必須電氣隔離

**低壓系統（Grounded Low Voltage, GLV）**
- 電壓範圍：通常 12V 或 24V
- 包含：VCU、感測器、CAN Bus、繼電器控制線圈、Shutdown Circuit 邏輯
- 車架接地，作為 GLV 參考電位

**兩者關係的設計關鍵**：
- TS 與 GLV 的隔離由 **IMD（Insulation Monitoring Device）** 持續監測
- 控制訊號（如 Contactor 控制）需透過**隔離驅動**（isolated gate driver）或**繼電器**跨越電壓域
- **所有控制邏輯跑在 GLV 側**；HV 側只有動力路徑

### 1.3 系統方塊圖（文字描述）

```
┌─────────────────────────────────────────────────────┐
│                    高壓系統 (TS)                       │
│                                                       │
│  [Accumulator] ──→ [AIR+] ──→ [Precharge] ──→        │
│                 ──→ [AIR-] ──→ [Motor Controller]     │
│                                    ↓                  │
│                               [AC Motor]              │
│                                                       │
│  TS 內部：AMS、IMD（量測 TS 絕緣）                      │
└─────────────────────────────────────────────────────┘
         ↑ AIR 控制訊號（隔離）    ↑ IMD 錯誤訊號
┌─────────────────────────────────────────────────────┐
│                    低壓系統 (GLV)                      │
│                                                       │
│  [GLV Battery] → [Shutdown Circuit] ──→ [SDC OK]     │
│       ↓                ↑                             │
│  [VCU / ECU]    [BSPD, IMD, AMS, BOTS, TSMS,        │
│       ↓          HVD, Inertia Switch, etc.]          │
│  [CAN Bus]                                            │
│   ├── Motor Controller                                │
│   ├── AMS / BMS                                       │
│   └── Dashboard / 儀表                                 │
│                                                       │
│  [TSAL 控制]  [RTDS 控制]  [Brake Light]              │
└─────────────────────────────────────────────────────┘
```

> 💡 整個設計思路：**GLV 控制 HV**，但 GLV 本身受 Shutdown Circuit 保護。一旦 SDC 開路，HV 就必須斷開。

### 小結

電控系統的核心邏輯是：**安全優先，功能其次**。先確保在任何故障狀態下系統能安全斷電，再去優化性能。這不只是規則要求，也是工程師的基本責任。

---

# 2. FSAE EV 電控相關核心規則解析

## 2. FSAE EV 電控相關核心規則解析

> 以下基於 2026 FSAE Rules。規則編號格式為 `EV X.X.X`、`TS X.X.X` 等，請以官方規則書為準。

### 2.1 Shutdown Circuit（關鍵！）

**規則本質**：Shutdown Circuit（SDC）是一條「安全鏈」，由多個安全開關**串聯**組成。只要其中一個節點開路，整個電路斷開，Accumulator Isolation Relay（AIR）就會斷開，高壓系統斷電。

#### ⚠️ 關鍵規則：SDC 必須包含的節點

以下元件必須**串聯**在 Shutdown Circuit 中（2026 規則）：

| 元件 | 縮寫 | 說明 |
|------|------|------|
| Master Switch（駕駛端） | TSMS | Tractive System Master Switch，駕駛艙內 |
| Master Switch（維修端） | MSMS | 車外可觸及的緊急斷電開關 |
| Brake System Plausibility Device | BSPD | 偵測煞車 + 大電流同時發生 |
| Inertia Switch | — | 碰撞時自動斷路 |
| High Voltage Disconnect | HVD | 物理拔插式 HV 斷路器 |
| IMD 錯誤輸出 | IMD | 絕緣阻抗過低時斷路 |
| AMS 錯誤輸出 | AMS | 電池異常時斷路 |
| 緊急停車按鈕 | — | 駕駛艙內、車外至少各一 |

**設計邏輯**：
```
GLV_POWER ──→ [TSMS] ──→ [MSMS] ──→ [BSPD_OK] ──→ [IMD_OK] 
          ──→ [AMS_OK] ──→ [Inertia_OK] ──→ [E-Stop×N] 
          ──→ SDC_CLOSED ──→ AIR 線圈供電
```

**為什麼要串聯？**

因為這是 **Fail-safe** 設計哲學：**任何一個環節故障（開路），系統整體進入安全狀態（HV 斷電）**。如果是並聯，單一節點短路就可能繞過安全機制。

> 💡 **學長提示**：SDC 是「常開邏輯」——正常狀態是通路，有問題才開路。這和一般 GPIO 的「High = Active」邏輯相反，設計時容易混淆，要特別注意。

#### BSPD 設計重點

⚠️ **關鍵規則**：BSPD 必須是**純硬體電路**，不能依賴微控制器（EV.5.7）。

BSPD 偵測邏輯：
- **煞車踩下**（煞車壓力 > 閾值）AND **大電流輸出**（> 5 kW equivalent）→ 觸發 SDC 開路

設計建議：
- 用比較器（LM393 或類似）實現，避免軟體介入
- 電流感測用 Hall Effect Sensor，輸出類比電壓
- 煞車偵測用壓力感測器，輸出類比電壓
- 兩路訊號送進 AND 邏輯，輸出控制繼電器

```
[煞車壓力感測器] ──→ [比較器 1] ─┐
                                  AND ──→ [繼電器線圈] ──→ SDC 節點
[電流感測器]    ──→ [比較器 2] ─┘
```

### 2.2 Tractive System Active Light（TSAL）

⚠️ **關鍵規則**：只要 TS 電壓超過 60V，TSAL 就**必須**持續亮紅燈（閃爍或恆亮，依規則版本）。

**為什麼**：讓維修人員、裁判、旁觀者知道車輛有高壓存在，避免觸電事故。

**設計要點**：
- TSAL 訊號來源：直接由 AIR 狀態或 TS 電壓偵測驅動，**不能只靠軟體控制**
- 實作建議：從 Accumulator 正負極取分壓，超過閾值直接驅動 LED 驅動電路
- **不能用 VCU GPIO 直接控制 TSAL**，因為 VCU 當機時 TSAL 可能誤滅

```
[TS+ / TS-] ──→ [分壓電路] ──→ [電壓比較器 60V] ──→ [TSAL 驅動] ──→ [紅燈]
                                      ↓（< 60V）
                                [TSAL 驅動] ──→ [綠燈]（可選）
```

### 2.3 Ready-To-Drive Sound（RTDS）

⚠️ **關鍵規則**：車輛從 TS 充電完成到 RTD（Ready To Drive）狀態，必須發出持續至少 1 秒、至少 80 dB 的聲音。

**為什麼**：電動車在低速時幾乎無聲，RTDS 提醒周圍人員車輛即將啟動。

**觸發條件**（設計時須實作的狀態機邏輯）：
1. TS 電壓正常（AIR 閉合，Precharge 完成）
2. 駕駛踩煞車
3. 駕駛按下 RTD 按鈕
4. VCU 確認以上條件 → 觸發 RTDS 至少 1 秒 → 進入 RTD 狀態

**設計建議**：
- 使用蜂鳴器或小型喇叭模組，VCU GPIO 控制
- 加入軟體計時器確保 ≥ 1 秒
- Scrutineering 時裁判會用分貝計測量，建議設計時留有 buffer（設計目標 ≥ 85 dB）

### 2.4 Accumulator Management System（AMS）

⚠️ **關鍵規則**：AMS 必須監測每一個 Cell 的電壓與溫度，發現異常時必須斷開 SDC。

**規則要求的監測項目**：
- 每顆 Cell 過壓（Over-voltage）/ 欠壓（Under-voltage）
- 溫度過高（Over-temperature）

**設計架構**：
```
[Cell Voltage Sensors] ──→ [AMS MCU（如 LTC6811）] ──→ [主 MCU / VCU]
[Cell Temp Sensors NTC]──→                               ↓（CAN 或數位訊號）
                                              [AMS_OK 信號] ──→ SDC
```

**關鍵設計決策**：AMS_OK 輸出要用**硬體繼電器**，不能只靠軟體控制 GPIO。原因：MCU 當機、程式跑飛時，AMS_OK 必須能自主斷路。

> 💡 **學長提示**：AMS 是你被 Scrutineer 問最多問題的地方之一。你必須能解釋每一顆 Cell 的監測方式、閾值設定、以及 AMS 錯誤如何觸發 SDC。

### 2.5 Insulation Monitoring Device（IMD）

⚠️ **關鍵規則**：IMD 必須持續監測 TS（高壓系統）與 GLV（低壓/車架）之間的絕緣阻抗。低於閾值時斷開 SDC。

**規則閾值**：通常為 500 Ω/V（依 TS 電壓計算，例如 400V 系統 → 200 kΩ）

**為什麼重要**：TS 對地短路不只會造成設備損壞，更可能在人員觸碰車架時造成電擊事故。

**選型建議**：
- Bender ISOMETER® 系列（FSAE 最常見選擇）
- 輸出訊號：OK/Fault 數位輸出 → 接入 SDC
- 也提供 CAN 或 RS485 輸出供 VCU 讀取狀態（但 SDC 接線不能依賴通訊）

**設計注意**：
- IMD 需要在 AIR 閉合之前就開始工作（監測 Precharge 前的絕緣狀態）
- IMD 電源從 GLV 取，監測訊號接到 TS 側
- IMD 的接地必須接到車架（GLV 地），否則量測基準錯誤

### 小結

規則不是用來背的，是用來**理解設計意圖**的。每一條 EV 規則背後都有一個安全事故的教訓。把規則的「為什麼」搞懂，設計時才不會出現「規則沒說不行，但其實很危險」的盲點。

---

# 3. 電控系統設計架構

## 3. 電控系統設計架構

### 3.1 高壓系統（HV）

HV 系統的設計目標：**在需要時提供最大安全功率；在異常時最快速度斷電。**

#### Accumulator 介面

```
[Accumulator 內部]
 ├── Cell Stack（串並聯模組）
 ├── AMS（BMS）──→ AMS_OK → SDC
 ├── 內部保險絲 / 斷路器
 ├── HVD（High Voltage Disconnect）──→ SDC
 └── TS+ / TS-（高壓輸出端）

[Accumulator 外部]
 AIR+（Accumulator Isolation Relay 正極）
 AIR-（Accumulator Isolation Relay 負極）
 Precharge Relay + Precharge Resistor
```

#### Contactor / AIR 選型

- 用**專用 HV Contactor**（如 TE Kilovac EV200、Tyco EV series）
- 線圈電壓通常 12V 或 24V，從 GLV 供電，受 SDC 控制
- 必須有**輔助觸點（Auxiliary Contact）**回授給 VCU，確認 AIR 實際閉合狀態

**設計建議**：AIR+ 與 AIR- 都要安裝 Contactor，不能只有一側。原因：單側斷開時另一側仍有電位差，不符合安全隔離要求。

### 3.2 低壓系統（LV / GLV）

**GLV 設計原則**：
- 使用獨立的 GLV 電池（鋰鐵電池 or 鉛酸），與 Accumulator 完全隔離
- GLV 電壓穩定性直接影響 CAN 通訊品質與感測器精度
- 建議加 DC-DC 穩壓（5V for MCU、12V for 繼電器、3.3V for 感測器）

**GLV 接地設計**：
- **單點接地**（Single Point Grounding）是原則：所有 GLV 元件接地最終匯集到一個主接地點，再連接到車架
- 避免接地迴路（Ground Loop）造成干擾
- 訊號地（Signal GND）與電源地（Power GND）分開拉線，在主接地點匯合

> ⚠️ **常見錯誤**：多個元件分別就近接地到車架不同位置，造成地電位差，引發 CAN Bus 通訊異常。這個問題很難 debug，要從設計開始避免。

### 3.3 通訊架構（CAN Bus）

**為什麼用 CAN？**
- 差分訊號，抗干擾強（高壓開關切換時 EMI 嚴重）
- 多主架構，任何節點都能傳送
- 有成熟的錯誤處理機制
- FSAE 強隊標配，資源豐富

**基本拓樸**：
```
[VCU] ──────────────── CAN Bus（終端電阻 120Ω×2）
 ├── [Motor Controller / Inverter]
 ├── [AMS / BMS]
 ├── [Dashboard / 儀表]
 └── [Datalogger]（可選）
```

**速率建議**：1 Mbps（賽車環境，短線束，1Mbps 完全可行）

**線材規範**：
- 使用屏蔽雙絞線（Shielded Twisted Pair）
- 屏蔽層單端接地（避免形成地迴路）
- 每條 Bus 兩端各一個 120Ω 終端電阻

### 3.4 控制器（VCU / MCU）

**VCU（Vehicle Control Unit）** 是整車電控的大腦：
- 讀取駕駛輸入（油門踏板、煞車訊號、方向盤角度等）
- 實現扭矩控制策略
- 監測系統狀態，管理整車狀態機
- 控制 RTDS、TSAL 邏輯（軟體部分）
- 透過 CAN 與 Motor Controller、AMS 通訊

**選型方向**：
- **STM32 系列**（如 STM32F4/H7）：FSAE 最常見，資源豐富，支援 CAN，開發工具完善
- **NXP S32 系列**：汽車級，適合高可靠性要求
- **自製 PCB vs 開發板**：新車隊初期建議先用成熟開發板驗證邏輯，穩定後再自製 PCB

> 💡 **學長建議**：VCU 的硬體設計和軟體架構同等重要。硬體上要考慮：看門狗電路（Watchdog）、電源監測、隔離通訊介面；軟體上要實作完整狀態機，不能讓程式進入未定義狀態。

### 小結

架構設計的核心原則是**分層與隔離**：HV 層做動力，GLV 層做控制，兩層通過隔離介面互動。每一層內部再做功能分區，故障時影響面最小。

---

# 4. Shutdown Circuit 設計指南（重點）

## 4. Shutdown Circuit 設計指南（重點）

> 這一節是整份指南最重要的部分。Scrutineering 50% 的電氣檢查都圍繞著 SDC。

### 4.1 系統組成詳解

完整 SDC 串聯路徑（以典型設計為例）：

```
GLV+ (12V)
  │
  ├── [Cockpit E-Stop（常閉）]
  ├── [External E-Stop 1（常閉）]
  ├── [External E-Stop 2（常閉）]
  ├── [TSMS（Master Switch，常開，駕駛操作閉合）]
  ├── [MSMS（Maintenance Switch，常開）]
  ├── [HVD Interlock（HVD 插入時閉合）]
  ├── [Inertia Switch（正常時閉合）]
  ├── [BSPD_OK（正常時閉合）]
  ├── [IMD_OK（正常時閉合）]
  └── [AMS_OK（正常時閉合）]
           │
           ↓ SDC_CLOSED
  [AIR+ 線圈] + [AIR- 線圈]（並聯供電）
           │
          GND
```

**每個節點的實作細節**：

**E-Stop 按鈕**：使用**常閉（Normally Closed, NC）**按鈕。按下時斷路，觸發 SDC 開路。不要用 NO 按鈕然後軟體取反——這違反 Fail-safe 原則。

**TSMS / MSMS**：鑰匙開關或大型拔插開關。選型要注意電流額定值（SDC 電流雖然不大，但要可靠）。

**Inertia Switch（慣性開關）**：在碰撞加速度下自動斷路。選型參考 Ford 汽車用件或 Sensata 系列。**注意：觸發後需要手動重置，比賽後必須記得確認。**

### 4.2 常見設計錯誤

**錯誤 1：用 GPIO 控制 SDC 路徑**

❌ 錯誤做法：VCU 讀取感測器數值，判斷異常後才用 GPIO 關掉一個繼電器來斷 SDC。

✅ 正確做法：感測器直接驅動 SDC 節點上的繼電器或 Normally-Closed 觸點。VCU 可以「監測」SDC 狀態，但不能是 SDC 斷路的唯一手段。

**原因**：VCU 程式 bug、MCU 當機、電源異常 → GPIO 輸出可能不如預期 → 安全機制失效。

---

**錯誤 2：AMS_OK / IMD_OK 用軟體輸出**

❌ 錯誤做法：AMS MCU 偵測到異常，透過軟體設一個 GPIO 為 Low，控制繼電器斷路。

✅ 正確做法：使用**看門狗電路（Watchdog）** + 繼電器。AMS MCU 正常運行時持續餵狗（toggling output），Watchdog 電路正常 → 繼電器閉合。MCU 死機 → Watchdog 超時 → 繼電器斷路 → SDC 開路。

---

**錯誤 3：SDC 佈線通過接線端子過多**

接線端子增加接觸電阻，溫度循環後容易鬆動。建議：
- SDC 路徑用**焊接接頭**而非插拔式端子（或使用高品質鎖緊式連接器）
- 定期做接觸電阻測試

---

**錯誤 4：忽略 SDC 電流需求**

SDC 電流 = AIR 線圈電流（通常 0.5A–2A 總計）。雖然不大，但要確保整條路徑（包括開關、繼電器觸點）的電流額定足夠，接觸電阻不造成壓降過大。

### 4.3 如何通過技術檢查（Scrutineering）

**Scrutineer 通常會做的測試**：

1. **SDC 節點功能測試**：逐一觸發每個 SDC 節點，確認 AIR 確實斷開（用電壓錶量 TS 電壓應降至 0）
2. **BSPD 功能驗證**：模擬煞車 + 大電流，確認 SDC 開路
3. **AMS 功能驗證**：模擬 Cell 過壓，確認 AMS_OK 斷路
4. **IMD 功能驗證**：可能要求你展示如何模擬絕緣故障
5. **TSAL 驗證**：TS > 60V 時 TSAL 是否亮起

**準備技巧**：

- 製作一份**SDC 佈線圖**，標明每個節點位置與線號，帶去 Scrutineering
- 每個節點旁邊貼上標籤（例如：「IMD_OK」、「AMS_OK」）
- 事先做完整的 SDC 測試記錄，帶文件給裁判看
- **模擬每個故障狀態並錄影**，這是最有說服力的證明

> ⚠️ **踩過的坑**：有車隊 Scrutineering 前才發現 BSPD 的電流閾值設定錯誤，當場無法通過。SDC 功能測試要在裝車前就完整驗證，不要留到 Scrutineering 再測。

### 小結

SDC 的設計原則就是三個字：**硬體優先**。所有安全功能的最終保障必須是硬體電路，軟體只是輔助監測。任何「但這樣軟體比較好寫」的妥協，都可能在關鍵時刻失效。

---

# 5. Accumulator 與安全設計

## 5. Accumulator 與安全設計

### 5.1 AMS 功能與設計

**AMS（Accumulator Management System）** 在 FSAE 語境中等同於商用車的 BMS（Battery Management System），但 FSAE 規則對其功能有明確要求。

#### 必要功能

| 功能 | 說明 | 實作方式 |
|------|------|----------|
| 逐顆電壓監測 | 每顆 Cell 獨立量測 | 專用 IC（如 LTC6811） |
| 溫度監測 | 每個溫度區域 NTC | ADC 讀取，插值換算 |
| 過壓保護 | 超過 Cell 最大電壓 | 硬體比較器 + SDC 繼電器 |
| 欠壓保護 | 低於 Cell 最低電壓 | 同上 |
| 過溫保護 | 超過 Cell 最高溫度 | 同上 |
| SOC 估算（可選但強烈建議） | 剩餘電量顯示 | 庫侖計數 or 模型估算 |

#### LTC6811 架構（推薦方案）

```
[Cell Stack（12S）]
      │
[LTC6811-1（量12顆Cell電壓）]
      │（daisy-chain SPI）
[LTC6811-2（量下一組12顆）]
      │
[AMS MCU（STM32）]
      │
  ├── [AMS_OK 繼電器輸出] → SDC
  ├── [CAN 輸出] → VCU
  └── [SOC 顯示] → Dashboard
```

**為什麼選 LTC6811**：
- 專為 Li-ion Stack 設計，量測精度高（< 1mV）
- Daisy-chain 架構，線束簡單
- 內建 ADC，支援 Cell balance（Passive Balancing）
- 有完整文件和範例程式碼

### 5.2 Precharge 電路

**為什麼需要 Precharge？**

Motor Controller 內部有大容量電容（數百到數千 μF）。如果直接閉合 AIR，電容充電電流在瞬間可達數百安培，可能：
- 燒毀 Contactor 觸點（電弧侵蝕）
- 造成 Motor Controller 損壞
- 觸發保險絲

**Precharge 流程**：
```
1. AIR- 閉合（負極先閉合）
2. Precharge Relay 閉合（通過限流電阻對 MC 電容充電）
3. 等待 MC 電壓上升到 TS 電壓的 ≥ 95%（通常 1–5 秒）
4. AIR+ 閉合
5. Precharge Relay 斷開
6. 進入 RTD 等待狀態
```

**Precharge 電阻計算**：

時間常數 τ = R × C

- 目標充電時間（3τ 到達 95%）：建議 1–3 秒
- MC 電容：查 Motor Controller 規格書
- 計算 R = τ / (3 × C)
- 電阻功率：P = V² / R（在充電初期最大），選擇額定功率 3–5 倍的電阻

**Precharge 完成偵測**：
- 量測 Motor Controller DC Bus 電壓
- 比對 Accumulator 電壓
- 差值 < 5%（或設定閾值）→ 觸發 AIR+ 閉合

> ⚠️ **關鍵規則**：Precharge 電路本身也受 SDC 控制。SDC 開路時，Precharge Relay 也應斷開。

### 5.3 Contactor 控制邏輯

**完整 Contactor 控制狀態機**：

```
[IDLE / 充電完成]
    │ SDC_CLOSED & 收到充電指令
    ↓
[AIR- 閉合]（等待 50ms 確認）
    │
    ↓
[Precharge 閉合]（等待 MC 電壓上升）
    │ MC_Voltage >= 0.95 × TS_Voltage
    ↓
[AIR+ 閉合]（等待 50ms 確認）
    │
    ↓
[Precharge 斷開]
    │
    ↓
[HV READY]（等待 RTDS 程序完成）
    │
    ↓
[RTD（Ready To Drive）]

任何狀態發生 SDC 開路 → 立即進入 [FAULT] → 斷開所有 Contactor
```

**輔助觸點回授的重要性**：

每個 Contactor 的輔助觸點（Auxiliary Contact）必須回授給 VCU。這讓你能偵測：
- Contactor 線圈通電了，但觸點沒有實際閉合（機械卡死）
- Contactor 線圈斷電了，但觸點沒有斷開（觸點黏連，welded contact）

觸點黏連是高壓系統中非常危險的故障模式——你以為 HV 已斷電，但實際上還有電壓存在。

### 小結

Accumulator 安全設計的核心是：**不要假設一切正常**。每一個電氣動作都需要有確認機制，每一個故障狀態都需要有明確的處理路徑。Precharge 就是「不假設電容已經充好電」的體現。

---

# 6. 通訊與控制策略

## 6. 通訊與控制策略

### 6.1 CAN 設計（ID 規劃）

**CAN ID 規劃原則**：

| 優先級 | 用途 | ID 範圍（建議） |
|--------|------|----------------|
| 高（低 ID） | 安全相關（SDC 狀態、AMS Fault） | 0x001–0x0FF |
| 中 | 控制指令（扭矩命令、模式切換） | 0x100–0x2FF |
| 低 | 監測數據（電壓、溫度、速度） | 0x300–0x5FF |
| 最低 | 儀表顯示、Log 數據 | 0x600–0x7FF |

**為什麼這樣分**：CAN 是基於 ID 仲裁的，**ID 越小，優先級越高**。安全相關訊息必須在 Bus 繁忙時仍能優先傳輸。

**CAN 訊息設計範例（AMS 狀態）**：

```
CAN ID: 0x050（高優先）
DLC: 8 bytes
Byte 0: Status（0x00=OK, 0x01=OV, 0x02=UV, 0x03=OT, 0xFF=Fault）
Byte 1: Max Cell Voltage [LSB = 1 mV]（高 8 bits）
Byte 2: Max Cell Voltage（低 8 bits）
Byte 3: Min Cell Voltage（高 8 bits）
Byte 4: Min Cell Voltage（低 8 bits）
Byte 5: Max Temperature [°C, offset -40]
Byte 6: SOC [0–100%]
Byte 7: Fault Code（詳細故障碼）
```

**發送頻率設計**：
- 安全狀態訊息：10–50 ms（快速更新）
- 控制指令：5–10 ms
- 監測數據：50–100 ms
- 儀表數據：100–500 ms

### 6.2 故障處理（Fail-safe）

**Fail-safe 設計哲學**：**通訊中斷或數據異常時，系統應進入最安全的狀態，而不是繼續運行。**

**CAN 超時偵測**：

```c
// 偽碼示意
void CAN_RxCallback(uint32_t id, uint8_t *data) {
    if (id == MOTOR_CONTROLLER_STATUS_ID) {
        last_mc_heartbeat = get_timestamp();
        update_mc_status(data);
    }
}

void safety_check_task(void) {  // 每 10ms 執行
    if (get_timestamp() - last_mc_heartbeat > MC_TIMEOUT_MS) {
        // Motor Controller 通訊超時 → 扭矩命令設為 0
        set_torque_command(0);
        set_fault(FAULT_MC_TIMEOUT);
    }
}
```

**各模組超時閾值建議**：
- AMS：100 ms（若超時，禁止扭矩輸出，但不一定立刻斷 HV）
- Motor Controller：50 ms（立刻設扭矩為 0）
- 關鍵安全訊號：20 ms

**故障分級**：

| 級別 | 說明 | 處理方式 |
|------|------|----------|
| Warning | 非立即危險，需注意 | 儀表警示，繼續運行 |
| Soft Fault | 潛在問題，需降功率 | 限制扭矩輸出至 50% |
| Hard Fault | 嚴重問題，需立停 | 扭矩設 0，禁止 RTD |
| Critical Fault | 安全威脅 | 觸發 SDC 斷路（軟體觸發，補充硬體安全） |

### 6.3 State Machine（車輛狀態設計）

**整車狀態機是電控軟體的骨架。** 沒有狀態機的電控系統，就像沒有骨架的人，遇到複雜情況就垮掉。

**推薦狀態設計**：

```
                    ┌──────────────────────────────┐
                    │                              ↓
[INIT] → [LV_READY] → [HV_PRECHARGING] → [HV_READY] → [RTD]
            ↑               │                  │           │
            │          Fault/SDC Open      Fault/SDC    Fault/SDC
            │               ↓               Open           Open
            └─────── [FAULT] ←──────────────────┘←─────────┘
                        │
                    (SDC 斷路
                   所有 Contactor 斷開)
```

**各狀態說明**：

**INIT**：上電初始化。自我檢測（Selftest）：確認感測器通訊正常、SDC 節點狀態讀取、CAN 通訊建立。

**LV_READY**：GLV 系統正常，HV 尚未充電。等待駕駛操作 TSMS 進入 HV Precharge 流程。

**HV_PRECHARGING**：執行 AIR- → Precharge → AIR+ 流程。超時（如 10 秒後 MC 電壓未上升到閾值）→ 進入 FAULT。

**HV_READY**：HV 系統正常，等待 RTD 條件（煞車 + RTD 按鈕）。

**RTD（Ready To Drive）**：正常行駛狀態。扭矩控制啟用，RTDS 已觸發。

**FAULT**：任何嚴重錯誤。此狀態下，扭矩輸出為 0，向 SDC 硬體發送 Fault 訊號（透過 Watchdog 停止餵狗），重置需要物理操作（重新操作 TSMS 或解除故障）。

> 💡 **學長建議**：狀態機的進入與退出條件要寫得非常嚴謹。特別是從 FAULT 返回正常狀態的條件，不能靠軟體自動 Reset，必須有駕駛或維修人員的確認動作。

### 小結

通訊與控制策略的核心是：**預期一切可能出錯**。每個 CAN 節點可能超時，每個感測器可能輸出錯誤值，每個程式模組可能有 bug。好的狀態機設計讓系統在這些情況下仍然安全地「失效」。

---

# 1kW 四輪驅動環保車 (AWD EV) 設計思路與實作

## 1. 系統硬體架構 (System Architecture)

### 1.1 動力總成 (Powertrain)
* **電池電源:** **13s**鋰電池組，**最大輸出功率限制 1000W** (約 20.8A)。
* **驅動馬達:** 4顆 x 500W 20吋 輪轂馬達 (總額定功率 2000W，採降額使用)。
    * **前軸 (Front Axle):** 內建**單向離合器 (Overrunning Clutch)**。
        * *特性:* 加速時接合，滑行時空轉無磁阻，**無法回充/倒車**。
    * **後軸 (Rear Axle):** 直驅 (Direct Drive)。
        * *特性:* 可雙向控制，具備**動能回收 (Regen)** 與 **扭矩向量 (Vectoring)** 能力

![Gemini_Generated_Image_y1i7ppy1i7ppy1i7](https://hackmd.io/_uploads/S1GNqImZ-e.png)

### 1.2 控制單元 (Control Unit)
* **MCU:** STM32F446 (Cortex-M4F, 180MHz)。
* **OS:** FreeRTOS (CMSIS-V2 API)。
* **通訊:** CAN Bus (500kbps) 連接 4 組 VESC 驅動器。
* **感測器:**
    * 油門踏板 (ADC)。
    * 方向盤轉角感測器 (ADC 或 Encoder)。
    * IMU 慣性感測器 (I2C/SPI, MPU6050/ICM20600)。

---

## 2. 核心控制邏輯 (Control Strategy)

由於電池僅有 1kW 輸出，而馬達總容量達 2kW，控制核心在於**「功率預算分配」**與**「動態切換」**。

### 2.1 驅動模式狀態機 (Drive Mode FSM)
* **狀態 A: 起步與爬坡 (4WD Mode)**
    * *條件:* 車速 < 35 km/h (可調)。
    * *分配:* 前後輪同時輸出。
    * *比例:* 建議 **前 40% / 後 60%** (利用後輪加速時重心後移增加抓地力)。
* **狀態 B: 高速巡航 (RWD Mode)**
    * *條件:* 車速 > 35 km/h。
    * *分配:* **前 0% / 後 100%**。
    * *優勢:* 前輪離合器脫開進入無阻力滑行，1kW 功率全數集中於後輪，並配合弱磁控制 (Field Weakening) 衝擊極速。

### 2.2 操控輔助系統 (Active Dynamics)
* **電子差速 (Electronic Differential):** 根據方向盤角度，計算阿克曼轉向幾何，調整左右輪速差。
* **扭矩向量 (Torque Vectoring):** * 當 IMU 偵測轉向不足 (Understeer) 時，增加外側後輪扭力，煞車內側後輪。
    * *限制:* 前輪因有離合器，計算出的負扭力指令將被強制歸零 (Clamp to 0)。
---
## 3. 控制邏輯詳細解析 (Detailed Logic Analysis)

本系統架構基於 RTOS 設計，以下為各邏輯區塊的詳細運作機制：

### 3.1 狀態觀測層 (Observer Layer)
負責將原始數據轉換成物理意義，並計算當前的「邊界條件」。

* **CalcPower (功率預算):** 最重要的守門員。
    * 公式：$Max\_Current = 1000W / V\_bat$
    * *作用:* 確保無論後續如何分配扭矩，總電流基數永遠不會讓電池過載。
* **CalcSpeed (速度計算):**
    * *邏輯:* 主要參考 **後輪 (Rear Wheels)** 的 ERPM。
    * *原因:* 前輪具有離合器，放開油門滑行時前輪轉速可能低於車速（空轉），無法代表真實車速。

### 3.2 策略層 (Strategy Layer) - 大腦
* **ModeLogic (模式切換):**
    * **4WD 模式:** 設定 Splitter 比例為 **前 33% / 後 67%** (符合前250W/後500W配置比例)。
    * **RWD 模式:** 設定 Splitter 比例為 **前 0% / 後 100%**。
* **EDiff (電子差速):**
    * 計算轉向時的幾何差。
    * *邏輯:* 左轉時，右輪（外側）電流增加 $\Delta I$，左輪（內側）電流減少 $\Delta I$。
* **TCS_ESP (動態穩定):**
    * 比較「方向盤角度想要的轉向率 (Target Yaw)」與「IMU 測到的實際轉向率 (Actual Yaw)」。
    * 若差距過大 (出現 Understeer/Oversteer)，產生修正扭矩 $\Delta I_{ESP}$。

### 3.3 動力分配混合器 (Mixer Layer) - 關鍵演算法
這是數學運算最複雜的地方，負責將基礎扭矩與修正量混合：

* **後輪邏輯 (Rear Logic - 直驅):**
    $$I_{Rear\_L} = (I_{Total} \times Ratio_{Rear} \times 0.5) + \Delta I_{Diff} + \Delta I_{ESP}$$
    $$I_{Rear\_R} = (I_{Total} \times Ratio_{Rear} \times 0.5) - \Delta I_{Diff} - \Delta I_{ESP}$$
    * *特點:* 後輪是直驅，可以接受負值（電子煞車/回充）來修正車身動態。

* **前輪邏輯 (Front Logic - 離合器特殊處理):**
    $$I_{Front\_L} = (I_{Total} \times Ratio_{Front} \times 0.5) + \Delta I_{Diff}$$
    $$I_{Front\_R} = (I_{Total} \times Ratio_{Front} \times 0.5) - \Delta I_{Diff}$$
    * **重要限制:** 由於前輪有單向離合器，當 Mixer 算出負值時必須**強制歸零 (Clamp to 0)**。前輪無法產生制動力，只能靠「少出力」或「多出力」來協助。

### 3.4 安全限制器 (Limiter Layer)
發送給 VESC 之前的最後一道防線：
1.  **單體限制:** 檢查單顆電機是否超過其額定電流 (例如前輪 Max 10A)。
2.  **總量限制:** 再次加總四顆電機的最終指令，確保 $\sum I \le I_{max\_battery}$。如果因為 ESP 修正導致總電流超標，則等比例縮小 (Scale Down) 所有指令。
---

## 4. 程式碼實作 (Implementation)
#### 軟體架構 (Software Architecture)
採用 **FreeRTOS** 多任務系統，確保控制迴圈的即時性。所有運算採用 **整數 (int32)** 以優化 STM32 執行效率。

| 任務名稱 | 優先級 | 頻率 | 功能描述 |
| :--- | :--- | :--- | :--- |
| `Task_Control` | **Realtime** | **1kHz** | 核心控制迴圈 (讀取狀態 -> 策略運算 -> CAN 發送) |
| `Task_CanRx` | High | Event | 接收 VESC 回傳封包 (轉速、電流)，更新車輛狀態 |
| `Task_Input` | Normal | 100Hz | 讀取油門 ADC、方向盤角度、IMU 數據 |

以下程式碼基於 STM32 HAL 庫與 CMSIS-OS V2。

### 4.1 標頭檔設定 (main.h)

```c
/* main.h - 參數與結構定義 */
#ifndef __MAIN_H
#define __MAIN_H

#include <stdint.h>

// --- 物理限制 ---
#define POWER_LIMIT_W          1000     // 電池功率限制
#define BATTERY_VOLTAGE_NOM    48       // 標稱電壓
// 最大總電流 (mA) = 1000W / 48V = 20833 mA
#define MAX_TOTAL_CURRENT_MA   ((POWER_LIMIT_W * 1000) / BATTERY_VOLTAGE_NOM)

// --- 控制參數 ---
#define ERPM_THRESHOLD_RWD     10000    // 切換後驅的轉速閾值 (ERPM)
#define ERPM_HYSTERESIS        500      // 遲滯區間
#define STEERING_GAIN          50       // 轉向靈敏度係數 (整數縮放)
#define VECTORING_GAIN         80       // 向量控制強度係數

// --- VESC CAN ID ---
#define VESC_ID_FL             1
#define VESC_ID_FR             2
#define VESC_ID_RL             3
#define VESC_ID_RR             4
#define CAN_PACKET_SET_CURRENT 1

// --- 共享車輛狀態結構 ---
typedef struct {
    int32_t  avg_erpm;         // 平均車速 (ERPM)
    int32_t  throttle_adc;     // 油門 (0-4095)
    int32_t  steering_val;     // 方向盤 (-2048 左 ~ +2048 右)
    int32_t  yaw_rate_imu;     // IMU Z軸角速度
    uint8_t  drive_mode;       // 0: 4WD, 1: RWD
} VehicleState_t;

#endif
```

### 4.2 RTOS 任務邏輯 (freertos.c)
```C
/* freertos.c - 核心控制邏輯 */
#include "main.h"
#include "cmsis_os.h"
#include "can.h" 

// 全域變數與 Handles
extern VehicleState_t g_VehicleState;
extern osMutexId_t VehicleMutexHandle;
extern CAN_HandleTypeDef hcan1;

// 輔助函式：發送 CAN
void VESC_Send_Current(uint8_t controller_id, int32_t current_ma) {
    CAN_TxHeaderTypeDef TxHeader;
    uint32_t TxMailbox;
    uint8_t TxData[4];

    TxHeader.ExtId = (CAN_PACKET_SET_CURRENT << 8) | controller_id;
    TxHeader.IDE = CAN_ID_EXT;
    TxHeader.RTR = CAN_RTR_DATA;
    TxHeader.DLC = 4;

    // Big Endian Packing
    TxData[0] = (uint8_t)(current_ma >> 24);
    TxData[1] = (uint8_t)(current_ma >> 16);
    TxData[2] = (uint8_t)(current_ma >> 8);
    TxData[3] = (uint8_t)(current_ma);

    if (HAL_CAN_GetTxMailboxesFreeLevel(&hcan1) > 0) {
        HAL_CAN_AddTxMessage(&hcan1, &TxHeader, TxData, &TxMailbox);
    }
}

// --- Task 1: 核心馬達控制 (1kHz) ---
void StartControlTask(void *argument)
{
    uint32_t tick_count = osKernelGetTickCount();
    const uint32_t period = 1; // 1ms

    // 本地變數 (減少 Mutex 佔用)
    int32_t cmd_FL=0, cmd_FR=0, cmd_RL=0, cmd_RR=0;
    int32_t loc_rpm=0, loc_thr=0, loc_steer=0;
    uint8_t loc_mode=0;

    for(;;)
    {
        // 1. 快速讀取狀態
        if (osMutexAcquire(VehicleMutexHandle, 2) == osOK) {
            loc_rpm   = g_VehicleState.avg_erpm;
            loc_thr   = g_VehicleState.throttle_adc;
            loc_steer = g_VehicleState.steering_val;
            loc_mode  = g_VehicleState.drive_mode;
            osMutexRelease(VehicleMutexHandle);
        }

        // 2. 計算總功率預算 (Base Torque)
        // 使用位元移位 (>>12) 代替除以 4096，效率極高
        int32_t total_ma = (loc_thr * MAX_TOTAL_CURRENT_MA) >> 12;

        // 3. 判斷驅動模式 (Hysteresis)
        if (loc_mode == 0) { // 4WD
            if (loc_rpm > (ERPM_THRESHOLD_RWD + ERPM_HYSTERESIS)) loc_mode = 1;
        } else { // RWD
            if (loc_rpm < (ERPM_THRESHOLD_RWD - ERPM_HYSTERESIS)) loc_mode = 0;
        }

        // 4. 計算前後軸基底電流
        int32_t base_front = 0;
        int32_t base_rear  = 0;

        if (loc_mode == 0) { // 4WD Mode
            // 策略：前 40%, 後 60%
            base_front = (total_ma * 40) / 100;
            base_rear  = total_ma - base_front;
        } else { // RWD Mode
            base_front = 0; // 前輪空轉
            base_rear  = total_ma; // 後輪全功率
        }

        // 5. 計算電子差速與向量修正 (Differential & Vectoring)
        // 簡單模型：轉向值 * 係數 = 電流差值
        int32_t diff_adj = (loc_steer * STEERING_GAIN) / 100; 

        // 6. 混合與分配 (Mixing)
        // 前軸 (注意：離合器不接受負值)
        int32_t fl_temp = (base_front / 2) + diff_adj;
        int32_t fr_temp = (base_front / 2) - diff_adj;
        
        // Clamp logic for front clutch (No regen)
        cmd_FL = (fl_temp < 0) ? 0 : fl_temp;
        cmd_FR = (fr_temp < 0) ? 0 : fr_temp;

        // 後軸 (接受負值，允許向量煞車)
        // 這裡可以加入額外的 IMU 穩定修正 (Yaw Control)
        cmd_RL = (base_rear / 2) + diff_adj; 
        cmd_RR = (base_rear / 2) - diff_adj;

        // 7. 最終安全檢查 (Total Current Limiter)
        // 防止向量控制疊加後超過電池極限
        int32_t total_req = cmd_FL + cmd_FR + cmd_RL + cmd_RR;
        if (total_req > MAX_TOTAL_CURRENT_MA) {
            // 簡單等比例縮小 (Scaling Down)
            // 這裡為了效率，簡化處理：
            // 實際專案建議使用定點數乘法進行縮放
        }

        // 8. 回寫模式狀態
        if (loc_mode != g_VehicleState.drive_mode) {
             if (osMutexAcquire(VehicleMutexHandle, 0) == osOK) {
                g_VehicleState.drive_mode = loc_mode;
                osMutexRelease(VehicleMutexHandle);
            }
        }

        // 9. 發送 CAN 指令
        VESC_Send_Current(VESC_ID_FL, cmd_FL);
        VESC_Send_Current(VESC_ID_FR, cmd_FR);
        VESC_Send_Current(VESC_ID_RL, cmd_RL);
        VESC_Send_Current(VESC_ID_RR, cmd_RR);

        // 10. 精確等待
        tick_count += period;
        osDelayUntil(tick_count);
    }
}
```

## 5. 系統接線與配置備忘 (Wiring Notes)
1. CAN Bus 終端電阻: 確保 CAN H/L 兩端各有一顆 120Ω 電阻 (MCU 端與最遠端 VESC)。
1. 共地 (Common Ground): 所有的 VESC 訊號地 (GND) 必須與 STM32 的 GND 連接。
1. VESC 設定 (VESC Tool):
    * App Settings: 設為 `CAN Uart` 或 `CAN`。
    * Controller ID: 必須分別設為 1, 2, 3, 4 且不重複。
    * Baud Rate: 設為 `500K `或符合 STM32 設定。
    * Current Limits: 電機最大電流 (Motor Current Max) 可設為 20A (500W級距)，但輸入電流 (Battery Current Max) 需配合電池 BMS 限制。
    
## 6. 未來優化方向
1. 弱磁控制 (Field Weakening): 在 RWD 模式下，透過 VESC Tool 開啟後輪的弱磁功能，利用集中的 1kW 功率突破基速限制。
1. 牽引力控制 (TCS): 在 Task_Control 中加入輪速比較，若 (Wheel_RPM - Avg_RPM) > Threshold，則瞬間將該輪電流 cmd 減半。
1. IMU 融合濾波: 使用互補濾波器融合 加速度計 與 陀螺儀，獲得更穩定的 Yaw Rate，提升高速過彎穩定性。

# 7. 如何設計一個「好的電控系統」

## 7. 如何設計一個「好的電控系統」

### 7.1 穩定性

**硬體穩定性**：
- **去耦電容（Decoupling Capacitor）**：每個 IC 電源腳旁放 100nF + 10μF，濾除高頻雜訊
- **保護電路**：TVS 二極體保護 GPIO 輸入，防止靜電和高壓脈衝
- **電源設計**：使用低壓差穩壓（LDO）或 DC-DC，確保 MCU 電源在 HV 切換時不抖動
- **PCB Layout**：類比訊號遠離高頻數位線；差分對等長走線；CAN Bus 終端電阻靠近連接器

**軟體穩定性**：
- **Watchdog Timer**：啟用 Hardware Watchdog，若程式超時未餵狗 → 自動 Reset（搭配 AMS_OK 硬體設計）
- **Stack Overflow 保護**：設定 Stack Canary
- **ROM/Flash 校驗**：上電時校驗程式完整性（CRC 校驗）

### 7.2 安全性

**電氣安全**：
- 所有超過 60V 的裸露導體必須有絕緣保護或物理隔離
- HV 接線使用橙色（FSAE 賽車 HV 線束標準色）
- HV 連接器使用不同於 LV 的物理形式，防止誤插

**功能安全**：
- 關鍵感測器（油門踏板、煞車）使用**雙通道冗餘設計**（兩個獨立感測器，互相比對）
- 單點故障分析（FMEA）：列出所有可能的單點故障，確認每個都有對應的 Fail-safe 處理

### 7.3 可維護性

> 這是新人最容易忽略的部分，但也是讓車隊長期競爭力的關鍵。

**硬體可維護性**：
- 每條線束貼標籤，標明起點、終點、功能
- 使用快拆連接器（如 Deutsch DT/DTM 系列）而非直接焊接
- 關鍵節點（SDC 各節點、CAN Bus）設計測試點（Test Point）

**軟體可維護性**：
- 使用版本控制（Git）管理所有程式碼
- 重要變數（閾值、超時時間）定義為 `#define` 常數，集中在一個 config 文件
- 寫清楚的 commit message，讓半年後的你（或下一屆學弟妹）看得懂當時為什麼這樣改

### 7.4 Debug 能力

**設計時就要為 Debug 準備**：

- **CAN 數據 Log**：使用 CAN Logger（或 Raspberry Pi + candump）記錄所有 CAN 訊息，比賽後可以回放分析
- **LED 狀態指示**：每個關鍵狀態（SDC 狀態、各 AIR 狀態、Fault 碼）用 LED 指示，不用接示波器就能知道系統狀態
- **Serial Debug Output**：保留一個 UART 接口，可以輸出系統狀態和故障記錄
- **Fault Code 設計**：定義數字故障碼，儲存在 EEPROM 或 Flash，斷電後仍可讀取

> 💡 **學長心得**：「只在實驗室能 Debug 的系統，不是好系統。」賽場上你沒有示波器、沒有電腦，你需要能在 5 分鐘內靠 LED 和 CAN 讀值判斷問題出在哪裡。這種設計能力要從一開始就建立。

### 小結

好的電控系統不是功能最多的，而是**最可預期的**：在任何條件下，你都知道它會做什麼，為什麼這樣做。設計的每一個決策都要能回答：「如果這裡壞了，會發生什麼？」

---

# 8. 常見錯誤與踩雷經驗

## 8. 常見錯誤與踩雷經驗

### 8.1 比賽常見 Fail 原因

**第一名：CAN Bus 通訊不穩定**

症狀：車子在振動環境下偶爾失去 CAN 通訊，VCU 進入 Fault 模式。

根本原因：終端電阻未焊接、連接器接觸不良、地線設計有問題。

教訓：**所有 CAN 接頭必須有物理鎖定（不能只是插上），終端電阻必須焊接，不能靠麵包板或接線端子。**

---

**第二名：Precharge 超時 / 失敗**

症狀：按下 TSMS，Precharge 開始但 MC 電壓不上升，系統進入 Fault。

根本原因：Precharge 電阻過大（充電太慢）、Precharge Relay 接觸不良、MC DC Bus 電壓量測位置錯誤。

教訓：**Precharge 時間常數要在實驗台上實際量測，不要只靠計算。**

---

**第三名：接地回路干擾**

症狀：馬達啟動時，AMS 讀值異常，觸發 Fault；或 CAN Bus 通訊錯誤率暴增。

根本原因：多點接地設計，造成電流迴路引入雜訊。

教訓：**單點接地是原則，不是選項。**

---

**第四名：Contactor 線圈供電不足**

症狀：SDC 閉合，但 AIR 沒有完全閉合，或在振動下偶爾斷開。

根本原因：SDC 路徑接觸電阻累積，Contactor 線圈兩端電壓不足（需要最低工作電壓）。

教訓：**量測 SDC 在電路完全串聯後，Contactor 線圈兩端的實際電壓，不要假設 12V 系統就有 12V。**

### 8.2 Scrutineering 被卡的點

**被卡點 1：BSPD 無法功能測試**

裁判要求你現場示範 BSPD 功能（模擬煞車 + 大電流），但沒有測試介面，無法在不起動車的情況下測試。

解決方案：在 BSPD 電路設計測試注入點（Test Injection Point），允許裁判用外部訊號模擬故障。

---

**被卡點 2：AMS 閾值文件不足**

裁判詢問你的 Cell 過壓閾值是多少、依據哪份 Cell 規格書、如何驗證。如果答不出來或沒有文件，可能被要求補件。

解決方案：準備一份 **Cell Specification Sheet + AMS 設定表**，說明閾值來源。

---

**被卡點 3：HV 線束絕緣外觀問題**

線束有磨損、裸露、或未做好應力消除（Strain Relief），裁判可能要求修改。

解決方案：所有 HV 線束使用波浪管（Split Loom）或熱縮套管保護，在每個連接器出口處做線束夾固定。

---

**被卡點 4：TSAL 在 TS 充電時未亮**

測試流程：AIR 閉合，TS 電壓 > 60V，TSAL 應亮紅燈。如果 TSAL 設計依賴 VCU 軟體，而 VCU 初始化時序問題導致 TSAL 延遲，可能被卡。

解決方案：TSAL 的觸發必須有硬體電路作為後備，不能只靠 VCU。

---

**被卡點 5：SDC 圖和實際線路不符**

提交的電路圖和實際佈線不一致，裁判會要求當場對圖。

解決方案：每次修改電路後，必須同步更新電路圖，並標記版本號。

### 小結

Scrutineering 不是敵人，是幫你找出設計漏洞的機會。但被卡住浪費的時間，是比賽裡最昂貴的成本。**電路圖、文件、功能測試，在出發前就要全部準備好。**

---

# 9. 參考資料與延伸閱讀

## 9. 參考資料與延伸閱讀

### 9.1 官方規則

- **FSAE EV Rules 2026**：https://www.fsaeonline.com/
  - 重點章節：EV（Electric Vehicle）、TS（Tractive System）、IN（Inspection）
- **Formula SAE Rules Companion**：解釋規則意圖，強烈建議搭配閱讀
- **FSG（Formula Student Germany）Rules**：歐洲賽事規則，部分細節比 FSAE 更嚴格，可作為設計上限參考

### 9.2 強隊技術文件

- **AMZ Racing（ETH Zürich）**：每年發布技術文件，涵蓋電控架構設計
  - https://amzracing.ch/en/technical-documents
- **TUfast（TU München）**：開放部分設計方法論，Shutdown Circuit 設計可參考
- **KA-RaceIng（KIT）**：有詳細的 Accumulator 與 BMS 設計說明

### 9.3 技術資源

**晶片 / 模組文件**：
- LTC6811 Datasheet（Analog Devices）：Battery Stack Monitor 設計必讀
- Bender ISOMETER® 系列手冊：IMD 接線與設定
- TE Connectivity KILOVAC Contactor 系列技術手冊

**工具**：
- **Kvaser / PEAK CAN Interface**：CAN Bus 分析必備工具
- **CANalyzer / BUSMASTER（免費）**：CAN 訊息分析軟體
- **STM32CubeIDE**：STM32 開發環境（免費）
- **KiCad**：開源 PCB 設計工具，FSAE 車隊最常用

**書籍 / 課程**：
- *Battery Management Systems* by Gregory Plett（電池管理系統深度教材）
- *Automotive SPICE / ISO 26262* 相關資料（理解功能安全的基本概念）
- TI 官方的 CAN Bus 教學應用筆記（SLLA270）

### 9.4 給新人的最後建議

> 1. **先讀規則，再設計電路**。不要設計到一半才發現違規，重工的代價遠比一開始多讀幾小時規則書大得多。
>
> 2. **從第一天就用 Git 管理你的程式碼和電路圖**。你不會記得三個月後那個「臨時修改」是什麼。
>
> 3. **把你的設計說給別人聽**。能解釋清楚的設計，才是真正理解的設計。Scrutineering 就是你解釋設計的時候。
>
> 4. **學會看示波器、CAN Logger、電流鉗**。這三樣工具能解決你 80% 的 debug 問題。
>
> 5. **別怕問學長，但問之前先自己查過規則書**。帶著「我查到規則 EV.5.7 說這個，但我不確定我的理解對不對」去問，比帶著「這個怎麼設計」去問，學到的多十倍。

---

*文件版本：2026 v1.0 | 最後更新：2026 年 | 基於 FSAE Rules 2026*

*⚠️ 本文件為設計指引，不取代官方規則書。所有設計最終須以當年度官方規則為準。*

# 柱狀電池散熱分析思路

柱狀電池散熱分析思路
-----------
前言
讀這篇文之前 須具備一定流體力學 CFD 熱傳學等基礎知識 後文過於基礎的部分將不會多做說明

    幹你娘他怎麼變成斜斜的


---

大綱

1.發熱量預估

    電池熱模型建立
    電化學模型
    battery mode
    
2.電池熱模型建立


3.導熱介質選用

    導熱凝膠
    導熱貼片
    
4.外部流方案

    PQ curve
    對流表面優化處理
    
5.內部流方案

    水泵

物理建模
邊界條件設定







---


一.發熱量預估

先要有一個概念 電車跟油車的瞬間功耗不太一樣 油車基本上直接讀轉速就好 但電車又多了些功率轉換 大電流等等的問題
並且電池有放電倍率
![image](https://hackmd.io/_uploads/rJkpnQGYlg.png)
因此在突然抽功率用力操車的時候 其功耗並不會成單純線性上升 這也就造成了在定解熱目標值時相當困難
需考慮加速 回充等等 也跟車重和空力密切相關 這邊建議盡早與底盤聯繫跑carsim 在其模擬出的各資料由它們確認後誤差不大時 其得到的平均功耗再反推回去發熱量會較為準確

在電池部分 放電時有化學反應熱與電阻熱



二.電池熱模型建立

柱狀電池作為一個非等向性材料 光其內部的熱傳導在軸向與徑向就有可能差了將近二十倍以上
最理想的是使用電化學熱模型啥的 要去跟電池廠要(反正我們是沒要到 或者是根本沒問) 這個我們自己搞可以 但你要有讀博士的決心 或者找一位化工的朋友幫你
目前我取捨後較為現實的設置方法為直接改一個固體的參數 參數如下

並將其改為source terms(w/m^3) 意思即為一均勻之發熱體 
如上述，因此目前分析的方式將採用均質材料和source terms來進行均勻發熱模擬


三.散熱介質選用

四.外部流方案

五.內部流方案

喔對去翻規則應該會看到要絕緣的部分 你各位別忘記了 九代是用陽極去解決 澳洲的瘋子monash也用過陽極這招來絕緣





share topology記得打開 被這搞了半個月








實驗驗證方法









在九代部分 因為就我所記得以來散熱這部分擺爛太久 我也算是第一次做 目標可以說是訂得挺抽象 阿交給各位去改進了
因此所訂定之目標相當簡單暴力 取logger得到的平均時速反推電流將其直接套用內阻I^2R的功耗 並抓大一點(一模組總共200w) 室溫設定為30度來確保散熱的冗餘設計(意即這代散熱部分的FOS抓爆幹大的)

在設計過程中 經歷了強制空冷 base cooling side cooling

以柱狀電池的散熱方式來說 其各優缺大概可以這樣分類

空冷
輕 簡單 不用考慮防水絕緣 缺點是通大氣要考慮一些封閉性問題
base cooling
如前述電芯的軸向(長邊)熱傳導係數大部分屌打徑向(短邊)
因此用base cooling是個效率不錯的選擇 但電芯的熱容也大 所以會有較嚴重的溫度梯度差
當今天要壓縮電池模組空間而氣冷也不夠用的時候 可以選擇base cooling 他可以盡可能的壓縮空間(電芯與電芯間隔) 體積一小對減重也可以帶來大量優勢
side cooling
沒做壞的話基本上散熱最好 但最占空間 也最難加工 增加體積也會相對帶來變重的劣勢
但不否認他是一個對於極限工況具有強大控制能力的一個方案
而歐洲車隊基本上對於散熱大部分都是直接跑實驗 畢竟對熱流有點概念的就知道熱這東西就是他媽的抽象 基本上有錢做實驗去跑迭代後對於設計來說是最直觀且最準確的

# 動力澳洲當地設施紀錄

撰寫人: 范紹捷/動力組/5~9代
*以下內容根據2024年比賽經驗*
## 目錄
- [當地電壓](#當地電壓)
- [現場充電設施](#安裝需求)
- [PIT區用電](#基本使用)
- [海運處理](#自定義開發)
- [可工作時間](#自定義開發)


## 當地電壓 
1. 一般市電 230v 50hz![image](https://hackmd.io/_uploads/BkolOmzxel.png)
2. 工業用電

## 現場充電設施位置

## PIT區用電

## 海運處理
1. 電池
2. 
## 可工作時間
比賽通常安排在12月份舉行，這段時間正值澳洲的夏季，屬於長日照季節，天黑時間約在晚上9點至10點之間，因此即使傍晚仍有充足的自然光線。
雖然活動流程表上標註的比賽結束時間是下午5:00，但實際上結束後還需要花時間進行裝備整理、車輛回收與場地清理等收尾工作。根據經驗，大多數人實際離開賽場的時間大概會落在晚上7:00到8:00之間。
需要特別注意的是，澳洲的多數商店和餐廳營業時間結束得比較早，常見的打烊時間是下午5點至6點之間，較晚營業的餐廳或超市數量有限。因此，若預期會有隊員需留下來處理後續工作，建議可提前安排已經完成任務的人員先行外出購買晚餐或補給品，帶回賽場給留下來的成員。
此安排不僅能確保大家有餐點可以補充體力，也能提升工作效率，避免大家因肚子餓而影響整理進度。

# 電池箱結構設計細節與Ansys Mechanical簡單教學

前言
愛喬董 沒有喬董就沒有七代八代 也沒有完整的電池箱結構分析流程




FSAE
6061-T6
115MPa
焊接特性須知
牆壁固定焊接
SES工具

# 澳洲賽流程紀錄

# 澳洲賽流程紀錄

依照比賽時間做記錄共五天 

### day0 
佈置場地下午1點後可以進場
佈置Pit區域 整備車輛 報道

2024年待改進
安排太少人，當天架設pit跟車輛維護人手不足

### DAY1
報道
電池箱檢

### DAY2 

### DAY3

### DAY4

# BSPD Testing Standard Procedure

## Revision

* 2024/11/17, William, First version release.

## Purpose

This document outlines the procedure to verify the proper functionality of the Brake System Plausibility Device (BSPD) while ensuring compliance with EV7.7 regulations. The testing ensures that the system performs accurately under any circumstance.

## Related Rule

- EV7.7 Brake System Plausibility Device (BSPD)

## Test Steps

:::danger
Ensure the HV system remains disabled throughout the entire test.
:::

1. **Driver Preparation**  
   The driver gets on board and prepares for the test.
   
2. **Activate GLV System**  
   Turn on the GLV system.

3. **Simulate Hard Braking Condition**  
   a. Instruct the driver to press the brake pedal as hard as possible to simulate a hard braking scenario.  
   b. Verify that **the Interlock remains closed**.

4. **Reset to Normal Condition**  
   Ask the driver to release the brake pedal.

5. **Simulate Accumulator Output Exceeding 5kW**  
   a. Set the laboratory power supply to 2V and 3A.  
   b. Connect the positive terminal to the upper green banana jack and the negative terminal to the lower green banana jack on the LV-BOX panel.  
   c. Activate the power supply's output.  
   d. Verify that **the Interlock remains closed**.

6. **Test Interlock with Combined Conditions**  
   a. Instruct the driver to press the brake pedal as hard as possible again while the simulated accumulator output exceeds 5kW.  
   b. Verify that **the Interlock opens**.

## Core System Explanation

### How to Detect Accumulator Output Power Exceeds 5kW?

To monitor whether the accumulator’s output power exceeds 5kW, we installed a Hall effect sensor “LEM DHAB/S118” on the positive HV bus inside the HV-BOX.

Given that we are using LiFePO4 batteries with a nominal cell voltage of 3.2V and a configuration of 108 cells in series, the total nominal voltage of the accumulator is:

$$
345.6V = 108 \times 3.2V
$$

At 5kW output power, the corresponding current is calculated as:

$$
I = \frac{5kW}{345.6V} \approx 14.46A
$$

The current sensor, functioning as a transimpedance amplifier, converts the measured current into a voltage signal using the formula:

$$
V_{out} = 2.5V + (\text{Measured Current} \times 66.7mV/A)
$$

At a current of 14.46A, the output voltage of the sensor will be:

$$
V_{out} = 2.5V + (14.46A \times 66.7mV/A) \approx 3.464V
$$

To determine whether the output power exceeds 5kW, we use an operational amplifier (OPA) configured as a comparator with a precise voltage reference set at 3.464V. When the sensor’s output voltage exceeds this threshold, the comparator outputs a high signal, indicating that the power has surpassed the 5kW limit.

---

### How to Detect Hard Braking?

To detect hard braking, we installed a pressure sensor “TE M3041” on the brake pipe.

This sensor outputs a voltage proportional to the brake pedal travel. To determine the threshold voltage for hard braking, we conducted a calibration by asking the driver to press the brake pedal as hard as possible, simulating a hard braking scenario. The corresponding sensor output voltage was recorded as the threshold.

Similar to the method used for detecting when output power exceeds 5kW, we use an operational amplifier (OPA) configured as a comparator. A precision voltage reference and a potentiometer are included in the circuit, allowing us to easily set the threshold voltage. When the sensor’s output voltage exceeds this threshold, the system identifies a hard braking event.

---

### How to Simulate Accumulator Output Exceeds 5kW Without HV Operation?

To simulate the accumulator output exceeding 5kW without operating at high voltage, we wound a wire 5 times around the current sensor. Each end of the wire is connected to separate green banana jacks located on the LV-BOX panel.

<img src="https://hackmd.io/_uploads/BkXcSIIMke.jpg" width="60%"/>

By applying a constant current, such as 1A, through the wire using a laboratory power supply, the sensor detects an equivalent current of 5A due to the 5 turns of the wire. Therefore, to simulate the accumulator output current for 5kW, we only need to apply:

$$
I_{simulate} = \frac{14.46A}{5} \approx 2.892A
$$

This method allows for safe and accurate testing of the system under conditions equivalent to high-power operation.

---

### Is the System Non-Programmable?

Yes, BSPD circuits only use operational amplifiers, voltage references, counter ICs, and oscillators to achieve all functionality and requirements.

# Formula SAE 2026 電動車規則詳細逐行解析

### 這份文件是 Formula SAE® 2026 年EV規則草案（第 94-115 頁），以下將逐一詳細說明各項內容：
#### 文件標題資訊
標題：Formula SAE® Rules 2026 DRAFT（學生方程式賽車 2026 年規則草案）
版權：© 2025 SAE International
版本：Version 0.0 DRAFT，發布日期 2025年8月11日
頁數範圍：第 94-148 頁中的第 94-115 頁

---
### EV.1 定義 DEFINITIONS 
EV.1.1 電池芯（Cell）
電化學能量儲存單元，包含正極、負極和電解質

EV.1.2 模組（Module）
包含一組電氣連接和機械組裝電池芯的單一單元

EV.1.3 牽引電池（Tractive Battery）
一組電氣連接的模組，作為牽引系統的電能儲存裝置

EV.1.4 牽引電池容器（Tractive Battery Container）
用於容納、安裝和保護牽引電池及容器內組件的外殼和機械支撐

EV.1.5 牽引電池包（Tractive Battery Pack）
牽引電池容器和容器內組件（牽引電池、隔離繼電器、預充電和放電電路、保險絲）的組合

EV.1.6 牽引系統（Tractive System - TS）
與馬達和/或牽引電池電氣連接的每個部分。牽引系統始終為高電壓

EV.1.7 接地低電壓（Grounded Low Voltage - GLV）
不屬於牽引系統的每個電氣部分

---
### EV.2 文件要求 DOCUMENTATION
#### EV.2.1 電氣系統表格（Electrical System Form - ESF）
EV.2.1.1 每支隊伍必須提交電氣系統表格（ESF），清楚記錄整個車輛電氣系統（包括控制和牽引系統）的結構化文件。ESF 的提交和批准並不意味著車輛將自動通過所描述項目/零件的電氣技術檢查。

EV.2.1.2 ESF 可能提供比 Formula SAE 規則更多的指導或詳細資訊

EV.2.1.3 使用提供的格式，並按照 PS - 賽前提交章節的規定提交 ESF

#### EV.2.2 提交罰則
ESF 的罰則按照 PS - 賽前提交章節的規定加入

---
### EV.3 電氣限制 ELECTRICAL LIMITATIONS
#### EV.3.1 操作
EV.3.1.1 禁止向馬達供電以驅動車輛倒退(不能做R檔)

EV.3.1.2 允許使用線控（drive by wire）控制車輪扭矩

EV.3.1.3 任何可以調整所需車輪扭矩的演算法或電子控制單元只能 **減少** 駕駛員所需的總扭矩，不得增加

#### EV.3.2 能量計（Energy Meter）
EV.3.2.1 所有電動車必須使用賽事提供的能量計運行。詳細資訊請參考 FSAEOnline 網站 AD.2.2

EV.3.2.2 能量計必須安裝在易於接觸的位置

EV.3.2.3 所有牽引系統功率必須通過能量計

EV.3.2.4 必須安裝溫度感測器並連接到能量計

EV.3.2.5 各隊必須在主辦方指定的方式和時間框架內下載能量計數據

EV.3.2.6 功率、電壓和溫度限制將通過能量計數據檢查。能量計算為能量計記錄的測量電壓乘以測量電流的時間積分值

#### EV.3.3 功率和電壓
EV.3.3.1 能量計測量的最大功率不得超過 **80 kW**

EV.3.3.2 任意兩點之間可能發生的最大允許電壓不得超過 **600 V DC**

EV.3.3.3 當車輛速度在 **0** 至 **5 km/hr** 之間時，動力系統不得進行能量回收

#### EV.3.4 違規
EV.3.4.1 當存在以下一種或兩種情況時發生違規：
a. 使用超過指定最大功率（EV.3.3.1）
b. 超過最大電壓（EV.3.3.2）

在以下一種或兩種條件下：
* 連續 100 毫秒或更長時間
* 應用 500 毫秒移動平均後

EV.3.4.2 缺少能量計數據可能被視為違規，由官方酌情決定

EV.3.4.3 篡改或試圖篡改能量計或其數據可能導致取消資格（DQ）

#### EV.3.5 罰則
EV.3.5.1 在 Acceleration, Skidpad, Autocross 賽事中的違規：
a. 每次有一次或多次違規的跑步將取消該隊最佳跑步的資格（DQ）
b. 多次跑步違規將取消多次跑步資格，例如兩次跑步違規將取消兩次最佳跑步

EV.3.5.2 在Endurance賽事中的違規：

* 每次違規：60 秒罰時（D.14.2.1）

EV.3.5.3 重複違規可能導致檢查批准無效或受到額外罰則，包括取消資格，由官方酌情決定

EV.3.5.4 隊伍違規的每次紀錄的相應數據和最終判決，可能公開。

---
### EV.4 組件 COMPONENTS
#### EV.4.1 馬達
EV.4.1.1 只允許使用電動馬達。馬達數量不限

EV.4.1.2 馬達必須符合 T.5.3

EV.4.1.3 如果馬達安裝到懸吊立柱上，其電纜和線路必須：
a. 包含聯鎖裝置（EV.7.8）。此聯鎖裝置必須在線路損壞或車輪/馬達組件損壞或從車輛脫落時，在牽引系統線路故障之前開啟關機電路（EV.7.2.2）
b. 在前環和主環之間保持在主要結構包絡線內（F.1.11）
c. 盡可能減少不符合 F.11.1.3 的線路和其他連接部分的長度（無懸吊電纜、迴路、線圈等）

EV.4.2 馬達控制器
牽引系統馬達必須通過馬達控制器連接到牽引電池。馬達與牽引電池之間不得直接連接

EV.4.3 牽引電池容器
EV.4.3.1 牽引電池容器必須：
a. 符合 F.10
b. 在仍符合規則的情況下可從車輛上拆卸
c. 始終完全封閉（安裝到車輛上和從車輛拆下時）而無需安裝額外的保護罩

EV.4.3.2 牽引電池容器可能包含孔洞或開口
a. 只有線束、通風、冷卻和緊固件可以通過孔洞
b. 牽引電池容器中的孔洞和開口必須符合 F.10.4
c. 外部孔洞必須符合 EV.6.1

EV.4.3.3 任何可能排放爆炸性氣體的牽引電池必須具有通風系統或洩壓閥以釋放排放的氣體

EV.4.3.4 密封在牽引電池容器中的模組必須有通往洩壓閥的路徑

EV.4.3.5 洩壓閥不得與駕駛員有視線連通，無論是否安裝隔火牆

EV.4.3.6 每個牽引電池容器必須標明：
a. 學校名稱和車輛編號
b. [ISO 7010-W012](https://www.iso.org/obp/ui#iso:grs:7010:W012)規定的符號（黃色背景上的黑色閃電三角形），具有：
* 三角形邊長至少 100 mm
* 從所有角度可見，包括蓋子拆下時
c. 文字「Always Energized」（始終通電）
d. 如果電壓符合 T.9.1.1，則標記「High Voltage」（高電壓）文字

EV.4.4 接地低電壓系統
EV.4.4.1 GLV 系統必須是：
a. 接地到車體＆底盤的低電壓系統
b. 能夠在Tractive Battery Pack從車輛拆下的情況下運行

EV.4.4.2 GLV 系統必須包含Master Switch，見 EV.7.9.1

EV.4.4.3 必須安裝 GLV 測量點（GLVMP）：
a. 連接到 GLV 系統接地
b. 位於 TSMP 旁邊（EV.5.8）
c. 4 mm 屏蔽香蕉插孔
d. 顏色：黑色
e. 標記「GND」

EV.4.4.4 低電壓電池必須符合 T.9.2

EV.4.5 加速踏板位置感測器（APPS）
APPS 的具體要求請參考 T.4.2

EV.4.6 制動系統編碼器（BSE）
BSE 的具體要求請參考 T.4.3

EV.4.7 APPS/制動踏板合理性檢查

EV.4.7.1 必須監控兩種情況：
* 機械制動器接合（EV.4.6, T.3.2.4）
* APPS 信號超過 25% 踏板行程（EV.4.5）

EV.4.7.2 如果 EV.4.7.1 中的兩種情況同時發生：
a. 馬達功率必須立即完全關閉。
b. 馬達關閉必須保持活動狀態，直到 APPS 信號低於 5% 踏板行程，無論是否操作制動器。
**隊伍必須能夠在技術檢查時演示這些動作**

EV.4.8 牽引系統零件定位
所有屬於牽引系統的零件必須符合 F.11

EV.4.9 外殼和機殼
EV.4.9.1 每個包含牽引系統零件（馬達外殼除外）的外殼或機殼必須標明：
a. [ISO 7010-W012](https://www.iso.org/obp/ui#iso:grs:7010:W012) 規定的符號（黃色背景上的黑色閃電三角形）
b. 如果電壓符合 T.9.1.1，則標記「High Voltage」文字

EV.4.9.2 如果包含牽引系統零件的外殼材料導電，則必須與 GLV 系統接地建立低阻抗連接，見 EV.6.7

EV.4.10 手推車Hand Cart
EV.4.10.1 隊伍必須有手推車來運輸Tractive Battery Pack(s)

EV.4.10.2 在競賽場地運輸Tractive Battery Pack(s)時必須使用手推車（EV.11.4.2, EV.11.5.1）

EV.4.10.3 手推車必須：
a. 能夠承載Tractive Battery Pack(s)的負載而不翻倒
b. 至少包含兩個車輪
c. 具有制動器，必須：

* 僅使用Ｄead man type switch （制動器始終開啟，直到按住控制柄釋放）或　
手動將推車部分提離地面
* 能夠在滿載Tractive Battery Pack(s)的情況下停止手推車

EV.4.10.4 Tractive Battery Pack(s)必須牢固連接到手推車

---
### EV.5 能量儲存
EV.5.1 牽引電池　Tractive Battery 
EV.5.1.1 每個模組必須包含：

* 最大靜態電壓 120 V DC
* 最大能量 6 MJ
（The contained energy透過將最大堆疊電壓乘以所用電池芯的標稱容量來計算）
* 最大質量 12 kg

EV.5.1.2 除了合理尺寸的中間電路電容器外，在能量計之後不允許進一步的能量儲存（EV.3.1）
![image](https://hackmd.io/_uploads/S1r8Jxxixl.png)

EV.5.1.3 所有牽引電池組件和/或牽引電池容器（包括備件和替換零件）必須與 ESF 和 SES 中記錄的設計相同

EV.5.2 電氣配置
EV.5.2.1 所有牽引系統組件必須按最大牽引系統電壓額定

EV.5.2.2 如果牽引電池容器由導電材料製成：
a. 模組和/或電池芯的極性必須用額定最大牽引系統電壓的絕緣材料與牽引電池容器內壁隔離
b. 牽引電池容器外部的所有導電表面必須與 GLV 系統接地建立低阻抗連接，見 EV.6.7
c. 任何導電穿透物，如安裝硬體，必須防止刺穿絕緣屏障

EV.5.2.3 每個模組必須用適當的不燃材料（F.1.18）（非空氣）在兩處電氣絕緣：
a. 牽引電池容器中模組之間
b. 模組頂部

目的是防止模組間或模組內接觸或在維護期間零件/工具意外掉入容器而引起的電弧閃絡

EV.5.2.4 禁止在大電流路徑中焊接電氣連接
允許在電池芯上焊接導線用於 BMS 的電壓監控輸入，這些導線不是大電流路徑的一部分

EV.5.2.5 牵引電池容器中使用的每根導線，無論是 GLV 還是牽引系統的一部分，都必須按最大牽引系統電壓額定

EV.5.3 維護插頭
EV.5.3.1 維護插頭必須讓模組的電氣分離滿足兩點：
a. 分離的模組滿足 EV.5.1.1 的電壓和能量限制
b. 分離必須影響模組的兩極

EV.5.3.2 維護插頭必須：
a. 需要物理拆除或分離組件。接觸器或開關不是可接受的維護插頭
b. 打開牽引電池容器後可接觸，無需移動或拆卸任何其他組件
c. 除了設計意圖配置之外，在任何配置中都不可能建立電氣連接
d. 不需要工具安裝或拆卸
e. 包含正鎖定功能，防止插頭意外鬆動
f. 不提供任何電氣連接的表面為非導電

EV.5.3.3 當牽引電池容器打開或模組拆除時，必須使用維護插頭分離模組。見 EV.11.4.1

EV.5.4 隔離繼電器（IR）
EV.5.4.1 所有牽引電池包必須包含至少一個保險絲（EV.6.6）和兩個或更多隔離繼電器（IR）

EV.5.4.2 隔離繼電器必須：
a. 為常開型
b. 開啟牽引電池包的兩極

EV.5.4.3 當隔離繼電器打開時，高電壓（T.9.1.1）不得出現在牽引電池容器外部

EV.5.4.4 隔離繼電器和任何保險絲必須與牽引電池的其餘部分用電氣絕緣和不燃材料（F.1.18）分離

EV.5.4.5 可以使用電容器在關機電路開啟後最多 250 毫秒內保持隔離繼電器閉合（EV.7.2.2）

EV.5.5 手動維修斷開器（MSD）
必須包含手動維修斷開器（MSD）以快速斷開牽引電池包的一極或兩極（EV.11.3.2）

EV.5.5.1 手動維修斷開器（MSD）必須：
a. 直接可接觸的元件、保險絲或連接器，能夠視覺顯示已斷開
b. 距離地面超過 350 mm
c. 站在車輛後方時容易看見
d. 未受過訓練的人員可在 10 秒或更短時間內操作
e. 無需拆卸任何車身或障礙物或使用工具即可操作
f. 直接操作。不接受通過長柄、繩索或導線的遠程操作
g. 清楚標記「MSD」

EV.5.5.2 能量計不得用作手動維修斷開器（MSD）

EV.5.5.3 當拆除 MSD 時，聯鎖裝置（EV.7.8）必須開啟關機電路（EV.7.2.2）

EV.5.5.4 可以使用虛擬連接器或類似裝置來恢復隔離以滿足 EV.6.1.2

EV.5.6 預充電和放電電路
EV.5.6.1 牽引電池包必須包含預充電電路。預充電電路必須：
a. 能夠在閉合第二個 IR 之前將中間電路充電至牽引系統電壓的至少 90%
b. 由關機電路供電（EV.7.1）

EV.5.6.2 中間電路必須在閉合第二個 IR 之前預充電
a. 預充電結束必須通過監控中間電路電壓的反饋來控制

EV.5.6.3 牽引系統必須包含放電電路。放電電路必須：
a. 以在關機電路開啟時始終活動的方式接線
b. 如果 MSD 已開啟，能夠放電中間電路電容器
c. 不被熔斷
d. 設計為在至少 15 秒內處理最大牽引系統電壓

EV.5.6.4 不得使用正溫度係數（PTC）裝置來限制預充電電路或放電電路的電流

EV.5.6.5 預充電繼電器必須是機械型繼電器

EV.5.7 電壓指示器
每個牽引電池包必須在 IR 車輛側存在高電壓（T.9.1.1）時有顯著指示器

EV.5.7.1 電壓指示器必須始終工作，包括牽引電池包斷開或拆除時

EV.5.7.2 隔離繼電器車輛側的電壓必須使用硬接線電子設備直接控制和供電電壓指示器，無軟件控制

EV.5.7.3 閉合 IR 的控制信號不得控制電壓指示器

EV.5.7.4 電壓指示器必須：
a. 位於連接/斷開牽引電池包連接時清楚可見的位置
b. 標記「High Voltage Present」（存在高電壓）

EV.5.8 牽引系統測量點（TSMP）
EV.5.8.1 車輛中必須安裝兩個牽引系統測量點（TSMP）：
a. 連接到正負馬達控制器/逆變器供電線
b. 位於主開關旁邊（EV.7.9）
c. 由可不用工具開啟的非導電外殼保護
d. 外殼開啟後防止赤手/手指觸碰

EV.5.8.2 充電器中必須安裝兩個 TSMP（EV.8.2）：
a. 連接到正負充電器輸出線
b. 在充電任何牽引電池包期間可用

EV.5.8.3 TSMP 必須：
a. 額定適當電壓等級的 4 mm 屏蔽香蕉插孔
b. 顏色：紅色
c. 標記「HV+」和「HV-」

EV.5.8.4 每個 TSMP 必須用限流電阻保護：
a. 電阻必須按電壓尺寸：

最大 TS 電壓（Vmax）	電阻值
Vmax ≤ 200 V DC	5 kΩ
200 V DC < Vmax ≤ 400 V DC	10 kΩ
400 V DC < Vmax ≤ 600 V DC	15 kΩ
b. 電阻連續功率額定必須超過 TSMP 短路時的功率耗散
c. 在電氣技術檢查期間必須能夠直接測量電阻值

EV.5.8.5 任何 TSMP 不得包含額外的過流保護

EV.5.9 連接器
外殼外的牽引系統連接器必須包含聯鎖裝置（EV.7.8）

EV.5.10 準備移動燈
EV.5.10.1 車輛必須有兩個準備移動燈：
a. 一個指向前方
b. 一個指向後方

EV.5.10.2 每個Ready to move light(RTML)必須：
a. 符合 DOT FMVSS 108 的標記燈
b. 顏色：琥珀色
c. 發光面積：最小 1800 mm²

EV.5.10.3 每個Ready to move light(RTML)的安裝位置必須：
a. 靠近主環，接近車輛最高點
b. 在翻滾保護包絡線內（F.1.13）
c. 距離主環最高點不低於 150 mm
d. 不讓駕駛員頭盔碰到
e. 從距離地面 1300 mm 垂直、距離燈 2000 mm 水平半徑內的點可見

在安裝車身和空氣動力裝置的情況下檢查可見性

EV.5.10.4 Ready to move light(RTML)必須：
a. 由 GLV 系統供電
b. 使用硬接線電子設備由牽引系統中存在的電壓直接控制（EV.6.5.4）。不允許軟件控制
c. 當牽引電池容器外的電壓超過 T.9.1.1 時，以 2 Hz 至 5 Hz 頻率、50% 占空比閃爍
d. 不執行任何其他功能

EV.5.11 牽引系統狀態指示器 (TSSI)
EV.5.11.1 車輛必須有牽引系統狀態指示器

EV.5.11.2 牽引系統狀態指示器必須有兩種不同的燈：
a. 一個綠燈
b. 一個紅燈

EV.5.11.3 每個牽引系統狀態指示器燈：
a. 必須有最小 130 mm² 的發光面積
b. 必須在直射陽光下可見
c. 可以有一個或多個相同元件

EV.5.11.4 牽引系統狀態指示器的安裝位置必須：
a. 靠近主環，在車輛最高點
b. 在準備移動燈上方
c. 在翻滾保護包絡線內（F.1.13）
d. 距離主環最高點不低於 150 mm
e. 不能讓駕駛員頭盔碰到
f. 從車輛前方容易看見

EV.5.11.5 牽引系統狀態指示器必須在 GLV 系統通電時顯示：

|條件|	綠燈	|紅燈|
a.| 無故障|	始終亮	|關
b. BMS (EV.7.3.5) 或 IMD (EV.7.6.5) 中的一個或兩個故障	關	閃爍 2 Hz 至 5 Hz，50% 占空比

---
### EV.6 電氣系統
EV.6.1 覆蓋物
EV.6.1.1 非導電材料或覆蓋物必須防止人體意外接觸任何牽引系統電壓。覆蓋物必須牢固且足夠剛性。可拆卸車身不適合包圍牽引系統連接

EV.6.1.2 當牽引系統外殼就位時，使用 100 mm 長、6 mm 直徑絕緣測試探針不能接觸任何牽引系統連接

EV.6.1.3 牽引系統組件和牽引電池必須免受濕氣、雨水或水坑的影響。建議 IP65 等級

EV.6.2 絕緣
EV.6.2.1 絕緣材料必須：
a. 適合預期的周圍溫度
b. 最低溫度額定 90°C

EV.6.2.2 絕緣膠帶或塗料可以是絕緣的一部分，但不得是唯一絕緣

EV.6.3 佈線
EV.6.3.1 牽引系統中使用的所有導線、端子和其他導體必須按其將導通的連續電流尺寸

EV.6.3.2 所有牽引系統佈線必須：
a. 標記導線規格、溫度額定和絕緣電壓額定。如果此序列號或規範通過數據表等清楚綁定到導線特性，則導線上印刷的序列號或規範就足夠了
b. 溫度額定大於或等於 90°C

EV.6.3.3 牽引系統佈線必須：
a. 按專業標準進行，具有足夠的應變消除
b. 防止因振動而鬆動
c. 防止旋轉和/或移動部件的損壞
d. 遠離可能的卡住或損壞位置

EV.6.3.4 在電氣外殼外運行的任何牽引系統佈線：
a. 必須滿足兩者之一：

包圍在單獨的橙色非導電導管中

使用橙色屏蔽電纜
b. 導管或屏蔽電纜必須在每端牢固錨定，以承受 200 N 的力而不拉緊電纜端壓接
c. 任何屏蔽電纜必須將屏蔽接地

EV.6.3.5 不屬於牽引系統的佈線不得使用橙色佈線或導管

EV.6.4 連接
EV.6.4.1 所有牽引系統連接必須：
a. 設計為通過為電流設計的導體使用有意的電流路徑
b. 不依賴鋼螺栓作為主要導體
c. 不在堆疊中包含塑料等可壓縮材料

EV.6.4.2 如果使用外部、非絕緣散熱器，則必須正確接地到 GLV 系統接地，見 EV.6.7

EV.6.4.3 牽引系統大電流路徑中的螺栓電氣連接必須包含正鎖定功能以防意外鬆動。不接受鎖緊墊圈或螺紋鎖定化合物（Loctite®）或粘合劑。允許帶尼龍貼片的螺栓用於 OEM 組件的盲連接

EV.6.4.4 在電氣技術檢查時必須提供支持大電流路徑的電氣連接資訊

EV.6.5 電壓分離
EV.6.5.1 牽引系統和 GLV 系統的分離：
a. 整個牽引系統和 GLV 系統必須完全電流隔離（IN.10.2.2）
b. 牽引系統和 GLV 系統之間的邊界是兩個系統之間的電流隔離

一些組件，如馬達控制器，可能屬於兩個系統

EV.6.5.2 車輛底盤（或任何其他可能被人意外接觸的導電表面）與任何牽引系統電路的任何部分之間不得有連接

EV.6.5.3 牽引系統和 GLV 電路不得在同一導管或連接器中，除非 EV.7.8.4 中允許

EV.6.5.4 除了 IR（EV.5.4）、預充電和放電電路的部分（EV.5.6）、HV DC/DC 轉換器、BMS（EV.7.3）、IMD（EV.7.6）、準備移動燈的部分（EV.5.10）、能量計（EV.3.1）和冷卻風扇外，GLV 系統不得在牽引電池容器內

EV.6.5.5 當牽引系統和 GLV 包含在同一外殼內時，必須滿足兩者之一：
a. 通過由額定 90°C 或更高的防潮、UL 認可或等效絕緣材料（如基於 Nomex 的電氣絕緣）製成的絕緣屏障分離（除導線絕緣外）
b. 通過空氣或表面（類似於 UL1741 中定義的）保持間距：

電壓	間距
U < 100 V DC	10 mm
100 V DC < U < 200 V DC	20 mm
U > 200 V DC	30 mm
EV.6.5.6 間距必須明確定義。能夠移動的組件和電纜必須積極約束以維持間距

EV.6.5.7 如果牽引系統和 GLV 在同一電路板上：
a. 必須在電路板的單獨、明確定義和清楚標記的區域
b. 與跡線/電路板區域之間間距相關的所需間距如下：

電壓	表面上	通過空氣（電路板切割）	保形塗層下
0-50 V DC	1.6 mm	1.6 mm	1 mm
50-150 V DC	6.4 mm	3.2 mm	2 mm
150-300 V DC	9.5 mm	6.4 mm	3 mm
300-600 V DC	12.7 mm	9.5 mm	4 mm
EV.6.5.8 隊伍必須準備展示團隊製造設備的間距。對於不可接觸的電路，必須提供備用電路板或適當的照片進行檢查

EV.6.5.9 從牽引系統組件到外部設備（如筆記本電腦）的所有連接必須包含電流隔離

EV.6.6 過流保護
EV.6.6.1 所有電氣系統（低電壓和高電壓）必須有適當的過流保護/熔斷

EV.6.6.2 除非規則另有允許，所有過流保護裝置必須：
a. 按其保護系統中的最高電壓額定。用於 DC 的過流保護裝置必須按 DC 額定，並且必須具有等於或超過系統電壓的 DC 額定
b. 連續電流額定小於或等於其保護的任何電氣組件的連續電流額定
c. 中斷電流額定高於其保護系統的理論短路電流

EV.6.6.3 多個並聯電池芯、電容器、電池芯串、電容器串或導體的每個並聯元件必須有單獨的過流保護

EV.6.6.4 導通整個電池包電流的任何導體（導線、母線等）必須滿足以下之一：
a. 適當尺寸以承受單個過流保護裝置可能傳輸的總電流
b. 包含額外的過流保護以保護導體

EV.6.6.5 當滿足所有三個條件時，可以使用具有低電壓或非電壓額定熔絲連接的電池芯連接的電池包：

符合上述 EV.6.6.2.b 並額定小於或等於並聯熔絲連接總和三分之一的過流保護裝置串聯連接

BMS 可以檢測開路熔絲連接，如果檢測到故障將開啟關機電路 EV.7.2.2

熔絲連接電流額定在製造商數據中指定或提供適當的測試數據

EV.6.6.6 如果導體安培容量減少到低於上游過流保護的安培容量，長於 150 mm 的減少導體必須有額外的過流保護。此額外過流保護必須：
a. 距離減少導體源端 150 mm 或更少
b. 在牽引系統的正負導體上
c. 在接地低電壓系統的正導體上

EV.6.6.7 具有內部過流保護的電池芯如果適當額定可以在沒有外部過流保護的情況下使用。大多數電池芯內部過流保護裝置是低電壓或非電壓額定，上述 EV.6.6.5 的條件將適用

EV.6.7 接地
EV.6.7.1 以下需要接地：
a. 距離任何牽引系統組件 100 mm 或更少且未通過隔火牆（T.1.8.4）與牽引系統組件分離的車輛部件
b. 任何隔火牆（T.1.8.4）

如果應用導電膠帶，部件本身必須滿足接地要求

EV.6.7.2 車輛的接地部件必須與 GLV 系統接地的電阻小於下面指定的值：
a. 導電部件：300 mΩ（用 1 A 電流測量）
例如：鋼、（陽極氧化）鋁、任何其他金屬部件製成的部件
b. 可能變為導電的部件：5 Ω
例如：碳纖維部件

碳纖維部件可能需要特殊措施，如使用銅網或類似物來保持接地電阻低於 5 Ω

EV.6.7.3 任何部件的導電性可以通過檢查任何可能導電的點來測試。在沒有方便導電點的地方，可以去除塗層區域

---
### EV.7 關機系統
EV.7.1 關機電路
EV.7.1.1 關機電路由這些組件串聯連接組成：
a. 電池管理系統（BMS）（EV.7.3）
b. 絕緣監控裝置（IMD）（EV.7.6）
c. 制動系統合理性裝置（BSPD）（EV.7.7）
d. 聯鎖裝置（如需）（EV.7.8）
e. 主開關（GLVMS, TSMS）（EV.7.9）
f. 關機按鈕（EV.7.10）
g. 制動超行程開關（BOTS）（T.3.3）
h. 慣性開關（T.9.4）

EV.7.1.2 關機電路必須直接承載驅動隔離繼電器（IR）和預充電電路繼電器的電流

EV.7.1.3 關機電路的 BMS、IMD 和 BSPD 部分必須為常開

EV.7.1.4 BMS、IMD 和 BSPD 必須有完全獨立的電路來開啟關機電路。各個電路的設計必須確保故障不能導致電力反饋到關機電路中

EV.7.1.5 關機按鈕、BOTS、TSMS、GLVMS 和聯鎖裝置必須直接承載關機電路電流

EV.7.1.6 隊伍必須能夠在電氣技術檢查時演示關機電路和組件的所有特性和功能

EV.7.2 關機電路操作
EV.7.2.1 當存在以下任何情況時，關機電路必須開啟：
a. EV.7.1.1 中列出的任何組件的操作或檢測
b. GLV 系統的任何關機

EV.7.2.2 當關機電路開啟時：
a. 牽引系統必須關機
b. 所有牽引電池電流流動必須立即停止（EV.5.4.3）
c. 牽引系統中的電壓必須在五秒或更短時間內變為低電壓（T.9.1.2）
d. 馬達必須自由旋轉。不得對馬達施加扭矩

EV.7.2.3 當 BMS、IMD 或 BSPD 開啟關機電路時：
a. 牽引系統必須保持禁用狀態直到手動復位
b. 牽引系統必須僅通過直接在車輛處的人員的手動動作復位
c. 駕駛員不得能夠從車輛內部重新激活牽引系統
d. 關機按鈕或 TSMS 的操作不得讓關機電路閉合

[文件還包含一個電氣系統示意圖，顯示了各組件之間的連接關係]

EV.7.3 電池管理系統（BMS）
EV.7.3.1 電池管理系統必須在以下情況下監控牽引電池電壓（EV.7.4）和溫度（EV.7.5）：
a. 牽引系統活動時（EV.11.5）
b. 牽引電池連接到充電器時（EV.8.3）

EV.7.3.2 BMS 必須在每個模組到模組邊界具有電流隔離，如 ESF 中批准的

EV.7.3.3 當關機電路開啟時不允許電池芯平衡（EV.7.2, EV.8.4）

EV.7.3.4 BMS 必須監控：
a. 允許範圍外的電壓值（EV.7.4.2）
b. 電壓感測過流保護裝置熔斷或跳閘
c. 允許範圍外的溫度值（EV.7.5.2）
d. 遺失或中斷的電壓或溫度測量
e. BMS 中的故障

EV.7.3.5 如果 BMS 檢測到上述 EV.7.3.4 中的一個或多個條件，BMS 必須：
a. 開啟關機電路（EV.7.2.2）
b. 開啟 BMS 指示燈和牽引系統狀態指示器（EV.5.11.5）

兩個燈必須保持亮起直到 BMS 手動復位（EV.7.2.3）

EV.7.3.6 BMS 指示燈必須：
a. 顏色：紅色
b. 在明亮陽光下對坐著的駕駛員清楚可見
c. 清楚標記字母「BMS」

EV.7.4 牽引電池電壓
EV.7.4.1 BMS 必須測量每個電池芯的電壓。當單個電池芯直接並聯連接時，只需要一個電壓測量

EV.7.4.2 電池芯電壓等級必須保持在電池芯數據表中陳述的允許最小和最大電池芯電壓等級內。必須考慮測量精度

EV.7.4.3 到 BMS 的所有電壓感測導線必須滿足以下之一：
a. 具有下述 EV.7.4.4 的過流保護
b. 滿足 Error! Reference source not found 中列出的無過流保護要求

EV.7.4.4 當使用時，BMS 電壓感測導線的過流保護必須滿足兩點：
a. 過流保護必須發生在直接連接到電池芯片的導體、導線或 PCB 跡線中
b. 過流保護的電壓額定必須等於或高於最大模組電壓

EV.7.5 牽引電池溫度
EV.7.5.1 BMS 必須測量牽引電池關鍵點的溫度

EV.7.5.2 溫度（考慮測量精度）必須保持在以下兩者中較低者以下：

電池芯數據表中陳述的最大電池芯溫度限制

60°C

EV.7.5.3 電池芯溫度必須在相應電池芯的負極端子測量

EV.7.5.4 使用的溫度感測器必須與以下之一直接接觸：

負極端子本身

距離負極電池芯端子上的點焊或夾緊源不到 10 mm 的負極端子母線

EV.7.5.5 對於鋰基電池芯：
a. BMS 必須監控至少 20% 電池芯的溫度
b. 被監控的電池芯必須在牽引電池容器內均勻分佈

應監控每個電池芯的溫度

EV.7.5.6 如果滿足所有感測電池芯的 EV.7.5，可以用一個溫度感測器監控多個電池芯

EV.7.5.7 溫度感測器必須具有適當的電氣隔離，滿足兩者之一：

感測器和電池芯之間

在感測電路中

隔離必須考慮 GLV/TS 隔離以及感測位置之間的共模電壓

EV.7.6 絕緣監控裝置（IMD）
EV.7.6.1 車輛必須在牽引系統中安裝絕緣監控裝置（IMD）

EV.7.6.2 IMD 必須是 Bender ISOMETER® IR155-3203 或 IR155-3204（網站）或批准的替代等效 IMD。請參考 FSAE Online 網站上的規則常見問題以獲取批准的等效 IMD

EV.7.6.3 IMD 的響應值必須設置為 500 Ω/V 或更高，與最大牽引系統操作電壓相關

EV.7.6.4 IMD 必須監控牽引系統的：
a. 絕緣故障
b. IMD 操作故障

這必須在不受任何可程式邏輯影響的情況下完成

EV.7.6.5 如果 IMD 檢測到上述 EV.7.6.4 中的一個或多個條件，IMD 必須：
a. 開啟關機電路（EV.7.2.2）
b. 開啟 IMD 指示燈和牽引系統狀態指示器（EV.5.11.5）

兩個燈必須保持亮起直到 IMD 手動復位（EV.7.2.3）

EV.7.6.6 IMD 指示燈必須：
a. 顏色：紅色
b. 在明亮陽光下對坐著的駕駛員清楚可見
c. 清楚標記字母「IMD」

EV.7.7 制動系統合理性裝置（BSPD）
EV.7.7.1 車輛必須有獨立的不可程式電路來檢查同時制動和高功率輸出。BSPD 必須除了 APPS/制動踏板合理性檢查（EV.4.7）之外提供

EV.7.7.2 當存在以下兩種情況時，BSPD 必須開啟關機電路（EV.7.2.2）：

硬制動需求（EV.4.6）

牽引系統電流處於在標稱電池電壓下向馬達提供 5 kW 電功率的 DC 電路水平

BSPD 可以延遲開啟關機電路最多 0.5 秒以防止誤跳閘

EV.7.7.3 當任何感測器輸入中存在開路或短路時，BSPD 必須開啟關機電路（EV.7.2.2）

EV.7.7.4 隊伍必須有測試在電氣技術檢查時演示 BSPD 操作：
a. 測試期間不得向車輛馬達發送功率
b. 測試必須證明車輛中完整 BSPD 的功能，包括電流感測器

建議的測試將通過來自外部電源的單獨導線引入電流，模擬牽引系統電流，同時按下制動踏板

EV.7.8 聯鎖裝置
EV.7.8.1 必須在指定位置納入聯鎖裝置（參考 EV.4.1.3, EV.5.5.2, EV.5.9）

EV.7.8.2 可以在牽引系統或組件中包含額外的聯鎖裝置

EV.7.8.3 聯鎖裝置是導線或連接，必須：
a. 如果聯鎖裝置連接中斷或中斷，開啟關機電路（EV.7.2.2）
b. 不在關機電路 IR 線圈的低（接地）連接中

EV.7.8.4 當聯鎖裝置電路是以下情況時，聯鎖裝置電路或連接不需要與牽引系統佈線或組件物理分離（EV.6.5）：
a. 在與牽引系統佈線相同的線束中
b. 牽引系統連接器的一部分（EV.5.9）
c. 在牽引電池容器或牽引系統外殼內，距離牽引系統連接器連接不到 75 mm

EV.7.9 主開關
EV.7.9.1 每輛車必須有兩個主開關，必須：
a. 滿足配置和位置的 T.9.3
b. 直接作用，不通過繼電器或邏輯作用

EV.7.9.2 接地低電壓主開關（GLVMS）必須：
a. 完全停止所有 GLV 系統電力（EV.4.4）
b. 位於直徑 > 50 mm 的完全紅色圓形區域中心
c. 標記「LV」

EV.7.9.3 牽引系統主開關（TSMS）必須：
a. 在 OFF 位置開啟關機電路（EV.7.2.2）
b. 是除預充電電路和聯鎖裝置外 IR 之前的最後一個開關
c. 位於直徑 > 50 mm 的完全橙色圓形區域中心
d. 標記「TS」和 ISO 7010-W012 規定的符號（黃色背景上的黑色閃電三角形）
e. 在 OFF 位置配備「鎖定/標記」功能（EV.11.3.1）

EV.7.10 關機按鈕
EV.7.10.1 車輛上必須安裝三個關機按鈕

EV.7.10.2 每個關機按鈕必須：
a. 是推拉或推旋緊急停止開關
b. 操作到 OFF 位置時開啟關機電路（EV.7.2.2）
c. 操作到 OFF 位置時保持
d. 操作到 ON 位置時讓關機電路閉合

EV.7.10.3 車輛每側必須有一個關機按鈕：
a. 位於主環後方，靠近主環和主環支撐的連接處（F.5.9）
b. 直徑至少 40 mm
c. 不得容易拆卸或安裝在可拆卸車身上

EV.7.10.4 駕駛艙內必須安裝一個關機按鈕：
a. 位於繫好安全帶的駕駛員容易觸及的位置，靠近方向盤，不被方向盤或車輛任何其他部分阻擋
b. 直徑至少 24 mm

EV.7.10.5 國際電氣符號（白邊藍三角形上的紅色火花）必須靠近每個關機按鈕

---
### EV.8 充電器要求
EV.8.1 充電器要求
EV.8.1.1 充電器和充電關機電路的所有特性和功能必須在電氣技術檢查時演示（IN.5.1）

EV.8.1.2 充電器將在批准後密封（IN.5.2.2）

EV.8.2 充電器特性
EV.8.2.1 充電器必須是電流隔離的（AC）輸入到（DC）輸出

EV.8.2.2 如果充電器外殼導電，必須連接到 AC 輸入的地線

EV.8.2.3 充電器的所有連接必須隔離和覆蓋

EV.8.2.4 充電器連接器必須包含功能，讓連接器只有在正確連接到牽引電池包時才變為帶電

EV.8.2.5 高電壓充電導線必須是橙色

EV.8.2.6 充電器必須安裝兩個 TSMP，見 EV.5.8.2

EV.8.2.7 充電器必須包含充電器關機按鈕，必須：
a. 是推拉或推旋緊急停止開關
b. 最小直徑 25 mm
c. 操作到 OFF 位置時開啟充電關機電路（EV.8.4.2）
d. 操作到 OFF 位置時保持
e. 標記國際電氣符號（白邊藍三角形上的紅色火花）

EV.8.3 充電關機電路
EV.8.3.1 充電關機電路包括：
a. 充電器關機按鈕（EV.8.2.7）
b. 電池管理系統（BMS）（EV.7.3）
c. 絕緣監控裝置（IMD）（EV.7.6）

EV.8.3.2 充電關機電路的 BMS 和 IMD 部分必須：
a. 設計為常開觸點
b. 有完全獨立的電路來開啟充電關機電路

各個電路的設計必須確保故障不能導致電力反饋到充電關機電路中

EV.8.4 充電關機電路操作
EV.8.4.1 充電時，BMS 和 IMD 必須：
a. 監控牽引電池
b. 如果檢測到故障，開啟充電關機電路

EV.8.4.2 當充電關機電路開啟時：
a. 對牽引電池的所有電流流動必須立即停止
b. 牽引系統中的電壓必須在五秒或更短時間內變為低電壓（T.9.1.2）
c. 充電器必須關閉
d. 充電器必須保持禁用狀態直到手動復位

---
### EV.9 車輛操作
EV.9.1 激活要求
在主開關（EV.7.9）開啟後，駕駛員必須在沒有外部協助的情況下完成激活順序

EV.9.2 激活順序
車輛系統必須按此順序通電：
a. 低電壓（GLV）系統（EV.9.3）
b. 牽引系統活動（EV.9.4）
c. 準備駕駛（EV.9.5）

EV.9.3 低電壓（GLV）系統
當 GLV 系統通電時或之後，關機電路可能閉合

EV.9.4 牽引系統活動
EV.9.4.1 定義 - 牽引電池容器外存在高電壓

EV.9.4.2 牽引系統活動必須在以下兩種情況之前不可能：

GLV 系統通電

關機電路閉合

EV.9.5 可以通電
EV.9.5.1 定義 - 車輛可能在停車場（D.2.3）或動態區域（D.1.2.1）中成為牽引系統活動

EV.9.6 準備駕駛
EV.9.6.1 定義 - 馬達將響應 APPS 的輸入

EV.9.6.2 準備駕駛必須在以下三種情況同時存在之前不可能：

牽引系統活動（EV.9.4）

制動踏板被按下並保持以接合機械制動器（T.3.2）

駕駛員執行手動動作開始準備駕駛

如按下駕駛艙中的特定按鈕

EV.9.7 準備駕駛聲音
EV.9.7.1 車輛在準備駕駛時必須發出特徵聲音

EV.9.7.2 準備駕駛聲音必須：
a. 連續響起至少 1 秒，最多 3 秒
b. 最小聲級 80 dBA，快速加權（IN.10.3）
c. 容易識別。不接受動物聲音、歌曲部分或可能被解釋為冒犯性的聲音

EV.9.7.3 車輛不得發出類似準備駕駛聲音的其他聲音

---
### EV.10 賽事場地活動
EV.10.1 現場註冊
EV.10.1.1 牽引電池包必須在隊伍註冊時在場，才有資格進行牽引電池檢查和動態賽事

EV.10.1.2 沒有牽引電池包註冊的隊伍：
a. 在競賽期間不得將牽引電池包帶到場地
b. 可以參加技術檢查和靜態賽事

EV.10.2 牽引電池包拆除
EV.10.2.1 隊伍現場註冊後，牽引電池包必須留在競賽場地直到競賽結束，或隊伍退出並離開場地

EV.10.2.2 違反者將被取消競賽資格並必須立即離開

---
### EV.11 工作實踐
EV.11.1 人員
EV.11.1.1 電氣系統官員（ESO）（AD.5.2）：
a. 是隊伍中唯一可以宣佈車輛電氣安全以允許在任何系統上工作的人
b. 必須在競賽場地操作或移動車輛時陪同車輛
c. 必須在賽事期間隨時可通過電話立即聯繫

EV.11.2 維護
EV.11.2.1 所有參賽隊員必須在以下任何時候佩戴帶側護的安全眼鏡：
a. 牽引系統部分在通電時暴露
b. 在牽引電池包上進行工作

EV.11.2.2 在牽引電池包或牽引系統上工作時必須使用適當的絕緣工具

EV.11.3 鎖定
EV.11.3.1 在車輛上進行任何工作時，TSMS（EV.7.9.3）必須鎖定在 OFF 位置

EV.11.3.2 當車輛在以下情況時，MSD（EV.5.5）必須斷開：
a. 在競賽場地移動
b. 參加靜態賽事

EV.11.4 牽引系統
EV.11.4.1 競賽中的這些工作活動只允許在指定區域和電氣技術檢查期間進行（IN.5）見 EV.5.3.3
a. 開啟牽引電池容器
b. 在牽引電池、電池芯或模組上的任何工作
c. 通電電氣工作

EV.11.4.2 電池芯和/或模組必須在競賽場地在以下兩者之一內移動：
a. 完全封閉的牽引電池容器（EV.4.3）見 EV.4.10.2
b. 模組/電池芯運輸容器（EV.11.4.3）

EV.11.4.3 模組/電池芯運輸容器必須：
a. 電氣絕緣
b. 免受衝擊危險和電弧閃絡保護

EV.11.4.4 運輸容器內的模組/電池芯必須符合 EV.5.1.1 的電壓和能量限制

EV.11.5 充電
EV.11.5.1 牽引電池包必須從車輛拆下並放在手推車（EV.4.10）上進行充電

EV.11.5.2 牽引電池充電必須只在指定區域內進行

EV.11.5.3 具有充電過程知識的隊員必須在充電期間與牽引電池包在一起

EV.11.5.4 每個牽引電池包在充電期間必須有標籤，包含此數據：

隊伍名稱

電氣系統官員電話號碼

EV.11.5.5 可能適用額外的場地特定規則或政策

---
### EV.12 紅車條件
EV.12.1 定義
如果存在以下任何情況，車輛將成為紅車：
a. 影響牽引系統的車輛實際或可能損壞
b. 車輛故障指示（EV.5.11 或等效）
c. 其他條件，由官員酌情決定

EV.12.2 行動
a. 隔離車輛
b. 除非官員許可，否則不得接觸車輛

接觸車輛可能需要受過訓練的人員配備適當的個人防護設備

c. 呼叫紅車響應人員

# FSAE EV 車輛標示貼紙清單

#### 參考文件標題資訊 
標題：Formula SAE® Rules 2026 DRAFT（學生方程式賽車 2026 年規則草案） 
發布日期 2025年8月11日 

---

| 標示/貼紙內容 | 所在條款 | 標示必須包含 / 規格 |
|---|---|---|
| 學校名稱與車輛編號 | EV.4.3.6 a | 必須標在每個牽引電池容器（Tractive Battery Container）上 |
| [ISO 7010-W012](https://www.iso.org/obp/ui#iso:grs:7010:W012) 符號（黑色閃電三角形，黃背景） | EV.4.3.6 b | 在牽引電池容器上；三角形邊長至少 100 mm；從所有角度可見，包括蓋子拆下時 |
| “Always Energized” 文字 | EV.4.3.6 c | 標在牽引電池容器上 |
| “High Voltage” 文字 | EV.4.3.6 d | 如果電壓符合 T.9.1.1（規則定義的高電壓），則需加上 “High Voltage” |
| GLV 系統主開關標記 “LV” | EV.7.9.2 c | 主開關標記為 “LV” 並位於直徑 >50mm 的完全紅色圓形區域中心 |
| TS（牽引系統）主開關標記 “TS” + ISO 7010-W012 符號 | EV.7.9.3 d | 主開關需標示 “TS” 並帶高壓閃電符號（ISO 7010-W012） |
| 關機按鈕附近的國際電氣符號（白邊藍三角形上的紅色火花） | EV.7.10.5 | 每個關機按鈕要有此符號標示 |
| 電壓指示器標示 “High Voltage Present” | EV.5.7.4 b | 當隔離繼電器在車輛側閉合，有高壓電壓時需顯示 “High Voltage Present” |
| TSMP（牽引系統測量點）標記 “HV+” 和 “HV-” | EV.5.8.3 c | 兩個香蕉插孔需標註並顏色：紅色 |
| GLV 測量點標記 “GND” | EV.4.4.3 e | 使用黑色香蕉插孔，標記 GND |

# FSAE-E 循跡控制 (TC) 系統：Simulink_Simscape 建模與模擬全攻略

本文件是一份開發筆記與教學，旨在指導如何使用 MathWorks 軟體 (Simulink, Simscape) 為 FSAE 電動賽車開發、模擬並驗證一套循跡控制 (TC) 系統。

**理論基礎：**
1.  **UTAS 論文 (Pengcheng Ji, 2020):** 以 DTC (直接轉矩控制) 為馬達控制核心。
2.  **波多大學論文 (Tiago Marques, 2023):** 以 FOC (磁場導向控制) 為馬達控制核心，並引入 PSO (粒子群最佳化) 演算法來自動調校 PID。

**核心工具：**
* **Simulink®:** 用於建立「控制器」的邏輯（演算法）。
* **Simscape™:** 用於建立「受控體 (Plant)」的物理模型（虛擬賽車）。

---

## 階段一：環境設定與資源準備

在開始建模之前，首要任務是「蒐集食材」。

### 1.1 必備的 MathWorks 工具箱 (Toolboxes)

確保你已安裝：
* `Simulink` (核心平台)
* `Simscape` (物理建模基礎)
* `Simscape Multibody` (用於 3D 底盤、懸吊的物理建模)
* `Simscape Electrical` (用於馬達、逆變器、電池的物理建模)
* `Motor Control Blockset` (**關鍵！** 內含 FOC/DTC 的官方範例)
* `Vehicle Dynamics Blockset` (可選，但內含許多輪胎/車輛範例)
* `Optimization Toolbox` (若要使用波多論文的 PSO 自動調校)

### 1.2 下載官方範例模型 (你的起點)

不要從 0 開始！前往 **MATLAB Central File Exchange**：
1.  **下載「受控體 (Plant)」模板：**
    * 搜尋 `Formula Student Vehicle with Simscape` 或 `Racing Lounge: Vehicle Modeling with Simscape Multibody`。
    * 這就是你的**高精準度虛擬賽車**。
2.  **下載「控制器」模板：**
    * 在 `Motor Control Blockset` 的說明文件中，找到 `Field-Oriented Control (FOC) of PMSM` 或 `Direct Torque Control (DTC) of PMSM` 的範例。
    * 這就是你的**低階馬達控制器**。

### 1.3 蒐集你「自家車隊」的參數

你必須用你車隊的**真實數據**去替換範例模型中的預設值。這稱為「參數化」(Parameterization)。

* **[ ] 車身 (Chassis):** 總質量 (Mass), 重心 (CG) 位置, 轉動慣量 (Inertia)。
* **[ ] 懸吊 (Suspension):** 懸吊幾何點 (Hard points), 彈簧K值, 阻尼C值。
* **[ ] 馬達 (Motor):** (參考規格書) 電感 $L_d, L_q$, 電阻 $R_s$, 磁通鏈 (Flux Linkage)。
* **[ ] 輪胎 (Tire):** (最重要) **Magic Formula (Pacejka) 係數**。若沒有，先用 `Tire (Simple)` block 暫代。

---

## 階段二：建立「受控體 (Plant)」- 你的虛擬賽車 (Simscape)

在這個階段，我們專注於建立一個高精準度的「物理模型」。

1.  **開啟範例：** 打開你在 `1.2` 下載的 `Formula Student Vehicle with Simscape` 模型。
2.  **參數化模型：** 點擊各個 Simscape block (如 `Rigid Body`, `Spring-Damper`, `PMSM`)，將 `1.3` 中蒐集的參數一一填入。
3.  **建立輪胎模型：** 這是 TC 的核心。
    * Simscape 中的 `Tire (Magic Formula)` block 是你的首選。
    * 將你的輪胎係數填入。
    * 這個 block 會**自動**根據負載 (Normal Force) 和滑移率 (Slip) 輸出縱向力 (Longitudinal Force)。
4.  **建立馬達模型：**
    * 使用 `Simscape Electrical` 中的 `PMSM` block。
    * 將你的馬達參數填入。
5.  **測試受控體：**
    * 此時，先**不要**連接你的 TC 控制器。
    * 給馬達一個「恆定扭矩」或「階梯扭矩」輸入。
    * 執行模擬，打開 `Simscape Multibody Explorer` (3D 視覺化視窗)。
    * **你應該要能看到車輪瘋狂空轉、車輛失控。** 如果是，恭喜你，你的「受控體」已準備好接受 TC 的挑戰。

---

## 階段三：建立「控制器 (Controller)」- TC 的大腦 (Simulink)

這個階段，我們在「標準 Simulink」環境中，用「邏輯積木」打造 TC 演算法。

**[架構]** 你的 TC 控制器會是一個 Subsystem，它包含：

### 3.1 Step 1: 低階馬達控制器 (FOC / DTC)
1.  開啟 `Motor Control Blockset` 中的 FOC (或 DTC) 範例。
2.  將它複製/貼到你的主模型中，建立成一個 Subsystem，命名為 `Motor_Controller_L` (和 `_R`)。
3.  **輸入：** 這個 Subsystem 的輸入是 `Target_Torque` (目標扭矩)。
4.  **輸出：** 輸出是 `PWM Signals` (給逆變器) 或 `Actual_Torque` (給 Simscape 馬達)。

### 3.2 Step 2: 高階 TC 邏輯 (Slip Ratio Control)
這是你的演算法核心。

1.  **滑移率計算 (Slip Ratio Calculator):**
    * **輸入：** 4 顆輪的輪速 (Wheel Speeds)，來自 Simscape Plant。
    * **邏輯：**
        * $V_{vehicle} \approx \text{avg}(\text{WheelSpeed\_FL}, \text{WheelSpeed\_FR}) \times R_{wheel}$ (使用非驅動輪估算真實車速)
        * $Slip_{RL} = ( \text{WheelSpeed\_RL} \times R_{wheel} - V_{vehicle} ) / V_{vehicle}$
    * **輸出：** `Actual_Slip_RL`, `Actual_Slip_RR`

2.  **目標滑移率 (Target Slip Generator):**
    * 最簡單的作法：一個 `Constant` block，例如 `0.15` (代表 15% 的目標滑移率)。
    * 進階作法：一個 `1-D Lookup Table`，根據目前車速 $V_{vehicle}$ 決定最佳滑移率。

3.  **PID 控制器 (The Core)：**
    * 為左、右輪各建立一個 `PID Controller` block。
    * **輸入：** `Error = Target_Slip - Actual_Slip_RL`
    * **輸出：** 一個「限制訊號」(例如 0~1 的百分比，或是一個扭矩值)。

4.  **扭矩限制器 (Torque Limiter)：**
    * **輸入 1：** `Driver_Requested_Torque` (來自油門踏板)。
    * **輸入 2：** `TC_Limited_Torque` (來自 PID 的輸出)。
    * **邏輯：** 使用 `Min` block。 `Final_Commanded_Torque = min(Driver_Requested_Torque, TC_Limited_Torque)`
    * **輸出：** `Final_Commanded_Torque`。

---

## 階段四：系統整合 (Controller + Plant)

將「大腦」和「身體」接起來。

1.  **[Plant -> Controller] 連線：**
    * 將 Simscape 模型的 4 顆輪速 (`Wheel_Speeds`) 訊號，拉進 Simulink 的 `Slip_Ratio_Calculator`。
2.  **[Driver -> Controller] 連線：**
    * 建立一個「油門踏板」訊號 (例如一個 `Step` block，模擬 0 -> 100% 油門)，拉進 `Torque_Limiter`。
3.  **[Controller -> Plant] 連線：**
    * 將 `Torque_Limiter` 輸出的 `Final_Commanded_Torque`，拉進 `Motor_Controller_L/R` (FOC/DTC) 的「目標扭矩」輸入。
    * 將 `Motor_Controller_L/R` 的輸出 (例如 `Phase_Voltages`)，連接到 Simscape 逆變器 (`Inverter`) 的 Gating
        ports。

> **Pro-Tip (簡化版)：** 如果你想先跳過 FOC/DTC 的複雜性，你可以讓 TC 邏輯 (3.2) **直接** 輸出 `Final_Commanded_Torque`，並將此訊號直接連到 Simscape `PMSM` block 的「扭矩輸入 (T)」介面。這稱為「理想扭矩控制」，非常適合用來**初步驗證 TC 演算法本身**。

---

## 階段五：模擬、調校與驗證

執行你的模擬，然後開始調校。

### 5.1 調校 (Tuning)
你的 PID 參數 (Kp, Ki, Kd) 幾乎不可能是對的。
* **方法 1 (手動)：** 不斷修改 PID 參數，重新執行模擬，觀察 `Scope` 上的滑移率曲線，直到它能快速且穩定地貼近你的 `Target_Slip`。
* **方法 2 (半自動)：** 使用 Simulink 內建的 **`PID Tuner` App**，讓工具幫你自動計算一組初始值。
* **方法 3 (全自動 - 專業級)：** 參考**波多大學論文**。建立一個 MATLAB 腳本，使用 `Optimization Toolbox` 中的 `pso()` 函數 (粒子群最佳化)，以「最小化滑移誤差」和「最快加速時間」為目標，**自動搜尋**最佳的 Kp, Ki, Kd。

### 5.2 驗證 (Validation) - A/B Test

你必須證明 TC (ON) > TC (OFF)。

1.  **建立「TC 總開關」:**
    * 在 `Torque_Limiter` 前面，使用一個 `Manual Switch` block。
    * **ON (A 組)：** 訊號走 TC 邏輯 (`Final_Commanded_Torque`)。
    * **OFF (B 組)：** 訊號**繞過** TC 邏輯，直接使用 `Driver_Requested_Torque`。

2.  **執行模擬 A (TC ON)：**
    * **數據 (Scope)：** 你會看到 `Actual_Slip` 被完美控制在 `Target_Slip` 附近。`Commanded_Torque` 會小於 `Requested_Torque`。
    * **視覺 (Simscape Explorer)：** 你會看到 3D 車模的輪胎「輕微打滑」，車輛**穩定地**彈射出去。

3.  **執行模擬 B (TC OFF)：**
    * **數據 (Scope)：** 你會看到 `Actual_Slip` 瞬間飆到 100%。`Commanded_Torque` = `Requested_Torque`。
    * **視覺 (Simscape Explorer)：** 你會看到 3D 車模的驅動輪**瘋狂空轉**，車尾劇烈甩動 (Fishtail)，車輛可能原地打轉或緩慢前進。

**恭喜，你已經在模擬中完成了 TC 系統的開發與「效果呈現」。**

---

## 總結：下一步

這個模擬 (SIL - Software-in-the-Loop) 的最終目的，是為了產生可以燒錄到實車 VCU 上的程式碼。

* **程式碼產生：** 當你的 TC 控制器 (Simulink 部分) 調校完畢後，你可以使用 **`Simulink Coder`** 或 **`Embedded Coder`**，將你的演算法模型一鍵轉換為 C/C++ 程式碼。
* **硬體在環 (HIL)：** 在上實車前，你會將這份 C 程式碼燒錄到一個原型控制器 (例如 dSPACE 或 Speedgoat)，並與你的 Simscape 物理模型進行即時 (Real-Time) 模擬。
* **實車測試：** 最終階段，將程式碼燒錄到你車上的 VCU。

# FSAE-E 循跡控制 (TC) 系統開發與驗證計畫

這份筆記旨在規劃一套循跡控制系統 (Traction Control System, TC) 的開發與驗證流程，主要參考 Pengcheng Ji 的碩士論文（UTAS, 2020）中所提出的方法。

https://repositorio-aberto.up.pt/bitstream/10216/152698/2/640636.pdf

---

## 1. 作法 (Methodology) - 核心技術理論

本計畫的 TC 系統是基於**滑移率控制 (Slip Ratio Control)**。核心作法是**限制馬達輸出扭矩**，使驅動輪的滑移率維持在一個「最佳抓地力」的目標區間。

參考論文的關鍵技術包含：

* **控制架構：**
    * **高階控制器 (High-Level)：** 計算「目標滑移率」，並根據當前滑移率，決定需要介入多少 (例如：使用 PID 控制器)。
    * **低階控制器 (Low-Level)：** 負責執行高階控制器的扭矩指令。
* **馬達控制 (Motor Control)：**
    * **永磁同步馬達 (PMSM)** 為控制目標。
    * 採用**直接轉矩控制 (DTC)** 或其他向量控制技術，以實現「精確且快速」的扭矩響應。
    * 研究 **MTPA (最大轉矩電流比)** 和**弱磁控制**，以確保馬達在全速域都能高效輸出。
* **車輛建模 (Modelling)：**
    * **輪胎模型：** 使用 **Magic Formula (MF)** 來描述滑移率與摩擦力之間的非線性關係（這是 TC 演算法的靈魂）。
    * **車輛模型：** 至少使用**四分之一車輛模型**來模擬縱向動態。

**[!] 關鍵前提：** 此方法最佳適用於「後輪獨立馬達獨立驅動」的架構。
此 TC 只能進行「總扭矩」限制，無法處理左/右輪的獨立打滑。

---

## 2. 階段 (Phases) - 開發流程

將整個開發案切分為四大階段：

### 階段一：硬體盤點與參數確認
* [ ] **參數蒐集 (必要)：**
    * 車輛參數：車重、軸距、重心高。
    * 輪胎參數：(最難但最重要) 透過實驗取得 Magic Formula 的係數，或至少取得輪胎靜摩擦係數。
* [ ] **感測器確認：** 具備 4 顆輪速感測器 (Wheel Speed Sensors)、IMU (G值/偏航速率)。

### 階段二：模擬 (Simulation)
* [ ] **環境建立：** 在 MATLAB/SIMULINK 中重現論文的模擬環境。
* [ ] **模型建立：** 建立自己的馬達、控制器和車輛模型。
* [ ] **參數替換：** 將**階段一**蒐集到的「自家車輛參數」輸入模型。
* [ ] **演算法開發：** 在 SIMULINK 中設計你的高低階 TC 控制器。
* [ ] **模擬驗證：** 跑模擬，確認 TC 演算法能有效將滑移率控制在目標值。

### 階段三：實作 (Implementation)
* [ ] **程式碼轉換：** 將 SIMULINK 模型轉換為 C/C++ 程式碼 (例如使用 Embedded Coder)，或手動編寫。
* [ ] **控制器整合：** 將 TC 演算法燒錄至 VCU (車輛控制器)。
* [ ] **CAN Bus 設定：** 確保 VCU 能高頻 (建議 100Hz+) 讀取 4 顆輪速、油門踏板，並能即時「覆蓋」駕駛的扭矩請求，向馬達控制器 (Inverter) 發送「限制後的扭矩指令」。
* [ ] **數據紀錄 (Logging) 設定：** 確保**階段三：驗證流程**所需的所有數據都能被即時紀錄。

### 階段四：驗證與調校 (Validation & Tuning)
* [ ] 參照下方的「驗證流程」進行 A/B Test。
* [ ] **調校 (Tuning)：** * **目標滑移率：** 調整你的 `Target_Slip_Ratio` (例如 10%? 15%?)，找到最佳平衡點。
    * **PID 調校：** 調整 TC 控制器的 Kp, Ki, Kd 值，改善 TC 介入的「體感」。
        * 太「粗暴 (Harsh)」：介入太快，車輛會頓挫。
        * 太「軟弱 (Soft)」：介入太慢，輪胎仍在空轉，TC 沒效果。

---

## 3. 驗證流程 (Validation Process)

驗證的核心是 **A/B Test**：在相同條件下，比較 **TC 開啟 (ON)** vs **TC 關閉 (OFF)**。

### 3.1 用數據說話 (Data Logging)

**[目標]** 證明 TC 確實「介入」，並且「有效控制」了滑移率。

**[必錄數據 (100Hz+)]**
* `TCS_Active` (布林值): TC 是否正在介入 (1=介入, 0=待機)
* `Slip_Ratio_RL`, `Slip_Ratio_RR`: (計算值) 左/右後輪滑移率
* `Target_Slip_Ratio`: (演算法目標值)
* `Requested_Torque`: (來自油門) 駕駛想要的扭矩
* `Commanded_Torque`: (TC 輸出) 演算法「實際」發給馬達的扭矩
* `Wheel_Speed_FL`, `FR`, `RL`, `RR`: 四輪輪速
* `Longitudinal_G`: (來自 IMU) 縱向 G 值 (加速度)
* `Yaw_Rate`: (來自 IMU) 偏航速率 (打轉速度)

**[測試情境]**

1.  **直線起步 (0-60kph 加速測試)**
    * **TC OFF (對照組)：**
        * 會看到：`Slip_Ratio` 瞬間飆升、`Wheel_Speed_RR` 遠高於 `Wheel_Speed_FR`、`Commanded_Torque` = `Requested_Torque`。
    * **TC ON (實驗組)：**
        * **必須看到：** `TCS_Active` 變為 1 -> `Commanded_Torque` **<** `Requested_Torque` -> `Slip_Ratio` 被抑制在 `Target_Slip_Ratio` 附近。
        * **成功指標：** 0-60kph 加速時間**更短**，`Longitudinal_G` 曲線更飽滿。

2.  **出彎 (Corner Exit) 測試**
    * **TC OFF (對照組)：**
        * 會看到：出彎補油 -> 失去抓地力，輪速飆高 -> `Yaw_Rate` 劇烈變化 -> 車輛打轉 (Spin)。
    * **TC ON (實驗組)：**
        * **必須看到：** `TCS_Active` 啟動 -> 輸出扭矩被限制 -> `Yaw_Rate` 保持平穩 -> 車輛穩定出彎。

### 3.2 眼見為憑 (Video Recording)

**[目標]** 直觀展示 TC 效果，並輔助數據分析。

* **[必拍角度 1] GoPro 對準「驅動輪」用慢速攝影：**
    * **TC OFF：** 輪胎瘋狂空轉。
    * **TC ON：** 輪胎仍會滑移（這是必要的），但被控制住，車輛明顯在「前進」而非「原地刨」。
* **[必拍角度 2] GoPro 對準「駕駛與儀表板」：**
    * 確認車輛行駛方向。
    * 確認儀表板上的「TC 啟動燈」是否如預期閃爍。
* **[必拍角度 3] 車外側錄：**
    * **TC OFF：** 車尾劇烈擺動 (Fishtail)。
    * **TC ON：** 車身動態穩定。

### 3.3 [進階] 空拍機鳥瞰 (Drone View)

**[目標]** 驗證 TC 對「側向滑移 (Sideslip)」的 **間接** 的幫助。

* **TC OFF：** 空拍機將拍到車輛（尤其在出彎時）的「指向」和「行進軌跡」不一致，車尾向外甩，即「側滑角」過大。
* **TC ON：** 空拍機將拍到 TC 透過防止「縱向空轉」，進而**成功抑制**了「側向滑移」的發生。車輛軌跡非常乾淨，車身指向與行進方向一致。

# IEM相關技術文獻整理

為啥有這怪東西 我也不知道 但留點資料總是好的

https://forum.gamer.com.tw/C.php?bsn=60535&snA=21826
這我自己寫的小白向加減看一下




最近目標是跟祥辰那邊倒模看能不能把矽膠私模弄出來給車手用
![image](https://hackmd.io/_uploads/rJIMF2cTJe.png)
目前就卡在矽膠那邊材質選用的問題 其他的很簡單

# PDOC Test Report

## Test Date
* 2024/11/25, William

## Purpose

This document outlines the test methods and results to verify the effectiveness of our PDOC system. The system is designed to open the shutdown loop when over-temperature conditions occur on the precharge or discharge resistor. Additionally, the report includes explanations of several circuit operations.

## Related Rule

* EV5.6.6 Add Clause defining the PDOC (Local Addendum)

## PDOC Test Method

In order to **simulate the worst-case scenario** for the system, we directly connect a 400V DC voltage source (approximately the maximum voltage of the accumulator) to each terminal of our discharge and precharge resistors. **Using a thermal camera, we can verify whether the system successfully triggers the shutdown loop to open at the designed temperature.** Additionally, it allows us to assess the thermal conductivity of the resistors, heat sink, and thermal paste to ensure effective heat dissipation.


<img src="https://hackmd.io/_uploads/H1uAbvQXJg.jpg" width="60%"/>

## PDOC Test Result

**The temperature for triggering the shutdown loop is designed to be 80°C.** However, due to the thermal conductivity limitations of the heatsink and thermal paste, it takes some time for the NTC thermistor to respond. **In the worst-case scenario, the system may only trip when the resistor's surface temperature reaches 90°C. This is still within safe limits,** as the resistor's operating temperature range, according to the datasheet, is -65°C to +175°C.

<img src="https://hackmd.io/_uploads/r1tB5PXXJx.png" width="50%"/>



<img src="https://hackmd.io/_uploads/SkOFuwX71l.png" width="44%"/>

## Core System Explanation

### How to Detect The Temperature

In our system, we use an NTC thermistor (Littelfuse KX103J2) with a Beta value of 3892. The Beta value is a critical characteristic that determines the thermistor's resistance at specific temperatures. When paired with a resistor, it forms a voltage divider, which outputs varying voltages corresponding to different temperatures. The following graph illustrates the relationship between temperature and resistance.

<img src="https://hackmd.io/_uploads/rJcpTvXXJg.png" width="70%"/>

To monitor the temperature, a hysteresis OPA comparator is used to determine whether the temperature exceeds 80°C based on the voltage. Additionally, the hysteresis OPA comparator ensures system stability by introducing a hysteresis effect. Once the over-temperature protection is triggered, it will only disengage when the temperature drops back to 70°C, preventing rapid on/off switching and ensuring reliable operation.

<img src="https://hackmd.io/_uploads/S1WLpvmXJx.png" width="70%"/>

# TTR8 電池箱體連接器

![](https://hackmd.io/_uploads/rJeoKXJyp.png)
![](https://hackmd.io/_uploads/SkKqFXk16.png)

* 廠商：Amphenol Sine Systems
* 額定電壓：250V
* 額定電流：13A(Normal Connector), 25A(Mixed Connector)
* 防水等級：IP68, IP69K(連接器連接密合)

## 文件
* [連接器網頁](https://www.amphenol-sine.com/at-series)
* [連接器總覽規格書](https://www.amphenol-sine.com/pdf/catalog/CAT-ASERIES-AT.pdf)
* [連接器端子規格書](https://www.amphenol-sine.com/pdf/catalog/A-Series-Contacts.pdf)
* [面板安裝連接器規格書](https://www.amphenol-sine.com/pdf/catalog/CAT-ASERIES-AT-PanelMate.pdf)
* [電路板安裝連接器規格書](https://www.amphenol-sine.com/pdf/catalog/BoardLock-Family-Brochure-2019.pdf)
* [連接器電線保護套規格書](https://www.amphenol-sine.com/pdf/catalog/A-Series-Boots.pdf)
* [連接器安裝指南](https://www.mouser.tw/pdfdocs/AT-Repair-Kit-Manual-2016.pdf)

## 工具、端子與防水塞
AT11-310-1605 (端子移除工具)
AT62-16-0844 (Size-16 20~22AWG 插座 鍍金 壓接端子)
AT62-16-0644 (Size-16 18~20AWG 插座 鍍金 壓接端子)
AT60-16-0844 (Size-16 20~22AWG 插頭 鍍金 壓接端子)
AT60-16-0644 (Size-16 18~20AWG 插頭 鍍金 壓接端子)
A114017 (防水塞)

## 2P連接器
### 插座
AT04-2P-PM11 (面板安裝式)
### 插座卡榫
AW2P (Green)
AW2P-A (Keyed-A Grey)
AW2P-B (Keyed-B Black)
AW2P-C (Keyed-C Green)
AW2P-D (Keyed-D Brown)
### 插頭
AT06-2S (Grey)
### 插頭卡榫
AW2S (Green)
AW2S-A (Keyed-A Grey)
AW2S-B (Keyed-B Black)
AW2S-C (Keyed-C Green)
AW2S-D (Keyed-D Brown)
### 插頭保護套
AT2S-BT (Grey)
AT2S-BT-BK (Black)
AT2S-BT-YW (Yellow)
### 其他
AT04-XP-PM1X-G7 (面板安裝插座防水密封墊圈 替換品)

## 3P連接器
### 插座
AT04-3P-PM05 (面板安裝式 帶螺紋)
AT04-3P-PM11 (面板安裝式)
### 插座卡榫
AW3P (Green)
AW3P-J1939 (Keyed-J1939 Blue)
### 插頭
AT06-3S (Grey)
### 插頭卡榫
AW3S (Green)
AW3S-J1939 (Keyed-J1939 Blue)
### 插頭保護套
AT3S-BT (Grey)
AT3S-BT-BK (Black)
AT3S-BT-YW (Yellow)
### 其他
AT04-XP-PM1X-G7 (面板安裝插座防水密封墊圈 替換品)

## 4P連接器
### 插座
AT04-4P-PM11 (面板安裝式)
### 插座卡榫
AW4P (Green)
AW4P-A (Keyed-A Grey)
AW4P-B (Keyed-B Black)
AW4P-C (Keyed-C Green)
AW4P-D (Keyed-D Brown)
### 插頭
AT06-4S (Grey)
### 插頭卡榫
AW4S (Green)
AW4S-A (Keyed-A Grey)
AW4S-B (Keyed-B Black)
AW4S-C (Keyed-C Green)
AW4S-D (Keyed-D Brown)
### 插頭保護套
AT4S-BT (Grey)
AT4S-BT-BK (Black)
AT4S-BT-YW (Yellow)

### 其他
AT04-XP-PM1X-G7 (面板安裝插座防水密封墊圈 替換品)

## 6P連接器
### 插座
AT04-6P-PM05 (面板安裝式 帶螺紋)
AT04-6P-PM11 (面板安裝式)
### 插座卡榫
AW6P (Green)
### 插頭
AT06-6S (Grey)
### 插頭卡榫
AW6S (Green)
### 插頭保護套
AT6S-BT (Grey)
AT6S-BT-BK (Black)
AT6S-BT-YW (Yellow)
### 其他
AT04-XP-PM1X-G7 (面板安裝插座防水密封墊圈 替換品)

## 8P連接器
### 插座
AT04-08PA-PM05 (面板安裝式 帶螺紋 Keyed-A Grey)
AT04-08PA-PM11 (面板安裝式 Keyed-A Grey)
AT04-08PB-PM11 (面板安裝式 Keyed-B Black)
AT04-08PC-PM11 (面板安裝式 Keyed-C Green)
AT04-08PD-PM11 (面板安裝式 Keyed-D Brown)
### 插座卡榫
AW8P (Green)
### 插頭
AT06-08SA (Keyed-A Grey)
AT06-08SB (Keyed-B Black)
AT06-08SC (Keyed-C Green)
AT06-08SD (Keyed-D Brown)
### 插頭卡榫
AW8S (Green)
### 插頭保護套
AT8S-BT (Grey)
AT8S-BT-BK (Black)
AT8S-BT-YW (Yellow)
### 其他
AT04-08PB-G7 (面板安裝插座防水密封墊圈 替換品)

## 12P連接器
### 插座
AT04-12PA-PM05 (面板安裝式 帶螺紋 Keyed-A Grey)
AT04-12PA-PM11 (面板安裝式 Keyed-A Grey)
AT04-12PB-PM11 (面板安裝式 Keyed-B Black)
AT04-12PC-PM11 (面板安裝式 Keyed-C Green)
AT04-12PD-PM11 (面板安裝式 Keyed-D Brown)
### 插座卡榫
AW12P (Green)
### 插頭
AT06-12SA (Keyed-A Grey)
AT06-12SB (Keyed-B Black)
AT06-12SC (Keyed-C Green)
AT06-12SD (Keyed-D Brown)
### 插頭卡榫
AW12S (Green)
### 插頭保護套
AT12S-BT (Grey)
AT12S-BT-BK (Black)
AT12S-BT-YW (Yellow)

## 13P連接器
AT1612-13PB-G (面板安裝式插座 Keyed-B Black 不需插座卡榫)
AT1612-PB-G7 (面板安裝插座防水密封墊圈 替換品)

## 18P連接器
AT16-18PA-PM11 (面板安裝式插座 帶螺紋 Keyed-A Grey 不需插座卡榫)
AT16-18SA (插頭 Keyed-A Grey)

## 


| Column 1 | Column 2 | Column 3 |
| -------- | -------- | -------- |
| Text     | Text     | Text     |


ATHP062S25EL-S2
ATHP062S25ELB-S2

ATHP042P25EL
ATHP042P25ELB

1-2103124
4-2103177