文章目录
-
- 离散化的数学翻译
- [1. 位置式](#1. 位置式)
- [2. 增量式](#2. 增量式)
- 电流环频率怎么确定
-
- [1. 下限红线:电机物理特性(奈奎斯特与载波比)](#1. 下限红线:电机物理特性(奈奎斯特与载波比))
- [2. 上限红线:功率硬件的散热极限(开关损耗)](#2. 上限红线:功率硬件的散热极限(开关损耗))
- [3. 算力红线:MCU 的时间预算(CPU Load)](#3. 算力红线:MCU 的时间预算(CPU Load))
- 补充:扭矩与速度的关系
现于某汽车零部件大厂实习,主攻电机控制调参与 BSW 底层移植。本科具备电赛电力电子(电源类)背景,曾涉猎 PID 算法。时隔数年重回控制领域,特将车规级 PID 的通俗理解总结润色于此,温故知新,留档备查。

u ( t ) u(t) u(t)(控制器输出):这是 PID 计算出来的控制信号。在你的电机控制里,它可能对应着 Vq/Vd(电压矢量) 或者 PWM 的占空比。
e ( t ) e(t) e(t)(当前误差): e ( t ) = 目标值 − 实际反馈值 e(t) = \text{目标值} - \text{实际反馈值} e(t)=目标值−实际反馈值。比如目标转速 3000 RPM,当前实际转速 2800 RPM,那么当前的 e ( t ) = 200 e(t) = 200 e(t)=200。
K p K_p Kp(比例增益):括号外面的总指挥。它决定了整个控制系统的总响应强度。
括号内的三驾马车:
e ( t ) e(t) e(t) ------ P(比例项):只看现在。当前的误差是多少,就按比例输出多大。
1 T i ∫ 0 t e ( t ) d t \frac{1}{T_i} \int_{0}^{t} e(t) dt Ti1∫0te(t)dt ------ I(积分项):清算过去。 ∫ 0 t e ( t ) d t \int_{0}^{t} e(t) dt ∫0te(t)dt 是误差在时间上的累积, T i T_i Ti 是积分时间常数。 T i T_i Ti 越小,积分作用越强(除以一个更小的数,结果更大),消除静差越快。
T d d e ( t ) d t T_d \frac{de(t)}{dt} Tddtde(t) ------ D(微分项):预测未来。 d e ( t ) d t \frac{de(t)}{dt} dtde(t) 是误差的变化率(斜率), T d T_d Td 是微分时间常数。 T d T_d Td 越大,对未来的预测(刹车)作用越明显。
离散化的数学翻译
离散化的数学翻译积分变累加(矩形积分法):把连续的面积积分,变成过去所有时刻误差的"堆方块"累加: ∫ 0 t e ( t ) d t ≈ ∑ j = 0 k e ( i ) ⋅ T s \int_{0}^{t} e(t) dt \approx \sum_{j=0}^{k} e(i) \cdot T_s ∫0te(t)dt≈j=0∑ke(i)⋅Ts微分变差分(一阶后向差分):把瞬时斜率,变成当前误差和上一次误差的"差值"除以时间: d e ( t ) d t ≈ e ( k ) − e ( k − 1 ) T s \frac{de(t)}{dt} \approx \frac{e(k) - e(k-1)}{T_s} dtde(t)≈Tse(k)−e(k−1)
1. 位置式
计算机内需要离散化


2. 增量式

电流环频率怎么确定
🎯 一个核心原则:与 PWM 开关频率强绑定在数字控制中,为了保证控制的时效性和减少相移,电流环的执行频率( f c u r r e n t _ l o o p f_{current\loop} fcurrent_loop)必须与功率管的 PWM 开关频率( f p w m f{pwm} fpwm)保持严格的整数倍关系。通常只有两种选择:
1:1 模式(最主流):PWM 是 20kHz,电流环也是 20kHz。每个 PWM 周期(50µs)的中心点触发一次 ADC 采样,并立刻进中断算一遍 PID。
2:1 模式(过采样):PWM 是 10kHz,但在载波的顶点和底点各采样一次(采样率 20kHz),由硬件或 BSW 取平均值后,电流环仍按 20kHz 执行。因此,订定电流环频率,本质上就是在订定整车的 PWM 开关频率。
🚧 三条必须死守的红线边界要定下一个具体的频率(如 10kHz、16kHz 还是 20kHz),必须通过以下三条边界的联合审查:
1. 下限红线:电机物理特性(奈奎斯特与载波比)
电流环的频率必须足够快,快到能够完美还原电机在最高转速下的正弦波电流,否则电机会失控或剧烈震荡。计算公式:先算出电机的最大电频率 f e _ m a x f_{e\max} fe_max: f e _ m a x = n m a x ⋅ p 60 f{e\max} = \frac{n{max} \cdot p}{60} fe_max=60nmax⋅p(其中 n m a x n_{max} nmax 为电机最高转速, p p p 为极对数)大厂铁律(载波比约束):为了保证 FOC 控制质量,电流环频率 f c f_{c} fc 至少要是电机最大电频率的 10 到 20 倍。行业案例:某车载主驱电机,最高转速 15000 RPM 15000\text{ RPM} 15000 RPM,极对数 4 4 4。其 f e _ m a x = 15000 × 4 60 = 1000 Hz f_{e\_max} = \frac{15000 \times 4}{60} = 1000\text{ Hz} fe_max=6015000×4=1000 Hz。那么电流环频率绝对不能低于 1000 Hz × 10 = 10 kHz 1000\text{ Hz} \times 10 = 10\text{ kHz} 1000 Hz×10=10 kHz。如果定在 8kHz,高转速时电机就会直接失控。
2. 上限红线:功率硬件的散热极限(开关损耗)
频率不是越高越好。功率管(IGBT 或 SiC MOSFET)在每次开关切换时都会产生开关损耗(发热)。频率翻倍,逆变器的发热量就会翻倍。
IGBT 桥臂:由于传统硅基 IGBT 的开关速度慢(拖尾电流大),开关损耗高,温度很容易爆表。在大厂里,IGBT 项目的电流环频率通常死死卡在 8kHz ~ 10kHz。
SiC(碳化硅)桥臂:现在的乘用车(2026年技术主流)大量采用碳化硅材质,它开关极快,损耗极低。大厂终于可以把电流环频率解放到 16kHz ~ 20kHz。
3. 算力红线:MCU 的时间预算(CPU Load)
你在做 BSW 移植时最关心这一条。单片机进一次电流环中断,留给它执行代码的时间是极其有限的。
时间预算:如果电流环频率定在 20kHz,整个控制周期只有 50µs。
大厂红线:电流环中断的执行时间,绝对不能超过整个周期的 30%。也就是说,你的 ADC 读取 + 坐标变换 + 3个PID计算 + SVPWM 占空比生成的总代码执行时间,必须在 15µs 内收工!
如果评估发现,由于使用了复杂的无位置传感器(Sensorless)算法或双核通信,代码跑了 25µs,导致 CPU Load 严重超标,后台的 CAN 通信和 UDS 诊断都卡死了,那就必须把频率退回到 10kHz 或 16kHz。
🛠️ 大厂标准工程落地流程(三步走)如果你在团队里要负责定这个参数,标准的出厂流程是这样的:
[步骤一:向硬件组索取参数]
1. 获取电机最高转速 n_max 和 极对数 p ──> 算出控制下限 (如需 > 10kHz)
2. 获取逆变器热仿真报告 (IGBT/SiC 极限) ──> 算出硬件上限 (如需 < 20kHz)
│
▼
[步骤二:初定频率并开辟中断]
假设定在 16kHz (周期 62.5µs)。在 BSW 里配置定时器和 ADC 触发。
│
▼
[步骤三:全功能打卡与算力压测]
把 FOC 算法全开,用示波器翻转 GPIO 或用 Trace32 测量中断耗时:
┌────────────────────────────────────────────────────────┐
│ 耗时 < 18.75µs (30%内) ──> 配置通过,此频率定格! │
│ 耗时 > 20µs ──> 降频到 10kHz,或找算法组优化代码 │
└────────────────────────────────────────────────────────┘
补充:扭矩与速度的关系
把扭矩和速度串联在一起的物理桥梁,就是功率(Power)。你在电赛做电源时知道 P = U ⋅ I P = U \cdot I P=U⋅I,而在机械旋转世界里,功率的公式为: P = T e ⋅ ω m P = T_e \cdot \omega_m P=Te⋅ωm
如果换算成汽车工程里最常用的实用单位(功率用 kW \text{kW} kW,扭矩用 N ⋅ m \text{N}\cdot\text{m} N⋅m,转速用 RPM \text{RPM} RPM),公式就会变成大厂工程师天天挂在嘴边的:
P = T e ⋅ n 9550 P = \frac{T_e \cdot n}{9550} P=9550Te⋅n
P P P:输出功率( kW \text{kW} kW)
T e T_e Te:电磁扭矩( N ⋅ m \text{N}\cdot\text{m} N⋅m)
n n n:电机转速( RPM \text{RPM} RPM)
9550 9550 9550:单位换算出来的常数系数