ZHCAB59B June 2019 – November 2020 TMS320F28384D , TMS320F28384S , TMS320F28386D , TMS320F28386S , TMS320F28388D , TMS320F28388S , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
數(shù)字電機(jī)控制系統(tǒng)存在的主要問題是,內(nèi)部控制環(huán)路的傳輸滯后降低了系統(tǒng)的響應(yīng),從而影響系統(tǒng)在更高頻率和運(yùn)行速度下的性能。解決此問題將有助于改善電流環(huán)路帶寬。但是,若要在不損失直流母線電壓利用率的情況下實(shí)現(xiàn)此目標(biāo),以下各項(xiàng)是必需的:
TMS320F2838x 提供必要的硬件支持來實(shí)現(xiàn)更高的性能,而在此實(shí)時(shí)控制器上運(yùn)行的 TI FCL 庫則提供了必要的算法支持。MC SDK v2.01.00.00 及后續(xù)版本可提供源代碼。
為了提高電流環(huán)路的速度并優(yōu)化電流環(huán)路的工作范圍,反饋采樣和 PWM 更新之間的延遲必須盡可能小,如圖 4-1 所示。實(shí)質(zhì)上,在所示 PWM 載波周期內(nèi),在載波峰值處會發(fā)生系統(tǒng)采樣,并在 TPWM_update 時(shí)間點(diǎn)更新由控制器輸出的 PWM 占空比。這樣可以大幅減少傳輸滯后并改善帶寬。但是,缺點(diǎn)是會失去用于計(jì)算逆變器 PWM 占空比新值的有效 PWM 時(shí)間窗口。此時(shí)間窗口被稱為消隱窗口。此消隱窗口越小,直流母線電壓利用率就越大,電機(jī)運(yùn)行速度范圍也越大。
通常,在許多載波頻率為 10kHz 的應(yīng)用中,不超過 2μs 的延遲是可以接受的。過去,此任務(wù)是將高端 FPGA、外部 ADC 和 MCU 結(jié)合使用來實(shí)現(xiàn)的。但是,C2000 具有相應(yīng)的硬件支持功能(例如三角數(shù)學(xué)單元 (TMU)、CLA、高速 ADC 或 SDFM、單周期 ADC 讀取和 PWM 寫入),因此無需 FPGA 或外部 ADC 即可在此 MCU 上實(shí)現(xiàn)這種控制。
FCL 庫利用 F2838x MCU 中的以下特性:
圖 4-2 展示了 FCL 庫及其輸入和輸出的方框圖。FCL 庫在 CPU、CLA 和 TMU 之間對算法進(jìn)行了分區(qū),旨在將延遲降低到 1.0μs 以內(nèi),小于可接受的 2.0μs。如果算法是以匯編語言編寫的,則可以進(jìn)行進(jìn)一步優(yōu)化。
FCL 庫支持兩種類型的電流調(diào)節(jié)器,即標(biāo)準(zhǔn) PI 控制器和復(fù)雜控制器。復(fù)雜控制器能夠以更快的速度提供比標(biāo)準(zhǔn) PI 控制器更高的帶寬。兩種電流調(diào)節(jié)器均用于用戶評估。在示例工程中,可以通過適當(dāng)設(shè)置 FCL_CNTLR 宏并研究電流調(diào)節(jié)器的比較結(jié)果來選擇電流調(diào)節(jié)器。
表 4-1 列出了 FCL API 函數(shù)及其說明。
API 函數(shù) | 說明 |
---|---|
uint32_t FCL_getSwVersion(void) | 此函數(shù)返回 32 位常量,對于此版本,返回的值為 0x00000007。 |
void FCL_runComplexCtrl(void) | 此函數(shù)在具有 QEP 編碼器和霍爾傳感器(使用 ADC)的 FCL 中執(zhí)行復(fù)雜控制 |
FCL_runSDFMComplexCtrl(void) | 此函數(shù)在具有 QEP 編碼器和分流電阻器(使用 SDFM)的 FCL 中執(zhí)行復(fù)雜控制 |
void FCL_runAbsEncComplexCtrl(void) | 此函數(shù)在具有典型絕對編碼器和霍爾傳感器(使用 ADC)的 FCL 中執(zhí)行復(fù)雜控制 |
void FCL_runSDFMAbsEncComplexCtrl(void) | 此函數(shù)在具有典型絕對編碼器和分流電阻器(使用 SDFM)的 FCL 中執(zhí)行復(fù)雜控制 |
void FCL_runPICtrl(void) | 此函數(shù)在具有 QEP 編碼器和霍爾傳感器(使用 ADC)的 FCL 中執(zhí)行 PI 控制 |
void FCL_runSDFMPICtrl(void) | 此函數(shù)在具有 QEP 編碼器和分流電阻器(使用 SDFM)的 FCL 中執(zhí)行 PI 控制 |
void FCL_runAbsEncPICtrl(void) | 此函數(shù)在具有典型絕對編碼器和霍爾傳感器(使用 ADC)的 FCL 中執(zhí)行 PI 控制 |
void FCL_runSDFMAbsEncPICtrl(void) | 此函數(shù)在具有典型絕對編碼器和分流電阻器(使用 SDFM)的 FCL 中執(zhí)行 PI 控制 |
void FCL_runPICtrlWrap(void) | 當(dāng)使用 QEP 作為位置傳感器時(shí),在 PI 控制模式下,在退出 ISR 之前,用戶應(yīng)用程序在 FCL 結(jié)束時(shí)將調(diào)用此函數(shù) |
void FCL_runAbsEncPICtrlWrap(void) | 當(dāng)使用絕對編碼器作為位置傳感器時(shí),在 PI 控制模式下,在退出 ISR 之前,用戶應(yīng)用程序在 FCL 結(jié)束時(shí)將調(diào)用此函數(shù) |
void FCL_runQEPWrap(void) | 此函數(shù)由用戶應(yīng)用程序調(diào)用以結(jié)束 QEP 反饋過程。此函數(shù)僅在 FCL_LEVE2 中使用 |
void FCL_runComplexCtrlWrap(void) | 當(dāng)使用 QEP 作為位置傳感器時(shí),在復(fù)雜控制器模式下,在退出 ISR 之前,用戶應(yīng)用程序在 FCL 結(jié)束時(shí)將調(diào)用此函數(shù) |
void FCL_runAbsEncComplexCtrlWrap(void) | 當(dāng)使用絕對編碼器作為位置傳感器時(shí),在復(fù)雜控制模式下,在退出 ISR 之前,用戶應(yīng)用程序在 FCL 結(jié)束時(shí)將調(diào)用此函數(shù) |
void FCL_initPWM(uint32_t basePhaseU, uint32_t basePhaseV, uint32_t basePhaseW) | 此函數(shù)用于初始化 PWM 以支持 FCL 運(yùn)行,在初始化或設(shè)置過程中,用戶應(yīng)用程序?qū)⒄{(diào)用此函數(shù) |
void FCL_resetController(void) | 調(diào)用此函數(shù)可以重置 FCL 變量,此函數(shù)在您需要停止電機(jī)并重新啟動(dòng)電機(jī)時(shí)很有用 |
void FCL_initQEP(uint32_t baseA) | 此函數(shù)對 eQEP 外設(shè)進(jìn)行初始化以便連接到 QEP |
void FCL_initADC(uint32_t resultBaseA, ADC_PPBNumber baseA_PPB, uint32_t resultBaseB, ADC_PPBNumber baseB_PPB, uint32_t adcBasePhaseW) |
此函數(shù)對用于感測電機(jī)相電流的 ADC 進(jìn)行初始化 |
如需了解該庫的更多信息,請參閱快速電流環(huán)路 MotorControl SDK 庫用戶指南,此文檔位于:
\ti\c2000\C2000Ware_MotorControl_SDK_2_01_00_00\libraries\fcl\docs。
FCL 的源代碼位于:
\ti\c2000\C2000Ware_MotorControl_SDK_2_01_00_00\libraries\fcl\source