电机系统建模与分析报告大作业Word文档格式.docx
- 文档编号:19771359
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:17
- 大小:299.72KB
电机系统建模与分析报告大作业Word文档格式.docx
《电机系统建模与分析报告大作业Word文档格式.docx》由会员分享,可在线阅读,更多相关《电机系统建模与分析报告大作业Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
2)输入一个时刻值t,可输出对应时刻下输出电压值〔高电平/低电平〕
设置一个电流限制标识变量:
当电枢电流小于电流下限值时,该变量置1〔开通〕;
当电枢电流大于电流上限值时,该变量置0〔关断〕;
当电枢电流在上下限之间时,该变量保持原值不变。
对上述电流限制标识变量和PWM波输出做“与〞运算,通过判断对Uq赋值:
如果“与〞结果为1,如此Uq的值为Udc;
如果“与〞结果为0,如此Uq的值为0。
在滞环控制中,当转速从120r/min下降到80r/min时,由于电机自身转动惯量J的影响,即使uq为0,转速下降还是需要一段时间,而电枢电流就有可能在这段时间能掉到负值。
而通过实际电路分析可以发现,当电流反向时,并没有实际的通路,故电枢电流值不可能为负,在迭代求解时需要改变电机状态方程组,即电枢电流iq的值置为0,uq置为电机两端感应电势。
电枢电流出现了负数的情况,而根据理论分析,由于续流二极管的存在,电枢电流是不可能反向流动的,故现在的仿真程序是需要调整的。
当功率管断开时,通过电机的电流不断减小,当电流等于零时,此时可以看作电机两端断开,由于没有了电流,此时电机上的电压就是电机的旋转电势,故在仿真中,出现iq<
=0时,就直接把iq赋零。
5.Rungle-Kutta法的根本算式
对于微分方程组
四、仿真程序
%%Squarewavegenerator----justforpersipicuousvisialization.
FS=10000;
%samplingrate
t=0:
1/FS:
0.6;
p=20*(-square(t*5*pi,50))+100;
%squarewavecontroller
plot(t,p);
holdon
%%Maincode----onlyoneperiodfrom0~0.4sdeserveimproving!
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
if
limit_flag=1;
elseif
limit_flag=2;
else
limit_flag=1;
end
%
con_flag=1;
%if(iq<
0.004&
con_flag==1)
%Udc=w(i)*Ff;
%else
%Udc=200;
%end
%Udc=pwm(i)*200;
if(pwm(i)==1)
[iq(i+1),w(i+1)]=rungeon(iq(i),w(i),Lq,Udc);
plot(t1,iq(i+1),t1,w(i+1));
i=i+1;
if(w(i)>
vb(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;
elseif(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)<
14)
pwm_i=1;
=0)
%iq(i)=0;
1&
pwm(i)=1;
Udc=w(i)*Ff;
Udc=200;
xlabel('
T/s'
);
ylabel('
I/A(V/(red/s))'
title('
CHC¿
Ø
Ö
Æ
µ
Ä
ç
»
ú
×
ª
Ë
Ù
Ó
ë
Á
÷
Ï
ì
¦
(h=0.0001s)'
plot(t,iq,t,w);
rungeoff
function[iq,w]=rungeoff(iq0,w0,Lq)
h=0.00005;
w
(1)=w0;
iq
(1)=iq0;
k1=f11(w
(1),iq0,Lq);
a1=iq
(1)+h*k1/2;
k2=f11(w
(1)+0.5*h,a1,Lq);
a2=iq
(1)+h*k2/2;
k3=f11(w
(1)+0.5*h,a2,Lq);
a3=iq
(1)+h*k3;
k4=f11(w
(1)+h,a3,Lq);
k=(k1+2*k2+2*k3+k4)/6;
iq=iq
(1)+h*k;
k11=pw(iq,w
(1));
a11=w
(1)+h*k11/2;
k22=pw(iq+0.5*h,a11);
a22=w
(1)+h*k22/2;
k33=pw(iq+0.5*h,a22);
a33=w
(1)+h*k33;
k44=pw(iq+h,a33);
k=(k11+2*k22+2*k33+k44)/6;
w=w
(1)+h*k;
functiony=pw(a,c)
y=(fi*a-B*c)/J;
functiony=f11(w,iq,Lq)
y=(-w*fi-Rq*iq)/Lq;
rungeon
function[iq,w]=rungeon(iq0,w0,Lq,Udc)
k1=f1(w
(1),iq0,Lq,Udc);
k2=f1(w
(1)+0.5*h,a1,Lq,Udc);
k3=f1(w
(1)+0.5*h,a2,Lq,Udc);
k4=f1(w
(1)+h,a3,Lq,Udc);
functiony=f1(w,iq,Lq,Udc)
y=(Udc-w*fi-Rq*iq)/Lq;
五、仿真结果与其分析
图1plot(t,w,t,i,iq)
图2plot(t,pwm)
图3plot(t,w,t,iq,t,pwm*200)
2.分析计算结果
可见在当前的控制方案下,电枢电流被控制在了1~15.5A的围,而电机转速被控制在了75~85rad/s以与115~125rad/s的围之下。
几个围都和预期的围存在一定的差距。
3.计算结果影响因素
步长的影响
当步长h增大时,电流的波动越来越剧烈,电机的转速波动也越来越大,在h=0.005的时候转速只具有根本的控制能力。
这是由于步长增大,相当于系统对电机状态的采样频率降低了,所有的控制都是基于系统对电机状态的采样再经过一定的算法实现的,而由于采样的频率过低,导致电机没有与时得到控制,所以电机的电流和转速都有非常大的波动,故在实际控制系统中,应该尽量减小步长,增大采样的频率。
图4步长增加一倍
图5步长缩小一半
转动惯量的影响
当转动惯量较大时,转速的变化比拟缓慢,达到要求转速的时间比拟长,但是转速稳定时跳动的差值较小。
当转动惯量较小时,转速的变化比拟剧烈,达到要求转速的时间比拟短,但是转速稳定过程中跳动的差值较大。
图610倍转动惯量
图71/10倍转动惯量
电感的影响
当电感较大时,电流的变化更加缓慢,使得转速的改变也比拟缓慢,达到稳定的时间较长。
当电感较小时,电流的变化比拟剧烈,使得转速的改变也比拟快速,达到稳定的时间较短。
图8
图9
4.改良控制策略以获得更好的转速控制性能〔PID〕
图10PID控制
图11PID控制放大
在整定PID控制器参数时,可以根据控制器的参数与系统动态性能和稳态性能之间的定性关系,用实验的方法来调节控制器的参数。
为了减少需要整定的参数,首先可以采用PI控制器。
为了保证系统的安全,在调试开始时应设置比拟保守的参数,例如比例系数不要太大,积分时间不要太小,以防止出现系统不稳定或超调量过大的异常情况。
给出一个阶跃给定信号,根据被控量的输出波形可以获得系统性能的信息,例如超调量和调节时间。
应根据PID参数与系统性能的关系,反复调节PID的参数。
如果阶跃响应的超调量太大,经过屡次振荡才能稳定或者根本不稳定,应减小比例系数、增大积分时间。
如果阶跃响应没有超调量,但是被控量上升过于缓慢,过渡过程时间太长,应按相反的方向调整参数。
如果消除误差的速度较慢,可以适当减小积分时间,增强积分作用。
反复调节比例系数和积分时间,如果超调量仍然较大,可以参加微分控制,微分时间从0逐渐增大,反复调节控制器的比例、积分和微分局部的参数。
1.主程序
%%%Squarewavegenerator----justforpersipicuousvisialization.
%FS=10000;
%t=0:
0.4;
%p=20*(-square(t*5*pi,50))+100;
%plot(t,p);
%holdon
tail=10000;
freq=1000;
peri=1/freq;
pwm=0;
temp1=0;
count1=0;
duty=1;
Tau=0;
e
(1)=0;
e
(2)=0;
e(3)=0;
Kp=80;
Kd=20;
Ki=1.2;
N=100;
temp=0;
m=1;
count=0;
velocity=80;
fori=1:
1:
tail
temp=temp+h;
temp1=temp1+h;
count=count+1;
if(mod(count,2)==1)
velocity=120;
velocity=80;
temp=0;
%iftemp1>
peri
%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));
ifTau>
1
Tau=1;
elseifTau<
Tau=0;
e
(1)=e
(2);
e
(2)=e(3);
e(3)=velocity-w(i+1);
%if(e(3)<
2&
e(3)>
-2)
%e(3)=0;
if(iq(i+1)>
iq(i+1)=15;
elseif(iq(i+1)<
0)
iq(i+1)=0;
ifi==tail-1
disp(sprintf('
Thefinalsteadyerroris:
%2.1f.\n'
e(3)));
num=1:
tail+1;
plot(h*num,w,'
LineWidth'
2);
plot(h*num,iq,'
r'
set(gca,'
FontName'
'
Helonia'
FontSize'
10,'
FontWeight'
bold'
xlim([0,h*tail]);
Õ
¼
¿
±
È
PID¿
'
function[iq,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);
functiony=f1(w,iq,Udc)
六、收获与体会
通过本次电机建模作业,熟悉永磁直流电动机与其调速系统的建模与仿真,同时也熟悉熟悉滞环控制的原理与实现方法和Rungle-Kutta方法在仿真中的应用。
这次实验过程中,对于matlab软件要求较高,对于很多matlab语言有更多的理解。
对于电机建模过程中的矩阵运算,微分方程组的求解都有很大的提高。
建模过程中,开始遇到最难的问题是将龙哥库塔法,准确的应用微分方程组中,其中矩阵方程的建立起到十分重要的作用。
通过这次实验,更多的熟悉了直流电动机的性能,对于电机调速,电枢电流大小的电机各方面性能有了更加清楚的了解。
这次实验虽然题目比拟简单,但是涉与的知识面丰富,还需要在以后应用过程中慢慢体会。
由于初次接触到软件建模,所以建模过程中有很多细节都参加到同学讨论之中,对于电机方面,软件方面的理解都在沟通中提升,所以总的来说这次建模十分有意义。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电机 系统 建模 分析 报告 作业