电机控制杂谈——增量式的预测电流控制的优势在哪?

1.前言

前几天看到这么个问题。“模型预测控制如何消除静态误差”

评论说用增量式的预测控制。

这个回答让我想起来我大四下看的这篇论文。现在都一百多被引用了。

但是苦于当时能力有限,没办法复现这个文章。

所以现在想重新验证一下。

2.静态误差和电机磁链有什么关系?

https://zhuanlan.zhihu.com/p/680117350icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/680117350

在我这篇文章里面,已经展示了电感和磁链失配对预测控制的影响。因为电阻失配影响较小,一般都不考虑。

电感失配会给电机带来许多高频谐波噪声。

磁链失配会给电机电机带来稳态误差。

简单的解释就见我上面的文章内容中。需要详细的解释就去搜东南大学樊英老师相关的IEEE论文,上面有非常充足的解释。

增量式预测控制可以消除稳态误差,也就是消除电机中的磁链参数的影响。

3.增量式无差拍预测电流控制的仿真搭建

下面这是传统预测控制的计算公式。

将上式都写成增量形式:

从式子(5)中可以看到,与磁链有关的这一项,在一个控制周期里面,就是0了。

论文中还画图表明了在增量模型中,与磁链参数有关的这一项,基本就是0。

最终的增量模型表达式如下:

 

根据上面增量模型的公式,我搭建了增量式的无差拍预测电流控制/DPCC的仿真。

下面是增量式的无差拍预测电流控制和传统的无差拍预测电流控制在“一拍延时补偿模块、参考电压生成模块”的对比。

注意看红圈的地方,增量式的DPCC不需要输入磁链参数,只需要输入电阻参数Rs1和电感参数Ls1。

增量DPCC
传统DPCC

 

搭建增量式的预测控制仿真不是一件容易的事:

1.因为你需要两个相邻周期的变量相减,得到增量表达式,这样一来,增量式的预测控制涉及的变量其实是要比传统预测控制多一些的。

2.控制算法涉及的变量增多,一定需要搞清楚哪个是预测量,哪个是实际量。

3.在增量模型中,得到的参考输出值也是增量形式。增量形式的输出参考电压不能直接传递给SVPWM模块。

4.需要对预测控制的时序有一个清晰的认识。所以我不建议新手一上来就想着自己搭出增量预测控制模型,而是应该先从传统的预测模型入手。

 

 


4.增量式DPCC与传统DPCC的仿真对比

4.1仿真参数

Ts = 5e-7;%仿真步长

Tpwm = 1e-4;%开关周期

Tsample = Tpwm/1;%采样周期/控制周期

Tspeed = Tsample;%转速采样周期

Pn = 4;%电机极对数

Ls = 8.5e-3;%定子电感,采用隐极的,Ld=Lq=Ls

Rs = 1;%定子电阻

flux = 0.1688;%永磁体磁链

Vdc = 400;%直流母线电压

iqmax = 20;%额定电流

J = 4e-3;%转动惯量

B = 2e-3;%阻尼系数

n_init = 1000;%初始转速

fc_lpf = 200;%转速计算的低通滤波器截止频率

%转速环PI参数

Kpw = 0.25;

Kiw = 50;

%这是DSP内部的控制器参数

Ls1 = 1*Ls;%电感参数设置为实际电感

Ld1 = Ls1;

Lq1 = Ls1;

Rs1 = Rs;%电阻参数设置为实际电阻

4.2主要波形对比

参与对比的有三种情况:

1.增量式DPCC

2.传统的DPCC(控制器磁链数值为额定值)

3.传统的DPCC(控制器磁链数值为额定值的两倍)

 

增量式DPCC的三相电流、转矩、转速波形
传统的DPCC(控制器磁链数值为额定值)的三相电流、转矩、转速波形

 

传统的DPCC(控制器磁链数值为额定值的两倍)的三相电流、转矩、转速波形
增量式DPCC的dq电流波形
传统的DPCC(控制器磁链数值为额定值)的dq电流波形
传统的DPCC(控制器磁链数值为额定值的两倍)的三相电流、转矩、转速波形
增量式DPCC的A相电流FFT分析

 

 

传统的DPCC(控制器磁链数值为额定值)的A相电流FFT分析

 

 

5.总结

从上面的仿真结果来看:

1)增量DPCC在不需要磁链参数的情况下,基本上可以实现与传统DPCC(控制器磁链数值为额定值)一样的控制性能。但是增量DPCC的d轴电流脉动好像略大一点点,大概大了0.1A不到,增量DPCC的相电流FFT高了0.2%(这都还好,差距非常非常小,可以忽略)。

2)从传统DPCC(控制器磁链数值为额定值)的dq电流来看,在变速过程中,传统DPCC会出现id不等于0的情况。但是这一问题在增量DPCC的dq电流中没有出现

3)传统DPCC(控制器磁链数值为额定值的2倍)时,q轴电流的预测值和实际值发生较大的偏差,而且在整个控制过程中,虽然d轴电流的预测值和实际值没有发生偏差,但是出现id不等于0的情况。


解释一下第三点。

传统DPCC(控制器磁链数值为额定值的2倍)时,由于磁链存在于q轴电压方程,所以导致q轴电流的预测值和实际值发生较大的偏差,而d轴电流的预测值和实际值没有发生偏差。

但是在生成参考电压的时候,d轴电压方程中涉及到q轴电流的预测值,又由于q轴预测电流已经存在误差了,这就导致系统生成的d轴参考电压不准确。

所以就出现了d轴电流的预测值和实际值没有发生偏差,但是又不能实现id=0控制的情况。


从仿真结果来看,增量模型确实可以消除预测控制的稳态误差,且可以不需要电机磁链参数,但是增量模型的计算过程也相对更复杂一点。我个人认为增量预测控制还是很有用的。

 

 

 

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

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

相关文章

36.哀家要长脑子了!--高精度的+-*/

1.791. 高精度加法 - AcWing题库 思路&#xff1a;把大数的每一位数当作数组的元素存入到数组中。倒序存储也是说&#xff0c;个位放在下标为0 的位置&#xff0c;然后每一位两两操作&#xff0c;做好进位的工作。 // C A B vector<int> add(vector<int>…

Spring Boot手写starter

目录 1.介绍1.1 什么是 Starter 机制&#xff1f;1.2 Starter 机制的工作原理&#xff1f; 2.starter自定义2.1 新建工程2.2 自定义注解2.3 创建增强类2.4 创建自动配置类2.5 配置自动配置2.6 测试 1.介绍 1.1 什么是 Starter 机制&#xff1f; Starter 机制是 Spring Boot 提…

BulingBuling - 作息安排 [Reset Your Routine] - 1

The Blinkist Team: [ Reset Your Routine ] 如果你发现自己很难按部就班&#xff0c;或者陷入工作效率低的困境&#xff0c;那么你可能需要重新调整一下作息时间&#xff01;从睡眠和营养&#xff0c;到待办事项和井井有条--本指南为你提供了各种技巧和策略&#xff0c;让你的…

自然之美无需雕琢

《自然之美&#xff0c;无需雕琢 ”》在这个颜值至上的时代&#xff0c;但在温馨氛围中&#xff0c;单依纯以一种意想不到的方式&#xff0c;为我们诠释了自然之美的真谛。而医生的回答&#xff0c;如同一股清流耳目一新。“我说医生你看我这张脸&#xff0c;有没有哪里要动的。…

【数据结构(邓俊辉)学习笔记】高级搜索树01——伸展树

文章目录 1. 逐层伸展1. 1 宽松平衡1. 2 局部性1. 3 自适应调整1. 4 逐层伸展1. 5 实例1. 6 一步一步往上爬1. 7 最坏情况 2. 双层伸展2.1 双层伸展2.2 子孙异侧2.3 子孙同侧2.4 点睛之笔2.5 折叠效果2.6 分摊性能2.7 最后一步 3 算法实现3.1 功能接口3.2 伸展算法3.3 四种情况…

linux下的网络编程

网络编程 1. 网络基础编程知识1.1网络字节序问题1.2 常用socket编程接口1.2.1 sockaddr1.2.2 ip地址转换函数1.2.4 socket()1.2.3 bind()1.2.4 listen()1.2.5 accept()1.2.6 connect() 1.3 以udp为基础的客户端连接服务器的demo1.4 以udp为基础的的服务器聊天室功能demo1.5 基于…

Spark SQL----内置函数Conversion Functions Conditional Functions

Spark SQL----内置函数Conversion Functions& Conditional Functions Conversion Functions 例子&#xff1a; -- cast SELECT cast(10 as int); --------------- |CAST(10 AS INT)| --------------- | 10| ---------------Conditional Functions 例子&#x…

Apispec,一个用于生成 OpenAPI(Swagger)规范的 Python 库

目录 01什么是 Apispec&#xff1f; 为什么选择 Apispec&#xff1f; 安装与配置 02Apispec 的基本用法 生成简单的 API 文档 1、创建 Apispec 实例 2、定义 API 路由和视图 3、添加路径到 Apispec 集成 Flask 和 Apispec 1、安装…

Spring Boot与Jenkins的集成

Spring Boot与Jenkins的集成 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 一、引言 Jenkins作为一个开源的持续集成&#xff08;CI&#xff09;和持续交付…

计算机行业现状分析与发展前景

一、行业竞争现状 技术创新不断涌现&#xff1a;计算机行业在技术创新方面取得了长足的进步&#xff0c;如云计算、大数据、人工智能、物联网等前沿技术不断涌现&#xff0c;这些技术不仅推动了行业的快速发展&#xff0c;也为传统产业的转型升级提供了有力支撑。 行业竞争日益…

Linux开发:进程间通过Unix Domain Socket传递数据

进程间传递数据的方式有很多种,Linux还提供一种特殊的Socket用于在多进程间传递数据,就是Unix Domain Socket(UDS)。 虽然通过普通的Socket也能做到在多进程间传递数据,不过这样需要通过协议栈层的打包与拆包,未免有些浪费效率,通过UDS,数据仅仅通过一个特殊的sock文件…

熔断降级处理

什么是熔断降级 微服务雪崩效应 当微服务运行不正常&#xff0c;会导致无法正常调用微服务&#xff0c;此时会出现异常&#xff0c;如果这种异常不去处理&#xff0c;可能会导致雪崩效应 微服务的雪崩效应表现在服务与服务之间调用&#xff0c;当其中一个服务无法提供服务时…

FreeU: Free Lunch in Diffusion U-Net——【代码复现】

这篇文章发表于CVPR 2024&#xff0c;官网地址&#xff1a;ChenyangSi/FreeU: FreeU: Free Lunch in Diffusion U-Net (CVPR2024 Oral) (github.com) 一、环境准备 提前准备好python、pytorch环境 二、下载项目依赖 demo下有一个requirements.txt文件&#xff0c; pip inst…

Symfony框架:优雅构建PHP应用的强有力工具

在PHP开发的广阔天地中&#xff0c;Symfony框架以其高性能、高安全性和组件化的特点&#xff0c;成为了构建现代Web应用的热门选择。Symfony是一个基于MVC&#xff08;模型-视图-控制器&#xff09;模式的全栈框架&#xff0c;提供了一套丰富的功能和工具&#xff0c;帮助开发者…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第55课-芝麻开门(语音 识别 控制3D纪念馆开门 和 关门)

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第55课-芝麻开门&#xff08;语音识别控制3D纪念馆开门和关门&#xff09; 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtn…

2.pwn的linux基础(计算机内部数据结构存储形式)

linux基础 保护层级: 分为四个ring0-ring3 一般来说就两个&#xff0c;0和3 0为内核 3为用户 权限: 用户分为多个组 文件和目录等等的权限一般都是三个&#xff0c;即可读可写可执行。 读:R&#xff0c;写:W&#xff0c;执行:X 赋予一个可执行文件执行权限就是chmod x file…

qt 如何添加子项目

首先我们正常流程创建一个项目文件&#xff1a; 这是我已经创建好的&#xff0c;请无视红线 然后找到该项目的文件夹&#xff0c;在文件夹下创建一个文件夹&#xff0c;再到创建好的文件夹下面创建一个 .pri 文件&#xff1a; &#xff08;创建文件夹&#xff09; &#xff08…

字节跳动与南开联合开源 StoryDiffusion:一键生成漫画和视频故事的神器!完全免费!

大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 漫画&#xff0c;是多少人童年的回忆啊&#xff01; 记得小学…

#数据结构 链式栈

1. 概念 链式栈LinkStack 逻辑结构&#xff1a;线性结构物理结构&#xff1a;链式存储栈的特点&#xff1a;后进先出 栈具有后进先出的特点&#xff0c;我们使用链表来实现栈&#xff0c;即链式栈。那么栈顶是入栈和出栈的地方&#xff0c;单向链表有头有尾&#xff0c;那我…

Http中get与post的区别,99%的人都理解错了吧

Get和Post是HTTP请求的两种基本方法&#xff0c;要说它们的区别&#xff0c;接触过WEB开发的人都能说出一二。 最直观的区别 就是Get把参数包含在URL中&#xff0c;Post通过request body传递参数。 你可能自己写过无数个Get和Post请求&#xff0c;或者已经看过很多权威网站总…