永磁同步电机谐波抑制算法(8)——基于自适应带宽扩张状态观测器的采样电流偏置误差补偿办法

news2024/11/16 23:39:00

1.前言

在上一期内容中,已经介绍了采样电流的偏置误差the current measurement offset error /CMOE(这个采样电流偏置误差通常认为是直流DC偏置,所以其在dq电流中会造成一次谐波)。如果没看过上一期内容,那先需要补一补上期内容

http://t.csdnimg.cn/6xhC9icon-default.png?t=N7T8http://t.csdnimg.cn/6xhC9

上一期内容用的是PI调节器来提取直流DC偏置。虽然方法很简单,但是是存在一些问题的(参考文献见上篇内容)

1)由PI型观测器简化的一阶低通滤波特性可能不足以处理估计的CMOE中的交流分量。这一问题会导致PI型观测器容易受到参数失配的影响

2)PI型观测器中的固定增益意味着固定的滤波器带宽,并且估计性能可能随着频率变化的交流分量而下降。

3)由于永磁同步电机磁路的不对称性,在静止坐标系下直接设计永磁同步电机的CMOE观测器是困难的(上一篇文章是针对于SPMSM,而不是IPMSM)

为了解决PI调节器用于CMOE补偿出现的上述问题,接下来引入扩张状态观测器/ESO,将ESO用于CMOE补偿

2.基于扩张状态观测器的采样电流偏置误差补偿办法

2.1 IPMSM在静止两相坐标系下的数学模型

这里我就直接贴公式了。

 2.2 基于ESO的CMOE补偿办法

 

 

根据式子(34)可以看到,如果采用了ESO,实际偏置电流到估计偏置电流的传递函数为一个二阶低通滤波器。根据上一期内容,采用PI调节器的话,实际偏置电流到估计偏置电流的传递函数为一个一阶低通滤波器

一二阶低通滤波器的伯德图如下。注意到,在高频段,二阶低通滤波器的幅值更小,这意味着二阶LPF具有更好的滤波性能。由于这一点,基于ESO的观测器表现更好的干扰,从交流分量所造成的电机参数不匹配比PI型观测器。

2.3两种偏置电流提取方法在相同带宽下的效果

下面将仿真对比两种偏置电流提取方法的差别,或者说,对比一二阶低通滤波器的差别。

仿真参数:

Ts = 10e-7;%仿真步长

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

Tsample = Tpwm/1;%采样周期/控制周期

Tspeed = Tsample;%转速采样周期

Tdead = 2e-6;%死区时间

Pn = 4;%电机极对数

Ld = 4e-3;%d轴电感电感

Lq = 8e-3;%q轴电感电感

Rs = 1;%定子电阻

flux = 0.1688;%永磁体磁链

Vdc = 400;%直流母线电压

iqmax = 20;%额定电流

J = 4e-3;%转动惯量

B = 2e-3;%阻尼系数

n_init = 1000;%初始转速

fc_lpf = 200;%转速计算的低通滤波器截止频率

%转速环PI参数

Kpw = 0.25;

Kiw = 50;

%电流环PI参数

Ld1 = 1*Ld;

Lq1 = 1*Lq;

flux1 = 1*flux;

Rs1 = 1*Rs;

fc = 500;%电流环带宽

offset = 0.5;%偏置电流

仿真工况如下图所示,0.2s突加负载,0.6s减速(因为是IPMSM,这里我没采用id=0控制,我把id参考值设置为-1A)。

两种偏置电流提取方法的带宽都设置为wc=10,观测两种方法提取两相静止坐标系下直流偏置的情况。

——————————————————

“实际电流值”——指的是通过电机实际的ABC三相电流换算出来的dq电流;

“读取电流值”——指的是通过电机实际的AB两相电流以及偏置电流换算出来的dq电流,这是控制器看到的dq电流(包含了采样电流偏差误差CMOE)。

我们肯定是希望“实际电流值”与“读取电流值”完全相等,否则你就没办法实现很好的控制性能。假如“实际电流值”与“读取电流值”不等,你把d轴的读取电流值控制为了0,但是实际上的d轴电流不为0,那么你其实是没有实现id=0控制的。

——————————————————

PI:

 ESO:

很明显,在基于ESO的偏置电流提取方法中,几乎看不到交流脉动。而基于PI的偏置电流提取方法出现很明显的交流脉动。而且基于ESO的偏置电流提取方法中,实际电流与读取电流基本无误差;而基于PI的偏置电流提取方法出现一定的电流误差

即使把基于PI的偏置电流提取方法的带宽降低到2.5,基于PI的偏置电流提取方法仍具有更大的交流脉动。

 

2.4两种偏置电流提取方法在相同参数失配下的对比

在文章中,是分析了不同参数失配对直流偏置提取的影响。文章是这么解释的,参数失配造成的影响主要表现为交流形式,而ESO对这些交流扰动有非常好的抑制效果,所以ESO受到的参数失配影响更小!虽然电阻失配的表现形式为直流,但是最后也是可以被ESO抵消的。

 

 

下面进行两种方法在参数失配下的对比。基于PI的偏置电流提取方法的带宽取wc=2.5,基于ESO的偏置电流提取方法的带宽取wc=10。

2.4.1电感失配的对比

这里我把控制电感设置为实际电机电感的1.5倍进行对比。

PI:

ESO:

2.4.2电阻失配的对比

这里我把控制电阻设置为实际电机电阻的0.5倍进行对比。

PI:

ESO:

2.4.3磁链失配的对比

这里我把控制磁链设置为实际电机磁链的1.5倍进行对比。

PI:

ESO:

 

3.基于自适应带宽扩张状态观测器的采样电流偏置误差补偿办法

3.1固定带宽ESO存在的问题

在静止参考系中,估计误差分量(这是交流量)的频率与电动机的转子速度一致。然而,随着电机速度的变化,具有固定增益的ESO在变频交流分量下的滤波性能可能会下降。

如下图所示电机0.6s之前的转速为2000RPM,转速降低到1000RPM之后,估计的直流偏置中,出现了一定的交流脉动。

这一点很好解释,毕竟ESO也是个低通滤波器,转速降低之后,相当于电机的电频率向低通滤波器的截止频率靠近,所以滤波效果开始减弱

在参数失配后(我这里以磁链为实际磁链的1.5倍为例子),这一问题将会被进一步放大。

 

3.2自适应带宽ESO

因此,需要根据电机转速,来实时确定一个可变的ESO带宽。文章中需要再确定一个u值,u是用于转速和带宽之间的换算。

我就懒得去调节u了。我的想法是(电机的额定转速为2000RPM),我电机转速在1500RPM及以上时,ESO的带宽都取为wc_max;我电机转速在500RPM及以上时,ESO的带宽都取为wc_min;电机转速在500RPM到1500RPM时,都是按比例取带宽。

 我下面取wc_max=25,wc_min=2.5看看效果。

 

 

4.总结

1)扩展状态观测器替代原来的PI调节器,可以有效抑制提取电流中的交流分量,进而精准提取采样电流偏置误差/CMOE中的直流偏置。而且扩展状态观测器可以有效抑制参数失配带来的交流扰动,有效增强了该CMOE方法的参数鲁棒性。

2)采用自适应带宽的方式,可以保证该方法在各个转速下都具有比较好的直流提取效果。

说明:

我这里取到带宽都算比较高了,如果按照论文里的,ESO带宽调的很小,然后运行时间拉长一些,可以实现非常稳定的直流提取效果(论文中的每格时间都是4s,总运行时长都在几十s左右)。

下图是我把ESO带宽调小,仿真时间稍微拉长一点的效果。可以看到,这时候提取的直流量是非常稳定且无交流扰动的。

 

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

SSRF-labs-master靶场

目录 file_get_content.php sql_connect.php download.php dns-spoofing.php dns_rebinding.php 访问链接 http://127.0.0.1/SSRF/# file_get_content.php 在编程语言中,有一些函数可以获取本地保存文件的内容。这些功能可能能够从远程URL以及本地文件 如果没…

C++第二十九弹---C++继承机制深度剖析(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 2.基类和派生…

常见的手电筒芯片功能模式选型 单路双路可用

常见的手电筒芯片如下 单双路输出 带充电功能和不带充电功能的 外围结构简单、无需多余的元器件 搜恒森宇电子了解更多相关功能! 首页

Spring随笔

Spring随笔 BeanFactory和ApplictionContextbean增强 AutowiredAnnotationBeanPostProcessor工厂增强 BeanFactory和ApplictionContext BeanFactory装载了bean实例,一个容器,提供了对bean的增删改查 ApplictionContext继承了factory,除此之外…

MyBatis基础配置

一、M y B a t i s 配 置 文 件 1.为什么学习MyBatis配置文件 功能:构建SqlSessionFactory的依据。 意义:MyBatis最为核心的内容,对MyBatis的使用影响很大。 注意:配置文件的层次顺序不能颠倒,一旦颠倒会出现异常。 …

NLP与搜广推常见面试问题

1 auc指标 AUC的两种意义 一个是ROC曲线的面积另外一个是统计意义。从统计学角度理解,AUC等于随机挑选一个正样本和负样本时,模型对正样本的预测分数大于负样本的预测分数的概率。下图为搜广推场景下的一个计算auc的例子

如何查找OBS的终端节点(Endpoint)和访问域名

目录 一、参考链接二、终端节点(Endpoint)三、访问域名 一、参考链接 https://support.huaweicloud.com/productdesc-obs/obs_03_0152.html 二、终端节点(Endpoint) OBS为每个区域提供一个终端节点,终端节点可以理解…

JVM性能调优全指南:高流量电商系统的最佳实践

1.G1(Garbage-First) 官网: G1 Garbage Collection G1收集器是Java 7中引入的垃圾收集器,用于替代CMS(Concurrent Mark-Sweep)收集器。它主要针对大内存、多核CPU环境下的应用场景,具有以下特点: 分代收集:G1仍然保留了分代的概念,但新生代和老年代不再是物理隔离的,…

37 列表推导式

列表推导式(list comprehension) 也成为列表解析式,可以使用非常简洁的方式对列表或其他可迭代对象的元素进行遍历、过滤或再次计算,快速生成满足特定需求的新列表,代码非常简洁,具有很强的可读性,是 pytho…

抖音视频素材网站有哪些?非常好用的5个抖音视频素材库分享

在打造引人入胜的抖音视频时,选择高品质的视频素材至关重要。优选的素材不仅能够显著提升视频的吸引力,还能让你的作品在众多视频中突出重围。对于抖音创作者而言,让我们探索一些备受推崇的视频素材平台,帮助你制作出既专业又引人…

C:操作符介绍-学习笔记

目录 引言&#xff1a; 1、操作符的分类&#xff1a; 2、原码&#xff0c;反码&#xff0c;补码 2.1 介绍 2.2 作用 3、移位操作符&#xff1a;>>、 << 3.1 左移操作符 &#xff1a;<< 3.1.1 正整数移动 3.1.2 负整数移动 3.2 右移操作符&#xff…

Unity GameObject学习笔记

GameObject成员变量 GameObject静态方法 //准备用来克隆的对象//1.直接是场景上的某个对象//2.可以是一个预制体对象public GameObject Myobj; #region 知识点二 GameObject中的静态方法创建自带几何体只要得到了一个GameObject对象 我就可以得到它身上挂载的任何脚本信息GameO…

YotoR(You Only Transform One Representation)

本文介绍了一种名为YotoR&#xff08;You Only Transform One Representation&#xff09;的新型深度学习目标检测模型。该模型将Swin Transformers与YoloR架构相结合。在自然语言处理领域引起革命的Transformer技术&#xff0c;如今同样对计算机视觉产生了深远影响&#xff0c…

7.29 模拟赛总结 平面图欧拉定理

复盘 7:40 开题 开题失败&#xff0c;由于前一天有 cf&#xff0c;模拟赛移到下午了 13:45 开题 看 T1&#xff0c;题意很抽象&#xff0c;理清后发现&#xff1a;这直接 dj 不就行了&#xff1f;不会错吧不会错吧&#xff0c;看着 n 1000 n1000 n1000 的数据范围还是不确…

java实现权重轮询算法

package com.example.demo.demos.web.nginx;import java.util.ArrayList; import java.util.List;public class WeightedRoundRobin {private static List<Server> servers new ArrayList<>(); // 存储服务器的列表private static int currentIndex -1; // 当前服…

APP测试基本流程以及APP测试要点梳理,成功入职就靠它了

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

【MATLAB源码-第161期】基于matlab的OQPSK系统仿真,输出误码率曲线图,眼图以及各节点信号图像对比。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 正交四相移相键控&#xff08;OQPSK&#xff0c;Orthogonal Quadrature Phase Shift Keying&#xff09;是一种数字调制技术&#xff0c;它在传统的QPSK&#xff08;Quadrature Phase Shift Keying&#xff0c;四相移相键控&…

Linux--序列化与反序列化

序列化 序列化是指将数据结构或对象状态转换成可以存储或传输的格式的过程。在序列化过程中&#xff0c;对象的状态信息被转换为可以保持或传输的格式&#xff08;如二进制、XML、JSON等&#xff09;。序列化后的数据可以被写入到文件、数据库、内存缓冲区中&#xff0c;或者通…

jupyter notebook报错: No module named ‘pandas‘

打开jupyter notebook&#xff0c;新建Python3&#xff0c;编写代码import pandas as pd jupyter notebook: No module named pandas 解决办法 :打开Anaconda prompt&#xff0c;输入pip install pandas,安装时可能因为网速原因失败&#xff0c;用同样的命令再试一次&#xf…

数据透视表(二)

文章目录 导入外部数据源创建数据透视表Query 工具下的数据透视表创建如何统计业绩成交情况创建组利用函数构建辅助列创建组手动创建多样分组创建组区间统计创建组按年月日统计数据透视表的多种统计方法计算字段 导入外部数据源创建数据透视表 点击数据选项卡下数据-获取外部数…