[發(fā)明專利]一種基于Bresenham插值的高效率控制電機(jī)的方法在審
| 申請?zhí)枺?/td> | 201610530240.1 | 申請日: | 2016-07-07 |
| 公開(公告)號: | CN107589677A | 公開(公告)日: | 2018-01-16 |
| 發(fā)明(設(shè)計)人: | 齊飛;趙金龍 | 申請(專利權(quán))人: | 天津超眾機(jī)器人科技有限公司 |
| 主分類號: | G05B19/04 | 分類號: | G05B19/04 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 300384 天津市濱海新區(qū)濱海高新*** | 國省代碼: | 天津;12 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 bresenham 高效率 控制 電機(jī) 方法 | ||
1.本發(fā)明提出一種基于Bresenham插值的高效率控制電機(jī)的方法,目的在于實現(xiàn)高效的多軸聯(lián)動,解決高精度高效率的自動化控制難題。
2.根據(jù)權(quán)利要求1所述bresenham算法是計算機(jī)圖形學(xué)中為了“顯示器(屏幕或打印機(jī))系由像素構(gòu)成”的這個特性而設(shè)計出來的算法,使得在求直線各點(diǎn)的過程中全部以整數(shù)來運(yùn)算,因而大幅度提升計算速度;為了能夠高精度高效率的控制伺服電機(jī),并且能夠穩(wěn)定的聯(lián)動,沒有頻率突變;本發(fā)明創(chuàng)新性的在控制伺服電機(jī)的基礎(chǔ)之上,利用bresenham插值的方式,控制伺服電機(jī),實現(xiàn)高效的多軸聯(lián)動,使得控制伺服等設(shè)備可以精確的達(dá)到半個時鐘節(jié)拍。
3.根據(jù)權(quán)利要求2所述的基于Bresenham插值的高效率控制電機(jī)的方法,主要包括3個模塊,分別為虛擬步數(shù)發(fā)生器,虛擬步數(shù)計數(shù)器,實際脈沖輸出控制器。
4.根據(jù)權(quán)利要求3所述的虛擬步數(shù)發(fā)生器主要包括:一個累加器和一個比較器;所述累加器是通過輸入時鐘不斷累加所需要的總步數(shù)(這是一種虛擬累計方法),然后輸出給比較器;所述比較器在對總步數(shù)進(jìn)行比較,如果大于輸出總時鐘則就把總的累計步數(shù)減去總時鐘的值,并向下個模塊輸出一個虛擬步數(shù);不斷的循環(huán)往復(fù),直到整個時鐘節(jié)拍到達(dá)輸出總時間。
5.根據(jù)權(quán)利要求3所述的擬步數(shù)計數(shù)器主要包括:一個計數(shù)器和一個比較器;所述計數(shù)器主要進(jìn)行上述模塊傳入的虛擬步數(shù)計數(shù),并根據(jù)比較器的結(jié)果進(jìn)行增加與減少;所述比較器主要進(jìn)行虛擬步數(shù)總數(shù)和正脈沖,負(fù)脈沖所需的步數(shù)進(jìn)行比較,達(dá)到正脈沖的步數(shù),通知下一個模塊輸出一個正脈沖信號,并且通知計數(shù)器減去相應(yīng)的正脈沖步數(shù),從而使得計數(shù)器模塊能到達(dá)到負(fù)脈沖所需的條件。
6.根據(jù)權(quán)利要求3所述的實際脈沖輸出控制器主要就是電機(jī)的控制器,或者其他的控制器,可以根據(jù)不同的控制方式進(jìn)行更換不同的控制器;主要是根據(jù)上一個模塊得到的信號,輸出電機(jī)所需要的正脈沖和負(fù)脈沖。
7.根據(jù)權(quán)利要求3所述的控制方法,其三個模塊的部分verilog實現(xiàn)代碼為:
(1)虛擬步數(shù)發(fā)生器:
always @ (posedge clk or negedge reset_n)
begin
if(reset_n==1'b0)
vir_step_counter1<=0;
else
begin
if(pwm_enable)
begin
if(vir_step_counter1 >= pwm_time)
begin
vir_step_counter1 <= vir_step_counter1- pwm_time + step_add1_reg;
end
else if(vir_step_counter1 < 0 )
begin
vir_step_counter1 <= vir_step_counter1+pwm_time + step_add1_reg;
end
else vir_step_counter1 <= vir_step_counter1 + step_add1_reg;
end
else
vir_step_counter1<=0;
end
end
(2)擬步數(shù)計數(shù)器:
//組合邏輯 賦值虛擬步數(shù)
always @ (posedge clk or negedge reset_n)
begin
if(reset_n==1'b0)
virtual_step1 <= 0;
else
begin
if(pwm_enable)
begin
if(vir_step_counter1 >= pwm_time)
begin
virtual_step1 <= virtual_step1 + 1;
end
else if(vir_step_counter1 < 0 )
begin
virtual_step1 <= virtual_step1 - 1;
end
if(virtual_step1 > positive_step )//該輸出一個方波了,在下一個模塊執(zhí)行
virtual_step1 <= virtual_step1 - step_1000;
else if(virtual_step1 < negative_step )
virtual_step1 <= virtual_step1 + step_1000;
if(virtual_step1 > positive_step && vir_step_counter1 >= pwm_time)
virtual_step1 <= virtual_step1 - step_1000 +1;
else if(virtual_step1 < negative_step && vir_step_counter1 < 0)
virtual_step1 <= virtual_step1 + step_1000 -1;
end
else
virtual_step1 <= virtual_step1;
end
end
(3)實際脈沖輸出控制器:(為AB正交輸出)
always @ (posedge clk or negedge reset_n)
begin
if(reset_n==1'b0)
begin
pwm1_t1<=1'b0;
pwm1_t2<=1'b0;
end
else
begin
if(virtual_step1 > 0)
begin
pwm1_t1<=1'b0;
end
else
begin
pwm1_t1<=1'b1;
end
//反向輸出
if(virtual_step1 < 25 && virtual_step1 > -25)
begin
pwm1_t2<=1'b0;
end
else
begin
pwm1_t2<=1'b1;
end
end
end。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于天津超眾機(jī)器人科技有限公司,未經(jīng)天津超眾機(jī)器人科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610530240.1/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





