基于某BP神經(jīng)網(wǎng)絡(luò)地自整定PID控制仿真_第1頁
基于某BP神經(jīng)網(wǎng)絡(luò)地自整定PID控制仿真_第2頁
基于某BP神經(jīng)網(wǎng)絡(luò)地自整定PID控制仿真_第3頁
基于某BP神經(jīng)網(wǎng)絡(luò)地自整定PID控制仿真_第4頁
基于某BP神經(jīng)網(wǎng)絡(luò)地自整定PID控制仿真_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于BP神經(jīng)網(wǎng)絡(luò)的自整定PID控制仿真實(shí)驗(yàn)六 基于BP神經(jīng)網(wǎng)絡(luò)的自整定PID控制仿真一、目的     1.熟悉神經(jīng)網(wǎng)絡(luò)的特征、結(jié)構(gòu)以及學(xué)習(xí)算法     2.掌握神經(jīng)網(wǎng)絡(luò)自整定PID的工作原理    3.了解神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)對(duì)控制效果的影響     4.掌握用MATLAB實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)控制系統(tǒng)仿真的方法。 二、設(shè)備及條件     計(jì)算機(jī)系統(tǒng)    

2、 Matlab仿真軟件 三、問題背景     在工業(yè)控制中,PID控制是工業(yè)控制中最常用的方法。這是因?yàn)镻ID控制器結(jié)構(gòu)簡單、實(shí)現(xiàn)簡單,控制效果良好,已得到廣泛應(yīng)用。但是,PID具有一定的局限性:被控制對(duì)象參數(shù)隨時(shí)間變化時(shí),控制器的參數(shù)難以自動(dòng)調(diào)整以適應(yīng)外界環(huán)境的變化。為了使控制器具有較好的自適應(yīng)性,實(shí)現(xiàn)控制器參數(shù)的自動(dòng)調(diào)整,可以采用神經(jīng)網(wǎng)絡(luò)控制的方法。利用人工神經(jīng)網(wǎng)絡(luò)的自學(xué)習(xí)這一特性,并結(jié)合傳統(tǒng)的PID控制理論,構(gòu)造神經(jīng)網(wǎng)絡(luò)PID控制器,實(shí)現(xiàn)控制器參數(shù)的自動(dòng)調(diào)整。     基于BP神經(jīng)網(wǎng)絡(luò)的PID控制器

3、結(jié)構(gòu)如圖1所示。控制器由兩部分組成:一是常規(guī)PID控制器,用以直接對(duì)對(duì)象進(jìn)行閉環(huán)控制,且三個(gè)參數(shù)在線整定;二是神經(jīng)網(wǎng)絡(luò)NN,根據(jù)系統(tǒng)的運(yùn)行狀態(tài),學(xué)習(xí)調(diào)整權(quán)系數(shù),從而調(diào)整PID參數(shù),達(dá)到某種性能指標(biāo)的最優(yōu)化。 圖1 基于神經(jīng)網(wǎng)絡(luò)的PID控制器結(jié)構(gòu)四、基于BP神經(jīng)網(wǎng)絡(luò)的PID設(shè)計(jì)1設(shè)計(jì)原理   神經(jīng)網(wǎng)絡(luò)采用結(jié)構(gòu)為4-5-3型的BP網(wǎng)絡(luò),如圖2。圖2 BP網(wǎng)絡(luò)結(jié)構(gòu)其中,輸出層激勵(lì)函數(shù)取非負(fù)的Sigmoid函數(shù),隱層取正負(fù)對(duì)稱的Sigmoid函數(shù)。被控對(duì)象為一時(shí)變非線性對(duì)象,數(shù)學(xué)模型可表示為:        &#

4、160; 式中,系數(shù)a(k)是慢時(shí)變的,。為保證控制器有一定的動(dòng)態(tài)跟蹤能力,選定神經(jīng)網(wǎng)絡(luò)的輸入層輸入為網(wǎng)絡(luò)的學(xué)習(xí)過程由正向和反向傳播兩部分組成。如果輸出層不能得到期望輸出,那么轉(zhuǎn)入反向傳播過程,通過修改各層神經(jīng)元的權(quán)值,使得輸出誤差信號(hào)最小。      輸出層節(jié)點(diǎn)分別對(duì)應(yīng)三個(gè)可調(diào)參數(shù)     取性能指標(biāo)函數(shù)為: 設(shè)其中 若PID控制器采用采用增量式數(shù)字PID控制算法,則有 2.網(wǎng)絡(luò)權(quán)系數(shù)調(diào)整網(wǎng)絡(luò)權(quán)系數(shù)的修正采用梯度下降法。根據(jù)相關(guān)數(shù)學(xué)知識(shí),針對(duì)指定因變量的梯度代表了使因變量增速最大的自變量變化方向,故而其反方向代表

5、了因變量下降最快的自變量變化方向,如果我們選取性能指標(biāo)為因變量,網(wǎng)絡(luò)各層權(quán)系數(shù)為自變量,則對(duì)應(yīng)梯度的負(fù)方向就是權(quán)系數(shù)調(diào)整的最佳方向,因此,實(shí)際上構(gòu)成了一個(gè)有目標(biāo)的搜索算法,對(duì)最終結(jié)果的收斂性提供了有力的保證。對(duì)應(yīng)于本題采用的4-5-3型的BP網(wǎng)絡(luò),梯度負(fù)方向的計(jì)算:(1) 隱含層-輸出層:其中:為指標(biāo)函數(shù) 為隱含層-輸出層權(quán)系數(shù)矩陣元素 為被控對(duì)象輸出 為PID控制器輸出 為輸出層輸出為輸出層輸入根據(jù)所選用神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)模型,易知:其中: 為隱含層輸出,為輸出層激勵(lì)函數(shù),為其偏導(dǎo)數(shù)。另外,直接的數(shù)學(xué)表達(dá)不容易獲得,但我們可以使用它的符號(hào)函數(shù)來近似,仍可以保證參數(shù)修正方向的正確性,而由此造成其模

6、的誤差只影響參數(shù)調(diào)整的速度,它可以通過調(diào)整學(xué)習(xí)速率來得以補(bǔ)償。故而最終有:(2) 輸入層-隱含層:其中: ,為輸出層激勵(lì)函數(shù),為其偏導(dǎo)數(shù)。故而最終有:(3) 網(wǎng)絡(luò)權(quán)值修正量梯度的負(fù)方向給出了網(wǎng)絡(luò)權(quán)值修正的方向,乘以系數(shù),即為權(quán)值修正量。其中代表了算法每次在梯度負(fù)方向搜索的步長,稱為網(wǎng)絡(luò)的學(xué)習(xí)速率,另外,如果考慮上次權(quán)值對(duì)本次權(quán)值變化的影響,需要加入動(dòng)量(平滑)因子 ,此時(shí)新的權(quán)值為:3.程序流程 步驟1:設(shè)定初始狀態(tài)和參數(shù)初始值,包括隨機(jī)產(chǎn)生初始BP神經(jīng)網(wǎng)絡(luò)權(quán)值系數(shù),設(shè)定初始輸入輸出值為零,設(shè)定學(xué)習(xí)速率和慣性系數(shù),計(jì)數(shù)器設(shè)為k=1,并設(shè)定計(jì)數(shù)上限等。步驟2:計(jì)算產(chǎn)生BP神經(jīng)網(wǎng)絡(luò)隱含層輸入。本程

7、序?yàn)椴蓸荧@得e(k),并結(jié)合儲(chǔ)存的e(k-1),e(k-2),及常數(shù)1作為隱含層輸入。前兩次的e(k-1),e(k-2)并未真實(shí)產(chǎn)生直接取0.步驟3:前向傳播計(jì)算。包括:(1)BP神經(jīng)網(wǎng)絡(luò)前向傳播計(jì)算,得到輸出層輸出,, .;(2)增量式PID控制器計(jì)算控制器輸出;(3)被控對(duì)象模型計(jì)算輸出值步驟4:反向傳播計(jì)算。包括:(1) 修正輸出層的權(quán)系數(shù);(2) 修正隱含層的權(quán)系數(shù);步驟5:參數(shù)更新步驟6:如果k達(dá)到設(shè)定的次數(shù)上限,則結(jié)束;否則,k=k+1,并返回步驟2.總的程序流程圖如下:圖3 程序流程圖五、仿真程序及分析學(xué)習(xí)速率取0.25,平滑因子取0.05。經(jīng)過多次運(yùn)行,最終得到一個(gè)較好的結(jié)果,

8、并將此結(jié)果的穩(wěn)態(tài)權(quán)重作為初始權(quán)重。在調(diào)試中發(fā)現(xiàn),即使稍微改變學(xué)習(xí)速率和平滑因子,還是需要經(jīng)過多次運(yùn)行,才能得到一個(gè)較好的結(jié)果。如果用得到的較好結(jié)果的穩(wěn)態(tài)權(quán)重作為初始權(quán)值,學(xué)習(xí)速率和平滑因子的取值可以更加隨意。(1)輸入為階躍信號(hào)(2)輸入為正弦信號(hào)程序代碼:%基于BP神經(jīng)網(wǎng)絡(luò)的自整定PID控制仿真clear all;close all;xite = 0.25; %學(xué)習(xí)速率alfa = 0.05; %平滑因子S=2; %選擇輸入信號(hào)的類型(1:階躍信號(hào);2:正弦信號(hào))IN = 4; %輸入層、隱含層、輸出層節(jié)點(diǎn)數(shù)H = 5;OUT= 3;if S=1 wi= -0.4129 -0.2553 -0

9、.7973 -0.1004 -0.2771 0.2676 0.4234 0.3484 -0.6914 0.2740 -0.1590 -0.8642 -0.3915 0.1627 -0.6956 -0.7668 -0.4133 0.2296 -0.5542 -0.2671;% wi = 0.5*rands(H,IN); %權(quán)值系數(shù)初始值 wi_1 = wi; wi_2 = wi; wo= 0.5661 0.2004 0.9433 0.1832 0.5971 0.4185 0.2750 0.6734 0.9408 0.4597 0.4348 0.0402 0.9523 0.8143 0.2773;

10、% wo = 0.5*rands(OUT,H); wo_1 = wo; wo_2 = wo;else wi= -0.4257 0.3975 -0.2219 0.0629 -0.3548 -0.4002 -0.3585 -0.2581 -0.4162 -0.4559 -0.1764 -0.5627 -0.0390 0.0586 -0.3188 -0.3945 -0.3042 0.2744 0.0130 -0.3788;% wi = 0.5*rands(H,IN); %權(quán)值系數(shù)初始值 wi_1 = wi; wi_2 = wi; wo= 0.2279 0.5382 -0.1358 0.6441 0.

11、0699 0.1584 0.2123 0.1166 0.4402 0.6627 0.7242 0.6211 0.6540 0.3450 -0.1486;% wo = 0.5*rands(OUT,H); wo_1 = wo; wo_2 = wo;endu_1 = 0; y_1 = 0;Oh = zeros(H,1);error_2 = 0;error_1 = 0;ts = 0.001;for k = 1:6000 time(k) = k*ts; if S = 1 rin(k) = 1.0; else rin(k) = sin(2*pi*k*ts); end %被控對(duì)象為非線性模型 a(k) =

12、1.2*(1-0.8*exp(-0.1*k); yout(k) = a(k)*y_1/(1+y_12)+u_1; error(k) = rin(k) - yout(k); xi = error_2 error_1 error(k) 1; %輸入層輸入 epid = error(k)-error_1;error(k);error(k)-2*error_1+error_2; %計(jì)算隱含層輸出 I = xi*wi' for j = 1:H Oh(j) = (exp(I(j)-exp(-I(j)/(exp(I(j)+exp(-I(j); end %計(jì)算輸出層輸出 K = wo*Oh; for

13、l = 1:OUT O(l) = exp(K(l)/(exp(K(l)+exp(-K(l); end %得到kp,ki,kd的值 kp(k) = O(1); ki(k) = O(2); kd(k) = O(3); Kpid = kp(k) ki(k) kd(k); %計(jì)算控制器的輸出 du(k)= Kpid * epid; u(k) = u_1 + du(k); if u(k) < -10 u(k) = -10; end if u(k) > 10 u(k) = 10; end dyu(k) = sign(yout(k)-y_1)/(u(k)-u_1+0.); %輸出層權(quán)系數(shù)修正 f

14、or l = 1:OUT dK(l) = 2/(exp(K(l)+exp(-K(l)2; end for l = 1:OUT delta3(l) = error(k)*dyu(k)*epid(l)*dK(l); end for l = 1:OUT for j = 1:H d_wo = xite*delta3(l)*Oh(j)+alfa*(wo_1-wo_2); end end wo = wo_1+d_wo+alfa*(wo_1-wo_2); %隱含層權(quán)系數(shù)修正 for j = 1:H dO(j) = 4/(exp(I(j)+exp(-I(j)2; end sigma = delta3*wo;

15、for j = 1:H delta2(j) = dO(j)*sigma(j); end d_wi = xite * delta2' * xi; wi = wi_1 + d_wi + alfa * (wi_1-wi_2); %參數(shù)更新 u_1 = u(k); y_1 = yout(k); wo_2 = wo_1; wo_1 = wo; wi_2 = wi_1; wi_1 = wi; error_2 = error_1; error_1 = error(k);endfigure(1);plot(time,rin,'r',time,yout,'b');xlabel('time(s)');ylabel('rin,yout');figure(2);plot(time,error,'r');xlabel('time(s)');ylabel('error');figure(3);plot(time,u,'r');xlabel('time(s)');ylabel('u');figure(4);subplot(311);plot

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論