控制回路是許多基于MCU的設(shè)計(jì)執(zhí)行的最基本任務(wù)之一。這些設(shè)計(jì)通常無法充分利用現(xiàn)代MCU中可用的關(guān)鍵特性和外圍設(shè)備來最有效地實(shí)現(xiàn)閉環(huán)控制系統(tǒng)。定時器和中斷控制器通常用于這些系統(tǒng),但在實(shí)現(xiàn)控制系統(tǒng)時,其他一些功能,如DMA,高級模數(shù)轉(zhuǎn)換器和專用數(shù)學(xué)函數(shù),往往被忽略了很多次。
本文將快速回顧有效的基于MCU的閉環(huán)控制系統(tǒng)的一些關(guān)鍵要求。將使用一些示例MCU來說明用于提高效率的常用技術(shù)。一旦您了解了一些提高效率的常用技術(shù),您就可以更好地尋找能夠最佳地關(guān)閉下一個控制回路設(shè)計(jì)的實(shí)現(xiàn)。
控制回路基礎(chǔ)知識
控制回路是用于控制動態(tài)系統(tǒng)的關(guān)鍵元素。動態(tài)系統(tǒng)可以是在輸入和輸出之間具有關(guān)系(通常建模為線性關(guān)系)的任何機(jī)械或電氣系統(tǒng)。通常需要控制輸出以使其保持在期望的操作“頻帶”內(nèi)。例如,汽車中的自動巡航控制是這樣一種系統(tǒng),其中汽車的速度被設(shè)定在期望的水平,并且即使汽車遇到山坡,控制器也保持速度恒定??刂扑俣鹊?a href="http://wenjunhu.com/v/tag/2562/" target="_blank">算法利用控制回路,該控制回路應(yīng)用輸入(加速器上的壓力),測量結(jié)果(速度)并根據(jù)需要調(diào)整輸入以將速度保持在期望的水平。帶有控制回路的簡單單輸入和單輸出控制系統(tǒng)的框圖如下圖1所示。
圖1:塊一個簡單的動態(tài)控制系統(tǒng)控制回路圖。
在上面的框圖中,動態(tài)系統(tǒng)的輸入產(chǎn)生一個輸出。輸出由反饋傳感器測量,測量的輸出與參考(所需)輸入進(jìn)行比較。如果存在差異,系統(tǒng)控制器將使用結(jié)果錯誤修改系統(tǒng)輸入,以使系統(tǒng)輸出更接近參考輸入。系統(tǒng)控制器需要足夠智能,以避免因錯誤管理的控制系統(tǒng)而導(dǎo)致的振蕩和其他問題。假設(shè)動態(tài)系統(tǒng)是線性的(輸出與輸入成比例)并不像您想象的那樣具有限制性,因?yàn)樵S多機(jī)械和電氣系統(tǒng)確實(shí)以線性方式運(yùn)行,或者可以很容易地“偏向”以在更復(fù)雜的傳遞函數(shù)的線性區(qū)域。
使用MCU實(shí)現(xiàn)控制回路
很容易理解為什么MCU是實(shí)現(xiàn)控制系統(tǒng)的主力。由于能夠以非常高的性能速率(特別是相對于電機(jī)等機(jī)械系統(tǒng)的高性能速率)感測,計(jì)算和控制各種輸入和輸出,因此MCU是一種自然的控制元件。除了CPU的功能外,MCU中的許多智能外設(shè)還可以簡化和高效地關(guān)閉控制回路。
控制回路通常在動態(tài)系統(tǒng)的每次調(diào)整之間具有時序關(guān)系。這個“循環(huán)時間”決定了調(diào)整的速度。如果循環(huán)時間與系統(tǒng)動力學(xué)(受控系統(tǒng)的時變性質(zhì))相關(guān)太長,則有效控制系統(tǒng)輸出即使不是不可能也是困難的。振蕩和“失控”錯誤可能會累積,使系統(tǒng)面臨失敗的危險,可能是非常戲劇性的。通常,MCU關(guān)閉環(huán)路的速度越快(處理輸出傳感器,確定任何參考誤差,并調(diào)整系統(tǒng)輸入),效果越好。
因此,高效的定時和計(jì)數(shù)是最佳關(guān)閉控制回路所需的關(guān)鍵功能,具有高級定時外設(shè)的MCU可以最佳地實(shí)現(xiàn)控制回路。例如,Silicon Labs EFM32LG360F64G-E-CSP81 MCU具有定時器/計(jì)數(shù)器外設(shè),具有在控制環(huán)實(shí)現(xiàn)中有用的幾個功能。除了閉環(huán)控制器的主循環(huán)定時器之外,通常還需要定時和計(jì)數(shù)功能。讓我們更詳細(xì)地看一下EFM32LG計(jì)數(shù)器/定時器外設(shè)的框圖(圖2),看看它如何幫助實(shí)現(xiàn)圖1所示的控制回路系統(tǒng)中的其他常用功能。
圖2:Silicon Labs EFM32LG MCU定時器/計(jì)數(shù)器框圖(由Silicon Labs提供)。
Timer/的一個有用功能計(jì)數(shù)器是通過圖左側(cè)的TIMn_CCn引腳計(jì)算來自外部源的轉(zhuǎn)換的能力。當(dāng)觀察基于動態(tài)系統(tǒng)的測量輸出產(chǎn)生轉(zhuǎn)變的傳感器時,這些輸入可能是有用的。例如,基于位置測量的旋轉(zhuǎn)測量通常在每次旋轉(zhuǎn)時產(chǎn)生過渡。另請注意,圖中上部有一個正交解碼器模塊,可用于類似的測量。當(dāng)記錄到達(dá)存儲在Timern_TOP中的終端值時,記錄的計(jì)數(shù)可用于觸發(fā)中斷以立即采取行動,或者可以存儲以供將來處理。
定時器/計(jì)數(shù)器輸出,圖中右側(cè)的TIMn_CCn引腳,可以使用通用的脈沖寬度調(diào)制(PWM)方案來控制動態(tài)系統(tǒng)的輸入。在這些系統(tǒng)中,信號有效的時間與用于控制的所需電壓或電流水平有關(guān)。精確控制信號周期,信號高電平時間和邊沿轉(zhuǎn)換點(diǎn)都很關(guān)鍵,可以在定時器/計(jì)數(shù)器的PWM功能內(nèi)有效控制。具有三個獨(dú)立的PWM輸出也便于常見的電機(jī)控制應(yīng)用,其中三個獨(dú)立的繞組用于改變與旋轉(zhuǎn)電機(jī)相關(guān)的磁場。
智能外設(shè)控制
實(shí)現(xiàn)快速有效的環(huán)路反饋時間通常需要使用智能外設(shè)來卸載高功率CPU和程序存儲器模塊的處理。如果外設(shè)可以獨(dú)立于CPU運(yùn)行,則可以允許CPU執(zhí)行其他更復(fù)雜的處理任務(wù),甚至可以在低功耗狀態(tài)下等待,直到需要處理為止。一些高級MCU具有特殊的外圍控制系統(tǒng),可通過將外圍設(shè)備連接在一起來配置自主操作,因此無需CPU干預(yù)。例如,瑞薩R5F52108CDFM MCU是RX210 MCU組的成員,它具有一個事件鏈路控制器(ELC),用于連接和控制外圍輸出到外設(shè)輸入,以實(shí)現(xiàn)自主操作。 ELC的框圖如下圖3所示。
圖3:瑞薩RX210群MCU事件鏈路控制器框圖(由瑞薩提供)。
圖中左側(cè)的內(nèi)部外圍總線用于互連外圍設(shè)備,如圖所示。圖的右側(cè)。所有外設(shè),包括DMA控制器,數(shù)據(jù)傳輸控制器(DTC)和中斷控制器單元(ICU)都可以與專用控制器連接,以根據(jù)中斷,定時器比較結(jié)果或引腳轉(zhuǎn)換自動激活外設(shè)。多達(dá)59種類型的事件信號可以鏈接到外設(shè),以啟動轉(zhuǎn)換,啟動定時器,并開始DMA或DTC傳輸或任何其他所需的外設(shè)。當(dāng)發(fā)生已設(shè)置為觸發(fā)的事件時,將啟動為所選模塊設(shè)置的操作。
可以啟動多個操作鏈,這樣就可以在沒有CPU干預(yù)的情況下完成復(fù)雜的操作。例如,計(jì)時器可以啟動模數(shù)轉(zhuǎn)換,并將轉(zhuǎn)換后的值存儲在存儲器中。計(jì)數(shù)器可以跟蹤轉(zhuǎn)換次數(shù),當(dāng)計(jì)數(shù)表明可以處理完整數(shù)據(jù)集時,CPU可能會被中斷。在CPU處理期間,時鐘振蕩器也可以自動切換到更快的模式。通過充分利用ELC,可以非??焖儆行У赝瓿沙R娍刂苹芈分兴璧脑S多傳感功能,從而可以輕松實(shí)現(xiàn)快速回路時間,同時將功率降至最低。
高效計(jì)算
正如我們所看到的,使用智能和自主計(jì)數(shù)器/定時器和外設(shè)可以縮短循環(huán)時間并降低功耗 - 這兩者都是控制系統(tǒng)設(shè)計(jì)的重要方面。通常,在每個主控制系統(tǒng)塊中需要計(jì)算以處理在感測,比較,控制和操作受控系統(tǒng)時所需的數(shù)據(jù)。實(shí)際上,隨著控制系統(tǒng)效率,精度和長使用壽命成為重要的系統(tǒng)要求,計(jì)算要求急劇增加。用于實(shí)現(xiàn)控制回路的高級算法現(xiàn)在使用比例積分微分算法,其中通常需要浮點(diǎn)計(jì)算以提高精度。如果硬件不支持高級計(jì)算,則很難實(shí)現(xiàn)所需頻率的控制環(huán)閉合。
MCU制造商了解對高級處理能力的需求,并且即使在低端MCU上也包含了數(shù)字處理功能,可以加速復(fù)雜閉環(huán)控制設(shè)計(jì)所需的計(jì)算速度。高端MCU通常包括專用硬件,以加速最精確控制應(yīng)用所需的浮點(diǎn)計(jì)算。飛思卡爾Kinetis K60 MK61FN1M0VMD15 MK61FN1M0VM類MCU使用帶有DSP指令的32位ARM Cortex-M CPU和單精度浮點(diǎn)單元來加速最復(fù)雜控制算法所需的高級計(jì)算。 DSP指令包括用于快速處理高精度信號的擴(kuò)展單周期多累加(MAC)指令,以及用于更快處理低分辨率信號的單指令多數(shù)據(jù)(SIMD)指令。硬件分頻塊僅在2到12個周期內(nèi)工作,從而加速了常見的縮放操作。
為了獲得更高的性能,可以使用雙核CPU,以便可以并行完成處理任務(wù)。例如,德州儀器協(xié)奏曲微控制器,如F28M35H52,具有ARM Cortex-M3 32位CPU和具有浮點(diǎn)功能的Texas Instruments TMS320C28x 32位CPU。該雙核MCU的框圖如下圖4所示。
圖4:德州儀器F28M35x協(xié)同MCU單片機(jī)框圖(由德州儀器提供) )。
基于ARM的MCU位于圖的上半部分,可用于管理外設(shè),而Concerto CPU可用于處理數(shù)據(jù)和管理受控系統(tǒng)。請注意,PWM定時器與Concerto子系統(tǒng)緊密相關(guān),可以輕松生成受控系統(tǒng)輸入所需的復(fù)雜波形。當(dāng)您的應(yīng)用程序具有易于分離的算法時,雙核CPU之間的這種專業(yè)化非常重要。如果您只需要單個算法需要更多處理能力,或者需要雙CPU以鎖步方式運(yùn)行以獲得更高的可靠性,那么具有相同處理子系統(tǒng)的同類雙CPU(如德州儀器Hercules RM4 ARM Cortex-R4 MCU)可能更適合。用于高可靠性應(yīng)用的閉環(huán)控制系統(tǒng)可以使用異構(gòu)雙CPU實(shí)現(xiàn)的內(nèi)置冗余來實(shí)現(xiàn)更高效和穩(wěn)健的設(shè)計(jì)。
結(jié)論
關(guān)閉控制在基于MCU的設(shè)計(jì)中有效地循環(huán)不需要充分利用反復(fù)試驗(yàn)方法來尋找最佳實(shí)現(xiàn)。更加系統(tǒng)化的方法可以正確使用現(xiàn)代MCU的所有高級功能,可以幫助您創(chuàng)建更高效,更快速,更低功耗和更具成本效益的控制系統(tǒng)解決方案。
-
mcu
+關(guān)注
關(guān)注
146文章
17171瀏覽量
351486 -
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6629瀏覽量
110653 -
定時器
+關(guān)注
關(guān)注
23文章
3251瀏覽量
114926
發(fā)布評論請先 登錄
相關(guān)推薦
評論