【導(dǎo)讀】控制回路是許多基于 MCU 的設(shè)計所執(zhí)行的最基本的任務(wù)之一。通常這些設(shè)計中未充分利用的關(guān)鍵特征和外圍設(shè)備在現(xiàn)代單片機(jī)最有效地實現(xiàn)閉環(huán)控制系統(tǒng)。
控制回路是許多基于 MCU 的設(shè)計所執(zhí)行的最基本的任務(wù)之一。通常這些設(shè)計中未充分利用的關(guān)鍵特征和外圍設(shè)備在現(xiàn)代單片機(jī)最有效地實現(xiàn)閉環(huán)控制系統(tǒng)。定時器和中斷控制器在這些系統(tǒng)中經(jīng)常使用,但在實現(xiàn)控制系統(tǒng)時,許多其他功能,如 DMA、高級模數(shù)轉(zhuǎn)換器和專門的數(shù)學(xué)功能,常常被忽視。
本文將快速回顧高效的基于單片機(jī)的閉環(huán)控制系統(tǒng)的一些關(guān)鍵要求。提高效率的常用技術(shù)將使用一些例子說明 MCUs。一旦您了解了一些提高效率的常用技術(shù),您就可以更好地尋找實現(xiàn)最佳關(guān)閉下一個控制循環(huán)設(shè)計的實現(xiàn)。
控制環(huán)基礎(chǔ)
控制環(huán)是控制動態(tài)系統(tǒng)的關(guān)鍵元素。一個動態(tài)系統(tǒng)可以是任何機(jī)械或電氣系統(tǒng)之間的關(guān)系(通常建模為輸入和輸出之間的線性關(guān)系)。輸出通常需要以這樣的方式控制,以保持在期望的操作“頻帶”內(nèi)。例如,汽車的自動巡航控制就是這樣一個系統(tǒng),在這個系統(tǒng)中,汽車的速度設(shè)定在一個期望的水平上,即使汽車碰到山坡,控制器也能保持車速不變??刂扑俣鹊乃惴ㄊ褂靡粋€控制環(huán),它應(yīng)用一個輸入(油門上的壓力),測量結(jié)果(速度)并根據(jù)需要調(diào)整輸入以保持速度達(dá)到所需的水平。一個簡單的單輸入單輸出控制系統(tǒng)的框圖,帶有控制回路,如圖 1 所示。
圖 1:一個簡單的動態(tài)控制系統(tǒng)控制回路框圖。
在上面的方框圖中,對動態(tài)系統(tǒng)的輸入產(chǎn)生一個輸出。輸出由反饋傳感器測量,并將測量的輸出與參考(期望)輸入進(jìn)行比較。如果存在差異,系統(tǒng)控制器會使用所產(chǎn)生的錯誤來修改系統(tǒng)輸入,使系統(tǒng)輸出更接近參考輸入。系統(tǒng)控制器需要足夠智能,以避免由于不正確管理的控制系統(tǒng)引起的振蕩和其他問題。假設(shè)動態(tài)系統(tǒng)是線性的(輸出與輸入成比例)并不像你想的那樣有限制,因為許多機(jī)械和電氣系統(tǒng)是以線性方式運(yùn)行的,或者很容易“偏置”,在更復(fù)雜的傳遞函數(shù)的線性區(qū)域內(nèi)工作。
利用單片機(jī)實現(xiàn)控制回路
這是很容易看到為什么 MCU 實現(xiàn)控制系統(tǒng)的主力。與意識、能力計算、控制各種輸入和輸出,都在非常高的性能水平(特別是在高利率就像汽車機(jī)械系統(tǒng))是一個自然的控制單元 MCU。除了 CPU 的能力,在單片機(jī)的智能外設(shè)有許多讓你閉環(huán)控制簡單有效。
控制回路通常在動態(tài)系統(tǒng)的每次調(diào)整之間有定時關(guān)系。這個“循環(huán)時間”決定了調(diào)整的速度。如果循環(huán)時間過長與系統(tǒng)動力學(xué)(受控系統(tǒng)的時變特性)相關(guān),那么很難不可能有效地控制系統(tǒng)輸出。振蕩和失控的錯誤會累積,使系統(tǒng)處于失敗的危險中,也許是一個非常戲劇性的性質(zhì)。一般來說,MCU 可以更快地關(guān)閉循環(huán)(處理輸出傳感器,確定任何參考錯誤,并調(diào)整系統(tǒng)輸入),更好。
有效的定時和計數(shù)因此關(guān)鍵功能所需要的最佳關(guān)閉控制回路和 MCU 的先進(jìn)外設(shè)可以實現(xiàn)控制回路的最佳時機(jī)。例如,SiliconLabsefm32lg360f64g-e-csp81 單片機(jī)定時 / 計數(shù)器周圍有用控制回路實現(xiàn)的幾個特點。除了閉環(huán)控制器的主回路定時器外,還需要定時和計數(shù)功能。讓我們更詳細(xì)的 EFM32LG 計數(shù)器 / 定時器外設(shè)的框圖(圖 2)看,看它如何能幫助控制回路系統(tǒng)如圖 1 所示的實施等常用功能。
圖 2:SiliconLabsEFM32LG 單片機(jī)的定時器 / 計數(shù)器框圖。
的定時器 / 計數(shù)器,一個有用的功能是從外部來源,通過左邊的圖的 timn_ccn 引腳數(shù)轉(zhuǎn)換的能力。當(dāng)觀察基于動態(tài)系統(tǒng)的測量輸出時產(chǎn)生轉(zhuǎn)換的傳感器時,這些輸入是有幫助的。例如,基于位置測量的旋轉(zhuǎn)測量常常在每次旋轉(zhuǎn)時產(chǎn)生轉(zhuǎn)換。還注意到在圖的上中間有一個正交解碼器塊,可以用于類似的測量。記錄的數(shù)量的計數(shù),當(dāng)達(dá)到存儲在 TImern_top 終端值可用于觸發(fā)中斷,立即行動或可存儲供以后處理。
定時器 / 計數(shù)器的輸出,圖中右側(cè) TImn_ccn 引腳,可以使用脈沖寬度調(diào)制(PWM)控制動態(tài)系統(tǒng)輸入常用方案。在這些系統(tǒng)中,信號活動的時間與控制所需的電壓或電流電平有關(guān)。對信號周期、信號高時間和邊緣轉(zhuǎn)換點的精確控制都是關(guān)鍵的,并且可以有效地控制在定時器 / 計數(shù)器的 PWM 特性中。有三個單獨的 PWM 輸出也便于普通電機(jī)控制應(yīng)用,其中三個單獨的繞組用于改變與旋轉(zhuǎn)電機(jī)相關(guān)的磁場。
智能外設(shè)控制
實現(xiàn)快速而有效的環(huán)路反饋時間通常需要使用智能外設(shè)來從大功率 CPU 和程序內(nèi)存塊中卸載處理。如果外圍設(shè)備可以獨立于 CPU 操作,這就允許 CPU 執(zhí)行其他更復(fù)雜的處理任務(wù),甚至可以在低功耗狀態(tài)下等待,直到需要進(jìn)行處理。一些先進(jìn)的 MCU 具有特殊的外圍控制系統(tǒng),可以用來連接外圍設(shè)備一起從 CPU 沒有干預(yù)的需要配置自主操作。例如,瑞薩 MCU 的單片機(jī) r5f52108cdfm,rx210 集團(tuán)的一員,有一個事件鏈接控制器(ELC)連接和控制外設(shè)輸出為自主操作的外設(shè)輸入。在 ELC 的框圖如圖 3 所示。
圖 3:瑞薩單片機(jī) rx210 組事件鏈接控制器框圖。
圖左邊的內(nèi)部外圍總線用于連接外圍設(shè)備,如圖右側(cè)所示。所有外設(shè),包括 DMA 控制器、數(shù)據(jù)傳輸控制器(DTC)和中斷控制器(ICU)都可以與專用控件連接,自主地基于中斷、計時器比較結(jié)果或 PIN 轉(zhuǎn)換激活外設(shè)。多達(dá) 59 種類型的事件信號可以連接到外圍設(shè)備以啟動轉(zhuǎn)換、啟動計時器,并開始 DMA 或 DTC 傳輸或任何其他所需的外圍設(shè)備。當(dāng)已設(shè)置為觸發(fā)器的事件發(fā)生時,將啟動所選模塊的操作集。
可以啟動多個操作的鏈,以便在沒有 CPU 干預(yù)的情況下完成復(fù)雜的操作。例如,計時器可以啟動存儲在內(nèi)存中的模數(shù)轉(zhuǎn)換和轉(zhuǎn)換值。計數(shù)器可以跟蹤轉(zhuǎn)換的數(shù)量,并且在計數(shù)表明可以處理完整數(shù)據(jù)集時 CPU 可以被中斷。在 CPU 處理過程中,時鐘振蕩器可以自動切換到更快的模式。采用 ELC 發(fā)揮到了極致,很多的傳感功能中常見的控制回路的要求可以非常迅速和有效地使它容易實現(xiàn)快速循環(huán)次數(shù)的同時保持功率最小。
高效的計算
正如我們所看到的,使用智能和自主計數(shù)器 / 定時器和外圍設(shè)備可以改善環(huán)路時間和降低功耗——這是控制系統(tǒng)設(shè)計中的兩個重要方面。通常,每一個主要控制系統(tǒng)塊都需要計算來處理在檢測、比較、控制和操作被控制系統(tǒng)時所需的數(shù)據(jù)。事實上,隨著控制系統(tǒng)的效率、精度和長的使用壽命,計算需求急劇增加,已成為重要的系統(tǒng)需求。實現(xiàn)控制回路的高級算法現(xiàn)在使用比例積分微分算法,浮點運(yùn)算通常需要提高精度。如果硬件中不支持高級計算,則在所需頻率下控制環(huán)路閉合變得非常困難。
MCU 廠商了解先進(jìn)的加工能力的需要,包括數(shù)值處理能力,即使在低端 MCU 可以加快復(fù)雜的閉環(huán)控制設(shè)計所需的計算。高端機(jī)通常包括專用硬件加速浮點計算最精確的控制應(yīng)用的要求。飛思卡爾 KineTIsK60 單片機(jī) mk61fn1m0vmd15mk61fn1m0vm 類使用 32 位 ARMCortex-M 處理器與 DSP 指令和單精度浮點運(yùn)算單元的速度為最復(fù)雜的控制算法,需要先進(jìn)的計算。DSP 指令包括擴(kuò)展單周期多累積(MAC)指令,用于高精度信號的快速處理,以及單指令多數(shù)據(jù)(SIMD)指令,以便更快地處理低分辨率信號。硬件分割塊只運(yùn)行 2 到 12 個周期,加快了普通的縮放操作。
為了獲得更高的性能,可以使用雙核 CPU,以便并行處理任務(wù)。例如,一個德克薩斯樂器協(xié)奏曲的單片機(jī),如 f28m35h52,兼具 ARMCortex-M332 位 CPU 和德克薩斯文書中的 32 位 CPU 浮點能力 TMS320C28X 處理器。下面的圖 4 顯示了這種雙核 MCU 的框圖。
圖 4:德克薩斯儀器 f28m35x 協(xié)奏曲 MCU 框圖。
基于 ARM 的 MCU,在圖的上部,可用于管理外圍設(shè)備,而協(xié)奏曲 CPU 可用于處理數(shù)據(jù)和管理受控制的系統(tǒng)。請注意,PWM 定時器與協(xié)奏曲子系統(tǒng)緊密相連,因此很容易產(chǎn)生由控制系統(tǒng)輸入所需的復(fù)雜波形。當(dāng)應(yīng)用程序有容易分離的算法時,雙核 CPU 之間的這種類型化是很重要的。如果你需要更多的處理能力為一個單一的算法或需要雙 CPU 步調(diào)一致的高可靠性,均勻的雙 CPU,具有相同的處理子系統(tǒng),如德克薩斯儀器 cortex-r4 大力神 RM4ARMMCU 可能是更好的選擇。高可靠性應(yīng)用的閉環(huán)控制系統(tǒng)可以使用異構(gòu)雙 CPU 實現(xiàn)的內(nèi)置冗余來提高效率和健壯性。
結(jié)論
在基于 MCU 的設(shè)計中,有效地關(guān)閉控制回路不必充滿嘗試和錯誤的方法來尋找最佳實現(xiàn)。更系統(tǒng)的方法,采用現(xiàn)代先進(jìn)的功能正確,MCU 可以幫助你創(chuàng)建更高效,更快,更低的功耗,更有效的控制系統(tǒng)解決方案。
推薦閱讀:
晶振大佬也得看,如何設(shè)計PCB晶振
PCB板極限溫度測試方法分析
開關(guān)電源中的PFC功率因素校正理解,讀這一篇就明白啦
DC-DC開關(guān)電源管理芯片設(shè)計(下)
DC-DC開關(guān)電源管理芯片設(shè)計(上)
晶振大佬也得看,如何設(shè)計PCB晶振
PCB板極限溫度測試方法分析
開關(guān)電源中的PFC功率因素校正理解,讀這一篇就明白啦
DC-DC開關(guān)電源管理芯片設(shè)計(下)
DC-DC開關(guān)電源管理芯片設(shè)計(上)