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

基于SOGI - PLL的永磁同步电机无感FOC探索

基于SOGI-PLL的永磁同步电机无感FOC 1.采用SOGI代替传统滑模观测器smo中的低通滤波器,有效减小转速波动; 2.提供算法对应的参考文献和仿真模型

在永磁同步电机(PMSM)的控制领域,无感矢量控制(FOC)一直是研究热点。传统的FOC中,滑模观测器(SMO)常被用于估计电机的转速和位置,但其中低通滤波器存在一些问题,会导致转速波动。今天咱们就来聊聊采用二阶广义积分器锁相环(SOGI - PLL)代替传统SMO中的低通滤波器,如何有效减小转速波动。

传统SMO中的困境

传统的滑模观测器通过构建滑模面,利用滑模控制的特性对电机的反电动势进行观测,进而估计转速和位置。然而,低通滤波器在滤除高频抖振的同时,不可避免地引入了相位延迟,这就使得转速估计不准确,从而导致转速波动。比如下面这段简单示意的传统SMO低通滤波部分代码(以Python为例):

import numpy as np # 假设这里是获取到的含抖振的信号 signal_with_chatter = np.random.randn(1000) cutoff_frequency = 10 # 截止频率 dt = 0.001 # 采样时间间隔 # 低通滤波器系数计算 alpha = 2 * np.pi * cutoff_frequency * dt y = np.zeros(len(signal_with_chatter)) y[0] = signal_with_chatter[0] for i in range(1, len(signal_with_chatter)): y[i] = alpha * signal_with_chatter[i] + (1 - alpha) * y[i - 1]

这里简单实现了一个一阶低通滤波器,从代码能看到,通过不断迭代更新输出值y,达到滤波目的。但这个过程中,由于截止频率等参数设置以及滤波器本身特性,相位延迟问题就逐渐凸显出来。

SOGI - PLL闪亮登场

SOGI - PLL是一种高性能的频率和相位估计方法。它能够精确地提取信号的正序和负序分量,并且在宽频范围内具有良好的动态性能和稳态精度。将其应用到PMSM的无感FOC中代替低通滤波器,能有效改善转速波动问题。

SOGI - PLL 核心代码及分析

下面咱们看看简单的SOGI - PLL代码实现(同样以Python为例):

import numpy as np import matplotlib.pyplot as plt def sogi_pll(input_signal, omega0, kp, ki): # 初始化参数 epsilon = 1e-6 omega = omega0 theta = 0 x1 = input_signal[0] x2 = 0 y1 = 0 y2 = 0 integral = 0 output = np.zeros(len(input_signal)) for n in range(len(input_signal)): # SOGI 部分 x1_dot = -omega0 * x2 + input_signal[n] x2_dot = omega0 * x1 x1 = x1 + x1_dot * dt x2 = x2 + x2_dot * dt y1 = x1 y2 = x2 # PLL 部分 error = y2 integral = integral + error * dt omega = omega0 + kp * error + ki * integral # 更新相位 theta = theta + omega * dt output[n] = y1 * np.cos(theta) + y2 * np.sin(theta) return output # 生成测试信号 dt = 0.001 t = np.arange(0, 1, dt) input_signal = np.sin(2 * np.pi * 50 * t) + 0.5 * np.sin(2 * np.pi * 150 * t) omega0 = 2 * np.pi * 50 # 额定角频率 kp = 0.1 ki = 0.01 filtered_signal = sogi_pll(input_signal, omega0, kp, ki) plt.plot(t, input_signal, label='Input Signal') plt.plot(t, filtered_signal, label='Filtered Signal') plt.xlabel('Time (s)') plt.ylabel('Amplitude') plt.legend() plt.show()

在这段代码中,首先定义了sogipll函数,参数包括输入信号inputsignal、额定角频率omega0、比例系数kp和积分系数ki。函数内部先初始化了一系列变量,接着在循环中,先是实现了SOGI部分,通过不断更新x1x2来获取滤波后的信号y1y2。然后是PLL部分,根据y2计算误差,通过积分和比例环节调整角频率omega,最后更新相位theta并得到最终输出output。从这个代码能看到,SOGI - PLL通过独特的结构和参数调整,能更好地适应信号变化,减少相位延迟等问题。

参考文献与仿真模型

参考文献

  • [文献名称1]:详细阐述了SOGI - PLL的原理、结构以及在电机控制中的应用,对理解其基本理论有很大帮助。
  • [文献名称2]:从实际应用角度出发,对比了多种改进方法在永磁同步电机无感FOC中的性能,其中对SOGI - PLL的效果分析尤为详细。

仿真模型

对于基于SOGI - PLL的永磁同步电机无感FOC仿真,可以使用MATLAB/Simulink来搭建模型。在Simulink中,可以利用电气系统库中的永磁同步电机模块,结合自行搭建的SOGI - PLL模块和FOC控制算法模块来构建完整的仿真系统。在搭建SOGI - PLL模块时,可以参考上述代码逻辑,通过设置合适的参数,如额定角频率、比例和积分系数等,来实现其功能。通过仿真,可以直观地观察到采用SOGI - PLL代替传统低通滤波器后,电机转速波动明显减小,验证这一改进方法的有效性。

总之,基于SOGI - PLL的永磁同步电机无感FOC为解决传统SMO中低通滤波器带来的转速波动问题提供了一个很棒的思路,感兴趣的小伙伴可以深入研究和实践。

http://www.jsqmd.com/news/178326/

相关文章:

  • 麻雀算法及其改进在机械臂轨迹规划中的应用探索
  • django基于hadoop的零食大礼包商城销售大数据分析及可视化系统 echart_86990-爬虫可视化
  • 23 电平 MMC 逆变器并网仿真(PI 控制)那些事儿
  • 12-电-热综合能源系统耦合优化调度-100% 摘要:代码做了一个IEEE39节点和6节点热网...
  • django基于Python的电商用户的数据行为分析与可视化 爬虫
  • Ubuntu数字键盘失灵问题解决
  • 光伏MPPT仿真:直接电压法(恒定电压法)与PID控制的奇妙结合
  • django基于DJANGO的智慧社区停车场车位可视化平台的设计与实现_8nyri-爬虫可视化
  • 探索区域综合能源系统(RIES)优化:从模型到Matlab实现
  • AHK调试报错: An internal error has occurred in the debugger engine解决方法
  • 【毕业设计】基于机器学习的蘑菇毒性预测分析及应用实现
  • 【数字信号去噪】基于matlab鳄鱼伏击算法优化变分模态分解CAOA-VMD数字信号去噪(优化K值 alpha值 综合指标 适应度函数包络熵)【含Matlab源码 14792期】
  • 深度学习毕设项目推荐-基于随机森林的贷款可能性预测系统实现
  • FDTD案例:探索二维光子晶体结构中的完整拓扑状态集激射
  • 【数字信号去噪】基于matlab改进的蜣螂算法优化变分模态分解IDBO-VMD数字信号去噪(优化K值 alpha值 综合指标 适应度函数包络熵)【含Matlab源码 14808期】
  • TypeScript开发基础(14)——面向对象之接口
  • 欧姆龙NJ控制程序:功能宝藏与编程思路的跨平台应用
  • 清理系统Python环境中误操作安装的pip包(有风险)
  • Python 自动驾驶图像识别,车道线/交通标志/车辆检测全流程
  • 可商用的 Logo 生成 AI 软件推荐|真实对比 + 商用案例实操
  • 2025学到/加深记忆的一些比较浅的东西整理
  • AccessEnum 学习笔记(9.10):一键盘点“谁能访问什么”——文件/注册表权限体检与修复 - 教程
  • 探索十字型声子晶体案例:从原理到代码实现
  • 深度学习计算机毕设之基于机器学习的蘑菇毒性预测分析及应用实现
  • RabbitMQ消息序列化在大数据场景下的选择
  • MATLAB3的RPS并联机器人动力学仿真与运动学仿真控制:Simulink/Simscape的应用
  • 永磁同步电机转速环ADRC控制策略仿真研究:自抗扰控制技术的实践探索
  • ubuntu调整系统字体最简单的方法
  • 我的名字“智算菩萨”:一位信息时代的践行者与信仰者的双重叙事
  • 三相PWM逆变器闭环仿真:电压电流双闭环控制探索