本發(fā)明涉及電機控制領域,具體涉及一種基于無刷電機的多路電動舵機控制系統(tǒng)。
背景技術:
在使用四路電舵機的場合,由于電舵機基于無刷電機控制,而無刷電機是用霍爾傳感器代替老式電刷對轉(zhuǎn)子換向控制,這就需要控制器接收無刷電機的霍爾傳感器反饋的電機轉(zhuǎn)子位置信號;在如圖1所示的傳統(tǒng)技術中,通常采用一個dsp芯片作為控制芯片,但是傳統(tǒng)的dsp芯片的cap單元只有兩組六路采集,鑒于資源限制,只能采用dsp的四組12路i/0端口以1ms的定時終端速率進行信號采集,占用了dsp大量的資源,即便如此,由于霍爾信號的讀取速率是1ms每次,采用上述方案也會使得電機在轉(zhuǎn)速超過2000rpm/min時,霍爾信號采集失步,從而導致電機轉(zhuǎn)向失敗,舵機運行失控;因此,單獨采用dsp芯片對四路電舵機進行控制,需要嚴格限制舵機的轉(zhuǎn)速在2000rpm/min以下,而實際上無刷直流電機若采用高速軸承,理論轉(zhuǎn)速可高達每分鐘幾十萬轉(zhuǎn),因此,針對需要同時控制多路電機的場合,僅采用dsp進行控制無法達到控制要求。
技術實現(xiàn)要素:
本發(fā)明的發(fā)明目的在于:針對現(xiàn)有四路電舵機控制場合,采用一個dsp芯片作為控制芯片時,由于dsp性能限制導致受控電機轉(zhuǎn)速超過2000rpm/min時會出現(xiàn)采集失步,電機轉(zhuǎn)向失敗,導致電機轉(zhuǎn)速受限的問題,提供一種電機轉(zhuǎn)速不受控制器性能限制的多路電機控制系統(tǒng)。
為實現(xiàn)上述目的,本發(fā)明提供如下技術方案:
一種基于無刷電機的多路電動舵機控制系統(tǒng),包括四臺受控電機,每臺受控電機中設置有三個霍爾傳感器;
包括,
dsp芯片,dsp芯片的受控信號輸入端與上位機連接,用于接收控制信號;同時,dsp芯片的信號輸入端與各個受控電機中的電位器連接,用于實時接收受控電機中電位器信號;所述dsp芯片還包括四路pwm波輸出端和四路方向控制信號輸出端;所述pwm波輸出端、方向控制信號輸出端均與cpld控制芯片的控制信號輸入端連接;
cpld控制芯片,其還包括十二個信號輸入端,該十二個信號輸入端分別與四臺受控電機中的十二個霍爾傳感器連接;cpld控制芯片還包括二十四個信號輸出端,所述二十四個信號輸出端分為四組,每組信號輸出端輸出6個pwm信號至驅(qū)動電路,用于控制一臺受控電機。
進一步的,包括同時與dsp芯片、cpld控制芯片以及驅(qū)動電路連接的二次電源電路,所述二次電源電路用于為dsp芯片、cpld控制芯片以及驅(qū)動電路提供合適的電壓。
進一步的,每臺受控電機的驅(qū)動電路包括,三個驅(qū)動芯片以及一個三相全橋電路;
所述三相全橋電路的三個輸出端分別與該受控三相電機的三個線圈連接;
三個驅(qū)動芯片分別為第一驅(qū)動芯片、第二驅(qū)動芯片、第三驅(qū)動芯片,每個驅(qū)動芯片均與cpld控制芯片的兩路pwm控制波輸出端連接,用于分別控制三相全橋電路中一個橋臂上的上下兩個功率管。
進一步的,所述dsp芯片包括依次連接的ad轉(zhuǎn)換模塊、濾波模塊,pid計算模塊以及pwm波生成模塊;
其中,所述ad轉(zhuǎn)換模塊與dsp芯片的信號輸入端連接,用于將受控電機中的電位器信號轉(zhuǎn)換為數(shù)字信號后傳遞至濾波模塊進行fir濾波,pid計算模塊同時接收濾波模塊傳遞的位置信號和上位傳遞的控制信號,并根據(jù)兩者進行積分分離pid計算;所述pwm波生成模塊根據(jù)pid計算模塊的計算結(jié)果生成pwm波并輸出;
所述pid計算模塊同時根據(jù)計算結(jié)果生成換向控制信號并輸出至cpld芯片。
進一步的,所述cpld控制芯片與驅(qū)動電路之間設置有光耦。
進一步的,所述dsp芯片和所述cpld控制芯片之間設置光耦。
優(yōu)選的,cpld控制芯片采用epm570t100i5n。
優(yōu)選的,所述驅(qū)動芯片為半橋驅(qū)動器ir2108s。
優(yōu)選的,所述功率管為irf540ns。
與現(xiàn)有技術相比,本發(fā)明的有益效果是:本發(fā)明提供的基于無刷電機的多路電動舵機控制系統(tǒng)通過在dsp芯片和驅(qū)動電路之間增加一cpld控制芯片,讓該cpld控制芯片承擔接收電機霍爾信號,并產(chǎn)生控制各個轉(zhuǎn)子驅(qū)動電路的pwm波信號的智能,有效解決了現(xiàn)有四路電舵機控制場合,采用一個dsp芯片作為控制芯片時,由于dsp性能限制導致受控電機轉(zhuǎn)速超過2000rpm/min時會出現(xiàn)采集失步,電機轉(zhuǎn)向失敗,導致電機轉(zhuǎn)速受限的問題。
附圖說明
圖1為現(xiàn)有技術中多路電機控制系統(tǒng)結(jié)構(gòu)框圖。
圖2為本發(fā)明中提供的基于cpld的多路電機控制系統(tǒng)結(jié)構(gòu)框圖。
圖3為本發(fā)明中dsp芯片結(jié)構(gòu)原理圖。
圖4為本發(fā)明中dsp芯片處理程序任務框圖。
圖5為本發(fā)明中dsp芯片主程序流程圖。
圖6為本發(fā)明中dsp芯片a/d中斷子程序流程圖。
圖7為本發(fā)明中cpld與驅(qū)動芯片、全橋電路連接示意圖。
圖8a至圖8f為轉(zhuǎn)子一個旋轉(zhuǎn)周期內(nèi)霍爾電平及合成磁場的變化。
圖9為本發(fā)明中無刷電機換相程序流程圖。
圖10為本發(fā)明實施例中繞組逆時針旋轉(zhuǎn)時各信號的波形示例圖。
圖11為本發(fā)明實施例中繞組順時針旋轉(zhuǎn)時各信號的波形示例圖。
圖12為本發(fā)明中積分分離pid算法控制流程圖。
圖13為本發(fā)明中fir濾波流程圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例1:如圖2所示,本實施例提供一種基于無刷電機的多路電動舵機控制系統(tǒng),包括四臺受控電機,每臺受控電機中設置有三個霍爾傳感器;還包括,
dsp芯片,dsp芯片的受控信號輸入端與上位機連接,用于接收控制信號;同時,dsp芯片的信號輸入端與各個受控電機中的電位器連接,用于實時接收受控電機中電位器信號;所述dsp芯片還包括四路pwm波輸出端和四路方向控制信號輸出端;所述pwm波輸出端、方向控制信號輸出端均與cpld控制芯片的控制信號輸入端連接。
具體的,如圖3、圖4、圖5、圖6所示,所述dsp芯片包括依次連接的ad轉(zhuǎn)換模塊、濾波模塊,pid計算模塊以及pwm波生成模塊;其中,所述ad轉(zhuǎn)換模塊與dsp芯片的信號輸入端連接,用于將受控電機中的電位器信號轉(zhuǎn)換為數(shù)字信號后傳遞至濾波模塊進行fir濾波,pid計算模塊同時接收濾波模塊傳遞的位置信號和上位傳遞的控制信號,并根據(jù)兩者進行積分分離pid計算;所述pwm波生成模塊根據(jù)pid計算模塊的計算結(jié)果生成pwm波并輸出;所述pid計算模塊同時根據(jù)計算結(jié)果生成換向控制信號并輸出至cpld芯片。
詳細的,如圖5所示,a/d轉(zhuǎn)換模塊在完成一次舵偏角度信號采集后會產(chǎn)生一個外部中斷信號,dsp芯片捕獲到該外部中斷信號后進入中斷子程序讀取a/d采集值,并在完成采集后反饋給采集芯片指令信號開始新的采集。
與此同時,在中斷程序中,濾波模塊將采集到的舵偏角度值進行fir濾波,這是由于,在整個電動舵機控制系統(tǒng)中,由于反饋電位計品質(zhì)問題或電路干擾使反饋信號出現(xiàn)較大毛刺時系統(tǒng)將會出現(xiàn)較大擾動,因此,本實施例中,利用fir濾波方法,對a/d采集的反饋信號進行fir濾波,采用濾波后的值參與控制運算,可以使整個舵機系統(tǒng)的控制性能得到較大提升;具體的,fir濾波的流程如圖13所示,fir濾波時,取特殊的16位對稱數(shù)組h,然后將采集到的16個當前數(shù)據(jù)(舊數(shù)據(jù))放入數(shù)組k,k向前移位,去掉最早的數(shù)據(jù);將新采集的一個數(shù)據(jù)放入數(shù)組k的最后一位,h與k求卷積并累加求和s;s右移16位得到最終數(shù)據(jù)。
pid計算模塊接收到濾波后的信號后,將該舵偏角度與自上位機發(fā)送來的控制指令角度比較產(chǎn)生誤差量e,通過pid控制算法計算pwm輸出占空比,pid計算模塊負責該pid控制算法的計算,一些實施例中,pid計算采用如下公式進行計算:
其中e(k)、
系統(tǒng)還包括,cpld控制芯片,具體的,cpld控制芯片還包括十二個信號輸入端,該十二個信號輸入端分別與四臺受控電機中的十二個霍爾傳感器連接;cpld控制芯片還包括二十四個信號輸出端,所述二十四個信號輸出端分為四組,每組信號輸出端輸出6個pwm信號至驅(qū)動電路,用于控制一臺受控電機。
每臺受控電機的驅(qū)動電路包括,三個驅(qū)動芯片以及一個三相全橋電路;其中,三個驅(qū)動芯片分別為第一驅(qū)動芯片、第二驅(qū)動芯片、第三驅(qū)動芯片,每個驅(qū)動芯片均與cpld控制芯片的兩路pwm控制波輸出端連接,用于分別控制三相全橋電路中一個橋臂上的上下兩個功率管;所述三相全橋電路的三個輸出端分別與該受控三相電機的三個線圈連接;
應注意的是,為將功率回路與小信號控制回路隔開,cpld控制芯片輸出的pwm信號進入驅(qū)動芯片之前,cpld控制芯片自第一控制信號輸入端、第二控制信號輸入端接收pwm控制信號以及方向控制信號dir之前,cpld控制芯片接收霍爾信號之前均需要進行隔離,隔離電路中分別采用tlp2116芯片和tlp117芯片來實現(xiàn)。
本實施例中,cpld控制芯片選用altera公司maxⅱ系列的epm570t100i5n,該器件工作溫度范圍為-40℃~+100℃,封裝方式為tqfp-100,內(nèi)部有570個邏輯單元,等效宏單元數(shù)為440個,供電電壓為2.5v或3.3v;驅(qū)動芯片選用ir公司的半橋驅(qū)動芯片ir2108s,該芯片是一款高電壓、高速功率mosfet和igbt驅(qū)動芯片,供電電壓為10v~20v,輸入電壓可以是3.3v、5v或15v,施加在mosfet漏極(d)的電壓最高可達600v;功率管為irf540ns,rds(on)=0.04ω,vgs=10v。
在本實施例中,在三相無刷直流電機中三個霍爾傳感器h1、h2、h3分別間隔120度均勻設置在電機繞組下方,與ax、by、cz三個繞組初始位置對應,霍爾傳感器的輸出信號為數(shù)字信號,當外界磁場方向為正時,輸出為正,且磁場的極性每變換一次,輸出信號就發(fā)生一次跳變。為使說明簡便,轉(zhuǎn)子的極對數(shù)選為1。假定轉(zhuǎn)子的初始位置位于0°,此時h1位于轉(zhuǎn)子的極間中心線上,它的輸出電平會在此位置發(fā)生跳變:若轉(zhuǎn)子的n極向它靠近,則輸出電平由0跳到1,反之,輸出電平從1跳到0,而h2=0,h3=1。
若給繞組ax和by通電,且電流流向為a→x→y→b,利用右手定則確定通電繞組各自形成的磁場方向如圖所示,則合成磁場的方向與轉(zhuǎn)子磁場的方向有夾角,產(chǎn)生旋轉(zhuǎn)力矩,推動轉(zhuǎn)子按逆時針方向旋轉(zhuǎn)。令轉(zhuǎn)子轉(zhuǎn)過的角度為θ,當0°≤θ<60°時,三個霍爾傳感器的輸出電平為h1=1,h2=0,h3=1。
若保持該通電狀態(tài)不變,轉(zhuǎn)子最終會停在繞組合成磁場所在的直線上。要使轉(zhuǎn)子連續(xù)旋轉(zhuǎn),繞組的通電狀態(tài)必須隨轉(zhuǎn)子位置的改變而改變。在轉(zhuǎn)子的一個旋轉(zhuǎn)周期內(nèi),三個霍爾傳感器的電平共跳變六次,即每隔60°就有一個霍爾傳感器的電平發(fā)生跳變,繞組的通電狀態(tài)隨之發(fā)生改變,合成磁場與轉(zhuǎn)子磁場產(chǎn)生的旋轉(zhuǎn)力矩推動轉(zhuǎn)子不停旋轉(zhuǎn);由此,電機的受控運行是一個“繞組通電狀態(tài)改變”→“繞組合成磁場方向改變”→“轉(zhuǎn)子轉(zhuǎn)動”→“霍爾傳感器輸出電平改變”→“繞組通電狀態(tài)改變”的閉環(huán)控制過程。
詳細的,在一個旋轉(zhuǎn)周期內(nèi),三個霍爾傳感器輸出電平的跳變過程如圖8a至圖8f所示:
轉(zhuǎn)子逆時針由圖8a轉(zhuǎn)到圖8b位置之前,定子的合成磁場始終保持不變,直至轉(zhuǎn)子轉(zhuǎn)動至圖8b位置,定子合成磁場才同時變到圖8b位置??梢姡ㄗ雍铣纱艌鍪且环N步進式的旋轉(zhuǎn)磁場,每次步進角為60°。同時,功率管在轉(zhuǎn)子每轉(zhuǎn)過60°電角度時完成一次換流。由此可得出三相無刷直流電機的邏輯狀態(tài)如表1和表2所示:
表1三相無刷直流電機邏輯狀態(tài)(逆時針旋轉(zhuǎn))
表2三相無刷直流電機邏輯狀態(tài)(順時針旋轉(zhuǎn))
上表中,“+”表示繞組電流方向為a→x,b→y或c→z;“-”表示繞組電流方向為x→a,y→b或z→c;“0”表示繞組不通電。逆時針旋轉(zhuǎn)時,繞組通電順序為:ab→ac→bc→ba→ca→cb→ab;順時針旋轉(zhuǎn)時,繞組通電順序為:bc→ac→ab→cb→ca→ba→bc。
而本實施例提供的控制電路控制受控電機逆時針旋轉(zhuǎn)和順時針旋轉(zhuǎn)時,三個霍爾傳感器h1、h2、h3的霍爾信號、六個功率管q1、q2、q3、q4、q5、q6的導通順序、功率管的控制信號p6~p1以及cpld輸出的pwm6~pwm1的邏輯關系如下表:
表3電機旋轉(zhuǎn)時各信號的邏輯關系
當同時關斷某一橋臂兩個功率管時,由cpld輸出的該組兩個pwm信號電平值要不相同,例如,若同時關斷q5和q6,即p6p5=00,則pwm6pwm5=01或pwm6pwm5=10,這是由驅(qū)動芯片ir2108s的輸入輸出關系決定的,上表中采用pwm信號值為10的方式。此外,當dsp給出的pwm=0時,繞組不通電,關斷全橋的方式有多種,為使pwm信號電平由1跳變到0時只改變一個功率管的開關狀態(tài),將pwm=1時橋臂上導通的上管(q1,q3或q5)關閉,即對應的pwm信號的值由11變?yōu)?1。
具體的,圖9給出了本發(fā)明中無刷電機換相程序流程圖。當cpld時鐘信號的上升沿到來時判斷dir的值,若dir=01表示電機逆時針旋轉(zhuǎn);dir=10表示電機順時針旋轉(zhuǎn);dir=00或11時是無效信號,此時功率管保持關斷狀態(tài),此時pwm6~pwm1=111111。隨后判斷由dsp輸入的pwm信號,若pwm=1,cpld根據(jù)h1、h2、h3的值輸出功率管的開關控制信號pwm6~pwm1;pwm=0,功率管關斷,繞組不通電。另外,若霍爾信號h3h2h1=000或h3h2h1=111時為無效值,同樣關斷功率管。
圖10、圖11展示了應用上述電路對電機進行控制時電機繞組逆時針旋轉(zhuǎn)和順時針旋轉(zhuǎn)時各信號的波形示例圖,圖中,hall和pwm1分別對應前文提到的h3、h2、h1和pwm6~pwm1,且時鐘信號clkin、hall以及pwmin的周期是仿真時任意指定的。圖中截取了pwmin=1和pwmin=0兩種情況下pwm1的波形。
應注意的是,本系統(tǒng)理所當然的還包括同時與dsp芯片、cpld控制芯片以及驅(qū)動電路連接的二次電源電路,所述二次電源電路用于為dsp芯片、cpld控制芯片以及驅(qū)動電路提供合適的電壓。