如何用PID演算法控制電流或者電壓使得功率穩定在定值附近?

電氣,自動控制,matlab


題主的這個問題很有意思。
這種控制方式在玻璃纖維的抽絲工藝中得到廣泛應用。而且可巧的是:我帶的一位大四的學生,他的畢業設計也是這個課題。
說明一下,玻璃絲用於製造玻璃鋼。
我們來看下圖:

這是玻璃抽絲機。玻璃坩堝內的玻璃拽溫度為1200攝氏度。玻璃液有液位控制,液位低時會自動加入玻璃球。玻璃坩堝的底部有白金孔板,上面有許多非常細小的孔,孔徑大約在0.1毫米左右。熔融的玻璃液從小孔中流出,被水冷降溫後由玻璃絲抽絲機抽絲。
電壓被直接載入到白金孔板上。電路簡圖如下:

流過白金孔板的交流電流必須恆壓恆流,並且被控溫裝置按PID方式實施控制。
上圖中晶閘管安裝在變壓器初級。
此電路使用純粹的電子線路構成的,使用效果不錯。
那麼如何實現PID控制呢?且看看是否有人關心這個問題,再做解答。


看到 @Patrick Zhang 老師一直沒更新,我來班門弄斧一下,如有不足請批評指正(2月27日更新完畢)。
這是我最近在模擬練習課上做的PQ控制,沒有用PID控制,只用了PI。這是完整模型:

然後一塊一塊來看。這是主電路:

左側是單相橋式逆變電路,右側是交流網路。逆變電路採用SPWM控制,目標是控制傳輸的有功和無功。有功和無功的期望值以常數的形式給出。P初始值為2000W,在0.5s時刻跳變到3000W;Q初始值為-1000Var,在1s時刻跳變到1000Var。這些設定在左下角的控制模塊中,見第七張圖。這個電路怎麼控制呢?我們可以把它簡單理解為一個雙機系統:

P=dfrac {U_{1}U_{2}}{X}sin left( delta 
ight)
Q=dfrac {U_{1}U_{2}}{X}cos left( delta 
ight) -dfrac {U^{2}_{2}}{X}=dfrac {U_{2}}{X}left( U_{1}cos left( delta 
ight) -U_{2}
ight)
其中delta =delta _{1}-delta _{2}
好了,現在有了有功和無功的表達式,那麼接下來怎麼進行控制呢?
從這兩個表達式看,並不方便使用,我們接下來用點Trick,把這兩個式子線性化。
在這個案例中,右側是電網,所以認為其電壓U_{2}是恆定的。我們令Delta U=U_{1}-U_{2}
同時,對於我們所選的有功和無功範圍,運行時的delta是很小的,接近0,因此
Qapprox lim _{delta 
ightarrow 0}Q=dfrac {U_{2}}{X}left( U_{2}+Delta U-U_{2}
ight) =dfrac {U_{2}Delta U}{X}
這個式子說明,Qsim Delta U,要控制無功Q的話,我們只要控制Delta U就行。
再來看有功的表達式,由於
lim _{delta 
ightarrow 0}dfrac {sin delta }{delta }=lim _{delta 
ightarrow 0}dfrac {cos delta }{1}=1(洛必達法則)
所以
Papprox dfrac {U_{1}U_{2}}{X}delta
由於我們為了控制Q已經確定了Delta U,相當於確定了U_{1},所以Psim delta,要控制有功P的話,我們只要控制delta
下面就是一步一步地實現。
鎖相環:

鎖相環的目的在於,逆變電路的輸出要和電網的頻率保持同步。鑒相器通過dq變換實現,輸入信號是在α-β坐標系下。將電網電壓信號直接輸入α,在輸入β之前則需要dfrac {pi }{2}的相移。輸入是正弦信號,則變換到d-q坐標後,d軸和q軸上的分量均為定值。PI控制器實現低通濾波功能。通過振蕩器輸出幅值為2π的鋸齒波。
根據電網側的電壓和電流信號計算基波的幅值和相位:

計算出P和Q的實際值:

最後就是反饋控制:

根據前面的推導,對P的控制就是控制delta,對Q的控制就是控制Delta U,最終都體現在調製信號中。
控制效果如下圖所示:


@薪程 師兄普及一下功率環設計


Simulink裡面有例子的


採用串級系統,也就是雙閉環系統,內環負反饋可以穩定電流,外環負反饋可以穩定電壓。改變pid的值就可以使輸出達到想要的值


這其實是很簡單也很常見的問題,但是很多答主不正面回答,我感到很遺憾。

電路上主要包括三部分。控制器、功率放大、反饋。

如果用模擬電路的方案,可以用運放搭出來減法器和PID控制器,用電位器作為理想功率的輸入信號。功率放大電路的結構和被控對象的功率大小有關。對於較小的功率,直接用晶體管跟隨器就可以。對於中等的功率,可以用集成電路把電壓信號轉化占空比信號驅動開關管,對於較大的功率可以構造晶閘管電路。反饋部分,電壓可以用分壓電阻反饋,電流可以用很小的串聯採樣電阻加放大器反饋,二者可以用模擬乘法器乘積獲得瞬時功率信號,模擬乘法器後面再加低通濾波即可獲得平均功率信號。

如果是數字電路的方案,可以把減法器、PID控制器、乘法器、低通濾波器轉為程序寫入處理器當中。功率放大部分和電壓電流反饋部分可以與模擬方案一致。

PID的參數與被控對象和電路的參數有關。通常功率放大電路對速度要求不高。因而可以採用很緩慢的積分作為PID控制器就能實現穩定而準確的控制。


謝師弟邀請@楊雷,我做的是永磁同步機控制,在速度環和電流環中間加了一個功率環,通過控制dq軸電流來控制逆變器的輸出功率


沒那麼複雜,不要把PID想得太複雜。有的回答指歪了路。
有的朋友說雙閉環,那就是兩個PID,人家一個PID還沒搞明白呢。
有的朋友說dq轉換,人家也沒那樣高要求。
題主要求的只是一個恆功率而已。而且只要「在定值附近」即可。
其實,PID的原理很簡單,而且PID也很皮實,對幾個係數不太敏感,如果對控制品質要求不是特別高的話。如果對控制品質要求高的話,前面朋友說的雙閉環啦,dq轉換啦,就開始次第登場了。
不過從題主的題目來看,題主的控制品質要求並不高。

太具體的技術就不多說了。要用PID,首先要對自己的控制對象有個初步的了解。比如它是一個慣性系統,它的時間常數是多少?你做一個階躍響應測一下。得到它的模型。
在這個模型上,串上PID,求出閉環傳遞函數,把你想要的自然頻率,阻尼等代進去,求出PID的係數。
實驗驗證一下,不滿意再調整一下。
完了。


因為明確指定了用PID,所以必須要有PID運算器去執行運算。那麼就有兩個思路。

第一種:用單片機作為控制中心;
第二種:用模擬電路搭建一個PID運算電路

如果負載是恆壓,那麼採集電流信息給運算器處理後再輸出諸如電壓等信息去控制限流裝置控制電流;
如果負載是恆流,就採集輸出電壓,然後處理後輸出脈衝來控制輸出電壓;
而負載如果既不是恆壓也不是恆流,那麼就要結合負載的電壓電流特性曲線去決定如何結合電壓電流這兩個信號,以及輸出什麼信號來去控制輸出。

這類控制電路採用單片機來做會更加方便,靈活性也高。

以上只是搭建電路的一個思路,並沒有理論計算部分~~~


確定有d嗎?應該只有pi吧!

模擬控制是高手,不怕干擾不怕溫漂那就是大神。

還是數字控制好用啊。就是一個差分方程。


哎嘛~15年前的畢業設計就是PID,現在還是PID,這玩意真是經久不衰!


又到了一年一度的畢設任務書發放時


這個功率肯定是你給定的,不給定功率你怎麼控制功率為定值呢?


推薦閱讀:

如何看待 2016 年 4 月 8 日 SpaceX 成功發射並在海上回收 Falcon9 一級火箭?
機器學習,神經網路在控制科學中的前景和應用大嗎?為什麼?

TAG:MATLAB | 自動控制 | 電氣工程 |