|
說(shuō)明:以下只涉及到核心算法,程序其它部分可根據(jù)實(shí)際情況設(shè)計(jì)。
1.delay過(guò)程在這里用作延時(shí),可根據(jù)實(shí)際情況調(diào)整延時(shí)時(shí)間,實(shí)現(xiàn)電機(jī)在某個(gè)固定速度上運(yùn)行一段時(shí)間。
2.pwm_out過(guò)程為pwm信號(hào)輸出。
3.以下一個(gè)while代表一次加速度,利用延時(shí)過(guò)程在while里進(jìn)行延時(shí)累加,實(shí)現(xiàn)pwm緩慢加速?筛鶕(jù)實(shí)際運(yùn)行情況實(shí)現(xiàn)分級(jí)加速。如地鐵中常使用的4級(jí)調(diào)速。
4.如應(yīng)用至電力機(jī)車中,對(duì)于電機(jī)的調(diào)速,電機(jī)的加速度盡量接近車輛在一定作用力下的自然加速度,防止對(duì)功率管、電機(jī)和車輛各個(gè)系統(tǒng)造成過(guò)大沖擊。
pwm_add=20; //pwm0設(shè)置初始值,使得啟動(dòng)時(shí)有足夠電壓驅(qū)動(dòng)電機(jī),并且實(shí)現(xiàn)降壓?jiǎn)?dòng)
pwm_out(pwm_add); //pwm0公共過(guò)程
delay(base_time,2000);
pwm_add=20; //pwm0設(shè)置初始值,使得啟動(dòng)時(shí)有足夠電壓驅(qū)動(dòng)電機(jī),并且實(shí)現(xiàn)降壓?jiǎn)?dòng)
while(pwm_add!=150) //pwm0輸出小于151時(shí)使其不斷累加
{
delay(base_time,add_time); //控制加速度
pwm_out(pwm_add); //pwm0公共過(guò)程
pwm_add=pwm_add+1; //累加器
}
delay(base_time,3000); //運(yùn)行一段時(shí)間
pwm_add=150; //pwm0設(shè)置初始值,使得啟動(dòng)時(shí)有足夠電壓驅(qū)動(dòng)電機(jī),并且實(shí)現(xiàn)降壓?jiǎn)?dòng)
while(pwm_add!=255) //pwm0輸出小于151時(shí)使其不斷累加
{
delay(base_time,add_time); //控制加速度
pwm_out(pwm_add); //pwm0公共過(guò)程
pwm_add=pwm_add+1; //累加器
}
|
|