張文曉
摘要:本文旨在介紹一種算法,實(shí)現(xiàn)空調(diào)箱過濾段中靜電過濾器的自動排布,以及參數(shù)輸出。
關(guān)鍵詞:空調(diào)箱;靜電過濾器;自動排布;CAD自動畫圖
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)09-0263-03
Abstract: This paper aims to introduce an algorithm to realize the automatic arrangement of electrostatic filters in the filter section of AHU and the output of parameters.
Key words: AHU; Electrostatic Filters; automatic arrangement; CAD automatic drawing
在發(fā)展中國家,隨著城市經(jīng)濟(jì)的迅猛發(fā)展,機(jī)場、地鐵、火車站、酒店等大型公共建筑與人們的生活、工作日益密切。人們在享受著中央空調(diào)帶來前所未有的舒適的同時(shí),卻正在失去或已經(jīng)失去了可貴的健康!人類在經(jīng)歷了“煤煙污染”“光化學(xué)煙霧污染”危害之后,正在進(jìn)入以“空氣污染為主的第三代污染時(shí)期。如何治理改善密閉建筑的室內(nèi)空氣質(zhì)量,創(chuàng)造安全舒適的生活環(huán)境,已經(jīng)成為近年來全球暖通空調(diào)專業(yè)人士關(guān)注的重點(diǎn)課題之一。
隨著對空氣過濾等級的要求越來越高,靜電過濾器以其高效凈化、高效節(jié)能、綠色環(huán)保等優(yōu)點(diǎn),受到客戶青睞。然而,為了滿足客戶需要,目前空調(diào)箱產(chǎn)品的最大特點(diǎn)是——配置多。配置的增加對于設(shè)計(jì)來說往往意味著工作量的增加,那么,如何找到一種辦法進(jìn)行批量設(shè)計(jì),成為亟待解決的問題。
基于這種現(xiàn)狀,本文介紹一種算法,使設(shè)計(jì)者可以在Excel(或其他軟件)中通過編程的方法,實(shí)現(xiàn)靜電過濾器的自動排布。以及,對排布之后的結(jié)果輸出,作為下游設(shè)計(jì)(如鈑金設(shè)計(jì))輸入。
1解決方案
1.1背景介紹
1.1.1設(shè)計(jì)輸入與輸出
不同規(guī)格的空調(diào)箱,對應(yīng)多種長寬尺寸,在本文所述自動排布的數(shù)學(xué)模型里,相當(dāng)于有多個(gè)矩形框。靜電過濾器也有多種尺寸(本文實(shí)例中有2種型號),每個(gè)尺寸的靜電過濾器,相當(dāng)于一個(gè)小的矩形框。于是,在空調(diào)箱的箱體空間里排布靜電過濾器,抽象成數(shù)學(xué)模型,就是如何選擇合適尺寸的小矩形框,來填充大矩形框的問題。至此,熟悉生產(chǎn)制造工藝的讀者可能會覺得,這個(gè)問題有點(diǎn)類似于板材切割下料時(shí)的排料問題。的確,二者有相似之處,筆者也曾嘗試用排料軟件來實(shí)現(xiàn)自動排布。但結(jié)論是,二者算法上還是存在差異,無法套用現(xiàn)成的軟件來實(shí)現(xiàn)。區(qū)別如下:
因此,無法用現(xiàn)成軟件來達(dá)到目的。
綜上,設(shè)計(jì)輸入為:
機(jī)組的長寬系列尺寸
可選靜電過濾器型號及尺寸
設(shè)計(jì)輸出為:
每個(gè)機(jī)組的靜電過濾器布局
確定布局后,輸出所用靜電過濾器的數(shù)量、前后左右的剩余間隙(為鈑金件設(shè)計(jì)提供數(shù)據(jù))、對應(yīng)風(fēng)量(為系統(tǒng)計(jì)算阻力提供參數(shù));
1.1.2靜電過濾器型號及特點(diǎn)
本例可選靜電過濾器有兩種,代號分別為DV、SV,結(jié)構(gòu)見下圖。二者結(jié)構(gòu)特點(diǎn)為:
1.DV只能豎放;SV可以橫放也可以豎放;
2.一臺DV的通風(fēng)量是SV的2倍;
3.一臺DV的成本低于兩臺SV的成本;
1.1.3靜電過濾器的排布規(guī)則
首先,請讀者想象,我們要像搭積木一樣,用可選的兩種靜電過濾器的“搭”出一個(gè)矩形框??紤]1.2.1中所述的靜電過濾器的特點(diǎn),制定排布規(guī)則如下:
1.DV可以在單位成本下實(shí)現(xiàn)更大的通風(fēng)量,因此從成本上考慮,應(yīng)盡可能多用DV;
2.水平方向,對用DV排布之后,剩余的空間,嘗試用SV(豎放)填充;豎直方向,對DV排布之后,剩余的空間,嘗用SV(橫放)填充;
3.對某些空間尺寸,可能全部用SV(橫放)填充;
然后,我們要做的是,把靜電過濾器排出的矩形框,往空調(diào)箱的箱體空間里放,這個(gè)過程相當(dāng)于把一個(gè)小矩形框放到令外一個(gè)大矩形框里。此過程規(guī)則如下:
1.考慮向一側(cè)靠邊的時(shí)候,可以節(jié)省一塊擋風(fēng)板,但如果導(dǎo)致另一側(cè)間隙過大,則考慮居中;
2.底部需要有鈑金支撐,需要預(yù)留空間因此不能向下靠邊;
3.不能有兩側(cè)同時(shí)靠邊的情況,因?yàn)榇藭r(shí)結(jié)構(gòu)無法固定(兩邊懸空);
1.2算法介紹
1.2.1總則
請讀者思考,當(dāng)我們在CAD里人工排布的時(shí)候,會怎么做?我們一般會按照這樣的思路:
v首先,我們會沿著X方向先排第一行,當(dāng)單純考慮一個(gè)方向,我們可能有兩種排法,即豎排和橫排,代碼為V和H;
v然后,我們會把第一行陣列,去排Y方向。這時(shí),我們的排布結(jié)果可能是V,VH,H;
v最后我們會綜合X方向、Y方向的排布,做出對比,決定最后的排布方式。
程序設(shè)計(jì)邏輯亦是如此,下面分步介紹。
1.2.2計(jì)算由橫向尺寸決定的排布代碼
邏輯如下:
1.如果SV17_H < sec_w < DV34_W,說明機(jī)組寬度只能放下一個(gè)SV,則此時(shí)arg_cod_row = "V"
2.如果sec_w > DV34_W
a.判斷用n個(gè)DV排布之后,剩余空間能否放下一個(gè)SV
i.如果不能,則按照Hgap_V =sec_w - Int(1) ((sec_w - OverLap) / (DV34_W - OverLap)) * DV34_W,計(jì)算水平間隙;
ii.如果能,則按照Hgap_V = sec_w - Int((sec_w - OverLap) / (DV34_W - OverLap)) * DV34_W - (SV17H_H - OverLap),計(jì)算水平間隙;
b.計(jì)算如果排列方式為H時(shí)的水平間隙,Hgap_H = sec_w Mod(2) SV17_H
c.對比兩種方案,如果Hgap_H < Hgap_V,則arg_cod_row = "H",否則arg_cod_row = "V";
(1)Int為取整函數(shù);(2)Mod為取余函數(shù)
1.2.3計(jì)算由縱向尺寸決定的排布代碼
邏輯如下:
1.判斷用n個(gè)DV豎直擺放后Y方向的剩余間隙,能否放下一個(gè)SV(橫放)
a.如果不能,則Vgap_V = sec_h Mod DV34_H,arg_cod_col = "V"
b.如果能,則 Vgap_V = sec_h Mod DV34_H - SV17_W,arg_cod_col = "VH"
2.求當(dāng)全部由SV橫放時(shí),Y方向的剩余間隙Vgap_H = sec_h Mod SV17_W
3.對比步驟1所得間隙和步驟2所得間隙,如果Vgap_H < Vgap_V,則arg_cod_col = "H"
1.2.4綜合橫向排布代碼和縱向排布代碼,做出最終決策
針對可能的組合,分別判斷,邏輯如下:
Case1:毫無疑問,最終排布代碼arg_cod=V;
Case2: 組合最終排布方式可能是V和H,這時(shí)要用一個(gè)風(fēng)量計(jì)算函數(shù)(3)比較兩種方式的出風(fēng)量,如果V排布下風(fēng)量大,則arg_cod=V,否則arg_cod=H;
Case3: 組合排布方式可能是V、H、或VH。這種情況比較容易造成誤判,而遺漏VH,需要特別注意。
問題在于,我們最后要拿由單個(gè)方向的最優(yōu)排布策略決定的最終排布,去做對比。如果單純考慮垂直方向的最優(yōu)策略為H,那么最終決策是H。如果單純考慮水平方向最優(yōu)策略為V時(shí),最終策略可能為V,也有可能是VH。那么我們得到三種可能的最終排布方式,即H、V、VH。
因此,我們需要比較排布為V、VH、H三種情況下的風(fēng)量,風(fēng)量大者為最終排布代碼;
Case4: 毫無疑問,最終排布代碼arg_cod=H;
Case5: 毫無疑問,最終排布代碼arg_cod=VH;
Case6: 組合最終排布方式可能是VH和H,比較兩種方式的出風(fēng)量,如果VH排布下風(fēng)量大,則arg_cod=VH,否則arg_cod=H;
(3)風(fēng)量計(jì)算函數(shù)包含在結(jié)果輸出函數(shù)里,結(jié)果輸出函數(shù)的輸入是最終的排布代碼arg_cod,sec_w,sec_h,輸出為SV以及DV的行列數(shù),以及在此種代碼排布下的風(fēng)量;
1.3結(jié)果數(shù)據(jù)輸出
將上述步驟中計(jì)算得到的排布代碼、位置代碼、DV/SV的行列數(shù)、組合寬度、組合高度、底部間隙、左側(cè)間隙、風(fēng)量等參數(shù),輸出到相應(yīng)的表單里。
其中,底部間隙、左側(cè)間隙即為設(shè)計(jì)鈑金件的輸入?yún)?shù)。
1.4數(shù)據(jù)檢驗(yàn)
1.4.1Excel驅(qū)動CAD實(shí)現(xiàn)自動排圖
在結(jié)果數(shù)據(jù)輸出以后,如何驗(yàn)證?直觀的辦法就是在CAD里作圖,看排布的情況到底如何。那么如果程序能夠根據(jù)結(jié)果數(shù)據(jù),調(diào)用CAD自動畫排布圖,那么會使問題數(shù)據(jù)的檢驗(yàn)、甄別非常高效。
自動畫圖實(shí)現(xiàn)的手段為:
先將DV、SV做成圖塊,存在一個(gè)固定模板里;
利用程序調(diào)用此模板,并調(diào)用1.3輸出的結(jié)果數(shù)據(jù),實(shí)現(xiàn)圖塊的自動組裝;
與此同時(shí),完成箱體邊框、風(fēng)口的繪制,以及尺寸的標(biāo)注等過程。
2優(yōu)勢與不足
2.1優(yōu)勢
2.1.1效率的提高
當(dāng)組合數(shù)很多,再用傳統(tǒng)的手段在CAD中逐個(gè)排圖,效率很低。
程序?qū)τ谂康闹貜?fù)性勞動無疑是最好的選擇,一旦程序設(shè)計(jì)好,運(yùn)行時(shí)間是可以忽略的。尤其在設(shè)計(jì)要變更,邏輯變化的時(shí)候,只需要修改少量代碼即可實(shí)時(shí)地得到運(yùn)算結(jié)果。
2.1.2設(shè)計(jì)過程標(biāo)準(zhǔn)化
傳統(tǒng)設(shè)計(jì)手段在面臨如此大數(shù)據(jù)量的時(shí)候,只能通過分段,分項(xiàng)目逐次設(shè)計(jì)的辦法實(shí)現(xiàn)。但這樣很難保證兩次設(shè)計(jì)的一致性,從而使設(shè)計(jì)不能按照統(tǒng)一原則進(jìn)行。為以后統(tǒng)型、修改帶來不便。
如果用程序設(shè)計(jì),程序代碼本身就是對整個(gè)設(shè)計(jì)過程的很好記錄。程序運(yùn)行可以保證結(jié)果數(shù)據(jù)是按照統(tǒng)一規(guī)則得到,可以大大降低錯誤發(fā)生率。
2.1.3方便后續(xù)擴(kuò)展
用傳統(tǒng)的設(shè)計(jì)手段,如果想新增靜電過濾器型號,那意味著要重復(fù)整個(gè)設(shè)計(jì)過程。而用程序設(shè)計(jì),只需要擴(kuò)展基礎(chǔ)數(shù)據(jù)表,再運(yùn)行一下程序,即可得到結(jié)果,大大方便了后續(xù)數(shù)據(jù)的擴(kuò)展。
2.2不足
本文中所述算法,是以實(shí)現(xiàn)最大通風(fēng)量作為選擇排布方式的主要依據(jù)的,但有的空調(diào)箱,不一定非要把過濾器排到最“滿”,就可以滿足系統(tǒng)風(fēng)量的要求。這時(shí),需要對結(jié)果數(shù)據(jù)中的風(fēng)量,與系統(tǒng)要求風(fēng)量對比。
另外,如果結(jié)構(gòu)上不能按照一個(gè)統(tǒng)一的規(guī)則設(shè)計(jì),那么輸出結(jié)果仍然需要再進(jìn)一步處理,才能滿足工程需要。例如,當(dāng)SV橫排時(shí),即排布代碼為H時(shí),如果小于2行,排布方式是兩個(gè)過濾器直接搭接。如果大于2行,那么每2行之間需要加隔板加強(qiáng)。這樣就意味著設(shè)計(jì)就不能按統(tǒng)一規(guī)律進(jìn)行,這樣輸出的結(jié)果就要再考慮這些特殊因素進(jìn)行修正后才能使用。
當(dāng)然,即便如此,輸出結(jié)果對設(shè)計(jì)仍然具有很強(qiáng)的指導(dǎo)意義。
3結(jié)束語
本文主要闡述了一種實(shí)現(xiàn)靜電過濾器在空調(diào)箱里自動排布的算法,并且用程序的手段,將數(shù)據(jù)快速地變成AutoCAD中的圖形,以便實(shí)時(shí)進(jìn)行數(shù)據(jù)可視化檢驗(yàn)。
此外,就算法本身,也仍然可以拓展,例如,如果我們可以引入成本參數(shù),把滿足設(shè)計(jì)需求的前提下成本最小化當(dāng)作衡量指標(biāo),追求成本最低。這樣輸出結(jié)果,就可以作為降低成本項(xiàng)目方案選擇的指導(dǎo)。本文中靜電過濾器待選型號為2種,如果是多種,則排布方式將有所不同,需要對算法進(jìn)行調(diào)整。
當(dāng)然,如果用Creo軟件進(jìn)行建模、出圖,那么可以將數(shù)據(jù)格式設(shè)計(jì)成和Creo里的族表里參數(shù)格式一致。這樣,從Excel里輸出的數(shù)據(jù),作為三維建模時(shí)的輸入,直接復(fù)制到族表里,即可驅(qū)動Creo實(shí)現(xiàn)批量模型生成。如此,即可完成從設(shè)計(jì)輸入(參數(shù)表),到設(shè)計(jì)輸出(模型、圖紙)的整個(gè)過程的參數(shù)化、自動化。
參考文獻(xiàn):
[1] 張帆,鄭立楷,王華杰 AutoCAD VBA 開發(fā)精彩實(shí)例教程[M].北京:清華大學(xué)出版社,2004.
[2] Excel Home,Excel VBA 實(shí)戰(zhàn)技巧精粹[M]. 北京:人民郵電出版社,2013.
[3] 靜電過濾器廠家樣本.
【通聯(lián)編輯:梁書】