DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 104|回复: 0
打印 上一主题 下一主题

无位置传感器控制系统软件流程

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 17:16:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      主程序中main()中,首先进行DSP内核时钟、各功能模块预定标器、AD采样时钟、各类外设中断以及PWM、GP10等各个重要参数的初始化,用以设置PWM占空比、不导通相选择、D上升沿触发器触发信号周期。另外,还包括使用无刷直流电机模型仿真得到的开环起动时间、换相标志、电机驱动PWM换相表数组以及不导通相选择数组的初始化。设定一个关键的换相标志Flag,以循环更替无刷直流电机的6个换相状态,因此这个换相标志Flag会在0~5问变化。程序初始化时设定一个换相数组Phase[8],以及不导通相端电压选择数组FloatSelect[8]。换相数组中记录着6个不同换相状态,所对应的6路PWM驱动信号行为寄存器ACTR的数值。端电压选择表的数值代表着6个不同换相状态时,应当加载在模拟多路开关ADG409上的不导通相端电压选择信号。
  通过读取电机换相表,先将电机固定在某一特定的位置上。需要注意的是,这一过程输出PWM的占空比应当很小,以保证电机绕组中电流很小。通过设定好换相标志位,读取相应位置的换相表,然后进行一定时间的延时,以防止电机在固定过程中发生抖动。延时之后,使得换相标志加1,读取换相表数组的下一个值进人ACTR寄存器,开始使电机起动,此时再进入一个软件循环中,以等待中断事件的发生。利用定时器中断进行换相从固定相位开始启动后,当反电动势是够大时,开始准各切换到闭环控制状态,在DSP程序中开启CAP中断,准各检测第一个不导通相反电动势的过零点以进人CAP中断子程序。具体主函数初始化程序如附录所示。
  无位置传感器电机控制程序中断事件主要包括CPUTirnet0定时中断以及CAP捕获中断,通过中断子程序的编制,可以实现开环起动加速、闭环切换以及转速计算和换相等诸多系统功能。
  CPUTimet0中断的主要作用是在电机开环过程中,读取开环起动时间表中的计数值开始计数。当计数完成后,即是一定时间过后,进入中断后,更改换相标志,读取换相表的下一个数值,送人ACTR寄存器,以改变6路PWM的驱动信号。
  CPUTimet0中断的另一个作用是用于电机闭环过程中,在检测到不导通相反电动势过零点之后,延时30°电角度之后进行换相。根据过零点比较信号,将当前转速计算出电机延时30°所需要的时间,换算成CPUTimet0的计数值,写人定时寄存器,以作为延时换相的参数。当在DSP的CAP端口发现反电动势过零比较信号发生跳变后,就启动CPUTimet0开始计数,直到再次进人定时中断。在定时中断子程序中,改变换相标志位,读取换相表中的下一个数值,以及选通不导通相的端电压。
  因此,DSP中CPUTimer0实现了电机开环起动功能以及闭环之后的延时换相功能,并最终通过改变换相标志,进行电机的换相与不导通相的选择操作。
  CAP中断的重要作用是响应过零点比较信号,并计算电机转速。每次模拟检测电路输出的比较信号发生跳变,即不导通相反电动势过零时,DSP能够相应地进人CAP中断子程序。使用CAP中断的定时器捕获功能可以得到两次过零点之间的定时器计数值,而两次过零点之间的时间对电机来说是运行了60°电角度,因此可以很容易得知延时30°电角度的时间。
  CPUTimet0定时中断以及CAP捕获中断子程序实现如附录所示。
  另外,当无刷直流电机在每次换相和不导通相端电压切换时,由于电机相电流续流以及电子开关的作用,不导通相端电压会发生振荡,有噪声和干扰出现,可能会导致模拟检测电路产生虚假的过零点。因此,在换相标志每次发生改变时,可以在软件执行上对上述干扰采取避免措施,是无位置传感器控制系统提高过零点检测精度的关键。依据CAP中断子程序中捕获到的电机当前运行60°电角度CPUTimer0的计数值,通过计算可以得到运行15°电角度的计数值。每次进行换相和切换不导通相之后,进行10°电角度运行时间的延时,通过使用CPUTimer0定时器以实现延时。
  整个初始化起动过程软件流程如图1所示。
  无位置传感器进人CAP中断,对不导通相反电动势过零点进行响应,计算当前电机转速,并且进行延时换相的程序流程如图2所示。



  图1??? DSP初始化起动程序流程



  图2??? CAP中断子程序流程
  欢迎转载,信息来自维库电子市场网(www.dzsc.com)
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2026-4-6 19:47 , 耗时 2.196096 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表