基于MATLAB的直流电机双闭环调速系统的设计与仿真.doc
《基于MATLAB的直流电机双闭环调速系统的设计与仿真.doc》由会员分享,可在线阅读,更多相关《基于MATLAB的直流电机双闭环调速系统的设计与仿真.doc(11页珍藏版)》请在冰豆网上搜索。
----
《机电控制系统分析与设计》
课程大作业一
基于MATLAB的直流电机双闭环调速系统的设计与仿真
学院:
机电工程
专业:
机械设计制造及其自动化
班级:
学号:
姓名:
一、设计参数
转速、电流双闭环直流调速系统,采用双极式H桥PWM方式驱动。
电机参数:
额定功率200W;
额定电压48V;
额定电流4A;
额定转速500r/min;
电枢回路总电阻R=8Ω;
允许电流过载倍数λ=2;
电势系数Ce=0.04V·min/r;
电磁时间常数TL=0.008s;
机电时间常数Tm=0.5;
电流反馈滤波时间常数Toi=0.2ms;
转速反馈滤波时间常数Ton=1ms
要求转速调节器和电流调节器的最大输入电压U*nm=U*im=10V;
两调节器的输出限幅电压为10V;
PWM功率变换器的的开关频率f=10kHz;
放大倍数K=4.8;
动态参数设计指标:
稳态无静差;
电流超调量5%;
空载启动到额定转速时的转速超调量25%;
过渡过程时间ts=0.5s。
二、设计计算
1.稳态参数计算
根据两调节器都选用PI调节器的结构,稳态时电流和转速偏差均应为零;两调节器的输出限幅值均选择为12V
电流反馈系数;
转速反馈系数:
2.电流环设计
(1)确定时间常数
电流滤波时间常数T=0.2ms,按电流环小时间常数环节的近似处理方法,则
(2)选择电流调节器结构
电流环可按典型Ⅰ型系统进行设计。
电流调节器选用PI调节器,其传递函数为
(3)选择调节器参数
超前时间常数:
=T=0.008s
电流环超调量为σ5%,电流环开环增益:
应取,则
===1666.67
于是,电流调节器比例系数为
(4)检验近似条件
电流环截止频率==1666.671/s
1)近似条件1:
现在,==3333.33>,满足近似条件。
2)近似条件2:
现在,==47.43<,满足近似条件。
3)近似条件3:
现在,==2357.02>,满足近似条件。
(5)MATLAB仿真
1)电流环给定阶跃响应的MATLAB仿真
未经过小参数环节合并的电流环单位阶跃响应
经过小参数环节合并的电流环单位阶跃响应
2)电流环频率分析的MATLAB仿真
未经过小参数环节合并的电流环频率响应
经过小参数环节合并的电流环频率响应
3.转速环设计
(1)确定时间常数
电流环的等效时间常数:
2=0.0006s
转速滤波时间常数:
T=1ms=0.001,
转速环小时间常数近似处理:
=2+T=0.0006+0.001=0.0016s
(2)选择转速调节器结构
由转速稳态无静差要求,转速调节器中必须包含积分环节;又根据动态要求,应该按典型Ⅱ型系统校正转速环,因此转速调节器应该选择PI调节器,其传递函数为
(3)选择调节器参数
按跟随性和抗扰性能均比较好的原则,取h=5,则转速调节器的超前时间常数为
=h·T=50.0016=0.008s
转速环开环增益
==468751/
于是,转速调节器比例系数为
==58.59
(4)校验近似条件
转速环的开环截止频率为
==·=468750.008=3751/s
1)近似条件1:
现在,==666.67>,满足近似条件。
2)近似条件2:
现在,==430.33>,满足近似条件。
(5)MATLAB仿真
1)转速环阶跃信号响应分析的MATLAB仿真
未经过小参数环节合并的转速环单位阶跃响应
经过小参数环节合并的电流环单位阶跃响应
1)转速环频率分析的MATLAB仿真
未经过小参数环节合并的转速环频率响应
经过小参数环节合并的转速环频率响应
2)阶跃信号输入条件下的电流输出过渡过程曲线
三、仿真结果分析:
根据设计结果的模拟仿真,可以得到设计的调节系统稳态时转速无误差。
可以看出:
作为内环的调节器,在外环转速的调节过程中,它的作用是使电流紧紧跟随其给定电压(即外环调节器的输出量)变化。
双闭环系统中,由于增设了电流内环,电压波动可以通过电流反馈得到比较及时的调节,不必等它影响到转速以后才能反馈回来,抗扰性能大有改善。
在转速动态过程中,保证获得电机允许的最大电流,从而加快动态过程。
在实际系统中,电网电压的波动和外负载的波动会对系统的超调与稳定有一定的影响,在仿真的时候可以加以考虑,最终可以看出系统对于外界干扰的协调能力很强。
附:
转速电流双闭环程序流程框图
MATLAB程序:
>>sys1=tf(1.25,[0.00021]);
>>sys2=tf(4.8,[0.00011]);
>>sys3=tf(0.125,[0.0081]);
>>w=17.78*tf([0.0081],[0.0080]);
>>figure
(1);
>>margin(sys1*sys2*sys3*w);
>>holdon
>>gridon;
>>figure
(2)
>>closys1=sys1*sys2*sys3*w/(1+sys1*sys2*sys3*w);
>>t=0:
0.0001:
0.008;
>>step(closys1,t)
>>gridon;
>>sys1=tf(6,[0.00031]);
>>sys2=tf(0.125,[0.0081]);
>>w=17.78*tf([0.0081],[0.0080]);
>>figure(3);
>>margin(sys1*sys2*w);
>>holdon
>>gridon;
>>figure(4);
>>closys1=sys1*sys2*w/(1+sys1*sys2*w);
>>t=0:
0.0001:
0.008;
>>step(closys1,t)
>>gridon;
>>sys1=tf(1,[0.0011]);
>>sys2=tf(0.8,[0.00061]);
>>sys3=tf(8,[0.50]);
>>n=1/0.04;
>>sys4=tf(0.02,[0.0011]);
>>g=58.59*tf([0.0081],[0.0080]);
>>figure(5);
>>margin(sys1*sys2*sys3*sys4*n*g);
>>holdon
>>gridon;
>>figure(6);
>>closys1=sys1*sys2*sys3*sys4*n*g/(1+sys1*sys2*sys3*sys4*n*g);
>>t=0:
0.001:
0.08;
>>step(closys1,t)
>>gridon;
>>sys1=tf(0.016,[0.00161]);
>>sys2=tf(8,[0.50]);
>>n=1/0.04;
>>g=58.59*tf([0.0081],[0.0080]);
>>figure(5);
>>margin(sys1*sys2*n*g);
>>holdon
>>gridon;
>>figure(6);
>>closys1=sys1*sys2*n*g/(1+sys1*sys2*n*g);
>>t=0:
0.001:
0.08;
>>step(closys1,t)
>>gridon;
-