永磁同步电机神经网络自抗扰控制:一场控制领域的奇妙之旅
永磁同步电机神经网络自抗扰控制,附带编程涉及到的公式文档,方便理解,模型顺利运行,效果好,位置电流双闭环采用二阶自抗扰控制,永磁同步电机三闭环控制,神经网络控制,自抗扰中状态扩张观测器与神经网络结合,在线自整定自抗扰中参数,(依据rbf神经网络pid控制还写)输入信号为方波信号,可以切换。 均可运行,图8中可以看到参数自动整定得效果!有搭建模型的公式文档,有参考的论文,约20篇,可以把控制器拿下来放在你的被控对象上,微调几个参数,效果很好

最近在捣鼓永磁同步电机(PMSM)的控制,玩出了点有意思的东西,迫不及待来和大家分享。这次采用的是神经网络自抗扰控制策略,实际运行效果那叫一个惊艳,模型不仅顺利跑起来了,性能表现杠杠的!
控制架构:三闭环与双闭环的融合
这里采用的是永磁同步电机三闭环控制,重点说说位置电流双闭环,它采用的是二阶自抗扰控制。为啥选二阶呢?简单来说,二阶自抗扰控制能够更精准地估计和补偿系统中的扰动,对于PMSM这种对控制精度要求极高的对象,二阶自抗扰就像是给它量身定制的“神器”。
二阶自抗扰控制代码片段
# 这里简单模拟一个二阶自抗扰控制器部分代码
class ESOKalman:
def __init__(self, beta01, beta02, beta1, beta2, b0, alpha0, alpha1, alpha2, h0):
self.beta01 = beta01
self.beta02 = beta02
self.beta1 = beta1
self.beta2 = beta2
self.b0 = b0
self.alpha0 = alpha0
self.alpha1 = alpha1
self.alpha2 = alpha2
self.h0 = h0
self.x1 = 0.0
self.x2 = 0.0
self.x3 = 0.0
def update(self, y, u):
e = y - self.x1
self.x1 = self.x1 + self.h0 * (self.x2 - self.beta01 * e)
self.x2 = self.x2 + self.h0 * (self.x3 - self.beta02 * fal(e, self.alpha1, self.h0) + self.b0 * u)
self.x3 = self.x3 - self.h0 * self.beta1 * fal(e, self.alpha2, self.h0)
return self.x1, self.x2, self.x3
上面这段代码简单构建了一个状态扩张观测器(ESO)的类,这是二阶自抗扰控制的核心部分。update 方法根据输入的系统输出 y 和控制输入 u 来更新状态变量 x1, x2, x3。e 代表观测误差,通过不断调整状态变量,使得观测器能够尽可能准确地跟踪系统的实际状态。
神经网络的巧妙融合
在自抗扰控制中,状态扩张观测器与神经网络结合,实现了在线自整定自抗扰中的参数。这里参考了RBF神经网络PID控制的思路。RBF神经网络以其良好的逼近能力和快速的收敛速度,在参数整定上发挥了重要作用。
RBF神经网络相关代码片段
import numpy as np
class RBFNetwork:
def __init__(self, input_size, hidden_size, output_size):
self.input_size = input_size
self.hidden_size = hidden_size
self.output_size = output_size
self.centers = np.random.rand(self.hidden_size, self.input_size)
self.sigmas = np.random.rand(self.hidden_size)
self.weights = np.random.rand(self.output_size, self.hidden_size)
def gaussian(self, x, c, s):
return np.exp(-np.linalg.norm(x - c) ** 2 / (2 * s ** 2))
def forward(self, x):
hidden_layer = np.array([self.gaussian(x, self.centers[i], self.sigmas[i]) for i in range(self.hidden_size)])
output_layer = np.dot(self.weights, hidden_layer)
return output_layer
上述代码构建了一个简单的RBF神经网络类。init 方法初始化了网络的结构参数,包括输入层、隐藏层和输出层的大小,以及随机初始化的中心、标准差和权重。gaussian 方法定义了高斯函数,这是RBF神经网络隐藏层节点的激活函数。forward 方法实现了前向传播,计算网络的输出。在实际应用中,我们可以通过训练这个RBF神经网络,让它根据系统的运行状态来调整自抗扰控制的参数。
输入信号与效果展示
输入信号设计为方波信号,并且可以切换。这种设计让我们可以灵活地测试系统在不同输入条件下的响应。从图8中,能直观地看到参数自动整定的效果,那变化趋势就像是被一双无形的手精心雕琢,控制器的参数随着系统状态的变化自动调整,始终保持着良好的控制性能。
公式文档与论文参考
为了搭建这个模型,背后可是有不少公式支撑的。我整理了一份公式文档,方便大家理解整个控制策略的理论基础。同时,在研究过程中参考了大约20篇相关论文,这些论文从理论推导到实际应用,全方位地为我的研究提供了思路。如果你对这个方向感兴趣,这些论文绝对是很好的学习资料。
通用性与拓展
这个控制器还有个超棒的地方,就是可以拿下来放在其他被控对象上,只要微调几个参数,往往就能取得不错的效果。这就像是给控制领域的小伙伴们打造了一把“万能钥匙”,虽然不能开所有的锁,但能适配相当多的“锁具”,大大提高了控制策略的通用性和复用性。

永磁同步电机神经网络自抗扰控制,附带编程涉及到的公式文档,方便理解,模型顺利运行,效果好,位置电流双闭环采用二阶自抗扰控制,永磁同步电机三闭环控制,神经网络控制,自抗扰中状态扩张观测器与神经网络结合,在线自整定自抗扰中参数,(依据rbf神经网络pid控制还写)输入信号为方波信号,可以切换。 均可运行,图8中可以看到参数自动整定得效果!有搭建模型的公式文档,有参考的论文,约20篇,可以把控制器拿下来放在你的被控对象上,微调几个参数,效果很好

总之,永磁同步电机神经网络自抗扰控制这个方向真的很有趣,还有很多值得深挖的地方,希望这篇博文能给同样在这个领域探索的朋友们一些启发。





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


所有评论(0)