matlab模拟电机堵转,关于Matlab仿真变频器起动时出现电机堵转现象的讨论

2024-03-14 17:10

本文主要是介绍matlab模拟电机堵转,关于Matlab仿真变频器起动时出现电机堵转现象的讨论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 引言

在用matlab工具仿真变频器的起动(频率连续上升)过程中,电机出现堵转,可是一旦固定某个频率起动(比如5、12、15hz等任一个频率),在相同的仿真条件下(即力矩提升和负载相同),则不会出现电机堵转这种问题,而是顺利起动成功。为什么会出现这种现象呢?按理说如果按照v/f控制,在基频50hz下应该是恒力矩起动,如果某个频率能带动负载,即能提供这么大的力矩,那么在基频50hz下所有的频率都能提供这样大的力矩,使起动成功,可是为什么在用matlab仿真变频器起动(频率连续上升)时会出现电机堵转的现象呢?下面就针对这个问题来进行分析和讨论。

2 现象分析

201032216242267.gif (1)

通常spwm在计算脉宽采用式(1)时:都是认为ω=ω1为恒值,则θ=ω1t,此时

201032216242524.gif,即在稳态时用式(1)计算脉宽,这时电机转速(频率)是正确的,角频率为w1。

但由于起动过程是一个动态过程,因此在仿真时,ω是一个变量,即ω=ω(t),则θ=ω(t)t,实际角频率

201032216242381.gif,显然多出了一项

201032216242120.gif,即在加速时

201032216242800.gif,实际频率会超过ω(t)。同样在减速时

201032216242920.gif,实际频率会低于ω(t)。即此时不能保证v/f为稳定时的常数。因为在起动时,实际频率比正常运行时的频率大,而电压v是按照正常值上升的,所以实际中得到的v/f压频比当然要比正常时小,所提供的力矩也就要小,这就是为什么连续上升时带不动负载,而固定某个频率却能顺利起动的原因。

例:若电机频率的给定积分曲线为:

201032216242317.gif

但当t=x秒时,电机的频率不是kx,而是2kx。

因为:f(t)=kt

201032216243789.gif (2)

即实际的频率为2kx赫兹。为验证其真实性,在simulink中对其进行仿真,simulink模型如图1所示。

201032216243433.gif

图1 vf曲线的vvvf控制系统仿真

的前半部分是产生一条vf曲线,设定频率是20hz,框图中的限幅值是20hz,系统达到设定频率时的调制度为1。

以k=10,c=20为例,仿真波形如图2所示。

201032216243707.gif

图2 未做处理的变频器起动频率示意波形

图2(a)中可以明显的看出在上升过程中,有一段频率显示比稳定时的频率显示紧密,即此时的频率比稳定时的设定的最大值还要大。从图2(b)中的临界状态也可以看出,从动态转到稳态的过程中,频率反而减小,其原因可以从上面的公式推导中得到解释。

这样的现象对电机起动不利,即起动时出现弱磁,停机时出现过磁,不能保持真正的恒压频比控制。

为了解决这个问题,必须加一个补偿:

补偿角度:

201032216243825.gif (3)

此时

201032216244826.gif

201032216244453.gif就正确了,即在每次计算完角度后减去补偿角度θc。

以上例

201032216244613.gif

此时

201032216245224.gif

在考虑补偿后的simulink仿真模型如图3所示。

201032216245926.gif

图3 带有补偿的vvvf系统

仿真波形如图4所示。

从图4(a)中可以看出,加了补偿后在整个起动过程中,频率是按照正常的斜率上升,能保证真正的恒压频比,从图4(b)中可以看出,在从动态转到动态的过程中,频率不变,因此按照这样的方式进行起动仿真,能够在整个基频下保持恒力矩起动,使电机顺利起动。

201032216245661.gif

图4 变频器起动时频率示意波形

从图4(a)中可以看出,加了补偿后在整个起动过程中,频率是按照正常的斜率上升,能保证真正的恒压频比,从图4(b)中可以看出,在从动态转到动态的过程中,频率不变,因此按照这样的方式进行起动仿真,能够在整个基频下保持恒力矩起动,使电机顺利起动。

人们不禁要问,为什么在以单片机或者dsp控制的变频器在起动过程中不会出现弱磁现象呢?那是因为在单片机或者dsp控制的系统中, 的计算是靠在每个中断周期中进行累加,即先求出△θ=2πfts,再计算θi=θi-1+△θ,在这种情况下,可以避免上述起动或者停机过程中的超频或低频现象,这是因为

201032216245786.gif

但是对于用高级语言编程的场合,如果直接计算 ω=2πf(t)就会出现事实上的超频或低频现象,这一点需要注意。

3 结论通过上面的分析可知,对于采用连续积分来计算频率,实现变频器的起动仿真,会出现超频现象,因此在起动过程中,需要做出相应的补偿措施。但在实际的单片机控制系统中,则不需要考虑这个问题,因为其频率不是连续上升的,而是通过累加上升的。

参考文献[1] 张麟征. 异步电机的暂态分析及其应用[j]. 电机与控制学报, 1997,1(1).

[2] 陈伯时等. 交流调速系统[m]. 北京:机械工业出版社,1998.

[3] 范影乐等. matlab仿真应用详解[m]. 北京:人民邮电出版社,2001.

作者简介

江友华(1974-) 男 上海大学博士研究生 研究方向为电力电子技术与电力传动。

这篇关于matlab模拟电机堵转,关于Matlab仿真变频器起动时出现电机堵转现象的讨论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/809104

相关文章

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

usaco 1.2 Transformations(模拟)

我的做法就是一个一个情况枚举出来 注意计算公式: ( 变换后的矩阵记为C) 顺时针旋转90°:C[i] [j]=A[n-j-1] [i] (旋转180°和270° 可以多转几个九十度来推) 对称:C[i] [n-j-1]=A[i] [j] 代码有点长 。。。 /*ID: who jayLANG: C++TASK: transform*/#include<

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

hdu4431麻将模拟

给13张牌。问增加哪些牌可以胡牌。 胡牌有以下几种情况: 1、一个对子 + 4组 3个相同的牌或者顺子。 2、7个不同的对子。 3、13幺 贪心的思想: 对于某张牌>=3个,先减去3个相同,再组合顺子。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOExcepti

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

【算法专场】模拟(下)

目录 前言 38. 外观数列 算法分析 算法思路 算法代码 1419. 数青蛙 算法分析 算法思路 算法代码  2671. 频率跟踪器 算法分析 算法思路 算法代码 前言 在前面我们已经讲解了什么是模拟算法,这篇主要是讲解在leetcode上遇到的一些模拟题目~ 38. 外观数列 算法分析 这道题其实就是要将连续且相同的字符替换成字符重复的次数+