通用模糊控制器在PLC上的實現(xiàn)
通用模糊控制器在PLC上的實現(xiàn)
現(xiàn)代控制系統(tǒng)中的模糊控制能方便地解決工業(yè)領(lǐng)域中常見的非線性、時變、大滯后、強耦合、變結(jié)構(gòu)、結(jié)束條件苛刻等復(fù)雜問題??删幊炭刂破饕云涓呖煽啃?、編程方便、耐惡劣環(huán)境、功能強大等特性很好地解決了工業(yè)控制領(lǐng)域普遍關(guān)心的可靠、安全、靈活、方便、經(jīng)濟等問題,這兩者的結(jié)合,可在實際工程中廣泛應(yīng)用。該文研究了通用模糊控制器在PLC上實現(xiàn)的幾種算法,用離線計算、在線查表插值的方法實現(xiàn)模糊控制。
為了滿足不同執(zhí)行機構(gòu)對控制量形式的要求,采用增量式/位置式模糊控制輸出的算法,在增量式模糊控制輸出時,可實現(xiàn)手動與自動之間的無擾動切換。為了消除由于頻繁動作引起的振蕩,采用了帶死區(qū)的模糊控制算法。此外,一般的在線查表模糊控制器中存在著模糊量化取整環(huán)節(jié),即當(dāng)誤差E與誤差變化率EC不等于模糊語言值(例如NB,NM,NS,ZO,PS,PM或PB)時,E和EC取整,這時從查詢表中查到的控制量U只能近似地反映模糊控制規(guī)則,因此產(chǎn)生誤差。由于量化誤差的存在,不僅使模糊控制器的輸出U不能準(zhǔn)確地反映其控制規(guī)則,而且會造成調(diào)節(jié)死區(qū),在穩(wěn)態(tài)階段,使系統(tǒng)產(chǎn)生穩(wěn)態(tài)誤差,甚至?xí)a(chǎn)生顫振現(xiàn)象。文中提出的二元三點插值法可從根本上消除量化誤差和調(diào)節(jié)死區(qū),克服由于量化誤差而引起的穩(wěn)態(tài)誤差和穩(wěn)態(tài)顫振現(xiàn)象。圖1—1給出了通用模糊控制器的基本組成結(jié)構(gòu)。
二、通用模糊控制器在PLC上的設(shè)計實現(xiàn)
圖2—1 增量式輸出模糊控制系統(tǒng)框圖
確定各模糊變量的隸屬函數(shù)類型;精確輸入、輸出變量的模糊化;制定模糊控制規(guī)則;確定模糊推理算法;模糊輸出變量的去模糊化;按所需的格式保存計算結(jié)果生成查詢表。
實際應(yīng)用中廣泛采用的二維模糊控制器多選用受控變量和輸入給定的偏差E和偏差變化率EC作為輸入變量,因為它已能夠比較嚴(yán)格的反映受控過程中輸入變量的動態(tài)特性,可滿足大部分工程需要,同時也比三維模糊控制器計算簡單,模糊控制規(guī)則容易理解。對于多變量模糊控制器可利用模糊控制器本身的解耦特點,通過模糊關(guān)系方程分解,在控制器結(jié)構(gòu)上實現(xiàn)解耦,即將一個多輸入多輸出(MI—MO)的模糊控制器,分解成若干個多輸入單輸出(MI—SO)的模糊控制器,這樣就可采用單變量模糊控制器的設(shè)計方法。該文研究了二維通用模糊控制器的設(shè)計。為了便于由用戶在線控制時決定是增量式輸出還是位置式輸出,輸出變量取調(diào)節(jié)量的變化U,這也有利于通過對調(diào)節(jié)量變化U的調(diào)整,使系統(tǒng)偏差減少。
由于模糊控制器的控制品質(zhì)受控制器輸出方式的影響,對不同的受控對象提供位置式輸出和增量式輸出這兩種選擇方式。位置式輸出算法的缺點是輸出的u(k)對應(yīng)的是執(zhí)行機構(gòu)的實際位置,如果計算機出現(xiàn)故障,會引起由于u(k)的大幅度變化而導(dǎo)致執(zhí)行機構(gòu)位置的大幅度變化。如果采用增量式算法時,計算機輸出的是控制增量Δu(k)對應(yīng)的本次執(zhí)行機構(gòu)位置(例如閥門開度)的增量,圖2—1為增量式輸出模糊控制系統(tǒng)框圖,閥門實際位置的控制量即控制量增量的積累是利用算式u(k)=u(k-1)+Δu(k)通過執(zhí)行軟件來完成。
模糊控制算法的實現(xiàn)是通過模糊推理所得,但該結(jié)果是一個模糊矢量,不能直接用于控制被控對象,必須轉(zhuǎn)換為一個執(zhí)行機構(gòu)可以接受的精確量。將所有可能輸入狀態(tài)的非模糊輸出以同樣方法計算后形成如表2—1所示的查詢表,該表以數(shù)據(jù)模塊形式存入計算機程序中,當(dāng)一組輸入給定時,可由該表查出相應(yīng)的輸出值。該方法將復(fù)雜的模糊計算融進查詢表中,在實際使用時節(jié)省計算時間,并使控制變得簡單明了。
2、在線部分設(shè)計
計算機離線運算得到的模糊控制器的總控制表經(jīng)過系統(tǒng)在線反復(fù)調(diào)試、修改,最后以數(shù)據(jù)模塊形式存入PLC系統(tǒng)內(nèi)存中,由一個查詢該表的子程序管理。查詢子程序的流程如圖2—2所示,圖中fielde、fieldec及fieldu分別表示誤差E、誤差變化率EC和控制量U的論域范圍。由流程圖可知,控制器的調(diào)節(jié)方式有手動和自動兩種,輸出方式有增量式和位置式輸出兩種。如果輸出方式選擇為增量式輸出,則可以實現(xiàn)手動調(diào)節(jié)方式到自動調(diào)節(jié)方式的無沖擊切換。
(1)二元三點插值
給定矩型域上n×m個結(jié)點(xi,yj)的函數(shù)值zij=(xi,yj),其中i=0,1,…,n-1;j=0,1,…,m-1,在兩個方向上的坐標(biāo)分別為x0<x1<…<xn-1,y0<y1<…<ym-1,利用二元三點插值公式可計算出插值(u,v)處的函數(shù)近似值w=z(u,v)。表2—1用函數(shù)形式表示為Uij=f(Ei,ECj),其中i=1,2,…,k1;j=1,2,…,k2。設(shè)某個采樣周期的輸入為E、EC,則需求出U=f(E,EC)的值。
采用二元三點插值法運算相當(dāng)于E與EC在其論域內(nèi)的分檔數(shù)趨于無窮大,這樣不僅能夠滿足表2—1所給出的查詢表制定的控制規(guī)則,而且還在控制規(guī)則表內(nèi)的相鄰分檔之間以線性插值方式補充了無窮多個新的、經(jīng)過細(xì)分的控制規(guī)則,更加充實完善了原來的控制規(guī)則,并從根本上消除了量化誤差和調(diào)節(jié)死區(qū),克服了由于量化誤差而引起的穩(wěn)態(tài)誤差和穩(wěn)態(tài)顫振現(xiàn)象,顯著改善了系統(tǒng)的性能,尤其是穩(wěn)態(tài)性能。
(2)帶死區(qū)的模糊控制算法
為了避免控制動作過于頻繁,消除由于頻繁動作引起的震蕩,帶死區(qū)的控制算法是一個好的解決辦法。
上式中,死區(qū)e0是一個可調(diào)節(jié)的參數(shù),其具體數(shù)值可根據(jù)實際控制對象由實驗確定。若e0值太小,使控制動作過于頻繁,達不到穩(wěn)定被控對象的目的;若e0值太大,則系統(tǒng)將產(chǎn)生較大的滯后。
帶死區(qū)的模糊控制器的系統(tǒng)結(jié)構(gòu)如圖2—3所示,此控制系統(tǒng)實際上是一個非線性系統(tǒng)。即當(dāng)|e(k)|≤|e0|時,模糊控制器輸出為零;當(dāng)|e(k)|>|e0|時,模糊控制器有適當(dāng)?shù)妮敵觥?/p>
三、應(yīng)用實例
電機調(diào)速控制系統(tǒng)見圖3—1,模糊控制器的輸入變量為實際轉(zhuǎn)速與轉(zhuǎn)速給定值之間的差值e及其變化率ec,輸出變量為電機的電壓變化量u。圖3—2為電機調(diào)試輸出結(jié)果,其橫坐標(biāo)為時間軸,縱坐標(biāo)為轉(zhuǎn)速。當(dāng)設(shè)定轉(zhuǎn)速為2 000r/s時,電機能很快穩(wěn)定運行于2 000r/s;當(dāng)設(shè)定轉(zhuǎn)速下降到1 000r/s時,轉(zhuǎn)速又很快下降到1 000r/s穩(wěn)定運行。