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

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;再或者是你采集电流的方式能否使用“双采双更”(如下图)?

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ICode国际青少年编程竞赛- Python-5级训练场-综合练习5

ICode国际青少年编程竞赛- Python-5级训练场-综合练习5 1、 a 16 for i in range(6):Dev.step(1)Dev.turnLeft()Dev.step(a)Dev.step(-a)Dev.turnRight()while Dev.energy < 100:wait()Dev.step(1)a a - 5 i2、 for i in range(5):Dev.step(11 - i * 2)Dev.turnRight()wh…

PBR系列-光之简史

作者&#xff1a;游梦 ​ 欢迎进入官网体验使用&#xff1a;Mapmost——让人与机器联合创作成为新常态 ​说到PBR理论分为三大理论&#xff1a;物理光源、物理材质与物理相机&#xff0c;三者都与光有着千丝万缕的关系&#xff0c;原打算这期讲解物理材质&#xff0c;在梳理知…

刚刚OpenAI发布ChatGPT-4o模型,免费使用GPT4o并免费提供更多功能

就在今日凌晨1点&#xff0c;OpenAI举行了春季发布会&#xff0c;发布了GPT-4o 并免费提供更多功能。 亲测GPT-4o已经可以免费试用&#xff0c;每个人都可以使用它并从中受益&#xff0c;GPT4终于不再是少部分人的玩物。 点击加入ChatGPT4交流群&#xff1a;https://www.aijour…

记一次跨域问题

线上跨域问题&#xff0c;在自己配置确认没问题下&#xff0c;要及时找运维看看是不是nginx配置问题。 两个方面&#xff1a; 项目代码 nginx配置 SpringBoot 解决跨域问题的 5 种方案&#xff01; SpringBoot解决CORS跨域问题 SpringBoot-实现CORS跨域原理及解决方案

unordered_map、unordered_set底层封装

文章目录 一、先实现哈希桶1.1哈希桶的实现方法1.2日常普遍的哈希桶存放的数据有两种&#xff1a;字符串和整形1.3哈希桶的实现代码详解1.3.1哈希桶的两种仿函数&#xff08;int和string&#xff09;1.3.2哈希桶的节点&#xff08;如果桶非常深&#xff0c;这里考虑挂红黑树&am…

MQTT学习(二)

订阅主题和订阅确认 SUBSCRIBE——订阅主题 之前的CONNECT报文&#xff0c;分为 固定报头&#xff1a;必须存在&#xff0c;用于描述报文信息。里面有指出什么类型的报文&#xff0c;报文的等级。可变报头&#xff1a;不一定存在。主要看什么样子类型的报文。有效载荷部分&a…

Go PDF文件操作

目录 介绍 安装 gofpdf API 代码示例 结果展示 介绍 gofpdf 是一个在 Go 语言中用于生成 PDF 文档的库。 安装 gofpdf 首先&#xff0c;你需要安装 gofpdf 库。你可以使用 go get 命令来安装它&#xff1a; go get github.com/jung-kurt/gofpdf API 功能 函数名参数解释示…

25. K 个一组翻转链表 - 力扣(LeetCode)

基础知识要求&#xff1a; Java&#xff1a;方法、while循环、for循环、if else语句 Python&#xff1a; 方法、while循环、for循环、if else语句 题目&#xff1a; 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个…

【目标检测】YOLOv5|YOLOv8模型QT界面可视化部署

YOLO-Deploy-QT_Interface 最近笔者做了YOLO系列算法的部署工作,现做一个总结。主要工作是做了用于部署YOLOv5和YOLOv8的可视化QT界面,可实现图片、文件夹、视频、摄像头的ONNX与OpenVino部署,具体效果如下: 代码链接:https://github.com/Zency-Sun/YOLO-Deploy-QT_Inte…

深入学习Linux内核之v4l2应用编程(二)

一&#xff0c;用户空间访问v4l2设备步骤 V4L2&#xff08;Video for Linux 2&#xff09;是Linux中关于视频设备的内核驱动&#xff0c;它使得Linux系统能够支持视频设备&#xff0c;如摄像头。对于Camera V4L2的应用编程&#xff0c;一般遵循以下步骤&#xff1a; 1&#x…

【正则表达式】1、元字符的认识与分类

1、元字符的概念 正则表达式的常见功能&#xff0c;分别是校验数据的有效性、查找符合要求的文本以及对文本进行切割和替换等操作。 我想你一定在办公软件&#xff0c;比如 Word、Excel 中用过这个功能。你可以使用查找功能快速定位关注的内容&#xff0c;然后使用替换&#xf…

leetcode-最长公共子序列(二)-103

题目要求 思路 step 1&#xff1a;优先检查特殊情况。 step 2&#xff1a;获取最长公共子序列的长度可以使用动态规划&#xff0c;我们以dp[i][j]dp[i][j]dp[i][j]表示在s1中以iii结尾&#xff0c;s2中以jjj结尾的字符串的最长公共子序列长度。 step 3&#xff1a;遍历两个字…

视频号小店从开店到爆单,最详细的攻略教学,来了!

大家好&#xff0c;我是喷火龙 视频号小店从推出到现在一直备受关注&#xff0c;我的团队已经入局视频号小店一年多了&#xff0c; 可以说&#xff0c;新手做视频号小店采用无货源模式和达人带货的玩法依旧是最合适的。 虽然说这个模式和玩法很多人之前都接触过&#xff0c;…

精准追踪,高效分析——Xinstall应用数据分析平台

在当前的移动互联网时代&#xff0c;App应用的数量与日俱增&#xff0c;如何从这些应用中脱颖而出&#xff0c;成为开发者和广告主们亟待解决的问题。而在这个问题中&#xff0c;数据无疑是一把关键的钥匙。今天&#xff0c;我们要介绍的就是国内专业的App全渠道统计服务商——…

普中STM32F103ZET6开发板让DS0和DS1两个LED同时亮

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.运行效果 一.前言 在这套stm32教程中,只教学了如何亮DS0,而没有教学如何亮DS1。 二.代码 main.c #include "stm32f10x.h"void Syst

Linux下Redis下载及安装教程(实测有效)

一、配置gcc 由于Redis是基于c语言编写的需要安装依赖,需要安装gcc&#xff0c;在Linux系统里需要存在C语言的编译环境&#xff0c;一般的Linux系统安装的时候会自动安装&#xff0c;由于我是最小安装模式&#xff0c;所以我需要自己再另外安装一下。 判断系统是否安装gcc&…

2024年Java程序员的职业发展路径

程序员的职业路径是非常清晰的&#xff0c;但是现实情况下&#xff0c;很多人卡在了高级开发就再也上不去&#xff0c;直到遇到职业发展的危机&#xff0c;比如&#xff1a; 35岁大龄程序员找工作难&#xff0c;国内很多大型互联网公司在招聘要求上&#xff0c;会限制35岁这个年…

PuLID: 图像背景、光线、风格等均保持高度一致图像生成工具,附本地一键包

PuLID是一种无需调优的ID定制方法。PuLID保持了高的ID保真度&#xff0c;同时有效地减少了对原始模型行为的干扰。 只需要提供一张照片&#xff0c;就可以生成高还原度的各种风格的图像。 使用方法&#xff1a;解压一键包&#xff0c;双击一键启动 点击ID图像&#xff08;主…

李国武:确保FMEA实现预期质量目标的方法有哪些?

在现代制造业中&#xff0c;FMEA&#xff08;失效模式与影响分析&#xff09;已经成为一项至关重要的质量管理工具。它通过对产品或过程进行系统的分析&#xff0c;识别潜在的失效模式&#xff0c;评估其影响&#xff0c;并制定相应的预防措施&#xff0c;从而确保产品或过程的…