1. 背景介绍

之前已经介绍过“无模型预测控制(Model-Free Predictive Control/MFPC)”中的“无模型预测电流控制(Model-Free Predictive Current Control/MFPCC)”,可参考下面知乎。

https://zhuanlan.zhihu.com/p/660705382https://zhuanlan.zhihu.com/p/660705382

但是后来也有说过,这个MFPCC,其实是利用扩张状态观测器(Extended State Observer/ESO)消除了磁链和电阻的影响。电感则是影响了MFPCC的增益,如果增益设置的不恰当,MFPCC依旧会性能不佳,甚至失去稳定。

今年在预测控制大会上听了汪老师的报告,其报告内容就属于下面这篇参考文献。

[1] F. Wang, Y. Wei, J. Rodriguez and C. Garcia, "State-of-Art, Development, and Challenges of Model-Free Predictive Control on Motor Drives," in IEEE Transactions on Power Electronics, vol. 40, no. 8, pp. 10846-10864, Aug. 2025, doi: 10.1109/TPEL.2025.3559514.

论文中有下面一张图,我觉得画的很形象。图中的MBPC为model-based predictive control,即“基于模型的预测控制”。图中的Data-driven就是“adj. 数据驱动的”,关于“数据驱动”,官方化的解释为:数据驱动的概念由全国科学技术名词审定委员会于2008年审定发布,其核心内涵是以数据为核心驱动力,通过数据采集、清洗、建模和分析提取价值信息,支撑高效决策与操作的技术范式。

我个人的拙见:“数据驱动”放在电机控制系统而言,相当于根据电机运行得到的电流(包括电流变化量)以及参考电压数据(包括电压变化量),并利用一些算法得到这些之间内在联系,进而拟合出一个“虚构的电机模型”,并根据这个“虚构的电机模型”对电机实行控制

根据汪老师的报告,我找到了其在24年发表的TIE,以这篇文献为基础来学习一下Data-driven Model in MFPC。

论文链接:https://ieeexplore.ieee.org/document/10505794

[2] Y. Wei, H. Young, D. Ke, F. Wang, H. Qi and J. Rodríguez, "Model-Free Predictive Control Using Sinusoidal Generalized Universal Model for PMSM Drives," in IEEE Transactions on Industrial Electronics, vol. 71, no. 11, pp. 13720-13731, Nov. 2024, doi: 10.1109/TIE.2024.3379667.

文章的摘要:“为了解决模型预测控制(MPC)中参数失配导致的鲁棒性较差的问题,无模型预测控制在电机驱动系统中得到了广泛的应用。该方法用数据驱动模型代替先验模型,消除了物理参数的影响。然而,旋转坐标系对模型精度的影响是多方面的,特别是位置信号不准确和控制器不对称会造成误差。本文提出了一种无模型预测控制策略,利用正弦广义通用模型直接控制正弦信号,并结合历史数据提高了模型精度,反映了被控对象的运动特性。该模型是根据被控对象的信号变化设计的,并使用递推最小二乘(RLS)算法在线估计系数以确保模型的精度。为了在连续控制集(CCS)控制器中实现控制,利用时移和拉格朗日算法设计了预测信号,并根据极点/零点位置和微分方程组分析了预测信号的基本性能和稳定性。将该控制策略作为预测电流控制策略应用于永磁同步电机(PMSM)驱动系统,给出了不同运行条件下的实验结果,验证了该方法的有效性和优越性。”

2. 算法的简单介绍

所提算法的控制框图如下。其采用双闭环控制,外环采用传统的PI控制,速度外环产生的参考电流经过坐标变换后得到阿尔法α,贝塔β电流的参考值。然后内环采用所提的基于“数据驱动”的无模型预测电流控制

其电流环的算法框图如下:

下面我们来详细看看相关公式。首先是式子(9)-(11)。

式子(9)的意思是,电机系统的k+1时刻的电压增量,可以通过往期的n+1组电流增量数据以及m+1组电压增量数据得到(在文中,这个nm2或者3即可)

那接下来的问题就是,这n+1组电流增量数据以及m+1组电压增量数据与k+1时刻的电压增量的关系,到底从何而来?这时候就需要看到式子(12)到式子(18)。

文中中是用“最小二乘法”去拟合n+1组电流增量数据以及m+1组电压增量数据与k+1时刻的电压增量的关系。当然你换别的方法也可以。

这里值得注意的一些问题是,k+1时刻的参考电流到底从何而来?文章说采用拉格朗日算法,但文章没给具体的公式。我是在汪老师的另一篇论文找到了相关公式。公式如下:

[3] F. Wang, Y. Wei, H. Young, D. Ke, D. Huang and J. Rodríguez, "Continuous-Control-Set Model-Free Predictive Control Using Time-Series Subspace for PMSM Drives," in IEEE Transactions on Industrial Electronics, vol. 71, no. 7, pp. 6656-6666, July 2024, doi: 10.1109/TIE.2023.3310017.

我自己在仿真中的话,是利用dq电流的参考电流,经过坐标变换得到k+1时刻的参考电流。

值得注意的是,论文中的(14)-(17)所写出的最小二乘法表达式略有所错误(个别字母/符号标错),需要自己重新推导且去了解其这样设计的含义。这点小差错不影响文章的思路。

该算法是在线运行的,并不是离线驱动。需要电机先跑起来一下,便可以切换到该基于“数据驱动”的无模型预测电流控制。

下面先进行仿真验证,在本文的第三节验证模型数据的数量选择的影响以及反馈系数的影响。第四节进行算法对比。

3.参数影响

仿真参数设置:

仿真工况设置:

0.4s前,电流环采用传统的电流环控制方式,电机给定转速为2000r/min,负载为8Nm;前0.4s相当于为数据驱动无模型预测电流控制提供必要的“数据”信息。0.4s之后切入数据驱动无模型预测电流控制,并且在0.6s处让电机减速1000r/min,在0.8s减载至5Nm,以验证电机的动态性能。

3.1 数据量选择的影响

文中说需要n+1组电流增量数据以及m+1组电压增量数据去计算k+1时刻的电压增量。文中说,n和m取2或者3即可。

在汪老师的另一篇文献中做了自适应的阶数选择,其实验结果也是在2、3之间波动。

[4] Y. Wei, H. Young, D. Ke, D. Huang, F. Wang and J. Rodríguez, "Adaptive Ultralocalized Time-Series for Improved Model-Free Predictive Current Control on PMSM Drives," in IEEE Transactions on Power Electronics, vol. 39, no. 5, pp. 5155-5165, May 2024, doi: 10.1109/TPEL.2024.3357854.

3.1.1 n = m = 2的仿真波形

n = m = 2,即采用3组电流增量数据以及3组电压增量数据去拟合k+1时刻的电压,仿真的整体波形如下。

下面是传统电流环和数据驱动无模型预测电流控制产生的阿尔法贝塔参考电压的对比。从下面的波形可以看到,两种算法产生的参考电压差不多,有一定偏差。两种算法产生的参考电压差不多说明二者性能也将差不多。

下面放大dq电流波形,可以看到,其实在0.4s切换到数据驱动无模型预测电流控制,是会出现更大的电流波动。但是考虑到该算法毕竟不需要任何的电机参数,其还是有明显的价值的。

3.1.2 n = m = 3的仿真波形

n = m = 3,即采用4组电流增量数据以及4组电压增量数据去拟合k+1时刻的电压,仿真的整体波形如下。

下面是传统电流环和数据驱动无模型预测电流控制产生的阿尔法贝塔参考电压的对比。从下面的波形可以看到,两种算法产生的参考电压基本一致,这说明:

1)对该仿真条件而言,相比于3组电流增量数据以及3组电压增量数据(n = m = 2),采用4组电流增量数据以及4组电压增量数据(n = m = 3)能够实现更好的拟合拟合效果。

2)该数据驱动无模型预测电流控制可以在不需要任何电机参数的条件下就可以实现与传统算法基本一致的性能

下面放大dq电流波形,可以看到,其实在0.4s切换到数据驱动无模型预测电流控制,是会出现更大的电流波动。但是考虑到该算法毕竟不需要任何的电机参数,其还是有明显的价值的。

3.2 反馈增益的影响

论文中的控制律涉及到一个反馈系数。

从图12的实验结果可以看到,当反馈系数在0.90到1之间时,总的来说,电流THD会随着反馈系数的提高而增加。

下面就进行了不同反馈系数的仿真对比,反馈系数分别取0.9和1.0。从下面仿真可以看到,反馈系数为0.9时的相电流THD(1.16%)确实会略低于反馈系数为1时的相电流THD(1.32%),这与实验的情况基本一致。

反馈系数为0.9的整体波形

反馈系数为1的整体波形

反馈系数为0.9的dq电流波形

反馈系数为1的dq电流波形

反馈系数为0.9的相电流FFT分析

反馈系数为1的相电流FFT分析

4. 仿真对比

下面进行三组仿真的对比:

1. 基于LESO的MFPCC(LESO的带宽取为4000,控制器中的电感参数设置为实际电感参数)

2. 基于数据驱动的MFPCC(n=m=3,反馈系数取0.9)

3. 基于LESO的MFPCC(LESO的带宽取为4000,控制器中的电感参数设置为实际电感参数的2倍,以模拟参数失配)

PS:对于基于数据驱动的MFPCC,在0.3s前,由基于LESOMFPCC驱动电机,以其数据作为基于数据驱动的MFPCC的支撑。0.3s后切入基于数据驱动的MFPCC

4.1 整体波形的对比

下面是整体波形的对比。从下面仿真可以得到以下结论。

(1)对于基于LESO的MFPCC,在控制器中的电感参数设置为实际电感参数时,其控制效果极佳;

(2)但当控制器中的电感参数设置为实际电感参数的2倍时,系统开始引入大量高频噪声;

(3)相对基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数),基于数据驱动的MFPCC的转矩脉动有所增加。

基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数)

基于数据驱动的MFPCC

基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数的2倍)

4.2 相电流FFT的对比

(1)基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数)的电流THD为0.55%;

(2)基于数据驱动的MFPCC的电流THD为1.13%

(3)基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数的2倍)的电流THD为4.19%。

基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数)

基于数据驱动的MFPCC

基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数的2倍)

4.3 变速条件下电流的跟踪情况

在0.6s的时候设置了电机减速,所以q轴电流的参考值会直接达到负的最大值(-20A)。从大体上来看,基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数)和基于数据驱动的MFPCC的电流跟踪情况非常接近。

基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数)

基于数据驱动的MFPCC

基于LESO的MFPCC(控制器中的电感参数设置为实际电感参数的2倍)

5.总结与思考

总结

本篇文章学习并复现了一篇基于数据驱动的MFPCC,该方法仅需要极短时间的数据即可构建出电机模型,并且以此模型进行闭环控制。该算法不需要任何电机参数即可实现较为优异的控制性能(THD略高于无参数失配条件下的LESO-MPFCC且动态性能基本一致),个人认为这样性能还是比较优异的。

思考

在电机控制领域,相关算法感觉才处于刚起步的阶段。这篇文章,我认为在个方面说的都比较详细了,其实仔细看文章内容并去思考,会发现还有许多可以完善的地方。

虽然在仿真中,这基于数据驱动的MFPCC略微弱于无参数失配条件下的LESO-MPFCC,但是如果换个角度去看,比如说遇到一个多相的、磁场较为复杂的电机,其数学模型是较为复杂。如果人为的去建模,很可能无法构建精确的模型,也就无法人为的设计出性能较为优异的控制算法。这时候的基于数据驱动的MFPCC是否会更好呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96798.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96798.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/96798.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C primer plus (第六版)第十一章 编程练习第5,6题

题目:5.设计并测试⼀个函数,搜索第1个函数形参指定的字符串,在其中查找第2个函数形参指定的字符⾸次出现的位置。如果成功,该函数返指向该字符的指针,如果在字符串中未找到指定字符,则返回空指针…

Altium Designer(AD)PCB丝印批量修改

目录 1 Altium Designer(AD)PCB丝印的字体批量修改 1.1选中所有丝印 1.1.1选中一个丝印:鼠标左键点击 1.1.2查找相似对象:鼠标右键或快捷键N 1.1.3如下图所示丝印被全部选中 1.2丝印字体信息修改 1.2.1打开属性面板——>位置/属性/字体修改 1.2.2丝印字体修改 1.2.…

AI+华为HarmonyOS开发工具DevEco Studio详细安装指南

作者:长江支流 日期:2025-09-13 第一部分:AI工具使用 一、如何使用DeepSeek帮助自己的工作? (一)提示词 为了与时俱进,充分利用最新技术、提高效率,采用AI生成部分材料&#xf…

【Ambari监控】— API请求逻辑梳理

附录:完整内容和源代码下载请参照 https://doc.janettr.com/ 一、前序章节回忆 我们在前面章节拆解了 Collector 的启动过程,并定位了控制器 TimelineWebServices。 本节聚焦 Collector 对外暴露的 REST 服务,搭建「接口全景图」。 二、接口…

论文阅读 2025-9-13 论文阅读随心记

随便记录一下最近阅读的几篇论文 1. Does DINOv3 Set a New Medical Vision Standard? 第一章 动机 (Motivation) 自然图像领域的成功范式:大型语言模型(LLMs)和视觉基础模型(如 DINO 系列)证明,通过自监督…

Avalonia 基础导航实现:从页面切换到响应式交互全指南

在 Avalonia 开发中,导航功能是构建多页面应用的核心需求。Avalonia 无需依赖第三方库,仅通过内置控件与 MVVM 模式即可实现灵活的页面切换。本文将以 “基础导航” 为核心,从 ViewModel 与 View 设计、导航逻辑实现,到样式美化与…

UniApp 分包异步化配置及组件引用解决方案

具体参考微信小程序文档基础能力 / 分包加载 / 分包异步化 一、分包页面组件配置 在 UniApp 的pages.json中,为分包页面(或主包如 tabbar 页面)配置异步组件时,需同时设置usingComponents和componentPlaceholder: {&…

系统核心解析:深入操作系统内部机制——进程管理与控制指南(一)【进程/PCB】

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨个人…

微论-神经网络特征空间的动态聚集,对抗灾难性遗忘的新范式

这是一个非常有趣且富有想象力的理论构想。受陀螺仪启发,我将陀螺仪的“定轴性”与“进动性”原理引入神经网络的特征空间,探讨一种对抗灾难性遗忘的新范式。---### **基于陀螺仪原理的神经网络记忆巩固理论探讨**#### **引言:记忆的流失与稳…

鸿蒙审核问题——折叠屏展开态切换时,输入框内容丢失

文章目录背景解决历程1、无意中发现了眉目2、确定问题原因3、解决办法4、官方文档5、总结背景 奇葩的事情年年有啊,今年特别多。这不今天又遇到了一个奇葩的问题。鸿蒙NextAPP上架AppGallery市场,审核拒了,说是折叠屏手机展开态切换时&#…

前后端分离架构中,Node.js的底层实现原理与线程池饥饿问题解析

在VueJava/.NET的前后端分离架构中,Node.js的底层实现原理与线程池饥饿问题解析 一、架构概述:Node.js的定位与角色 在现代Web开发中,Vue.js作为前端框架与Java/.NET后端结合的架构非常流行。在这种架构中,Node.js通常扮演着两个关…

Django ModelForm:快速构建数据库表单

Django 中的 forms.ModelForm —— 它是 Django 表单系统和 ORM 的一个“桥梁”,能帮助你快速基于 数据库模型(Model) 自动生成表单,极大减少重复代码。1. 什么是 ModelForm 普通 Form (forms.Form):完全手写字段&…

补 json的作用

:“我开车直接拧钥匙就能走,为什么还要看仪表盘和用中控台?”直接点击“运行”,就像是汽车的自动驾驶模式。它能帮你开起来,但你不知道它走的是哪条路,油门踩多深。使用 launch.json 配置,就像是…

apache详细讲解(apache介绍+apache配置实验+apache实现https网站)

1.apache HTTP server介绍httpd项目地址:https://httpd.apache.org/ 在Apache2中有三种工作模式,使用者可以根据不同的业务场景来进行选择(1)prefork模式prefork模式是一种老而稳的模式:一个主进程管理者多个子进程,每个子进程单独处理用户请求&#xf…

jajajajajajajava

线程1 线程概念进程:进程指正在内存中运行的程序。进程具有一定的独立性。线程:线程是进程中的一个执行单元。负责当前进程中程序的执行。一个进程中至少有一个线程。如果一个进程中有多个线程,称之为多线程程序。java中的线程采用的是抢占式调度,如果线…

虚拟机CentOS里JDK的安装与环境配置

---本文以JDK17为例---步骤 1:进入/tmp临时目录# 进入临时目录 cd /tmp步骤 2:下载 Java 17 安装包wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz步骤 3&am…

mybatis-plus多租户兼容多字段租户标识

默认租户插件处理器的缺陷 在springboot工程中引入mybatis-plus的租户插件TenantLineInnerInterceptor,能简化我们的数据隔离操作,例如各类含租户用户登录权限的rest接口中,不需要再根据登录用户-set租户条件-触发查询,租户插件能…

HBase高级特性(布隆过滤器和协处理器)、列族设计、rowkey设计以及热点问题处理

在阐述HBase高级特性和热点问题处理前,首先回顾一下HBase的特点:分布式、列存储、支持实时读写、存储的数据类型都是字节数组byte[],主要用来处理结构化和半结构化数据,底层数据存储基于hdfs。 同时,HBase和传统数据库…

redis sentinel 与 clauster 的区别

Redis Sentinel(哨兵)和Redis Cluster(集群)是Redis提供的两种不同的高可用和扩展性解决方案,它们的设计目标和适用场景有显著区别: 1. 核心功能与目标 Redis Sentinel 主要解决主从架构的高可用问题,实现自动故障转移 监控主从节点状态,当主节点故障时自动将从节点提…

MySQL数据库中快速导入大数据sql

1.PwerShell命令页面导入全表数据库 -P3310 指定数据库端口号Get-Content "本地sql文件目录" | .\mysql -u root -p -P 33102.PwerShell命令页面导入单表到数据库 -P3310 指定数据库端口号Get-Content "本地sql文件目录" | .\mysql -u root -p -P 3310 数…