关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > FPGA在直流电机位置控制中的应用

FPGA在直流电机位置控制中的应用

作者:时间:2009-07-03来源:网络收藏

在工作时钟的作用下,驱动模块会不断地检测EN信号和stopinter信号是否有效,如果:EN有效,并且stopinter无效的时候,模块的输出 controi_outA,cont-orl_outB取决于输入信号derect[1..0]的状态,当derect[1..0]为“01” 时,control_outA输出为“0”;control_outB输出为“1”,表示反转。当derect[1..0]为“10”时, control_outA输出为“1”;con-trol_outB输出为“O”,表示正转。驱动控制模块一旦检测到stop信号有效, control_outA和control_outB的输出都为“O”,表示控制电机刹车并停止。在EN和stop信号都无效的时候, control_outA和con-trol_outB的输出都为“1”,表示对电机不做任何控制。
如图4所示,当EN和stopinter信号都为“0”时,模块的输出control_outA,contorl_outB都为“1”,对电机不做任何控制。当EN信号变为“1”时,表示电机开始运动,模块的输出control_outA为“O”,Contorl_outB为“1”,与direction [1..0]中的值“01”相同,此时电机反转。当stopinter信号变为“1”时,模块的输出control_outA为“O”; contorl_outB也为“O”,此时电机刹车并停止。当EN信号为“1”,stopinter信号再次为“0”时,电机再次开始运动,模块的输出 control_outA为“1”;con-torl_outB为“0”,与direction[1..O]中的值“10”相同,此时电机反转。
1.2.3 延时模块
图4中,EN为延时的使能信号,也就是计数比较模块的输出信号stopinter;inclk为工作时钟;stop为电机停止信号对外部的输出信号。延时模块(如图5所示)的工作原理如下:当延时模块检测到stopinter信号为“1”时,模块内的计数器开始工作,计数器时钟即模块的工作时钟10 kHz,当记满300后,模块输出信号为“1”。延时模块检测到stopinter信号为“0”时,模块内计数器不工作,模块输出信号为“0”。

当电机刹车时,由于存在惯性,电机不会立即停止,会有一段滑行的过程,在这个过程中,电机仍然会通过磁编码器返回反馈脉冲,只是因为电机的转速下降,反馈脉冲的频率大大降低。当stopinter信号变为“1”时,电机开始刹车,如果此时立刻读取feedback[15..O]端口上的反馈脉冲数值,计算出电机所带负载的,那么必然会丢失掉滑行过程中的反馈脉冲。这样就会导致读回的反馈脉冲数与实际电机返回的反馈脉冲数不相等,从而严重地影响控制精度,所以必须在stopinter信号变为“1”后,延长一段时间,确保电机停止不动后,再给出STOPTEST信号,作为读取反馈脉冲数值的有效信号,这时用读回的反馈脉冲数值计算出负载的实际是准确的。
通过实验,在电机以最高转速运行时,让电机刹车,用逻辑分析仪抓出反馈脉冲的波形,找出反馈脉冲频率开始突然下降直到反馈脉冲消失的那段时间,就是所需要的延时。通过反复进行实验,测试出这段时间为30 ms,其间的反馈脉冲个数为20个。因此把要控制的位移量换算成反馈脉冲的个数后,用这个值减去20作为比较模块给定值,就可以抵消滑行过程中增加的20 个脉冲。这样对电机的控制能够达到一次到位,不需要进行再次调节。延时模块仿真图如图6所示。

2 结 语
现场可编程门阵列()器件体积小、速度快、集成度高,能够用硬件电路来实现算法。使用控制电机,能够保证控制的实时性和可靠性。它作为一种有效的数字化控制方法必将广泛地为人们所接受和使用。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭