蔚磊磊,魏正英,張育斌,張 帥,簡 寧
(西安交通大學機械制造系統工程國家重點實驗室,西安 710049)
節水灌溉技術對于水資源利用具有重大意義,控制作物正常生長發育所需的水肥,用最少的水肥量獲得最大的純收益,繼而提出了精量水肥灌溉控制,節水灌溉設備在提高農業用水效率、農民增產增收及生態環境建設等方面發揮著重要作用[1]。傳統水肥灌溉控制器開發中,算法控制采用手工編程開發,復雜算法要求的編程能力很高,并且過程較為復雜,開發周期長,開發過程中各個環節中都比較容易產生錯誤[2]。如今芯片制造商預見性到底層驅動自動架構及低耗費簡單系統原型板建立的重要性。這樣,硬件進程可以隨著軟件模型支持,開發者更容易進行設計和集成固件進行提前模塊測試。其中GCC編譯器可以免費嵌入到大部分開發工具中的GUI中進行編譯,生成與之對應的硬件生產商所要求的格式代碼。
綜合以上問題及啟示,我們采用基于模型設計方法(Model Based Design,MBD)快速算法測試驗證,在此基礎上通過底層驅動支持包(TSP)工具鏈(chaintools),鏈接Simulink、STMcubemx和Keil等工具生成工程文件,實現水肥灌溉控制器的快速開發[3,4]。與此同時,MBD方法在自動代碼生成領域研究較多[5],而對前期測試驗證階段及整個開發流程優化研究較少。所以,筆者對MBD方法完整的開發應用展開研究,著重于模型效率優化,被控對象物理建模,代碼有效性驗證和底層驅動代碼生成等問題,基于Simulink、STM32F407平臺進行實驗。
基于模型設計是設計并解決復雜控制系統、信號處理和通信系統相關問題的數學和可視化方法,適用范圍包括運動控制,工業設備,航空航天和汽車應用中。這項技術正開始逐步推廣到各種嵌入式控制方面,將需求、控制算法、嵌入式軟硬件等因素全部集成到一個圖形化可執行設計規約中,進行早期仿真驗證和過程自動化。整個開發流程如圖1所示。

圖1 MBD完整開發流程圖
圖1以二維坐標的形式表現出MBD開發流程,橫坐標是從模型仿真到最終產品化過程,縱坐標是算法設計匹配最初需求。仿真環節中:最初實現圖形化需求,需要將計算轉化為算法,并在Simulink平臺中搭建,有狀態轉換或者邏輯階段的問題,可以在stateflow中建模,串聯在同個平臺下。這樣做的兩個好處,一是易理解,成員之間方便交流;二是圖形化后期可以利用Simulink自動生成報告如產品追蹤報告,產品設計報告等。系統級閉環仿真,不僅涉及的設計的東西,控制器模型還有被控對象模型,及早建立起閉環,進行系統的行為早驗證。實時測試環節中:功能型的快速原型,檢測算法的實時性是否與仿真效果一致,算法模型生成代碼下載到工控機或者控制器中,進行實時比較。硬件在環仿真,與功能型快速原型不同是一個大的系統,系統的各個部件都要連接進來,被控對象通過傳感器等設備作為接口,將控制系統MCU與被控對象的硬件在環平臺連接起來,進行實時仿真,快速迭代設計的方法。系統確認,是整個開發流程的整體描述,圖2所示V字模型貫穿需求、設計、編碼與測試,保證產品比較可靠的。產品環節中:是將模型直接到代碼,設計到實現的快速迭代,實現模型和代碼的一致性,模型反映到到真實的系統中。

圖2 MBD常見開發“V”圖
模型本身就是一個可執行的規格書,開發者修改優化模型就是對設計的修繕,同時可以進行設計驗證,無須到編碼實現后通過測試再系統驗證。早期的驗證消除了在測試中發現bug并回歸修正及測試的風險,自動代碼生成消除了手寫代碼引入的bug,在持續的測試下將代碼在PC、MCU、非實時和實時環境下進行驗證與測試,以保證工程的可靠性和實時性。基于模型設計開發可大大提高嵌入式開發效率。
相對于控制算法代碼,嵌入式軟件的驅動代碼則不具有直觀的數學邏輯性,并不能直接抽象為數學公式進行模型建立與仿真。驅動代碼是通過將值寫入到芯片寄存器中,使周邊外設電路能夠按照指定方式工作的代碼。由于無法直觀建立數學模型,因此不能夠建立Simulink模型以自動生成代碼。嵌入式工程師往往手寫而驅動代碼,再跟由模型生成的代碼進行融合后形成一個完整的工程。如此一來,MBD的優勢體現則被打了折扣。為進一步提高開發效率,針對意法半導體的ARM芯片STM32F407,提供了便于嵌入式工程師在Simulink環境下配置并可以自動生成驅動代碼的工具—Target Support Package(簡稱TSP)。此包TSP實現了完全基于模型開發流程的水肥灌溉控制嵌入式開發,并支持從代碼到硬件實現過程的自動化。ST官方提供TSP為STM32-MAT/TARGET,并且編譯器(STM32 embedded target)已經支持MATLAB R2014a 版本。主要提供兩個組件,Simulink工具箱形式提供的外設驅動庫Peripheral Simulink Library(PSL)和Toolchain。其結構構圖如圖3所示,下載地址:http://www.st.com/zh/development-tools/stm32-mat-target.html。

圖3 TSP結構示意圖
PSL為嵌入式工程師提供的外設驅動模塊,完全支持Simulink環境,實現快速算法構建。PSL庫中提供了ADC、CAN、DAC、GPIO等外設模塊及MCU CONFIG芯片配置模塊。主要包含如下特征:Simulink中對STM32微處理器外設配置;STM32CubeMX對STM32微處理器配置;自動生成底層驅動c代碼;通過串口實時處理器在環仿真(PIL);生成報告;STM32外設建模仿真。
其中STM32CubeMX是意法半導體STM32CubeTM的主動原創的一款圖形化軟件設置工具,允許使用圖形化向導來生成C初始化代碼。它集成了一個全面的軟件平臺,支持每一個系列芯片,同時包括抽象層集成軟件。Toolchain環節中,通過它與Simulink和keil MDK5等工具鏈接,將自定義的算法模型與TSP產生的驅動代碼結合,生成工程文件編譯,直接下載到實機中進行驗證。
水肥灌溉精量控制系統主要包括水、肥路流量信號反饋電路,水肥精量配比動態控制器,以及直流電機肥泵控制電路三部分,需要根據水路流量動態變化,控制器通過對肥路流量信號檢測在算法控制器中做出相應策略,輸出控制電壓信號(0~12 V),調節直流肥泵,繼而達到水肥精量配比目的。閉環控制原理圖如圖4所示。

圖4 水肥精量控制原理圖
直流電動機是控制系統中常用的組件,它主要是提供給系統旋轉動力或者與其他組件配合進行傳動。電機模型如圖 5 所示,可以看出其分為電氣部分和機械部分[6]。

圖5 直流電動機物理模型
電動機的電氣和機械部分是通過電能與機械能轉化的中樞轉子聯系在一起的,而轉子的感應電動勢又會影響電動機的電氣和機械方程。由感應電動勢定律可知,電機的電氣部分的轉子會產生一個阻止轉子運轉的反向感應電動勢而外界電壓,所以要使轉子轉動,那么就要克服感應電動勢來做功。考慮到控制器快速開發,以及采用基于模型設計的方法,本研究采用Simscape工具箱進行多域物理系統建模和仿真,更直觀,方便和快速[7]。
Simcape模型如圖6所示。完成直流電機Simcape模型的設計,把用假設的值配置每一個塊的物理參數。

圖6 直流電機Simscape模型
●電阻 = R [Ohm]
●電感 = L [H]
●轉到慣量 = J [kg·m2]
●轉矩系數 = K [V/(rad/s)]
●阻尼系數 = b [N·m/(rad/s)]
為了仿真系統的響應,需要添加傳感器快到模型中來仿真模各種物理參數的測量。如圖7所示,更進一步,需要將Simscape模塊與Simulink模塊相聯系,因為Simscape信號代表有單位的物理量,然而Simulink信號是無量綱數,所以需要將信號進行轉換,其中使用Simulink—PS Converter和PS—Simulink Converter模塊。

圖7 直流電機Simscape仿真模型
對5個物理參數分別進行取值后,進行仿真模擬并且線性化處理,得到直流電機仿真曲線如圖8所示,可知使用物理建模的模型相應符合直流電機相應,產生控制電壓信號在被控對象可調節范圍之內(0~12 V),說明肥泵可被調節相應轉速達到調節流量的目的。

圖8 直流電機仿真曲線
節水灌溉中的水肥比例調節和灌溉精度低的控制問題,設計了基于PID控制、模糊控制和灰色預測控制相結合的控制算法,在PID控制的基礎上,通過模糊規則進行模糊推理,查詢模糊矩陣表進行參數自整定,從而實時調整PID各項參數,加入多因素灰色預測MGM(1,n)解決時滯現象,進行有效的預測作物的需水量,達到對系統的精確灌溉控制。本文主要針對灰色預測進行介紹。
建立灰色預測的模型是進行灰色預測控制的關鍵,灰色模型是由一組灰色微分方程組成的動態模型,記為 GM(n,h),其中:n為微分方程的階數,h為變量個數。本文根據注肥機流量控制的特點,擬先采用灰色模型中應用最廣泛的GM(1, 1)模型,即控制系統的反饋信號是由管道水肥流量q為變量的一階模型決定的,具體建模過程如下[7-10]。
設由傳感器檢測到的當前水路流量數據行向量為:
q(0)=[q(0)(1),q(0)(2),…,q(0)(n)]
(1)
對水路流量原始數據進行累加生成操作(AGO),得到的1-AGO序列:
q(1)=[q(1)(1),q(1)(2),…,q(1)(n)]
(2)
(3)
對序列q(1)進行緊鄰均值生成操作,得到q(1)的緊鄰均值生成序列Q(1):
Q(1)(k)=0.5 [q(1)(k)+q(1)(k-1)]k=2,3,…,n
(4)
可得GM(1,1)的灰色微分方程:
q(0)(k)+aQ(1)(k)=u
(5)
相應的白化方程為:
(6)
式中:a為發展系數;u為灰色作用量。
a和u可用最小二乘法求得:
(7)
(9)
白化方程的解為:
(10)
相應的灰色微分方程的時間響應序列為(k時刻的值):
近些年,醫患糾紛問題頻頻出現,在微博、微信等社交媒體上引起了熱烈的討論,不得不承認。有些患者及其家屬由于對醫護行業缺乏了解,所以容易造成不必要的誤會,但是不可否認的是,醫護行業的確存在著操作失當的問題,這種醫患糾紛的存在不僅對醫院的形象造成了影響,最重要的是,醫療護理操作的失范問題對患者的健康造成了威脅,使得患者對就醫產生恐懼心理,進而造成嚴重的社會恐慌問題。
(11)
k=1,2,…,n

(12)
k+m時刻的預測值:
(13)
式中:m為系統超前時間。
灰色預測模糊PID在Simulink建立模型如圖9所示。

圖9 灰色預測模糊PID模型
采用階躍輸入信號對水肥灌溉流量控制系統進行常規PID、模糊PID、灰色預測模糊PID控制仿真實驗。得到結果如圖10所示。

圖10 控制算法仿真驗證曲線
工具鏈為TSP的使用者提供從驅動GUI配置后自動化鏈接,再次啟動STM32官方提供的開發工具STM32CubeMX,對應快捷實現開發流程。將代碼自動生成、IDE(本文使用keil MDK5)的啟動、工程創建、工程文件目錄自動刷新和編譯工作全部集成,在使用PSL設計完畢后,可直接啟動IDE將編譯文件下載到芯片目標文件。STM32CubeMX軟件上處理器相關配置,如圖11所示。

圖11 芯片設置&Simulink和CubeMX聯合
Simulink新建立的模型默認的設置僅僅適合連續系統的仿真,不適用于嵌入式代碼自動生成,更不能夠針對某一款芯片的驅動代碼。所以工具鏈的第一步就是將模型設置到一個可以生成STM32F407可執行代碼的環境。在模型的系統目標文件設置為stm32.tlc后即可完成模型環境的配置。
系統目標設置會觸發系統目標文件選擇回調函數一系列動作:①模型結算器從變步長設置為定步長,適合嵌入式硬件資源調配;②自動配置硬件目標為STM32F407VG;③添加F4系列硬件目標定義并配置到當前模型;④關閉通用嵌入式主函數模板生成功能,自動選用F4用主函數;⑤追加IDE選擇,TSP可選擇希望啟動的IDE軟件。生成的工程文件如圖12所示。

圖12 生成工程文件
在keil MDK中打開工程,編譯后生成可執行文件,下載到實體控制機中,驗證實驗結果。
水肥精量灌溉灰色預測系統由主水管路系統、注肥管路系統、控制系統和灌溉系統4部分組成。系統樣機實物如圖13所示。肥液通過注肥泵進入主水管路,流量計分別檢測注肥管路中肥液流量和主水管路中肥水總流量,控制系統根據實際所需水肥流量,通過操作變頻器控制注肥泵實際轉速來調節實際供肥量。

圖13 水肥精量灌溉控制機
在實驗室,給灌溉系統分別加入傳統PID控制、模糊PID控制和灰色預測模糊PID控制,并且通過串口將數據發送到PC機。實驗中,為了能夠更好的反應系統在不同算法下的變化情況,同時使計算量不至于太大,對于傳統PID控制、模糊PID控制肥路流量的采樣周期為0.5 s,而灰色預測模糊PID控制對肥路流量的采樣周期為0.2 s。表1為每隔一個數據取一個數據后的實驗數據表,由于流量傳感器量程為0.6~6 m3/h,0.6 m3/h以下數據可信度不高。在Matlab下對實驗數據進行樣條曲線擬合,所得實驗響應曲線如圖14所示。

表1 實驗采集數據表
注:x為PID和模糊PID的采集數據的時間,s;y1為PID采集的流量,m3/h;y2為模糊PID采集的流量,m3/h;x3為自適應灰色模糊PID的采集數據的時間,s;y3為自適應灰色模糊PID采集的流量,m3/h。

圖14 系統實驗響應曲線
由圖14可知,自適應灰色預測模糊PID控制在8.5 s就基本達到穩定狀態,而模糊PID和傳統的PID分別到12.5 s和14.5 s才能基本穩定,實驗結果表明,灰色預測模糊PID控制器能夠使系統快速達到穩定,適當的超調量提高了直流肥泵電機的速度跟蹤特性;當期望的肥路流量與實際不符時,能夠自動的調節肥路流量,使水肥比例始終保持在適宜的范圍內,從而實現精量灌溉。
采用基于模型的設計方法,可以加速嵌入式開發,提前專心于算法嵌入研究和驗證。并且在工具鏈中底層驅動支持包的作用下,方便生成底層驅動代碼,完成工程文件建立,大幅減輕手寫代碼的開發和維護的負擔,明顯縮短了開發周期及任務量。
(1)算法中經過對比得知,采用PID控制有效解決了節水灌溉不確定模型問題,采用模糊PID控制成功解決系統的大慣性、非線性的問題,增加灰色預測MGM(1,n)模型,克服了水肥控制中大時滯現象。
(2)采用基于模型設計開發方法,加速了開發流程,需求基礎上建立模型,提前系統完善算法設計和預驗證,在軟/硬件集成測試,系統集成測試方面尤為方便使用,底層驅動代碼生成避免了人工輸入bug問題及減小了后期維護強度,為農業節水精量灌溉提供了技術支持。
[1] 袁壽其,李 紅,王新坤.中國節水灌溉裝備發展現狀、問題、趨勢與建議[J].排灌機械工程學報,2015,33(1):78-92.
[2] 鄧焱弢,駱光照,陳 哲,等. 基于模型設計的處理器在回路聯合仿真系統[J].測控技術,2011,30(3):45-48.
[3] 孫忠瀟. Simulink仿真及代碼生成技術入門到精通[M]. 北京:北京航空航天大學出版社, 2015:350-475.
[4] Juan Manuel Jacinto Villegas, Carlo Alberto Avizzano, E Ruffaldi, et al.A low cost open-controller for interactive robotic system[C]∥ IEEE European Modelling Symposium,2015.
[5] O'Sullivan, J Sorensen, A Frederiksen.Model based design tools in closed loop motor control[C]∥ PCIM Europe: International Exhibition & Conference for Power Electronics, 2014:1-9.
[6] 楊 燦. 基于模型設計在ARM直流電機控制開發中應用[D]. 武漢:華中科技大學, 2011:28-30.
[7] 錢 森, 訾 斌,曹建斌,等.基于Matlab/Simscape的汽車起重機變幅機構的優化與仿真[J]. 機械傳動, 2012,36(8): 41-47.
[8] 張育斌,魏正英,馬勝利,等.灰色預測模糊PID灌溉控制技術開發[J].中國農村水利水電,2016,(2):5-8.
[9] 郭正琴,王一鳴,楊衛中,等.基于模糊控制的智能灌溉控制系統[J]. 農機化研究,2006,(12):103-105.
[10] Guodong You, Xiuqing Wang, Shifeng Yang.Fuzzy control model study on precision irrigation system for water stress in crops[J].Journal of Computers, 2011,6(5):955-962.