無論是小到手持設(shè)備還是大到機械機床,在當今的嵌入式和工業(yè)應(yīng)用中,控制系統(tǒng)的基本要素仍然占據(jù)著舉足輕重的地位。大多數(shù)自動控制系統(tǒng)都采用負反饋機制來控制物理參數(shù),如位置、速度、扭矩、電壓、電流以及強度等。在此,需要控制的參數(shù)均由適當?shù)淖儞Q器進行感測,之后再反饋回輸入與參考值進行比較。將經(jīng)采樣的輸出信號與參考輸入相減,即是所謂的負反饋。差異信號(“誤差”)放大后會驅(qū)動系統(tǒng)(激勵),讓輸出接近參考值。換言之,系統(tǒng)可最小化誤差信號,因而是一種閉環(huán)控制系統(tǒng)。電子機械系統(tǒng)在傳統(tǒng)控制系統(tǒng)中占絕大多數(shù),而電機控制則是一種常見的應(yīng)用。
圖1:控制電機速度的閉環(huán)系統(tǒng)
一般說來,可將電機控制系統(tǒng)分為各種不同的子系統(tǒng),如速度、位置或方向控制系統(tǒng)等。我們首先看一下構(gòu)造簡單的速度控制系統(tǒng),其電機采用常量電壓(V)。在默認情況下,電機在特定的供電電壓(V)下具有特定的轉(zhuǎn)速(x)。如果向電機施加相同電壓(V)的負載,那么其轉(zhuǎn)速可能下降(y)。這樣,我們就不能控制電機的速度,也就是說不能確保轉(zhuǎn)速不受任何外部因素的影響。這是一種開環(huán)系統(tǒng),因而我們要采取一定的反饋機制,以便能感應(yīng)電機的速度并對有關(guān)因素進行補償。
圖1顯示了閉環(huán)電機控制系統(tǒng)。這里,運動控制器將來自反饋系統(tǒng)的信號與實際輸入進行比較,以獲得誤差信號,然后將其放大后提供給電機。在此系統(tǒng)中,向電機饋送校正因數(shù)的“運動控制器”和“放大器”模塊可一起由混合信號控制器實現(xiàn),而光學(xué)轉(zhuǎn)動編碼器則作為傳感器,因為我們能通過控制器輕松對該組件的輸出信號進行解碼。下文將對上述各個系統(tǒng)的模塊做進一步地闡述。
電機就是可將電能轉(zhuǎn)換為機械能的設(shè)備。下列給出了不同領(lǐng)域常用的一些電機類型:
(Ⅰ) DC電機:最簡單的DC電機就是在軸上加線圈繞組,固定永磁鐵(見圖2)。在將電壓(V)施加給線圈時,電流(i)通過線圈。由于已有磁場(B),會有力(F)作用在線圈上(弗萊明右手法則)使其轉(zhuǎn)動。
一旦線圈達到永磁鐵的磁極之一,就會受到斥力并向另一磁極運動,從而形成持續(xù)轉(zhuǎn)動,速度由所施加的DC電壓決定。
圖2:DC電機的工作原理
(Ⅱ) 步進電機:永磁步進電機由永磁轉(zhuǎn)子、線圈繞組和磁傳導(dǎo)定子組成。
為線圈繞組施加電壓會產(chǎn)生電磁場,出現(xiàn)南北極。定子承載著磁場。通過順序通電或“步進”定子線圈,能改變磁場,進而生成旋轉(zhuǎn)運動。圖2描述了雙相電機的工作情況。在第一步中,為雙相定子的A相施加電壓,就會將轉(zhuǎn)子磁鎖在如圖所示的位置,這是因為異性相吸;在第二步中,關(guān)閉A相打開B相,讓轉(zhuǎn)子順時針旋轉(zhuǎn)90度;在第三步中,B相打開,極性與第一步相反,又產(chǎn)生90度旋轉(zhuǎn);在第四步中,A相關(guān)閉,B相打開,極性與第二步相反。重復(fù)上述序列會讓轉(zhuǎn)子每次以90度步進順時針旋轉(zhuǎn)。
在步進電機中,電機旋轉(zhuǎn)的速度取決于第一步到第四步的執(zhí)行速度。
圖3:步進電機的工作原理
旋轉(zhuǎn)編碼器簡介及其分類
電機控制系統(tǒng)的下一個部分就是能感應(yīng)電機狀態(tài)并將狀態(tài)饋送回控制器的反饋傳感器。如前所述,旋轉(zhuǎn)編碼器可發(fā)揮反饋傳感器的作用。
旋轉(zhuǎn)編碼器是一種非常簡單的電磁器件,其能為軸上的每一步旋轉(zhuǎn)生成適當?shù)拿}沖??蓪⑵錃w為兩類:絕對編碼器和增量編碼器。
(Ⅰ) 絕對編碼器
絕對編碼器可為電機軸的每個位置提供固定輸出。例如,如果編碼器能檢測0度(固定)、45度、90度、135度、180度、225度、270度、315度角的軸位置(共8個位置 - 45度的分辨率),則可為每個位置分配一個3位值,如從000到111。
(Ⅱ) 增量編碼器
就增量編碼器而言,僅能確定電機的相對位置(即僅能確定相對于上一個位置的轉(zhuǎn)動方向和角度)。增量編碼器給出A和B兩個信號,它們在不轉(zhuǎn)動的情況下都具有默認值,假設(shè)為邏輯0和邏輯1。在軸上出現(xiàn)較小角度的旋轉(zhuǎn)時,信號A和B都會在短時期內(nèi)轉(zhuǎn)換為其它邏輯,隨后又返回默認值。根據(jù)旋轉(zhuǎn)方向,A會轉(zhuǎn)到B或B會轉(zhuǎn)到A。對于每次這種旋轉(zhuǎn)來說,信號A和B都會發(fā)生這種轉(zhuǎn)變。圖4同時給出了順時針和逆時針旋轉(zhuǎn)情況下信號A和B的轉(zhuǎn)變情況。
圖4:信號A和B的轉(zhuǎn)變
此外,旋轉(zhuǎn)編碼器還可根據(jù)使用的工作原理做進一步細分,包括:
(Ⅰ) 機械編碼器:相繼趨近接觸金屬接地(邏輯0)時信號A和B發(fā)生轉(zhuǎn)變;
(Ⅱ) 磁性編碼器:轉(zhuǎn)子隨軸轉(zhuǎn)動,在此情況下南北兩極間距一致且互變。傳感器根據(jù)通量線路的方向檢測位置的微量偏移和轉(zhuǎn)動方向;
(Ⅲ) 光學(xué)編碼器:發(fā)光二極管的光束通過連接在軸上且有透明和不透明部分的圓盤。兩個光檢測器(傳感器A和B)檢測到光束,隨后生成正交相位脈沖A和B。
圖5顯示了機械編碼器示例。
圖5:機械旋轉(zhuǎn)編碼器
速度測量設(shè)備
目前,轉(zhuǎn)速表被廣泛用于測量電機的轉(zhuǎn)速??蓪㈦姍C的軸連接到類似于DC生成器的轉(zhuǎn)速表(即,用機械能生成電能)上,其輸出的DC電壓與電機轉(zhuǎn)速成正比。轉(zhuǎn)速表生成的電壓可用于實現(xiàn)進一步處理。
如今,眾多設(shè)計人員都紛紛轉(zhuǎn)而采用旋轉(zhuǎn)編碼器,每次轉(zhuǎn)動生成數(shù)字輸出。另外,這不會像轉(zhuǎn)速表那樣出現(xiàn)磨損問題。將旋轉(zhuǎn)編碼器的輸出饋送給微控制器,就能直接監(jiān)控以旋轉(zhuǎn)編碼器作為傳感器的電機轉(zhuǎn)速。
圖6:通過接口將旋轉(zhuǎn)編碼器與DC電機相連
運動控制器模塊
我們在系統(tǒng)中需要一個運動控制器模塊來比較參考速度和實際速度,并將誤差信號饋送回電機。由于上述旋轉(zhuǎn)編碼器返回兩個正交相位信號A和B,我們需要實施可對信號解碼的邏輯,從而感應(yīng)電機的電流速度。通過計算傳感速度和實際速度之差,我們就能向電機饋送校正因數(shù),從而獲得所需的速度。由于控制到電機的電源能控制其轉(zhuǎn)速,因而饋送的校正因數(shù)需要就給定的供電電壓實現(xiàn)適當?shù)碾妷盒U?/p>
我們將在以下章節(jié)詳細介紹PSoC3/5作為運動控制器的速度控制應(yīng)用。PSoC是一種名符其實的可編程嵌入式片上系統(tǒng),其在單顆芯片上高度集成了可配置的模擬與數(shù)字外設(shè)功能、存儲器和微控制器。其采用的極度靈活的視覺嵌入式設(shè)計方法包含預(yù)配置的用戶定義外設(shè)和層級原理圖條目等元素。其它特性還包括高精度可編程模擬模塊,如12到20位Δ-ΣADC、帶幾十種插入式外設(shè)的數(shù)字邏輯庫、業(yè)界最佳的電源管理以及適用于電機控制應(yīng)用的豐富連接資源等。
如何應(yīng)用可實現(xiàn)電機控制的旋轉(zhuǎn)編碼器
既然我們已經(jīng)了解了電機和旋轉(zhuǎn)編碼器的使用和工作原理,下面我們將討論三種器件如何在實際應(yīng)用中實現(xiàn)彼此互連。如果我們要對旋轉(zhuǎn)編碼器的信號進行解碼并實施進一步處理,那么通常情況下我們必須在正常的微控制器中采用中斷例程,并在中斷例程過程中避免執(zhí)行其它功能。若采用PSoC 3和5等可編程片上系統(tǒng)器件,微控制器就會有單獨的數(shù)字模塊/硬件模塊來解碼正交相位信號(A和B),并存儲電流計數(shù)值,即自動遞增和遞減。
在反饋環(huán)路中,如果我們通過電機適配器將電機軸(速度待測)和旋轉(zhuǎn)編碼器的軸(這可能給電機造成負載)連接,那么編碼器軸的轉(zhuǎn)速就會與電機相同。編碼器的輸出可饋送給PSoC 3/5中的正交解碼器模塊做進一步處理,從而全面實現(xiàn)典型的電機控制系統(tǒng)。
電機控制應(yīng)用示例
在與電機相關(guān)的應(yīng)用中,“測速”是常見的要求之一。如前所述,可在解碼器模塊中存儲電流計數(shù)值。由于電機的速度通常是根據(jù)每分鐘的旋轉(zhuǎn)次數(shù)來測量的,因而我們可通過每分鐘對計數(shù)值進行測量來測得電機速度。例如,在每一分鐘后,我們都能重設(shè)計數(shù)值,也能使用計數(shù)值差額進行計算。事實上,不用等待每分鐘都做計算,我們可測量每秒鐘的計數(shù)值并乘以60,但這種方法的準確度會低于每分鐘測量到的情況。那么,電機的速度計算如下:
例如,我們假定步進電機的速度需保持在6000rpm上。就開環(huán)系統(tǒng)而言,我們可讓控制器向步進電機輸出方波信號,讓它保持一個方向的轉(zhuǎn)速為6000rpm。但是,如果我們?yōu)殡姍C添加負載,電機的速度就會低于它應(yīng)有的實際值,從而造成我們無法實現(xiàn)所需的速度,而且還沒辦法做出調(diào)整。
無論電機負載如何變化,為了確保電機的速度保持在特定值上,我們需要遵循閉環(huán)系統(tǒng)的原則。為了感測和反饋電流轉(zhuǎn)速,如前所述,我們采用旋轉(zhuǎn)編碼器。我們對編碼器的選擇取決于所需的轉(zhuǎn)速和速度準確度。旋轉(zhuǎn)編碼器的信號通過使用PSoC Creator工具提供的正交解碼器模塊進行編碼。
可將適合的時鐘頻率路由到正交解碼器模塊,具體取決于每分鐘的最大轉(zhuǎn)速。例如,如果最大轉(zhuǎn)速為9000rpm,那就相當于每秒150轉(zhuǎn)。如果編碼器每次完成旋轉(zhuǎn)需要4個脈沖(編碼器特征),那么解碼器模塊所需的時鐘頻率就是150*4*10 = 6kHz(信號A和B頻率的10倍)。由于我們每秒鐘都要跟蹤計數(shù)值,因此我們能夠采用每秒鐘一次的中斷。在中斷服務(wù)例程中,我們能捕獲計數(shù)寄存器的值并將其清空(從而能測量下一秒的速度),并用方程式1計算電機的速度。
以下兩個案例中列出的電源適用于DC電機以及可對其進行控制的邏輯。
案例一:DC電機還使用相同的PSoC 3/5通過電流緩沖驅(qū)動
例如,DC電機規(guī)范要求在無負載條件下5V供電電壓的流耗為88mA,我們可通過如圖7所示的電流驅(qū)動電路將PSoC 3/5輸出接口連接到DC電機。
在該例中,我們給出了常量DC供電電壓,電機全速轉(zhuǎn)動,即9000rpm?,F(xiàn)在光學(xué)旋轉(zhuǎn)編碼器和電機轉(zhuǎn)速相同,編碼器輸出采用PSoC 3/5中的解碼器測量。這時,微控制器檢測到9000rpm的轉(zhuǎn)速,并將其與所需值進行比較(例如,所需值為6000rpm,也就是實際速度的三分之二)。那么校正響應(yīng)為-3000rpm,即當前施加給電機的電壓應(yīng)減少三分之一。
圖7:通過PSoC驅(qū)動的DC電機
我們可使用PWM來實施電壓差。通過改變PWM的占空比,可改變平均電壓。PSoC Creator提供拖放式PWM模塊。反饋至PWM模塊的時鐘頻率取決于應(yīng)用所需的速度分辨率。
這里:
這里所需的占空比為三分之二。每周期PWM模塊的平均輸出電壓為5*2/3 = 3.33V。PWM模塊的輸出提供給可連接至DC電機的電流驅(qū)動電路。DC電機現(xiàn)在能實現(xiàn)6000rpm的所需轉(zhuǎn)速。旋轉(zhuǎn)編碼器再次感測速度,檢測到6000rpm,并將其反饋回控制器。現(xiàn)在的誤差因素為0。PWM保持此前的狀態(tài)且電機保持其速度。
假設(shè)向電機添加了負載。雖然占空比保持在2/3,但電機速度下降為5000rpm?,F(xiàn)在旋轉(zhuǎn)編碼器感測速度,并將誤差因數(shù)(即+1000rpm)饋送給控制器。PWM的占空比為1/9。通過函數(shù)將該因數(shù)寫入中斷中的PWM函數(shù):
案例二:通過另一控制器為DC電機供電
如果通過另一個控制器為DC電機供電,那么PSoC控制器可用來通過I2C等接口將電機狀態(tài)饋送給另一個控制器。如果DC電機通過外部電池供電,那么如圖8所示的邏輯能夠輕松控制其速度??蓪SoC的PWM輸出饋送給打開后能為電機供電的開關(guān),電機采用特定占空比以便能如前所述滿足相同的標準。
圖8:通過外部電源(不是PSoC)供電的DC電機
定位控制等其它應(yīng)用:
對于定位控制等其它電機控制應(yīng)用而言,我們能采用絕對旋轉(zhuǎn)編碼器,因為其能給出電機的當前位置。也可將這種輸出饋送回控制器,找出與實際信號的偏差,并通過短時期脈沖確保電機達到目標位置。
責(zé)任編輯:gt
評論
查看更多