博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《机电传动控制》学习笔记04
阅读量:4618 次
发布时间:2019-06-09

本文共 6407 字,大约阅读时间需要 21 分钟。

《机电传动控制》学习笔记04

胡恒谦 机卓1301

一、设计要求

  结合本周学习的交流电机原理及启动、调速、制动特性,用Modelica设计和仿真一个用三相交流异步电机带动起重机起升机构运行。具体要求如下:

  1)实现如下机械运动周期:

  控制电机带重物上升,从静止加速到800r/min

  保持800r/min匀速运动0.5s,

  减速到静止,保持静止状态0.5s,

  带重物下降,从静止达到600r/min

  保持600r/min匀速运动0.6s,

  减速到静止。

  (为了便于仿真,匀速和静止持续时间较短)

  2) 升降机构和重物折算到到电机转子轴上的等效负载惯量为1Kg.m^2,折算到到电机转子轴上的等效负载转矩是15N.m。

  3)使用统一的电机模型,如果控制策略中用到转子串电阻,允许将该电机的转子改为绕线式转子(参数不变)。

  4)参照教材中给出的交流电机启动、调速和制动方法,设计控制策略,用Modelica实现控制策略并与电机模型实现联合仿真。

  5)可以采用定子串电阻、转子串电阻、定子调压、定子调频等手段,但必须具备工程上的可实施性。

  6)评价指标:快速启动、制动,冲击转矩和冲击电流小,能耗小,兼顾实施的经济性。

二、过程分析

  本例中采用了自耦变压器降压启动,变频调速,反接制动的方式对交流电机的上述过程进行分析和仿真。

三、参数计算

  本例中未给的数据都是通过一次次调试而得到的,没有进行理论计算和推倒,一步步调试的效率比较低,如果可以通过计算得到可以大大提高效率。

四、源代码

 

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";  Resistance Rs"Stator Resistance";  Torque Tl"Load Torque";  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";  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 = 1"Load Inertia";  parameter Real K=0.8"starting rate";  parameter Real a=0.544"frequency rate";  parameter Real b=0.0683"stable frequency rate";    parameter Real c=0.3893"another frequency rate";  parameter Real P=0.7"stoping rate";      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);  Tl = 15;    if time <= 10 then    u_A = 0;    u_B = 0;    u_C = 0;    f_s = 0;    Rs = 0.531;    elseif time<=1580 then    f_s = f_N*a;    Rs = 0.531;      u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*a;      u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*a;    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*a;  elseif time<=1630 then    f_s = f_N*a;    Rs = 5;      u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*a;      u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*a;    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*a;  elseif time<=2550 then    f_s = f_N*a;    Rs = 0.531;      u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*a;      u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*a;    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*a;  elseif time<=3075 then    f_s = f_N*b;    Rs = 0.531;     u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*b;      u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*b;    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*b;    elseif time<=3120 then    f_s = f_N*K*c;    Rs = 0.531;     u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*K*c;      u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*K*c;    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*K*c;    elseif time<=4410 then    f_s = f_N*c;    Rs = 0.531;     u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*c;      u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*c;    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*c;    elseif time<=4430 then    f_s = f_N*P*a;    Rs = 4;      u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*a*P;      u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*a*P;    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*a*P;   elseif time<=5395 then    f_s = f_N*a;    Rs = 0.531;      u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*a;      u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*a;    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*a;   else    f_s = f_N*b;    Rs = 0.531;      u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*b;      u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*b;    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*b;   end if;end SACIM;

  

五、仿真结果

  在Modelica中,根据一步步调试得到的参数,编写程序,并绘制Tm、n、i_A、i_a随时间变化的曲线,分别如下图所示。

 

图1  Tm和n随时间变化的曲线

 

图2  i_A随时间变化的曲线

 

图2  i_a随时间变化的曲线

 

六、结果分析

  从曲线中可以看出,整个过程需要约5400ms,电机转矩最大值不超过190N.m。缺点是定子绕组和转子绕组的电流峰值比较大。

转载于:https://www.cnblogs.com/xiaobaicai05/p/5300125.html

你可能感兴趣的文章
通往财富自由之路5--你拥有的最宝贵的财富是什么?(问答02)
查看>>
用vue-cli搭建项目的 Vue-router
查看>>
react hooks学习
查看>>
本地存储 [记录]
查看>>
原型模式
查看>>
C#的一些必备技术
查看>>
【转载】学习顺序:顶级会议 ----> 顶级期刊 ------> 基础教材(博客) / 论文复现...
查看>>
Deep Learnning
查看>>
Css预处理器---Less(二)
查看>>
config windows virtual machine on mac
查看>>
Shell——windows上写完放入linux的时候需要注意的问题
查看>>
Activity总结
查看>>
naze32 rev6 swd 调试接口的引脚定义
查看>>
python3+requests接口自动化session操作
查看>>
qrsub sge
查看>>
thinkphp中array_diff运行无效 Invalid opcode 153/1/8
查看>>
Ubuntu彻底删除/卸载mysql,php,apache
查看>>
noj算法 装载问题 回溯法
查看>>
POJ 2429 GCD & LCM Inverse ★(pollard-ρ && DFS枚举)
查看>>
通过拦截器Interceptor实现Spring MVC中Controller接口访问信息的记录
查看>>