zoukankan      html  css  js  c++  java
  • 学习笔记(第四周)

    任务

    结合本周学习的交流电机原理及启动、调速、制动特性,用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)评价指标:快速启动、制动,冲击转矩和冲击电流小,能耗小,兼顾实施的经济性。

    分析

    ⑴启动:采用自耦变压器降压启动,取K=0.8

    ⑵调速: 采用变频调速。三个频率分别为

    n=800,f=0.54*fn;

    n=0,f=0.069*fn;

    n=-600,f=0.39*fn。

    这三个频率本该用公式计算出,但个人能力有限,多次试验后参考了熊唐程同学的参数得出了这三个频率。采用变频调速是因为调速范围广,调速平滑性好,经济效益高。

    ⑶制动:根据书上所述,“卷扬机放下重物,为了使下降速度不致太快,就常用这种工作状态”,这里的“这种状态”就是指倒拉制动。此处串联的电阻设为R=2 ohm。

    代码

    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.8"starting rate";

    parameter Real a=0.54"frequency rate";

    parameter Real b=0.069"stable frequency rate";

    parameter Real c=0.39"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 <= 100 then

    u_A = 0;

    u_B = 0;

    u_C = 0;

    f_s = 0;Rs = 0.531;

    elseif time<=180 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<=1870 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<=1930 then

    f_s = f_N*a;Rs = 2;

    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<=2841 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<=3450 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<=3571 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<=4980 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<=5050 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<=6000 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;

    结论

    0-1000之间转速增加不均匀,稳定性一般,全程的冲击转矩不超过200N.m。

  • 相关阅读:
    linux 命令——48 watch (转)
    linux 命令——47 iostat (转)
    linux 命令——46 vmstat(转)
    linux 命令——45 free(转)
    linux 命令——44 top (转)
    linux 命令——43 killall(转)
    linux 命令——42 kill (转)
    linux 命令——41 ps(转)
    linux 命令——40 wc (转)
    Java for LeetCode 068 Text Justification
  • 原文地址:https://www.cnblogs.com/wzh111/p/5299524.html
Copyright © 2011-2022 走看看