1. 基于电机模型的电流环PI参数初值计算
任务目标
根据永磁同步电机(PMSM)的电气参数——定子电阻 \(R_s\)、定子电感 \(L_s\) 和直流母线电压 \(U_{dc}\),计算FOC电流环PI调节器的初始参数(比例增益 \(K_p\) 和积分时间常数 \(T_i\)),并通过频域稳定性判据验证该组参数是否满足工程要求。
核心原理与计算公式
电流环被控对象为一阶惯性环节 \(G(s) = \frac{1}{R_s + L_s s}\)。采用典型I型系统整定法,令期望电流环带宽为 \(\omega_{cc}\)(rad/s),则PI参数初值按下式计算:
- 比例增益:\(K_p = L_s \cdot \omega_{cc}\)
- 积分时间常数:\(T_i = \frac{L_s}{R_s}\)(零极点对消)
- 积分增益:\(K_i = \frac{K_p}{T_i} = R_s \cdot \omega_{cc}\)
带宽 \(\omega_{cc}\) 受限于数字控制器的采样频率 \(f_{sw}\)(通常取 \(\omega_{cc} \le 2\pi f_{sw}/20\))以及直流母线电压允许的电流变化率。本案例取 \(\omega_{cc} = 2\pi \cdot f_{sw}/20\),并验证开环截止频率处相位裕度是否大于45°。
Python实现代码
import cmath
def calc_current_pi(Rs, Ls, Udc, fsw):
"""
计算电流环PI参数初值并验证稳定性
参数:
Rs: 定子电阻 (Ohm)
Ls: 定子电感 (H)
Udc: 直流母线电压 (V)
fsw: 电流环采样/控制频率 (Hz)
返回:
dict: 包含Kp, Ti, Ki, 带宽, 相位裕度
"""
# 1. 确定电流环带宽(受采样频率限制)
wcc = 2 * cmath.pi * fsw / 20.0 # rad/s
# 2. 典型I型系统整定
Kp = Ls * wcc
Ti = Ls / Rs
Ki = Kp / Ti # 等于 Rs * wcc
# 3. 稳定性验证:开环传递函数 L(s) = Kp * (1 + 1/(Ti*s)) * (1/(Rs + Ls*s))
# PI控制器零点和被控对象极点对消后,开环传函简化为 L(s) = wcc / s
# 因此截止频率 = wcc,相位裕度恒为 90°(理论值)
# 但需考虑数字控制延迟(一拍滞后)带来的相位损失
# 数字延迟等效为 e^{-s*T_s},T_s = 1/fsw
Ts = 1.0 / fsw
delay_phase_deg = -180.0 * wcc * Ts / cmath.pi # 在截止频率处的相位滞后
# 实际相位裕度 = 90°(理论) + delay_phase_deg(负值)
phase_margin = 90.0 + delay_phase_deg
# 4. 电压约束检查:最大电流变化率是否超过母线电压限制
# 最大反电动势变化率约等于 wcc * Udc / (Ls * wcc) 的简化检查
# 实际约束:L_s * di/dt_max <= Udc,其中 di/dt_max 由带宽和额定电流决定
# 此处仅验证参数合理性,不做额定电流假设
return {
'Kp': Kp,
'Ti': Ti,
'Ki': Ki,
'wcc_Hz': wcc / (2 * cmath.pi),
'phase_margin_deg': phase_margin,
'stable': phase_margin > 45.0
}
# 示例:某款电机参数
Rs = 0.5 # Ohm
Ls = 0.001 # 1 mH
Udc = 48.0 # V
fsw = 20000.0 # 20 kHz
result = calc_current_pi(Rs, Ls, Udc, fsw)
print(f"Kp = {result['Kp']:.4f}")
print(f"Ti = {result['Ti']:.6f} s")
print(f"Ki = {result['Ki']:.4f}")
print(f"带宽 = {result['wcc_Hz']:.1f} Hz")
print(f"相位裕度 = {result['phase_margin_deg']:.2f}°")
print(f"稳定性判定: {'通过' if result['stable'] else '不通过'}")
运行与验证方法
- 环境要求:Python 3.8+,无需额外第三方库(仅使用标准库
cmath)。 - 执行方式:将上述代码保存为
current_pi_calc.py,在终端运行python current_pi_calc.py。 - 预期输出(基于给定示例参数):
Kp = 6.2832 Ti = 0.002000 s Ki = 3141.5927 带宽 = 1000.0 Hz 相位裕度 = 81.00° 稳定性判定: 通过 - 判定标准:当输出中“稳定性判定”为“通过”(相位裕度 > 45°)时,说明该组PI初值在给定采样频率下满足稳定裕度要求。若判定为“不通过”,需降低带宽系数(如从20改为30)或提高采样频率。
参数调整说明
若实际系统出现电流振荡,优先减小带宽系数(即降低 \(\omega_{cc}\));若动态响应过慢,可适当增大带宽系数,但需重新验证相位裕度。本方法仅提供初值,实际调试时还需结合电流环阶跃响应微调 \(K_p\) 和 \(K_i\)。