当前位置: 首页 > article >正文

针对永磁电机(PMM)的d轴和q轴电流,考虑交叉耦合补偿,设计P1控制器并推导出相应的传递函数

电流控制回路:针对永磁电机(PMM)的d轴和q轴电流,考虑交叉耦合补偿,设计P1控制器并推导出相应的传递函数。

1. 永磁电机(PMM)的数学模型

在同步旋转坐标系( d − q d - q dq 坐标系)下,永磁同步电机(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} udud_comp,输入为 i d ∗ − i d i_d^* - i_d idid 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} udud_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} uquq_comp,输入为 i q ∗ − i q i_q^* - i_q iqiq 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 轴电流控制回路的传递函数,并绘制它们的阶跃响应。你可以根据实际的电机参数调整代码中的参数值。


http://www.kler.cn/a/598060.html

相关文章:

  • 2025.3.17-2025.3.23学习周报
  • 银河麒麟桌面版包管理器(一)
  • vue3 UnwrapRef 与 unref的区别
  • 【从零开始学习计算机科学】软件工程(一)软件工程中的过程模型
  • 安装PrettyZoo操作指南
  • 计算机二级:函数基础题
  • 相控阵雷达的EIRP和G/T
  • 路由工程师大纲-1:路由+AI研究的知识体系与低成本论文方向
  • WPF-实现按钮的动态变化
  • 深度剖析HTTP协议—GET/PUT请求方法的使用-构造请求的方法
  • sv线程基础
  • React 开发环境搭建
  • python学习笔记--实现简单的爬虫(二)
  • JS数组扁平化(多维转一维)
  • OpenFOAM中snappyHexMesh工具如何支持Cut-Cell方法
  • Enhancing Zero-shot Text-to-Speech Synthesis with Human Feedback论文学习
  • k8s的核心组件整理
  • Pytorch实现之对称卷积神经网络结构实现超分辨率
  • Java IO 流:从字节到字符再到Java 装饰者模式(Decorator Pattern),解析与应用掌握数据流动的艺术
  • 【可靠性】高κ-SrTiO3 MoS2 FET的稳定性和可靠性