热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前馈pid系数_SPMSM控制——基于模型的电流前馈控制及思考

大家好,我是邦多利re0联动抽不到四星白金燐子的非酋Dantemiwa。电机控制中最基础的部分:电流环、速度环、位置环的PID控制器设计,

大家好,我是邦多利re0联动抽不到四星白金燐子的非酋Dantemiwa。

电机控制中最基础的部分:电流环、速度环、位置环的PID控制器设计,我们都做了简单的介绍。在三环的设计中我们能看到,PID控制器的设计并不是生调硬套,玄学调参;而是有迹可循,有数可算的。自动控制原理中时域、根轨迹、频域分析等基础内容,看似晦涩,实际上都能在电机这一简单的控制对象上得到充分的应用。

前情回顾

https://zhuanlan.zhihu.com/p/146373628​zhuanlan.zhihu.com

在传统PI电流环参数整定一文中,我们已经介绍了如何根据“对称最佳准则”法进行参数整定。基本思路为:

1. 略去开环电压方程的转速项,将电流环化为典I型系统
2. 作出幅频特性曲线
3. 根据“对称最佳准则”计算得到PI参数。

c6d3b6e58b2538eb506589ccbf656f8c.png

我们还引出了,如果想要根据需要来设计电流环带宽,应带如何计算相应的电流环PI参数:

e692785a9e3a88ddb1275d1a42f3afb4.png

13dc8df660259689cf89c679d01eb850.png

这也和各大电机标准库给出的计算方法一致。(要注意这里的带宽

单位是rad/s而不是Hz)。

无法忽视的反电势项

在传统PI电流环的设计中,常常以“响应速度较慢”为理由,忽略dq电压方程中电角速度

的几项:

57f7bacf40d8392a51dd52d1bd05f803.png

1d8454cebae4f85e326727cddd82b817.png

带电角速度

的几项,称为dq轴上的
反电动势项,关于反电动势项的来历,在此不加赘述,估计这又能新开一篇文章了。显然,旋转反电动势的大小和转速、电流等均有关系,是一个耦合项。转速越大,反电势项也就越大。

的确,转速的响应比电流要慢的多。但带电流的几项

均和电流有关系。如果转速很高,
可能变大,那么这两项带来的扰动就不能忽略。

也就是说,当电机运行在高速、高扭矩阶段的时候,不应当忽略旋转反电势项带来的影响。

基于模型的电流环前馈

对此,我们可基于电压模型,为电流环加入前馈项,对旋转反电动势扰动进行补偿,控制框图如下所示:

b346589f45e0a1dcfd04db391e29d9a8.png
看上去很复杂的基于模型电流环控制

emmmm看上去好像很复杂,但很容易看出的的是,dq轴的控制耦合在了一起。为了方便分析,我们单独提出q轴,对框图进行简化:

9e8dd140346a96f7fa22cd98c150f1b8.png
q轴基于模型的电流环

上述框图的最大特点有以下两点:

1.没有积分环节
2.前馈项能完全抵消旋转反电势的扰动。

基于模型的电流环控制,最大的特点在于增加了几个模型前馈项。其中,

为电阻电压分量,
为控制器一个系数,
为逆变器滞后。

为了便于分析,我们忽略逆变器滞后对前馈项带来的影响,认为前馈项能够直接抵消掉旋转反电动势项,此时基于模型的电流环能进一步地简化为:

4a1389d7b5077d2174be7a08c4ddfcd2.png

我们能看到,反馈增益项

的设计是很巧妙的,他正好抵消了积分项中的
。换言之,整个基于模型电流环的设计,
我们只需要去考虑如何确定系数
即可,剩下的,前馈项全部给补上了。

我们仔细看一下框图中的开环传函,

12481e608b526fe7cf59916ec8721cd4.png

好家伙,这又是个典I型系统。我们仍按照对称最佳准则(具体内容参考Dantemiwa:SPMSM控制:传统PI电流环参数的整定):

反馈增益为:

这跟电流环整定出来的P参数一模一样。并且注意到此时的闭环传递函数和传统PI电流环是相同的:

22ac74309757b1d3a7bd0efeff362d84.png

值得注意的是,传统PI电流环的闭环传递函数是在忽略了反电动势项的基础上构建起来的,而基于模型电流环的闭环传递函数则是在反电动势项被抵消的情况下构建出来的。我们来具体看一看两者到底有什么区别

扰动传递函数的分析

这里又要拿大家最喜欢的RM3508动刀了。已知RM3508的电路参数,我们就可以给RM3508电机做仿真了。

我们首先来看看时域上的性能差异。规定控制器频率为10K,当给RM3508的转子以160rps的阶跃信号时,其速度-时间曲线如下:

d68b88a7285401bff97d4028b1d3759c.png

能看到橙色的传统PI电流环,在高转速处经历了几个波动以后才到达稳态,而基于模型的电流环仅经历一次超调到达稳态。

而电流-时间曲线则更加惨烈,在高转速阶跃指令下的电流的超调,传统PI电流环比基于模型电流环抖得多。

bbd5975eb268aeb8381fcd5328ea0b53.png

(实际上160rps已经逼近RM3508电机在24V直流下的电压极限圆了,C620电调是不会跑这么快的)

为什么会有这样的状况呢?

假如我们将反电势项视作扰动输入,我们可以分析对于这一个扰动输入,系统的传递函数和频率特性,所得到的传递函数称为"扰动传递函数",在自动控制原理当中甚至还有例题。至于为什么我们能将R(s)和N(s)分开来分析,因为输入R(s)和N(s)是相互独立的信号,而闭环系统又是线性时不变系统(LTI),根据系统的线性性质,可以将两者分开。(正好最近学了Stochastic Process这门课,妙哉)

3f2ebb136eb66b8ffba5c11cfc9cc0d1.png
经典例题:N(s)为扰动输入,求扰动传递函数C(s)/N(s)

只要我们能分析传统PI电流环扰动传递函数的幅频特性,再分析基于模型传递函数的幅频特性,想必能从两者的带宽中看出些什么。

传统PI电流环的扰动传递函数和框图为:

7bfedbb4233bf5f9a7a9081efb95dad0.png

ce03239fa51301a33ebf102c7439050c.png

基于模型电流环的扰动传递函数和框图如下,注意分析扰动传递函数的时候我们没有忽略电压滞后环节对前馈项的影响:

9413f9001a83b79c4e1c35ba1a85aaf2.png

5754335d61085d31e20019af1363a7d0.png

MATLAB的bode走起,画出两个框图的伯德图,其中

113e6762362cc976be6b4f9e94ae79b9.png
传统PI电流环扰动传函的伯德图

942f55abab4281bca9828c70e731f1da.png
基于模型电流环扰动传递函数伯德图

从图中能看出来,前者的带宽比后者要大,但咱得注意,这是对噪声输入的带宽,谁带宽大,意味着谁更容易受到噪声的影响。在抗扰方面,显然基于模型的电流环要比传统PI电流环要强得多。

性能优异的前馈控制

基于模型的电流环是前馈控制的一种,具备以下特点:

1.没有积分环节,系统响应速度更快

2.反电势噪声带宽小,电流、转速波动更小。

可见基于模型的电流环,是一种性能优越的反馈-前馈控制器。实际情况中,如果没有基于模型的前馈控制,高速电机的d轴经常会出现带宽不足而失控的情况。这种时候,要么就是提高控制器的控制频率,要么就是加入基于模型的控制。

实际情况是,C620电调16K的控制效果,使用基于模型的电流环在10K左右就能够达到。

知乎视频​www.zhihu.com

鲁棒控制

且慢!众所周知,电机的模型你真的能准确得到?KV值有虚标的,数字电桥也有精度限制,加上电流、速度传感器自己本身也有误差。这会对基于模型电流环有什么影响吗?

影响当然是有的,由于模型不准,又缺乏积分环节,最直接的影响就是电流控制的有差。电流环是一个有差系统,既然前馈没办法补准,那光靠反馈增益是不可能补完剩下的部分的。这种“有差”的程度,可以用“参数鲁棒性”(robust)一词进行描述。

如果一个系统的有差度受到模型参数影响而变化不大,则称该系统参数鲁棒性较强;
如果一个系统的有差度受到模型参数影响而变化较大,则称该系统参数鲁棒性较弱。

而鲁棒控制的实现,这又是一门学问了。

今天先到这里吧,顺带一提,我永远喜欢憋笑主唱。

3a6071f62b76b43fa108082fbb48d9f3.png


推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 处理docker容器时间和宿主机时间不一致问题的方法
    本文介绍了处理docker容器时间和宿主机时间不一致问题的方法,包括复制主机的localtime到容器、处理报错情况以及重启容器的步骤。通过这些方法,可以解决docker容器时间和宿主机时间不一致的问题。 ... [详细]
  • 怀疑是每次都在新建文件,具体代码如下 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
author-avatar
手机用户2502852037
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有