假定前一節(jié)的任務(wù)已經(jīng)成功完成,本節(jié)將驗證 FCL 執(zhí)行的 dq 軸電流調(diào)節(jié)??梢赃x擇兩種電流控制器之一:PI 控制器或復(fù)雜控制器。可以在調(diào)試窗口中設(shè)置控制器的帶寬。
注: 在此構(gòu)建中,控制是基于轉(zhuǎn)子的實際位置進行的;因此,如果命令的 IqRef 較高并且電機上沒有負載,則電機能夠以更高的速度運行。TI 建議在測試之前在電機上增加一些機械負載,或者應(yīng)用較低的 IqRef 值。當(dāng)命令電機運行時,電機將進入初始對齊階段,在該階段中,電角和編碼器角度計數(shù)將設(shè)置為零。
如果編碼器是 QEP,則 QEP 計數(shù)將設(shè)置為零。電機將會基于強制角度運行,直至收到 QEP Index 脈沖為止。然后,電機可以基于其自身的角位置以完全自控模式運行。
如果編碼器是絕對編碼器,則對齊時的角度將為初始角度 (initTheta),該角度此后會用作確定位置的參考。對齊完成后,電機可以立即基于其自身的角位置以完全自控模式運行。
以下初始步驟可以幫助評估此構(gòu)建級別;
- 打開 fcl_f2838x_tmdxiddk_settings_cpu1.h 并通過將 BUILDLEVEL 設(shè)置為 FCL_LEVEL3 (#define BUILDLEVEL FCL_LEVEL3) 來選擇 3 級增量構(gòu)建選項。
- 通過將 FCL_CNTLR 設(shè)置為 PI_CNTLR 或 CMPLX_CNTLR,可以將電流環(huán)路調(diào)節(jié)器選為 PI 控制器或復(fù)雜控制器。
- 將 CURRENT_SENSE 選為 LEM_CURRENT_SENSE
- 根據(jù)耦合到電機的編碼器,將 POSITION_ENCODER 選為 QEP_POS_ENCODER 或 T_FORMAT_ENCODER。
- 每個 PWM 周期可以對電流和位置反饋進行一次或兩次采樣,具體取決于采樣方法。在單采樣方法中,采樣與載波最大值同步,在雙采樣方法中,采樣與載波最大值和載波零值同步。示例中通過將 SAMPLING_METHOD 選擇為 SINGLE_SAMPLING 或?qū)?SAMPLING_METHOD 選擇為 DOUBLE_SAMPLING 來完成此采樣方法的選擇。最大調(diào)制指數(shù)從 SINGLE_SAMPLING 方法中的 0.98 變?yōu)?DOUBLE_SAMPLING 方法中的 0.96。如果 PWM_FREQUENCY 從 10kHz 改變,則最大調(diào)制指數(shù)也會改變。如果使用的是 T-format 編碼器,請選擇 SINGLE_SAMPLING,且 PWM 頻率不超過 10kHz。如需更多信息,請參閱 Topic Link Label5.1.3.3。
- 右鍵點擊工程名稱,然后點擊 Rebuild Project(重建工程)。編譯完成時,點擊 Debug (調(diào)試)按鈕,重置 CPU ,重新啟動,啟用實時模式,然后運行。
在軟件中,要添加、調(diào)整或監(jiān)視的關(guān)鍵變量匯總?cè)缦拢?/p>
- maxModIndex:最大調(diào)制指數(shù)
- IdRef:用于更改 d 軸電流(標(biāo)幺值)
- IqRef:用于更改 q 軸電流(標(biāo)幺值)
- FCL_params.WccD:d 軸電流環(huán)路的推薦帶寬
- FCL_params.WccQ:q 軸電流環(huán)路的推薦帶寬
- fclLatencyInMicroSec:顯示 ADC 采樣與 PWM 更新之間的延遲(以 μs 為單位)
- fclClrCntr:這是一個標(biāo)志,用于清除變量 fclLatencyInMicroSec 并使其刷新
- runMotor:這是一個標(biāo)志,用于運行或停止電機
圖 8-1 顯示了 3 級方框圖。
關(guān)鍵步驟解釋如下:
- 在“Watch”(觀察)窗口中將 enableFlag 設(shè)置為 1。在“Watch”(觀察)窗口中看到 isrTicker 變量遞增,可確認中斷正常運轉(zhuǎn)。
- 驗證 maxModIndex 值是否為 0.96(雙采樣方法)或 0.98(單采樣方法)。
- 將 speedRef 設(shè)置為 0.3pu(如果基速不同的話,設(shè)置為其他合適的值),將 IdRef 設(shè)置零,并將 IqRef 設(shè)置為 0.03pu(或其他合適的值)。使用 QEP 編碼器時,speedRef 僅在收到 QEP Index 脈沖之前用于強制模式運行電機。此后會根據(jù)電機的轉(zhuǎn)子位置來控制電機。另一方面,使用絕對編碼器時則沒有這種強制模式,電機在對齊后立即根據(jù)轉(zhuǎn)子位置運行。
- 將自耦變壓器/直流電源的電壓逐漸增加至特定的電壓,例如額定電壓的 20%。
- lsw 是一個狀態(tài)機變量,表示與正交編碼器交互的功能狀態(tài)。其各種狀態(tài)如下:
- lsw = ENC_ALIGNMENT --> 將電機的轉(zhuǎn)子鎖定為與定子 A 相對齊
- lsw = ENC_WAIT_FOR_INDEX --> 電機處于運行模式并等待 QEP Index 脈沖的第一個實例(僅在使用 QEP 編碼器時適用)
- lsw = ENC_CALIBRATION_DONE --> 電機處于運行模式 -(表示出現(xiàn) QEP Index 脈沖,并在使用 QEP 時完成校準(zhǔn)或在使用其他編碼器時完成校準(zhǔn))
- 將 runMotor 標(biāo)志設(shè)置為 MOTOR_RUN 以運行電機。
- 請注意,lsw 狀態(tài)按順序自動增加(代碼在 FCL 庫中)
- 使用連續(xù)刷新功能在“Watch”(觀察)窗口中檢查 pi_id.fbk,查看其是否可以跟蹤 IdRef。
- 使用連續(xù)刷新功能在“Watch”(觀察)窗口中檢查 pi_iq.fbk,查看其是否可以跟蹤 IqRef。
- 若要確認這兩個電流調(diào)節(jié)器模塊,請嘗試不同的 pi_id.ref 和 pi_iq.ref 值,方法是分別更改 IdRef 和 IqRef 的值。
- 通過調(diào)整 FCL_params.wccD 和 FCL_params.wccQ 的值,為電流環(huán)路嘗試不同的帶寬。帶寬的默認設(shè)置是采樣頻率的 1/18。
- 如果可以固定電機軸,則可以在 0.5 與 –0.5 之間來回更改 IqRef 值,以便研究環(huán)路帶寬帶來的影響。
- 降低總線電壓、使控制器脫離實時模式并進行復(fù)位,從而使系統(tǒng)安全停止?,F(xiàn)在,電機停止運轉(zhuǎn)。