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模型的更多相关文章

  1. 项目管理学习笔记之五.沟通协调能力II

    二.沟通模型:一个双向交流的过程 沟通模型:编     码---------------->信息-----------------> 解码&歧义发送者               ...

  2. [Unity3D]Unity3D游戏开发之刀光剑影特效的实现

    大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei. 我实在不明确有的人为什么不喜欢武侠/仙侠类游戏,也许是因为武侠/仙侠类游戏身上被永远烙上的国 ...

  3. [置顶] Elon Musk (伊隆·马斯克):无限的创想与意志的胜利

    Elon Musk (伊隆·马斯克):无限的创想与意志的胜利 很多人说 Steve Jobs 很伟大,这一点我认同.但是,单纯从创造出的产物而言,Elon Musk 的成就毫无疑问远远超越 Steve ...

  4. 论文阅读 | Combating Adversarial Misspellings with Robust Word Recognition

    对抗防御可以从语义消歧这个角度来做,不同的模型,后备模型什么的,我觉得是有道理的,和解决未登录词的方式是类似的,毕竟文本方面的对抗常常是修改为UNK来发生错误的.怎么使用backgroud model ...

  5. [BUAA2021软工助教]个人阅读作业#2小结

    作业链接 见个人阅读作业#2 优秀作业推荐 Shaun_Yao ✍️ 道法之间--软工第2次博客作业 Potassium ✍️ 构之有道,建之有法--软工个人阅读作业#2 MarkDay ✍️ < ...

  6. 谈一谈 DDD

    一.前言 最近 10 年的互联网发展,从电子商务到移动互联,再到"互联网+"与传统行业的互联网转型,是一个非常痛苦的转型过程.在这个过程中,一方面会给我们带来诸多的挑战,另一方面又 ...

  7. 直流调速系统Modelica基本模型

    为了便于在OpenModelica进行仿真,形成一个完整的仿真模型,没有使用第三方的库,参照了DrModelica的例程,按照Modelica库的开源模型定义了所用的基本元件模型. 首先给出一些基本类 ...

  8. [Fundamental of Power Electronics]-PART II-7. 交流等效电路建模-7.4 规范电路模型

    7.4 规范电路模型 在讨论了推导开关变换器交流等效电路模型的几种方法后,让我们先停下来,说明下这些结果.所有的在 CCM下以PWM工作的DC-DC变换器都具有相似的基本功能.首先,他们在理想情况下, ...

  9. 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

随机推荐

  1. Windows Server 2008 R2怎样设置自动登陆

    Windows Server 2008 R2是一款服务器操作系统,提升了虚拟化.系统管理弹性.网络存取方式,以及信息安全等领域的应用,Windows Server 2008 R2也是第一个只提供64位 ...

  2. 记录JVM垃圾回收算法

    垃圾回收算法可以分为三类,都基于标记-清除(复制)算法: Serial算法(单线程) 并行算法 并发算法 JVM会根据机器的硬件配置对每个内存代选择适合的回收算法,比如,如果机器多于1个核,会对年轻代 ...

  3. celery 快速入门教程 celery 定时器

    当然首先得安装celery和rabbitmq-server,如果有redis需要安装redis 安装Redis $ yum install redis 启动 Redis $redis-server 检 ...

  4. C++静态计算的例子

    写一个函数,用递归函数完成以下运算: sum(n) =  1 – 1/2 + 1/3 – 1/4 + … -(1/n)*(-1)n        (其中n>0) 函数原型:         fl ...

  5. ADO.NET Entity Framework,Code First简单示例

    一.安装EntityFramework: 在vs里打开NuGet,在命令行里输入:Install-Package EntityFramework. 二.基本使用方法 1.建立数据模型 class St ...

  6. windows7+eclipse+hadoop2.5.2环境配置

    windows7+eclipse+hadoop2.5.2环境配置    一.hadoop集群环境配置 参考我的前一篇文章(ubuntu + hadoop2.5.2分布式环境配置 http://www. ...

  7. Oracle 性能维护一点

    大数据量表的维护原则 1.如果此表经常CRUD,最好的办法是定期收集统计信息传递给oracle优化器,提高性能.例如dbms_stats.gather_table_stats命令. 可以做在ETL中, ...

  8. A + B Problem II

    之前总是在查阅别人的文档,看着其他人的博客,自己心里总有一份冲动,想记录一下自己学习的经历.学习算法有一段时间了,于是想从算法开始自己的博客生涯O(∩_∩)O~~ 今天在网上看了一道大数相加(高精度) ...

  9. uva 1572 self-assembly ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxQAAANxCAYAAAB9uv94AAAgAElEQVR4nOxdPW7tOpLWFrQGJb72vI ...

  10. MIT jos 6.828 Fall 2014 训练记录(lab 1)

    注: 源代码参见我的github:https://github.com/YaoZengzeng/jos Part 1: PC Bootstrap +------------------+ <- ...