手寫STM32 FOC記錄----- 電流環(huán)
????????前面文章有畫過FOC開環(huán)控制框圖,如下。雖然開環(huán)電壓控制的效果也還不錯,但由于電機(jī)不是單純的阻性負(fù)載,所以控制電壓并不能得到一個(gè)完美的效果。我們最終目標(biāo)是控制電流,有電流控制的foc才算完美。

????????下面來看看加上電流環(huán)的FOC控制框圖,在開環(huán)的基礎(chǔ)上,加上電流采集并做相應(yīng)轉(zhuǎn)換得到Id,Iq。FOC控制的最終目的是使Id盡可能接近0。使用電壓開環(huán)控制時(shí),由于種種原因,id并不是一直為0,可能存在偏移或是跳動,轉(zhuǎn)速越高這種情況就越厲害,而使用電流閉環(huán)可以較好地遏制這種現(xiàn)象。

????1、電流采集
????????在ADC中斷回調(diào)函數(shù)中采集ABC三相電流,重構(gòu)ADC中斷回調(diào)函數(shù),讀取電壓,根據(jù)硬件電路轉(zhuǎn)換成電流值

????????前提是要采集電流偏置,即在電機(jī)停止的時(shí)候采集ABC三相的靜態(tài)電壓,最終轉(zhuǎn)換成電流值。具體實(shí)現(xiàn)是,電機(jī)停止時(shí)采集1000次,取平均值得到三相電流偏置。最后在ADC采集時(shí)減去電流偏置就得到真實(shí)的電流值。

????????讓電機(jī)開環(huán)轉(zhuǎn)動起來,執(zhí)行電流采樣函數(shù)中斷,測試vofa+輸出電流Ia,Ib,Ic曲線如下:

????????對三相電流進(jìn)行Clark變換之后得到的alpha,bate電流波形如下:

? ? ????再對alpha,bate進(jìn)行park變換得到如下波形,其中橙色線為Iq,藍(lán)色線為Id,比較接近兩條直線了。

????????經(jīng)過克拉克變換以及帕克變換,我們的三相交流電流量已經(jīng)變成了兩個(gè)直流的電流量,電流環(huán)的目的,到這里就清楚了,就是為了使Id盡量接近0,而Iq盡量接近我們給定的值,少出現(xiàn)波動。最佳方式當(dāng)然就是使用PID控制了,制作Id和Iq的兩個(gè)PID控制環(huán),實(shí)現(xiàn)對電流的穩(wěn)定控制。
2、PID控制
????????首先要明確一點(diǎn),對于電流環(huán)而言一般是不會使用微分項(xiàng)D的,至于為啥,我也描述不清楚,網(wǎng)上有很多資料可以參考。
????????這里通過先調(diào)試?D軸,將?Q軸的?PI控制器設(shè)置為零,這樣可以排除?Q軸的影響,在單軸達(dá)到比較好的響應(yīng)效果之后,將?D軸的?PI控制器參數(shù)拷貝一份送給Q軸的PI控制器即可。
????????D軸調(diào)試時(shí),先只加入比例環(huán)節(jié),可以將?的系數(shù)逐漸增大,會發(fā)現(xiàn)?反饋值逐漸靠近?給定值,再加入積分環(huán)節(jié)發(fā)現(xiàn)系統(tǒng)雖然存在超調(diào),但是最終反饋可以穩(wěn)定在給定值。加入積分環(huán)節(jié)時(shí)有個(gè)問題要注意,就是要對積分項(xiàng)進(jìn)行限幅,否則,過大的積分會讓電流環(huán)嚴(yán)重超調(diào),而過小電機(jī)發(fā)揮不出力量。

????????以下是調(diào)試時(shí)部分波形,對于PID參數(shù)調(diào)試貌似也沒有好的辦法,只能根據(jù)數(shù)據(jù)一點(diǎn)點(diǎn)調(diào)試,一點(diǎn)點(diǎn)修改。

????????最終判斷電流環(huán)生效的效果時(shí),讓電機(jī)電流閉環(huán)運(yùn)行來后將電機(jī)堵轉(zhuǎn),最大電流會不會跟隨給定的目前電流變化,Q軸目標(biāo)電流越大,堵轉(zhuǎn)電流越大。
觀看視頻效果請轉(zhuǎn)至?手寫STM32 FOC記錄----- 電流環(huán)(開源)