电机参数辨识算法(2)——基于高频注入的磁链辨识策略

电机参数辨识算法(1)——基于高频注入的电感辨识策略-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_46903653/article/details/136722750?spm=1001.2014.3001.5501上一期已经讲过了电感辨识方法。

今天这是参数辨识的第二期,今天来简单看看磁链的辨识。

Tpwm = 1e-4;%开关周期

Tspeed = 1e-4;%转速采样周期

Pn = 4;%电机极对数

Ld = 4.5e-3;

Lq = 6.2e-3;

Rs = 0.7;%定子电阻

flux = 0.137;%永磁体磁链

J = 0.00126;%转动惯量

Vdc = 150;%直流母线电压

iqmax = 5;%额定电流

Tdead = 5e-7;%死区时间

TEnable = 0.3;

相对于上一期而已,我把电感参数改的比较小了,这样的话,可以看看在这种电感相对较小的电机的辨识效果。

1.滤波的方式

上一期我有说到,如果用低通滤波器的话,还是会有一部分交流量无法滤除,所以我自己用了平均值滤波,而论文里面用的是低通滤波。

然后我在想,是不是我仿真里的低通滤波的截止频率还是太大了?(上一期内容我取了10Hz的截止频率)我现在试着把低通滤波截止频率改一改,看看滤波效果如何。

仿真中,还是选择在0.3s开启参数辨识。

平均值滤波
低通滤波截止频率0.1Hz
低通滤波截止频率0.5Hz

可以看到,如果低通滤波截止频率取0.1Hz,辨识的电感脉动很小,但是收敛非常慢!如果低通滤波截止频率取0.5Hz,辨识的电感收敛比较快,但是电感脉动大的离谱!

所以这么看来,还是用平均值滤波比较好。


2.电阻辨识

文章中给了提取电阻信息的公式。

但是,文章中实际上并没有进行电阻的辨识。只辨识了d-q电感以及磁链。

在无差拍预测电流控制中,电阻这一相其实往往被忽略的。从下面这个式子的红色方框中可以看到,假如你电阻是1Ω,控制周期100us,电感1mH,那么Ts*R/L=0.1,所以这一项常是被忽略的

 

 


3.磁链辨识

那我们接下来看看这篇文章的磁链辨识。文章上通过一个低通滤波器,提取电压参考值的直流分量以及电流的直流分量。

 

从上文的滤波器分析来看,我觉得这里还是不应该用低通滤波器,因为低通滤波始终没有办法提取出来有效的直流分量。所以,我直接采用了平均值滤波!

(1)平均值滤波模块的验证

从这个式子(30)来看,我们需要平均滤波的物理量为:(1)d-q轴的电压参考给定值;(2)d-q电流的测量值。

我这里已经搭建好了平均滤波的模块,我们直接来看看滤波效果。仿真工况就是,电机带2Nm负载,额定转速是1000r/min,0.3s时开始注入高频电流(即启用辨识程序)。

 

滤波前的电压参考值
滤波前的电流值

 

标题

 

 可以看到,在平均值滤波之后,所有的变量都变成了直流。(不要问我为什么d-q电流滤波之后还有大纹波,那是因为自己把电流放大了,自己注意看幅值)

(2)小磁链辨识效果的验证

滤波模块搭建好了之后,那就可以直接用式子(30)来计算磁链数值了。

这里要注意一点,式子(30)是利用平均值滤波之后的电流以及电压参数,那你肯定得等平均值滤波稳定之后再开始进行磁链的计算对吧。

从上面的波形看来,平均值滤波之后的d轴电流,大概在1.25s才稳定,所以我们开始磁链辨识时间设置应大于1.25s之后。我这里设置为1.5s开始磁链辨识。

我把磁链初值设置为0.137,也就是标准值。然后发现1.5s开始磁链辨识之后,辨识得到的误差非常非常大!!!!!!!

(3)大磁链辨识效果的验证

然后我再看看了文献中的磁链,文献中的磁链非常巨大!磁链数值为0.8Wb,是我电机磁链数值的五倍之多。

文章中也说了,逆变器非线性对磁链辨识有一定的影响。我这个辨识效果不好的原因估计就是,逆变器非线性的占比相对较大了(我仿真中的死区设置为0.5us)。

那我接下来把磁链放大为原来的五倍,注意,此时直流母线电压也要相应提高!

修改的电机参数如下:

flux = 0.137*5;%永磁体磁链

J = 0.00126*5;%转动惯量

Vdc = 150*5;%直流母线电压

可以看到当前磁链数值是0.685Wb,辨识结果大致为0.85Wb左右。说明误差不小,但是误差的占比以及小了很多。

(4)辨识效果差的原因分析

注意一下,发现上文辨识的磁链数值波动非常大!

找了找原因。主要是平均滤波之后的d轴电流很小。因为我采用id=0控制,所以滤波之后的id都是在0上下波动的。

再看看式子(30),磁链数值的分母为id,所以相当于一个接近于0的数做为分母,那这个id轻微变化,肯定就会造成磁链的巨大波动。

论文中采用的是IPMSM,其id不等于0,所以论文中的磁链估计效果很好。那我现在采用id=-5,把id的基波参考值给大一些,这样有利于计算磁链。

(5)采用id≠0控制后的磁链辨识效果

采用id=-5之后,平均滤波的结果以及磁链辨识结果如下。可以看到,磁链的辨识结果大致为0.6825左右,与真实值的误差非常非常之小!

那我再转过头来想想,刚才在磁链比较低的时候,辨识效果不行,是不是也是因为id=0的原因呢?

那好,我现在同样实行id=-5,对磁链为0.137的电机进行磁链辨识。辨识结果如下,辨识的磁链数值为0.136左右。误差占比(0.001/0.137)*100%=0.73%,这个误差太完美了,这么低的误差,不得不佩服


4.仿真连接

和参数辨识的上一讲内容一样,上面的模块验证,只是在离线的方式下进行的,磁链辨识模块还没有接入到系统当中。那么,我们已经验证了磁链辨识模块的可行性,我们现在把搭建好的磁链辨识模块与整个控制回路相链接,看看在控制器运行时,磁链模块的辨识效果吧。

辨识模块以及整个控制器的simulink模型如下:

(1)控制器电感参数设置为实际电感的两倍,控制器磁链参数设置为实际磁链的四倍下的仿真结果

仿真参数如下:

Tpwm = 1e-4;%开关周期

Tspeed = 1e-4;%转速采样周期

Pn = 4;%电机极对数

Ld = 4.5e-3;

Lq = 6.2e-3;

Rs = 0.7;%定子电阻

flux = 0.137*1;%永磁体磁链

J = 0.00126*1;%转动惯量

Vdc = 150*1;%直流母线电压

iqmax = 8;%额定电流

Tdead = 5e-7;%死区时间

TEnable = 0.3;

%这是控制器使用的电机参数

Ld1 = 2*Ld;%电感参数设置为实际电感的两倍

Lq1 = 2*Lq;

Rs1 = Rs;%电阻参数设置为实际电阻

flux1 = 4*flux;%磁链参数设置为实际磁链的四倍

这里我采用与论文中一致的失配方式,即控制器电感参数设置为实际电感的两倍,控制器磁链参数设置为实际磁链的四倍。

仿真工况:负载2Nm,id参考值为-5A(为了更好的辨识磁链数值),转速保持1000r/min。0.3s开始注入高频电流进行电感辨识,同时对高频电流进行平均值滤波,当平均值滤波结果稳定后,也就是1.3s开始进行磁链辨识。2.3s结束高频电流注入,即停止电感辨识,同时也停止磁链辨识。

定子三相电流、转矩、转速波形
辨识结果

首先呢,先看辨识的结果。由于我们把控制器磁链设置为真实磁链的4倍,这个偏差属于非常大了的。实际中不会出现那么大的偏差(偏差个50%就很夸张了),除非永磁体在高温长时间运行发生了退磁。这个较大的偏差就导致了q轴电感估计结果有一定偏差了,但是也还好,偏差也不大。其次,在1.3s开始辨识磁链的时候,磁链立马就达到了真实数值,辨识效果非常好!这是因为我刚才在前面搭建模型的时候也说了,我搭建的模型里,是等待电压以及电流的平均滤波数值稳定之后,才开始计算磁链。用已经稳定的数值,计算出磁链,这就使得磁链立马达到了真实值

总的来说,在电感和磁链分别发生2倍/4倍失配的情况下,最终辨识的精度还是很高的!

接下来看看无差拍控制器中,电流的预测值和真实值的对比。注意看,在1.3s之前,由于磁链失配,给q轴电流的预测值和真实值之间,带来了一个巨大的静差。在1.3s之后,由于磁链达到了真实值,所以静差就立马被消除了。

为什么磁链失配会产生静差?可以看看我之前的这篇文章。

永磁同步电机高性能控制算法(7)——基于PI调节器控制、无差拍预测电流控制、扩张状态观测器-无差拍预测电流控制、扩张状态观测器-无模型预测控制的仿真对比 - 知乎在之前的文章中就已经做过PI、DPCC(无差拍预测电流控制)、基于ESO(扩张状态观测器)的DPCC,以及基于ESO的MFPC(无模型预测控制),但是当时还没有进行一个详细的对比。 烦恼归林:永磁同步电机高性能控制算法…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/680117350

辨识前的相电流THD
辨识后的相电流THD

辨识前后,相电流THD由2.23%降低至1.43%了。

(2)控制器电感参数设置为实际电感的两倍,控制器磁链参数设置为实际磁链的两倍下的仿真结果

现在把磁链失配由四倍改为两倍,把负载转矩降低为原来的一半。

从下图可以看到,磁链失配由四倍变为两倍的时候,q轴电感的误差得到了一定的减小。

辨识结果

 

 

d-q电流波形

从这个图可以看到,辨识前后,dq电流中由电感失配产生的高频电流脉动以及由磁链产生的预测误差都被消除了。

辨识前的相电流THD

 

辨识后的相电流THD

 

 

辨识前后的相电流THD由5.24%降低至1.50%,可见,本文的方法非常好。


5.总结

在参数辨识的这两篇分享中,我们完成了电感以及磁链的辨识,而且辨识的效果是非常好的。

在文章中你们也可以看到,如果采用文章中的低通滤波器,是没办法实现那么好的辨识效果。所以呢,自己在复现文章模型的时候,应该仔细思考如何解决文章中的问题,而不是照搬文章的内容。(这也是一个产生创新点的好途径)

当文章复现效果不好的时候,可以看看是不是自己的模型搭建错了,或者说看看论文的电机参数,是不是由于电机参数不一致导致的问题。就比如上文,我刚刚搭建磁链辨识模块的时候,效果并不好,最后发现是自己采用id=0控制的问题。

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

【数学建模】熵权法

之前我们学了层次分析法和topsis法,但是主观性十分强,有没有科学的方法得出权重呢?今天,我们来学习熵权法! 基本概念: 熵权法,物理学名词,按照信息论基本原理的解释,信息…

SpringBoot+vue3打造企业级一体化SaaS系统

SpringBootvue3打造企业级一体化SaaS系统 简介:    全面提升前后端技术水平,独立完成全栈项目开发能力,快速进击全栈工程师,最终在面试中脱颖而出。整合后端主流技术(Spring Boot、物理数据库隔离、加载动态权限、多…

深度学习-2.6在MINST-FASHION上实现神经网络的学习流程

文章目录 在MINST-FASHION上实现神经网络的学习流程1. 导库2. 导入数据,分割小批量3. 定义神经网络4.定义训练函数5.进行训练与评估 在MINST-FASHION上实现神经网络的学习流程 现在我们要整合本节课中所有的代码实现一个完整的训练流程。 首先要梳理一下整个流程&a…

用try...catch进行判断

在写一些提交数据的判断上,有时候会写下面的ifelse的判断方法,少一点还好,多的话就很难受也不好看。 if(!that.driverObj.contrary){this.__utils.showToast(请先上传驾驶证副页图片);return false } if(!this.driverObj.start){this.__util…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Flex)

以弹性方式布局子组件的容器组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。Flex组件在渲染时存在二次布局过程,因此在对性能有严格要求的场景下建议使用Column、Row代替。Flex组…

Vue3基础笔记(1)模版语法 属性绑定 渲染

Vue全称Vue.js是一种渐进式的JavaScript框架,采用自底向上增量开发的设计,核心库只关注视图层。性能丰富,完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用,适用于场景丰富的web前端框架。灵活性和可逐步集成…

149.乐理基础-七和弦的第一转位、第二转位、第三转位

内容参考于:三分钟音乐社 上一个内容:148.常用的7个七和弦结构与简称 上一个内容里练习的答案: 前置内容:必须看过 140.音程的转位 和 146.三和弦的第一转位、第二转位这两个 现在还是狭义上、理论上的转位,下面用C…

深度学习专家学习计划

深度学习专家学习计划 一、学习背景与目标 作为一名有6年工作经验的Java开发人员,您已具备基本的编程能力和数据处理经验。现计划转岗至深度学习领域,成为深度学习专家。本计划将结合您的工作背景和现有知识,为您制定详细且精确的学习计划,帮助您逐步达到专家水平。 二、…

高校实验室科研仪器开放共享存在的问题及对策建议

随着科技的迅速发展和高校科研水平的提高,高校实验室科研仪器的开放共享已经成为推动科研进步和创新发展的重要手段。然而,在实际操作中,我们也面临着诸多问题和挑战。本文将分析高校实验室科研仪器开放共享存在的问题,并提出相应…

【前言】神经网络与深度学习简介

如果您已经了解过神经网络与深度学习,请直接跳转到第一章学习 概念: 神经网络,一种基于生物启发式编程范式,它使计算机能够从观测数据中学习 深度学习,一套用于神经网络学习的强大技术集合 简介 神经网络和深度学习…

c# MD5加密函数

/// <summary> /// 对字符串进行MD5运算 /// </summary> /// <param name"str"></param> /// <returns></returns> public static string GetMd5String(string str) { …

杂七杂八111

MQ 用处 一、异步。可提高性能和吞吐量 二、解耦 三、削峰 四、可靠。常用消息队列可以保证消息不丢失、不重复消费、消息顺序、消息幂等 选型 一Kafak:吞吐量最大&#xff0c;性能最好&#xff0c;集群高可用。缺点&#xff1a;会丢数据&#xff0c;功能较单一。 二Ra…

javaEE7

1. <% page pageEncoding"UTF-8"%><% page import"java.io.*"%> <% page import"java.util.*"%> <% page import"java.math.*"%> <html> <head><title>网站计数器</title></head&…

【软件测试基础篇】第二节.黑盒测试中常见方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言⼀、等价类法&#xff08;解决穷举问题&#xff09;二、边界值法&#xff08;解决边界限制问题&#xff09;三、正交表法&#xff08;解决多条件依赖问题&#…

媒体发稿:澳门媒体发稿7个流程

推广平台澳门是一个重要的度假旅游娱乐终点&#xff0c;都是媒体领域热议的话题。对于澳门的媒体发稿营销推广要求&#xff0c;大家提供了一个简单易用的套餐系统软件&#xff0c;帮助大家在澳门媒体上发表推广文章。下面我们就根据7个阶段&#xff0c;详解构建这一套餐推广平台…

Python如何处理拥塞控制

拥塞控制是计算机网络中用于防止网络拥塞&#xff08;即过多的数据导致网络性能下降&#xff09;的一系列技术和算法。在Python中&#xff0c;处理拥塞控制通常不直接涉及到代码层面的实现&#xff0c;因为拥塞控制主要是在网络协议栈&#xff08;如TCP/IP&#xff09;和操作系…

echarts tooltip提示组件框自定义浮窗内容

echarts tooltip提示组件框自定义浮窗内容 tooltip提示组件框 有三种浮窗展示方法 第一种&#xff1a;默认展示 第二种&#xff1a;字符串模板 第三种&#xff1a;回调函数 第二种 formatter&#xff08;字符串模板&#xff09; 模板变量有 {a}, {b}&#xff0c;{c}&#xff0…

C++ 作业 24/3/14

1、成员函数版本实现算术运算符的重载&#xff1b;全局函数版本实现算术运算符的重载 #include <iostream>using namespace std;class Test {friend const Test operator-(const Test &L,const Test &R); private:int c;int n; public:Test(){}Test(int c,int n…

LeetCode 热题 100 | 回溯(二)

目录 1 39. 组合总和 2 22. 括号生成 3 79. 单词搜索 菜鸟做题&#xff0c;语言是 C&#xff0c;感冒快好版 关于对回溯算法的理解请参照我的上一篇博客&#xff1b; 在之后的博客中&#xff0c;我将只分析回溯算法中的 for 循环。 1 39. 组合总和 题眼&#xff1a;c…

VBA_MF系列技术资料1-400

MF系列VBA技术资料1-400 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-0…