G002 Mod100/Ser2
平行模型 · 2026-09-18 · ET v.7.4 p.7(PFG-ET-ai1_G002rev2(p7)-260918,-2026rev2-,Rm_off=1)
最後更新:Embedded Table(RUDA 參數):2026-09-18 · ET v.7.4 p.7(PFG-ET-ai1_G002rev2(p7)-260918,-2026rev2-,Rm_off=1) · 韌體 commit:2026-07-29(5b0c17d)
亞航現場單元(正式線 G002-b:5b0c17d 基底、Rm 關;b1 B191、b2 rev2 表、B2X1、ADC 16.5);另有 G002-0728-RmOn 線(Rm 開)備用;BD+SF v2.5
本版變更 · BD+SF v.2.5(26-0727)
- 【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)。 - 參數全面換新(ET v.7.4 p.5,
-2026rev1-):T 23→25 °C、Vmc 0.901→1.256、a/b/c/k 重擬。 - 26-0920
db553ee:B221/0 擴成 B2X1/B2X0(CommandSet 26-0920 p.2/p.7):22X1 R,X=1,2,3,0<R<2。B211 只 Vb×R;B221 Vb×R 且 SF÷R;B231 只 SF÷R;任一 B2X0 關閉。同時只有一種模式。Ruda:ET 資料一律以 Rm off 預補償,B2X1 是工程手動調整模式,取代 Rm。同日 Ruda 定調 G002/G003 同版本(Rm_OFF=1),v3.x 留給下一梯次。主線1341986已同步。G003 自此 commit 分出(見 G003 頁)。 - 26-0918 16:20 第二條線
G002-0728-RmOn/89d237c(tagG002-0728RmOn-plus-0918):大餅/亞航指明現場要的是「Rm 還在」的版本,即c70d26a「G002-0726」(7/28:ET p.5 第一版、BD+SF v.2.5、RmOff=0、舊 k[] 1.05382…,當時 Keil hex 在該 commit 內)。Ruda 要在它上面直接加 0918 的 1-3 項:B191、B221/B220、rev2 的 h[]/k1…k7。RmOff 維持 0(rev2 表頭寫 Rm_off=1,待 Ruda 確認)。不含 7/295b0c17d的 RmOff=1 與 rev1 k[]。 - 26-0918 G002「b2」
dbb5cb7(分支G002-b,tagG002-b2-260918,供亞航 9/21 遠端燒錄):① ET v.7.4 p.7 -2026rev2-(PFG-ET-ai1_G002rev2(p7)-260918)局部更新:h[] 全列與 k1…k7 換新值(k2/k0 0.96%→0.93%,SF 在 V≤2.7 內差 <0.6%,k0(z) 溫度掃描差 <0.4),a/b/c、Vdc/Vmc/Toc/Tac/Tbc、Rm_off=1 不變;② 新增 B221/B220(CommandSet 26-0918 p.2/p.7)source compensation:2221 R(0<R<2)在最終 Vb、SF 之後加Vb×R、SF÷R,B220 關閉;AckB221+R/B220,R 暫存 RAM(Ruda:半永久暫存器之後再做)。演算法仍為 BD+SF v.2.5。B191/B221 已同步到主線8b5c6f4,供 G003/4/5/1 沿用。 - 26-0917 G002「b1」
eba1ea9(分支G002-b,tagG002-b1-2191-260917):只改 B191 死區(CommandSet 26-0917 p.6,Ruda 26-0917 插件,G002 已在亞航)。then-branch 由Wi = dWi改為Wi = W(i−1) + dWi/8,else 不變;演算法與參數維持 b 版 5b0c17d。舊式在等速慢轉時 dWi≈0 會把轉速吃掉(模擬:0.5 dps × 20 s 只積出 0.18°),新式保留轉速。dWi/8以* 0.125f實作(float 乘 2 的冪次無誤差、FPU 一條指令,等同整數 >>3)。W(i−1) 兩種解讀以B191_RECURSIVE切換:0 = 上一筆原始 W(文件字面,預設;靜止 σ 3.5→3.1 mdps,幾乎無平滑)、1 = 上一筆輸出(EWMA 1/8;σ 3.5→1.5 mdps),待 Ruda 確認。Wi 只有在送過 B151 時才是預平滑(BEWMA n=33),開機預設關閉;3003 的角度積分用的是 B191 之後的 W,不需改。 - 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。
- k0 改由 h[] 多項式決定:v.2.5 取消 ET 的 Szc 欄位,
k0 = Σ h[n]·zⁿ。h[] 首次為非零值。 - RmOff 的來回:25-1201 版是 RmOff=1(Rm 鎖 1)→ 26-0727 依 ET 標題改為 0(Rm = Vmc/⟨Vm⟩ 生效)→ 26-0729 又改回 1,因為新的 SF 係數是在 Rm=OFF 下擬合的,兩者必須成套使用。(註:
RmOff是負邏輯,=1代表 Rm 功能關閉。) - 修正 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。 - 修正 k0 的 z 冪次:原迴圈沿用 A/B/C 迴圈結束時的 z⁸,實際算成 z⁸…z¹⁵。h[] 為 0 時無害,但本版 h[] 非零,必須修正。
- 停用 USART1(
c70d26a/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 → | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| a[i] | 0.111191 | -0.20688 | 0.001275 | 3.30821 | 0.715571 | -33.3193 | -6.89759 | 96.9845 |
| b[i] | 0.111663 | -0.80897 | -0.61999 | 184.888 | 0 | 0 | 0 | 0 |
| c[i] | 0.111178 | -0.21956 | 0.000192 | 3.933496 | 1.01235 | -44.0576 | -10.9732 | 141.0236 |
| h[i] | 175.4446 | -20.7538 | 10.6481 | 189.0947 | -55.6848 | -728.978 | 167.9491 | 0 |
| k[i] | 0 | -0.7926 | 1.6325 | -0.0495 | 0.1441 | 0.0068 | -0.005 | -0.001 |
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.4446
→
W=SF·Vdps
- 溫度補償:a/b/c 對 (To−Toc)/(Ta−Tac)/(Tb−Tbc) 各算 8 階多項式 → 以溫度距離權重 P 與固定 Q1/Q2/Q3 用 R 混合 → 混合得 Vb。
- 有效訊號:V = Pdi·Rm − Vb(Rm = 1(RmOff=1))。
- 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.4446;數值掃描 z∈[−0.5, +0.5] 時 k0 落在 167–188 之間,平滑無發散。 - 角速度:W = SF·V(dps)→ 扣靜態 Wz → B16x–B19x 濾波 → 積分成角度 A。
演算法定義信件(共用,可點開):Rm 式 (RmOff/Rm 公式) · 死區 B170/71 · 變化率 B2190/1 · 統一濾波 B1X0/1 · 角度輸出 Command 4023 · Td / D024 (硬體vs軟體 TD) · BD+SF v.3.0 (26-0907) — Q=exp(−|Ta−To|) 權重、Rm 刪除 · BD+SF v.3.1 (26-0908) — P3=Q⁵、P2=Q³−P3;配 ET p.4
4 · 出處與更新
- 最後更新
- Embedded Table(RUDA 參數):2026-09-18 · ET v.7.4 p.7(PFG-ET-ai1_G002rev2(p7)-260918,
-2026rev2-,Rm_off=1) · 韌體 commit:2026-07-29(5b0c17d) - 原始碼
- main.c 的
PFG100-G002區塊 ·hex-files/<日期>/G002.hex