作者:Jens Sorensen, Shane O’Meara, and Dara O’Sullivan
這是由兩部分組成的系列中的第 2 部分。第1部分討論了在電機控制應(yīng)用中使用sinc濾波器解調(diào)Σ-Δ編碼數(shù)據(jù)。闡述了同步sinc濾波器脈沖響應(yīng)對脈寬調(diào)制(PWM)的重要性,并提出了同步策略;但是,同步方案使得難以正確配置系統(tǒng)。
在本系列的第2部分中,提出了一種針對同步優(yōu)化的新型sinc濾波器結(jié)構(gòu)。該濾波器可提高需要對反饋鏈進(jìn)行嚴(yán)格定時控制的應(yīng)用中的測量性能。然后,第 2 部分繼續(xù)討論使用 HDL 代碼實現(xiàn) sinc濾波器,以及如何針對 FPGA 實現(xiàn)優(yōu)化濾波器。最后,介紹了在基于FPGA的三相伺服驅(qū)動器上進(jìn)行的測量。
針對同步優(yōu)化的 Sinc 濾波器
如第1部分所述,通過將sinc濾波器脈沖響應(yīng)與PWM正確對齊,可以實現(xiàn)無混疊Σ-Δ測量。雖然該方法很簡單,但很難(在許多情況下甚至不可能)找到提供所需結(jié)果的系統(tǒng)配置。為了說明這一點,假設(shè)sinc濾波器和PWM模塊共享一個以f f運行的公共系統(tǒng)時鐘源。.sys.調(diào)制器時鐘,f麥克利克,然后由公式1確定。
其中 D麥克利克是調(diào)制器時鐘的時鐘分頻器。類似地,PWM頻率f。普瓦姆,由公式 2 確定。
其中 D脈寬調(diào)制是確定PWM頻率的時鐘分頻器。最后,sinc濾波器的抽取率(數(shù)據(jù)速率)由公式3給出。
其中 D12 月是抽取時鐘的時鐘分頻器。為了避免脈沖響應(yīng)和PWM周期之間的漂移,PWM周期內(nèi)必須有一個整數(shù)個抽取周期:
其中 N 是整數(shù)。通過組合等式2、等式3和等式4:
顯然,只有有限的時鐘縮放器選擇,Dx,滿足公式 5。此外,大多數(shù)情況下,時鐘縮放器的選擇方式有嚴(yán)格的限制。例如,系統(tǒng)可能需要以特定的PWM頻率(例如,10 kHz)運行或使用特定的調(diào)制器時鐘(例如,20 MHz)。另一個復(fù)雜因素是選擇調(diào)制器時鐘時的選項數(shù)量有限。例如,如果 f.sys為 100 MHz,是 D 唯一合理的選擇麥克利克落在 5 到 10 的有限整數(shù)范圍內(nèi)(20 MHz 低至 10 MHz)。
鑒于所有這些限制,很難(如果不是不可能的話)找到在脈沖響應(yīng)和PWM之間提供所需對齊的時鐘刻度。通常的情況是,用戶被迫選擇滿足公式5的時鐘縮放器,而不是選擇產(chǎn)生所需PWM頻率、調(diào)制器時鐘和信噪比(SNR)的時鐘刻度。此外,如果其中一個頻率隨時間變化,則無法找到有效的配置。這在多軸系統(tǒng)中很常見,其中單個運動控制器同步網(wǎng)絡(luò)中的多個電機控制器。
雖然對準(zhǔn)方案提供了出色的測量性能,但它可能被證明是不切實際的。在下一節(jié)中,將介紹一種新型的sinc濾波器。該濾波器提供最佳的測量性能,同時允許用戶獨立選擇所有時鐘分頻器。
沖洗 Sinc 過濾器
傳統(tǒng)的三階sinc濾波器如圖1所示。濾波器通過調(diào)整系統(tǒng)時鐘來生成ADC的調(diào)制器時鐘,作為回報,ADC產(chǎn)生到濾波器的1位數(shù)據(jù)流。濾波器功能本身由三個級聯(lián)積分器組成,1/(1 – z–1),時鐘速率與調(diào)制器和三個級聯(lián)微分器相同,1 – z–1,在抽取的時鐘上計時。
圖1.傳統(tǒng)的三階sinc濾波器。
sinc濾波器和ADC通過連續(xù)向兩者施加時鐘來工作。因此,濾波器以抽取時鐘確定的固定速率連續(xù)輸出數(shù)據(jù)。濾波器的數(shù)據(jù)速率通常高于電機控制算法的更新速率,因此許多濾波器輸出被抑制。只有當(dāng)脈沖響應(yīng)以理想測量為中心時,輸出才會被捕獲并用作反饋。
使用空間矢量調(diào)制時,相電流在每個PWM周期中僅取其平均值兩次。在此之后,每個PWM周期只有兩個可能的無混疊sinc數(shù)據(jù)輸出,因此無需讓濾波器連續(xù)運行。實際上,僅在需要反饋時才啟用測量,然后在所有其他時間禁用測量就足夠了。換言之,測量工作在開關(guān)模式下,與傳統(tǒng)ADC沒有什么不同。
開關(guān)工作模式的一個問題是調(diào)制器和濾波器時鐘來自同一系統(tǒng)時鐘。這意味著濾波器和ADC都以開關(guān)模式工作,不建議這樣做,因為這會導(dǎo)致性能降低。原因是ADC中的調(diào)制器是具有一定建立時間和阻尼的高階系統(tǒng)。因此,當(dāng)首次向ADC施加時鐘時,調(diào)制器需要建立,然后才能信任輸出比特流。為了解決這些問題,提出了一種新的濾波器結(jié)構(gòu)(見圖2)。
圖2.Sinc濾波器設(shè)計用于開關(guān)操作和所有狀態(tài)的沖洗。
作為標(biāo)準(zhǔn)sinc濾波器,該內(nèi)核由三個級聯(lián)積分器和三個級聯(lián)微分器組成。但是,該濾波器具有允許新操作模式的幾個功能。首先,濾波器具有新的時鐘發(fā)生器功能,可將調(diào)制器時鐘與積分器時鐘分開。這樣就可以連續(xù)為ADC提供時鐘,但只能在獲得測量時啟用積分器時鐘。其次,過濾器具有新的過濾器控制功能。參照同步脈沖,控制模塊處理操作濾波器所需的所有時序和觸發(fā)。濾波器控制器的主要功能是刷新濾波器,這涉及初始化所有濾波器狀態(tài),定時器在開始新測量之前進(jìn)行過濾,以及在正確的實例上啟用/禁用積分器時鐘。最后,濾波器具有新的緩沖器和中斷控制單元,該單元對輸出數(shù)據(jù)進(jìn)行分類并捕獲正確的測量值。緩沖器和中斷單元還通過中斷來通知電機控制應(yīng)用,當(dāng)新的測量準(zhǔn)備被使用時。圖3中的時序圖顯示了濾波器的工作原理。
圖3.sinc濾波器在開關(guān)模式下工作的時序圖。
為了開始測量,將同步脈沖(同步脈沖)施加到濾波器控制器。通常,該脈沖表示新的PWM周期的開始。同步脈沖啟動一個定時器,該定時器配置為在所需測量點之前正好 1.5 個抽取周期失效。此時,積分器時鐘和抽取時鐘使能,濾波過程開始。經(jīng)過3個抽取周期(三階sinc濾波器的建立時間)后,緩沖器和中斷控制器捕獲數(shù)據(jù)輸出并置位中斷。在圖3中,請注意測量如何以同步脈沖為中心。該序列在下一個同步脈沖處重復(fù),但一旦濾波器啟動,調(diào)制器時鐘保持導(dǎo)通。
所提出的sinc濾波器解決了傳統(tǒng)sinc濾波器的同步問題。濾波器及其工作模式不對PWM頻率、調(diào)制器時鐘或抽取率做出任何假設(shè)。它適用于所有系統(tǒng)配置,即使PWM頻率隨時間變化也是如此。由于濾波器在每次測量時都會有效復(fù)位,因此它對時鐘之間的漂移也不敏感。
單弦濾波器的HDL實現(xiàn)
作者發(fā)現(xiàn),一些公開的sinc濾波器HDL示例存在對濾波器性能產(chǎn)生負(fù)面影響或?qū)е乱馔庑袨榈娜秉c。本節(jié)將討論一些實現(xiàn)問題,以及如何設(shè)計HDL代碼以在FPGA上獲得最佳性能。
集成商
在最純凈的形式中,sinc3濾波器由三個級聯(lián)積分器和三個級聯(lián)微分器組成,見圖1。首先,考慮 z 域中的純積分器2:
其中 u 是輸入,y 是輸出。積分器具有差分方程:
這個一階方程等效于累加器,非常適合在FPGA等時鐘邏輯中實現(xiàn)。一種常見的實現(xiàn)方法是D型觸發(fā)器累加器,如圖4所示。
圖4.實現(xiàn)帶有D型觸發(fā)器的蓄能器。
該電路可以在FPGA上實現(xiàn),只有很少的邏輯門。現(xiàn)在,當(dāng)級聯(lián)三個純積分器時,z域中的傳遞函數(shù)由公式8定義。
三個級聯(lián)積分器的差分方程如公式9所示:
請注意樣本 n 處的輸入如何影響樣本 n 處的輸出。
如果三個積分器使用圖4中的D型翻轉(zhuǎn)累加器實現(xiàn),則結(jié)果如圖5所示。
圖5.三個級聯(lián)累加器采用 D 型觸發(fā)器實現(xiàn)。
由于這是一個時鐘電路,輸入的變化需要幾個時鐘才能影響輸出。當(dāng)檢查級聯(lián)累加器的差分方程時,這一點變得更加清晰(參見公式10)。
這個差分方程與純積分器的差分方程完全不同(參見公式9)。使用累加器時,輸入需要兩個時鐘才能影響輸出,而對于純積分器,輸入會立即影響輸出。為了說明這一點,圖6分別顯示了在樣品編號5處應(yīng)用單位步進(jìn)時公式9和公式10的階躍響應(yīng)。正如所懷疑的那樣,與積分器相比,累加器延遲了兩個樣本。
圖6.三個級聯(lián)積分器和三個級聯(lián)累加器的階躍響應(yīng)。
在大多數(shù)公開可用的sinc濾波器示例中,建議使用D型觸發(fā)器累加器實現(xiàn)積分器。這樣做的主要論點是門數(shù)少,但輕量級實現(xiàn)是有代價的。與濾波器的群延遲相比,兩個調(diào)制器時鐘的額外延遲似乎微不足道,但延遲會影響濾波器衰減更高頻率的能力,因此,累加器實現(xiàn)提供的有效位數(shù)比純積分器少。此外,所提出的沖洗sinc濾波器需要一個理想的傳遞函數(shù)才能正常工作。出于這些原因,任何sinc濾波器實現(xiàn)都不應(yīng)依賴于累加器來實現(xiàn)積分器級。
為了獲得理想的sinc3響應(yīng),提出了與公式9差值的直接實現(xiàn)。結(jié)果如圖 7 所示。請注意框圖如何由兩部分組成:時鐘邏輯部分(觸發(fā)器)和組合部分(求和)。這種實現(xiàn)需要更多的門,但它具有所需的濾波器性能和延遲。
圖7.實現(xiàn)三個級聯(lián)集成器。
差異化因素
與積分器類似,許多公開提供的sinc濾波器示例錯誤地實現(xiàn)了微分器級,從而導(dǎo)致濾波器性能降低和意外延遲。本節(jié)討論差異化器階段,并就如何實現(xiàn)FPGA以獲得最佳性能提出建議。首先,考慮公式11中z域中的純微分器和公式12中的相應(yīng)差分。2
為了在FPGA上實現(xiàn)差異化,最常用的是D型觸發(fā)器,請參見圖8。
圖8.采用 D 型觸發(fā)器實現(xiàn)的差分器。
以下 HDL 代碼片段說明了實現(xiàn)三個 D 型觸發(fā)器微分器的常用方法。這里使用了偽Verilog,但這些原則也適用于其他語言。
圖9.三個微分器作為時鐘邏輯實現(xiàn)。
與任何時鐘分配一樣,首先計算所有右側(cè)語句并分配給左側(cè)語句。3一切都是計時的,所有作業(yè)都是并行更新的。這是一個問題,因為輸出項(yx[n]) 依賴于延遲項 (u[n-1] 和 yx[n-1])首先更新。因此,前面的 Verilog 代碼段實現(xiàn)了邏輯,如圖 10 所示。
圖 10.通過時鐘分配實現(xiàn)的差異化因素。
由于時鐘分配,微分器的延遲是六個時鐘,而不是預(yù)期的三個時鐘。由于微分器與抽取時鐘一起計時,這有效地使濾波器的群延遲和建立時間加倍。但是,它也會影響濾波器的衰減,并且頻率響應(yīng)不是理想的三階墳弦的頻率響應(yīng)。圖10中的實現(xiàn)常見于已發(fā)布的sinc濾波器示例中,但強烈建議選擇一種模擬理想微分器階段的方法。
前面的Verilog代碼片段可以分為兩部分:計算電流輸出的組合部分和更新延遲狀態(tài)的時鐘邏輯部分。這種分離使得將組合部分移動到始終時鐘塊之外成為可能,如圖 11 所示的代碼片段所示。
圖 11.三個微分器作為時鐘邏輯和組合邏輯的混合實現(xiàn)。
使用組合賦值,沒有與 y 計算相關(guān)的額外延遲x總延遲從 6 個時鐘降低到理想的 3 個時鐘。推薦的微分器實現(xiàn)方案框圖如圖12所示。
圖 12.使用時鐘邏輯和組合邏輯混合實現(xiàn)三個級聯(lián)微分器。
通過結(jié)合所提出的級聯(lián)積分器和微分器的實現(xiàn)方案,sinc濾波器在衰減和延遲方面獲得了理想的特性。所有基于Σ-Δ的測量都將受益于優(yōu)化的濾波器實現(xiàn),尤其是依賴于了解確切濾波器延遲的刷新sinc。
測量
所提出的 Σ-Δ 測量系統(tǒng)已與基于 Xilinx Zynq-7020 SoC 的伺服電機控制器一起實施和測試。??4該系統(tǒng)由一個 60 V 三相永磁伺服電機 (Kinco SMH40S5)和三相開關(guān)電壓源逆變器。SoC 運行磁場定向電機控制算法,以及用于實時捕獲測量數(shù)據(jù)的軟件。
對于相電流測量,該系統(tǒng)具有兩個隔離式Σ-Δ型ADC (ADuM7701),后接兩個三階sinc濾波器。sinc濾波器是使用本文中討論的設(shè)計建議實現(xiàn)的,包括刷新sinc工作模式。為了進(jìn)行比較,將介紹傳統(tǒng)的連續(xù)運行過濾器和沖洗過濾器的測量結(jié)果。
雖然控制系統(tǒng)具有閉環(huán)磁場定向控制,但所有測量均使用開環(huán)控制進(jìn)行。閉合電流環(huán)路對測量噪聲很敏感,噪聲將通過電流環(huán)路耦合。通過開環(huán)操作,可以消除電流控制器的任何影響,從而可以直接比較結(jié)果。
除了模式配置和與PWM的對齊外,測量都是使用相同的配置完成的,包括抽取率,設(shè)置為125。因此,測量結(jié)果的任何差異都可能導(dǎo)致sinc3脈沖響應(yīng)是否與PWM正確對齊??刂扑惴ㄒ?0 kHz執(zhí)行,調(diào)制器時鐘為12.5 MHz。
具有連續(xù)sinc濾波器操作的未對齊脈沖響應(yīng)
在第一個示例中(見圖13a),脈沖響應(yīng)與PWM波形無關(guān)。圖13b顯示了當(dāng)電機停止但電源逆變器在所有相位上以50%的占空比切換時的兩相電流測量結(jié)果。在這種操作模式下,測量顯示測量的噪聲水平。圖13b顯示了電機以600 rpm開環(huán)運行時的相電流。電機有四個極對,因此電氣周期為 25 ms。兩張圖都顯示出顯著的噪聲,會嚴(yán)重影響任何閉環(huán)電流控制器的性能。噪聲電平與基波相電流的大小無關(guān),因此輕負(fù)載時的噪聲相對較差。本例中的噪聲是由未對齊的sinc濾波器脈沖響應(yīng)引起的,它對sinc濾波器的抽取率(衰減)幾乎沒有增加。
圖 13.sinc濾波器脈沖響應(yīng)與PWM不一致的連續(xù)工作模式。
通過連續(xù) Sinc 濾波器操作實現(xiàn)一致的脈沖響應(yīng)
圖14顯示了每個PWM周期的抽取周期為整數(shù)個且脈沖響應(yīng)與理想測量點對齊時的測量結(jié)果。圖 14 中的結(jié)果與圖 13 中的結(jié)果直接相當(dāng)。
比較圖13和圖14時,濾波器使用相同的抽取率,但噪聲水平顯著降低。這些示例說明了系統(tǒng)配置和同步對于充分利用基于Σ-Δ的信號鏈的性能是多么重要。
圖 14.連續(xù)工作模式,sinc濾波器脈沖響應(yīng)與PWM對齊。
沖洗 Sinc 過濾器
雖然圖14中連續(xù)工作的sinc濾波器的結(jié)果令人滿意,但濾波器仍然難以找到支持同步的配置。雖然可以將連續(xù)工作的sinc濾波器與PWM同步,但這通常不切實際。這個問題可以通過沖洗sinc過濾器解決。
圖15顯示了沖洗sinc濾波器的測量結(jié)果。濾波器配置為僅圍繞理想測量點運行 3 個抽取周期。正如預(yù)期的那樣,性能類似于圖14中的連續(xù)工作濾波器。
為了進(jìn)行比較,沖洗過濾器使用與連續(xù)運行過濾器完全相同的配置。不同之處在于,連續(xù)工作的濾波器必須使用這種配置,否則性能會下降,如圖13中的結(jié)果所示。另一方面,沖洗過濾器將在任何可能的系統(tǒng)配置下保持其最佳性能。
圖 15.沖洗 sinc 濾波器,其 sinc 濾波器脈沖響應(yīng)與 PWM 對齊。
未對齊、連續(xù)工作的sinc濾波器(圖13a)的噪聲幅度約為16位信號中的120個計數(shù)。這相當(dāng)于噪聲引起的大約低7位的損失。沖洗sinc濾波器(圖15a)的噪聲電平約為16位信號中的5個計數(shù),對應(yīng)于噪聲損失不到3位。
總結(jié)
基于Σ-Δ的相電流測量廣泛用于電機驅(qū)動器,但要獲得最佳性能,需要正確配置整個系統(tǒng)。本文討論了可能導(dǎo)致性能不佳的來源以及如何正確設(shè)置系統(tǒng)。
配置系統(tǒng)以實現(xiàn)最佳電流反饋性能可能具有挑戰(zhàn)性,在某些情況下甚至是不可能的。為了解決這個問題,提出了一種新型的sinc濾波器。濾波器在開關(guān)模式下工作,保證在任何系統(tǒng)配置下的最佳性能。
在FPGA上實現(xiàn)sinc濾波器需要開發(fā)HDL代碼。本文討論了幾種降低濾波器延遲和增加衰減的實現(xiàn)技術(shù)。
最后,本文介紹了幾個測量結(jié)果,說明了沖洗sinc濾波器同步和性能的重要性。
審核編輯:郭婷
-
驅(qū)動器
+關(guān)注
關(guān)注
53文章
8268瀏覽量
146810 -
濾波器
+關(guān)注
關(guān)注
161文章
7857瀏覽量
178655 -
電機控制
+關(guān)注
關(guān)注
3539文章
1894瀏覽量
269120
發(fā)布評論請先 登錄
相關(guān)推薦
評論