基于两种坐标系的超螺旋滑模观测器的永磁同步电机pmsm无位置(速度)传感器控制模型 支持 dq旋转坐标系和静止坐标系建立smo 引入二阶滑模超螺旋算法替代一阶滑模 dq坐标系引入锁相环PLL估计转速及转子位置 有效削弱抖振 赠送超螺旋滑模搭建推导文档及相关参考资料 仿真模型

永磁同步电机(PMSM)因其高效率、功率密度高和可靠性强,广泛应用于工业自动化、电动汽车和机器人等领域。然而,传统的PMSM控制通常依赖于位置和速度传感器,这些传感器不仅增加了系统的成本和复杂性,还可能在恶劣环境下出现故障。因此,无位置传感器控制技术成为研究热点。

本文介绍了一种基于两种坐标系的超螺旋滑模观测器的PMSM无位置传感器控制模型,旨在通过数学模型和控制算法实现高性能的无传感器控制。


1. 坐标系的选择与模型建立

PMSM的控制通常涉及两种坐标系:旋转的dq坐标系和静止的αβ坐标系。dq坐标系与电机的磁场和电流直接相关,适合用于矢量控制;而静止坐标系则通常用于传感器-less控制。

在本设计中,我们同时支持这两种坐标系,通过空间向量模块化观测器(SMO)来实现。空间向量模块化观测器是一种基于空间矢量的观测方法,能够有效估计电机的转速和位置信息。

dq坐标系下的空间向量模块化观测器

在dq坐标系下,PMSM的电机模型可以表示为:

\[

\begin{cases}

vd = Rs id + Ld \frac{did}{dt} - \omega Lq i_q \\

vq = Rs iq + Lq \frac{diq}{dt} + \omega (Ld id + \lambdap)

\end{cases}

\]

其中,\(vd, vq\) 是dq坐标系下的电压,\(id, iq\) 是电流,\(Rs\) 是-phase电阻,\(Ld, Lq\) 是d、q轴电感,\(\omega\) 是转子角速度,\(\lambdap\) 是永磁磁链。

在静止坐标系下,模型可以表示为:

\[

\begin{cases}

v\alpha = Rs i\alpha + L \frac{di\alpha}{dt} \\

v\beta = Rs i\beta + L \frac{di\beta}{dt}

\end{cases}

\]

基于两种坐标系的超螺旋滑模观测器的永磁同步电机pmsm无位置(速度)传感器控制模型 支持 dq旋转坐标系和静止坐标系建立smo 引入二阶滑模超螺旋算法替代一阶滑模 dq坐标系引入锁相环PLL估计转速及转子位置 有效削弱抖振 赠送超螺旋滑模搭建推导文档及相关参考资料 仿真模型

其中,\(v\alpha, v\beta\) 是静止坐标系下的电压,\(i\alpha, i\beta\) 是电流。

通过空间向量模块化观测器(SMO),我们可以在两种坐标系下实现对电机状态的估计。


2. 引入二阶滑模超螺旋算法

传统的滑模控制方法通常采用一阶滑模算法,但其在实际应用中可能会出现震荡和跟踪误差较大的问题。为了解决这些问题,我们引入了二阶滑模超螺旋算法。

二阶滑模超螺旋算法的核心思想是在传统滑模控制的基础上增加了一个积分项,从而实现更好的跟踪性能和更小的震荡幅度。具体来说,二阶滑模超螺旋算法的控制律可以表示为:

\[

u = kp e + ki \int e dt + k_a \frac{d e}{dt}

\]

其中,\(e\) 是误差,\(kp, ki, k_a\) 分别是一阶、二阶和超螺旋系数。

通过二阶滑模超螺旋算法,我们可以有效地抑制系统的震荡,并提高控制精度。

代码实现

以下是一个基于二阶滑模超螺旋算法的控制器实现的代码示例:

def second_order_super_twisting_controller(error, dt, kp, ki, ka):
    # 积分项
    integral = integral + ki * error * dt
    # 超螺旋项
    super_twisting = ka * np.sign(error)
    # 控制输出
    u = kp * error + integral + super_twisting
    return u

3. dq坐标系下的锁相环(PLL)估计转速和位置

在dq坐标系下,我们引入了锁相环(PLL)来估计转子位置和转速。PLL是一种基于相位锁定的控制器,能够有效地跟踪和估计转子位置。

位置和速度估计

转子位置的估计可以通过PLL的相位环实现,而转速可以通过相位环的输出导数获得。具体来说,转子位置θ可以表示为:

\[

\theta = \arctan\left(\frac{\lambdaq}{\lambdad}\right)

\]

其中,\(\lambdaq, \lambdad\) 是电机的磁链。

转速ω可以通过位置θ的导数获得:

\[

\omega = \frac{d\theta}{dt}

\]

代码实现

以下是一个简单的PLL实现的代码示例:

def pll_estimator(v_alpha, v_beta, dt):
    # 计算电压矢量的相位
    theta = np.arctan2(v_beta, v_alpha)
    # 位置估计
    theta_hat = theta
    # 速度估计
    omega_hat = (theta - theta_prev) / dt
    theta_prev = theta
    return theta_hat, omega_hat

4. 仿真模型与结果

为了验证所提出的控制模型的有效性,我们建立了一个完整的仿真模型。仿真模型包括电机模型、控制器、观测器和驱动系统。

仿真结果

仿真结果显示,基于二阶滑模超螺旋算法的控制系统能够有效地抑制系统的震荡,并实现高精度的位置和速度估计。此外,引入PLL的dq坐标系能够进一步提高系统的鲁棒性和控制精度。

代码实现

以下是一个简单的仿真模型的代码示例:

import numpy as np
from scipy.integrate import odeint

# 电机参数
Rs = 0.1  # 电阻
Ld = 0.001  # d轴电感
Lq = 0.001  # q轴电感
lambda_p = 0.1  # 永磁磁链

# 控制参数
kp = 10  # 一阶系数
ki = 5   # 二阶系数
ka = 2   # 超螺旋系数

# 仿真参数
dt = 0.001
t = np.arange(0, 1, dt)

# 电机模型
def motor_model(state, t, v_d, v_q):
    id, iq = state
    di_d = (v_d - Rs * id + omega * Lq * iq) / Ld
    di_q = (v_q - Rs * iq - omega * (Ld * id + lambda_p)) / Lq
    return [di_d, di_q]

# 控制器
def controller(error, dt):
    integral = integral + ki * error * dt
    super_twisting = ka * np.sign(error)
    u = kp * error + integral + super_twisting
    return u

# 仿真运行
state0 = [0, 0]
state = odeint(motor_model, state0, t, args=(v_d, v_q))

5. 总结

本文提出了一种基于两种坐标系的超螺旋滑模观测器的PMSM无位置传感器控制模型。通过引入二阶滑模超螺旋算法和PLL估计转速及转子位置,我们能够有效地削弱系统的抖振,提高控制精度。仿真结果表明,该方法具有良好的鲁棒性和控制性能。

此外,我们还提供了超螺旋滑模搭建的推导文档和相关参考资料,方便读者进一步研究和实践。

希望这篇文章对您有所帮助!如果有任何问题或需要进一步的资料,请随时联系我们。

Logo

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

更多推荐