无位置传感器控制系统软件流程
发布时间:2008/10/28 0:00:00 访问次数:656
主程序中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)
主程序中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)
上一篇:无位置传感器控制系统软件总体设计
热门点击
- TMS320F2812 DSP系统与应用
- DSP外围电路设计
- DSP处理器的选择
- 硬件抗干扰设计
- 无位置传感器控制系统实验结果与结论
- DSP控制系统设计
- DSP外围模块初始化
- 伺服控制系统DSP系统初始化
- DSP外围电路
- 无位置传感器控制系统软件流程
推荐技术资料
- 业余条件下PCM2702
- PGM2702采用SSOP28封装,引脚小而密,EP3... [详细]