四周《机电传动控制》学习笔记
一、仿真要求
结合本周学习的交流电机原理及启动、调速、制动特性,用Modelica设计和仿真一个用三相交流异步电机带动起重机起升机构运行。具体要求如下:
1)实现如下机械运动周期:
控制电机带重物上升,从静止加速到800r/min
保持800r/min匀速运动0.5s,
减速到静止,保持静止状态0.5s,
带重物下降,从静止达到600r/min
保持600r/min匀速运动0.6s,
减速到静止。
(为了便于仿真,匀速和静止持续时间较短)
2) 升降机构和重物折算到到电机转子轴上的等效负载惯量为1Kg.m^2,折算到到电机转子轴上的等效负载转矩是15N.m。
二、分析
⑴启动:采用自耦变压器降压启动,取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
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<=3571 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<=4980 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<=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
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;
四、结论
整个过程总时间为6s,但在减速到静止的过程中,速度变化不平滑,有很大的冲击,转矩在整个过程中不超过170N.m。