于樹友,徐明生,王 嚴,許 芳
(1. 吉林大學 汽車仿真與控制國家重點實驗室,吉林 長春 130022;2. 吉林大學 通信工程學院,吉林 長春 130022)
三容水箱系統可以模擬多容器流程系統中的多輸入多輸出、時變、強耦合、非線性系統[1],并能夠模擬過程控制中的復雜對象,對三容水箱液位控制方法的研究對實際工程應用有重要意義。目前針對三容水箱系統液位跟蹤控制的研究已有不少成果。文獻[2]分別利用數字PID控制器和BP神經網絡PID控制器對三容水箱液位控制系統進行離線仿真。結果表明,數字PID控制器反應速度較快,但系統容易出現較大的超調,而在BP神經網絡PID控制器作用下,系統具有良好的動態特性,但響應速度相對較慢。文獻[3]將三容系統的控制問題歸結為約束系統的干擾抑制問題,并在討論滾動優化的Hinfinity控制方法的基礎上進行了三容系統的液位控制實驗。實驗結果表明,所設計的閉環系統能夠在滿足時域約束的條件下保證系統的抗干擾性能。文獻[4]討論了約束離散時間系統的準無限時域模型預測控制(model predictive control, MPC)算法,同時在三容水箱系統中進行了數值仿真實驗,并驗證了算法的有效性??刂破髟诒WC系統穩定性同時又滿足時域硬約束的條件下,使三容水箱閉環系統達到理想的動態性能。文獻[5]的研究對象是與三容水箱類似的四容水箱系統,其通過仿真實驗對比得出,不論在最小相位還是非最小相位情況下,基于內??刂疲↖MC)的比例積分(PI)控制器都能夠得到較好的性能。文獻[6]對四容水箱系統分別設計了線性和非線性的模型預測控制器,并進行了離線仿真實驗。
本文主要研究三容水箱系統模型預測控制器的硬件實物實現。由于預測控制需要根據系統當前時刻的狀態在線求解優化問題,因此要求控制器具有很強的計算能力。而在計算能力受限的環境,預測控制器的在線計算速度可能會受到較大的限制,導致控制器不具有期望的實時性。FPGA因其內部存在大量的可編程邏輯門陣列,而且可以進行并行的邏輯運算和賦值,運算速度很快,便于算法在較短的時間內完成。因此,基于FPGA實現預測控制器有利于提高實際控制器的實時性能。
本文采用Altera公司的Cyclone Ⅱ系列FPGA,同時基于 Nios Ⅱ嵌入式軟核處理器,設計并構建了SOPC硬件系統和軟件系統,實現了基于FPGA/SOPC的模型預測控制器。為了驗證控制器的有效性,本文在基于FPGA和dSPACE的實驗平臺上,進行了控制器的實時聯合仿真實驗。實驗結果表明,基于 FPGA的預測控制器能夠實現對三容水箱系統的液位設定點跟蹤控制。該方法可應用于自動控制、過程控制等相關課程的實驗教學,加強學生對控制系統建模、控制器設計等理論知識的理解。
三容水箱主要由兩個水泵和底部相互聯通的三個完全相同的圓柱體組成,其整體結構如圖1所示。

圖1 三容水箱系統結構
兩個水泵分別給容器1和容器2供水,容器3只能通過底部的聯通管從容器1和容器2中獲得水源,同時容器2右側的閥門是常開狀態,使水持續流出。在三個容器下方有個蓄水池,用來為水泵提供水源以及回收從容器 2中流出的水。系統的輸入變量是 Q1和 Q2,即兩個水泵的流量,輸出變量是 h1和 h2,即容器1和容器2的液位高度。由于三容水箱系統具有大時滯、動態響應緩慢、開環穩定等特點,三容水箱的典型控制問題可以描述為:在盡可能短的時間內,使系統穩定在期望的平衡狀態。
根據物料平衡,三容水箱系統可由如下微分方程描述:

其中 Qij為水從容器 i流進容器 j時的流量,Q20為水從容器2流入下方蓄水池時的流量,S是容器的橫截面積。根據Torricelli規則有:

其中,hi為容器i的液位高度,azj(j=1,2,3)為流量系數,g是重力加速度,Sn是連接管的橫截面積。

其中:

矩陣Al中各元素如下:

預測控制是從工業過程控制中發展起來的一種新型計算機控制算法[1],是近年來廣泛討論的反饋控制策略[7]。由于模型預測控制可以處理具有非線性、多變量、有時域硬約束等特性的復雜系統的控制問題,因此在工業過程控制中得到了廣泛應用。預測控制的基本思想是在線求解開環優化問題,從而獲得閉環控制問題的一個可行解,即在每個采樣瞬間,根據當前采樣信息在線求解一個有限時域內的開環最優控制問題,然后將所得控制序列的第一個元素作用于被控對象,下次采樣之后再重復這個過程,即使用最新的采樣信息重新求解當前開環最優控制問題[1-4]。
將式(3)離散化后得到三容水箱系統的離散模型,再整理得到其增量模型:

其中,Δ x ( k ) = x( k ) - x( k - 1 ),k ≥ 1 ,是狀態變量增量,Δ u ( k ) = u( k ) - u ( k - 1 ),k ≥ 1 ,是控制輸入增量, yc(k)是被控輸出量,并且 Δ x (0) = 0, Δ u (0)= 0。設模型預測時域為p,控制時域為 m ( m ≤p),當p>m時控制量保持不變。系統未來 p步輸出的預測為[8]:


目標函數表達了對系統性能的要求,希望被控輸出量越接近給定的參考輸入越好,并且控制動作不要變化太大。
開環優化問題可以描述如下:

將目標函數寫成矩陣向量的形式:

對上述的開環優化問題進行求導并取其極值,則可以獲得第k個時刻的最優控制增量為:

其中,

將優化解的第一個元素作用于系統:


其中,為預測控制增益。如果Γy和Γu是與時間無關的常數,則Kmpc可由上式離線計算。
模型預測控制思想的三個基本步驟為:首先預測系統未來動態,然后求解優化問題,最后將解的第一個元素作用于系統;基本運行機制為:在有限時域內重復進行滾動優化。根據上述思想和機制,可以獲得無約束線性模型預測控制算法流程如下[8]:

(6)在k+1時刻測量x(k+1),并且令 1k=k+ ,返回第(2)步。
現場可編程門陣列(FPGA)具有研發時間短、體積小、可編程、高集成度、高速和高可靠性等優點,目前被廣泛應用于通信、高性能計算、汽車電子、航空航天等各個領域 。
綜合考慮在FPGA芯片中實現MPC算法的開發難度、計算速度、開發成本等多種因素,本文采用基于Nios Ⅱ軟核處理器的 SOPC方案。Nios Ⅱ是 Altera公司為FPGA設計者研發的可靈活優化硬件編程語言的嵌入式軟核處理器。SOPC系統即在可編程芯片上設計硬件和軟件構建成的整個復雜系統。Nios Ⅱ嵌入式軟核處理器具有較好的定制特性,用戶可以通過NiosⅡ嵌入式處理器開發軟件包SOPC Builder添加和配置標準IP核(intellectual property cores),在FPGA芯片上構建符合實際需求的系統,從而組成專用處理器。
為了實現基于FPGA/SOPC的控制器,首先需要在Matlab/Simulink中搭建控制器和被控對象的模型,同時進行離線仿真分析;然后在FPGA中組建SOPC系統、配置硬件資源、生成處理器;最后在基于Eclipse的開發平臺中設計程序。
控制器的硬件系統設計是在 Quartus Ⅱ軟件和SOPC Builder中完成的,包括 Nios Ⅱ處理器的配置、IP核配置、引腳適配、綜合編譯、程序下載和硬件系統測試。本文構建的Nios Ⅱ處理器架構如圖2所示。Avalon總線是 FPGA的內部總線,主要負責Nios Ⅱ處理器與外部硬件設備之間的通信。本文根據系統的實際需求配置了Nios Ⅱ軟核(CPU)、片上存儲器(on-chip memory)、系統 ID(system id peripheral)、通用異步接收器/發送器(JTAG UART)核和并行輸入/輸出(PIO)核等。

圖2 Nios Ⅱ嵌入式處理器架構
完成SOPC的硬件系統構建之后,便可在設計好的 Nios Ⅱ嵌入式處理器上進行軟件設計。軟件系統的設計主要是在Nios Ⅱ集成開發環境(IDE)中進行。Nios Ⅱ嵌入式處理器支持標準的C/C++程序開發,以及合適嵌入式系統軟件開發且源碼開放的C標準庫[9-10]。Altera為 Nios Ⅱ程序設計提供硬件抽象層系統庫(HAL),開發者可以用 C語言編寫代碼。軟件設計具體實現流程如圖 3所示,主要包括編寫 Nios Ⅱ系統和控制器初始化程序、串口通信程序、算法程序、外設驅動程序等,最后完成程序的編譯和調試[11-12]。

圖3 SOPC軟件系統實現流程
為了驗證基于FPGA的三容水箱系統液位控制器的有效性和實時性,本文選用dSPACE實時仿真系統進行實時仿真實驗。
實驗中三容水箱系統的平衡點選擇為h01=30.00 cm,h02=24.00 cm,h03=26.97 cm,液位平衡時水泵流量為Q01=17.86 mL/s,Q02=55.34 mL/s。系統的連續線性狀態空間方程離散化的采樣周期為Ts=0.1 s。模型預測控制器的相關參數初始化如下:輸入量個數nu=2,輸出量個數ny=2,狀態量個數nx=3,預測時域p=10,控制時域m=10,假設無干擾量。加權矩陣選為其中I為單位方陣。矩陣則可以由離線計算獲得。參考輸入中,r(k+1)=
本文的聯合實時仿真實驗平臺由dSPACE、PC以及FPGA開發板組成,實物如圖4所示。其中,FPGA是實物控制器,dSPACE中用于快速原型設計的單板硬件DS1104PPC配合PC中的軟件構成了功能強大的開發系統。這個可以用來完成快速原型設計的系統的工作機制是[13-15]:在PC中運行Matlab軟件,將三容水箱系統的 Simulink模型通過 PCI通信接口下載到dSPACE DS1104PPC中,dSPACE通過RS232串口向FPGA發送三容水箱當前液位高度值,FPGA芯片中的控制器程序算出的控制量再通過串口發送給dSPACE用于控制其中的三容水箱系統模型。實時仿真實驗的啟動、停止以及所有的過程、結果都可以通過PC中Control Desk軟件進行管理和監測。

圖4 FPGA與dSPACE聯合實時仿真平臺
為了提高數據的準確性,本文數據都設置為 32位二進制數,這樣一個數據需要RS232串口發送或接收4次,每次發送或接收8位。為了縮短數據傳輸時間,本文波特率設置為115 200 bps。
圖5是容器1和容器2的液位高度曲線,圖6是水泵1和水泵2的流量曲線,可以看出,在控制器的作用下,容器1中的液位高度大約在50 s時就達到了期望值,容器2中的液位大約在80 s內就跟蹤上期望的高度。系統運行100 s后達到了平衡狀態,且系統的動態響應沒有超調。

圖5 容器1和容器2的液位高度

圖6 水泵1和水泵2的流量
本文采用基于 Nios Ⅱ嵌入式軟核處理器的SOPC設計方案,為三容水箱控制系統設計了模型預測控制器。在FPGA開發板上實現了控制器所需硬件資源分配以及控制算法的 C語言程序設計,并在由FPGA、dSPACE和PC機組合而成的聯合仿真平臺上對控制器的性能進行了驗證。
仿真結果表明,基于FPGA的模型預測控制器能夠使三容水箱系統在較短時間內達到并一直穩定在平衡狀態,且系統的動態響應沒有超調。
通過實驗驗證所設計的MPC控制器具有有效性,同時基于FPGA的實現能夠提高實際控制器的實時性能。該教學平臺操作簡單、穩定、可靠。將該實驗應用于教學,達到了以下教學目的:
(1)建立系統數學模型,掌握控制算法的設計過程,為學生今后在分析類似控制系統、設計算法時提供思路。
(2)使學生熟悉 Matlab編程環境,掌握 Matlab仿真實驗設計與分析。
(3)使學生掌握三容水箱的工作原理及簡單的工業液位調節系統的應用,同時通過該實驗使學生初步掌握FPGA的編程方法及dSPACE的使用方法。
該三容水箱液位調節實驗教學在自動控制、過程控制相關課程中的應用,大大提高了教學質量和效果。