一、 混凝劑的作用及常用藥劑
1. 混凝劑的作用
廢水中常常含有自然沉降法不能去除的細微懸浮物和膠體污染物,對于這類廢水必須首先投加化學藥劑來破壞膠體和細微懸浮物在水中形成的穩定分散系,使其聚集為具有明顯沉淀性能的絮凝體,然后用重力法予以分離,這一過程包括凝聚和絮凝兩步驟,二者總稱為混凝。其中,凝聚是指使膠體、超膠體脫穩,凝聚為微絮體的過程,它包括膠體的脫穩,又包括顆粒的遷移和聚集;而絮凝則是微絮顆粒通過吸附、卷帶和橋連而更大的絮凝體的過程,它只包括顆粒的遷移和聚集。
2. 混凝劑的混凝機理
投加的藥劑有無機多價金屬鹽類和有機高分子聚合物兩大類。前者主要由鋁鹽和鉄鹽,后者主要有聚丙烯酰胺及其變形物。我們常用的無機鹽有聚合氯化鋁和硫酸亞鐵,有機類的是聚丙烯酰胺(PAM)。
鋁、鐵鹽混凝劑的混凝機理十分復雜,簡單地說,是它們一系列離解和水解產物對水中膠體及細微懸浮物所具有的壓縮雙電層、電性中和以及吸附橋連和卷帶網捕作用的綜合結果。
鋁、鐵鹽混凝劑在水解過程中發揮以下三種作用:Al3+或Fe3+和低聚合度高電荷的多核絡離子的脫穩凝聚作用;高聚合度絡離子的橋連絮凝作用以及以氫氧化物沉淀形態存在時的網捕絮凝作用,以上三種作用有時可能同時存在,但在不同條件下可能以某一種為主。通常在PH偏低、膠體及細微懸浮物濃度高、投加量尚不足的反應初期,脫穩凝聚是主要形式;在PH較高、污染物濃度低、投加量充分時,網捕作用是主要形式;而在pH和投加量適中時,橋連和絮凝成為主要形式。
聚合氯化鋁(簡稱PAC),又稱為堿式氯化鋁或羥基氯化鋁。通過它或它的水解產物使污水或污泥中的膠體快速形成沉淀,便于分離的大顆粒沉淀物。PAC的分子式為[AL2(OH)nCl6-n]m,其中,n為1-5的任何整數,m為聚合度,即鏈節的的數目,m的值不大于10。PAC的混凝效果與其中的OH和AL的比值(n值大小)有密切關系,通常用堿化度表示,堿化度 B=[OH]/(3[AL])X100% 。B要求在40-60%,適宜的PH范圍5-9 。
鉄鹽混凝劑的水解過程及機理與鋁鹽類似。
聚丙烯酰胺(簡稱 PAM),俗稱絮凝劑或凝聚劑,屬于混凝劑。PAM的平均分子量從數千到數千萬以上,沿鍵狀分子有若干官能基團,在水中可大部分電離,屬于高分子電解質。根據它可離解基團的特性分為陰離子型聚丙烯酰胺、陽離子型聚丙烯酰胺、和非離子型聚丙烯酰胺。PAM外觀為白色粉末,易溶于水,幾乎不溶于苯,乙醚、酯類、丙酮等一般有機溶劑,聚丙烯酰胺水溶液幾近是透明的粘稠液體,屬非危險品,無毒、無腐蝕性,固體PAM有吸濕性,吸濕性隨離子度的增加而增加,PAM熱穩定性好;加熱到100℃穩定性良好,但在150℃以上時易分解產中氮氣,在分子間發生亞胺化作用而不溶于水,密度:1.302mg/l(23℃)。玻璃化溫度153℃,PAM在應力作用下表現出非牛頓流動性。
陽離子、陰離子的PAM分別適用于帶陰、陽電荷的污水或污泥。生化法產生的活性污泥帶有陰電荷,應該使用陽離子型的。陰離子PAM用于帶有陽電荷污水或污泥,如處理鋼鐵廠、電鍍廠、冶金、洗煤及除塵等污水時的效果較好。非離子型的對于陽離子、陰離子都有較好的效果,但是,單價很貴,使處理成本增高。我廠二沉池的污泥用陽離子型的PAM較為合適。
3. 反應條件及投加要求
1) 絮凝池的作用
絮凝池的作用是:使混凝劑加入原水中后,與水體充分混合,水中的大部分膠體雜質失去穩定,脫穩的膠體顆粒在絮凝池中相互碰撞、凝聚,最后形成可以用沉淀方法去除的絮體。
2) 反應條件
絮體長大過程是微小顆粒接觸與碰撞的過程。絮凝效果的好壞取決于下面兩個因素:一是混凝劑水解后產生的高分子絡合物形成吸附架橋的聯結能力,這是由混凝劑的性質決定的;一是微小顆粒碰撞的幾率和如何控制它們進行合理的有效碰撞。水處理工程學科認為,要想增加碰撞幾率就必須增加速度梯度,增加速度梯度就必須增加水體的能耗,也就是增加絮凝池的流速,一方面,如果在絮凝中顆粒凝聚長大得過快會出現兩個問題:(1)絮體長得過快其強度則減弱,在流動過程中遇到強的剪切就會使吸附架橋被剪斷,被剪斷的吸附架橋很難再連續起來,所以絮凝過程也是速度受限過程,隨著絮體的長大,水流速度應不斷減少,使已形成的絮體不易被打碎。(2)一些絮體過快的長大會使水中絮體比表面積急劇減少,一些反應不完善的小顆粒失去了反應條件,這些小顆粒與大顆粒碰撞幾率急劇減少,很難再長大起來,這些顆粒不僅不能為沉淀池所截留,也很難為濾池截留。
3) 投加要求
在投加混凝劑的反應前期,要盡可能增加藥劑與污水碰觸的機會,加大攪拌或流速。依靠水流與折板碰撞及水流在折板間多次轉折提高速度,使水中顆粒碰撞機會增加,使絮體凝聚。而到反應后期,為使速度梯度減小,可以得到較好的絮凝、沉淀效果。
二、PAM與PAC加藥裝置
構成加藥裝置的主要設備是:溶藥罐、儲藥罐、加藥攪拌器、加藥泵與計量等設備。具體規格型號(略)。
三、PAC配制方法及用量
配制時無特殊要求,配制溶液的重量比濃度一般為10-20%,應用時的投加量一般在200-300PPM左右(每升水中加入200-300mg的PAC)。
四、PAM配制方法及用量
1. 配制方法
PAM的使用形態為0.1-0.2%水溶液,用自來水配制,配置時必須注意的是一定要將PAM均勻、分散的落在不斷攪拌的水中,并且要確保入水時都是分散的單獨顆粒,不形成團,不然,一旦形成大的顆粒團便很難繼續溶解了,形成了水包藥的大顆粒團。配制時要充分攪拌,使其溶解。配成的溶液容易水解,應在當天用完。
配制方法詳見操作規程。
2. 加入量
污水或污泥中加入PAM后要有效混合,混合的時間一般在10-30秒,一般不超過2分鐘。PAM的具體使用量與污水或污泥中的膠體、懸浮物的濃度、性質及處理設備等都有很大的關系,處理污水時的用量一般在3-10PPM之內,既每噸水加入3-10克,處理污泥時的用量要多一些,其最佳用量都要通過大量實驗取得。根據最佳用量濃度(PPM1欲投加聚丙烯酰胺濃度)和進水流量(t/h)及所配置好的聚丙烯酰胺溶液濃度(PPM2配制的聚丙烯酰胺濃度),可求出加藥泵流量計上的顯示數值(LPM),即:進水流量(t/h)/60×PPM1欲投加聚丙烯酰胺濃度 /PPM2配制的聚丙烯酰胺濃度。如,進水量=100 t/h, 最佳用量PPM1=10ppm,配制濃度為2‰(3Kg藥溶解在1.5t水中),則,加藥流量指示應該調在100/60*10/2=8.3LPM刻度上。
注意:ppm是百萬分之一;加藥泵流量計數值的單位中:右面的,LPM為升/分鐘;左面的,GPM為加侖/分鐘(不用)。
五、注意事項
1. 配制藥液時嚴格按照操作規程及使用說明書進行;
2. 雜物不得混入藥液中,以免堵塞加藥泵、流量計等;
3. 根據進水量與下達的投加藥劑通知單,要及時調整加藥量,達到最佳處理效果。
VS Code作為一款最受程序員歡迎的輕量級的程序編輯器,在使用方面有著無可替代的靈活性與優勢。但同樣由于其輕量級和靈活性,在進行開發時,也有很多需要自行手動配置的地方,不像其臃腫的同門兄弟Visual Studio(雖然VS Code與Visual Studio相似之處僅僅在于名稱和同是微軟出品)那樣,讓很多操作都傻瓜化。對于新手來說,傻瓜化的操作當然有其便捷性,但失去了配置的過程,很多人雖然在VisualStudio下可以寫出能執行的代碼,但始終連程序是如何編譯、鏈接到運行的都搞不懂。
在VS Code官方文檔中,對各種開發語言的配置方式都有詳盡的介紹,在Windows下進行C/C開發時,官方提供了三種不同的配置方式,分別是使用Microsoft C,Windows下的GCC和利用Windows10內置的WSL linux子系統的GCC進行開發和配置。本文僅就后兩種方式進行示例和介紹。
mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .
最后一行code .命令是在命令行下快速調用code打開當前文件夾的指令,在實際使用中非常方便。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
for (const string& word : msg)
{
cout << word << " ";
}
cout << endl;
}
按照官方的指導,要在Windows下安裝開源的GCC編譯器,需要安裝Mingw-w64,這是GCC在Windows下運行的版本。在Mingw-w64官網可以開到不同的發行版本,一般來說推薦僅安裝官方的mingw-w64即可,但由于國內網絡環境的原因,直接安裝mingw-w64可能是非常緩慢甚至難以成功的。這里選擇安裝mingw-w64的一個名為MSYS2的發行版進行安裝,并通過清華大學開源軟件鏡像站進行加速。
按照清華大學開源軟件鏡像站(或者USTC鏡像)的官方說明,在該網站MSYS2文件夾下的distrib/目錄下選擇相應的名為msys2-<架構>-<日期>.exe文件下載并安裝。一般建議直接安裝在 C:/msys2 目錄下。安裝完成后,在該目錄下查找并編輯以下文件,以使用清華開源站的軟件倉庫來代替默認的海外倉庫:
編輯 /etc/pacman.d/mirrorlist.mingw32 ,在文件開頭添加:
Server=https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
編輯 /etc/pacman.d/mirrorlist.mingw64 ,在文件開頭添加:
Server=https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
編輯 /etc/pacman.d/mirrorlist.msys ,在文件開頭添加:
Server=https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
然后打開msys2.ext文件,在命令行執行 pacman -Sy 刷新軟件包數據.
pacman是arch linux下的包管理器,與centos下的yum或者ubuntu下的apt類似。要在msys2下查找并安裝linux兼容的軟件包,需要通過pacman進行。
常用的pacman命令包括:
pacman -Sy 更新軟件包數據
pacman -R package-name 刪除軟件包
pacman -S package-name 安裝軟件包
pacman -Syu 更新所有
pacman -Ss xx 查詢軟件xx的信息
安裝gcc,gdb。可以根據需要選擇安裝32位或64位gcc,gdb發行版。
如果需要安裝32位軟件包。可輸入
pacman -S mingw32/mingw-w64-i686-gcc
pacman -S mingw32/mingw-w64-i686-gdb
如果要安裝64位包,可以相應的改為mingw64/mingw-w64-x86_64-gcc等。也可以直接將gcc改為toolchain,可完整安裝整個工具鏈。
安裝完成后,需要將對應的c:/msys2/mingw32/bin或者c:/msys2/mingw64/bin添加到windows系統路徑的path下。添加方式如下:
(Win+R并輸入control)打開控制面板-->系統-->高級系統設置
在彈出窗口中選擇高級-->環境變量,在下方的系統變量中尋找Path并雙擊。選擇新建并輸入上述路徑(msys2以及相應的軟件包對應的安裝路徑)
打開命令行,輸入下列命令,如果能看到相應的版本信息,則說明安裝和路徑設置成功。
C:\Users\weizy>g++ --version
g++ (Rev1, Built by MSYS2 project) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\Users\weizy>gdb --version
GNU gdb (GDB) 9.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
回到helloworld.cpp文件所在的目錄下,用vs code打開文件夾,選擇Terminal-->Configure Default Build Task(終端,配置默認build任務),選擇c/c++: g++.exe build active file,會創建一個新的tasks.json文件。參考官網示例編輯該文件如下:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++.exe build active file",
"command": "C:\\msys2\\mingw32\\\bin\\g++.exe",
"args": ["-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe"],
"options": {
"cwd": "C:\\msys2\\mingw32\\bin"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
關閉task.json文件并回到helloworld.cpp文件(否則系統會認為要編譯的文件是task.json)。選擇Terminal-->Tasks:Tun Build Task (終端-->任務:執行編譯任務),快捷鍵為Ctrl+Shift+B (這個快捷鍵和我的輸入法表情文件沖突,需要修改掉)。一切正常的話編譯會迅速完成,并在相同目錄下生成helloworld.exe文件。在終端運行 .\helloworld.exe可以看到文件的輸出結果。
可參考微軟官方的WSL子系統安裝說明,從windows store或者命令行下載并安裝。windows server也可以下載并且手動解壓縮和安裝。這里在windows商店中搜索并安裝ubuntu18.04版本。安裝過程中兩個常見的錯誤及解決方案如下:
安裝完成后,在開始菜單中搜索Ubuntu即可打開WSL的ubuntu linux子環境,在命令行輸入bash也可直接進入ubuntu bash‘中。第一次今進入WSL子系統時需要設置Linux子系統的用戶名和密碼。
為了提高訪問速度,這里同樣使用清華大學開源軟件站的倉庫替換默認的Ubuntu倉庫。方法為修改ubuntu文件/etc/apt/sources.list(修改前建議先備份該文件),將文件內容替換為以下內容,保存文件后輸入sudo apt-get update,即可通過清華大學開源軟件站倉庫更新軟件。
# 默認注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# 預發布軟件源,不建議啟用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
在WSL子系統中輸入以下命令以安裝編譯環境。
sudo apt-get install build-essential gdb
安裝完成后可輸入以下命令檢查是否安裝成功。
whereis g++
whereis gdb
安裝完VS Code的Remote-WSL插件后,可以通過下列方式在VS Code中打開WSL子系統。
通過VS Code打開子系統后,同樣需要為WSL子系統安裝C/C插件,以實現后續的調試等功能。在插件欄中搜索C安裝即可。
和前一節類似地,在WSL中新建helloworld文件夾,并在其中新建helloworld.cpp文件。參考VS Code官網配置tasks.json文件如下。
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build active file",
"command": "/usr/bin/g++",
"args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
注意:
mkdir /mnt/d/wsl
ln -s /mnt/d/wsl ~/wsl
一般來說,程序設計不可能一蹴而就就可以編譯成功的。在編譯前可能需要大量的調試工作。和編譯類似,程序調試也需要在VS Code中進行配置。選擇Run-->Add Configuration(運行-->添加配置)添加配置,選擇C++(GDB/LLDB)(如果默認沒有出現,則需選擇最下面的more進行安裝相應插件)。在下拉菜單中選擇需要的編譯器,使用windows下的gcc時選擇g++.exe,使用WSL子系統時選擇g++ build and debug active file.截圖分別如下。
該選擇會生成不同的launch.json文件。在windows系統的gcc編譯器下launch.json文件如下(目錄已修改為和實際目錄一致)
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys2\\mingw32\\bin\\gdb.exe",
"setupCommands": [
{
"description": "為 gdb 啟用整齊打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++.exe build active file"
}
]
}
在WSL子系統下的lauch.json配置文件如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++ build active file",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
回到helloworld.cpp下,按F5或者選擇Run-->Start Debugging開始進行程序調試。如果使用過Visual Studio或者其他IDE工具,就會發現其中的相似性,在程序段左側的代碼行數標識左邊,可以通過鼠標給程序打斷點(break point),這樣在調試時遇到相應斷點會自動停下,這在調試時都是很有用的功能。
關于調試另外一個很有用的功能是watch。在調試開始后,程序欄左側會出現watch窗口。在watch窗口中可以輸入想要監視的變量,例如本例中的變量名為word的變量。雙擊watch窗口下的空白處并輸入watch,在程序步進執行(上圖中按鈕)時,就可以看到隨著程序執行,watch變量不斷變化的值。這個比起調試時用print輸出變量要方便又好用的多。