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 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
随机推荐
-
单独编译使用WebRTC的音频处理模块
块,每块个点,(12*64=768采样)即AEC-PC仅能处理48ms的单声道16kHz延迟的数据,而 - 加载编译好的NS模块动态库 接下来只需要按照 此文 的描述在 android 的JAVA代码 ...
-
利用JsonConvert.SerializeObject()实现类对象的json化
现阶段的项目是采用前后端分离的思想,前端使用的是Angular.JS,后端使用ABP框架,在后端我们通过WebAPI技术来向前端提供json数据.以前是通过MVC来写前端的代码,感觉后端有点在控制前端 ...
-
[原创]cocos2d-x研习录-第三阶 多分辨率适配器
在移动终端(智能手机)平台下开发游戏一般都会涉及到屏幕多分辨率适配问题,原因是手机款式多种多样,不同的款式存在有不同的尺寸,即使尺寸相同又可能存在不同的分辨率. 手机屏幕尺寸:指手机屏幕对角线长度. ...
-
samba服务配置
使用yum或者apt-get安装 # yum install samba samba-client samba-swat Samba开发环境配置 Acl权限设置 [不是必须.只要保证web目录的所有 ...
-
Sublime Text快捷键和常用插件推荐
Sublime Text快捷键: Ctrl+Shift+P:打开命令面板 Ctrl+P:搜索项目中的文件 Ctrl+G:跳转到第几行 Ctrl+W:关闭当前打开文件 Ctrl+Shift+W:关闭所有 ...
-
禁止 apache 开机启动
sudo update-rc.d apache2 disable http://askubuntu.com/questions/19320/what-is-the-recommended-way-to ...
-
VBS脚本和HTML DOM自动操作网页
VBS脚本和HTML DOM自动操作网页 2016-06-16 10:24 1068人阅读 评论(0) 收藏 举报 分类: Windows(42) 版权声明:本文为博主原创文章,未经博主允许不得转 ...
-
新浪2017校园招聘---C++后台研发
一共10道题目,难度不大,就是题量大,时间短. 1. 编程 写一个函数,求出一字符串的所有排列. 2. 编程 实现一个在32位系统下把字符串转换成浮点数的函数 floa ...
-
写在19年初的后端社招面试经历(两年经验): 蚂蚁 头条 PingCAP
去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer.想着可以总结一下经验,分享一下自己这一段"骑驴找马"过 ...
-
ASP.NET MVC同时支持web与webapi模式
原文地址:https://blog.csdn.net/laymat/article/details/65444701 我们在创建 web mvc项目时是不支持web api的接口方式访问的,所以我们需 ...