shanghai security defense & alarm association 愛建網">
摘要:本文闡述了根據線性代數定理,通過計算機代碼實現自動編制設備點位表的過程,并給出實例和成果。
關鍵詞:矩陣、向量、Python、設備點位表
一、前言
線性代數在數學、物理學和技術學科中有各種重要應用,因而它在各種代數分支中占居首要地位。隨著科學的發展,我們不僅要研究單個變量之間的關系,還要進一步研究多個變量之間的關系,各種實際問題在大多數情況下可以線性化,而由于計算機的發展,線性化了的問題又可以被計算出來,線性代數正是解決這些問題的有力工具。
在設計弱電系統中,設備點位表是必不可少的設計文件組成部分。根據中華人民共和國住房和城鄉建設部頒布的《建筑工程設計文件編制深度規定》中“5.3 建筑智能化設計”,規定在初步設計文件階段,必須需要提供系統圖。在安全技術防范項目設計中,設計人員需要編制前端設備點位表。常規做法是設計人員在EXCEL軟件中手工編制前端設備點位表。當系統較大或前端設備較多時,設計人員的工作量較大,且容易出錯。
筆者通過實踐,在安全技術防范系統中,特別是以住宅小區為代表,其入侵和緊急報警系統、對講系統以及電子巡查系統中的點位相對較多,也有一定的規律,可以采用線性代數中矩陣、向量等概念予以定義,借助計算機進行線性代數的函數運算,通過計算機輔助計算與設計,直接、快速、準確、高效地生成前端設備點位表。
本文通過某一個住宅小區的具體案例,建立結構化數學模型,編制計算機程序語言,生成前端設備點位表的過程,予以闡述。
二、用Python生成前端設備配置表
(一)線性代數基本概念
由于線性代數在數學、物理學、計算機科學中均有定義,有些一致,有些不一致,為防止概念混淆,本文中提到的術語、概念先以數學中的定義為準,當計算機科學中另有定義時,以為計算機科學中為準。
1、矩陣
矩陣(Matrix)是一個按照長方陣列排列的復數或實數集合(注:這里借用數學上對矩陣的定義)。如本文表1的前4列可以獨立形成一個矩陣,可以表示在這個住宅小區建筑的基礎數據。
將這個矩陣記作Λ
2、向量
在數學中,向量(也稱為歐幾里得向量、幾何向量、矢量),指具有大小(magnitude)和方向的量。它可以形象化地表示為帶箭頭的線段。箭頭所指:代表向量的方向;線段長度:代表向量的大小。與向量對應的量叫做數量(物理學中稱標量),數量(或標量)只有大小,沒有方向。
幾何向量的概念在線性代數中經由抽象化,得到更一般的向量概念。本文中提到的向量,定義為向量空間的元素。這個定義更加接近計算機科學中的定義。
如本文表2,把紅外探測器用D來代表,緊急按鈕用A來代表,按照設備的順序,
這個向量記作:Κ
3、函數
在數學中,函數的定義為:如果當變量x在其取值范圍內任意取定一個數值時,量y 按照一定的法則總有確定的數值和它對應,就稱y是x的函數,記作y=f(x),x叫自變量,y也叫因變量。
線性代數中一個矩陣與向量運算,輸出到向量示意如下:
函數(圖1)
需要的結果就記作:
(二)原始數據的描述
假設一個住宅小區有8棟樓,1#2#樓各有2個單元,樓高11層,每層4戶,含A1,A2房型;3#樓有2個單元,樓高10層,每層2戶,含C1房型;4#樓除了有3個單元外,其他與3#樓一致;5#樓有1個單元,樓高10層,每層4戶,含A1,A2房型;6#樓有1個單元,樓高10層,每層4戶,含B1,A2,B2房型;7#樓有1個單元,樓高10層,每層4戶,含A1,A2房型;8#樓有1個單元,樓高10層,每層4戶,含B1,A2,B2房型。
經過平面圖初步設計后,確定A1房型需設置5個紅外探測器,3個緊急按鈕;A2房型需設置4個紅外探測器,2個緊急按鈕;B1和B2房型均需設置7個紅外探測器,4個緊急按鈕;C1房型需設置8個紅外探測器,4個緊急按鈕。每種房型均設置1臺報警控制鍵盤。其他房型依次類推。
經過整理后如下表(1-3):
樓棟情況匯總表(表1)
A1房型前端設備設置表(表2)
A2房型前端設備設置表(表3)
其他房型略
(三)針對以上原始數據的分析
在實際的項目設計中,需要得到的前端設備點位表的格式如下:
經過對以上表4的分析,將“1#樓1單元1層1室”這個地點指定一個代碼,這個代碼可由表1通過矩陣生成,定義為“0111011”這個字符串,這個字符串代表1#樓1單元1層1室這套房。
以上表1中的房號、房型分別對應表2表3。1#樓1單元1層1室這套房里需要安裝的設備,我們可以從表2中找到。那么防區模塊的編號就可以定義為IAC-S011011,這套住宅里的第1個紅外入侵探測器的唯一編號就定義為D0110111,路由編號的意思是該紅外探測器位于防區模塊的第1個防區,定義為:IAC-S11011/D1。其他前端設備以此類推。
上段文字中的這幾個代碼0111011、IAC-S011011、D0110111、IAC-S11011/D1從計算機科學來說均不是數值而是字符串,這些字符串是由包含數字的矩陣和向量通過函數運算而生成的。
用表1的前四列數據構建出下面矩陣Λ?,這個矩陣代表小區到房的基本數值。
Λ?
表1的后四列數據構建出矩陣Λ?代表房型。
Λ?(0表示沒有)
把表2、3分別構建矩陣K?-K?代表不同房型內前端設備的安裝情況。
A1房型:
K?
A2房型:
K?
D代表紅外探測器,A代表緊急按鈕,后面的數值代表安裝位置序號,并由此計算出防區。
由這個矩陣
的來源,紅框位置的值代表了一個樓面有多少間房間,同時也是一個隱含向量的最后一個值,這個隱含向量是正整數從1至紅框內值的數列。如第1行的向量就可以如下表示:[1 2 3 4],第3行的向量就是:[1 2],經過矩陣與向量的計算機函數運算,可以得到1號樓1單元1層1室的室號“0111011”這個字符串,這個室號就是表7中模塊編號的核心部分。這個隱含向量還有個作用,就是與矩陣Λ?形成映射關系,從物理位置上指向某一個房型,也可以說再次映射到矩陣K?-K?.這個映射關系,如下圖顯示了1號樓1單元1層1室映射關系,其他房以此類推可以構建出整個小區家防報警前端設備設置的結構化數學模型,得到輸出的表7。根據剛才推導出的公式A,下一步就是編制代碼,實現以上功能。
各個矩陣與向量關系圖(圖2)
(四)計算機代碼的實現
1、代碼語言的選擇
Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷蘭國家數學和計算機科學研究所設計出來的。是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。設計具有很強的可讀性。選擇Python作為此次代碼編寫工作的原因是Python具有豐富的庫、可在UNIX,Windows和Macintosh兼容等特點。在Python有若干向量運算的庫,也可用Python內置的“列表”數據來生成矩陣與向量。本文中的代碼采用“列表”方式生成矩陣和向量,通過運算編制EXCEL格式的電子表格文件。
2、代碼流程圖
前端點位表代碼流程圖(圖3)
3、代碼生成
根據代碼流程圖編制代碼。由于代碼較長,限于篇幅本文從略。
4、其他說明
代碼的編制環境:PY3.8,引用的庫有:xlwing,os,time,math等。
四、結束語
本文闡述了根據線性代數的部分定理,通過計算機代碼直接生成智能化工程的前端點位表,為智能化設計探索了新的途徑。在編制前端點位表時,找出其規律性,編制代碼由計算機生成需要的文件,從而減輕工作量,提供準確率。
參考文獻
1、《建筑工程設計文件編制深度規定》 住房和城鄉建設部 2016年11月批準
2、《數學指南-使用數學手冊》 埃伯哈德.蔡德勒 科學出版社 2012年1月
3、《瘋狂Python講義》 李剛 電子工業出版社 2019年1月
4、《Python辦公自動化》 龍豪杰 中國水利水電出版社 2021年3月
滬公網安備 31011202001934號