电机控制杂谈——“双采样双更新模式”对模型预测控制/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;再或者是你采集电流的方式能否使用“双采双更”(如下图)?

 

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

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

相关文章

小红书自动私信获客,打造个人品牌

在当今这个内容为王、社交至上的时代&#xff0c;小红书作为新兴的社交电商平台&#xff0c;凭借其独特的社区氛围和强大的种草能力&#xff0c;成为了众多KOL、商家以及个人品牌打造的首选平台。想要在小红书上脱颖而出&#xff0c;精准引流获客&#xff0c;利用自动私信功能不…

【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD)

文章目录 1. 环境准备2. 增加数据&#xff08;Create&#xff09;3. 查询数据&#xff08;Retrieve&#xff09;4. 更新数据&#xff08;Update&#xff09;5. 删除数据&#xff08;Delete&#xff09;6. 总结 &#x1f389;欢迎来到Java学习路线专栏~探索Java中的静态变量与实…

强化训练:day8(求最小公倍数、数组中的最⻓连续⼦序列、字⺟收集)

文章目录 前言1. 最小公倍数1.1 题目描述1.2 解题思路1.3 代码实现 2. 数组中的最⻓连续⼦序列2.1 题目描述2.2 解题思路2.3 代码实现 3. 字母收集3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 最小公倍数   2. 数组中的最⻓连续⼦序列   3. 字⺟收集 1. 最小公倍数…

JavaScript中内存泄露的几种情况

在JavaScript开发中&#xff0c;内存泄露是一个常见且可能严重的问题。内存泄露通常发生在程序在不需要某些数据时仍然保留这些数据的引用&#xff0c;导致这些数据无法被垃圾回收机制清除。在长时间运行的Web应用程序或Node.js应用中&#xff0c;内存泄露可能会导致性能下降、…

6-2 递归求Fabonacci数列

作者 C课程组 单位 浙江大学 本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下&#xff1a; f(n)f(n−2)f(n−1) (n≥2)&#xff0c;其中f(0)0&#xff0c;f(1)1。 函数接口定义&#xff1a; int f( int n );函数f应返回第n个Fabonacci数。题目保证输入输出…

JavaEE之线程(5)——Java内存模型、内存可见性、volatile关键字

前言 volatile可以理解成轻量级的 synchronized&#xff0c; 它在多CPU开发中保证了共享变量的“可见性”&#xff0c;可见性我们可以理解成是&#xff1a;当一个线程修改一个共享变量时&#xff0c;另一个线程可以读到这个修改的值。由于它不会引起线程的上下文切换和调度&am…

HTML的使用(中)

文章目录 前言一、HTML表单是什么&#xff1f;二、HTML表单的使用 &#xff08;1&#xff09;<form>...</form>表单标记&#xff08;2&#xff09;<input>表单输入标记总结 前言 在许多网页平台上浏览&#xff0c;大多逃不了登录账号。此时在网页中填写的用户…

Centos 7.9 安装 tigervnc-server

环境&#xff1a;当前使用的 Centos 7.9 的光盘作为的本地源&#xff0c;或使用离线rpm包。 1 检查是否已安装 tigervnc [rootlocalhost /]# rpm -q tigervnc tigervnc-server 未安装软件包 tigervnc tigervnc-server-1.8.0-21.el7.x86_64 如果安装过卸掉 卸载: rpm -e [ro…

MYSQL DBA运维实战 SQL2

1.DML:通过SQL语句中的DML语言来实现数据的操作。 insert实现数据的插入。 update实现数据的更新。delete实现数据的删除。 插入&#xff0c;完全插入insert into 表名 values(值) 非完全插入:insert into 表名(列名&#xff0c;列名) values(值) 更新&#xff0…

RustGUI学习(iced)之小部件(十二):如何使用rule分割线部件来分割UI?

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述 这是本专栏的第十二篇,主要讲述rule分割线部件的使用,会结合…

【计算机网络】http协议的原理与应用,以及https是如何保证安全传输的

HTTP 超文本传输协议&#xff08;英文&#xff1a;HyperText Transfer Protocol&#xff0c;缩写&#xff1a;HTTP&#xff09;是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 HTTP的发展是由蒂姆伯纳斯-李于1989年在欧洲核子研究组织…

Vue2响应式原理详解

Object.defineProperty 通过Object.defineProperty方法进行数据代理&#xff0c; 用vm对象的属性来代理data对象的属性 方法案例 /* 此方法用于定义或修改对象属性的方法。它允许你精确地控制属性的行为&#xff0c;包括属性的值、可枚举性、可配置性和可写性。 接受三个参数…

React useEffect Hook: 理解和解决组件双重渲染问题

在React中&#xff0c;useEffect可能会在组件的每次渲染后运行&#xff0c;这取决于它的依赖项。如果你发现useEffect运行了两次&#xff0c;并且你正在使用React 18或更高版本的严格模式&#xff08;Strict Mode&#xff09;&#xff0c;这可能是因为在开发模式下&#xff0c;…

PyTorch 的 hook 功能监控和分析模型的内部状态

PyTorch 的 hook 功能是一种强大的工具&#xff0c;它允许用户在模型的前向传播&#xff08;forward pass&#xff09;和后向传播&#xff08;backward pass&#xff09;的任意点插入自定义函数。这些自定义函数可以用于监控、分析、调试或修改模型的内部状态&#xff0c;如激活…

轻松掌握抖音自动点赞技巧,快速吸粉

在当今这个信息爆炸的时代&#xff0c;抖音作为短视频领域的领头羊&#xff0c;不仅汇聚了庞大的用户群体&#xff0c;也成为了品牌和个人展示自我、吸引粉丝的重要平台。如何在众多内容创作者中脱颖而出&#xff0c;实现高效引流获客&#xff0c;精准推广自己的内容&#xff0…

上海、苏大南京师范大学自考新闻作品投稿成功

编辑v&#xff1a;yangwei013049&#xff0c;课程全部考完了&#xff0c;现在头疼两篇公开发表的文章&#xff0c;有谁知道如何可以让稿件能快速发表&#xff01;因为时间已经不多了&#xff0c;想参加下半年的论文答辩&#xff0c;如果去投稿一是不知道人家用不用你的稿子&…

SHAP,一个解释机器学习模型Python库

SHAP库概述 SHAP&#xff08;SHapley Additive exPlanations&#xff09;是一个Python库,用于解释任何机器学习模型的预测.它基于博弈论中的Shapley值概念,可以帮助用户理解模型预测中各个特征的贡献度. 安装与使用 # 命令安装SHAP库&#xff1a;pip install shap使用SHAP库…

工厂策略模式

工厂模式用于干掉大量的if-else &#xff0c;策略模式用于挪去臃肿的业务代码&#xff0c;还可以进一步升级加上模板模式&#xff0c;以及抽取成Starter public interface HandlerStrategy extends InitializingBean {void findSyncOrders(); }public class SalesPlatformFact…

LVS负载均衡超详细入门介绍

LVS 一、LVS入门介绍 1.1.LVS负载均衡简介 1.2.负载均衡的工作模式 1.2.1.地址转换NAT&#xff08;Network Address Translation&#xff09; 1.2.2.IP隧道TUN&#xff08;IP Tunneling&#xff09; 1.2.3.直接路由DR&#xff08;Direct Routing&#xff09; 1.3.…

桥接模式(合成/聚合复用原则)

桥接模式 文章目录 桥接模式合成/聚合复用原则桥接模式通过示例了解桥接模式 合成/聚合复用原则 合成/聚合复用原则(CARP),尽量使用合成/聚合&#xff0c;尽量不要使用类继承 ​ 合成(Composition),也有翻译成组合)和**聚合(Aggregation)**都是关联的特殊种类。聚合表示一种弱的…