1、3.熟悉Rungle-Kutta方法在仿真中的应用。二、作业要求一台永磁直流电动机及其控制系统如下图。直流电源Udc=200V;电机永磁励磁 f=1Wb, 电枢绕组电阻Rq=0.5ohm、电感Lq=0.05H;转子转动惯量J=0.002kgm2 ;系统阻尼转矩系数B=0.1Nm/(rad/s) ,不带负载 ;用滞环控制的方法进行限流保护,电流上限Ih=15A、Il下限=14A;功率管均为理想开关器件;电机在t=0时刻开始运行,并给定阶跃(方波)转速命令,即,在00.2s是80rad/s,在0.20.4s是120rad/s,在0.40.6s是80rad/s如此反复,用滞环控制的方法进行转速调节(
2、滞环宽度+/-2rad/s)。用四阶龙格库塔求解电机的电流与转速响应。三、解题思路1.数学模型的建立按电动机原则取正方向即:整理得状态方程组:2.滞环PWM的产生写一个PWM波发生函数,使其具有以下功能:1)周期T、占空比t可调2)输入一个时刻值t,可输出对应时刻下输出电压值(高电平/低电平)设置一个电流限制标识变量:当电枢电流小于电流下限值时,该变量置1(开通);当电枢电流大于电流上限值时,该变量置0(关断);当电枢电流在上下限之间时,该变量保持原值不变。3.电枢电压的确定对上述电流限制标识变量和PWM波输出做“与”运算,通过判断对Uq赋值:如果“与”结果为1,则Uq的值为Udc;如果“与”
3、结果为0,则Uq的值为0。4.电枢电流为负值时的处理方法在滞环控制中,当转速从120r/min下降到80r/min时,由于电机自身转动惯量J的影响,即使uq为0,转速下降还是需要一段时间,而电枢电流就有可能在这段时间能掉到负值。而通过实际电路分析可以发现,当电流反向时,并没有实际的通路,故电枢电流值不可能为负,在迭代求解时需要改变电机状态方程组,即电枢电流iq的值置为0,uq置为电机两端感应电势。电枢电流出现了负数的情况,而根据理论分析,由于续流二极管的存在,电枢电流是不可能反向流动的,故现在的仿真程序是需要调整的。当功率管断开时,通过电机的电流不断减小,当电流等于零时,此时可以看作电机两端断
4、开,由 于没有了电流,此时电机上的电压就是电机的旋转电势,故在仿真中,出现 iq=0 时,就直接把 iq 赋零。 5.Rungle-Kutta法的基本算式对于微分方程组四、仿真程序1.主程序% Square wave generator -just for persipicuous visialization.FS=10000; % sampling ratet=0:1/FS:0.6;p=20*(-square(t*5*pi,50)+100; % square wave controllerplot(t,p);hold on% Main code -only one period from 0
5、0.4s deserve improving!t1=0.2;t2=0.4;t3=0.6;h=0.0001;Udc=200;Ff=1;fi=1;B=0.1;J=0.002;Rq=0.5;Lq=0.05;vb(1)=80;vb(2)=120;i=1;resid=0.00002;pwm_i=1;pwm_w=1;Uq(1)=Udc;w(1)=0;iq(1)=0;pwm(1)=1;con_flag=0;for t1=h:h:0.6 if t10.2 limit_flag =1; elseif t1 limit_flag =2; else limit_flag=1; end% if iq(i)0.04 c
6、on_flag=1;% if (iqvb(limit_flag)+resid) pwm_w=0; if(iq(i)15) pwm_i=0; pwm(i)=pwm_i*pwm_w;% if(iq(i)14 & pwm_i=1 & pwm_w=0)% pwm(i)=1; else if(pwm(i)=0) iq(i+1),w(i+1)=rungeoff(iq(i),w(i),Lq); if(w(i)vb(limit_flag)-resid) pwm_w=1; if(iq(i) count=count+1; if(mod(count,2)=1) velocity=120; velocity=80;
7、temp=0;% if temp1peri% count1=count1+1;% if(mod(count1,2)=1)% pwm=1;% pwm=0;% temp1=0;% plot(i*h,velocity); Udc=Tau*200; iq(i+1),w(i+1)=runge(iq(i),w(i),Udc,h);% plot(i*h,iq(i+1),i*h,w(i+1); Tau = Tau + Kp*(e(3)-e(2) + Ki*e(3)+ Kd*(e(3)+e(1)-2*e(2); if Tau 1 Tau=1; elseif Tau Tau=0; e(1)=e(2); e(2)=
8、e(3); e(3)=velocity-w(i+1);% if(e(3)-2)% e(3)=0; if(iq(i+1) iq(i+1)=15; elseif(iq(i+1)0) iq(i+1)=0; if i=tail-1 disp(sprintf(The final steady error is : %2.1f .n,e(3);num=1:tail+1;plot(h*num,w,LineWidth,2);plot(h*num,iq,rset(gca,FontName,HeloniaFontSize,10,FontWeightboldxlim(0,h*tail);PIDfunction iq
9、,w=runge(iq0,w0,Udc,h)k1=f1(w(1),iq0,Udc);k2=f1(w(1)+0.5*h,a1,Udc);k3=f1(w(1)+0.5*h,a2,Udc);k4=f1(w(1)+h,a3,Udc);function y=f1(w,iq,Udc)六、收获与体会通过本次电机建模作业,熟悉永磁直流电动机及其调速系统的建模与仿真,同时也熟悉熟悉滞环控制的原理与实现方法和Rungle-Kutta方法在仿真中的应用。这次实验过程中,对于matlab软件要求较高,对于很多matlab语言有更多的理解。对于电机建模过程中的矩阵运算,微分方程组的求解都有很大的提高。建模过程中,开始遇到最难的问题是将龙哥库塔法,准确的应用微分方程组中,其中矩阵方程的建立起到十分重要的作用。通过这次实验,更多的熟悉了直流电动机的性能,对于电机调速,电枢电流大小的电机各方面性能有了更加清楚的了解。这次实验虽然题目比较简单,但是涉及的知识面丰富,还需要在以后应用过程中慢慢体会。由于初次接触到软件建模,所以建模过程中有很多细节都参加到同学讨论之中,对于电机方面,软件方面的理解都在沟通中提升,所以总的来说这次建模十分有意义。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1