新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PLC的模糊神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)方法

基于PLC的模糊神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)方法

作者: 時(shí)間:2016-12-16 來(lái)源:網(wǎng)絡(luò) 收藏
  模糊神經(jīng)網(wǎng)絡(luò)是模糊邏輯控制和神經(jīng)網(wǎng)絡(luò)兩者結(jié)合的產(chǎn)物。這兩者單獨(dú)使用時(shí)存在一定缺陷。模糊邏輯在一定的論域上具有很好的收斂性,并具有模糊量運(yùn)算優(yōu)勢(shì);而神經(jīng)網(wǎng)絡(luò)具有強(qiáng)自學(xué)習(xí)、自適應(yīng)、并行運(yùn)算和精確計(jì)算的能力。因此,這兩者相結(jié)合可大大提高綜合能力。

  plc在工業(yè)控制中應(yīng)用廣泛,因此,功能強(qiáng)大,使用方便。因此,將模糊神經(jīng)網(wǎng)絡(luò)算法應(yīng)用于PLC中具有實(shí)際應(yīng)用價(jià)值,使PLC在機(jī)械、民用等領(lǐng)域廣泛應(yīng)用。這里提出一種基于PLC的模糊神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)方法。

本文引用地址:http://m.butianyuan.cn/article/201612/330832.htm

  1、模糊神經(jīng)網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)

  模糊神經(jīng)網(wǎng)絡(luò)具有很多種結(jié)構(gòu)和算法,對(duì)于不同控制對(duì)象,綜合考慮運(yùn)算速度和精度,模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)也有所不同。由于該實(shí)現(xiàn)方法沒(méi)有實(shí)際控制對(duì)象,為了說(shuō)明在PLC上能實(shí)現(xiàn)模糊神經(jīng)網(wǎng)絡(luò)算法,故選擇模糊神經(jīng)網(wǎng)絡(luò),如圖1所示。假設(shè)其中輸入兩個(gè)變量X1、X2,輸出變量為Y。將每個(gè)輸入因子分為:NM,NS,ZO,PS,PM等5個(gè)模糊狀態(tài)。

  2、模糊神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)步驟

  選擇在線(xiàn)學(xué)習(xí),在線(xiàn)學(xué)習(xí)期間學(xué)習(xí)速度不變。在線(xiàn)學(xué)習(xí)終止條件是性能指標(biāo)E小于等于某一數(shù)值。這個(gè)指標(biāo)值隨控制對(duì)象的改變而改變的。當(dāng)確定控制對(duì)象時(shí),該指標(biāo)值可根據(jù)經(jīng)驗(yàn)確定。但是為了便于說(shuō)明問(wèn)題這里設(shè)置該指標(biāo)值為0.002。具體學(xué)習(xí)步驟是:①θji、σji、ωi及η的初始值在[0,1]之間隨機(jī)選取,η的值為恒定值,根據(jù)經(jīng)驗(yàn)決定。②根據(jù)模糊神經(jīng)算法計(jì)算出比較理想的θji(k+1)、σji(k+1)、ωi(k+1)值。③根據(jù)模糊神經(jīng)算法計(jì)算E,若E≤0.002,迭代結(jié)束。否則,令θji(k+1)、σji(k+1)、ωi(k+1)為初始值并返回②。

  3、模糊神經(jīng)網(wǎng)絡(luò)算法在PLC的應(yīng)用

  3.1模糊神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)階段的實(shí)現(xiàn)

  在學(xué)習(xí)階段實(shí)現(xiàn)過(guò)程中,利用上位機(jī)向下位機(jī)傳輸樣本數(shù)據(jù),具體運(yùn)算過(guò)程是由下位機(jī)實(shí)現(xiàn)。

  3.1.1學(xué)習(xí)階段上位機(jī)程序?qū)崿F(xiàn)

  根據(jù)模糊神經(jīng)網(wǎng)絡(luò)理論知識(shí)可知,樣本值是根據(jù)實(shí)際控制對(duì)象的需要而定的。為了說(shuō)明問(wèn)題,采用含有兩個(gè)輸入值和一個(gè)輸出期望值的較為簡(jiǎn)單的樣本值。學(xué)習(xí)過(guò)程中上位機(jī)程序設(shè)計(jì)流程如圖2所示,具體過(guò)程如下:

  (1)初始化初始化樣本值和為后續(xù)傳輸樣本值做準(zhǔn)備,通過(guò)PLC指令把樣本值寫(xiě)入PLC的儲(chǔ)存地址,再次賦值給發(fā)送區(qū)的數(shù)據(jù)區(qū),并把存儲(chǔ)第一個(gè)樣本值地址分別賦給VD712,VD716,VD720地址指針,這樣可為再次發(fā)送樣本值做準(zhǔn)備。因?yàn)橐l(fā)送的樣本值是不斷變化的,但是發(fā)送區(qū)不能變化,故使用地址指針達(dá)到兩者同步。

  (2)接受請(qǐng)求接收下位機(jī)向上位機(jī)傳送的數(shù)據(jù),該數(shù)據(jù)是告之上位機(jī)是否向下位機(jī)傳送樣本值。

  (3)判斷VB703數(shù)據(jù)請(qǐng)求標(biāo)志位VB703,對(duì)所接收的數(shù)據(jù),判斷其值是否等于16#FF。而16#FF是通信協(xié)議中規(guī)定上位機(jī)給下位機(jī)傳送數(shù)據(jù)的標(biāo)志。如果等于16#FF,則向下位機(jī)傳輸數(shù)據(jù);否則就再次返回上一步。

  (4)發(fā)送數(shù)據(jù)通過(guò)上位機(jī)通信程序向下位機(jī)發(fā)送樣本值,發(fā)送完后就結(jié)束第一次傳送樣本值,啟動(dòng)新接收,等待下位機(jī)請(qǐng)求數(shù)據(jù)傳送信號(hào)。

  3.1.2下位機(jī)程序?qū)崿F(xiàn)

  圖3為下位機(jī)程序流程,從中可以看到學(xué)習(xí)階段下位機(jī)程序的基本構(gòu)想。

  針對(duì)下位機(jī)程序流程這里需要說(shuō)明的是:

  (1)初始化首先隨機(jī)選取[0,1]內(nèi)θji、σji、ωi及η的初始值,通過(guò)PLC指令把這些值賦給存儲(chǔ)單元;其次對(duì)學(xué)習(xí)過(guò)程中用到的常數(shù)賦值,同樣賦給存儲(chǔ)單元;最后,要把請(qǐng)求數(shù)據(jù)傳送的標(biāo)志位VB703置位。

  (2)初始值計(jì)算由于初始化中請(qǐng)求數(shù)據(jù)傳送,首先通過(guò)下位機(jī)的通信程序取得數(shù)據(jù),并且接收樣本數(shù)據(jù)后.復(fù)位VB703,告知上位機(jī)不再傳送數(shù)據(jù)。接著利用初始化已賦值的第一組權(quán)值,計(jì)算第一組樣本值為輸入時(shí)輸出值、輸出值與期望輸出值的差值以及后續(xù)計(jì)算所要用到的數(shù)據(jù)。

  (3)權(quán)值、E(性能指標(biāo))值計(jì)算在第上一步的基礎(chǔ)上計(jì)算權(quán)值和E值。具體算法可參考模糊神經(jīng)網(wǎng)絡(luò)算法.且易于在PLC平臺(tái)上實(shí)現(xiàn)。

  (4)E值判斷把計(jì)算的E值與0.002相比較。如果E≤0.002,說(shuō)明計(jì)算的函數(shù)變量、權(quán)值已達(dá)到預(yù)期目標(biāo),學(xué)習(xí)過(guò)程結(jié)束。結(jié)束的同時(shí)觸發(fā)外接設(shè)備的開(kāi)關(guān)量,利用外接設(shè)備讀取這些計(jì)算結(jié)果。相反,則需繼續(xù)學(xué)習(xí)過(guò)程。并將不滿(mǎn)足性能指標(biāo)第3步計(jì)算出的函數(shù)變量、權(quán)值賦給下一步重新計(jì)算y值所需的地址內(nèi),把請(qǐng)求數(shù)據(jù)標(biāo)志位VB703置位.并向上位機(jī)發(fā)送,從而為新y值的計(jì)算做好準(zhǔn)備。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉