Simulink永磁同步电机控制仿真:过调制及电流重构

news2024/7/6 18:10:49

在一些高功率密度的应用场景中,追求极致的电压利用率,这个时候要用到过调制技术;当svpwm工作在过调制区域时,逆变电桥会在一个基波周期内多次达到100%占空比,且较多时间处于较高的占空比,这个时候下桥臂电流采样方案无法采样电流,电流重构技术用于该场景下重构无法采样的电流信号。

1、过调制

1.1、svpwm调制

此处讨论过调制相关内容默认读者熟悉svpwm调制相关理论,不熟悉的读者可以通过以下连接了解。

永磁同步电机控制笔记:扇区法svpwm实现及分析

永磁同步电机控制笔记:中点平移法svpwm实现分析

1.2、逆变器输出电压范围

对于三相逆变电桥,能够输出的电压范围如下图。请添加图片描述
图中,V4、V2、V1方向对应U、V、W轴方向。U、V、W三轴的输出电压任意组合,其合成矢量可以落在六边形内的任意区域。其中六边形的边长为 2 3 V d c \frac{2}{3}V_{dc} 32Vdc,六边形的内接圆半径为 3 3 V d c \frac{\sqrt3}{3}V_{dc} 33 Vdc

当svpwm调制的目标电压矢量幅度小于等于 3 3 V d c \frac{\sqrt3}{3}V_{dc} 33 Vdc时,期望输出在上述内接圆内或圆上,轨迹为半径等于 α 2 + β 2 \sqrt{{\alpha}^2 + {\beta}^2} α2+β2 ,逆变电桥能够输出完整的正弦波;

当svpwm调制的目标电压矢量幅度大于 3 3 V d c \frac{\sqrt3}{3}V_{dc} 33 Vdc时,期望输出在上述内接圆外,轨迹为半径大于上述内接圆半径的圆,受逆变器的允许输出范围限制,实际输出被限幅,此时进入过调制区域。

特别的,当svpwm调制的目标电压矢量幅度等于 3 3 V d c \frac{\sqrt3}{3}V_{dc} 33 Vdc时,输出电压在上图中的轨迹为上述六边形的内接圆,此时输出线电压的幅度等于母线电压,电压利用率达到100%.

1.3、过调制代码实现

过调制技术虽然说起来有比较多的门道,但是实现起来格外简单,回归原理的本质,就是期望到了无法输出的范围就进行限幅,当三相输出占空比大于100%时限幅到100%,当输出占空比小于0%时,限幅到0%.

for(pwmCnt=0;pwmCnt<3;pwmCnt++)
{
    // compute the value
    float_t period = (float_t)(EPWM_getTimeBasePeriod(obj->pwmHandle[pwmCnt]));
    float_t V_pu = -pPWMData->Vabc_pu.value[pwmCnt];      // Negative
    float_t V_sat_pu = MATH_sat(V_pu,0.5f,-0.5f);           // -0.5~0.5
    float_t V_sat_dc_pu = V_sat_pu + 0.5f;                 // 0~1.0
    int16_t pwmValue  = (int16_t)(V_sat_dc_pu * period);  //

    // Save current CMP value for OVM
    pPWMData->cmpValue[pwmCnt] = pwmValue;

    // write the PWM data value
    EPWM_setCounterCompareValue(obj->pwmHandle[pwmCnt],
                                EPWM_COUNTER_COMPARE_A,
                                pwmValue);
}

ti参考代码如上。

2、电流重构

2.1、电流重构的应用场景

相比较过调制更值得讨论的是电流重构,在成本敏感的电机驱动器中常采用下桥臂电流采样方案。

下桥臂电流采样方案相比较相间采样方案有如下特点。

  1. 下桥臂电流采样相比较相间采样可以大大减小差分电流信号的共模噪声。
  2. 下桥臂采样到的差分电流信号的对地电压极小。
  3. 下桥臂电流采样方案必须在下桥臂导通的时候才有有效电流信号。

一般来说,高共模抑制比,高耐压的差分运放非常昂贵,虽然下桥臂电流采样有采样死区(此处的采样死区指在下桥臂未导通时无法进行电流采样),但是要比更高的成本更容易接受,何况采样死区可以通过软件算法克服。

单片机或dsp电流采样需要一定的时间,假设完成电流采样的时间为Tmin,当某一相或两相下桥臂导通时间小于Tmin时,需要进行重构;好在我们的电机负载是三相对称负载,其中任意一相电流和电流相位即可反映完整的三相电流信息,且可以证明,不存在某种时刻,三相下桥同时输出小于Tmin.

为了尽可能准确的反映电机电流,下文中把电流重构场景分为重构单相电流和重构两相电流两种情况。

2.2、重构单相电流

根据基尔霍夫电流定律,电路中任一个节点上,在任一时刻,流入节点的电流之和等于流出节点的电流之和。容易分析,在电机负载中,如果任意两相电流已知,第三相电流等于两外两相电流之和的相反数,即:

i c = − i a − i b i_c = -i_a - i_b ic=iaib

2.3、重构两相电流

此处论讨两种通过一相已知电流重构两相未知电流的方法,一种是根据相位直接计算,一种是根据之前的电流以及正常采样的一相电流估算的方法。

若电流相位已知,三相电流可以表示为:

i a = i s s i n ( θ ) i b = i s s i n ( θ + 2 3 π ) i c = i s s i n ( θ − 2 3 π ) i_a = i_s sin(\theta)\\ i_b = i_s sin(\theta + \frac{2}{3}\pi)\\ i_c = i_s sin(\theta - \frac{2}{3}\pi) ia=issin(θ)ib=issin(θ+32π)ic=issin(θ32π)

由以上关系,已知其中一相电流为 i z i_z iz,另外两相分别为
i x = i z s i n ( θ − 2 3 π ) s i n ( θ ) i y = i z s i n ( θ + 2 3 π ) s i n ( θ ) i_x = i_z \frac{sin(\theta - \frac{2}{3}\pi)}{sin(\theta)}\\ i_y = i_z \frac{sin(\theta + \frac{2}{3}\pi)}{sin(\theta)}\\ ix=izsin(θ)sin(θ32π)iy=izsin(θ)sin(θ+32π)

而电流相位又是跟转子位置角相关的。

若转子位置角为 θ \theta θ a a a相电流描述为 i a = i s s i n ( ψ ) i_{a} =i_s sin(\psi) ia=issin(ψ) a a a相电流相位跟转子位置角的关系可以描述如下:

ψ = θ + λ + π 2 = θ + a t a n 2 ( i q , i d ) + π 2 \psi = \theta + \lambda + \frac{\pi}{2} = \theta + atan2(i_q,i_d)+ \frac{\pi}{2} ψ=θ+λ+2π=θ+atan2(iq,id)+2π

推导过程见我的知乎回答:同步电动机的转子位置角和电压相位角以及电流相位角的关系。

3、仿真验证

搭建仿真模型进行验证

请添加图片描述

上溢事件触发电流使用速度控制,调制比给到0.6,给定速度超过电机的最大速度,使得进入最大允许调制比。

仿真中使用pwm采样以及foc运行,通过控制focTigger的时序,使得电流采样先被触发,之后执行foc程序。

为了实现下桥臂电流采样,以及控制电流采样延时,自己搭建三相逆变电桥如下:

请添加图片描述

采样延时为10个系统时钟。

运行仿真。

请添加图片描述

图中figure1为重构后的相电流,figure2为三路上桥臂的驱动信号,figure3为svpwm模块的输出。

可以看到高速时svpwm调制器已经进入过调制区域。输出被限幅到100%占空比,且马鞍波被部分削平,此时三相电流经过重构依然能够保持较为正弦的波形。

请添加图片描述

对比电流重构后的电流和采样到的原始波形。可以看到随着转速的增加,原始采样信号逐渐部分失真,转速越高失真越明显。但是经过重构的电流信号能够一直保持完整。

4、小结

本文分析过调制及电流重构,通过simulink仿真实现了过调制及电流重构,仿真的设计花费了大量的时间,希望能够对各位读者的设计起到帮助。

仿真下载方式,关注微信公众号:深入浅出说电机 回复GTZDLCG获取下载地址。

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

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

相关文章

数据结构系列学习(七) - 链栈(Chain_Stack)

目录 引言&#xff1a; 学习&#xff1a; 代码实现&#xff1a; 头文件&#xff08;Chain_Stack.h&#xff09;&#xff1a; 设置链栈中的元素范型&#xff1a; 链栈的结构体设计&#xff1a; 所有功能函数的声明&#xff1a; 源文件&#xff08;Chain_Stack.cpp&#…

性能测试场景设计之 阶梯性能场景(负载测试场景)

「负载测试&#xff1a;」 逐步增加并发用户数。看服务器的最大拐点区间在哪里。再缩小拐点区间&#xff0c;找出最大并发用户数。 使用方式&#xff1a; 安装 jpgc插件 添加线程组 每次递增10个并发 This group will start&#xff1a;给定当前负载的并发用户数First, wait …

机器学习-集成算法

文章目录集成算法1. 定义2. 具体模型2.1. Bagging2.2. Boosting2.3. Stacking3. 随机森林3.1. 树模型结构3.2. 随机森林的优点3.3. 分类与回归问题3.4. 树模型个数问题3.5. 参数问题(特征重要性)3.6. 可视化展示问题4. 集成基本思想4.1. 硬投票策略步骤4.2. 软投票策略步骤5. B…

【SpringMVC】基础、环境搭建、注解搭建、 and so on……

文章目录SpringMVC【原理】&#xff1a;一、why?&#xff1a;二、环境搭建&#xff08;配置方式&#xff09;&#xff1a;▶1.导入jar包▶2.创建简单测试----创建Controller类继承AbstractController▶3.如何读取Controller文件&#xff0c;创建SpringMVC.xml配置文件&#xf…

使用SPACEDESK时iPad显示Connected-Display OFF解决方法

使用SPACEDESK时iPad显示Connected-Display OFF1. SPACEDESK 概述2. 使用SPACEDESK时iPad显示Connected-Display OFF解决方法结束语1. SPACEDESK 概述 SPACEDESK 是一款网络显示多显示器软件&#xff0c;适用于电脑桌面复制&#xff08;镜像或克隆&#xff09;&#xff0c;能将…

[附源码]java毕业设计代驾服务系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

初识C语言

初识C语言什么是C语言&#xff1a;环境配置&#xff08;VS2019介绍&#xff09;&#xff1a;你的第一个C语言程序常量与变量变量的分类局部变量与全局变量的对比变量的使用&#xff1a;变量的作用域和生命周期&#xff08;重要&#xff09;生命周期常量字符串转义字符注释转义字…

章节1 计算机体系结构

1.2.1-计算机硬件组成-CPU 计算机组成 台式机硬件-内部 台式机硬件-外部结构 CPU Center Processing Unit&#xff08;中央处理器/处理器&#xff09; 常见的电脑处理器&#xff1a; Inetl奔腾8086、酷睿i5 i7 i9&#xff1b;AMD 锐龙 常见的手机处理器&#xff1a; 高通…

SOT-23和SOT-223三极管及MOS管封装区别以及示意图

SOT23封装 三极管 三极管为SOT23封装时&#xff0c;无论是NPN还是PNP。 引脚分布1脚为基极(B)&#xff0c;2脚为发射极(E)&#xff0c;3脚为集电极©。 NPN PNP MOS管 MOS管为SOT23封装时&#xff0c;无论是N-MOS还是P-MOS。 引脚分布1脚为栅极(G)&#xff0c;2脚为源极(S…

Vue3树形控件实现跳转页面

今天想分享的是Vue3中利用element-plus中的树形控件实现跳转页面&#xff0c;做成类似标签页tabs一样的效果。 1、什么是树形控件 树形控件即可以展现层级结构&#xff0c;可以清晰的看到什么需求在哪个项目下&#xff0c;如下图所示 树形控件直通车 2、分析树形控件的基本…

cspj2022 T4 上升点列(point)题解(floyd)

样例一&#xff1a; 8 2 3 1 3 2 3 3 3 6 1 2 2 2 5 5 5 3 样例一输出&#xff1a; 8 样例二&#xff1a; 4 100 10 10 15 25 20 20 30 30 样例二输出&#xff1a; 103 一、题目解析&#xff1a; 平面上有若干个点&#xff0c;若点[i]可以沿着x或y增加方向移动达到点[j…

树的存储结构

双亲存储结构 ● 做法 • 一种顺序存储结构 , 用一组连续空间存储树的所有节点, • 同时在每个节点中附设一个伪指针指示其双亲节点的位置 • 按顺序依次存储 , 逐层逐个节点存储在数组里面 ● 定义存储结构 typedef struct {//定义数据区ElemType data;//指向其双亲在数组中的…

对象的比较(上)PriorityQueue中的底层源码解析

作者&#xff1a;~小明学编程 文章专栏&#xff1a;Java数据结构 格言&#xff1a;目之所及皆为回忆&#xff0c;心之所想皆为过往 目录 问题引入 offer() 扩容 构造方法 grow() siftUp() siftUpComparable&#xff08;&#xff09; 问题引入 问题是这样的&#xff0c…

LeetCode ——160. 相交链表,142. 环形链表 II

✅<1>主页&#xff1a;C语言的前男友 &#x1f4c3;<2>知识讲解&#xff1a;LeetCode经典链表笔试题目 &#x1f525;<3>创作者&#xff1a;C语言的前男友 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f3e1;<5>系统环境&#xff1a;…

机器学习笔记 十八:基于3种方法的随机森林模型分析房屋参数重要性

这里写自定义目录标题1. 探索性数据分析1.1 数据集分割&#xff08;训练集、测试集&#xff09;1.2 模型拟合2. 特征重要性比较2.1 Gini Importance2.2 Permutation Importance2.3 Boruta3. 特征比较3.1 Gini Importance3.2 Permutation Importance3.3 Boruta4. 模型比较将机器…

算法设计与分析复习(一)

判断题&#xff1a; 如果一个NP完全问题能在多项式时间内得到解决&#xff0c;那么NP中的每一个问题都能在多项式时间内求解。&#xff08;T&#xff09;可以用如下方法来证明某结论X成立&#xff1a;先假设X不成立&#xff0c;在此假设基础上推出X成立&#xff0c;则可以证明…

8、Bean的循环依赖问题

8.2 singleton下的set注入产生的循环依赖(解决) A对象中有B属性。B对象中有A属性。这就是循环依赖。我依赖你&#xff0c;你也依赖我。 比如&#xff1a;丈夫类Husband&#xff0c;妻子类Wife。Husband中有Wife的引用。Wife中有Husband的引用。 Husband Data public class …

覆盖变量漏洞

变量覆盖&#xff1a; \> $a 1; $b 2; $a 3; echo $a; > 输出3 .代码从上而下执行&#xff0c;$a被多次定义 常见变量覆盖导致漏洞的函数 \> 经常导致变量覆盖漏洞场景有&#xff1a; $$使用不当 EXTRACT()函数使用不当 PARSE_STR()函数使用不当IMPORT_REQUEST_…

c语言指针(深入了解指针)

前沿&#xff1a; 有人曾说过不会指针等于没有学习c语言&#xff0c;而我也是非常认同这个观点的&#xff0c;要想学习好c语言&#xff0c;指针是比不可缺少的&#xff0c;如果指针学不会c语言也就没办法学好&#xff0c;而向如此越重要的东西越比较难学&#xff0c;但难学并不…

Qt基础之四:Qt信号与槽机制原理及优缺点

信号和插槽用于对象之间的通信。信号和槽机制是Qt的核心特性&#xff0c;可能也是与其他框架提供的特性最大不同的部分。Qt的元对象系统使信号和槽成为可能。 一.简介 在GUI编程中&#xff0c;当我们改变一个控件&#xff0c;通常希望其他控件被通知到。更一般的&#xff0c;…