與傳統(tǒng)的定點(diǎn) MCU 解決方案相比,當(dāng)將浮點(diǎn)硬件單元添加到 CPU 內(nèi)核以內(nèi)聯(lián)執(zhí)行指令時(shí),可以提高電機(jī)控制效率。
隨著對使用節(jié)能技術(shù)的日益關(guān)注,工程師們越來越多地將他們的控制設(shè)計(jì)轉(zhuǎn)向更高效的三相無刷直流電機(jī) (BLDC) 和永磁同步電機(jī) (PMSM)。這些電機(jī)的電機(jī)控制算法通常采用矢量和無傳感器矢量控制,其中涉及速度和位置的復(fù)雜變換和控制回路。工業(yè)應(yīng)用通常采用基于傳感器的控制,因?yàn)樾枰叩木?,而消費(fèi)產(chǎn)品應(yīng)用由于其成本敏感的性質(zhì),通常使用無傳感器配方。
矢量控制提供對電機(jī)速度和扭矩的高效和準(zhǔn)確控制。這是通過將交流電動機(jī)的三相定子電流解耦為磁通分量和轉(zhuǎn)矩分量來實(shí)現(xiàn)的。因此,可以直接控制轉(zhuǎn)矩和磁通(類似于直流電機(jī)),從而實(shí)現(xiàn)快速的動態(tài)響應(yīng)和出色的穩(wěn)態(tài)性能。事實(shí)上,矢量控制使 BLDC 電機(jī)驅(qū)動器的性能與直流電機(jī)驅(qū)動器的性能相當(dāng),甚至更勝一籌。
無傳感器矢量控制 (SVC) 通過在設(shè)計(jì)中取消速度傳感器來降低成本,根據(jù)觀察到的定子電流估計(jì)電機(jī)的速度和轉(zhuǎn)子的位置。SVC 使用復(fù)雜的坐標(biāo)變換和電機(jī)數(shù)學(xué)模型,需要大量計(jì)算。因此,SVC 與 VC 一樣,需要具有高計(jì)算能力的快速 MCU。
直到最近,有幾個(gè)因素阻礙了這些先進(jìn)的電機(jī)控制技術(shù)獲得更廣泛的接受:(1) 復(fù)雜的理論數(shù)學(xué)建模,(2) 涉及的實(shí)施策略,以及 (3) 傳統(tǒng)的微控制器 (MCU) 和數(shù)字信號處理器 (DSP) 實(shí)施矢量控制。MCU 和 DSP 使用定點(diǎn)公式,因?yàn)檫@些設(shè)備通常沒有硬件浮點(diǎn)單元 (FPU)。
可以合理地得出結(jié)論,硬件浮點(diǎn)單元將使矢量控制實(shí)現(xiàn)更加簡單和快捷,因?yàn)樵谑噶靠刂扑惴ㄖ蟹浅3R姷某朔ā⒊ê腿呛瘮?shù)可以使用浮點(diǎn)更有效地執(zhí)行價(jià)值觀。但由于工程師更喜歡基于知識而非假設(shè)進(jìn)行設(shè)計(jì),因此本文將提供性能測試數(shù)據(jù),比較使用瑞薩電子浮點(diǎn) MCU RX 系列的實(shí)現(xiàn)與使用定點(diǎn) MCU 的設(shè)計(jì)。
我們將展示使用嵌入式 FPU 的解決方案可在 BLDC 和 PMSM 電機(jī)上提供更輕松的開發(fā)、更高的效率和更低的功耗。具體來說,我們將討論使用定點(diǎn)和浮點(diǎn)實(shí)現(xiàn)的幾個(gè)關(guān)鍵計(jì)算,并展示 FPU 如何在 PI 和 PID 控制回路、克拉克和帕克變換、轉(zhuǎn)換為當(dāng)前值的 ADC 測量以及編碼器數(shù)據(jù)處理方面提供優(yōu)勢。
關(guān)鍵計(jì)算領(lǐng)域
出于測試和分析目的,我們將重點(diǎn)關(guān)注 FPU 可能產(chǎn)生影響的四個(gè)關(guān)鍵計(jì)算領(lǐng)域。
第一個(gè)區(qū)域是電流和速度變量的 PID 和 PI 回路。PID(比例-積分-微分控制器)是工業(yè)控制系統(tǒng)中最常用的反饋控制器。PI 控制器(比例積分控制器)是 PID 控制器的一種特殊情況,其中不使用誤差的微分 (D)。
使用瑞薩電子 RX62N 開發(fā)平臺執(zhí)行的測量,針對兩個(gè)電流控制器和一個(gè)速度控制器實(shí)現(xiàn)為 PI 回路,如下表 1 所示。基于 FPU 的實(shí)現(xiàn)在 CPU 帶寬和代碼大小方面提供了明顯的優(yōu)勢。
表 1:PI 回路的測試比較
第二個(gè)領(lǐng)域是稱為克拉克和帕克變換的坐標(biāo)變換。但是,需要一些背景知識。矢量控制公式的目標(biāo)是將三相交流電機(jī)等效轉(zhuǎn)換為直流,然后像控制直流電機(jī)一樣控制交流電機(jī),直接控制電機(jī)磁通和轉(zhuǎn)矩。
要將三相電流轉(zhuǎn)換為兩相直流電流,第一個(gè)變換稱為克拉克變換,表示為 αβ→
abc
在下面的圖 1 中。它將三相定子框架中的三個(gè)平衡電流轉(zhuǎn)換為正交靜止框架中的兩個(gè)相位平衡電流。這發(fā)生在與定子框架相同的平面上,但兩個(gè)軸之間的角度是 90 度而不是 120 度。變換方程如圖 1 左下角所示。
第二個(gè)變換
dq
→αβ 稱為 Park 變換,由圖 1 右下方的等式給出。它將靜止框架轉(zhuǎn)移到轉(zhuǎn)子框架,使交流電流變?yōu)橹绷麟娏?。同樣在圖 1 中,F(xiàn) 是磁動力,θ 是 d 軸和 α 軸之間的角度,也稱為轉(zhuǎn)子角。
圖 1:向量公式中使用的 Clarke 和 Park 變換
我們對 Clarke 和 Park 變換的組合進(jìn)行了測量,結(jié)果如表 2 所示??梢钥吹?CPU 帶寬和代碼大小的顯著改進(jìn)。
表 2:Clarke 和 Park 變換的測試比較
第三個(gè)領(lǐng)域是基于當(dāng)前測量的角度估計(jì)。這些計(jì)算非常復(fù)雜,結(jié)果如下表 3 所示。在這種情況下,CPU 帶寬有很好的提升,而代碼大小有很小的提升。
表 3:位置估計(jì)的測試比較
第四個(gè)方面是將 ADC 測量值轉(zhuǎn)換為適當(dāng)?shù)碾娏髦?。結(jié)果顯示在下面的表 4 中。我們再次看到兩種測量的改進(jìn)。
表 4:傳感器測量的測試比較
對于整體測試,我們?yōu)槿鹚_電子 RX62N 設(shè)備實(shí)現(xiàn)了一個(gè)完整的定點(diǎn)和 FPU 格式的無傳感器矢量控制算法。使用我們的 HEW 工具編譯算法代碼并將其下載到 Renesas RX62N 設(shè)備的閃存中,并使用其開發(fā)板,我們測試了 CPU 帶寬和代碼大小的完整算法。結(jié)果如表 5 所示。對于 CPU 帶寬,實(shí)現(xiàn)了近 35% 的改進(jìn),而代碼大小減少了近 45%。總的來說,我們發(fā)現(xiàn) FPU 使矢量控制變換以及位置和速度估計(jì)更容易和更準(zhǔn)確。需要注意的是,RX62N 的 FPU 非常簡單,只有 8 條指令,但它對電機(jī)控制算法的影響非常顯著。
表 5:整體算法的測試比較
支持 Renesas FPU 的 MCU
讓我們仔細(xì)看看我們測試中使用的 Renesas MCU 可用的資源。Renesas RX600 CPU 架構(gòu)是一種復(fù)雜指令集計(jì)算 (CISC) 架構(gòu),具有 16 個(gè)通用 32 位寄存器和 9 個(gè)控制寄存器來處理快速中斷。此外,該架構(gòu)還具有內(nèi)存保護(hù)單元、片上調(diào)試、DSP 指令(48 位和 80 位 MAC、桶形移位器)和硬件除法器。
RX600 內(nèi)核具有符合 IEE-754 標(biāo)準(zhǔn)的單精度 32 位浮點(diǎn)單元。FPU 緊密連接到共享相同寄存器的 CPU(參見圖 2)。競爭架構(gòu)必須經(jīng)過額外的步驟,首先將操作數(shù)值加載到通用寄存器中,然后將它們移動到浮點(diǎn)的專用寄存器中。浮點(diǎn)單元的結(jié)果隨后被移動到專用寄存器,然后返回到通用寄存器存儲到內(nèi)存中。
圖 2:RX600 FPU 實(shí)現(xiàn)使用通用寄存器來執(zhí)行所有指令
與早期的 CISC CPU 相比,RX CPU 實(shí)現(xiàn)了大約四倍的算術(shù)計(jì)算性能,即 165 DMIPS(Dhrystone 7 MIPS)。特別是,32 位乘法最多可以在一個(gè)周期內(nèi)執(zhí)行(除法需要 2 到 8 個(gè)周期),因此可以更快地執(zhí)行電機(jī)控制的矢量計(jì)算。一旦在 PC 上開發(fā)了電機(jī)控制算法,使用 Matlab 等高級抽象工具,它們就可以直接移植到 FPU 中,以便在硬件平臺上進(jìn)行進(jìn)一步測試和檢查。
概括
總而言之,當(dāng)將浮點(diǎn)硬件單元添加到 CPU 內(nèi)核以內(nèi)聯(lián)執(zhí)行指令時(shí),可為電機(jī)控制等嵌入式應(yīng)用帶來更高的性能和更簡單的軟件開發(fā)。性能測試生成的數(shù)據(jù)用于將此實(shí)現(xiàn)與使用定點(diǎn) MCU 的設(shè)計(jì)進(jìn)行比較。
這些實(shí)驗(yàn)表明,F(xiàn)PU SVC 的 CPU 帶寬使用與定點(diǎn) SVC 相比顯著降低,并且 FPU SVC 的代碼大小是定點(diǎn) SVC 的一半,這使得使用具有更小的閃存尺寸,從而降低了成本。
因此,數(shù)據(jù)表明,在 MCU 中添加 FPU 可實(shí)現(xiàn)計(jì)算更先進(jìn)的算法,有助于提高電機(jī)控制效率并節(jié)省能源,同時(shí)擴(kuò)展系統(tǒng)功能。
更重要的是,從模擬中創(chuàng)建代碼很容易,因?yàn)樗写a都是用 C 編寫的。當(dāng)程序員完成代碼并且系統(tǒng)工程師正在查看代碼時(shí),很容易理解代碼以及更改的影響變量值。
評論
查看更多