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