设计任务
结合本周学习的直流电机机械特性,用Modelica设计和仿真一个直流电机串电阻启动过程,具体要求如下:
1)电机工作在额定电压和额定磁通下,采用串三段或四段电阻启动,整个启动过程电枢电流中不能超过额定电流的3倍。
2)选择合适的电阻阻值,选择优化的电阻切除策略,使得在满足条件1的前提下,电机尽可能快速平滑得达到额定点。
3)所有同学均使用如下统一的直流电机模型,电机的参数为:
额定电压:240V
额定电流:16.2A
额定转矩:29.2N.m
额定转速:1220 r/min
转动惯量:1 Kg.m^2
电枢电阻:0.6 Ohm
转矩常数(额定磁通):1.8
电动势常数(额定磁通):0.189
主要方程
参数计算
电阻R1的短路过程:短路前电流为i1,转矩为Tm1,转速为n1,短路后电流为i1’;
电阻R2的短路过程:短路前电流为i2,转矩为Tm2,转速为n2,短路后电流为i2’;
电阻R3的短路过程:短路前电流为i3,转矩为Tm3,转速为n3,短路后电流为i3’。
R1短路之前:
Tm1-Tl=J(dn1/dt)(2PI/60)
Tm1=Kt*i1
u=Ke*n1+i1(R+R1+R2+R3)
R1短路之后:
Tm1=Kt*i1’
u=Ke*n1+i1’(R+R2+R3)
由于电压u不变,则可知i1(R+R1+R2+R3)= i1’(R+R2+R3),即
i1’/i1=(R+R1+R2+R3)/ (R+R2+R3); 1
则由此可知:R2,R3短路前后分别可得:
i2’/i2=(R+R2+R3)/(R+R3);2
i3’/i3=(R+R3)/R;3
由题意可知i1,i2,i3均等于额定电流且每次切换电阻时的T2(I2)也基本相同
令i1’/i1=i2’/i2=i3’/i3=a;4
由1234可知:
R1=(a-1)R+2R*(a-1)^2+R*(a-1)^3;
R2=(a-1)R+R*(a-1)^2;
R3=(a-1)R;
综上得R+R1+R2+R3=R*a^3.
刚启动电机时转速n=0,则可知
u= i(R+R1+R2+R3)
i=u/(R+R1+R2+R3)=16.2a
R+R1+R2+R3=u/16.2a=R*a^3
则可解得a=2.229
R1=3.664;R2=1.644;R3=0.737
每次切换电阻时T2=(1.1~1.2)Tn,切换前电流值应为(1.1~1.2)x16.2A=17.82~19.44A,
故通过调节切换时间来满足电流最小值不低于17.82A的要求
仿真编程
经过多次对切换时间的调整,最终得到以下仿真程序
model motor1 "An DC Motor Model"
type Voltage=Real(unit="V");
type Current=Real(unit="A");
type Resistance=Real(unit="Ohm");
type Speed=Real(unit="r/min");
type Torque=Real(unit="N.m");
type Inertia=Real(unit="kg.m^2");
Torque Tm"Torque of the Motor";
Speed n"Speed of the Motor";
Current i"Armature Current";
Voltage u"Voltage Source";
Resistance R_ad"External Resistance";
Resistance R1"Start-up Resistance";
Resistance R2"Start-up Resistance";
Resistance R3"Start-up Resistance";
parameter Real J = 1"Total Inertia";
parameter Real R = 0.6"Armature Resistance";
parameter Real Kt = 1.8"Torque Constant";
parameter Real Ke = 0.189"EMF Constant";
parameter Real Tl = 29.2"Load Torque";
parameter Real i1=48.6"Maximum Current";
parameter Real i2=17.8"Minimum Current";
equation
Tm-Tl = J * der(n) * 6.28 / 60;
Tm= Kt * i;
u= i * (R+R_ad+R1+R2+R3) + Ke * n;
if time <= 0.1 then
u = 0;
R_ad = 0;
else
u = 240;
R_ad = 0;
end if;
if time <= 4 then
R1=3.664;
else
R1=0;
end if;
if time <= 6.9 then
R2=1.644;
else
R2=0;
end if;
if time <= 8 then
R3=0.737;
else
R3=0;
end if;
end motor1;
simulate(motor1,startTime=0,stopTime=15)