基于PLC的單神經(jīng)元PID控制器的設(shè)計(jì)與實(shí)現(xiàn)
點(diǎn)擊:3854
A+ A-
所屬頻道:新聞中心
0 引言
PID控制由千其算法簡(jiǎn)單、容易實(shí)現(xiàn)和魯棒性好等特點(diǎn),被廣泛應(yīng)用于工業(yè)過(guò)程控制并取得了良好的控制效果。但當(dāng)被控對(duì)象數(shù)學(xué)模型復(fù)雜,尤其對(duì)于大滯后、時(shí)變和非線(xiàn)性的復(fù)雜系統(tǒng),常規(guī)PID控制顯得無(wú)能為力,其應(yīng)用受到很大的限制和挑戰(zhàn),因此,需要在傳統(tǒng)的PID控制上加人先進(jìn)的智能控制算法,使得控制效果更為理想。神經(jīng)網(wǎng)絡(luò)具有逼近任意連續(xù)有界非線(xiàn)性函數(shù)的能力,對(duì)于非線(xiàn)性系統(tǒng)和不確定性系統(tǒng),是一種解決問(wèn)題的有效途徑川。本文將神經(jīng)網(wǎng)絡(luò)與常規(guī)PID控制相結(jié)合,發(fā)揮各自的優(yōu)勢(shì),形成神經(jīng)元自適應(yīng)PID控制器,并在PLC中設(shè)計(jì)實(shí)現(xiàn)。與傳統(tǒng)PID相比較,具有響應(yīng)速度快、抗干擾能力強(qiáng)和超調(diào)量小等特點(diǎn)。
1 基于PLC的單神經(jīng)元PID控制系統(tǒng)結(jié)構(gòu)
控制系統(tǒng)采用單神經(jīng)元組成的PID控制器,它具有傳統(tǒng)PID控制器的優(yōu)點(diǎn),也具有神經(jīng)網(wǎng)絡(luò)的并行結(jié)構(gòu)和學(xué)習(xí)記憶功能,并且結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn)I21。
以PLC作為控制器構(gòu)成的單神經(jīng)元PID控制系統(tǒng)如圖1所示。虛線(xiàn)部分為單神經(jīng)元PID控制器。檢測(cè)元件將被控量實(shí)際值Y測(cè)量轉(zhuǎn)換為I-SY電壓信號(hào)或4-20mA電流信號(hào),該模擬信號(hào)接至PLC的AI模塊,進(jìn)行A1D轉(zhuǎn)換。將測(cè)量值Y與給定值;比較,通過(guò)二者的偏差e(t)進(jìn)行單神經(jīng)元PID算法的運(yùn)算得到輸出操作信號(hào)u(t),經(jīng)PLC的AO模塊進(jìn)行D/A轉(zhuǎn)換,用于驅(qū)動(dòng)執(zhí)行機(jī)構(gòu),實(shí)現(xiàn)對(duì)被控對(duì)象的控制。
2 單神經(jīng)元PID控制器算法原理
將偏差的比例、積分和微分的三個(gè)分量作為單神經(jīng)元的輸入量,就構(gòu)成量單神經(jīng)元PID控制器,其結(jié)構(gòu)如圖1虛線(xiàn)部分所示。
圖1中,根據(jù)給定輸人信號(hào)r(k)和實(shí)際輸出信號(hào)y(k),經(jīng)狀態(tài)轉(zhuǎn)換器轉(zhuǎn)換為神經(jīng)元的輸入量x1(k), x2(k), x3(k),即對(duì)應(yīng)積分、比例和微分的三個(gè)分量
比較式(3)和(5)可以看出PID參數(shù)分別為Kp= Kw2 '(k), K1 = Kw1'(k), Kd=Kw3'(k)。故該神經(jīng)元控制器具有PID控制器的特性,它通過(guò)對(duì)加權(quán)系數(shù)的調(diào)整來(lái)實(shí)現(xiàn)自適應(yīng)、自組織功能,從而可以達(dá)到改善控制系統(tǒng)的控制性能的目的。
權(quán)系數(shù)的調(diào)整可以按不同的學(xué)習(xí)規(guī)則實(shí)現(xiàn),在本系統(tǒng)中單神經(jīng)元自適應(yīng)PID控制器采用改進(jìn)的有監(jiān)督的Hebb學(xué)習(xí)規(guī)則。
3 基于SCL的單神經(jīng)元PID控制算法功能塊設(shè)計(jì)
西門(mén)子S7系列PLC在國(guó)內(nèi)工控領(lǐng)域中使用很廣,它的編程軟件STEP7除了支持梯形圖(LAD) ,指令表((STL)和功能塊(FDB)語(yǔ)言編程,還提供結(jié)構(gòu)控制語(yǔ)言SCL (Structure Control Language)編程,SCL非常適合復(fù)雜控制算法的編程。以S7300PLC作為控制器,采用SCL語(yǔ)言編寫(xiě)了功能塊FB3來(lái)實(shí)現(xiàn)單神經(jīng)元PID控制算法。
3.1 變量聲明及初始化
采用SCL編寫(xiě)單神經(jīng)元PID算法時(shí),先要進(jìn)行變量聲明及初始化。變量包括輸人變量、輸出變量及中間變量。
根據(jù)單神經(jīng)元PID控制算法,定義的輸入變量包括設(shè)定值、過(guò)程值、學(xué)習(xí)速率、權(quán)系數(shù)、神經(jīng)元的比例系數(shù)以及單神經(jīng)元PID控制器輸出的最大值最小值,并且在變量聲明時(shí)給出了變量數(shù)據(jù)類(lèi)型和初始值。
輸出變量傳送當(dāng)前輸出值到產(chǎn)生調(diào)用的塊。單神經(jīng)元PID控制算法的輸出操作值即為輸出變量。
3.2 單神經(jīng)元PID控制算法SCL編程
實(shí)現(xiàn)單神經(jīng)元PID控制算法的SCL程序編程步驟如下:
1)計(jì)算偏差e(k);
2)計(jì)算神經(jīng)元輸人x;(k);
3)計(jì)算加權(quán)系數(shù)的調(diào)整值w;(k);
4)對(duì)w;(k)的歸一化處理,計(jì)算可(k),
5)計(jì)算控制器的輸出u(k),并進(jìn)行限幅處理。
對(duì)SCL源程序文件進(jìn)行編譯,編譯成功就生成單神經(jīng)元PID功能塊FB3,并保存在S7程序中的Blocks文件夾中,可以被其他程序調(diào)用,也可以作為通用功能塊被其他用戶(hù)使用。左側(cè)為輸入?yún)?shù),對(duì)應(yīng)輸入變量;右側(cè)為輸出參數(shù),對(duì)應(yīng)輸出變量。在調(diào)用FB3時(shí)要對(duì)相應(yīng)的參數(shù)賦實(shí)參,還需要指定一個(gè)背景數(shù)據(jù)塊。
4 單神經(jīng)元PID控制器應(yīng)用實(shí)例
采用S7300 PLC控制器,以一個(gè)典型的雙容液位過(guò)程為被控對(duì)象,以后一個(gè)容器液位為被控量,用STEP 7編寫(xiě)控制程序調(diào)用功能塊FB3進(jìn)行液位單神經(jīng)元PID調(diào)節(jié)。
液位設(shè)定值為200mm,采用單神經(jīng)元PID控制,設(shè)初始學(xué)習(xí)速率ηp=0.01, η1=0.001,ηD=0.01,增益K=300,加權(quán)系數(shù)初值wKp_1}.015, wKi_10.82, wKd_l}.lb,采樣周期2s。
采用傳統(tǒng)PID控制時(shí)的實(shí)時(shí)響應(yīng)曲線(xiàn)如圖4所示。
由圖3和圖4可知,單神經(jīng)元PID控制器超調(diào)大大減小,穩(wěn)態(tài)性能也得到提高。
5 結(jié)論
將神經(jīng)網(wǎng)絡(luò)與常規(guī)PID調(diào)節(jié)器控制思路相結(jié)合,產(chǎn)生了單神經(jīng)元PID控制器,單神經(jīng)元結(jié)構(gòu)的連接權(quán)值與常規(guī)PID的三個(gè)參數(shù)一一對(duì)應(yīng),可以在線(xiàn)進(jìn)行PID參數(shù)的學(xué)習(xí)。以PLC為控制器,利用SCL編程語(yǔ)言實(shí)現(xiàn)單神經(jīng)元PID算法比較簡(jiǎn)單,而且編寫(xiě)的單神經(jīng)元PID控制功能塊具有通用性。與傳統(tǒng)PID控制器比較,基于PLC的單神經(jīng)元PID控制器具有自學(xué)習(xí)和自適應(yīng)能力超調(diào)量和穩(wěn)態(tài)誤差顯著減小,控制效果良好。
(審核編輯: 智匯張瑜)
分享