表贴式永磁同步电机的基于MRAS模型自适应的在线电阻,磁链参数辨识模型。 辨识效果较好,仿真时间为10s(因为电机长时间运行对于电机电阻参数影响较大,长时间才能看出算法的有效性),电阻参数辨识误差在小数点后4位,磁链参数辨识误差在小数点后3位,效果较好。 纯手工搭建,可移植至无传感器控制策略中,如SMO和磁链观测器中,电阻,磁链的参数对于反电动势的估算有较大影响。

在电机控制领域,表贴式永磁同步电机(SPMSM)因其高效、高功率密度等优点被广泛应用。然而,准确获取电机的电阻和磁链参数对实现精确控制至关重要。今天就来聊聊基于MRAS(Model Reference Adaptive System)模型自适应的在线电阻、磁链参数辨识模型,这可是个有趣且实用的技术。

MRAS模型自适应的魅力

MRAS模型自适应方法就像是给电机参数辨识装上了一双“智能眼睛”。它通过构建参考模型和可调模型,利用两者输出的差异来调整可调模型的参数,从而实现对电机实际参数的逼近。

搭建我们的辨识模型

整个模型都是纯手工搭建的哦,这意味着它具有很强的灵活性和可移植性。为啥要强调纯手工搭建呢?因为这样我们可以更深入理解模型的每一个细节,并且方便后续将其移植到不同的无传感器控制策略中,像SMO(滑模观测器)和磁链观测器。

代码示例与分析

以下是一段简化的用于MRAS电阻参数辨识的Python代码示例(实际应用中可能需要根据具体硬件和电机模型进行调整):

import numpy as np
import matplotlib.pyplot as plt


# 定义电机参数
Rs = 1.5  # 实际定子电阻
Ld = 0.01  # d轴电感
Lq = 0.01  # q轴电感
psi_f = 0.15  # 永磁体磁链
p = 2  # 极对数
omega_r = 100  # 转子角速度


# 参考模型(这里简单假设为基于电机稳态方程的模型)
def reference_model(ia, ib, id, iq, omega):
    alpha = np.sqrt(2 / 3)
    beta = np.sqrt(1 / 3)
    e_alpha = -Rs * (alpha * ia + beta * ib) - Ld * omega * (alpha * ia + beta * ib)
    e_beta = -Rs * (alpha * ib - beta * (ia + ib)) + Lq * omega * (alpha * ib - beta * (ia + ib))
    return e_alpha, e_beta


# 可调模型(初始电阻设为估计值)
Rs_est = 1.0


def adjustable_model(ia, ib, id, iq, omega):
    alpha = np.sqrt(2 / 3)
    beta = np.sqrt(1 / 3)
    e_alpha_est = -Rs_est * (alpha * ia + beta * ib) - Ld * omega * (alpha * ia + beta * ib)
    e_beta_est = -Rs_est * (alpha * ib - beta * (ia + ib)) + Lq * omega * (alpha * ib - beta * (ia + ib))
    return e_alpha_est, e_beta_est


# 自适应律更新电阻估计值
def update_Rs(ia, ib, e_alpha, e_beta, e_alpha_est, e_beta_est, gamma):
    global Rs_est
    alpha = np.sqrt(2 / 3)
    beta = np.sqrt(1 / 3)
    s_alpha = e_alpha - e_alpha_est
    s_beta = e_beta - e_beta_est
    Rs_est = Rs_est + gamma * (s_alpha * (alpha * ia + beta * ib) + s_beta * (alpha * ib - beta * (ia + ib)))
    return Rs_est


# 仿真参数
T = 10  # 仿真时间10s
dt = 0.001  # 时间步长
time = np.arange(0, T, dt)
Rs_est_list = []

# 初始化电流值
ia = 1.0
ib = 1.0
id = 0.0
iq = 1.0

gamma = 0.01  # 自适应增益

for t in time:
    e_alpha, e_beta = reference_model(ia, ib, id, iq, omega_r)
    e_alpha_est, e_beta_est = adjustable_model(ia, ib, id, iq, omega_r)
    Rs_est = update_Rs(ia, ib, e_alpha, e_beta, e_alpha_est, e_beta_est, gamma)
    Rs_est_list.append(Rs_est)


# 绘图
plt.plot(time, Rs_est_list, label='Estimated Rs')
plt.axhline(y=Rs, color='r', linestyle='--', label='Actual Rs')
plt.xlabel('Time (s)')
plt.ylabel('Stator Resistance (ohm)')
plt.legend()
plt.show()

在这段代码里,我们首先定义了电机的一些基本参数,包括定子电阻 Rs、电感 LdLq 等。然后分别构建了参考模型 referencemodel 和可调模型 adjustablemodel。参考模型基于电机的稳态方程,用来计算实际的反电动势;可调模型则使用估计的电阻值 Rs_est 来计算估计的反电动势。

自适应律函数 update_Rs 是关键部分,它根据参考模型和可调模型输出的反电动势之差,按照一定的自适应增益 gamma 来更新电阻的估计值。最后通过仿真循环,记录下每个时间步的电阻估计值,并绘制出估计值与实际值的对比图。

辨识效果显著

经过10s的仿真(之所以选择10s,是因为电机长时间运行对于电机电阻参数影响较大,长时间才能看出算法的有效性),电阻参数辨识误差能控制在小数点后4位,磁链参数辨识误差在小数点后3位,这样的效果可以说是相当不错了。这表明我们精心搭建的基于MRAS模型自适应的参数辨识模型确实能够较为准确地获取电机的电阻和磁链参数。

表贴式永磁同步电机的基于MRAS模型自适应的在线电阻,磁链参数辨识模型。 辨识效果较好,仿真时间为10s(因为电机长时间运行对于电机电阻参数影响较大,长时间才能看出算法的有效性),电阻参数辨识误差在小数点后4位,磁链参数辨识误差在小数点后3位,效果较好。 纯手工搭建,可移植至无传感器控制策略中,如SMO和磁链观测器中,电阻,磁链的参数对于反电动势的估算有较大影响。

电阻和磁链参数对于反电动势的估算有着较大影响,而准确的反电动势估算又是无传感器控制策略中不可或缺的部分。所以这个辨识模型能够很好地移植到SMO和磁链观测器等无传感器控制策略中,为实现高性能的表贴式永磁同步电机控制打下坚实基础。

总之,基于MRAS模型自适应的在线电阻、磁链参数辨识模型为表贴式永磁同步电机的精确控制提供了有力手段,希望这篇博文能让大家对这个技术有更清晰的认识和理解。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐