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

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.xdnf.cn/news/1473834.html

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

相关文章

[CP_AUTOSAR]_分层软件架构_内容详解

目录 1、软件分层内容1.1、Microcontroller Abstraction Layer1.2、ECU Abstraction Layer1.2.1、I/O HW Abstraction1.2.2、Communication Hardware Abstraction1.2.3、Memory Hardware Abstraction1.2.4、Onboard Device Abstraction1.2.5、Crypto Hardware Abstraction 1.3、…

Apache Seata分布式事务启用Nacos做配置中心

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Seata分布式事务启用Nacos做配置中心 Seata分布式事务启用Nacos做配置中心 项目地址 本文作…

便携式气象站:探索自然的智慧伙伴

在探索自然奥秘、追求科学真理的道路上,气象数据始终是我们不可或缺的指引。然而,传统的气象站往往庞大而笨重,难以在偏远地区或移动环境中灵活部署。 便携式气象站,顾名思义,是一种小巧轻便、易于携带和安装的气象观测…

VitePress美化

参考资料: https://blog.csdn.net/weixin_44803753/article/details/130903396 https://blog.csdn.net/qq_30678861/category_12467776.html 站点信息修改 首页部分的修改基本都在.vitepress/config.mts,这个文件内修改。 title 站点名称 description 描述 top…

Vben:表格的表头和表格的内容对不齐,以及解决方法

文章目录 一、问题描述二、解决方法 一、问题描述 基于Vue-Vbne-admin框架进行前端开发的时候,调用表格useTable函数实现表格之后,发现表格的表头和表格的内容对不齐。如下图所示。针对这种情况,本文记录了解决方法。 调用的模块如下&#x…

【力扣 - 每日一题】3099. 哈沙德数 | 模拟 (Go/C++)

题目内容 如果一个整数能够被其各个数位上的数字之和整除,则称之为 哈沙德数(Harshad number)。给你一个整数 x 。如果 x 是 哈沙德数 ,则返回 x 各个数位上的数字之和,否则,返回 -1 。 示例 1&#xff1…

使用 ESP32-WROOM + DHT11 做个无屏温湿度计

最近梅雨天,有个房间湿度很大,而我需要远程查看温湿度,所以无所谓有没有显示屏,某宝上的温湿度计都是带屏的,如果连WIFI查看温湿度操作也比较麻烦,还需要换电池,实在不能满足我的需求&#xff0…

SpringBoot新手快速入门系列教程四:创建第一个SringBoot的API

首先我们用IDEA新建一个项目,请将这些关键位置按照我的设置设置一下 接下来我将要带着你一步一步创建一个Get请求和Post请求,通过客户端请求的参数,以json格式返回该参数{“message”:"Hello"} 1,先在IDE左上角把这里改为文件模式…

笔记:SpringBoot+Vue全栈开发

笔记:SpringBootVue全栈开发 1. 开发环境热部署2. SpringBoot RestController的使用3. SpringBoot实现文件上传4. 配置拦截器5. Restful服务Swagger6. 使用MyBatis-Plus进行数据库操作7. 多表查询、条件查询及分页查询 1. 开发环境热部署 使用spring-boot-devtools…

泛微开发修炼之旅--31海康威视综合安防管理系统组织机构同步代码方案及源码

31海康威视综合安防管理系统组织机构同步代码方案及源码 一、使用场景 我们在一个项目中有一个和海康威视综合安防管理系统进行组织机构同步接口,接下来我们看下实现的源码 31海康威视综合安防管理系统组织机构同步代码方案及源码

【qt】如何获取本机的IP地址?

需要用到这个类QHostInfo和pro里面添加network模块 用这个类的静态函数forName()来获取该主机名的信息 返回的就是这个类 这个QHostInfo类就包括主机的IP地址信息 用静态函数addresses()来获取 返回的是一个QHostAddress的容器 QList<QHostAddress>addrList hostIn…

【车载开发系列】GIT安装详细教程

【车载开发系列】GIT安装详细教程 【车载开发系列】GIT安装详细教程 【车载开发系列】GIT安装详细教程一. GIT软件概念二. GIT安装步骤三. GIT安装确认三. GIT功能使用1&#xff09;Git Bash2&#xff09;Git CMD3&#xff09;Git FAQs4&#xff09;Git GUI 一. GIT软件概念 G…

[CTF]-PWN:House of Banana堆块题型综合分析

搭配largebin attack&#xff1a; 例题&#xff08;ISCC2024 heapheap)&#xff1a; 版本&#xff1a;glibc2.31 知识点&#xff1a;largebin attack、house of banana、uaf 查看保护 查看ida delete存在uaf漏洞 largebin attack手法&#xff1a; #创建4个堆块&#xff0…

Django学习第六天

启动项目命令 python manage.py runserver 取消模态框功能 js实现列表数据删除 第二种实现思路 使用jquery修改模态框标题 编辑页面拿到数据库数据显示默认数据功能实现 想要去数据库中获取数据时&#xff1a;对象/字典 三种不同的数据类型 使用Ajax传入数据实现表单编辑&…

星辰宇宙动态页面vue版,超好看的前端页面。附源码与应用教程(若依)

本代码的html版本&#xff0c;来源自“山羊の前端小窝”作者&#xff0c;我对此进行了vue版本转换以及相关应用。特此与大家一起分享~ 1、直接上效果图&#xff1a; 带文字版&#xff1a;文字呼吸式缩放。 纯净版&#xff1a; 默认展示效果&#xff1a; 缩放与旋转后&#xf…

anaconda中下载压缩包并用conda安装包

有时直接conda安装包时会出错&#xff1b;报错PackagesNotFoundError: The following packages are not available from current channels 比如 conda install -y bioconda::ucsc-gtftogenepred #直接安装报错 #直接下载压缩包安装https://blog.csdn.net/weixin_45552562/ar…

02:C语言数据类型

C语言数据类型 1、整型变量2、浮点型变量3、字符型变量4、有符号数和无符号数 1、整型变量 #include <stdio.h>int main(void) { /* int a; //定义一个整型变量aint b; //定义一个整型变量bint c; //定义一个整型变量c */ /* int a,b,c; //也可以这样定义a 25;b 6; *…

liunx文件系统,日志分析

文章目录 1.inode与block1.1 inode与block概述1.2 inode的内容1.3 文件存储1.4 inode的大小1.5 inode的特殊作用 2.硬链接与软链接2.1链接文件分类 3.恢复误删除的文件3.1 案例:恢复EXT类型的文件3.2 案例:恢复XFS类型的文件3.2.1 xfsdump使用限制 4.分析日志文件4.1日志文件4.…

Windows如何查看端口是否占用,并结束端口进程

需求与问题&#xff1a;前后端配置了跨域操作&#xff0c;但是仍然报错&#xff0c;可以考虑端口被两个程序占用&#xff0c;找不到正确端口或者后端接口书写是否规范&#xff0c;特别是利用Python Flask书写时要保证缩进是否正确&#xff01; Windows操作系统中&#xff0c;查…

Linux多进程和多线程(六)进程间通信-共享内存

多进程(六) 共享内存共享内存的创建 示例: 共享内存删除 共享内存映射 共享内存映射的创建解除共享内存映射示例:写入和读取共享内存中的数据 写入: ### 读取: 大致操作流程: 多进程(六) 共享内存 共享内存是将分配的物理空间直接映射到进程的⽤户虚拟地址空间中, 减少数据在…