黃子揚祝奕煒 沈信宇 慕京生 焦 俊*
(1安徽農業大學信息與計算機學院,安徽合肥 230036;2蒙城縣京徽蒙農業科技發展有限公司,安徽蒙城 233524)
水質安全事關人民群眾健康、社會經濟發展和自然環境保護。近年來,隨著我國工業水平的高速發展,水資源短缺、水環境污染、水生態受損三大問題日益凸顯,同時地表水成分逐漸趨于復雜且化學成分增多[1]。社會對水質安全的要求越來越高,因而設計一個穩定的實時預測分析監測系統很有必要[2]。
近年來,Spring+Spring MVC+Mybatis(SSM)框架憑借其優越的性能和較高的開發效率,在一眾Web應用開發框架中脫穎而出。該框架結構簡單,實現較為輕松,具有高復用、低耦合、易開發的優勢[3]。本系統使用Java語言,以SSM框架為主,結合Vue前端設計框架設計出了輕量級的巢湖水質在線監測系統。本系統使用Modbus與TCP/IP通信協議進行數據傳輸,數據傳輸至系統主機后存于H2數據庫。系統主機通過經典算法對數據進行分析處理后,在可視化網頁平臺實時更新展示,實現了水質數據在線監測的目標。
水質數據監測系統(圖1)中,可采集多種水質數據的智能傳感器布設在監測區域,其負責將數據發送到周邊的監測站點;監測站點轉換數據格式后轉發給負責數據預測分析和信息輸出的主機;主機采用SSM框架和H2數據庫[4-5]。
圖2是SSM框架結構圖。在SSM框架中,系統的3 層架構為表現層(包括 model、controller、view)、業務層、持久層。不同層分別負責相應的功能,提高了系統的運行效率,降低了開發難度[6]。
1.1.1 SSM框架的表現層。該層要通過調用業務層的接口來控制業務流程,其作用是使用JavaWeb結合Vue等相關技術將邏輯底層傳來的數據顯示給用戶??刂频呐渲靡彩窃赟pring的配置文件中進行,針對具體的業務流程設有不同的控制器。同時進行抽樣歸納,重復利用子單元流程模塊,可以使程序結構變得清晰。這一邏輯層依賴底層的功能接口實現數據的傳遞和通信。
通信功能承擔著系統中傳輸數據和指令的任務。智能傳感器布設在巢湖中,并定時以Modbus協議格式發送收集到的水質數據到監測站點。5個監測站點均勻布設在巢湖周邊,其作為系統的通信中樞起到了過渡的作用。智能傳感器將數據直接以Modbus格式送至監測站點,監測站點立即將數據通過預寫的轉換程序轉為TCP/IP格式的水質數據再送至系統主機的數據庫中[7-8]。
1.1.2 SSM框架的業務層。該層具有承上啟下的中間過渡作用,運用 Servlet、Tomcat、Web Server、Filter、Listener等技術棧向上控制傳遞SSM框架中表現層的請求。站點業務層的職能是管理協調好各個水質監測站點的相關數據和業務,該層通過調用一個或多個持久層中的功能點來獲取數據。該層在處理好各站點數據和業務后將結果傳輸到上層程序邏輯處理層,進而完成對水質數據業務和基站功能及接口的整合工作。封裝該層的業務邏輯有利于通用業務邏輯的獨立性和重復利用性,程序非常簡潔。
2.作者及作者單位:只列出主要參加者,一般不超過6人。應標明全部作者的工作單位全稱、所在地及郵政編碼。
1.1.3 SSM框架的持久層。該層是容器的最底層,實現邏輯結構的最底層與數據庫互相作用。其夾在業務邏輯與數據庫資源中間,是MVC模式中的Model層。MyBatis使用XML或注解用于配置和原始映射,提供映射標簽和XML標簽。各個數據對應Pojos和監測水站的接口依此被映射成數據庫中的記錄。這些記錄和上層的站點數據處理層產生交互,完成水質數據的存儲、增刪改查等一系列相關基本操作。
為了消除數據存取等因素對系統數據穩定性造成的影響,本系統選擇關系型數據庫H2。結合MyBatis框架的優勢建立了數據庫,包括設備表、數據表、權限表、用戶表、信息表等5張表單。在系統中對應的表單名稱如表1所示。

表1 系統數據庫對應表單
本系統最主要、最基礎的功能是通信功能、異常報警功能、數據預測功能和信息輸出功能(圖3)。
前一階段的工作重點集中在配變重過載、低電壓預警模型構建方面,目前還有較大提升空間,包括在基礎數據源拓展、預警模型優化、業務互動能力等方面還需進一步完善,應用范圍還有待進一步推廣,同時在臺區停電事件分析、臺區三相不平衡分析方面的研究工作目前尚處于空白狀態。下階段的重點工作包括預警模型深化研究、臺區停電事件分析及治理研究、臺區三相不平衡分析及治理研究、配變運行環境監測及預警機制研究等內容:
隨著全球能源的逐漸枯竭、大氣污染的不斷加劇以及氣溫上升帶來的危害加重,越來越多的人意識到節能減排是社會發展的方向。因此,電動汽車應運而生,并迅速得以廣泛應用[1]。電動汽車作為電力負荷,其充電行為具有間歇性和隨機性。在電動汽車充電過程中,由于充電器本身包含各種非線性特性的電力電子元件,會向電力系統注入諧波,當諧波超過一定范圍,將會給電網帶來諧波污染,從而對電網的穩定性產生影響,同時也將縮短電池的壽命,因此對電動汽車充電過程中的諧波進行分析和檢測具有重要意義[2-4]。
2.1.1 智能傳感器與監測站點的通信過程。圖4是該過程的基本流程。
Modbus協議定義了一個與基礎通信層無關的簡單數據協議數據單元PDU(protocol description unit),特定總線或網絡上的Modbus協議映射能夠在應用數據單元ADU(application data unit)上引入一些附加域。對于不同物理介質上實現的Modbus協議,其PDU單元是統一的,而附加地址域及差錯校驗域需要遵循不同總線或網絡的特定要求和格式[9]。通用幀格式如圖5所示。
數據區根據不同的功能碼而存在差異。本系統的數據區由多種水質數據綜合在一起,大小未知且占用數據幀中n個字節。
功能碼是通信傳送的第二個字節。Modbus通訊協議定義功能號為1~127。表2是常用功能碼及其作用。功能碼生成后從節點發往監測站點,指示監測站點需要執行的動作,監測站點執行后返回響應中帶有相同功能碼表明已執行該操作。

表2 通信過程中的常用功能碼及其作用
附加地址域是信息幀的第一字節(8位),定義為0~255。通過這個字節,擁有唯一預設地址的節點在發送給對應監測站點信息時可表明該報文來源。因為監測站點和節點是一對一的,所以該報文在轉為TCP/IP格式并被主機接受后,主機可以迅速了解該水質數據所對應的水域。
差錯校驗是用校驗碼判別接收的信息是否出錯。因為水中的干擾因素較多,相關信息在傳輸過程中可能會發生細微的變化,所以通過差錯校驗碼可以保證監測站點或節點在數據傳送過程中識別出錯誤信息,并且使其失效,以增加系統的安全性和效率。差錯校驗采用CRC-16校驗方法,圖6是計算CRC碼的步驟。
對于食鹽的質量安全管控,《辦法》提出了以下規定:一是完善食鹽監管體制。增加規定國務院食品藥品監管部門和縣級以上地方人民政府確定的部門負責食鹽質量安全監督管理的職責。二是增加食鹽企業及其董事、監事、高級管理人員的信用管理,建立健全信用信息記錄和公示制度的規定。三是食鹽定點生產企業、定點批發企業和非食用鹽生產企業要施行產購銷記錄制度,嚴防工業用鹽等非食用鹽流入食鹽市場。四是進一步完善法律責任,加大對違法行為處罰力度。例如,若非食鹽定點企業生產食鹽,違法生產經營的食鹽貨值金額不足1萬元的,可以處5萬元以下的罰款;貨值金額1萬元以上的,并處貨值金額5倍以上10倍以下的罰款。
目前,Modbus有3種常見的數據幀格式,本文選用最主流且適用于現場設備的RTU數據幀格式作為傳輸格式。以下是監測站點收到Modbus-RTU報文的核心代碼:
//這邊使用的是Netty進行命令下發
這時,他發現就在十幾米處,出現了日本鬼子!戰士們紛紛舉槍射擊。經過一瞬的猶豫,他也開始對著日本鬼子瘋狂射擊。
運算能力包括計算能力和幾何運算能力。計算能力僅指數據計算能力,包括加、減、乘、除、乘方、開方。幾何運算能力包括平移、旋轉、對稱、壓伸、相似、位似等變換。
public void channelActive(ChannelHandlerContext ctx)throws Exception{
在SUSAN算法中,每個像素對USAN的貢獻值主要是由其與原子核亮度差的指數函數式(4)之間的關系決定的。同時也對二元方程進行了對比分析,但上述的指數方程的貢獻是眾多方法之一。因此,本文也將比較二進制方法。
//請求當前設備的設備ID
byte[]deviceIdResult=new byte[]{0x03,0x10,0x00,0x01,(byte)0xC4,0x1A};
會上,研發三部還與當地經銷商簽訂“中國農資”系列新產品的銷售代理協議。參會的一位經銷商表示:“這幾年我們一直與中農合作,當地農民對中農產品非常認可。我們與中農控股這樣的大企業合作感到很放心。跟著中農走,小康路上加速走!”
ctx.writeAndFlush(Unpooled.wrappedBuffer(deviceIdResult)).addListener(ChannelFutureListener.FIRE_EXCEPTION_ON_FAILURE);
ctx.flush();}
對該條Modbus-RTU數據報文的解析:從機地址為03,功能號為10,數據為 0001,CRC校驗碼為C41A。這串幀數據即表達03號智能傳感器向其對應的監測站點發送了數值0001。
2.1.2 主機與監測站點的通信過程。監測站點與主機之間通信需要先創建TCP/IP連接,在數據發送完畢后再斷開連接。圖7是“三次握手”連接建立過程。系統主機先創建傳輸控制塊TCB,進入LISTEN(監聽)狀態。系統主機向一個監測站點發出連接請求報文,即報文首部中同部位SYN=1,同時附帶選擇一個初試序列號seq=x,系統主機切換至SYN-SENT(同步已發送)狀態。監測站點收到該請求報文后,會自動發出確認報文,該報文中ACK=1、SYN=1,確認號是ack=x+1,同樣附帶一個初始化序列號seq=y,監測站點切換到SYN-RCVD(同步收到)狀態。系統主機收到確認后,同樣也要返回一個確認,該確認報文的 ACK=1、ack=y+1,初始序列號 seq=x+1,發送完后系統主機即刻進入ESTABLISHED(已建立連接)狀態。當監測站點收到確認后也進入ESTABLISHED(已建立連接)狀態。至此,監測站點與系統主機之間即可傳輸數據。之前,監測站點將智能傳感器發來的Modbus-RTU格式幀數據通過預寫轉換程序直接轉為TCP/IP協議數據格式。TCP/IP幀數據將一個報文MBAP 頭部(modbus application protocol header)直接加到從Modbus數據單元中保留的由功能碼和數據組合而成的協議數據單元PDU(protocol data unit)的前面,形成了TCP/IP協議的應用數據單元ADU(application data unit)。圖8是對這2種幀數據的具體通用格式對比,表3是對報文頭部內各項內容的解釋[10]。

表3 MBAP各項解釋
以下是調用Modbus轉TCP/IP格式程序的核心代碼:
頭孢哌酮鈉/舒巴坦的兩種配方比較鮑曼不動桿菌所致肺部感染的療效……………………… 熊 潔,彭清臻,厲銀平,等(2·141)
tcpipmaster=ModbusTcpSwither.createTcpmaster;
tcpmaster.init();
System.out.println("Modbus轉TCP/IP報文初始化成功");
2.3.1 預測功能實現原理。選擇使用回歸分析模型對數據進行預測分析。以測定的總磷量為例,把時間(d)作為自變量、總磷含量(mg·L-1)作為因變量,可以確定兩者間是一對一的關系?;貧w模型包括線性回歸模型與非線性回歸模型。分析實際數據,并結合預測準確度、功能需求度的考慮,發現變量之間的關系無法用線性回歸方程準確表示,于是選擇使用非線性回歸模擬方式。一元非線性回歸方程:
系統主機需要對數據敏感,即當某個數據值驟高或驟低時發出異常警報。因此,需要在系統中提前設置好閾值。同時,在特殊情況下,數據的正常波動閾值可以由管理員重設,保證了系統主機報警的及時性和有效性。這里規定了3個警報級別,即0級(正常)、1 級(超標警戒)、2 級(嚴重超標警戒)。 一旦報警,管理部門可以根據警報級別及內容迅速發布應急措施,保障巢湖水質安全。表4是應季水質數據對應報警級別的波動范圍。
最后將所得到的電壓控制型BOOST電路,在Simulink進行仿真設計。通過引入電壓串聯擾動、電阻串聯擾動和電阻并聯擾動來驗證系統性能和穩定性;硬件設計則選用TI公司生產的TP43000型PWM控制器進行電路設計。最終結果表明:本文設計穩定可行,滿足設計要求。

表4 各指標數據警報級別范圍
在實際監測中,由于數值過高或過低等突發情況產生具有隨機性、不定時性,維護人員無法保證在第一時間趕到現場處理。根據理論分析與實際經驗,連續幾天測量的數值可能具有一定的相關性,因而本系統給出了數據預測的解決方案:系統后臺會基于前15 d測定的所有數據值來預測后2 d的數據值,并展示在頁面上,為維護人員提供參考,以便人們對可能出現的異常數值進行前瞻性的應對準備。
在數據發送完畢后需要斷開連接,圖9是“四次揮手”斷開連接的過程。系統主機發出連接釋放報文,并且停止發送數據,釋放數據報文頭部FIN=1,初始序列號為seq=u,系統主機進入FIN-WAIT-1(終止等待1)狀態。監測站點收到連接釋放報文并發出確認報文,ACK=1、ack=u+1,附帶序列號 seq=v,此時監測站點進入CLOSE-WAIT(關閉等待)狀態。系統主機收到確認請求后,進入FIN-WAIT-2(終止等待2)狀態,等待監測站點發送連接釋放報文。監測站點發送完最后的數據后會發送連接釋放報文,FIN=1、ack=u+1,序列號為 seq=w,此時監測站點進入LAST-ACK(最后確認)狀態。系統主機收到后必須發出確認,ACK=1、ack=w+1,自身序列號為seq=u+1,系統主機進入TIME-WAIT(時間等待)狀態。再經過2*MSL(最長報文段壽命)的時間后,系統主機刪除TCB后進入CLOSED狀態。監測站點在收到確認報文后立即進入CLOSED狀態[10]。
富家塢銅鉬礦床是德興銅礦三大礦床之一,礦石中金屬礦物主要是硫化礦,其中黃銅礦、輝鉬礦是主要目的金屬礦物,同時,礦石中有一定量的含金礦物,脈石礦物主要是石英、云母等[1-2]。大山選廠同時處理銅廠、富家塢兩個礦床的礦石,由于兩種礦石性質的差異,在生產過程中造成選礦技術指標不高,尤其是鉬回收率偏低[3-4]。因此,本文研究針對富家塢礦石開展試驗研究,探索提高鉬回收率的方法,開發適宜處理富家塢礦石的浮選工藝條件,提高選礦指標。
方程求解基于Gauss-Newton法[11]的思想,根據最小二乘法的原理[12],通過不斷迭代逼近參數解。
圖10和圖11為2張不同迭代次數的擬合曲線圖。自變量的個數一定程度上會影響擬合的準確性,當自變量的個數增大時,曲線會趨向更加平滑,預測結果也會更加準確。
式中,Ti和Pi分別為驗證值和預測值。
2.3.2 模型訓練及驗證。橫坐標為時間(d)、縱坐標為總磷含量(mg·L-1)。算法實現需要設計迭代的次數(degree,即模型運行一次最大迭代次數的非線性議程最高階),從而得到不同的擬合曲線,預測準確度也不相同。試驗選取其連續16 d中的總磷量統計數據集,以前15 d的數據作為訓練集、第16天的數據作為驗證集。通過訓練集試驗不同的迭代次數并得到預測值,通過驗證集測試模型預測的準確度。
崔仁浩用眼神給我鼓勵,我硬著頭皮,用英語和他們交流。不久,他的家仆推出來一個三層蛋糕,蛋糕上并排站著一對小朋友,他爸爸用并不標準的中文說:“張,送給你們的,你們是兩個可愛的小朋友。”我開心地笑了:“謝謝叔叔!”客廳里響起一片掌聲……
degree=3時,擬合方程為
預測值為0.206 990 05,驗證值為0.230 954 90,預測準確度為89.63%。
degree=9時,擬合方程為
河南省旅游資源豐富,近年來旅游產業發展迅速。但由于旅游資源、旅游接待設施等客觀原因,河南省旅游經濟發展不均衡,城市間的旅游經濟聯系差異也較大。鄭州市雖作為河南省中心城市,但增長極作用沒有得到充分發揮,各城市間旅游經濟聯系不足,缺乏進一步發展的動力。而學者們對河南旅游經濟的研究側重于旅游經濟的演化和發展對策[20-21],對河南省旅游經濟聯系的網絡化探討不足。本文借助萬有引力模型,以旅游經濟聯系為基礎,運用社會網絡分析方法,對2010-2016年河南省18個城市之間旅游經濟網絡結構特征及其影響因素進行深入探討,以期為河南省旅游業的持續協調發展提供理論指導。
預測值為0.219 346 71,驗證值為0.230 954 90,預測準確度為94.98%。
分析模型的訓練結果,當4≤degree≤10時,模型預測準確度≥90%。一般認為,準確度>90%的模型可以被應用于實際預測功能中。試驗結果表明,此模型符合功能需求。
2.3.3 實際應用測試。本系統實際應用中選用degree=9的算法模型。模型訓練結果表明,此時預測準確度最高,為94.98%??偭着c氨氮的含量對現實環境中的水質影響較大[13],以這2種指標為例,應用上述模型實現系統的預測功能。表5展示了功能實現結果。

表5 模型對總磷和氨氮的預測應用測試
當測試除了氨氮和總磷之外的其他7種指標時,同樣得到了穩定高于90%的準確度。測試結果表明,預測的準確度較高,可以應用于實際監測。
水質監測系統運行后,水質數據可實時展示在網頁上(圖 12)。
物聯網為解決許多問題提供了更智能、高效的方案。在水資源保護領域中,用智能傳感器+通信傳輸+數據分析來完成水質監測工作具有一定的優勢。本文基于目前巢湖水質監測現狀、綜合系統應用環境,分析設計了基于SSM框架的水質監測系統,最后完成開發實現了本系統。
結合當前巢湖水質保護的需求,分析了系統實現的邏輯架構:首先,確立了系統的層次結構,系統的開發選擇了基于J2EE平臺下的輕量級框架SSM,本框架的使用降低了系統的開發難度,提高了系統的可擴展性能和易用性能;其次,使用了H2數據庫,整合MyBatis框架大大簡化了復雜的數據庫配置,并通過一個具有轉換協議功能的通信系統完成了數據的有序傳輸和準確存放;最后,結合回歸方程和現實的數據不斷總結,實現了預測水質指標變化的功能。
本文主要針對傳統監測模式存在的缺陷設計開發了一個巢湖水質監測系統。該系統能夠改善系統擴展性和易用性,解決數據傳輸和存取不夠穩定的問題,并通過環繞巢湖設置基站保證對各區域水質數據的實時監測。未來可以從以下5個方面對系統進行優化:豐富信息輸出網站的功能,如增加管理員身份、留言板功能等;豐富傳感器的使用,增加圖像傳感器等其他傳感器來滿足用戶的需求;加強系統的穩定性,防止惡意攻擊、數據安全等問題,以應對使用過程中復雜多樣的情況[14];引用最優化算法、全局優化算法改進回歸方程,使預測更加準確;針對很多無法直接通過擴展智能傳感器硬件采集的重要水質數據,如鉛等,可采集其他相關數據并通過相關算法計算獲取。