针对永磁电机(PMM)的d轴和q轴电流,考虑交叉耦合补偿,设计P1控制器并推导出相应的传递函数
电流控制回路:针对永磁电机(PMM)的d轴和q轴电流,考虑交叉耦合补偿,设计P1控制器并推导出相应的传递函数。
1. 永磁电机(PMM)的数学模型
在同步旋转坐标系(
d
−
q
d - q
d−q 坐标系)下,永磁同步电机(PMSM)的电压方程为:
[
\begin{cases}
u_d = R_si_d + L_d\frac{di_d}{dt}-\omega_eL_qi_q \
u_q = R_si_q + L_q\frac{di_q}{dt}+\omega_eL_di_d+\omega_e\psi_f
\end{cases}
]
其中,
u
d
u_d
ud 和
u
q
u_q
uq 分别是
d
d
d 轴和
q
q
q 轴电压;
i
d
i_d
id 和
i
q
i_q
iq 分别是
d
d
d 轴和
q
q
q 轴电流;
R
s
R_s
Rs 是定子电阻;
L
d
L_d
Ld 和
L
q
L_q
Lq 分别是
d
d
d 轴和
q
q
q 轴电感;
ω
e
\omega_e
ωe 是电角速度;
ψ
f
\psi_f
ψf 是永磁体磁链。
2. 交叉耦合补偿
为了消除
d
d
d 轴和
q
q
q 轴之间的交叉耦合影响,我们引入补偿项。令:
[
\begin{cases}
u_{d_comp} = \omega_eL_qi_q \
u_{q_comp} = -\omega_eL_di_d-\omega_e\psi_f
\end{cases}
]
经过补偿后,电压方程变为:
[
\begin{cases}
u_d - u_{d_comp}= R_si_d + L_d\frac{di_d}{dt} \
u_q - u_{q_comp}= R_si_q + L_q\frac{di_q}{dt}
\end{cases}
]
3. PI 控制器设计
PI 控制器的一般形式为:
[
G_{PI}(s)=K_p+\frac{K_i}{s}=\frac{K_ps + K_i}{s}
]
其中,
K
p
K_p
Kp 是比例系数,
K
i
K_i
Ki 是积分系数。
对于
d
d
d 轴电流控制回路,控制器的输出为
u
d
−
u
d
_
c
o
m
p
u_d - u_{d\_comp}
ud−ud_comp,输入为
i
d
∗
−
i
d
i_d^* - i_d
id∗−id(
i
d
∗
i_d^*
id∗ 是
d
d
d 轴电流给定值)。则有:
[
u_d - u_{d_comp}=G_{PI}(s)(i_d^* - i_d)
]
将
u
d
−
u
d
_
c
o
m
p
=
R
s
i
d
+
L
d
d
i
d
d
t
u_d - u_{d\_comp}= R_si_d + L_d\frac{di_d}{dt}
ud−ud_comp=Rsid+Lddtdid 代入上式,在拉普拉斯域中可得:
[
(R_s + L_ds)I_d(s)=G_{PI}(s)(I_d^(s)-I_d(s))
]
整理可得
d
d
d 轴电流控制回路的传递函数:
[
\frac{I_d(s)}{I_d^(s)}=\frac{G_{PI}(s)}{R_s + L_ds+G_{PI}(s)}=\frac{K_ps + K_i}{L_ds^2+(R_s + K_p)s + K_i}
]
对于
q
q
q 轴电流控制回路,控制器的输出为
u
q
−
u
q
_
c
o
m
p
u_q - u_{q\_comp}
uq−uq_comp,输入为
i
q
∗
−
i
q
i_q^* - i_q
iq∗−iq(
i
q
∗
i_q^*
iq∗ 是
q
q
q 轴电流给定值)。同理可得:
[
(R_s + L_qs)I_q(s)=G_{PI}(s)(I_q^(s)-I_q(s))
]
整理可得
q
q
q 轴电流控制回路的传递函数:
[
\frac{I_q(s)}{I_q^(s)}=\frac{G_{PI}(s)}{R_s + L_qs+G_{PI}(s)}=\frac{K_ps + K_i}{L_qs^2+(R_s + K_p)s + K_i}
]
4. Python 代码示例(验证传递函数)
import control
import matplotlib.pyplot as plt
import numpy as np
# 电机参数
R_s = 1 # 定子电阻
L_d = 0.1 # d 轴电感
L_q = 0.1 # q 轴电感
K_p = 10 # 比例系数
K_i = 100 # 积分系数
# d 轴传递函数
num_d = [K_p, K_i]
den_d = [L_d, R_s + K_p, K_i]
sys_d = control.TransferFunction(num_d, den_d)
# q 轴传递函数
num_q = [K_p, K_i]
den_q = [L_q, R_s + K_p, K_i]
sys_q = control.TransferFunction(num_q, den_q)
# 绘制阶跃响应
t = np.linspace(0, 1, 1000)
t_d, y_d = control.step_response(sys_d, t)
t_q, y_q = control.step_response(sys_q, t)
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.plot(t_d, y_d)
plt.title('d 轴电流控制回路阶跃响应')
plt.xlabel('时间 (s)')
plt.ylabel('电流')
plt.subplot(1, 2, 2)
plt.plot(t_q, y_q)
plt.title('q 轴电流控制回路阶跃响应')
plt.xlabel('时间 (s)')
plt.ylabel('电流')
plt.tight_layout()
plt.show()
这个代码示例使用 Python 的 control
库来创建
d
d
d 轴和
q
q
q 轴电流控制回路的传递函数,并绘制它们的阶跃响应。你可以根据实际的电机参数调整代码中的参数值。