电机控制杂谈——“双采样双更新模式”对模型预测控制/PI控制的提升有多大?

news2024/12/25 23:42:48

1.采样频率与PWM开关频率的关系

一般有以下两种采样模式。

如下图(a)所示,这种方式称之为单采单更模式,即在一个PWM周期内,采样一次,更新一次PWM占空比,在这种情况下,采样频率=PWM开关频率(这也是最最最最常用的模式)。

如下图(b)所示,这种方式称之为双采双更模式,即在一个PWM周期内,采样两次,更新两次PWM占空比,在这种情况下,采样频率=2*PWM开关频率。

单采单更模式
双采双更模式

2.为什么要有双采双更模式?

一般而言,PMSM+FOC算法,在DSP28377(控制频率200Mhz)中执行,程序执行包括:转子位置采样,转速计算,电流采样,参考电压计算以及PWM生成,大概需要25us作用。这个程序计算时间与个人代码量有关。如果是采用比较复杂的控制算法,可能会使得程序运算时间超过50us,50us就是对应20kHz,所以这时候就没办法采用20kHz的控制频率

不过,个人看来,现在大部分的实验平台,基本都是用10kHz的开关器件。如果采用“单采单更模式”,那么开关周期和控制周期都是100us。但是呢,大部分算法都不需要用到100us。比如下面我截取了华科的两篇论文,里面涉及了他们提出的算法的运行时间。

可以看到呢。这两篇论文里面涉及的算法运行时间远不及100us,甚至也没达到50us。那么这样的话,其实DSP还有很多的空闲时间。

 

那我现在的想法就是,把DSP的空闲时间给运用起来,提高系统的控制性能。

那怎样提高控制性能呢?往期以及讲了很多的软件算法(扩展状态观测器。。。)。今天就想从硬件的方面(充分利用硬件资源)去提升控制性能。

那我可以试试这个“双采双更”的模式。

前段时间在b站回复别人消息。还被别人说我讲到的这个“双采双更”的模式是没有意义的。

这肯定是有意义的啊。双采双更能够使得我在开关频率不变的情况下提高控制精度,那控制效果肯定是更好的。

下面这是某篇TPE中使用到的双采双更模型波形图。

实现双采双更的理论依据应该是什么?

我个人认为有以下两点:

  1. DSP执行一次控制算法的时间,达不到一个控制周期的一半。
  2. 电机控制中涉及的SVPWM算法,实际上是在一个开关周期内完成了两次相同的调制。

如下图所示,由于SVPWM是左右对称的,实际上在左半周,已经完成了所需的电压调制。右半轴接着又完成了一次完全相同的电压调制。理论上左右两边产生的电压大小都是一致的。

既然经过半个周期就能完成我想要的调制了,那我干嘛不根据实际电流情况来实时调整下半周期所需的电压呢?

下面我们就来仿真验证一下双采双更的益处吧。

 

单采单更模型对应的开关管驱动信号、三角载波、开关切换时间波形

 

双采双更模型对应的开关管驱动信号、三角载波、开关切换时间波形

3.双采双更-DPCC模型的仿真验证

我下面是以无差拍预测电流控制(DPCC)来验证“双采双更模式”的有效性。

仿真参数如下表所示:

 

 Simulink仿真图:

 仿真工况:初始给定参考转速为1200RPM,0.2突加10Nm负载,0.35s减速至1000RPM。

3.1 电感失配两倍情况下的仿真对比

 

单采单更模式,控制器电感为实际电感的两倍时,三相电流、转矩、转速波形
双采双更模式,控制器电感为实际电感的两倍时,三相电流、转矩、转速波形
单采单更模式,控制器电感为实际电感的两倍时,d-q电流波形
双采双更模式,控制器电感为实际电感的两倍时,d-q电流波形
单采单更模式,控制器电感为实际电感的两倍时,相电流FFT分析
双采双更模式,控制器电感为实际电感的两倍时,相电流FFT分析

从上述仿真波形来看:

(1)采用“双采双更模式”的DPCC在电感失配两倍的情况下,电流脉动要明显小于采用“单采双单更模式”的DPCC的电流脉动。

(2)在d-q电流方面,可以看到,采用“单采双单更模式”的DPCC的d轴电流脉动超过了±1A;采用“双采双更模式”的DPCC的d轴电流脉动大概都在±0.5A以内。

(3)电流THD方面,可以看到,采用“单采双单更模式”的DPCC的相电流THD为4.24%;采用“双采双更模式”的DPCC的相电流THD仅为2.99%。

3.2 磁链失配2.5倍情况下的仿真对比

 

单采单更模式,控制器磁链为实际磁链的2.5倍时,三相电流、转矩、转速波形
双采双更模式,控制器磁链为实际磁链的2.5倍时,三相电流、转矩、转速波形
单采单更模式,控制器磁链为实际磁链的2.5倍时,d-q电流波形
双采双更模式,控制器磁链为实际磁链的2.5倍时,d-q电流波形

从上述仿真波形来看:

采用“双采双更模式”的DPCC在磁链失配2.5倍的情况下,电流的稳态误差要明显小于采用“单采双单更模式”的DPCC的电流的稳态误差。

 

4.双采双更-PI模型的仿真验证

Simulink仿真图:

 

 

注意:我的PI都采用“带宽配置法”,也就是电流环比例增益Kp=2*pi*fc*Ls,积分增益Kp=2*pi*fc*Rs。fc为带宽频率,单位是Hz

4.1 500Hz电流环带宽情况下的仿真对比

 

单采单更模式,三相电流、转矩、转速波形
双采双更模式,三相电流、转矩、转速波形

从上述仿真波形来看:

在电流环带宽设置为500Hz的时候,对于采用PI调节器的电流而言,双采双更模式和单采单更模型并没有明显区别

4.2 2000Hz电流环带宽情况下的仿真对比

单采单更模式,三相电流、转矩、转速波形
双采双更模式,三相电流、转矩、转速波形
单采单更模式,d-q电流波形(启动阶段)
双采双更模式,d-q电流波形(启动阶段)

从上述仿真波形来看:

在电流环带宽设置为2000Hz的时候,对于采用PI调节器的电流而言,双采双更模式和单采单更模式的q轴电流响应速度都差不多,电机启动时的q轴电流基本都是在0.00125s到达给定值;但是在达到参考电流之后,单采单更模式下的d-q电流都开始出现上下波动,而双采双更模式下的d-q电流仍能保持非常好的稳定性

5 仿真对比总结

5.1结论

从上述仿真波形来看,可以得到以下结论:

(1)对于无差拍预测控制的电流环而言,无论在电感失配还是磁链失配的情况下,采用“双采双更模式”的DPCC明显具有更好的控制效果或者说采用“双采双更模式”的DPCC明显具有更好的参数鲁棒性。(这里为什么不讨论电阻失配,因为电阻失配的影响其实比较小)

(2)对于PI调节器控制的电流环而言,采用“双采双更模式”可以使系统在高带宽的情况下,拥有更好的稳定性(或者说,采用“双采双更模式”可以使在保证稳定性的情况下,拥有更高的电流环带宽,从而具有更快的电流动态响应能力)

 

5.2解释

这里解释一下为什么会有这两个结论。

(1)为什么双采双更模式能提高DPCC的参数鲁棒性?

假设电流误差是随时间线性变化的。

现在控制器参数与实际电机的参数不匹配,在参数失配且控制器周期为100us时(单采单更),预测的电流与实际电流的误差是2A。

那我现在在同样的参数失配情况下,采用双采双更模式,此时的控制器周期变为50us,那么预测的电流与实际电流的误差就会变成1A。

这样一来,我预测电流误差缩小了,预测控制的鲁棒性也就相当于通过硬件得到了提高。

(2)对于PI调节器控制的电流环而言,为什么采用“双采双更模式”可以使系统在高带宽的情况下,拥有更好的稳定性

我这里举一个例子,现在有一辆大货车以100km/h的速度驶向十字路口,大货车距离达到路口的时间为1s,且大货车司机观察路况的时间间隔为1s。(单采单更模式)

现在,大货车的时速是100km/h,经过1s之后,大货车司机开始观察路况,发现此时已经达到路口了,即使现在减速,也来不及了,很容易发生事故。

那假如司机观察路况的时间间隔为0.5s呢?(双采双更模式)

现在,大货车的时速是100km/h,经过0.5s之后,大货车司机开始观察路况,发现此时已经离路口很近,但是也还没到达路口,司机开始减速。那么大货车再经过>0.5s后达到路口,此时的车速<100km/h,发生事故的可能性也就会相对低一些。

5.3注意事项

上面我说采用双采双更模式是尽可能利用了数字控制芯片的资源。但其实还要考虑硬件问题。比如说你的电流传感器的采集频率是否可达20kHz;再或者是你采集电流的方式能否使用“双采双更”(如下图)?

 

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

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

相关文章

独立服务器和云服务器哪个好?

在当今数字时代&#xff0c;网站托管是任何在线业务成功的关键要素之一。但是&#xff0c;当谈到选择正确的托管解决方案时&#xff0c;很容易陷入独立服务器与云服务器之间的抉择。两者都有各自的优势和限制&#xff0c;因此在决定哪种类型的托管适合您的业务之前&#xff0c;…

JavaScript异步编程——09-Promise类的方法【万字长文,感谢支持】

Promise 类的方法简介 Promise 的 API 分为两种&#xff1a; Promise 实例的方法&#xff08;也称为&#xff1a;Promis的实例方法&#xff09; Promise 类的方法&#xff08;也称为&#xff1a;Promise的静态方法&#xff09; 前面几篇文章&#xff0c;讲的都是 Promise 实…

基于梯度流的扩散映射卡尔曼滤波算法的信号预处理matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 扩散映射&#xff08;Diffusion Maps&#xff09; 4.2 卡尔曼滤波 4.3 基于梯度流的扩散映射卡尔曼滤波&#xff08;GFDMKF&#xff09; 5.完整程序 1.程序功能描述 基于梯度流的扩散…

风电功率预测 | 基于RF随机森林的风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测完整代码风电功率预测 基于随机森林(Random Forest, RF)的风电功率预测是一种常用且有效的方法。以下是基于RF的风电功率预测的一般步骤: 数据准备:收集与风电场发电功率相关的数据,包括风速、风向、温度、湿度等气象数据以及风电场的历史功率数…

HTML静态网页成品作业(HTML+CSS)——哈利波特霍格沃茨魔法学院介绍网页(3个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有3个页面。 二、作品演示 三、代…

“ModuleNotFoundError: No module named ‘selenium‘”报错如何解决

接上节&#xff1a;测试平台开发之测试框架改造并发执行及结果隔离(1) 上节博客的末尾提到&#xff1a;在命令窗口执行python main.py 可是执行的时候遇到了如下报错&#xff1a; ERRORS _____________________________________________________________ ERROR collecting te…

SuperMap GIS基础产品FAQ集锦(202404)

一、SuperMap GIS基础产品云GIS-FAQ集锦 问题1&#xff1a;【iServer】【11.1.1】 请问 iServer 是否支持多线程执行 Web 打印功能&#xff1f; 【解决办法】 iServer 是服务端&#xff0c;本身对于前端请求都是在 iServer 异步线程中处理的&#xff0c;可以同时发多个请求打…

YOLOv8独家改进:逐元素乘法(star operation)二次创新 | 微软新作StarNet:超强轻量级Backbone CVPR 2024

💡💡💡创新点:star operation(元素乘法)在无需加宽网络下,将输入映射到高维非线性特征空间的能力,逐元素乘法(star operation)在性能上始终优于求和,基于star operation块做二次创新 💡💡💡如何跟YOLOv8结合:替代YOLOv8的C2f,结构图如下 收录 YOLOv8…

ChatGlm的部署和训练

一、chatGlm的环境部署 1.安装anocoda 下载安装anaconda。具体教程详见官网教程。 2.安装CUDA 1&#xff09;首先在终端查看你的Nividian版本&#xff0c;命令如下&#xff1a; 2)如果你没有下载你要去下载cuda下载网站&#xff0c;这里是12.3是因为我cuda version版本12…

以管理员身份运行设置

在使用非 Administrator 用户操作情况下&#xff1a; 举个例子&#xff0c;因为每次想要以管理员身份运行命令提示符&#xff0c;都要右键选择才行&#xff0c;有点麻烦。 可以设置每次点开就是以管理员身份运行命令提示符&#xff0c;操作如下&#xff1a; 1.Win R 输入 s…

开源禅道zentao的使用

很不幸禅道因为漏洞被人进攻了&#xff0c;被迫研究。 1.安装 直接使用docker进行部署&#xff0c;这里有非常多门道。官网的镜像easysoft-zentao是属于docker安装&#xff0c;而idoop的镜像虽然也是docker安装&#xff0c;但是实际是使用官网linux一键安装的版本&#xff0c…

【driver6】debugfs,性能优化,

文章目录 1.内核调试手段&#xff1a;debugfs.h中api建立目录/sys/kernel/debug2.性能优化&#xff1a;裸磁盘无法使用&#xff0c;一般都刷文件系统。驱动加上要考虑磁盘io&#xff0c;内存占用&#xff0c;cpu使用情况3.Valgrind内存泄漏排查案例&#xff1a;4.cpu瓶颈&#…

[HUBUCTF 2022 新生赛]ezsql

测试无结果 扫描目录&#xff0c;得到源码 找到注入点 思路&#xff1a;更新资料的时候可以同时更新所有密码 我们需要知道密码的字段名 爆库 nicknameasdf&age111,description(select database())#&descriptionaaa&token31ad6e5a2534a91ed634aca0b27c14a9 爆表…

欧洲风景(地理)

1.尼斯湖 尼斯湖亦译内斯湖&#xff0c;位于英国苏格兰高原北部的大峡谷中&#xff0c;湖长39公里&#xff0c;宽2.4公里。面积并不大&#xff0c;却很深。传说这儿住着一只水怪&#xff0c;因此吸引了大量游客。 2.伦敦塔桥 伦敦塔桥是从英国伦敦泰晤士河口算起的第一座桥(泰…

场景文本检测识别学习 day09(SSM、S4、Mamba、S6)

SSM&#xff08;State Space Model&#xff09; SSM是一个针对连续函数的模型&#xff0c;即输入是连续函数&#xff0c;输出也是连续函数。上图为状态方程和输出方程&#xff0c;其中h(t)是当前时刻的状态&#xff0c;x(t)是当前时刻的输入&#xff0c;h’(t)是下一个时刻的状…

MKS 电源 :EDGE 30R40A 400kh 现货 功能正常

MKS 电源 :EDGE 30R40A 400kh 现货 功能正常

blender cell fracture制作破碎效果,将一个模型破碎成多个模型

效果&#xff1a; 1.打开编辑-》偏好设置。搜索cell&#xff0c;勾选上如下图所示的&#xff0c;然后点击左下角菜单里的保存设置。 2.选中需要破碎的物体&#xff0c;按快捷键f3&#xff08;快速搜索插件&#xff09;&#xff0c;搜索cell fracture。 3.调整自己需要的参数配置…

SpringBoot多模块项目MybatisPlus配置

项目目录 主模块配置 配置类 Configuration EnableTransactionManagement MapperScan("com.sms.**.mapper") public class MybatisPlugConfig {Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor mybatisPlusInterceptor new…

RK3568平台开发系列讲解(SPI篇)spi_dev 驱动分析

🚀返回专栏总目录 文章目录 一、结构体二、API三、spidev驱动分析3.1、init3.2、probe3.3、spidev_write3.4、spidev_read3.5、spidev_open四、spi_register_driver分析五、spi_dev缺点沉淀、分享、成长

【计算机毕业设计】基于SSM++jsp的高校专业信息管理系统【源码+lw+部署文档+讲解】

目录 第1章 绪论 1.1 课题背景 1.2 课题意义 1.3 研究内容 第2章 开发环境与技术 2.1 MYSQL数据库 2.2 JSP技术 2.3 SSM框架 第3章 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统流程 3.2.1 操作流程 3.2.2 登录流程 3.2.3 删除信息流…