陳毅維 徐淑萍 懂齊宇
摘要:為了便于研究變論域模糊pid控制算法,總結(jié)了3種可以在matlab/simulink下實(shí)現(xiàn)該算法的仿真方法。仿真結(jié)果表明,在對(duì)步進(jìn)電機(jī)的控制中,模糊pid算法對(duì)常規(guī)pid算法性能改善有限,而變論域模糊pid算法能顯著改善常規(guī)pid算法的性能?;趕-funciton的仿真方法更具靈活性,但要求一定的matlab基礎(chǔ);基于函數(shù)模型的仿真方法實(shí)現(xiàn)簡(jiǎn)單,容易上手;基于模糊規(guī)則的仿真方法曲線整體趨勢(shì)可控,但是細(xì)節(jié)上不確定。
關(guān)鍵詞:變論域;模糊pid;仿真方法
變論域思想[1]是在不改變模糊規(guī)則的前提下,使輸入、輸出的基本論域按照一定準(zhǔn)則,隨著誤差的變小而收縮、隨著誤差的變大而擴(kuò)展,隨之帶動(dòng)定義在基本論域上的模糊劃分的變化。它一般利用伸縮因子對(duì)輸入、輸出變量的值進(jìn)行縮放的形式,達(dá)到等效于變論域效果的目的。能夠有效的解決模糊控制器在設(shè)計(jì)與控制時(shí)出現(xiàn)的給定控制值附近的周期性波動(dòng)、抗干擾性差等問(wèn)題,并消除控制死區(qū),以促使控制效果更好。變論域思想的實(shí)現(xiàn)[2],在幾何上表現(xiàn)為:論域縮放導(dǎo)致的隸屬函數(shù)的伸縮;在代數(shù)上表現(xiàn)為:自變量值的伸縮變化導(dǎo)致因變量的值的變化;在控制上表現(xiàn)為:論域的伸縮導(dǎo)致規(guī)則密度的改變。
要用matlab/simulink仿真,通常有三種方法,但是文獻(xiàn)中,一般只介紹基于函數(shù)模型、基于模糊規(guī)則的伸縮因子[1-5],且沒(méi)有具體仿真方法,這給剛剛接觸該算法的人帶來(lái)了不必要的麻煩與開(kāi)銷(xiāo),本文的目的在于使剛接觸到該算法的人能快速熟悉其仿真。
1變論域模糊控制原理
設(shè)輸入變量xi(i=1,2,…,n)的論域?yàn)閄i=[-E,E](i=1,2,…,n),輸出變量y的論域?yàn)閅=[-U,U],Xi與Y的模糊劃分為{Aij}、{Bj}(1≤j≤m), Xij與Yj是模糊集Aij和Bj的中心,xk與yk+1分別是k時(shí)刻的輸入、輸出變量,ai(xi)與β(y)為輸入和輸出論域的伸縮因子(k=0時(shí),α=β=1),模糊推理規(guī)則為
IF x1 is A1j and x2 is A2j and … and xn is Anj,
Then y is Bj, j =1, …, m ,其中
在控制過(guò)程中,輸入論域Xki、輸出論域Yk分別為:
(1)
(2)
為了便于討論,采用單值模糊器,其模糊規(guī)則可以表示為:
(3)
其中 是模糊集Aij上的隸屬度函數(shù)。
在k時(shí)刻,對(duì)于輸入xk,有
(4)
(5)
由式(1),(4)得,
于是有,
(6)
故根據(jù)式(3),(5),(6),可得變論域模糊控制算法規(guī)則,描述如下:
在k時(shí)刻,對(duì)于輸入 ,其控制器輸入為
(7)
由(7)式可知,只需要使用k=0時(shí)刻的隸屬度函數(shù) 、初始輸出論域Y0上的模糊集Bj的中心,以及響應(yīng)的伸縮因子,便可以計(jì)算得到輸出yk+1。
圖1是變論域示意圖,看圖中虛線及一實(shí)一虛兩點(diǎn),不難發(fā)現(xiàn),縮小論域意味著要放大輸入、輸出量的值,膨脹論域意味著要縮小輸入、輸出量的值。也就是說(shuō),如果伸縮因子α、β滿(mǎn)足條件0<α、β<1時(shí),VUOn(n=1,...,6)(變論域操作,見(jiàn)圖8-10)做除法運(yùn)算能放大值縮小論域,做乘法運(yùn)算縮小值膨脹論域。
2 設(shè)計(jì)與仿真方法
2.1 變論域模糊pid控制算法的結(jié)構(gòu)
如圖2,變論域模糊pid控制算法(VUFPID)是在常規(guī)pid控制算法的基礎(chǔ)上增加了模糊控制器、論域控制器兩部分構(gòu)成的。模糊控制器的輸入為e(誤差)和ec(誤差變化率),它經(jīng)過(guò)模糊化、模糊推導(dǎo)、解模糊等過(guò)程,輸出ΔKp、ΔKi、ΔKd中的一個(gè)到三個(gè),作為常規(guī)pid控制算法的對(duì)應(yīng)系數(shù)Kp、Ki和Kd的增量,如此便是模糊自適應(yīng)pid控制算法。論域控制器通常的輸入也是e和ec,它的輸出是αe、αec、βp、βi、βd中的一個(gè)至五個(gè);α、β系數(shù)分別作為模糊控制器的輸入(e、ec)、輸出(ΔKp、ΔKi、ΔKd)項(xiàng)的伸縮因子。
2.2 變論域模糊pid在matlab中的仿真方法
simulink是matlab中的可視化仿真工具,廣泛應(yīng)用于線性系統(tǒng)、非線性系統(tǒng)、數(shù)字控制以及數(shù)字信號(hào)處理的建模和仿真中。在simulink中,要實(shí)現(xiàn)變論域模糊pid算法的仿真,通常有3種做法。
2.2.1基于s-function的變論域模糊pid算法仿真方法
基于s-function方法的仿真圖如圖3所示,這種方法的使用龍祖強(qiáng)[6]等人已經(jīng)做了較為詳細(xì)的介紹,并且取得了不錯(cuò)的結(jié)果,在這里不再贅述。
圖4是以下兩種方法的仿真框架,圖中的子系統(tǒng)(subsystem)將被各自的仿真圖替換。
2.2.2基于函數(shù)模型的變論域模糊pid算法仿真方法
論域控制器是實(shí)現(xiàn)變論域控制的核心機(jī)構(gòu),而基于函數(shù)模型的變論域控制算法是指:輸出與輸入的伸縮因子滿(mǎn)足于一定的函數(shù)關(guān)系。
為了便于仿真,這里選取伸縮因子α、β為:
如圖5所示,模糊控制器(Fuzzy Logic Controller)是2輸入(e、ec),3輸出(ΔKp、ΔKi、ΔKd)系統(tǒng),5個(gè)端口基本論域均為[-3,3],采用三角形隸屬度函數(shù),論域上的模糊集為{NB,NM,NS,ZO,PS,PM,PB},表示負(fù)大、負(fù)中、負(fù)小、零、正小、正中、正大7種狀態(tài)。隸屬度函數(shù)見(jiàn)圖6,模糊規(guī)則見(jiàn)表1,輸入、輸出變論域控制器(IVUC和OVUC)見(jiàn)圖8、9,系數(shù)λ=0.3,τ=0.8,ε=0.001,E=3;其中VUO1-2用來(lái)實(shí)現(xiàn)論域的放大與縮小。
2.2.3基于模糊規(guī)則的變論域模糊pid算法仿真方法
如圖10所示,模糊控制器(Fuzzy Logic Controller)的隸屬度函數(shù)與模糊規(guī)則和基于函數(shù)的變論域方法中一樣;變論域控制器(Fuzzy Logic Controller1)是一個(gè)2輸入(e、ec),2輸出(α、β)系統(tǒng),通過(guò)VUO1-6可以控制論域的縮放。其輸入的基本論域與隸屬度函數(shù)與模糊控制器的輸入一樣,見(jiàn)圖6;但是,其輸出基本論域?yàn)閇0,1],定義在其本論域上的模糊集為{ZO,SS,SB,MS,MB,BS,BB},表示零、小小、小大、中小、中大、大小、大大7個(gè)狀態(tài)。其隸屬度函數(shù)見(jiàn)圖7,模糊規(guī)則見(jiàn)表2。
3仿真結(jié)果
步進(jìn)電機(jī)的傳遞函數(shù):
(8)
式中:Tm——最大靜轉(zhuǎn)矩,Zr——轉(zhuǎn)子齒數(shù),J——轉(zhuǎn)動(dòng)慣量,B——阻尼系數(shù)。
取J=0.48(kg.m2),B=0.8(N.m.s/rad),Tm=0.9(N.M),Zr=50,代入(8)式,得到步進(jìn)電機(jī)的傳遞函數(shù)G1(s):
(9)
仿真時(shí),取Kp=15.15,Ki=78.5,Kd=3.83,Ke=1/1,Kec=1/6,Ku=1/3,結(jié)果如圖11所示,其中vufpid1是基于模糊規(guī)則的變論域方法,vufpid2是基于函數(shù)模型的變論域方法,它們都取得了比較好的控制效果,可以看出都改善了曲線的震蕩幅度,加快了曲線的收斂速度;而模糊pid算法在這個(gè)系統(tǒng)中對(duì)pid算法的控制效果的提升相對(duì)而言要小得多。
4結(jié)論
基于s-funciton的仿真方法相交其他兩種方法來(lái)說(shuō),具有更高的靈活性,其內(nèi)部實(shí)現(xiàn)可以采用基于其它兩種方法的伸縮因子,但是要求具備一定的matlab基礎(chǔ);基于函數(shù)模型的仿真方法實(shí)現(xiàn)起來(lái)最為簡(jiǎn)單,其伸縮因子受控于所選擇的函數(shù)模型,容易控制,且上手快;基于模糊規(guī)則的仿真方法,其伸縮因子取決于模糊規(guī)則的優(yōu)劣,要提升其性能就要大量的時(shí)間實(shí)踐改進(jìn),整體趨勢(shì)是可控的,但是細(xì)節(jié)上是不確定的。
參考文獻(xiàn):
[1]李洪興.變論域自適應(yīng)模糊控制器[J].中國(guó)科學(xué):技術(shù)科學(xué), 1999,25(1):32-42.
[2]張衛(wèi)東.變論域模糊控制器改進(jìn)設(shè)計(jì)及其仿真[D].哈爾濱工業(yè)大學(xué),2012.
[3]朱巖,郭軍平.變論域自適應(yīng)模糊PID方法的研究與仿真[J].空軍工程大學(xué)學(xué)報(bào):自然科學(xué)版,2005,6(5):11-13.
[4]裘智峰,黃燈等.基于變論域插值模糊PID控制系統(tǒng)的研究與應(yīng)用[J].儀器儀表學(xué)報(bào),2008,(11):2435-2440.
[5]禹牛云,朱穎合.變論域自適應(yīng)模糊PID控制器的設(shè)計(jì)與仿真[J].中國(guó)水運(yùn)(下半月),2010,10(1):63-65.
[6]龍祖強(qiáng),許岳兵等.MATLAB環(huán)境下變論域模糊控制算法的仿真方法[J].衡陽(yáng)師范學(xué)院學(xué)報(bào),2009,(6):34-36.
作者簡(jiǎn)介:陳毅維(1993-),男,西安工業(yè)大學(xué),碩士研究生,主要從嵌入式方面的研究.
基金資助:陜西省教育廳資助項(xiàng)目(17JK0381)