APP下载

空调箱中静电过滤器自动排布算法研究

2019-05-24张文晓

电脑知识与技术 2019年9期

张文晓

摘要:本文旨在介绍一种算法,实现空调箱过滤段中静电过滤器的自动排布,以及参数输出。

關键词:空调箱;静电过滤器;自动排布;CAD自动画图

中图分类号:TP391 文献标识码: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

在发展中国家,随着城市经济的迅猛发展,机场、地铁、火车站、酒店等大型公共建筑与人们的生活、工作日益密切。人们在享受着中央空调带来前所未有的舒适的同时,却正在失去或已经失去了可贵的健康!人类在经历了“煤烟污染”“光化学烟雾污染”危害之后,正在进入以“空气污染为主的第三代污染时期。如何治理改善密闭建筑的室内空气质量,创造安全舒适的生活环境,已经成为近年来全球暖通空调专业人士关注的重点课题之一。

随着对空气过滤等级的要求越来越高,静电过滤器以其高效净化、高效节能、绿色环保等优点,受到客户青睐。然而,为了满足客户需要,目前空调箱产品的最大特点是——配置多。配置的增加对于设计来说往往意味着工作量的增加,那么,如何找到一种办法进行批量设计,成为亟待解决的问题。

基于这种现状,本文介绍一种算法,使设计者可以在Excel(或其他软件)中通过编程的方法,实现静电过滤器的自动排布。以及,对排布之后的结果输出,作为下游设计(如钣金设计)输入。

1解决方案

1.1背景介绍

1.1.1设计输入与输出

不同规格的空调箱,对应多种长宽尺寸,在本文所述自动排布的数学模型里,相当于有多个矩形框。静电过滤器也有多种尺寸(本文实例中有2种型号),每个尺寸的静电过滤器,相当于一个小的矩形框。于是,在空调箱的箱体空间里排布静电过滤器,抽象成数学模型,就是如何选择合适尺寸的小矩形框,来填充大矩形框的问题。至此,熟悉生产制造工艺的读者可能会觉得,这个问题有点类似于板材切割下料时的排料问题。的确,二者有相似之处,笔者也曾尝试用排料软件来实现自动排布。但结论是,二者算法上还是存在差异,无法套用现成的软件来实现。区别如下:

因此,无法用现成软件来达到目的。

综上,设计输入为:

机组的长宽系列尺寸

可选静电过滤器型号及尺寸

设计输出为:

每个机组的静电过滤器布局

确定布局后,输出所用静电过滤器的数量、前后左右的剩余间隙(为钣金件设计提供数据)、对应风量(为系统计算阻力提供参数);

1.1.2静电过滤器型号及特点

本例可选静电过滤器有两种,代号分别为DV、SV,结构见下图。二者结构特点为:

1.DV只能竖放;SV可以横放也可以竖放;

2.一台DV的通风量是SV的2倍;

3.一台DV的成本低于两台SV的成本;

1.1.3静电过滤器的排布规则

首先,请读者想象,我们要像搭积木一样,用可选的两种静电过滤器的“搭”出一个矩形框。考虑1.2.1中所述的静电过滤器的特点,制定排布规则如下:

1.DV可以在单位成本下实现更大的通风量,因此从成本上考虑,应尽可能多用DV;

2.水平方向,对用DV排布之后,剩余的空间,尝试用SV(竖放)填充;竖直方向,对DV排布之后,剩余的空间,尝用SV(横放)填充;

3.对某些空间尺寸,可能全部用SV(横放)填充;

然后,我们要做的是,把静电过滤器排出的矩形框,往空调箱的箱体空间里放,这个过程相当于把一个小矩形框放到令外一个大矩形框里。此过程规则如下:

1.考虑向一侧靠边的时候,可以节省一块挡风板,但如果导致另一侧间隙过大,则考虑居中;

2.底部需要有钣金支撑,需要预留空间因此不能向下靠边;

3.不能有两侧同时靠边的情况,因为此时结构无法固定(两边悬空);

1.2算法介绍

1.2.1总则

请读者思考,当我们在CAD里人工排布的时候,会怎么做?我们一般会按照这样的思路:

v首先,我们会沿着X方向先排第一行,当单纯考虑一个方向,我们可能有两种排法,即竖排和横排,代码为V和H;

v然后,我们会把第一行阵列,去排Y方向。这时,我们的排布结果可能是V,VH,H;

v最后我们会综合X方向、Y方向的排布,做出对比,决定最后的排布方式。

程序设计逻辑亦是如此,下面分步介绍。

1.2.2计算由横向尺寸决定的排布代码

逻辑如下:

1.如果SV17_H < sec_w < DV34_W,说明机组宽度只能放下一个SV,则此时arg_cod_row = "V"

2.如果sec_w > DV34_W

a.判断用n个DV排布之后,剩余空间能否放下一个SV

i.如果不能,则按照Hgap_V =sec_w - Int(1) ((sec_w - OverLap) / (DV34_W - OverLap)) * DV34_W,计算水平间隙;

ii.如果能,则按照Hgap_V = sec_w - Int((sec_w - OverLap) / (DV34_W - OverLap)) * DV34_W - (SV17H_H - OverLap),计算水平间隙;

b.计算如果排列方式为H时的水平间隙,Hgap_H = sec_w Mod(2) SV17_H

c.对比两种方案,如果Hgap_H < Hgap_V,则arg_cod_row = "H",否则arg_cod_row = "V";

(1)Int为取整函数;(2)Mod为取余函数

1.2.3计算由纵向尺寸决定的排布代码

逻辑如下:

1.判断用n个DV竖直摆放后Y方向的剩余间隙,能否放下一个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.求当全部由SV横放时,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,这时要用一个风量计算函数(3)比较两种方式的出风量,如果V排布下风量大,则arg_cod=V,否则arg_cod=H;

Case3: 组合排布方式可能是V、H、或VH。这种情况比较容易造成误判,而遗漏VH,需要特别注意。

问题在于,我们最后要拿由单个方向的最优排布策略决定的最终排布,去做对比。如果单纯考虑垂直方向的最优策略为H,那么最终决策是H。如果单纯考虑水平方向最优策略为V时,最终策略可能为V,也有可能是VH。那么我们得到三种可能的最终排布方式,即H、V、VH。

因此,我们需要比较排布为V、VH、H三种情况下的风量,风量大者为最终排布代码;

Case4: 毫无疑问,最终排布代码arg_cod=H;

Case5: 毫无疑问,最终排布代码arg_cod=VH;

Case6: 组合最终排布方式可能是VH和H,比较两种方式的出风量,如果VH排布下风量大,则arg_cod=VH,否则arg_cod=H;

(3)风量计算函数包含在结果输出函数里,结果输出函数的输入是最终的排布代码arg_cod,sec_w,sec_h,输出为SV以及DV的行列数,以及在此种代码排布下的风量;

1.3结果数据输出

将上述步骤中计算得到的排布代码、位置代码、DV/SV的行列数、组合宽度、组合高度、底部间隙、左侧间隙、风量等参数,输出到相应的表单里。

其中,底部间隙、左侧间隙即为设计钣金件的输入参数。

1.4数据检验

1.4.1Excel驱动CAD实现自动排图

在结果数据输出以后,如何验证?直观的办法就是在CAD里作图,看排布的情况到底如何。那么如果程序能够根据结果数据,调用CAD自动画排布图,那么会使问题数据的检验、甄别非常高效。

自动画图实现的手段为:

先将DV、SV做成图块,存在一个固定模板里;

利用程序调用此模板,并调用1.3输出的结果数据,实现图块的自动组装;

与此同时,完成箱体边框、风口的绘制,以及尺寸的标注等过程。

2优势与不足

2.1优势

2.1.1效率的提高

当组合数很多,再用傳统的手段在CAD中逐个排图,效率很低。

程序对于批量的重复性劳动无疑是最好的选择,一旦程序设计好,运行时间是可以忽略的。尤其在设计要变更,逻辑变化的时候,只需要修改少量代码即可实时地得到运算结果。

2.1.2设计过程标准化

传统设计手段在面临如此大数据量的时候,只能通过分段,分项目逐次设计的办法实现。但这样很难保证两次设计的一致性,从而使设计不能按照统一原则进行。为以后统型、修改带来不便。

如果用程序设计,程序代码本身就是对整个设计过程的很好记录。程序运行可以保证结果数据是按照统一规则得到,可以大大降低错误发生率。

2.1.3方便后续扩展

用传统的设计手段,如果想新增静电过滤器型号,那意味着要重复整个设计过程。而用程序设计,只需要扩展基础数据表,再运行一下程序,即可得到结果,大大方便了后续数据的扩展。

2.2不足

本文中所述算法,是以实现最大通风量作为选择排布方式的主要依据的,但有的空调箱,不一定非要把过滤器排到最“满”,就可以满足系统风量的要求。这时,需要对结果数据中的风量,与系统要求风量对比。

另外,如果结构上不能按照一个统一的规则设计,那么输出结果仍然需要再进一步处理,才能满足工程需要。例如,当SV横排时,即排布代码为H时,如果小于2行,排布方式是两个过滤器直接搭接。如果大于2行,那么每2行之间需要加隔板加强。这样就意味着设计就不能按统一规律进行,这样输出的结果就要再考虑这些特殊因素进行修正后才能使用。

当然,即便如此,输出结果对设计仍然具有很强的指导意义。

3结束语

本文主要阐述了一种实现静电过滤器在空调箱里自动排布的算法,并且用程序的手段,将数据快速地变成AutoCAD中的图形,以便实时进行数据可视化检验。

此外,就算法本身,也仍然可以拓展,例如,如果我们可以引入成本参数,把满足设计需求的前提下成本最小化当作衡量指标,追求成本最低。这样输出结果,就可以作为降低成本项目方案选择的指导。本文中静电过滤器待选型号为2种,如果是多种,则排布方式将有所不同,需要对算法进行调整。

当然,如果用Creo软件进行建模、出图,那么可以将数据格式设计成和Creo里的族表里参数格式一致。这样,从Excel里输出的数据,作为三维建模时的输入,直接复制到族表里,即可驱动Creo实现批量模型生成。如此,即可完成从设计输入(参数表),到设计输出(模型、图纸)的整个过程的参数化、自动化。

参考文献:

[1] 张帆,郑立楷,王华杰 AutoCAD VBA 开发精彩实例教程[M].北京:清华大学出版社,2004.

[2] Excel Home,Excel VBA 实战技巧精粹[M]. 北京:人民邮电出版社,2013.

[3] 静电过滤器厂家样本.

【通联编辑:梁书】