交流异步电机的Modelica模型
Modelica标准库里的异步电机模型过于复杂,为了便于学习,我用最基本的异步电机方程写了一个Modelica模型,公式参照陈伯时的《电力拖动自动控制系统--运动控制系统》第3版的190页到195页的内容,实际的电机模型参数参照了Novotny和Lipo的《Vector Control and Dynamics of AC Drives》第78页的一个例子参数并稍作修改。这个模型没有使用dq坐标系。
本模型中使用的电机主要参数为:
- 额定电压(相电压):220 V
- 额定频率:50 Hz
- 极对数:2
- 转动惯量:0.1 kg.m^2
- 定子电阻:0.531 Ohm
- 转子电阻:0.408 Ohm
- 定子漏感:2.52 mH
- 转子漏感:2.52 mH
- 互感:8.47 mH
上述参数可根据实际电机的参数进行修改,负载转矩和负载惯量可根据实际仿真情况加以修改。
Modelica模型如下。
model SACIM "A Simple AC Induction Motor Model"
type Voltage=Real(unit="V");
type Current=Real(unit="A");
type Resistance=Real(unit="Ohm");
type Inductance=Real(unit="H");
type Speed=Real(unit="r/min");
type Torque=Real(unit="N.m");
type Inertia=Real(unit="kg.m^2");
type Frequency=Real(unit="Hz");
type Flux=Real(unit="Wb");
type Angle=Real(unit="rad");
type AngularVelocity=Real(unit="rad/s");
constant Real Pi = 3.1415926;
Current i_A"A Phase Current of Stator";
Current i_B"B Phase Current of Stator";
Current i_C"C Phase Current of Stator";
Voltage u_A"A Phase Voltage of Stator";
Voltage u_B"B Phase Voltage of Stator";
Voltage u_C"C Phase Voltage of Stator";
Current i_a"A Phase Current of Rotor";
Current i_b"B Phase Current of Rotor";
Current i_c"C Phase Current of Rotor";
Frequency f_s"Frequency of Stator";
Torque Tm"Torque of the Motor";
Speed n"Speed of the Motor";
Flux Psi_A"A Phase Flux-Linkage of Stator";
Flux Psi_B"B Phase Flux-Linkage of Stator";
Flux Psi_C"C Phase Flux-Linkage of Stator";
Flux Psi_a"a Phase Flux-Linkage of Rotor";
Flux Psi_b"b Phase Flux-Linkage of Rotor";
Flux Psi_c"c Phase Flux-Linkage of Rotor";
Angle phi"Electrical Angle of Rotor";
Angle phi_m"Mechnical Angle of Rotor";
AngularVelocity w"Angular Velocity of Rotor";
Torque Tl"Load Torque";
parameter Resistance Rs = 0.531"Stator Resistance";
parameter Resistance Rr = 0.408"Rotor Resistance";
parameter Inductance Ls = 0.00252"Stator Leakage Inductance";
parameter Inductance Lr = 0.00252"Rotor Leakage Inductance";
parameter Inductance Lm = 0.00847"Mutual Inductance";
parameter Frequency f_N = 50"Rated Frequency of Stator";
parameter Voltage u_N = 220"Rated Phase Voltage of Stator";
parameter Real p =2"number of pole pairs";
parameter Inertia Jm = 0.1"Motor Inertia";
parameter Inertia Jl = 0.1"Load Inertia";
initial equation
Psi_A = 0;
Psi_B = 0;
Psi_C = 0;
Psi_a = 0;
Psi_b = 0;
Psi_c = 0;
phi = 0;
w = 0;
equation
u_A = Rs * i_A + 1000 * der(Psi_A);
u_B = Rs * i_B + 1000 * der(Psi_B);
u_C = Rs * i_C + 1000 * der(Psi_C);
0 = Rr * i_a + 1000 * der(Psi_a);
0 = Rr * i_b + 1000 * der(Psi_b);
0 = Rr * i_c + 1000 * der(Psi_c);
Psi_A = (Lm+Ls)*i_A + (-0.5*Lm)*i_B + (-0.5*Lm)*i_C + (Lm*cos(phi))*i_a + (Lm*cos(phi+2*Pi/3))*i_b + (Lm*cos(phi-2*Pi/3))*i_c;
Psi_B = (-0.5*Lm)*i_A + (Lm+Ls)*i_B + (-0.5*Lm)*i_C + (Lm*cos(phi-2*Pi/3))*i_a + (Lm*cos(phi))*i_b + (Lm*cos(phi+2*Pi/3))*i_c;
Psi_C = (-0.5*Lm)*i_A + (-0.5*Lm)*i_B + (Lm+Ls)*i_C + (Lm*cos(phi+2*Pi/3))*i_a + (Lm*cos(phi-2*Pi/3))*i_b + (Lm*cos(phi))*i_c;
Psi_a = (Lm*cos(phi))*i_A + (Lm*cos(phi-2*Pi/3))*i_B + (Lm*cos(phi+2*Pi/3))*i_C + (Lm+Lr)*i_a + (-0.5*Lm)*i_b + (-0.5*Lm)*i_c;
Psi_b = (Lm*cos(phi+2*Pi/3))*i_A + (Lm*cos(phi))*i_B + (Lm*cos(phi-2*Pi/3))*i_C + (-0.5*Lm)*i_a + (Lm+Lr)*i_b + (-0.5*Lm)*i_c;
Psi_c = (Lm*cos(phi-2*Pi/3))*i_A + (Lm*cos(phi+2*Pi/3))*i_B + (Lm*cos(phi))*i_C + (-0.5*Lm)*i_a + (-0.5*Lm)*i_b + (Lm+Lr)*i_c;
Tm =-p*Lm*((i_A*i_a+i_B*i_b+i_C*i_c)*sin(phi)+(i_A*i_b+i_B*i_c+i_C*i_a)*sin(phi+2*Pi/3)+(i_A*i_c+i_B*i_a+i_C*i_b)*sin(phi-2*Pi/3));
w = 1000 * der(phi_m);
phi_m = phi/p;
n= w*60/(2*Pi);
Tm-Tl = (Jm+Jl) * 1000 * der(w);
if time <= 100 then
u_A = 0;
u_B = 0;
u_C = 0;
f_s = 0;
Tl = 0;
else
f_s = f_N;
u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000);
u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3);
u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3);
Tl = 10;
end if;
end SACIM;
在模型中,我们定义了电机的定子电压方程(由于仿真软件的时间单位是毫秒,所以所有求导操作前都乘以1000,下同):
u_A = Rs * i_A + 1000 * der(Psi_A);
u_B = Rs * i_B + 1000 * der(Psi_B);
u_C = Rs * i_C + 1000 * der(Psi_C);
转子电压方程(针对鼠笼转子,如果采用绕线式转子,可以把外接的电阻和电抗参数引入方程):
0 = Rr * i_a + 1000 * der(Psi_a);
0 = Rr * i_b + 1000 * der(Psi_b);
0 = Rr * i_c + 1000 * der(Psi_c);
定子磁链方程:
Psi_A = (Lm+Ls)*i_A + (-0.5*Lm)*i_B + (-0.5*Lm)*i_C + (Lm*cos(phi))*i_a + (Lm*cos(phi+2*Pi/3))*i_b + (Lm*cos(phi-2*Pi/3))*i_c;
Psi_B = (-0.5*Lm)*i_A + (Lm+Ls)*i_B + (-0.5*Lm)*i_C + (Lm*cos(phi-2*Pi/3))*i_a + (Lm*cos(phi))*i_b + (Lm*cos(phi+2*Pi/3))*i_c;
Psi_C = (-0.5*Lm)*i_A + (-0.5*Lm)*i_B + (Lm+Ls)*i_C + (Lm*cos(phi+2*Pi/3))*i_a + (Lm*cos(phi-2*Pi/3))*i_b + (Lm*cos(phi))*i_c;
转子磁链方程:
Psi_a = (Lm*cos(phi))*i_A + (Lm*cos(phi-2*Pi/3))*i_B + (Lm*cos(phi+2*Pi/3))*i_C + (Lm+Lr)*i_a + (-0.5*Lm)*i_b + (-0.5*Lm)*i_c;
Psi_b = (Lm*cos(phi+2*Pi/3))*i_A + (Lm*cos(phi))*i_B + (Lm*cos(phi-2*Pi/3))*i_C + (-0.5*Lm)*i_a + (Lm+Lr)*i_b + (-0.5*Lm)*i_c;
Psi_c = (Lm*cos(phi-2*Pi/3))*i_A + (Lm*cos(phi+2*Pi/3))*i_B + (Lm*cos(phi))*i_C + (-0.5*Lm)*i_a + (-0.5*Lm)*i_b + (Lm+Lr)*i_c;
电磁转矩方程:
Tm =-p*Lm*((i_A*i_a+i_B*i_b+i_C*i_c)*sin(phi)+(i_A*i_b+i_B*i_c+i_C*i_a)*sin(phi+2*Pi/3)+(i_A*i_c+i_B*i_a+i_C*i_b)*sin(phi-2*Pi/3));
转子的角速度和机械角位移存在导数关系:
w = 1000 * der(phi_m);
下面两个公式实现转子电角度与机械角度,角速度和电机转速之间的单位转换。
phi_m = phi/p;
n= w*60/(2*Pi);
电机的实际速度由电机的电磁转矩、负载转矩以及电机和负载的共同负载惯量决定(采用最简化的刚体动力学模型,可逐渐扩展):
Tm-Tl = (Jm+Jl) * 1000 * der(w);
在此基础上,我们就可以通过设定外部条件的变化来仿真电机的运行,如改变定子电压和频率,定子串电阻,转子串电阻,改变负载大小等。
这里只给出了最简单的额定电压直接启动的例子
if time <= 100 then
u_A = 0;
u_B = 0;
u_C = 0;
f_s = 0;
Tl = 0;
else
f_s = f_N;
u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000);
u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3);
u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3);
Tl = 10;
end if;
运行如下命令可进行模型的仿真:
simulate(SACIM,startTime=0,stopTime=2000)
交流异步电机的Modelica模型的更多相关文章
- 项目管理学习笔记之五.沟通协调能力II
二.沟通模型:一个双向交流的过程 沟通模型:编 码---------------->信息-----------------> 解码&歧义发送者 ...
- [Unity3D]Unity3D游戏开发之刀光剑影特效的实现
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei. 我实在不明确有的人为什么不喜欢武侠/仙侠类游戏,也许是因为武侠/仙侠类游戏身上被永远烙上的国 ...
- [置顶]
Elon Musk (伊隆·马斯克):无限的创想与意志的胜利
Elon Musk (伊隆·马斯克):无限的创想与意志的胜利 很多人说 Steve Jobs 很伟大,这一点我认同.但是,单纯从创造出的产物而言,Elon Musk 的成就毫无疑问远远超越 Steve ...
- 论文阅读 | Combating Adversarial Misspellings with Robust Word Recognition
对抗防御可以从语义消歧这个角度来做,不同的模型,后备模型什么的,我觉得是有道理的,和解决未登录词的方式是类似的,毕竟文本方面的对抗常常是修改为UNK来发生错误的.怎么使用backgroud model ...
- [BUAA2021软工助教]个人阅读作业#2小结
作业链接 见个人阅读作业#2 优秀作业推荐 Shaun_Yao ✍️ 道法之间--软工第2次博客作业 Potassium ✍️ 构之有道,建之有法--软工个人阅读作业#2 MarkDay ✍️ < ...
- 谈一谈 DDD
一.前言 最近 10 年的互联网发展,从电子商务到移动互联,再到"互联网+"与传统行业的互联网转型,是一个非常痛苦的转型过程.在这个过程中,一方面会给我们带来诸多的挑战,另一方面又 ...
- 直流调速系统Modelica基本模型
为了便于在OpenModelica进行仿真,形成一个完整的仿真模型,没有使用第三方的库,参照了DrModelica的例程,按照Modelica库的开源模型定义了所用的基本元件模型. 首先给出一些基本类 ...
- [Fundamental of Power Electronics]-PART II-7. 交流等效电路建模-7.4 规范电路模型
7.4 规范电路模型 在讨论了推导开关变换器交流等效电路模型的几种方法后,让我们先停下来,说明下这些结果.所有的在 CCM下以PWM工作的DC-DC变换器都具有相似的基本功能.首先,他们在理想情况下, ...
- 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
随机推荐
- Windows Server 2008 R2怎样设置自动登陆
Windows Server 2008 R2是一款服务器操作系统,提升了虚拟化.系统管理弹性.网络存取方式,以及信息安全等领域的应用,Windows Server 2008 R2也是第一个只提供64位 ...
- 记录JVM垃圾回收算法
垃圾回收算法可以分为三类,都基于标记-清除(复制)算法: Serial算法(单线程) 并行算法 并发算法 JVM会根据机器的硬件配置对每个内存代选择适合的回收算法,比如,如果机器多于1个核,会对年轻代 ...
- celery 快速入门教程 celery 定时器
当然首先得安装celery和rabbitmq-server,如果有redis需要安装redis 安装Redis $ yum install redis 启动 Redis $redis-server 检 ...
- C++静态计算的例子
写一个函数,用递归函数完成以下运算: sum(n) = 1 – 1/2 + 1/3 – 1/4 + … -(1/n)*(-1)n (其中n>0) 函数原型: fl ...
- ADO.NET Entity Framework,Code First简单示例
一.安装EntityFramework: 在vs里打开NuGet,在命令行里输入:Install-Package EntityFramework. 二.基本使用方法 1.建立数据模型 class St ...
- windows7+eclipse+hadoop2.5.2环境配置
windows7+eclipse+hadoop2.5.2环境配置 一.hadoop集群环境配置 参考我的前一篇文章(ubuntu + hadoop2.5.2分布式环境配置 http://www. ...
- Oracle 性能维护一点
大数据量表的维护原则 1.如果此表经常CRUD,最好的办法是定期收集统计信息传递给oracle优化器,提高性能.例如dbms_stats.gather_table_stats命令. 可以做在ETL中, ...
- A + B Problem II
之前总是在查阅别人的文档,看着其他人的博客,自己心里总有一份冲动,想记录一下自己学习的经历.学习算法有一段时间了,于是想从算法开始自己的博客生涯O(∩_∩)O~~ 今天在网上看了一道大数相加(高精度) ...
- uva 1572 self-assembly ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxQAAANxCAYAAAB9uv94AAAgAElEQVR4nOxdPW7tOpLWFrQGJb72vI ...
- MIT jos 6.828 Fall 2014 训练记录(lab 1)
注: 源代码参见我的github:https://github.com/YaoZengzeng/jos Part 1: PC Bootstrap +------------------+ <- ...