劉 亮
(海軍裝備部,西安 710025)
模糊控制是基于規(guī)則的一種智能控制方式,它不依賴于被控對象的精確數(shù)學(xué)模型,特別適用于多輸入-多輸出的強(qiáng)耦合性、參數(shù)的時變性和嚴(yán)重的非線性與不確定性的復(fù)雜系統(tǒng)。且控制方法簡單,實(shí)際效果好。其實(shí)質(zhì)是對人觀察、思考、判斷、決策的思維過程的一種模擬,模糊控制器的設(shè)計(jì)在很大程度上依賴于設(shè)計(jì)者的經(jīng)驗(yàn),帶有主觀性[1]。因此,需要對控制器進(jìn)行優(yōu)化才能取得較為滿意的設(shè)計(jì)效果。
Matlab軟件是由美國Math Works公司推出的專門用于科學(xué)、工程計(jì)算和系統(tǒng)仿真的高級語言,它集數(shù)值分析、矩陣運(yùn)算、信號處理和圖形顯示于一體,并且提供了大量應(yīng)用于不同學(xué)科的工具箱,編程效率高,使用簡單方便。特別是Simulink工具箱和FUZZY工具箱使得控制系統(tǒng)的設(shè)計(jì)與仿真變得相當(dāng)容易和直觀。本文在Matlab6.5的基礎(chǔ)上介紹了如何構(gòu)造模糊控制系統(tǒng)的結(jié)構(gòu)框圖和進(jìn)行仿真研究,對某火炮調(diào)速系統(tǒng)的控制器進(jìn)行設(shè)計(jì)仿真,提供了一種模糊控制系統(tǒng)的高效仿真方法。
模糊控制系統(tǒng)設(shè)計(jì)的關(guān)鍵是模糊控制器的設(shè)計(jì),其參數(shù)主要有:各輸入、輸出變量模糊子集的隸屬度函數(shù),模糊控制規(guī)則,輸入輸出變量的比例變量因子等。偏差和偏差變化作為模糊控制器的兩個輸入量,先對它們進(jìn)行模糊量化處理,得到模糊變量E和EC,按模糊控制規(guī)則進(jìn)行模糊決策,得到模糊控制量U,再經(jīng)過解模糊和比例變換得到實(shí)際控制量輸出。
在Matlab中,可以借助于模糊系統(tǒng)工具箱的圖形用戶界面(GUI)工具編輯隸屬度函數(shù)和控制規(guī)則,這里以某火炮調(diào)速系統(tǒng)的開環(huán)傳遞函數(shù)作為設(shè)計(jì)控制器以及仿真的基礎(chǔ)。
設(shè)控制系統(tǒng)的輸入為單位階躍信號r,輸出為y,誤差為e,誤差導(dǎo)數(shù)為de;模糊控制器的輸入為e、de,其輸出為u,所對應(yīng)的模糊語言變量為E、DE和U,其論域范圍均取[-6,+6],模糊子集均為{NB,NM,NS,ZO,PS,PM,PB}??刂埔?guī)則是對專家的理論知識和經(jīng)驗(yàn)的總結(jié),此處共有49條規(guī)則,如表1所示。在RulesEditor窗口中輸入這49條控制規(guī)則[2]。例如:If E is NB and DE is NB then U is PB。
表1 模糊控制規(guī)則
在Matlab中鍵入FUZZY,進(jìn)入模糊編輯窗口FISEDITOR。建立E、DE、U的隸屬度函數(shù),有三角形、高斯形、梯形等11種可供選擇,在此選用常用的三角形隸屬度函數(shù),如圖1所示。
模糊決策采用與方法為min,或方法為max,推理方法為min,合成方法為max,解模糊化方法為重心法(centroid)。建立的FIS文件取名為aa.fis.如此設(shè)計(jì)的模糊控制器的輸入與輸出的關(guān)系曲線如圖2所示,顯然模糊控制是一種非線性控制。
圖1 E/DE/U的隸屬度函數(shù)
Simulink工具箱是Matlab軟件的擴(kuò)展,主要用于動態(tài)系統(tǒng)的仿真.Simulink模塊庫中提供了建立系統(tǒng)模型所需的大部分模塊,進(jìn)入Matlab環(huán)境后,鍵入Simulink命令就可打開該模塊庫,用戶可以根據(jù)自己的系統(tǒng)選擇所需的模塊,用鼠標(biāo)將其拖至自己的系統(tǒng)模型中,其中在模糊控制工具箱中有一個模糊控制器模塊(Fuzzy Logic Controller),將這些模塊連接起來構(gòu)成系統(tǒng)結(jié)構(gòu)圖.雙擊各個模塊輸入相應(yīng)的參數(shù),其中模糊控制器的結(jié)構(gòu)變量取aa,連接好各模塊,就構(gòu)成了圖3所示的系統(tǒng)的Simulink描述.系統(tǒng)的模型建好后,用戶可以根據(jù)系統(tǒng)的不同需要,設(shè)置或更改模塊的參數(shù),然后打開仿真菜單設(shè)置仿真參數(shù),啟動仿真過程[3].這里仿真時間設(shè)置為 10 s,采樣周期設(shè)置為 0.01 s。
圖2 模糊控制器的輸入輸出曲線
圖3 模糊控制系統(tǒng)仿真框
上述模糊控制器是在特定的條件下設(shè)計(jì)的,其參數(shù)ke、kde、ku及其控制規(guī)則是根據(jù)經(jīng)驗(yàn)確定的,一般情況下這些參數(shù)不會是最佳值。量化因子ke、kde的大小對控制系統(tǒng)的動態(tài)性能影響很大。ke選得大時,系統(tǒng)的超調(diào)也較大,過渡過程較長,但可以使上升時間變短;kde選擇較大時,系統(tǒng)超調(diào)較小,但系統(tǒng)的響應(yīng)速度變慢,ke、kde兩者之間也相互影響。ku選擇過小會使系統(tǒng)動態(tài)過程變長,過大又會導(dǎo)致系統(tǒng)震蕩加?。?-5]。
S函數(shù)是擴(kuò)展Simulink功能的有力工具,給用戶提供編寫復(fù)雜函數(shù)、創(chuàng)建系統(tǒng)未提供的模塊功能。在此編寫M文件的S函數(shù),對ke、kde、ku進(jìn)行自調(diào)整,優(yōu)化控制效果。另外引入一個Ⅰ型積分環(huán)節(jié)用來消除固有的靜態(tài)誤差,編寫的S函數(shù)如下:
將編寫的S函數(shù)存盤為s1.m文件,按圖4(a)創(chuàng)建子系統(tǒng),并對其封裝,如圖(b)。重新構(gòu)建的模糊控制系統(tǒng)結(jié)構(gòu)框圖如圖5所示。
對上述2種模糊控制系統(tǒng)框圖運(yùn)行仿真后得到圖6所示結(jié)果,很顯然,參數(shù)調(diào)整時的仿真結(jié)果優(yōu)于參數(shù)固定時的結(jié)果。
本文基于Matlab軟件,采用模糊控制的圖形用戶界面(GUI)創(chuàng)建模糊控制器,應(yīng)用Simulink構(gòu)造模糊控制的系統(tǒng)結(jié)構(gòu)框圖進(jìn)行仿真,減少了編程工作量,而且形象直觀、方便快捷。另外編寫了S函數(shù),根據(jù)誤差大小實(shí)現(xiàn)參數(shù)自調(diào)整,通過引入一個Ⅰ型積分環(huán)節(jié)用來消除模糊控制固有的靜態(tài)誤差,同時,改善了模糊控制的控制效果。
[1] 樓順天,胡昌華,張偉.基于Matlab的系統(tǒng)分析與設(shè)計(jì)——模糊系統(tǒng)[M].西安:西安電子科技大學(xué)出版社,2001.
[2] 張葛祥,李娜.Matlab仿真技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社,2003.
[3] 李祖欣.Matlab在模糊控制系統(tǒng)設(shè)計(jì)和仿真的應(yīng)用[J].系統(tǒng)仿真學(xué)報,2003(1):132-134.
[4] 宋哲英,宋雪玲,劉朝英.應(yīng)用Matlab設(shè)計(jì)模糊控制系統(tǒng)[J].計(jì)算機(jī)應(yīng)用研究,2001(2):69 -71.
[5] 侯北平,盧佩,陳鋒軍.Matlab下模糊控制器的設(shè)計(jì)與應(yīng)用[J].測控技術(shù),2002(10):40-42.
(責(zé)任編輯周江川)