zoukankan      html  css  js  c++  java
  • 学习笔记4

    本周要求用Modelica设计和仿真一个用三相交流异步电机带动起重机起升机构运行。考虑启动形式时,自耦变压器降压启动的K虽然可以调节,但启动时自耦变压器处于过电流状态运行,考虑到起重机启动较为频繁,故不采用自耦变压器降压启动。本次仿真利用Y-△降压启动的良好的启动特性。制动时采取倒拉制动,效果会较好一些。

    机械运动周期如下:

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

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

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

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

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

    (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";

     

    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"; 

    Resistance Rs"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 = 1"Load Inertia";

    parameter Real K=0.577"starting rate";

    parameter Real a=0.544"frequency rate 1";

    parameter Real b=0.0681"frequency rate 2";

    parameter Real c=0.3893"frequency rate 3";

    parameter Real P=0.65"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 <= 100 then

    u_A = 0;

    u_B = 0;

    u_C = 0;

    f_s = 0;

    Rs=0.531;

    elseif time <= 102 then

    Rs=0.531;

    f_s = f_N*a; 

    u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*a*K; 

    u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*a*K;

    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*a*K; 

    elseif time <= 1700 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 <= 1740 then

    f_s = f_N*a; 

    Rs=3;

    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 <= 2660 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 <= 3170 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 <= 3300 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)*c*K; 

    u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*c*K;

    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*c*K; 

    elseif time <= 4460 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 <= 4530 then

    f_s = f_N*a*P; 

    Rs=2;

    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 <= 5500 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;

     

    仿真结果如下:

     

    由图像可知,整个过程中Tm最大值约195,整个过程持续约5.5秒。在起重机的两个静止过程中,转速与0仍有一定差距,过程衔接的转速变化也不是很平滑,本次仿真的数据取值应当还有更好的方案。

  • 相关阅读:
    System.InvalidOperationException: 找到多个与名为“Home”的控制器匹配的类型。
    MemoryStream和FileStream
    js的eval函数解析后台返回的json数据时为什加上圆括号eval("("+data+")"),而HTML页面定义的数据不用
    字符串转数组和数组转字符串
    npoi导入--从varchar数据类型到datetime数据类型转换产生一个超出范围的值问题
    IIS配置 Web部署 svg/woff/woff2字体 404错误
    委托由浅入深学习
    JavaScriptSerializer返回一条Json,页面获取值问题,数据绑定
    一文总结 CPU 基本知识
    Spring原理只要看这篇文章就够了
  • 原文地址:https://www.cnblogs.com/yangliu1/p/5299655.html
Copyright © 2011-2022 走看看