平行模型
G001G002G003G004G005G006G007G008G009
模型總覽← 主規格

G002 Mod100/Ser2

平行模型 · 2026-07-29 · ET v.7.4(PFG-ET-ai1_G002(p5)-260729,-2026rev1-Rm_off=1

最後更新:Embedded Table(RUDA 參數):2026-07-29 · ET v.7.4(PFG-ET-ai1_G002(p5)-260729,-2026rev1-Rm_off=1 · 韌體 commit:2026-07-29(5b0c17d)

★ 現行作用中模型;2026rev1 校正 + BD+SF v.2.5。26-0729 依實測回饋改用 Rm=OFF 重擬的 SF 係數(k2/k0 7.59%→0.96%),修正高轉速高估

0 · 專案組成速覽

PFG100 是一具角速度感測器(Angular Rate Sensor):受控光源照射感測元件,光電差動訊號經 24-bit ΔΣ ADC 取得差壓 Vd(Pdi),再由 STM32H7 韌體做溫度補償與 scale-factor 換算,輸出角速度 W (dps) 與累積角度 A (°)。完整規格見 主規格

硬體
MCU STM32H7B0RBT6(舊板 230718-H7B0RBT6/新板 v.2541 20260121) · 主 ADC MCP3561 24-bit ΔΣ(SPI2,讀 Pdi=Vd) · 內建 ADC1 8ch/ADC2 6ch scan · eDAC MCP4726(I2C3 @0x61) · 轉動源 Faulhaber 2342_CR + IE3-1024 編碼器 + MCDC3006
韌體 repo
kuohsuanlo/H743VIT6 · 主線分支 STM32-Diff-Mode-v2310-#G26 · Keil MDK 專案 20260121-H7B0RBT6/MDK-ARM/H7B0RBT6-20260121.uvprojx · 每個 G00X = 同一份程式碼 + 不同 Embedded Table 常數,各自編成 hex-files/<日期>/G00X.hex
上位機 repo
kuohsuanlo/ARSnav-2405-graph-file · 最新分支 STM32-H7-SingleEnded4140e38, 2026-06-16「add latest 4019 commands」) · C# WinForms/.NET Framework 4.6 x86,產出 ARSnavPFG100.exe · 主要檔 App.csDAQSTM32.csH7Command.csMotorCommandSender.cs · 即時繪圖 + DAQ + 馬達控制(Faulhaber MCL 腳本)
註:master299054a)仍停在 2023-08,已由上述分支取代;比對分支時以 STM32-H7-SingleEnded 為準。
規格文件
演算法 BD+SF_algorithm_ai1-*.pdf(現行 v.2.5/26-0727) · Embedded Table PFG-ET-ai1_*.pdf(現行 v.7.4/26-0727) · 指令集 CommandSet+ReleaseLog_B0-*.pdf(A/B/C/D/E 五類) · 規格由 RUDA 定義、Tony 建進韌體
共用演算法積木
溫補多項式 → Vb · SF → W=SF·V · bias nulling (B110) · 光源功率收斂 (B111–113) · BWEMA (B150/151) · 人工死區濾波 (B16x–B19x) · 靜態歸零 (B200) · 角度積分 (C003/D023) · 診斷串流 (D008–D024,含 Td 與 Laguerre L-filter)
模型
G001–G009 為並行維護的校正模型(彼此平行,非世代),各自對應一張 Embedded Table。目前作用中:G002 (2026rev1);前一版主線為 G008。
應用
成大 (NCKU) 無人船 (USV) 於亞航 (AIDC) 廠的航向/角度量測(G004 部署),並用於 dT/dt 溫度微分模型研究。

本版變更 · BD+SF v.2.5(26-0727)

  1. 【26-0729 修訂】SF 係數 k1~k7 換新,RmOff 0→1。 ET v.7.4 p.5 改標為 (G002, Rm_off=1),表上舊的 k1~k7 已劃除作廢。舊值 k2/k0 = 7.59% 讓二次項在高轉速接管,SF 在 120→600 deg/s 之間漂 +42%,與實測「高估 1~2 成」吻合;新值由 Rm=OFF 的量測重新擬合k2/k0 = 0.96%,同區間只漂 +10.6%(不出現此症狀的 G008 是 +9.4%)。單調上限亦由外推不可信改善為 ~1085 deg/s(G008 為 724)。
  2. 參數全面換新(ET v.7.4 p.5,-2026rev1-):T 23→25 °C、Vmc 0.901→1.256、a/b/c/k 重擬。
  3. Q/R 改組:Q1/Q2/Q3·R 由 0.02/0.95/0.03·0.25 改為 0.07/0.03/0.9·0.2,主權重自 B(Tb) 移到 C(To)。此組值文件註明僅適用 G002 revised。
  4. k0 改由 h[] 多項式決定:v.2.5 取消 ET 的 Szc 欄位,k0 = Σ h[n]·zⁿ。h[] 首次為非零值。
  5. RmOff 的來回:25-1201 版是 RmOff=1(Rm 鎖 1)→ 26-0727 依 ET 標題改為 0(Rm = Vmc/⟨Vm⟩ 生效)→ 26-0729 又改回 1,因為新的 SF 係數是在 Rm=OFF 下擬合的,兩者必須成套使用。(註:RmOff 是負邏輯,=1 代表 Rm 功能關閉。)
  6. 修正 P2/P3 配對:韌體自 2025-11-03(6bb33f8)起把 Vb 式改寫成 P1·A+P2·B+P3·C,卻未同步對調 P2/P3 定義,導致 B(Tb) 取到 To 的權重、C(To) 取到 Tb 的權重。此版依文件改回 P2=(Tab+Tob)/tt、P3=(Tao+Tob)/tt。影響範圍涵蓋 2025-11-03 後的 G002-re/G004/G007/G008。
  7. 修正 k0 的 z 冪次:原迴圈沿用 A/B/C 迴圈結束時的 z⁸,實際算成 z⁸…z¹⁵。h[] 為 0 時無害,但本版 h[] 非零,必須修正。
  8. 停用 USART1c70d26a / 51cc776,合併為 99db8ab):燒錄後 USB 無法列舉(裝置管理員一直轉圈)。原因是 stm32h7xx_it.c 內沒有 USART1_IRQHandler,startup 的 [WEAK] 版本別名到 Default_Handler(無窮迴圈);一旦 PA10/USART1_RX 有電位變化即觸發 RXNE,CPU 就卡死在該迴圈。註解掉 MX_USART1_UART_Init() 後恢復正常(指令輸入走 USART6,不受影響)。

1 · 模型參數

單元
Model 100 / Ser 2
校正溫度 T
25 °C
Vdc / Vsc / Vmc
0.111597 / 0 / 1.25644
Toc / Tac / Tbc / Tcc
1.667727 / 1.65023 / 1.719653 / 1.719337
RmOff
1 — Rm = 1(RmOff=1)
Q1 / Q2 / Q3 · R
0.07 / 0.03 / 0.9 · 0.2 (Vb 的 P 項與 Q 項混合權重)
演算法版本
BD+SF v.2.5(26-0727)
SF 表示法
h[] 多項式 k0(v.2.5,無 Szc)

2 · 多項式係數(i = 0…7)

i →01234567
a[i]0.111191-0.206880.0012753.308210.715571-33.3193-6.8975996.9845
b[i]0.111663-0.80897-0.61999184.8880000
c[i]0.111178-0.219560.0001923.9334961.01235-44.0576-10.9732141.0236
h[i]175.7-23.153.69723619.33-913.200
k[i]0-1.190861.68535-0.081780.131610.00133-0.00355-0.00026

a/b/c 溫度補償多項式;k scale-factor 多項式;h SF 零次項溫補。

3 · 演算法(本模型)

套用 主規格 §5 共用訊號鏈,差別只在本頁參數:

溫度 To/Ta/Tba/b/c 多項式
Vb偏壓補償
V=Pdi·Rm−VbRm = 1(RmOff=1)
SF=Σk·Vⁱk0≈175.7
W=SF·Vdps
  1. 溫度補償:a/b/c 對 (To−Toc)/(Ta−Tac)/(Tb−Tbc) 各算 8 階多項式 → 混合得 Vb。
  2. 有效訊號:V = Pdi·Rm − Vb(Rm = 1(RmOff=1))。
  3. Scale factor:v.2.5 表示法:ET 已取消 Szc 欄位,k0 全由 h[] 決定 —— 執行期 k0 = Σ h[n]·zⁿ(z = To−Toc,n = 0…7),SF = k0+k[1]·V+…+k[7]·V⁷。z=0 時 k0 = 175.7;數值掃描 z∈[−0.5, +0.5] 時 k0 落在 167–188 之間,平滑無發散。
  4. 角速度:W = SF·V(dps)→ 扣靜態 Wz → B16x–B19x 濾波 → 積分成角度 A。

4 · 出處與更新

最後更新
Embedded Table(RUDA 參數):2026-07-29 · ET v.7.4(PFG-ET-ai1_G002(p5)-260729,-2026rev1-Rm_off=1 · 韌體 commit:2026-07-29(5b0c17d)
原始碼
main.c 的 PFG100-G002 區塊 · hex-files/<日期>/G002.hex