基于LADRC - 非线性ESO的永磁同步电机无感FOC探索
基于LADRC-非线性ESO的永磁同步电机无感FOC 电机参数采用袁磊老师书上的 1.采用非线性扩张状态观测器ESO实现中高速下无感FOC;对锁相环技术标幺化处理提取转子位置信息; 2.转速环采用线性自抗扰控制器LADRC(没有加入TD环节),和传统PI相比提高了无感控制下转速的动态响应性能;
在永磁同步电机(PMSM)的控制领域,无感FOC(无传感器磁场定向控制)技术一直是研究热点,旨在不依赖物理传感器获取电机转子位置和速度信息,从而降低成本、提高系统可靠性。本文将探讨基于线性自抗扰控制器(LADRC)与非线性扩张状态观测器(ESO)的PMSM无感FOC实现。
电机参数选用
本次研究选用袁磊老师书上的电机参数,这为我们的控制算法提供了一个标准的参考模型。不同的电机参数会对控制效果产生显著影响,选用权威书籍中的参数有助于保证实验的可重复性和结果的可靠性。
非线性扩张状态观测器ESO实现中高速无感FOC
在中高速运行时,实现无感FOC的关键之一是精准观测转子位置和速度。非线性ESO在此发挥重要作用。ESO的核心思想是将系统的未知动态和外部干扰“扩张”成新的状态变量,然后一起进行观测。
以下是一个简化的ESO代码示例(以Python为例,仅为示意):
import numpy as np class NonlinearESO: def __init__(self, b0, beta01, beta02, beta03, gamma1, gamma2, gamma3): self.b0 = b0 self.beta01 = beta01 self.beta02 = beta02 self.beta03 = beta03 self.gamma1 = gamma1 self.gamma2 = gamma2 self.gamma3 = gamma3 self.x1_hat = 0 self.x2_hat = 0 self.x3_hat = 0 def update(self, y, u): e = y - self.x1_hat self.x1_hat = self.x1_hat + 0.01 * (self.x2_hat - self.beta01 * self.fal(e, self.gamma1, 0.2)) self.x2_hat = self.x2_hat + 0.01 * (self.x3_hat - self.beta02 * self.fal(e, self.gamma2, 0.2) + self.b0 * u) self.x3_hat = self.x3_hat - 0.01 * self.beta03 * self.fal(e, self.gamma3, 0.2) return self.x1_hat, self.x2_hat, self.x3_hat @staticmethod def fal(e, alpha, delta): if abs(e) <= delta: return e / (delta ** (1 - alpha)) else: return np.sign(e) * abs(e) ** alpha代码分析
init函数初始化了ESO的参数,包括增益系数beta01,beta02,beta03以及非线性函数的参数gamma1,gamma2,gamma3。这些参数的调整对ESO的观测精度至关重要。update函数根据输入的系统输出y和控制输入u更新状态估计值。这里通过计算估计误差e,并基于非线性函数fal对状态进行迭代更新。fal函数是非线性ESO中的关键非线性环节,它根据误差e的大小采用不同的计算方式,使得ESO在不同误差范围内都能有较好的性能表现。
通过这种方式,ESO能够在中高速下较为准确地观测到转子的位置信息,为无感FOC提供支持。此外,对锁相环技术进行标幺化处理,进一步优化了转子位置信息的提取,提高了系统的稳定性和准确性。
转速环采用线性自抗扰控制器LADRC
转速环控制对于PMSM的动态性能起着决定性作用。传统的PI控制器在面对复杂工况和干扰时,动态响应性能可能受限。而本文采用的LADRC(未加入TD环节)在这方面展现出优势。
基于LADRC-非线性ESO的永磁同步电机无感FOC 电机参数采用袁磊老师书上的 1.采用非线性扩张状态观测器ESO实现中高速下无感FOC;对锁相环技术标幺化处理提取转子位置信息; 2.转速环采用线性自抗扰控制器LADRC(没有加入TD环节),和传统PI相比提高了无感控制下转速的动态响应性能;
LADRC的主要原理是将系统总扰动估计出来并进行补偿,从而实现对给定信号的快速跟踪。以下是一个简单的LADRC转速环控制代码示例(同样以Python为例):
class LADRC: def __init__(self, b0, beta1, beta2, kp, ki): self.b0 = b0 self.beta1 = beta1 self.beta2 = beta2 self.kp = kp self.ki = ki self.x1 = 0 self.x2 = 0 self.integral = 0 def control(self, r, y): e = r - y self.x1 = self.x1 + 0.01 * (self.x2 - self.beta1 * e) self.x2 = self.x2 - 0.01 * self.beta2 * e self.integral = self.integral + 0.01 * e u0 = self.kp * e + self.ki * self.integral u = (u0 - self.x2) / self.b0 return u代码分析
init函数初始化LADRC的参数,包括扰动补偿系数b0,状态反馈增益beta1,beta2以及比例积分系数kp,ki。这些参数的合理选取是LADRC性能的关键。control函数根据给定转速r和实际转速y计算控制量u。首先计算转速误差e,然后更新状态变量x1和x2,这两个状态变量用于估计系统总扰动。通过积分环节计算积分项,最终根据估计的扰动和期望控制量计算出实际控制输出u。
与传统PI相比,LADRC能够实时估计并补偿系统中的总扰动,使得在无感控制下,电机转速的动态响应性能得到显著提高,能够更快地跟踪给定转速,并且对负载变化等干扰具有更强的鲁棒性。
综上所述,基于LADRC - 非线性ESO的永磁同步电机无感FOC方案在提高电机控制性能方面展现出良好的潜力,为PMSM的无传感器控制提供了一种有效的途径。后续还可以进一步研究参数优化、不同工况下的性能提升等方面,以推动该技术的实际应用。
