宋軍,嚴(yán)東
(解放軍92941部隊,遼寧葫蘆島125001)
基于FPGA的雙模式伺服控制算法的研究
宋軍,嚴(yán)東
(解放軍92941部隊,遼寧葫蘆島125001)
艦炮的伺服系統(tǒng)主要根據(jù)火控系統(tǒng)給出的目標(biāo)參數(shù),完成炮塔的旋轉(zhuǎn)和目標(biāo)的跟蹤。伺服系統(tǒng)的響應(yīng)性能直接關(guān)系到作戰(zhàn)系統(tǒng)的性能和可靠性,而控制算法是伺服控制的核心之一。提出了一種基于雙模式融合的bangbang-PID控制算法。同時,針對傳統(tǒng)基于軟件的實現(xiàn)方式存在響應(yīng)速度滯后、設(shè)備體積大、抗干擾性差等問題,提出了基于FPGA技術(shù)的控制算法實現(xiàn)方案。實驗結(jié)果表明,該算法具有較快的響應(yīng)速度,可以較好地滿足伺服系統(tǒng)的要求。
艦炮伺服系統(tǒng),雙模式融合,控制算法,F(xiàn)PGA
隨著艦炮要應(yīng)對目標(biāo)的移動速度和方位變化等性能不斷的提高,對艦炮伺服系統(tǒng)的響應(yīng)速度和精度提出了越來越高的要求。采取單一模式的控制方式已不能較好地滿足伺服系統(tǒng)的需求,而過于復(fù)雜的控制算法在提升準(zhǔn)確度的同時,將對系統(tǒng)的響應(yīng)速度造成影響。因此,探索高效、準(zhǔn)確的控制算法成為提升艦炮伺服系統(tǒng)性能的關(guān)鍵問題之一。
目前艦炮的伺服系統(tǒng)多采取PC+DSP或PC+單片機的平臺,采用軟件實現(xiàn)的方式,雖然能夠滿足目前的需求,但隨著系統(tǒng)小型化的發(fā)展趨勢和抗干擾需求的不斷增加,當(dāng)前所采用的實現(xiàn)方式所暴露出的體積大、功耗高、抗干擾能力差的問題一定程度上降低了艦炮伺服系統(tǒng)的集成度,以及在復(fù)雜電磁環(huán)境下的作戰(zhàn)性能。
基于以上存在的問題,本文提出了一種雙模式融合的控制算法,即bangbang-PID算法,并給出了該算法性能的對比仿真測試;同時,結(jié)合目前最新的可重構(gòu)技術(shù),采用FPGA平臺,對控制算法進(jìn)行了設(shè)計實現(xiàn),硬件測試結(jié)果進(jìn)一步驗證了算法的高效性。
1.1 增量PID控制
增量PID是指數(shù)字控制器的輸出只是控制量的增量。由式(1)可以看出,位置PID控制算法是由輸出量直接控制執(zhí)行單元,輸出值與執(zhí)行元件的位置直接對應(yīng)。位置PID的控制算法的輸出量U(k)與過去的狀態(tài)有關(guān),要對e(k)作累加計算,計算量大。而且,當(dāng)系統(tǒng)出現(xiàn)故障時,e(k)的大幅變化將會引起輸出量的大幅變化,導(dǎo)致執(zhí)行元件的大幅變化,會造成嚴(yán)重后果。由式(1)可以推導(dǎo)出式(2):
將兩者相減可得式(3):
整理后可得:
由式(4)可以發(fā)現(xiàn)增量PID已找不出調(diào)節(jié)作用對位置絕對信息的作用,僅針對當(dāng)前調(diào)整量的反饋進(jìn)行處理。增量式PID控制算法,除了與本身調(diào)控性能相關(guān)的Kp、Ki、Kd參數(shù)外,只涉及最近的3個誤差采樣值e(k)、e(k-1)、e(k-2),即可以實現(xiàn)PID控制。
因此,增量PID具有如下2個特征:①位置式PID控制與過去系統(tǒng)的整個狀態(tài)有關(guān),涉及到以前的誤差累加值;而增量式PID與最近三次誤差有關(guān),因此,系統(tǒng)累計誤差基本對增量PID控制器沒有影響。②增量式PID輸出為控制量增量,若被控系統(tǒng)出現(xiàn)故障,由于一般伺服系統(tǒng)具有記憶功能,調(diào)整誤差影響較小,不會造成嚴(yán)重影響。
1.2 Bang-Bang控制
Bang-Bang控制是一種特殊的最優(yōu)控制[1-2],其特征為不斷地從一個控制邊界切換到另一個控制邊界值,即開關(guān)控制。
Bang-Bang控制的求解問題模型如式(5)所示:
其中,
x(t)∈Rd(x)表示d(x)維的狀態(tài)向量,u(t)∈Rd(u)表示d(u)維的控制向量,I2∈Rd(x),f2∈Rd(x)d(u)。
由Hamilton函數(shù)
定義切換函數(shù),如下所示
根據(jù)Pontryagain極小值原理,若保證Hamilton函數(shù)全局最小,即σ(t)u(t)≤σ(t)(t),需要滿足如下條件。
當(dāng)σi(t)>0,應(yīng)取ui=umin,i。這時,H全局最小(從ai≤ui(t)≤bi中取最小的ui,即取umin,i,使σi(t)ui為最小的正數(shù),從而使H全局最?。?。
當(dāng)σi(t)<0,應(yīng)取ui=umax,i。這時,H全局最大(從ai≤ui(t)≤bi中取最大的ui,即取umax,i,使σi(t)ui為最小的負(fù)數(shù),從而使H全局最大)。
當(dāng)目標(biāo)狀態(tài)方程中含有線性控制項,且各分量為有界,可通過采取邊界值實現(xiàn)開關(guān)控制的方案實現(xiàn)時間最優(yōu)控制,即為Bang-Bang控制。
Bang-Bang控制是一個隨偏差e正負(fù)變化的開關(guān)量輸出裝置[3-4],使得系統(tǒng)從一個初始狀態(tài)到另一個狀態(tài)的過渡時間最短,具有快速的上升速度和慣性,保證了系統(tǒng)的動態(tài)性能。
1.3 雙模式融合控制策略
通過1.1節(jié)的論證可知,對于增量PID,當(dāng)Kp,Ki,Kd 3個參數(shù)確定后,增量PID系統(tǒng)的調(diào)控性能即可確定,雖然Kp,Ki,Kd 3個參數(shù)在一定程度上影響增量PID控制的調(diào)控時間和調(diào)控幅度,但只要在合理的范圍內(nèi),增量PID的調(diào)控曲線大體相同[5-8]。其后期調(diào)整具有較高的調(diào)控精度,從而減小了后期系統(tǒng)調(diào)整的頻率,因此,對理想值與反饋值之間誤差較小時,具有良好的微調(diào)效果。
在1.2節(jié)的論述證明了通過采取Bang-Bang控制機制能夠使系統(tǒng)以最小的時間代價達(dá)預(yù)期值,即通過偏差e正負(fù)變化的開關(guān)量輸出使得最優(yōu)指標(biāo)函數(shù)J成立。
在實際跟蹤控制系統(tǒng)中,伺服系統(tǒng)需要完成快速、精準(zhǔn)的定位,任何單一的控制方法都很難滿足需求。綜合Bang-Bang控制在早期的快速逼近優(yōu)勢和增量PID后期較高調(diào)整精度特點,本文將二者融合,提出了Bang-Bang增量PID的多??刂品桨?。
其雙模控制狀態(tài)如式(11)所示:
Bang-Bang增量PID控制器的工作原理為:根據(jù)實際的跟蹤伺服系統(tǒng)的物理情況及跟蹤角度調(diào)整方案,給出一個特定的誤差極限值e,該誤差極限值包含正負(fù)兩種情況。這里以e>0為例說明。當(dāng)輸出反饋與目標(biāo)值差值絕對值大于閾值e時,說明誤差較大,應(yīng)采用Bang-Bang控制策略,以時間最優(yōu)的方式,提高跟蹤伺服系統(tǒng)的響應(yīng)速度,當(dāng)誤差絕對值小于閾值e時,說明此時系統(tǒng)反饋與目標(biāo)值在一個合理空間中,此時,通過增量PID控制策略,以精度最優(yōu)的方式,提供伺服系統(tǒng)的準(zhǔn)確定位。
Bang-Bang增量PID控制器在控制初期,通過時間最優(yōu)方式逼近目標(biāo)區(qū)域,獲得良好動態(tài)性能,在控制中后期,通過精度優(yōu)先方式準(zhǔn)確定位,獲得較好的穩(wěn)態(tài)性能。該方案完全滿足跟蹤伺服系統(tǒng)的速度及精度要求。如圖1所示,在matlab中,采用模型分別為增量PID控制器、Bang-Bang控制器、Bang-Bang增量PID控制器的響應(yīng)曲線。從圖中可以看到,Bang-Bang增量PID在早期較增量PID有較大的超調(diào),但逼近目標(biāo)值時間更短,在中后期,較Bang-Bang具有更高精度,調(diào)整幅度較小。同時,Bang-Bang增量PID的響應(yīng)時間為三者最小。
圖1 響應(yīng)曲線
為了進(jìn)一步提高跟蹤伺服系統(tǒng)的響應(yīng)時間,本文采用FPGA[9-10],對Bang-Bang增量PID控制器,進(jìn)行了硬件并行化。
圖2為Bang-Bang增量PID控制器的原理圖,圖3為RTL級實現(xiàn)圖。為了提高該控制器的靈活性,適應(yīng)更多的應(yīng)用及不同的伺服系統(tǒng),本文將參數(shù)的設(shè)定采取可重構(gòu)的方式,在給定默認(rèn)值的情況下,允許用戶進(jìn)行修改。從圖中可以看到,Bang-Bang增量PID控制器接口由12個輸入信號和2個輸出信號構(gòu)成。
圖2 控制算法原理圖
為了說明控制器所涉及的信號類型和意義,以及方便后文中仿真說明,表1給出了算法模塊的端口信號定義。
表1 端口信號定義
圖3 控制算法RTL級實現(xiàn)圖
為了驗證基于FPGA的雙模式融合控制算法的性能,文中從以下3個方向展開了功能測試從3種情況展開,BangBang下限測試,BangBang上限測試,增量PID測試。
3.1 BangBang上限控制仿真
BangBang上限控制仿真的目的是為測試當(dāng)控制器檢測到反饋值與目標(biāo)值誤達(dá)到Bang-Bang控制上限時,控制器的信號輸出情況。
PID_IN_POSI為8.0000000,PID_IN_NEGE為1.0000000;P為1.5000000,I為0.3,D為0。ERROR為0x40e00000,即浮點值7.0000000,因為ERROR已經(jīng)大于BANGBANG_H,因而BANGBANG上限控制使能,當(dāng)PID_stop為高時,bangbang_h_en為1,PID_OUT的值為MAX_OUT即0x4120000,即10.00000。圖為仿真結(jié)果,從圖4中可以看到,仿真結(jié)果與預(yù)期值相同。
3.2 BangBang下限控制仿真
BangBang上限控制仿真的目的是為測試當(dāng)控制器檢測到反饋值與目標(biāo)值誤達(dá)到Bang-Bang控制下限時,控制器的信號輸出情況。
PID_IN_POSI為8.0000000,PID_IN_NEGE為15.0000000;P為1.5000000,I為0.3,D為0。ERROR為0xc0e00000,即浮點值-7.0000000,因為ERROR已經(jīng)小于BANGBANG_L,因而BANGBANG下限控制使能,當(dāng)PID_stop為高時,bangbang_l_en為1,同時PID_OUT的值為MIN_OUT即0xc120000,即-10.00000。
圖5為BANGBANG下限控制仿真結(jié)果,從圖中可以看到,仿真結(jié)果與預(yù)期值相同。
3.3 增量PID控制仿真
由增量PID公式知,當(dāng)表達(dá)式涉及比例項+積分項時,增量PID運算除涉及本次反饋值與目標(biāo)值誤差外,還涉及上一次的誤差,因此,測試進(jìn)行了兩次仿真,第一次,初始條件為上一次仿真誤差為0,第二次仿真中的上一次誤差值使用第一次增量PID的誤差累積。
圖4 BangBang控制上限仿真圖
圖5 BangBang控制下限仿真圖
第一次PID運算的輸入值PID_IN_POSI為5.0,PID_IN_NEGE為3.0;P為1.5,I為0.3,D為0.1。ERROR為2.0,比例項ctrl_P=ERROR×P=2.0× 1.5=3.0;積分項ctrl_I=ERROR×I+last_ctrl_I=2.0× 0.3+0=0.6;微分項ctrl_D=(ERROR-last_error)×D=(2-0)×0.1=0.2;PID_OUT_TEMP=ctrl_P+ctrl_I+ ctrl_D=3.0+0.6+0.2=3.8。因為3.8在溢出允許的范圍內(nèi),所以當(dāng)PID_stop為高后,PID輸出運算結(jié)果0x40 733 333。
第二次PID運算,輸入值PID_IN_POSI為5.0,PID_IN_NEGE為4.0;P、I和D仍保持上次的值。ERROR為1.0,比例項ctrl_P=ERROR×P=1.0× 1.500 000 0=1.5;因為上次PID運算結(jié)果使得
last_ctrl_I的值更新為0.6,所以積分項ctrl_I=ER ROR×I+last_ctrl_I=1.0×0.3+0.6=0.9;因為上次PID運算結(jié)果使得last_error的值更新為2.0,所以微分項ctrl_D=(ERROR-last_error)×D=(1-2)×0.1=-0.1;PID_OUT_TEMP=ctrl_P+ctrl_I+ctrl_D=1.5+0.9-0.1= 2.3。所以當(dāng)PID_stop為高后,PID輸出運算結(jié)果0x40 133 334。從圖6中可見,仿真結(jié)果與理論運算結(jié)果相同。
圖6 增量PID控制仿真圖
本文針對艦炮伺服系統(tǒng)中控制算法這關(guān)鍵問題,提出了一種雙模式融合的控制算法即bangbang-PID算法,該算法將響應(yīng)過程分為3個處理階段,當(dāng)系統(tǒng)采取到的反饋值在處理上限和下限范圍外時,采取bangbang控制策略,達(dá)到時間最優(yōu)控制的目的;當(dāng)反饋值在上限和下限之間時,采取增量PID控制策略,實現(xiàn)控制精度最優(yōu)的目的。文中采用maltab工具,對雙模式融合的bangbang-PID控制算法的收斂特性進(jìn)行了仿真,結(jié)果顯示,該算法具有響應(yīng)速度快,收斂時間短的特征。
針對當(dāng)前控制系統(tǒng)實現(xiàn)方式存在的問題,結(jié)合可重構(gòu)技術(shù),采用FPGA平臺,對所提出的控制算法進(jìn)行了設(shè)計和實現(xiàn)。該實現(xiàn)充分利用了硬件實現(xiàn)方式較軟件方式具有抗干擾能力強、響應(yīng)速度快的特性,進(jìn)一步提升了艦炮控制系統(tǒng)的性能。同時,所實現(xiàn)的bangbang-PID控制核具有參數(shù)可配置的功能,可以根據(jù)不同型號的需求進(jìn)行重新設(shè)置,具有較強的可移植性和適應(yīng)性。
[1]趙斌,吳敏哲,梅占馨.單自由度系統(tǒng)的變結(jié)構(gòu)滑模棒棒控制[J].力學(xué)與實踐,1999,28(1):37-39.
[2]馮純伯,張侃健,費樹岷.自動化學(xué)報[J].1999,25(5):576-582.
[3]肖會芹.一種基于軟切換的發(fā)動機轉(zhuǎn)速智能控制算法[J].自動化與儀表,2010,25(4):37-42.
[4]王巖.變量泵控制變量馬達(dá)系統(tǒng)建模及控制[J].控制理論與應(yīng)用,2012,29(1):41-46.
[5]樊杰.基于車輛穩(wěn)定性的電動助力轉(zhuǎn)向系統(tǒng)控制算法研究[D].長春:吉林大學(xué),2012.
[6]羅天資,陳衛(wèi)兵,鄒豪杰,等.直線電機模糊增量PID控制算法的研究[J].2011,30(2):56-60.
[7]趙勇,何寶福,余巍,等.基于增量式PID控制實現(xiàn)高精度跟蹤機構(gòu)設(shè)計研究[J].戰(zhàn)術(shù)導(dǎo)彈技術(shù),2009(1):66-69.
[8]姚棟偉,吳鋒,楊志家,等.基于增量式數(shù)字PID的汽油機怠速控制研究[J].浙江大學(xué)學(xué)報,2010,44(6): 1122-1126.
[9]羅元.基于SOPC的PID控制器設(shè)計[D].武漢:武漢科技大學(xué),2008.
[10]付學(xué)志,姚旺生,茍偉,等.基于FPGA的高速PID控制器設(shè)計與仿真[J].電子技術(shù)應(yīng)用,2007(1):87-90.
Dual-mode Servo Control Algorithm Based on FPGA
SONG Jun,YAN Dong
(Unit 92941 of PLA,Huludao 125001,China)
Naval gun servo system is mainly based on the target parameters given by the fire control system to complete the rotation of the turret and target tracking.The response performance of the servo system is directly related to the operational performance and reliability of the system,and the control algorithm is one core of the servo control.This paper presents a bangbang-PID control algorithm based on dual-mode fusion,as well as presents a control algorithm based on FPGA technology to solve the speed of response lag,bulky equipment,and poor anti-interference problem of traditional software-based implementation.The experimental results show that the algorithm has a faster response speed,which can meet the requirements of the servo system better.
gun servo system,dual-mode fusion,control algorithms,F(xiàn)PGA
TB114.2
A
1002-0640(2015)01-0137-05
2013-11-05
2013-12-07
宋軍(1978-),男,遼寧葫蘆島人,碩士。研究方向:艦炮武器系統(tǒng)試驗與鑒定。