• 第四周仿真作业


    经过第四周关于交流电机的学习,我们通过对起调速特性的了解,进行仿真:

    • 控制电机带重物上升,从静止加速到800r/min
    • 保持800r/min匀速运动0.5s,
    • 减速到静止,保持静止状态0.5s,
    • 带重物下降,从静止达到600r/min
    • 保持600r/min匀速运动0.6s,
    • 减速到静止。
      (为了便于仿真,匀速和静止持续时间较短)

    分析:这里,由于自耦降压启动具有K值方便直接调节的特点,所以我们采用此种启动方法。由于变频调速具有调速范围广、平滑性好、能耗小无级调速,故采用变频调速。制动采用相对方便的反接制动。

    参数:我们需要设置K,a,b,c 4个参数,由于不方便计算,都是通过观察图像进行调试,从而得出近似值。我是将K先固定,通过调节a,使转速稳定时接近800,调节b,使其接近制动,调节c,使转速稳定时接近600.

    从而我这里得出的参数K=0.8,a=0.54,b=0.07,c=0.405.

    代码:

    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 = 0.1"Load Inertia";
    parameter Real K=0.8"starting rate";
    parameter Real a=0.54"frequency rate";
    parameter Real b=0.07"stable frequency rate"; 
    parameter Real c=0.405"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);
    = Rr * i_a + 1000 * der(Psi_a);
    = Rr * i_b + 1000 * der(Psi_b);
    = 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 = 10;

    if time <= 100 then
    u_A = 0;
    u_B = 0;
    u_C = 0;
    f_s = 0;Rs = 0.531;
    elseif time<=106 then
    f_s = f_N*a;

    Rs = 0.531;
    u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000)*K*a; 
    u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3)*K*a;
    u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3)*K*a; 
    elseif time<=1706 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<=1756 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<=2679 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<=3196 then
    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; 
    f_s = f_N*b;Rs = 0.531;
    elseif time<=3310 then
    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; 
    f_s = f_N*K*c;Rs = 0.531;

    elseif time<=4560 then
    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; 
    f_s = f_N*c;Rs = 0.531;
    elseif time<=4595.5 then
    f_s = f_N*P*a;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<=5560 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
    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; 
    f_s = f_N*b;Rs = 0.531;
    end if;

    end SACIM;

    得出的仿真图像:

  • 相关阅读:
    StringBuffer类的使用
    Android利用文本分割拼接开发一个花藤文字生成
    驻扎博客园,以后每天都有进步
    python turtle 例子 海归绘图
    常用的第三方模块 psutil url
    常用的第三方模块 chardet url
    常用的第三方模块 Pillow url
    常用的第三方模块 requests url
    crontab 详细用法 定时任务
    详解Python的装饰器
  • 原文地址:https://www.cnblogs.com/cyykhyql/p/5305839.html
Copyright © 2020-2023  润新知