保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

利用DSP控制直流无刷电机


,转子磁场位于I区,那么顺时针运转时,下一个编码器状态应为001,这正好对应于上述数组中,下标为011的元素值为001。这样,通过比较以编码器上一个状态作为下标的数组元素值与当前状态是否相同,就可以判断转子运转方向。在实现定子电流换相时,也以当前状态为下标,从专门数组中取得PWM模块通道交换与屏蔽所需的参数。在本应用中,将三对PWM互补通道对的参数设成一致,通过屏蔽某一相,交换另外一相,实现定子绕组电流状态的控制,如在图2中,A相被屏蔽,B相顶功率管开关占空比为70%,而将C相两个PWM通道交换,C相的底功率管开关占空比就由原来的30%成为70%,从而使电流由B相流入定子绕组而从C相流出,确定定子绕组B->C的电流状态。
  
  积分编码器的某一路输出,比如PHASEC的跳变,还触发了定时器A3的输入捕捉中断。在输入捕捉中断中,取得各个跳变沿之间的时间间隔,用来计算转子速度。定时器A3的溢出中断,也是为取得各个跳变沿之间的时间间隔服务。
  
  在Initialize()函数中调用的LedInit()函数内部已经将定时器D0进行了初始化,所以从那时开始,定时器D0开始运行,每20ms产生一个中断,触发中断服务子程序LedISR()的运行。在LedISR()中,只是设了一个标志位bLedISROccurred为真。但这会使得死循环内ServiceLedISR()函数的具体内容被执行,而不是直接返回。ServiceLedISR()函数的具体代码完成以下工作:
  ◆Led闪烁周期计算和控制;
  ◆UpButton、DownButton按键延时控制;
  ◆从ADC读取直流电压值并重启ADC;
  ◆取得一路积分编码器的跳变沿间隔并计算速度,进行速度控制。
  
  所以,转子运转的速度控制是在几乎每20ms周期的ServiceLedISR()内完成。
  
  加减速按键也触发中断,在中断服务子程序内,调用相应函数,实现系统设定速度的改变。
  
  
  结束语
  Motorola的数字信号处理器DSP568xx系列凭借着较强的数据处理能力和强大丰富的外围,尤其是相位检测器、脉宽调制等模块,非常适用于直流无刷电机控制这样的实时应用中。前后台方式的控制算法,反应速度快,代码量少,在直流无刷电机等控制过程不很复杂,但对于实时性要求较高的场合,有比较好的特性。
  
  
  
 

《利用DSP控制直流无刷电机(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/142302.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。