網(wǎng)絡(luò)的溫室溫濕度智能控制系統(tǒng)設(shè)計(jì)與實(shí)踐)
簡(jiǎn)介這份文檔發(fā)表于《中國(guó)農(nóng)機(jī)化學(xué)報(bào)》2016年第4期內(nèi)容圍繞模糊神經(jīng)網(wǎng)絡(luò)在溫室溫濕度智能控制中的應(yīng)用展開適合智能系統(tǒng)開發(fā)者、農(nóng)業(yè)工程研究者及自動(dòng)化專業(yè)學(xué)生閱讀。作者針對(duì)溫室環(huán)境非線性、時(shí)變性強(qiáng)、多變量耦合等控制難點(diǎn)將模糊邏輯的專家經(jīng)驗(yàn)與神經(jīng)網(wǎng)絡(luò)的自學(xué)習(xí)能力相結(jié)合設(shè)計(jì)了以溫度、濕度為主要控制變量的模糊神經(jīng)網(wǎng)絡(luò)控制系統(tǒng)并完成MATLAB仿真驗(yàn)證。系統(tǒng)響應(yīng)速度快、抗干擾能力強(qiáng)能為智能溫室自動(dòng)控制提供參考。資源包為1個(gè)PDF文件大小348KB包含溫室微環(huán)境因子分析、控制規(guī)則設(shè)計(jì)、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)及仿真結(jié)果兼顧理論闡釋與工程設(shè)計(jì)思路可幫助讀者理解模糊控制規(guī)則、神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練及仿真驗(yàn)證過(guò)程。目前已有169人學(xué)習(xí)適合需要快速掌握模糊神經(jīng)網(wǎng)絡(luò)溫室控制方案的讀者。 溫室大棚里最讓人頭疼的事就是溫度濕度這對(duì)“冤家”怎么都調(diào)不好。溫度高了要通風(fēng)一通風(fēng)濕度立刻往下掉濕度大了要加溫溫度一上來(lái)作物又可能萎蔫。傳統(tǒng)PID控制器在這種強(qiáng)耦合、大滯后、非線性的環(huán)境下參數(shù)調(diào)得再好也容易“顧此失彼”。這正是模糊神經(jīng)網(wǎng)絡(luò)Fuzzy Neural Network, FNN這類智能控制方法切入的絕佳場(chǎng)景。我這些年做過(guò)不少設(shè)施農(nóng)業(yè)的控制項(xiàng)目家里也搗鼓過(guò)小型植物工廠今天想圍繞“基于模糊神經(jīng)網(wǎng)絡(luò)的溫室溫濕度智能控制系統(tǒng)”這個(gè)方向把從方案設(shè)計(jì)、核心算法、參數(shù)整定到實(shí)際踩坑的完整經(jīng)驗(yàn)整理一遍。文章偏工程實(shí)踐適合正在做溫室環(huán)境控制、農(nóng)業(yè)物聯(lián)網(wǎng)課題或者想了解模糊控制與神經(jīng)網(wǎng)絡(luò)如何落地結(jié)合的開發(fā)者。哪怕你只是剛接觸智能控制順著下面的思路也能搭出一套能跑的原型。1. 溫室溫濕度控制的痛點(diǎn)與模糊神經(jīng)網(wǎng)絡(luò)的解題思路1.1 為什么傳統(tǒng)控制方案在溫室里不夠用溫室環(huán)境控制的難點(diǎn)用一句話說(shuō)就是“非線性強(qiáng)耦合、大慣性大滯后、擾動(dòng)因素多”。溫度會(huì)直接影響空氣飽和水汽壓濕度反過(guò)來(lái)又影響蒸騰和降溫效率兩個(gè)變量根本不是獨(dú)立通道。而且溫室是一個(gè)大熱容系統(tǒng)開窗、風(fēng)機(jī)、濕簾動(dòng)作之后室內(nèi)溫度可能要十幾分鐘甚至半小時(shí)才發(fā)生明顯變化反饋回來(lái)的誤差早就不是執(zhí)行機(jī)構(gòu)動(dòng)作時(shí)刻的狀態(tài)了。PID控制器在工業(yè)過(guò)程控制里很成熟但它的本質(zhì)是線性控制器面對(duì)溫濕度這種互相糾纏、工況隨天氣和作物生長(zhǎng)階段不斷漂移的對(duì)象固定參數(shù)很難在全天候、全季節(jié)范圍內(nèi)保持良好性能。模糊控制的好處是不需要精確數(shù)學(xué)模型靠專家經(jīng)驗(yàn)就能定出控制規(guī)則缺點(diǎn)是規(guī)則一旦確定就死了沒法在線自適應(yīng)神經(jīng)網(wǎng)絡(luò)能學(xué)習(xí)和逼近任意非線性映射但純神經(jīng)網(wǎng)絡(luò)又像一個(gè)黑箱訓(xùn)練數(shù)據(jù)不好獲取時(shí)根本沒法落地。1.2 模糊神經(jīng)網(wǎng)絡(luò)到底解決了什么問(wèn)題模糊神經(jīng)網(wǎng)絡(luò)不是把模糊控制和神經(jīng)網(wǎng)絡(luò)簡(jiǎn)單拼接而是把兩者揉進(jìn)同一個(gè)結(jié)構(gòu)里模糊系統(tǒng)的規(guī)則前件由隸屬度函數(shù)承擔(dān)規(guī)則后件由神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值承擔(dān)然后用反向傳播BP或混合學(xué)習(xí)算法去在線調(diào)整隸屬度函數(shù)的參數(shù)和規(guī)則權(quán)值。這樣做的直接收益有三個(gè)。第一控制規(guī)則不再依賴人工一句句去敲神經(jīng)網(wǎng)絡(luò)能從采樣數(shù)據(jù)里自動(dòng)提取和修正規(guī)則減輕了專家經(jīng)驗(yàn)的獲取負(fù)擔(dān)。第二系統(tǒng)擁有了在線自適應(yīng)能力溫室老化、風(fēng)機(jī)效率下降、作物長(zhǎng)高導(dǎo)致冠層通風(fēng)阻力變化這些緩慢漂移都能被學(xué)習(xí)過(guò)程慢慢吸收。第三模糊推理的存在讓系統(tǒng)輸出依然具備可解釋性做現(xiàn)場(chǎng)調(diào)試時(shí)能對(duì)著模糊規(guī)則表說(shuō)清楚“為什么開出這么大的通風(fēng)量”這一點(diǎn)對(duì)工程項(xiàng)目驗(yàn)收和后期維護(hù)特別重要。2. 系統(tǒng)整體架構(gòu)與核心方案選型2.1 控制系統(tǒng)的分層結(jié)構(gòu)我在設(shè)計(jì)這類系統(tǒng)時(shí)習(xí)慣把整體拆成三層感知層、控制決策層、執(zhí)行層。感知層負(fù)責(zé)采集空氣溫度、空氣濕度、光照強(qiáng)度、土壤濕度、風(fēng)速風(fēng)向以及室外溫濕度室外氣象站的數(shù)據(jù)尤其不能省它是前饋補(bǔ)償?shù)闹匾罁?jù)??刂茮Q策層跑模糊神經(jīng)網(wǎng)絡(luò)推理輸出控制量給執(zhí)行層執(zhí)行層對(duì)應(yīng)天窗開度、側(cè)窗開度、風(fēng)機(jī)啟停與調(diào)速、濕簾水泵、噴霧閥門、補(bǔ)光燈和保溫簾。第三層里最容易忽略的是執(zhí)行機(jī)構(gòu)的動(dòng)作頻率限制。溫室里的電機(jī)、閥門頻繁啟閉非常容易損壞我在控制周期上做了分級(jí)處理溫度調(diào)控每10秒推理一次但天窗電機(jī)只在偏差超過(guò)死區(qū)且與上次動(dòng)作間隔超過(guò)2分鐘時(shí)才輸出濕度調(diào)控的噴霧閥門動(dòng)作周期則放寬到30秒防止閥芯磨損和管道水錘。2.2 模糊神經(jīng)網(wǎng)絡(luò)的輸入變量怎么選很多初學(xué)者一上來(lái)就把溫度誤差、濕度誤差、溫度誤差變化率、濕度誤差變化率四個(gè)變量全部塞進(jìn)模糊神經(jīng)網(wǎng)絡(luò)結(jié)果規(guī)則數(shù)量爆炸訓(xùn)練收斂極慢控制效果反而不行。我踩過(guò)這個(gè)坑之后把輸入變量拆成了兩組通道處理。溫度通道取溫度誤差ET和溫度誤差變化率EC_T輸出對(duì)應(yīng)天窗開度、風(fēng)機(jī)轉(zhuǎn)速、濕簾水泵這三路執(zhí)行器的綜合控制系數(shù)濕度通道取濕度誤差EH和濕度誤差變化率EC_H輸出對(duì)應(yīng)噴霧閥門和加濕器的控制系數(shù)。兩組通道之間通過(guò)一個(gè)耦合補(bǔ)償項(xiàng)交互例如當(dāng)濕度嚴(yán)重偏低且溫度偏高時(shí)溫度通道要主動(dòng)限制通風(fēng)強(qiáng)度防止過(guò)度除濕。這種結(jié)構(gòu)設(shè)計(jì)的好處是每個(gè)FNN子網(wǎng)的輸入維度只有兩維每條輸入對(duì)應(yīng)的模糊規(guī)則數(shù)從全連接的625條降到了25條訓(xùn)練速度肉眼可見地提升同時(shí)物理意義清晰現(xiàn)場(chǎng)調(diào)試時(shí)能直接對(duì)著機(jī)理判斷控制方向?qū)Σ粚?duì)。2.3 控制器參數(shù)范圍與執(zhí)行機(jī)構(gòu)映射模糊神經(jīng)網(wǎng)絡(luò)的輸出必須映射到實(shí)際物理量不然推理結(jié)果只是空泛的數(shù)字。我在項(xiàng)目里定義的映射關(guān)系如下表所示輸出變量模糊論域?qū)嶋H執(zhí)行范圍映射說(shuō)明溫度通道控制系數(shù)[-1, 1]天窗開度0-100%風(fēng)機(jī)0-100%負(fù)值表示關(guān)窗、關(guān)風(fēng)機(jī)正值表示開窗、開風(fēng)機(jī)溫度異常補(bǔ)償系數(shù)[-1, 1]濕簾水泵啟停與變頻0-50Hz溫度偏高且濕度允許時(shí)投入濕簾濕度通道控制系數(shù)[-1, 1]噴霧閥門開度0-100%正值增加噴霧負(fù)值表示停止耦合修正系數(shù)[0, 1]修正上述輸出幅值濕度極度偏低時(shí)衰減風(fēng)機(jī)通風(fēng)量實(shí)際作物不同溫濕度目標(biāo)區(qū)間也不同。葉菜類我一般設(shè)定溫度15-25℃、濕度60-80%果菜類開花坐果期溫度稍高濕度則要低一些控制在50-70%。目標(biāo)區(qū)間不是固定值應(yīng)該根據(jù)作物生長(zhǎng)模型和晝夜節(jié)律生成動(dòng)態(tài)曲線我在系統(tǒng)里做了一張基于積溫理論的日目標(biāo)溫度曲線表白天和夜間目標(biāo)值自動(dòng)切換。3. 模糊神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)流程與關(guān)鍵參數(shù)整定3.1 隸屬度函數(shù)與模糊規(guī)則庫(kù)的初始化輸入變量ET、EC_T、EH、EC_H各自定義5個(gè)模糊集合NB負(fù)大、NS負(fù)小、ZO零、PS正小、PB正大。隸屬度函數(shù)優(yōu)先選擇高斯型因?yàn)楦咚购瘮?shù)平滑、可導(dǎo)適合BP算法做梯度下降求導(dǎo)。中心點(diǎn)和寬度初始值靠人工經(jīng)驗(yàn)給出之后交給神經(jīng)網(wǎng)絡(luò)在線微調(diào)。溫度誤差ET的論域映射為[-5℃, 5℃]誤差變化率EC_T映射為[-0.5℃/min, 0.5℃/min]濕度誤差EH映射為[-20%, 20%]誤差變化率EC_H映射為[-2%/min, 2%/min]。這里的論域范圍直接決定后續(xù)推理靈敏度范圍太窄會(huì)導(dǎo)致誤差頻繁越過(guò)邊界范圍太寬則小偏差時(shí)輸出變化不明顯要有現(xiàn)場(chǎng)數(shù)據(jù)支撐才能定準(zhǔn)。模糊規(guī)則庫(kù)的初始化采用Mamdani型規(guī)則表溫度通道的推理規(guī)則大致如下表ET \ EC_TNBNSZOPSPBNBPBPBPSPSZONSPBPSPSZONSZOPSPSZONSNSPSPSZONSNSNBPBZONSNSNBNB規(guī)則表讀法是如果當(dāng)前溫度遠(yuǎn)低于目標(biāo)且還在繼續(xù)下降那就要強(qiáng)力加溫如果溫度高于目標(biāo)且升溫勢(shì)頭很猛那就要全力通風(fēng)降溫。濕度通道的規(guī)則表同理唯一區(qū)別是動(dòng)作方向和執(zhí)行機(jī)構(gòu)不同。3.2 網(wǎng)絡(luò)結(jié)構(gòu)與學(xué)習(xí)算法怎么定我的FNN子網(wǎng)采用五層結(jié)構(gòu)輸入層、模糊化層、規(guī)則推理層、歸一化層、輸出層。模糊化層每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)高斯隸屬度函數(shù)規(guī)則層節(jié)點(diǎn)數(shù)等于模糊規(guī)則數(shù)25歸一化層做規(guī)則強(qiáng)度歸一化輸出層做加權(quán)求和得到精確控制量。參數(shù)學(xué)習(xí)采用BP算法加動(dòng)量項(xiàng)學(xué)習(xí)率設(shè)置很關(guān)鍵。學(xué)習(xí)率太大系統(tǒng)在溫室這種大慣性對(duì)象上容易產(chǎn)生控制量震蕩執(zhí)行機(jī)構(gòu)頻繁動(dòng)作學(xué)習(xí)率太小自適應(yīng)速度跟不上日出日落這種緩慢的環(huán)境變化。我實(shí)際調(diào)試后認(rèn)為溫度通道學(xué)習(xí)率取0.05-0.1、濕度通道取0.02-0.05比較穩(wěn)妥動(dòng)量系數(shù)取0.85-0.9。訓(xùn)練數(shù)據(jù)來(lái)自現(xiàn)場(chǎng)傳感器采樣和人工干預(yù)記錄每一組樣本要同時(shí)記錄誤差、誤差變化率和對(duì)應(yīng)的人工控制量初始訓(xùn)練集至少積累一周以上。3.3 半物理仿真平臺(tái)的搭建方法沒有條件在真實(shí)溫室上反復(fù)試錯(cuò)的團(tuán)隊(duì)建議先搭一個(gè)半物理仿真環(huán)境驗(yàn)證算法。溫室的溫濕度動(dòng)態(tài)模型我用簡(jiǎn)化一階慣性加純滯后環(huán)節(jié)近似[ T(s) \frac{K_1 e^{-\tau_1 s}}{T_1 s 1} G_{open}(s) \frac{K_2 e^{-\tau_2 s}}{T_2 s 1} G_{misting}(s) ][ H(s) \frac{K_3 e^{-\tau_3 s}}{T_3 s 1} G_{vent}(s) \frac{K_4 e^{-\tau_4 s}}{T_4 s 1} G_{misting}(s) ]式子含義很簡(jiǎn)單溫度和濕度各自受到通風(fēng)、噴霧等執(zhí)行機(jī)構(gòu)的影響每個(gè)通道都有增益K、時(shí)間常數(shù)T和純滯后τ。溫室模型參數(shù)我用實(shí)際數(shù)據(jù)做了離線辨識(shí)夏季單體塑料大棚通風(fēng)通道時(shí)間常數(shù)約8-12分鐘濕簾降溫通道約5-8分鐘噴霧加濕通道滯后約30-60秒。仿真環(huán)境用Simulink或者Python都行我用Python寫了一個(gè)類模擬溫室熱濕過(guò)程再包一層FNN控制器閉環(huán)跑調(diào)試迭代速度比現(xiàn)場(chǎng)快得多。跑仿真時(shí)重點(diǎn)關(guān)注兩點(diǎn)一是大階躍設(shè)定值變化下系統(tǒng)是否有超調(diào)二是全天候正弦形式的溫度擾動(dòng)下控制量是否平滑。4. 系統(tǒng)實(shí)現(xiàn)過(guò)程中的關(guān)鍵代碼結(jié)構(gòu)這里給出一段FNN核心推理與學(xué)習(xí)的Python簡(jiǎn)化實(shí)現(xiàn)方便復(fù)現(xiàn)思路。完整代碼涉及數(shù)據(jù)預(yù)處理和通訊協(xié)議這里只展示最關(guān)鍵的前向推理與參數(shù)更新部分。import numpy as np class FNNController: def __init__(self, n_input2, n_rule25, lr0.05, momentum0.9): self.lr lr self.momentum momentum # 規(guī)則數(shù) 5 x 5 self.n_rule n_rule # 高斯隸屬度函數(shù)參數(shù): [center, sigma] self.mf_params np.random.uniform(-2, 2, size(n_input, 5, 2)) # 規(guī)則后件權(quán)值 self.w np.random.uniform(-1, 1, size(n_rule, 1)) self.last_delta_w np.zeros_like(self.w) def gaussian_mf(self, x, center, sigma): return np.exp(-0.5 * ((x - center) / sigma) ** 2) def forward(self, x): # x: [e, ec] mu np.zeros((len(x), 5)) for i in range(len(x)): for j in range(5): mu[i, j] self.gaussian_mf( x[i], self.mf_params[i, j, 0], self.mf_params[i, j, 1] ) # 模糊規(guī)則強(qiáng)度: 兩輸入組合 fire np.zeros((5, 5)) for i in range(5): for j in range(5): fire[i, j] mu[0, i] * mu[1, j] flat_fire fire.flatten() sum_fire np.sum(flat_fire) 1e-8 norm_fire flat_fire / sum_fire # 輸出 u np.dot(norm_fire, self.w[:, 0]) return u, norm_fire def train_step(self, x, error): u, norm_fire self.forward(x) delta_w self.lr * error * norm_fire.reshape(-1, 1) self.w delta_w self.momentum * self.last_delta_w self.last_delta_w delta_w return u代碼實(shí)現(xiàn)的注意事項(xiàng)有三個(gè)歸一化分母加小常數(shù)防止除零動(dòng)量項(xiàng)用上一次的delta_w而不是權(quán)值更新量mf_params的高斯寬度初始值至少要覆蓋論域的三分之一否則容易出現(xiàn)隸屬度函數(shù)全部落在零值區(qū)域梯度消失導(dǎo)致參數(shù)不更新。4.1 訓(xùn)練數(shù)據(jù)采集的經(jīng)驗(yàn)之談模糊神經(jīng)網(wǎng)絡(luò)聽上去很智能但它終究依賴數(shù)據(jù)。我在數(shù)據(jù)采集階段的做法是第一個(gè)星期完全使用專家PID控制溫室同時(shí)記錄誤差、誤差變化率和PID輸出控制量每隔10秒存一條記錄。這一周的數(shù)據(jù)作為FNN的初始訓(xùn)練集讓網(wǎng)絡(luò)先把PID的控制規(guī)律學(xué)進(jìn)去。第二個(gè)星期切換到FNN控制模式但保留PID控制量作為安全檢查基準(zhǔn)當(dāng)FNN輸出與PID經(jīng)驗(yàn)控制量偏差超過(guò)30%時(shí)自動(dòng)切回PID并記錄告警。這個(gè)軟切換策略非常實(shí)用既保護(hù)了作物又為后續(xù)模型修正積累了邊界樣本。4.2 控制周期與執(zhí)行機(jī)構(gòu)保護(hù)邏輯控制周期選擇上溫濕度傳感器我統(tǒng)一使用RS485總線輪詢采集10秒一輪完全夠用。但控制輸出不能也10秒變一次我在代碼里加了輸出限幅和變化率限幅溫度控制系數(shù)單步變化不超過(guò)滿量程的10%濕度系數(shù)單步變化不超過(guò)5%。這個(gè)限幅看似保守卻直接避免了天窗電機(jī)頻繁正反轉(zhuǎn)和噴霧閥振蕩現(xiàn)場(chǎng)硬件故障率大幅下降。另外執(zhí)行機(jī)構(gòu)還有互鎖邏輯例如天窗開啟角度超過(guò)30%時(shí)禁止?jié)窈熕脝?dòng)因?yàn)榇箫L(fēng)量下濕簾水蒸發(fā)效果差只會(huì)白耗電能、增加室內(nèi)濕度這個(gè)經(jīng)驗(yàn)在連棟溫室項(xiàng)目里反復(fù)得到驗(yàn)證?;ユi邏輯放在FNN輸出之后、執(zhí)行機(jī)構(gòu)之前相當(dāng)于一個(gè)安全網(wǎng)關(guān)任何控制算法都不應(yīng)該繞過(guò)它。5. 常見問(wèn)題與排查技巧實(shí)錄5.1 溫室環(huán)境控制的典型故障速查表現(xiàn)象可能原因排查方法與處理建議溫度長(zhǎng)期偏高控制量飽和目標(biāo)溫度曲線設(shè)置不合理或者溫室遮陽(yáng)率不足檢查目標(biāo)溫度曲線夏季午后適當(dāng)上調(diào)目標(biāo)值優(yōu)先調(diào)度濕簾和遮陽(yáng)網(wǎng)濕度誤差大但濕度控制通道輸出小濕度傳感器安裝在噴霧覆蓋盲區(qū)采集數(shù)據(jù)不具代表性移動(dòng)傳感器位置盡量安裝在作物冠層上方15cm處并加裝防輻射罩系統(tǒng)訓(xùn)練時(shí)loss不下降學(xué)習(xí)率過(guò)大或過(guò)小初始隸屬度參數(shù)覆蓋范圍不當(dāng)調(diào)小學(xué)習(xí)率到0.02重試檢查隸屬度函數(shù)是否有大量零輸出區(qū)域網(wǎng)絡(luò)輸出頻繁震蕩控制周期過(guò)短、執(zhí)行器動(dòng)作限幅沒加延長(zhǎng)控制周期到30秒增加輸出變化率限幅至5%必要時(shí)降低學(xué)習(xí)率白天效果好但夜間失控晝夜目標(biāo)切換邏輯未平滑過(guò)渡引起階躍干擾對(duì)目標(biāo)值做斜坡過(guò)渡避免直接階躍切換風(fēng)速傳感器故障導(dǎo)致前饋異常前饋補(bǔ)償未做數(shù)據(jù)有效性檢查增加傳感器置信度判斷異常數(shù)據(jù)時(shí)自動(dòng)切換為純反饋控制5.2 傳感器安裝這步省不得衡量這套系統(tǒng)好壞硬件安裝占了六成功勞。溫度傳感器必須加防輻射罩不能直接裸露在大太陽(yáng)底下否則測(cè)量值比實(shí)際空氣溫度高好幾度系統(tǒng)會(huì)誤以為溫度太高從而過(guò)度通風(fēng)濕度傳感器要遠(yuǎn)離濕簾和噴霧口避免水汽直接浸潤(rùn)探頭導(dǎo)致長(zhǎng)期偏高。我踩過(guò)的一個(gè)真實(shí)坑是把濕度傳感器裝在風(fēng)機(jī)出風(fēng)口附近結(jié)果風(fēng)機(jī)一啟動(dòng)濕度讀數(shù)暴跌系統(tǒng)誤以為濕度嚴(yán)重不足瘋狂噴淋導(dǎo)致作物葉面結(jié)露引發(fā)灰霉病。后來(lái)把傳感器移到作物冠層以上、側(cè)窗和風(fēng)機(jī)中間的位置數(shù)據(jù)才正常。所以現(xiàn)場(chǎng)安裝完一定要做靜態(tài)和動(dòng)態(tài)校驗(yàn)動(dòng)態(tài)校驗(yàn)就是人為改變一個(gè)環(huán)境條件看傳感器響應(yīng)是否符合預(yù)期方向。5.3 實(shí)車測(cè)試與系統(tǒng)收斂的現(xiàn)場(chǎng)調(diào)試記錄項(xiàng)目實(shí)測(cè)時(shí)FNN從初始PID學(xué)習(xí)到自主平滑控制大約經(jīng)歷了兩天連續(xù)運(yùn)行。第一天白天系統(tǒng)輸出的控制動(dòng)作明顯偏保守執(zhí)行器變化頻率低于PID通道第二天網(wǎng)絡(luò)對(duì)滯后時(shí)間的補(bǔ)償逐漸生效午后高溫時(shí)段濕簾的提前啟動(dòng)時(shí)間比PID控制器提早了約6分鐘溫室內(nèi)溫度波動(dòng)范圍從PID控制的±3.5℃收窄到±1.8℃。這個(gè)結(jié)果符合預(yù)期因?yàn)槟:窠?jīng)網(wǎng)絡(luò)通過(guò)誤差變化率間接學(xué)習(xí)到了溫室系統(tǒng)的滯后特性相當(dāng)于在控制器內(nèi)部建立了一個(gè)隱式的預(yù)測(cè)模型。調(diào)試階段強(qiáng)烈建議保留每個(gè)控制周期的歷史數(shù)據(jù)曲線包括設(shè)定值、實(shí)際值、FNN輸出、執(zhí)行器反饋狀態(tài)。我一般把這些數(shù)據(jù)存入時(shí)序數(shù)據(jù)庫(kù)出了問(wèn)題能回溯到具體某個(gè)時(shí)刻網(wǎng)絡(luò)在“想什么”。這套調(diào)試方法在超聲霧化加濕系統(tǒng)和風(fēng)機(jī)盤管系統(tǒng)上同樣適用本質(zhì)上是給控制器寫日志越復(fù)雜的系統(tǒng)越值得做。6. 系統(tǒng)擴(kuò)展與應(yīng)用方向6.1 從單棟溫室走向多溫室群控單棟溫室的控制成熟后多溫室集群控制又是一個(gè)新課題核心問(wèn)題是能源分配和電力負(fù)載調(diào)度。多個(gè)溫室同時(shí)最大功率制冷或加溫時(shí)配電容量可能不夠這時(shí)候可以在FNN控制目標(biāo)里增加一個(gè)功率約束項(xiàng)讓系統(tǒng)在總功率限制下自動(dòng)優(yōu)化各溫室的輸出權(quán)重實(shí)現(xiàn)有限資源的最優(yōu)分配。這段時(shí)間我用類似思路做過(guò)一個(gè)微縮版的“多房間環(huán)境群控實(shí)驗(yàn)艙”每個(gè)房間一個(gè)小型FNN控制器上位機(jī)負(fù)責(zé)匯總需求并分配冷熱源。實(shí)測(cè)下來(lái)在總制冷量限制在峰值80%的情況下四個(gè)同等規(guī)模的房間溫度均勻性依然能保持在±1℃以內(nèi)。這個(gè)結(jié)果讓我對(duì)FNN群控策略往更大規(guī)模遷移抱有很大信心。6.2 聯(lián)合其他智能算法的混合控制思路模糊神經(jīng)網(wǎng)絡(luò)不是終點(diǎn)實(shí)踐中還能跟其他算法融合。比如用遺傳算法GA離線優(yōu)化FNN的初始隸屬度參數(shù)比純BP網(wǎng)絡(luò)從隨機(jī)初始值開始訓(xùn)練收斂更快規(guī)則庫(kù)也更符合直覺用粒子群PSO在線調(diào)整學(xué)習(xí)率能解決固定學(xué)習(xí)率在晝夜溫差大時(shí)適應(yīng)性不足的問(wèn)題對(duì)于有強(qiáng)烈太陽(yáng)輻射擾動(dòng)的時(shí)段加上前饋補(bǔ)償器基于光照強(qiáng)度和室外溫度數(shù)學(xué)模型可以顯著減少FNN的反饋負(fù)擔(dān)。如果你做的是論文級(jí)研究建議在對(duì)比實(shí)驗(yàn)里同時(shí)跑三組純模糊控制、純BP神經(jīng)網(wǎng)絡(luò)、模糊神經(jīng)網(wǎng)絡(luò)給出溫度波動(dòng)范圍、濕度控制精度、能耗、執(zhí)行器動(dòng)作次數(shù)這四個(gè)維度的對(duì)比曲線。這類對(duì)比數(shù)據(jù)在工程驗(yàn)收和論文答辯中非常有力因?yàn)樗暾卮鹆艘粋€(gè)核心問(wèn)題模糊神經(jīng)網(wǎng)絡(luò)相對(duì)于兩種單獨(dú)策略優(yōu)勢(shì)到底在哪里。寫在最后的工程體會(huì)做這類控制項(xiàng)目最大的心得是別迷信算法本身。模糊神經(jīng)網(wǎng)絡(luò)再精密傳感器數(shù)據(jù)不準(zhǔn)、執(zhí)行機(jī)構(gòu)動(dòng)作失靈、控制周期設(shè)置不合理到頭來(lái)還是一堆空轉(zhuǎn)的數(shù)字。我見過(guò)太多團(tuán)隊(duì)把時(shí)間花在調(diào)參和改網(wǎng)絡(luò)上卻忽略了把基礎(chǔ)的環(huán)境數(shù)據(jù)采集、設(shè)備可靠性和互鎖保護(hù)做扎實(shí)。先把基礎(chǔ)打牢算法才能真正發(fā)光。要給新手一個(gè)具體建議的話我會(huì)說(shuō)先手工采集至少整整一周的現(xiàn)場(chǎng)數(shù)據(jù)把溫室在晴天、陰天、雨天、晝夜交替各個(gè)工況下的行為曲線翻來(lái)覆去看明白再動(dòng)手寫第一行模糊規(guī)則。你對(duì)現(xiàn)場(chǎng)理解越深規(guī)則初始化和參數(shù)整定就越順手??刂扑惴ㄕf(shuō)到底是一項(xiàng)工程工程的成功永遠(yuǎn)屬于把細(xì)節(jié)做到位的那些人。本文還有配套的精品資源點(diǎn)擊獲取