学习笔记(第三周)

设计任务

结合本周学习的直流电机机械特性,用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)

原文地址:https://www.cnblogs.com/wzh111/p/5272669.html