永磁同步电机模型预测控制——模型预测研究现状

永磁同步电机 (PMSM) 模型预测控制 (MPC) 研究现状

永磁同步电机 (PMSM) 控制系统是一个强耦合的非线性系统,传统的磁场定向控制 (FOC) 和直接转矩控制 (DTC) 在一些高性能特殊应用场合下难以满足控制需求。为了应对这些挑战,研究人员在 FOC 和 DTC 的基础上提出了多种先进控制策略,并应用于高性能 PMSM 驱动系统,例如:

  • 滑膜控制
  • 自抗扰控制
  • 自适应控制
  • 模糊控制
  • 模型预测控制 (Model Predictive Control, MPC)

⚙️

永磁同步电机控制策略

模型预测控制 (MPC) 概述

模型预测控制 (MPC) 是一种基于最优控制理论的先进控制技术。其核心思想是利用系统模型来预测控制变量的未来变化,并根据预先设定的最优准则选择最优的操作。

通过精心设计的最优准则,MPC 可以灵活控制多个重要参数,如电机转矩脉动、开关频率、功率损耗和最大输出电流等,从而实现多目标控制。

交流电机 MPC 的基本原理是,基于逆变器和电机的离散模型以及电机当前状态,预测电机未来时刻的状态。然后,通过预先设计的评价指标与预测值进行比较,选择最优的电压矢量作用于电机。

MPC 通过考虑未来状态来选择最优电压矢量,具有以下优点:

  • 动态响应快速
  • 在线优化能力强
  • 结构简单
  • 易于添加约束

然而,早期由于微处理器运算性能的限制,MPC 的发展受到阻碍。近 15 年,随着芯片制造业的飞速发展,MPC 逐渐成为研究热点。

MPC 的分类

根据控制目标的不同,MPC 可以细分为:

  1. 模型预测电流控制 (MPCC): 以电流为控制目标,构建电流代价函数来选择最优电压矢量。
  2. 模型预测转矩控制 (MPTC): 代价函数由转矩和磁链构成。由于两者量纲不同,需要设计合适的权重系数。目前,该权重系数的确定没有成熟的理论指导,通常需要通过大量实验总结经验,设计过程较为复杂。实际应用中,通常根据控制性能要求和实验条件选择合适的权重。

📊

基于不同控制目标的 MPC 分类

单矢量 MPC 的局限性

在 PMSM 驱动系统中,逆变器产生基本电压矢量作为电机的直接控制对象。传统的 MPC 通过枚举的方式,将每个基本电压矢量代入 PMSM 的预测模型,得到所需的预测变量(电流、转矩),计算代价函数以评估每个基本电压矢量的效果,并选择最优电压矢量施加于电机。

由于两电平逆变器所产生的基本电压矢量是有限的(2 个零矢量和 6 个非零矢量),每个控制周期只有一个基本电压矢量施加于电机,因此这种方法也被称为单矢量模型预测控制 (Single Vector MPC)。单矢量 MPC 在每个控制周期只应用最优基本电压矢量,导致所选最优电压矢量与期望参考电压之间存在跟踪误差,这会影响 PMSM 的稳态控制性能。

提高控制频率是改善稳态性能的有效方法,可以减小控制间隔,提高控制精度。然而,这种方法对数字处理器的性能要求较高,且不利于复杂控制算法的实现。

多矢量 MPC

为了克服单矢量 MPC 的局限性,研究人员提出多矢量 MPC 方案,增加每个控制周期内施加于电机的基本电压矢量数量。根据在一个控制周期内应用的矢量数量,多矢量 MPC 可以分为:

  1. 双矢量 MPC (DV-MPC): 每个控制周期向电机施加两个基本电压矢量,两个矢量的持续时间之和为整个控制周期的时间。相比于单矢量 MPC,DV-MPC 在电压矢量选择和作用时间分配上更灵活。通过选择最优的电压矢量组合,并计算它们各自的作用时间,可以得到更准确的输出电压矢量。该方法可以减小期望参考电压向量与输出电压向量之间的误差,减小电流和转矩脉动,提高系统的稳态性能。
  2. 三矢量 MPC: 使用两个有效矢量和一个零矢量合成最终的输出电压,能够准确跟踪调制范围内的参考电压,因此电流和转矩脉动明显小于单矢量 MPC 和双矢量 MPC,稳态性能最优。

🎛️

单步 MPC 与多步 MPC 的电压矢量应用对比

多步 MPC

电压矢量数量的增加虽然可以带来更优异的稳态性能,但也会不可避免地增加计算负担和逆变器的开关频率。多步模型预测能有效地解决稳态控制性能与开关频率之间的矛盾。

可以将 MPC 划分为单步 MPC(传统)和多步 MPC。多步 MPC 是在单步的基础上,通过迭代计算对系统状态进行多次预测。为了获取未来多个预测时刻内的全局最优解(即最优电压矢量),多步预测法能够提高系统稳态性能,降低开关频率。

然而,MPC 通过离散预测模型预测未来状态,此过程涉及复杂的数学计算。因此,多步预测的计算量较大,可能超出控制周期,影响系统控制性能。多步预测方法对硬件处理器的要求很高。

为了解决多步预测计算量大的问题,一些学者提出了解决方法:

  1. 将 MPC 优化转化为整数二次规划问题,结合球面译码算法,减少预测过程的计算量。
  2. 采用移动模块方法,将预测范围以不同的采样间隔分成两部分,从而限制计算成本的同时实现较长的预测范围。
  3. 采用分支定界法对切换序列进行筛选,可以将计算量减少一个数量级。

尽管多步预测具有优越的控制表现,但目前预测层数较多的多步预测方法难以在实际电机驱动中应用。

MPC 的挑战与未来展望

MPC 仍然面临诸多挑战:

  • 权重设计无明确理论指导
  • 计算量简化
  • 开关频率不固定

总而言之,交流电机 MPC 仍处于发展阶段,无论是在学术研究方面还是实际产品化方面,都有很长的路要走。

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

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

相关文章

Clisoft SOS设置Server和Project

Clisoft SOS设置Server和Project 一、关于SOS Servers、Clients、Projects和Work Areas 以下三个图是官方文档中介绍的三种情况 图1:带有两个客户端的SOS服务器 图2:使用本地缓存服务器 图3:远程设计团队的缓存服务器 因为SOS软件需要…

gaussdb中怎么查询一个表有多少GB

在 GaussDB 中,你可以通过多种方法查询一个表的大小,包括使用系统视图和内置函数。以下是几种常见的方法: 1. 使用 pg_total_relation_size 函数 pg_total_relation_size 函数返回一个表及其所有索引和 TOAST 数据的总大小。 示例查询 SE…

[python3]Excel解析库-calamine,10倍openpyxl性能

calamine 是一个用于读取多种电子表格格式(如 Excel、LibreOffice Calc 等)的 Python 库。它支持 .xls, .xlsx, .ods 和 .csv 文件格式,提供了简单易用的 API 来加载和处理电子表格数据。calamine 的一大特点是它的轻量级和高效性&#xff0c…

探索 Android Instant Apps:InstantAppInfo 的深入解析与架构设计

探索 Android Instant Apps:InstantAppInfo 的深入解析与架构设计 引言 随着移动应用的快速发展,用户对应用体验的要求越来越高。为了提升用户体验,Google 在 2016 年推出了 Android Instant Apps 这一概念。Instant Apps 允许用户在不安装…

调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序

当pytest框架中有时时候会因为用例的前后关联关系需要调整用例执行顺序时则可以跟进具体的要求调整pytest.ini配置文件中执行用例文件夹的前后顺序 当如果是需要调整某个文件夹中用例的执行顺序时,则跟进具体的文件调整对应testcases中test_*.py文件中的执行顺序

interval coverage

题意理解:给定一个区间,我们需要把这个区间覆盖掉。问最少需要的区间数目。当然我们会给定 n 个区间选择。假设全选都不能覆盖就输出 − 1 -1 −1 思路分析:我感觉应该是找区间的端点。假设区间的左端点是 s ,右端点是 t &#…

【Dify】Dify自定义模型设置 | 对接DMXAPI使用打折 Openai GPT 或 Claude3.5系列模型方法详解

一、Dify & DMXAPI 1、Dify DIFY(Do It For You)是一种自动化工具或服务,旨在帮助用户简化操作,减少繁琐的手动操作,提升工作效率。通过DIFY,用户能够快速完成任务、获取所需数据,并且可以…

C++编程基础之override关键字

在C中,override关键字用于显式地标识派生类中的成员函数是对基类中虚函数的重写,具有以下重要作用和使用说明: 作用 增强代码可读性:通过使用override关键字,能够清晰地向阅读代码的人表明该函数是有意重写基类中的虚…

Redis数据库笔记—— Hash(哈希)的扩容机制(rehash)

大家好,这里是Good Note,关注 公主号:Goodnote,专栏文章私信限时Free。详细介绍Hash(哈希)的扩容机制(rehash)、源码、以及扩容和缩容过程。 文章目录 Redis 字典(dict)结构源码哈希…

Python自学 - 封装与私有化

1 Python自学 - 封装与私有化 1.1 封装的概念 封装是指将数据和方法封装在一起,并且需要通过类的实例来访问,这样就可以确保合适的方法来处理合适的数据,并可以做到只给外界看到想给外界看到的接口,减少数据或方法被滥用的风险。…

网络安全常见的问题

1. 什么是 DDoS 攻击?如何防范? 答:DDoS 攻击是指利用大量的计算机或者其他网络设备,同时向目标网络或者服务器 发送 大量的数据流量,以致其无法正常工作,从而导致网络瘫痪或者服务器宕机的攻击行 为。 …

<rust>在rust中,实现32位浮点数与16进制之间的转换

前言 本文是基于rust,对16进制、32位浮点数之间的互相转换的一个简单示例。 环境配置 系统:windows 平台:visual studio code 语言:rust 库:hex 关键依赖 hex"0.4.3"对于字符串与16进制之间的互相转换&am…

pytest日志显示

在 pytest 中,可以通过 钩子函数 和 配置文件 pytest.ini 配置日志的显示方式,实现对日志的灵活控制。以下是常用实现方式及配置说明。 方式一:使用 conftest.py 钩子函数自定义日志显示 通过 conftest.py 文件中的钩子函数,实现…

支持向量机算法(一):像讲故事一样讲明白它的原理及实现奥秘

1、支持向量机算法介绍 支持向量机(Support Vector Machine,SVM)是一种基于统计学习理论的模式识别方法, 属于有监督学习模型,主要用于解决数据分类问题。SVM将每个样本数据表示为空间中的点,使不同类别的…

ES中的仓库和快照

文章目录 简介仓库(Repository)快照(Snapshot)常用命令记录 简介 在Elasticsearch(简称ES)中,仓库(repository)和快照(snapshot)是两种重要的备份…

数据结构与算法之二叉树: LeetCode 108. 将有序数组转换为二叉搜索树 (Ts版)

将有序数组转换为二叉搜索树 https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ 描述 给你一个整数数组 nums ,其中元素已经按 升序 排列请你将其转换为一棵 平衡 二叉搜索树 示例 1 输入:nums [-10,-3,0,5,9…

Neo4j的部署和操作

注:本博文展示部署哥操作步骤和命令,具体报告及运行截图可通过上方免费资源绑定下载 一.数据库的部署与配置 在单个节点上对进行数据库的单机部署 (1)上传neo4j-community-3.5.30-unix.tar.gz到hadoop1的/export/so…

人工智能 前馈神经网络练习题

为了构建一个有两个输入( X 1 X_1 X1​、 X 2 X_2 X2​)和一个输出的单层感知器,并进行分类,我们需要计算权值 w 1 w_1 w1​和 w 2 w_2 w2​的更新过程。以下是详细的步骤和计算过程: 初始化参数 初始权值&#xff1a…

【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率

🍬引言 🍬什么是低代码平台? 低代码平台(Low-Code Platform)是一种使开发人员和业务用户可以通过图形化界面和少量的编程来创建应用程序的开发工具。与传统的编程方式相比,低代码平台大大简化了开发过程&a…

opencv CV_TM_SQDIFF未定义标识符

opencv CV_TM_SQDIFF未定义标识符 opencv4部分命名发生变换,将CV_WINDOW_AUTOSIZE改为WINDOW_AUTOSIZE;CV_TM_SQDIFF_NORMED改为TM_SQDIFF_NORMED。