虛擬儀器項目實戰——一個用Labview做的水位水溫控制模擬系統

臨近期末考試,上了三十二個學時的虛擬儀器項目實戰課程,最後做了一個大作業,題目自定。感覺我做的還有點意思,分享一下,可以到

這是一個使用Labview做的水位水溫控制模擬系統,我Labview學的也不深,除了用一些基本的模塊就沒接觸過其他的了。Labview裏邊的現實儀器也不算很多,最有特點的兩個就是溫度計和液罐了,看到這兩個東西,第一反應就是做自動化控制,本自動化專業的根本嘛。所以思來想去做了一個模擬澡堂用水和收益的系統,當然也不只可以模擬澡堂,類似的用水單位都可以。不過我們學校澡堂是不是這麼個用水模式我也不是很清楚嘍。

        下邊是這個項目的介紹,摘自我的設計報告:

摘要:

本項目實現了一個由一定溫度冷水和一定溫度熱水混合成爲溫水的系統,主要實現對冷水出水量和熱水出水量的自動化控制,使得到的溫水達到設定的目標水位和水溫。該系統可以模擬學校澡堂等用水單位的用水控制,並計算相應的水費和收益,是一個對真實場景的模擬仿真。

項目背景:

自動化控制在生產生活的方方面面都有廣泛的應用,控制水位和水溫是其中的一個典型。本項目根據常見的水位水溫控制系統將其進行一定改造,模擬一個用水單位(此處爲學校澡堂)將一定溫度熱水和冷水混合使用情況下的水位水溫控制系統,並根據水的成本和收益計算出所獲利潤。

設計目標:

根據以下需求,設計一個水位水溫控制系統。假設學校澡堂提供的洗澡用的溫水來自兩部分——4攝氏度的地下冷水和燒熱的95攝氏度的熱水,其中地下冷水可認爲無限量,熱水存放在爲5000單位的熱水罐中並且一開始是滿量的,在非滿量的情況下單位時間內允許有固定量的熱水補充;另外有一8000單位的溫水罐,初始是空的,允許從熱水罐和冷水管向其中加入水混合,熱水罐和冷水管的最大出水速度一定;忽略水罐中的水與外界的熱量交換或認爲水罐保溫效果較好,忽略傳輸過程中的熱交換;溫水罐的水直接供澡堂使用,單位時間的用水量是平均隨機的,且單位時間內的最大允許出水量是一定的;向溫水罐內加入的單位熱水和冷水的成本一定,熱水成本高、冷水成本低,學生使用單位溫水的費用也是一定的,在熱水成本和冷水成本之間。

設計要求:

現設計一個水位水溫控制系統,要求可以手動設定溫水罐的目標水位和水溫,且目標水溫設定後不能再改變;設計控制算法自動控制向溫水罐中加入熱水和冷水,使其達到目標水位和水溫,保證洗澡用水有足夠的水壓和合適的水溫,並顯示水位變化曲線;設計三個開關分別控制是否允許向熱水罐內補充熱水、向溫水罐內加入熱水、向溫水罐內加入冷水;設計一個閥門控制單位時間內的最大允許用溫水量;設計顯示部分顯示累計用溫水量、學校加水成本、學生用水所繳水費、學校所獲利潤;爲了更好地記錄用水情況,每個時刻的用水量記錄在文件中。

設計思想:

使用反饋節點分別計算加水和用水的總量;利用能量守能定律計算應向混合溫水罐中加入熱水和冷水的比例和體積以及熱水冷水混合之後的溫度,然後使用位置型數字P或PI算法設計控制器分別控制每次加入熱水和冷水的量,並對最大加水量進行限制;出水量設置爲範圍可調的隨機數,對於水位控制來說,出水量是一個擾動,設計的控制器應儘可能使溫度保持在設定溫度,水位保持在設定水位上下,以滿足水壓要求,所以最好選擇PI控制器,減小擾動帶來的影響,提高跟蹤能力,在這裏不用考慮累計誤差的影響,所以可以使用位置型數字PI控制器。

系統功能設計:

本系統主要實現的是對水溫和水位控制系統的模擬,本系統能實現以下功能:

1、自由設定目標水溫和目標水位;

2、顯示混合溫水罐的水位和溫度以及熱水罐的水位;

3、對混合溫水罐的溫度、水位以及熱水罐的水位有報警提示功能;

4、可以自由設置允許最大使用溫水的速度;

5、有開關分別控制向熱水罐內補充熱水、向溫水罐內加入熱水或冷水;

6、可顯示累計使用溫水量以及加水成本、用水收益以及所獲利潤;

7、可顯示溫水罐、熱水罐以及設定水位的水位變化曲線;

8、可保存每次用溫水的量到csv文件中。

系統軟件組成:

系統軟件由LabVIEW軟件開發環境、用LabVIEW開發的虛擬儀器應用軟件兩部分組成。

由於是對控制系統的模擬,未用到數據採集卡等其他硬件設備,系統硬件只用到了計算機。

虛擬儀器應用軟件爲“水位水溫控制模擬系統.vi”,還包括“計算加熱水比例係數.vi”、“計算加熱水累計.vi”、“計算水溫.vi”、“計算用水累計.vi”子程序,可以實現預期的所有設計功能。

軟件框架和結構(VI層次結構圖):

主VI爲“水位水溫控制模擬系統.vi”,提供了所有的顯示和控制部件,實現主要邏輯功能,其他各個子VI功能簡介如下。

1)計算加熱水累計.vi:計算總共向溫水罐中加入的熱水。

2)計算加熱水比例係數.vi:計算每次應向溫水罐中加入的熱水的比例。

3)計算用水累計.vi:計算使用溫水的總量,同時也得到每次使用溫水的量。

4)計算水溫.vi:計算加入的熱水和冷水混合後的水溫。

5)時間延遲:控制程序運行速度,系統自帶的VI。

6)其他:寫文件用,系統自帶的VI。

具體接口說明和功能實現可在下一部分了解。

界面設計:

前面板分爲兩個窗口,左邊窗口表示控制室,右邊窗口表示室外的水罐。

控制室分爲五個部分:一個部分是示波器,用來顯示設定的目標溫水水位、實際的溫水水位、實際的熱水水位;一個部分用來設定溫水罐目標水位和目標水溫;一個部分用來觀察溫水罐溫度、液位和熱水罐的液位,同時有三個警示燈分別對超出溫度上下限、溫水罐水位低於下限、熱水罐液位低於下限報警;一部分控制三個加水開關,分別是允許像熱水管補充熱水的開關、向溫水罐加熱水開關和加冷水開關,以及一個控制最大出溫水速度的滑動杆;還有一個部分是顯示學生累計用的溫水、學校加熱水和冷水的成本、學生用溫水的給學校帶來的收益和利潤,以及程序結束要保存的用水量文件的提示。

室外的水罐只有兩個:95度熱水罐和混合溫水罐,冷水是無限的,可以當做直接從地下抽取使用,省略冷水罐。

前面板截圖如下:

左邊窗口:

右邊窗口:

程序框圖設計:

1)水位水溫控制模擬系統.vi

本程序框圖由兩個平鋪式順序結構組成,第一個部分是用來進行用戶設定提示和固定設定目標溫度的,第二部分是用來執行主要的控制程序的。

截圖如下(兩張截圖有重合部分):

 

該程序框圖爲主要的程序框圖,配合其他字VI實現了全部功能。由於Labview不像其它編程語言一樣有可以存儲數據的“變量”,因此不得不使用大量反饋節點計算累計值。

控制出水量的部分是本項目的核心部分,以控制熱水的程序爲例,該控制部分如左圖所示,a爲輸入信號,控制是否允許加入熱水,x爲本次現有熱水量與目標加入熱水量的誤差,xx爲每次誤差的累計,即該誤差的積分。如果本次計算應加入的的熱水量大於加熱水上限100單位,就按照最大加熱水量100輸出。

另外在計算用水成本及利潤等時,只需要分別將幾個總用水量分別乘以設定的價錢即可。在本程序中,熱水成本爲0.11元每單位,冷水成本爲0.02元每單位,學生沒每用1單位溫水可獲利0.2元。

程序框圖其他部分的解釋不在此處給出。

以下部分介紹自己做的子VI,系統自帶VI不再介紹。

2)計算加熱水累計.vi

 

 
   

該子vi有兩個輸入和三個輸出,輸入單次出熱水量和補充熱水允許開關,此開關控制本次向熱水罐中加入的熱水量是否爲0,輸出熱水罐得到本次熱水補充後的水量(熱水罐)以及向溫水罐中累計加入的熱水量(總出熱水量),另外還有一個水位下限指示燈,若不能滿足下次的出熱水量,則本次不再出熱水,並且指示燈會亮起。

可以在程序框圖的公式節點中更改在熱水罐未滿量時每次向熱水罐內補充的熱水量(此處爲20),也可以改變使指示燈亮起的熱水罐水位下限(此處爲50)。

3)計算水溫.vi

該子vi實現的功能很簡單,輸入四個數字量,輸出一個結果,輸入的四個量分別是冷水的溫度和體積、熱水的溫度和體積,輸出的是冷水和熱水混合之後的溫度。

在實際運行時,會出現初始體積爲0 的情況,這時除數就爲0,程序計算結果爲Nan,因此在兩部分體積和的基礎上增加一個極小的正數1E-7,避免出現除數爲0 的情況,解決了以上問題。

4)計算用水累計.vi

該子vi有兩個輸入和三個輸出,輸入最大出水速度(看做一個閥門)和混合溫水罐目前的液位,最大出水速度閥門可以控制本次的最大出量,每次的出水量是一個在0到最大出水速度之間均勻分佈的隨機量,輸出本次用的溫水量和累計用的溫水量,另外還有溫水水位下限指示燈,當溫水量小於一定值(此處爲200)時不再輸出溫水,並且指示燈亮起。

5)計算加熱水比例係數.vi

該子vi用於計算應該加入95度熱水的比例係數,輸入目標水量和水溫、當前溫水罐的水量和水溫,輸出爲應當加入熱水的比例係數。

由於目標水溫是固定的(設置後不可更改),因此加入爲達到目標水溫應加入的熱水和冷水的比例是固定的。設應該加入95度熱水的比例係數爲n,則應加入4度冷水的比例就是(1-n)。由於都是水,比熱容是一樣的,所以水的能量跟體積成正比,在計算水的能量時忽略比熱容這一項,根據要求也忽略其他熱量交換,爲方便計算使用攝氏度而不是開爾文溫度。根據能量守恆定律,加入的熱水和冷水的能量與溫水罐中溫水的能量和應當等於目標水位水溫時的能量,因此可以得出等式

其中C2爲目標水量,t2爲目標水溫,C1爲當前水量,t1爲當前水溫,td爲接下來應該加入的混合水的溫度,解得

爲了防止分母爲0,在程序中加入了一個極小的數1E-7。可以根據td,計算出接下來要加入熱水和冷水的比例。設應加入的95度的熱水與4度的冷水的比例爲n:(1-n),再次根據能量守恆定律得

解得

根據以上公式即可得出應加入熱水的係數,從而得出程序框圖。

結束:

由於時間比較較緊,寫的很匆忙,沒有認真排版,這篇博客涉及到了本項目大多數內容,項目放在了我的資源頁,地址https://download.csdn.net/download/zugexiaodui/10913820

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章