三相感应电机的建模仿真(2)基于ABC相坐标系S-Fun的仿真模型
1. 概述
2. 三相感应电动机状态方程式
3. 基于S-Function的仿真模型建立
4. 瞬态分析实例
5. 总结
6. 参考文献
1. 概述
前面建立的三相感应电机在ABC相坐标系下的数学模型是一组周期性变系数微分方程(其电感矩阵是转子位置角的函数,转子位置角随时间按正弦规律变化),依目前的数值计算和计算机水平求解这组方程已完全没有问题。自然坐标系下的三相感应电机数学模型,将其用于电机控制系统的设计和控制策略的分析定制也许不太合适,有点勉为其难。而将其用于理解电机的基本物理原理和数学特性,设计更高效的电机和优化算法;对分析三相感应电机的启动、运行和制动等状态,深入理解电机的工作原理和学生工程师的教育培训;提供电机的故障诊断和分析的详细信息;用于电机与机械系统的耦合分析等也许是非常合适的。
电机的数学模型具有多样性,而根据数学模型建立的仿真模型更具多样性 ,因为同一个数学模型可以建立起对应的多个仿真模型。本文将根据前面所建立的三相感应电机在ABC相坐标系下的数学模型,用Matlab的动态分析工具Simulink建立基于S函数的仿真模型,这个仿真模型只对磁链方程和电磁转矩方程建立S函数,而电压方程和机械运动方程仍然用Simulink的基本功能模块建立,这样更方便对三相感应电机的某些运行状态或动态行为进行仿真。用建立的仿真模型对三相感应电动机在三相对称电源下直接起动和在不对称三相电源下直接起动的起动过程进行仿真分析。
2. 三相感应电动机相坐标系下的状态方程式
为阅读方便,将前面建立的三相感应电动机在ABC相坐标系下的状态方程式罗列如下:
(1)
(1)式中,
;
;
:定子绕组互感;
:转子绕组互感;
:定子绕组漏感;
:折算到定子绕组的转子绕组漏电感;
:定转子绕组间的互感;
。
:定子A相绕组与转子a相绕组之间的夹角。
也可以将式(1)中的电压方程式写成以下矩阵形式:
(2)
方程(2)中,
设定、转子零序电流等于零,即设
,则有
;
;
;
(3)
3. 基于S-Function的仿真模型
根据以上数学模型,用Simulink建立的ABC相坐标系下的三相感应电动机仿真模型如图1和图2所示,其中,左边图形为最后的封装形式,它由三个子系统所组成,如右边图形所示。图1中的子系统1表示的是定转子电压方程,子系统2是用S函数表示的磁链方程和电磁转矩方程,S函数取名为flux_torque,如图2所示,子系统3表示的是进行运动方程。这个仿真模型可以作为通用的仿真模型使用,可以用于为了三相感应电动机电源电压不对称、定转子绕组回路串电阻或电抗、起动、调速以及绕组开路故障等的动态行为的仿真分析。如果要考虑主磁路饱和因素,可以在S函数中加以补充。如果要对三相感应电机的定子绕组故障(一相开路,两相短路等)、定子绕组回路串电阻(电抗)起动以及转子绕组回路串电阻起动等可以在子系统1中进行修改来达到仿真的目的。如果要对转子的转动惯量对电机运行性能的影响进行仿真分析,可以修改子系统3来进行。S函数的程序代码如下:
图1. 三相感应电动机ABC相坐标数学模型
图2. 图1中子系统2的S-Fun(磁链和电磁转矩方程)模块
% This S function corresponds to the ABC phase coordinate
% mathematical model of a three-phase induction motorfunction [sys,x0,str,ts,simStateCompliance] =flux_torque(t,x,u,flag,Lsl,Lrl,Lm,np)
%==========================================================================
switch flagcase 0[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;case 1sys=mdlDerivatives(t,x,u);case 2sys=mdlUpdate(t,x,u);case 3sys=mdlOutputs(t,x,u,Lsl,Lrl,Lm,np);case 4sys=mdlGetTimeOfNextVarHit(t,x,u);case 9sys=mdlTerminate(t,x,u);otherwiseDAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
end
%==========================================================================
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 7;
sizes.NumInputs = 7;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0 = zeros(0,0);
str = [];
ts = [0 0];
simStateCompliance = 'UnknownSimState';
%==========================================================================
function sys=mdlDerivatives(t,x,u)
sys = [];%==========================================================================
function sys=mdlUpdate(t,x,u)
sys = [];
%==========================================================================
function sys=mdlOutputs(t,x,u,Lsl,Lrl,Lm,np)
% Write inductance matrix for magnetic flux equation
ang=2/3*pi;
Lml=2/3*Lm;
Ls=Lsl+Lml;
Lr=Lrl+Lml;% Stator inductance matrix
Lss=[Ls -Lml/2 -Lml/2;-Lml/2 Ls -Lml/2;-Lml/2 -Lml/2 Ls];% Rotor inductance matrix
Lrr=[Lr -Lml/2 -Lml/2;-Lml/2 Lr -Lml/2;-Lml/2 -Lml/2 Lr];% Matrix of mutual inductance between stator and rotor
Lsr=Lml*[cos(u(1)),cos(u(1)+ang),cos(u(1)-ang);cos(u(1)-ang),cos(u(1)),cos(u(1)+ang);cos(u(1)+ang),cos(u(1)-ang),cos(u(1))];% Total inductance matrix
L=[Lss Lsr; Lsr' Lrr];%The derivative of the total inductance matrix with respect to the rotor position angle
dLsrdtheta=Lml*[-sin(u(1)), -sin(u(1)+ang),-sin(u(1)-ang);-sin(u(1)-ang),-sin(u(1)), -sin(u(1)+ang);-sin(u(1)+ang),-sin(u(1)-ang),-sin(u(1))];dLdtheta =[zeros(3,3) dLsrdtheta;dLsrdtheta' zeros(3,3)];% Current state variable
Psi=[u(2);u(3);u(4);u(5);u(6);u(7)];
I=L\(Psi);% Electromagnetic torque
Te=I'*dLdtheta*I*np;
sys=[I(1);I(2);I(3);I(4);I(5);I(6);Te];%==========================================================================
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 1; % Example, set the next hit to be one second later.
sys = t + sampleTime;
%==========================================================================
function sys=mdlTerminate(t,x,u)
sys = [];
% end mdlTerminate
4. 瞬态分析实例
仿真计算用的电机参数如下:额定电压Un=220v,额定频率fn=50Hz,极对数np=2,转动惯量J=0.01,摩擦阻尼系数Bm=0.0006,定子电阻Rs=6.033欧,定子电感Lss=0.29614H,转子电阻Rr=4.467欧,转子电感Lrr=0.29614H,定子绕组互感Ms=0.1363H,转子绕组互感Mr=0.1363H,定转子绕组互感Msr=0.2726H;负载转矩TL=7.5N.m。
4.1 对称电源直接起动
在三相额定对称电压下带恒转矩负载TL=7.5N.m直接起动,起动过程的仿真结果图3所示。
设Y接三相对称电源电压为
图3. 三相感应电动机在三相对称电源电压下直接起动时的定子电流特性
图4. 三相感应电动机三相对称电源电压下直接起动时的电磁转矩和转速特性
从图3和图4的仿真结果来看,三相对称定子绕组感应电动机在三相对称电源下起动并稳定运行,起动电流倍数约为5.56,定子稳态电流幅值为3.6A,三相定子电流平衡。电机稳定运行时,电磁转矩无脉振现象,转速为1467r/min。
4.2 非对称电源直接起动
三相感应电动机在不对称电源电压下运行是实际中经常遇到的一个问题,因为当电网中有较大的单相负载(如电炉﹑电焊机等),或者电网中发生暂时性短路故障(两相短路﹑一相接地等),或电网一相断开等都将引起电网三相电压不平衡。
在电动机带恒转矩负载TL=7.5N.m,定子绕组端直接施加三相不对称电压:
直接起动时的仿真结果如图5和图6所示。
图5. 三相感应电动机在非对称三相电源电压下直接起动时的定子电流特性
图6. 三相感应电动机在非对称三相电源电压下直接起动时的转矩和转速特性
从图5和图6的仿真结果可见,三相对称定子绕组感应电动机在三相不对称电源下起动并稳定运行,起动时定子各相的冲击电流(起动过程中的最大电流幅值)与图3的定子电流相比较相差不大,但稳态时电机三相定子电流不平衡,A相电流幅值大为减小(约为0.5A),而另外两相电流幅值都有所增加(约为4.5A)。这种三相定子电流不平衡的程度会随三相电源电压的不平衡程度的增加而增加。电机稳定运行时,电磁转矩波形有明显的二倍频脉振现象,转速也有明显的波动(振动)。起动过程有所延长,稳定转速的数值也略有降低。
从上面的结果可以对称结论:三相电源电压不对称时,电动机的平均起动转矩较小,转速的过渡过程较长,电机的过载能力降低(转矩最大值有所减小);由于电流的波动加剧,使转矩的脉振程度增加,这将会加大电机的电磁噪声和机械振动。用瞬时对称分量法来分析,可知三相感应电动机在电源电压不对称情况下运行时的各不利因素,都是由于负序磁场分量造成的(负序磁场分量的存在还会增加电机的铁耗)。不对称程度增大时,负序磁场分量值变大,上述不利情形将会更为严重。因此,三相异步电动机一般不容许在较严重不对称电源电压下运行,否则必须相应地降低电动机的容量。
对三相感应电动机在电源电压不对称情况下运行的瞬态和稳态过程进行仿真,仿真的结果可以作为电机以及系统控制﹑调节﹑保护装置设计的直接理论依据,对完善电机及其系统的运行性能有实际意义。
5. 总结
本文根据三相感应电机在ABC相坐标系下的数学模型建立了基于S函数的仿真模型,然后应用这个仿真模型对 三相感应电动机在三相对称电源和不对称电源两种情况下的直接起动过程进行了仿真分析。得出了有用的分析结论。
6. 参考文献
(1)黄守道,邓建国,罗德荣. 电机瞬态过程分析德Matlab建模仿真 北京 电子工业出版社,2013
(2)汤蕴璆等 交流电机动态分析. 北京 机械工业出版社 2004
相关文章:

三相感应电机的建模仿真(2)基于ABC相坐标系S-Fun的仿真模型
1. 概述 2. 三相感应电动机状态方程式 3. 基于S-Function的仿真模型建立 4. 瞬态分析实例 5. 总结 6. 参考文献 1. 概述 前面建立的三相感应电机在ABC相坐标系下的数学模型是一组周期性变系数微分方程(其电感矩阵是转子位置角的函数,转子位置角随时…...

开源全新H5充值系统源码/自定义首页+充值页面/灵活对接上游渠道接口
开源全新H5充值系统源码,系统基于thinkphp框架开发,功能已全完善,可灵活对接其他上游渠道接口,默认对接了大猿人接口,另外可无限制自定义创建充值页面,首页支持后台自定义修改,支持三级分销&…...
Linux查看文件的行数,字数,字节数
介绍 在Linux系统中这统计非常方便,只需要简单的几个命令就可以搞定,这个命令就是 wc。 wc --help 用法:wc [选项]... [文件]...或:wc [选项]... --files0-fromF 输出每个指定文件的行数、单词计数和字节数,如果指定…...

【IO】文件操作
🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 文件1.1 认识文件1.2 分清操作的是内存还是硬盘1.3 路径1.3.1 目录结构1.3.2 相对和绝对路径 1.4 文本文件…...

代码随想录算法训练营第74天:路径总结[1]
代码随想录算法训练营第74天:路径总结 A * 算法精讲 (A star算法) 卡码网:126. 骑士的攻击(opens new window) 题目描述 在象棋中,马和象的移动规则分别是“马走日”和“象走田”。现给定骑士的起始坐标和目标…...
用 Emacs 写代码有哪些值得推荐的插件
以下是一些用于 Emacs 写代码的值得推荐的插件: Ido-mode:交互式操作模式,它用列出当前目录所有文件的列表来取代常规的打开文件提示符,能让操作更可视化,快速遍历文件。Smex:可替代普通的 M-x 提示符&…...
自定义注解-手机号验证注解
注解 package com.XX.assess.annotation;import com.XX.assess.util.MobileValidator;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.*;/*** 手机号校验注解* author super*/ Retention(RetentionPolicy.RUNTIME) Targe…...
华为od-C卷200分题目5 -项目排期
华为od-C卷200分题目5 -项目排期 题目描述 项目组共有N个开发人员,项目经理接到了M个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。 假定各个需求之间无任何先后依赖关系,请…...
如何使用Pip从Git仓库安装Python包:深入探索远程依赖管理
如何使用Pip从Git仓库安装Python包:深入探索远程依赖管理 Python的包管理工具Pip使得安装和管理Python库变得非常简单。有时,我们需要安装那些尚未发布到PyPI的包,或者想要尝试最新的开发版本。这时,可以直接从Git仓库安装包。本…...

计算机专业怎么选择电脑
现在高考录取结果基本已经全部出来了,很多同学都如愿以偿的进入到了计算机类专业,现在大部分同学都在为自己的大学生活做准备了,其中第一件事就是买电脑,那计算机类专业该怎么选择电脑呢? 计算机专业是个一类学科&…...
当前国内可用的docker加速器搜集 —— 筑梦之路
可用镜像加速器 以下地址搜集自网络,仅供参考,请自行验证。 1、https://docker.m.daocloud.io2、https://dockerpull.com3、https://atomhub.openatom.cn4、https://docker.1panel.live5、https://dockerhub.jobcher.com6、https://hub.rat.dev7、http…...

【腾讯内推】腾讯2025校招/青云计划/社招——长期有效
及时跟进进度,保证不让简历石沉大海! 涵盖NLP/CV/CG/ML/多模态/数据科学/多媒体等各方向! 定向匹配优质团队/竞争力薪酬/覆盖全球工作地点! 招聘对象: 本硕博:2024年1月-2025年12月毕业的同学 目前最热岗位: 技术研究-自然语言处理 技术研究-计算机视觉 …...
集群限流sentinel实践
参考: 集群模式 实践 集群流控规则 其中 用一个专门的 ClusterFlowConfig 代表集群限流相关配置项,以与现有规则配置项分开: // 全局唯一的规则 ID,由集群限流管控端分配. private Long flowId;// 阈值模式,默认&…...

Flutter-实现双向PK进度条
如何实现一个双向PK进度条 在Flutter应用中,进度条是一个非常常见的组件。而双向PK进度条则能够展示两个对立的数值,如对战中的双方得分对比等。本文将介绍如何实现一个具有双向PK效果的进度条,并支持竖直和斜角两种过渡效果。 1. 需求 我…...

unix高级编程系列之文件I/O
背景 作为linux 开发者,我们不可避免会接触到文件编程。比如通过文件记录程序配置参数,通过字符设备与外设进行通信。因此作为合格的linux开发者,一定要熟练掌握文件编程。在文件编程中,我们一般会有两类接口函数:标准…...
PySide(PyQt),记录最后一次访问文件的路径
1、在同目录下用文本编辑器创建JSON文件,命名为setting.json,并输入以下内容后保存: { "setting": { "last_file": [ "" ] } } 2、应用脚本: import json …...

wordpress企业网站模板免费下载
大气上档次的wordpress企业模板,可以直接免费下载,连注册都不需要,网盘就可以直接下载,是不是嘎嘎给力呢 演示 https://www.jianzhanpress.com/?p5857 下载 链接: https://pan.baidu.com/s/1et7uMYd6--NJEWx-srMG1Q 提取码:…...

[leetcode hot 150]第一百一十七题,填充每个节点的下一个右侧节点
题目: 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下&#x…...
Docker 入门篇(十 一)-- 网络配置总结
Docker 容器技术的核心优势之一是其轻量级的虚拟化和隔离性,而 Docker 网络则是实现容器间以及容器与外界通信的关键。以下是对 Docker 网络的关键知识点的总结。 一、 Docker 网络概述 Docker 网络允许容器进行相互通信以及与外部网络的连接。Docker 提供了多种网…...
【Android面试八股文】Android 有哪些存储数据的方式?
在Android平台上,有多种方式可以存储数据,每种方式都适合不同类型的数据和使用场景。以下是主要的存储数据方式: SharedPreferences(轻量级数据存储): SharedPreferences是用于存储简单键值对数据的最简单方法,适合存储用户偏好设置、配置信息等。数据以XML文件形式存储…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...

认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...