基于模型预测控制的PMSM系统速度环控制理论推导及仿真搭建

news2024/11/13 15:08:58

模型预测控制(Model Predictive Control, MPC)是一种先进的控制策略,广泛应用于工业控制中。它可以看作是一种最优控制方法,利用对象的动态模型来预测其状态的未来行为,并根据每个采样时间点特定性能目标函数的优化来确定未来的控制动作。MPC方法具有鲁棒性、建模简单、处理多变量系统、显示约束、预测未来行为和优化性能的能力等优势。它的不足在于预测控制行为的计算需要繁琐的计算量,因为它需要在每个采样时刻求解优化问题,在线优化的耗时时间在一定程度上限制了MPC方法在高实时性工业级的应用。然而,随着计算机硬件和凸优化技术的进行,对于具有高实时性要求的快速变化动态系统,实现这些较复杂控制器已成为可能。而将MPC方法应用于PMSM伺服系统的一个重要原因是其线性模型可以通过解析方法和辨识技术获得。

基本概念

MPC的主要步骤包括:

  1. 模型预测:使用系统的数学模型预测未来的输出。
  2. 滚动优化:在每个控制周期内,求解一个优化问题,找到最佳的控制序列。
  3. 反馈修正:每个周期只实施第一个控制输入,然后重新测量系统状态并重复这个过程。

优化问题的形式

在每个控制周期,MPC通过解决如下优化问题来计算控制

\min _u\sum_{k=0}^{N-1}{\left( y\left( k \right) -r\left( k \right) \right) ^TQ\left( y\left( k \right) -r\left( k \right) \right) +u\left( k \right) ^TPu\left( k \right)}

  • u是系统输入
  • y是系统输出
  • r是参考轨迹(指令)
  • QP是权重矩阵,用于平衡系统性能和控制输入的大小
  • N是预测时域的长度

以PMSM系统为例讲解MPC在其速度环的应用

A 电机速度环一阶模型

这里我们考虑一个典型的伺服系统,以表贴式永磁同步电机为例:

\dot{\omega}_m=\frac{1}{J_m}\left( k_fi_q-B_m\omega _m-T_L \right)

  • \omega _m是电机的角速度,可以理解为系统的输出,\dot{\omega}_m是电机速度的一阶导数,即加速度
  • J_m是电机的转动惯量
  • k_f是电机的力矩系数
  • i_q是电机的q轴电流,可以理解为系统的输入
  • B_m为电机的粘滞摩擦系数
  • T_L为负载力矩

B 状态空间模型

首先,我们将方程转换为状态空间形式。定义状态变量x=\omega _m和输入u=i_q,则状态空间方程可以写成:

\dot{x}=\frac{k_f}{J_m}u-\frac{B_m}{J_m}x

离散化后(采样时间为T_s):

x\left[ k+1 \right] =A_dx\left[ k \right] +B_du\left[ k \right]

其中:A_d=1-\frac{B_mT_s}{J_m}B_d=\frac{k_fT_s}{J_m}

C 预测模型

构建预测模型,用于MPC控制,预测模型为:

\left\{ \begin{array}{l} x_{k+1}=A_dx_k+B_du_k\\ y_{k+1}=C_dx_{k+1}\\ \end{array} \right.

下一时刻预测输出,即第二步预测:

\left\{ \begin{array}{l} x_{k+2}=A_d^2x_k+A_dB_du_k+B_du_k\\ y_{k+2}=C_dx_{k+2}\\ \end{array} \right.

第三步预测:

\left\{ \begin{array}{l} x_{k+3}=A_d^3x_k+A_d^2B_du_k+A_dB_du_{k+1}+B_du_{k+2}\\ y_{k+3}=C_dx_{k+3}\\ \end{array} \right.

......

N_p步预测

\left\{ \begin{array}{l} x_{k+N_p}=A_d^{N_p}x_k+A_d^{N_p-1}B_du_k+\cdots +\sum_{i=0}^{N_p-N_c}{A_d^iB_du_{k+N_c-1}}\\ y_{k+N_p}=C_dx_{k+N_p}\\ \end{array} \right.

其中N_p是预测步长,N_c是控制步长

        定义预测输出序列Y、控制输入序列U如下:

Y=\varPhi x_k+\varGamma U

其中,\varPhi =\left[ \begin{matrix} C_dA_d& C_dA_d^2& \cdots& C_dA_d^{N_p}\\ \end{matrix} \right]\varGamma =\left[ \begin{matrix} C_dB_d& 0& \cdots& 0\\ C_dA_dB_d& C_dB_d& \cdots& 0\\ \vdots& \vdots& \vdots& \vdots\\ C_dA_d^{N_p-1}& C_dA_d^{N_p-2}B_d& \cdots& C_dB_d\\ \end{matrix} \right]

参考信号序列:

R=\left[ \begin{matrix} r_k& r_{k+1}& \cdots& r_{k+N_{p-1}}\\ \end{matrix} \right]

因此代价函数被设计如下:

J=\left( \varPhi x_k+\varGamma U-R \right) ^TQ\left( \varPhi x_k+\varGamma U-R \right) +U^TPU

简化后可以得到标准的二次型优化问题:

J=U^T\left( \varGamma ^TQ\varGamma +R \right) U+2\left( \varPhi x_k-R \right) ^TQ\varGamma U+\left( \varPhi x_k-R \right) ^TQ\left( \varPhi x_k-R \right)

为了最小化该二次型代价函数,我们需要解以下优化问题:

J_{\min}=\frac{1}{2}U^THU+F^TU

其中,H=\varGamma ^TQ\varGamma +R,F=\varGamma ^TQ\left( \varPhi x_k-R \right)

求解这个二次型优化问题,我们可以通过求解以下线性方程组来得到最优解:

HU=-F

因此,控制输入向量U的数学表达式为:

U=-H^{-1}F

最终得到最优的虚拟控制序列:

U^*=\left[ \begin{matrix} u^*_k& u^*_{k+1}& \cdots& u^*_{k+N_p-1}\\ \end{matrix} \right]

取第一个值作为系统的输入。

仿真搭建

电机参数设置

  • J_m------7.06e-4
  • B_m------3.5e-4
  • 极对数n_p------4
  • 力矩系数k_f------0.0064*4
  • 电感L------0.4e-3
  • 电阻R------0.72
  • 采样时间T_s------0.001
  • 预测步数N_p------7,控制步数N_c------5

仿真结果

为了方便迭代,速度控制器采用MATLAB Function模块编写。

响应速度为:0.024s且几乎无超调

在0.5s时刻加载,T_L=2.4

由上图可看出,MPC控制器的抗干扰性能强,

与PI控制器对比:

MPC的表现明显优于传统PI控制器,且无需漫长的参数试凑调参,就能达到一个比较好的控制效果。

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

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

相关文章

初见:AntDB智能运维“三剑客“之ACC

前情回顾 在前两个章节中,我们介绍了 AntDB 智能运维"三剑客"的 ADC 和 MTK。 初见:AntDB智能运维"三剑客"之ADC 初见:AntDB智能运维"三剑客"之MTK 本文将继续介绍 AntDB 数据库智能运维平台 ACC。 AntDB 介绍…

Open3D 删除点云中重叠的点(方法一)

目录 一、概述 二、代码实现 三、实现效果 3.1原始点云 3.2处理后的点云 3.3计算结果 一、概述 在点云处理中,重叠点(即重复点)可能会对数据分析和处理的结果产生负面影响。因此,删除重叠点是点云预处理中常见且重要的步骤。…

时序分析基本概念介绍——SI/crosstalk/delta delay/noise/timing Window

文章目录 前言一、Crosstalk1. Crosstalk Delay Effects2. Crosstalk Noise Effects 二、Crosstalk Analysis1. Crosstalk Delay Analysis2. Crosstalk Noise Analysis 三、如何 fix delta delay 和 noise violations1. 检查delta delay 和 noisedelta delay checknoise check …

EtherCAT转Profinet网关配置说明第三讲:博图配置

EtherCAT协议转Profinet协议网关模块(XD-ECPNS20)是实现EtherCAT协议和Profinet协议之间无缝通讯的重要设备。使EtherCAT协议和Profinet协议能够相互转换,进行工控自动化里的互连和传送数据。 EtherCAT作为一种高性能实时以太网通信协议&…

yum install epel-release 遇到的问题

问题: 安装epel的时候,执行 yum install -y epel-release 报错“Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.…

在VMware虚拟机的创建以及安装linux操作系统

一、创建虚拟机 1.双击打开下载好的VMware Workstation软件 2.点击“创建新的虚拟机” 3.根据个人选择需要创建的虚拟机,点击下一步 4.直接点击下一步 5.选择稍后安装操作系统,点击下一步 、 6.选择需要的操作系统,点击下一步 7.根据…

分享一些提升效率的办公、学习神器!

分享一些提升效率的办公、学习神器! 文章目录 分享一些提升效率的办公、学习神器! 一、 ✅ 文件搜索工具 Everything:1.1 Everything 主要功能:1.2 Everything 下载地址: 二、 ✅ 文件压缩解压工具 7 - Zip&#xff1a…

【TB作品】51单片机 Proteus仿真 00013红外proteus仿真循迹避障小车

实验报告:智能小车系统设计与实现 一、背景介绍 本实验旨在设计并实现一个基于STC89C52单片机控制的智能小车系统。该系统通过超声波传感器进行避障,通过红外接收器实现远程控制,同时具备循迹功能。整个系统的核心是单片机,它通…

MySQL之表的约束(1)

目录 空属性(NULL) 实例建表 插入操作 默认值(default) 建表 插入操作 NULL与default的结合 列描述 建表 zerofill 建表 插入操作 主键 建表 插入 主键的增加与去掉 去掉 增加 复合主键 插入的影响 真正约束字段的是数据类型,但是数据类型约束很单一&a…

阿里云 OSS - 开通到使用、服务端签名直传(前后端代码 + 效果演示)

目录 开始 OSS 相关术语须知 阿里云 OSS 开通 阿里云 OSS 使用 官方文档教程 实战开发 阿里云 OSS 自动配置 环境配置 实战开发 服务端签名直传 概述 代码实现 开始 OSS 相关术语须知 中文 英文 说明 存储空间 Bucket 存储空间是您用于存储对象(Ob…

Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测

Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测 目录 Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现Transformer-LSTM多变量时间序列预测,Transf…

IDEA发疯导致maven下载回来的jar不完整zip END header not found

IDEA发疯导致maven下载回来的jar不完整zip END header not found 具体报错 java: 读取D:\mavenRepository\com\alibaba\druid-spring-boot-starter\1.2.23\druid-spring-boot-starter-1.2.23.jar时出错; zip END header not foundjava: java.lang.RuntimeException: java.io.…

【Linux】进程间的通信----管道

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

暄桐教练日课·21天《线的初识》即将开始 一起感受线描的乐趣

林曦老师的直播课,是暄桐教室的必修课。而教练日课是丰富多彩的选修课,它会选出书法史/美术史上重要的、有营养的碑帖和画儿,与你一起,高效练习。而且暄桐教练日课远不止书法、国画,今后还会有更多有趣的课程陆续推出&…

【C++第十课 - stack_queue】stack、queue的使用、适配器模型stack、queue和priority_queue的底层实现、deque

目录 一、stack使用1、push2、pop3、empty4、top题目1、最小栈2、栈的压入、弹出序3、逆波兰表达式求值 二、queue的使用priority_queue习题 三、适配器stack的底层实现queue的底层实现priority_queue的底层实现仿函数/函数对象函数指针 四、deque 一、stack使用 stack是个容器…

深入探索Python库的奇妙世界:赋能编程的无限可能

在编程的浩瀚宇宙中,Python以其简洁的语法、强大的功能和广泛的应用领域,成为了众多开发者心中的璀璨明星。而Python之所以能够如此耀眼,很大程度上得益于其背后庞大的库生态系统。这些库,如同一块块精心雕琢的积木,让…

ffmpeg图片视频编辑器工具的安装与使用

title: ffmpeg图片视频编辑器工具的安装与使用 tags: [ffmpeg, 图片, 音频, 视频, 工具, 流媒体] categories: [工具, ffmpeg] FFmpeg是一个开源的命令行工具,广泛用于处理视频和音频文件,包括转换格式、剪辑、混流、解码、编码等。以下是一些基本的FFmp…

【全面讲解下iPhone新机官网验机流程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

nginx配置反向代理-CSDN

客户需求 1、实现通过域名访问税金的发票服务(路径格式要求:https://www.xxx.com) nginx的部署 前提 1、客户在局域网内已实现通过https://ip:port/stms访问税金平台 2、客户已获取https的SSL证书 3、客户申请的外网ip和域名已绑定 部署…

为什么要设计DTO类

为什么要使用DTO类,下面以新增员工接口为例来介绍。 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需求分析时,往往都是对照着产品原型进行分析,因为产品原型比较直观,便于我们理解业务。 后台系统中可以管理员工信息…