您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于单片机的电机软启动器设计下
4软件设计本设计采用89C51单片机,以C语言编程,通过以上分析可以看出单片机主要是用来接收信号,处理信号,输出信号来驱动外电路的,程序见附录A。以下主要分析程序实现的功能与运行过程。图4.1单片机管脚图4.1主程序当单片机初始化后P1、P2将会被置为高电平,如果接触器是在高电平时闭合,这样在上电瞬间将会发生相间短路情况(具体原因参见第二章原理部分),因此接触器因设为低电平触发。循环检测是否按下控制按键,检测到有按下按键时执行按键所对应的程序,实现按键对应功能。由于软启动、软停车、自由停车是通过子程序实现的,因此当执行其中某一程序时再按下按键将不会被执行,例如在软停车过程中软启动按键将会失去控制作用,实现了互锁功能,避免了实际工作中的误操作,例如软启动与软停车按键同时被按下时,将会只执行其中一个。每个子程序中都带有对应按键复位功能这将使得软启动器能够重复工作,子程序所涉及到的具体问题将会在每个模块中详细说明。图4.2主程序流程图4.2软启动程序软启动程序中晶闸管的初始触发角以120°为例,由上文分析可知电机相当于感性负载,功率因数大概为0.7—0.85,当启动时电机的功率因数大概为0.25,当触发角为30°时结束启动程序。通过查阅资料可知在大部分场合要求电机在10s内完成软启动,因此本设计的软启动时间以10s为例。由4.1分析可知,当执行启动程序时软停车与自由停车功能将不会被执行,但是当电机正常运行时再按下软启动按键时软启动程序将会再次被执行,这样对于电机的运行来说没有影响,但是会使单片机的停车功能不能立即实现,为避免以上问题,软启动程序在执行时首先判断电机是否在正常工作,若未正常工作将会立即回到主程序,不执行软启动过程。同时在软启动过程中有可能需要紧急停车,这时将会进入中断程序,执行完中断程序后将会立即返回软启动程序,虽然在中断程序中断开了旁路触发器、主触发器、反向触发器,但是软启动程序的最后一段指令功能将会接通旁路触发器,这样电动机虽然不会转动,但是当返回主程序后再次按下软启动按键时将会直接把软启动器短路,不能实现软启动的功能,因此需要在最后一段之前判断主触发器是否闭合,这样将会使上述情况发生的可能性将会降到很低。但是不排除极端情况的发生,当刚进入最后一段程序而未执行任何语句时就进入中断,返回最后一段程序时将会再次将旁路接触器闭合,相当于判断语句被短路,当闭合旁路接触器的语句越靠后发生这种极端情况的可能性越大,因此将闭合旁路接触器的语句应紧随判断语句,这样发生这种极端情况的可能性就几乎为零了。在执行软启动程序时需要根据同步检测电路来计算触发时刻,但是按下软启动按键时同步检测电路恰好为高电平,如果以此时为零点计算将会得出错误的触发时刻,因此需要以检测到下个高电平为触发参考点,故在脉冲产生程序之前首先需要取得正确的参考点,这个问题在软停车问题中也会出现,解决方法相同,下文将不再赘述。当进入启动程序时首先判断电机是否在运行,当电机未运行时开始产生触发脉冲来控制晶闸管的通断使电机降压启动,当电机电压达到额定电压时停止产生脉冲,电机开始正常运行。图4.3软启动程序流程图4.3软停车与自由停车程序软停车过程所产生的问题将会比软启动过程产生的问题少得多,这是由于软停车程序最后将会断开所有接触器,这与初始化后所得结果相同,因此对以后的使用将不会产生影响。而其中所产生的大部分问题可参考软启动过程中的问题及解决方法,在此不再赘述,自由停车同上。图4.4自由停车程序流程图图4.5软停车程序流程图4.4紧急停车程序图4.6紧急停车程序流程图当发生紧急情况需要紧急停车时按下紧急停车按键进入紧急停车程序,因为紧急情况可能在任意时刻发生,因此通过外部中断来实现该功能。由于紧急停车程序可能在任何时刻执行,因此在进入紧急程序时需要关闭所有指示灯,后打开紧急停车的指示灯。在紧急停车中将会产生大量新的问题,以下将详细分析并提出相应的解决问题。本设计的紧急停车是通过反接制动实现的,因此需要避免电机发生反转,为此需要在电机转速低于某一值时使其自由停车,而转速可以通过对射光电传感器来测取,本设计不需要测得准确的转速,只需判断电机转速是否小于某值,这样可以通过计数器的溢出次数来判断,而计数器的中断优先级小于外部中断零的,因此可以通过将计数器零的中断优先级提高。或使用计数器一与外部中断零来解决该问题。4.5延时程序与脉冲信号程序本设计延时程序通过加法程序来实现,具体可参见附录中延时程序部分。当程序进入软启动或软停车时必定要进入脉冲程序来实现脉冲信号的产生,由于晶闸管需要两两导通来构成回路,因此需要同时产生两相脉冲来控制晶闸管的导通,而且为了防止晶闸管能够可靠导通脉冲应该有一定的宽度,同时为避免晶闸管的误导通脉冲宽度不能过大,晶闸管导通后应及时将脉冲信号关闭,脉冲信号程序应当实现该要求。当程序进入脉冲程序时首先进行一定的延时已达到设定的导通角(本设计软启动的首次导通角为120°,软停车的首次导通角为30°),而后A、B相触发信号同时产生并延时1ms后关闭,再过2.3333ms后A、C相触发信号产生并持续1ms关闭,在购2.3333ms后B、C相触发信号产生并持续1ms后关闭再过2.3333ms后重复上述过程一百次而后触发脉冲提前0.5ms,如此重复10次软启动完成,软停车方法类似。但是脉冲信号还是存在一些问题,由于在复位后单片机的P2口是高电平因此将使得晶闸管导通,这个问题看似严重但是由于在单片机复位后触发器全都处于断开状态,因此并不会产生任何实际问题。4.6proteuse仿真图4.7同步信号提取电路的仿真结果图4.8触发信号图4.9触发器与按键部分图4.10按下启动按键后触发器仿真图图4.11按下紧急停车按键后触发器仿真图5总结与展望本设计通过这次对软启动的设计使我我对电动机的运行原理有了更加深刻的认识,对于以前在学习过程中所学的知识有了更加清晰的认知,明白了纸上得来终觉浅的道理,使我对电气工程及其自动化专业对生活的影响更加可以看得见摸得着,不再是以前纸上谈兵,在以后的学习过程中要时刻与实际相联系,同时要放开眼界不能闭门造车,要时刻关注本学科的最新动态,合理运用互联网资源多读些与本学科相关的论文,在设计时要多对比、多思考既不要闭门造车也不能毫无创新,要在合理的基础上提出自己的方案。虽然本设计已经完成并超过了任务书中所提到的要求,但我也深知本设计中的不合理部分还有待改进,如在程序分析中所提到的问题等,我希望通过以后的学习能够解决此问题使得该设计更加合理化、人性化。电机软启动器必定是大有发展前景的。附录A:程序#includereg52.hsbitc0=P1^5;sbita0=P1^0;sbita1=P1^1;sbita2=P1^2;sbita3=P1^3;sbita4=P1^4;sbita6=P1^6;sbita7=P1^7;sbitb0=P2^0;sbitb1=P2^1;sbitb2=P2^2;sbitb3=P2^3;sbitb4=P2^4;sbitb5=P2^5;sbitb6=P2^6;sbitb7=P2^7;voidrstart();voidrstop();voidstop();voidM();voidN();voidy1();//延时0.5msvoidy2();//延时1msvoidy3();//延时2.3333msvoidy4();//延时6.6667msvoidy5();//延时1.6667msinti;i=0;voidmain()//主函数{EA=1;EX0=1;ET0=1;//开中断TMOD=0x01;TH0=0x3C;TL0=0x0B0;IP=0x02;IT0=0;//计时器设置b0=0;b1=0;b2=0;//初始化(关闭脉冲)b6=0;for(;1;){if(a0==0){rstart();}if(a1==0){rstop();}if(a2==0){stop();}}}voidy1()//延时0.5ms{unsignedchara,b;for(b=91;b0;b--)for(a=1;a0;a--);}voidy2()//延时1ms{unsignedchara,b;for(b=4;b0;b--)for(a=113;a0;a--);}voidy3(){unsignedchara,b;for(b=195;b0;b--)for(a=4;a0;a--);}voidy4(){unsignedchara,b,c;for(c=7;c0;c--)for(b=46;b0;b--)for(a=8;a0;a--);}voidy5(){unsignedchara,b,c;for(c=1;c0;c--)for(b=8;b0;b--)for(a=94;a0;a--);}voidM()//脉冲程序{b0=1;b1=1;y2();b0=0;b1=0;y3();b0=1;b2=1;y2();b0=0;b2=0;y3();b1=1;b2=1;y2();b1=0;b2=0;}voidN(){b0=1;b1=1;y2();b0=0;b1=0;y3();b0=1;b2=1;y2();b0=0;b2=0;y3();}voidrstart()//软启动程序{if(a7!=0){inta,b,c,d;c=0;d=0;a0=1;a3=0;//指示灯b3=0;//打开正转开关while(c0!=0);while(c0!=1);y4();//120°触发角for(a=10;a=0;a--){for(b=0;b=99;b++){b7=0;M();y3();b7=1;}N();for(d=a;d=0;d--){y1();}}a3=1;if(b3==0){b4=0;a7=0;b0=0;b1=0;b2=0;}//关闭脉冲}}voidrstop(){inta,b,c;a=0,b=0,c=0;if(a7==0){a1=1;a7=1;a4=0;b4=1;while(c0!=0);while(c0!=1);y5();for(;a=9;a++){for(b=0;b=99;b++){M();y3();}y1();}a4=1;b3=1;b0=0;b1=0;b2=0;}}voidstop(){if(a7==0){a7=1;a2=1;b4=1;b3=1;}}voidshjian()interrupt1{TH0=0x3C;TL0=0x0B0;i++;}voidwaibu0()interrupt0{inta,b,c;b=0;c=0;b3=1;b4=1;b5=0;a7=1;a6=0;a3=1;a4=1;TR0=1;a=i;for(;c=4;){if(b6==1){b=i;c=b-a;a=b;}}b5=1;a6=1;}参考文献[1]刘利,王栋.电机软启动器实用技术[M].北京:中国电力出版社,2009.[2]李发海,王岩.电机与拖动基础[M].3版.北京:清华大学出版社,2005.[3]任致程.电动机电子保护器与软启动器应用指南[M].北京:机械工业出版,2004.[4]方国生,等.软启动器的原理应用和选用手册[M].北京:海洋出版社,2004.[5]周希章,等.电动机的起动、制动和调速[M].2版.北京:机械工业出版,2003.[6]辜承林,等.电机学[M].3版.武汉:华中科技大学出版社,2010.[7]汤蕴遒,史乃,等.电机学[M].西安:西安交通大学出版社,1993.[8]汤蕴遒.交流电动机动态分析[M].北京:机械工业出版社,2005.[9]胡虔生,胡敏强.电机学[M].北京:中国电力出版社,2005.[10]张广溢,郭前岗.电机学[M].重庆:重庆大学出版社,2002.[11]许实章.电机学[M].2版.北京:机械工业出版社,1995.[12]付光杰,牟海维.电机与拖动[M].北京:石油工业出版社,2011.[13]顾绳谷.电机及拖动基础[M].2版.重庆:重庆大学出版社,2005.[14]汪国梁.电机学[M].北京;机械工业出版社,1987.[15]辜承林.机电动力
本文标题:基于单片机的电机软启动器设计下
链接地址:https://www.777doc.com/doc-4082900 .html