这是两个月之前的业余之作。 首先看成果。 [flash=media]https://www.zhihu.com/video/1305180656049934336[/flash] 两个月前,我陷入一个比较急的项目,每天都在改方案之中度过。 于是就试图寻找一种方法能将我从这种困境中解脱出来。 地库强排系统因此而来。 话不多说,先讲逻辑。 一般来说,停车方式共有三种,平行式、斜列式、垂直式。
而地库停车最常规也最经济的方案就是垂直式停车。 我们以此为例进行研究。
这是四组常规垂直式停车示意图,图中数据是我所在的院里常用的数据,相对来说比较经济。 第一步,我们找出图中可变数据,所有变量可以进行宏观控制与微观调节。 1、车位尺寸。 常规尺寸为2400mm*5300mm,为了应对多种可变情况,我们认为车位尺寸也是可变的。 2、柱子。 常规尺寸为500mm*500mm,为了应对多种可变情况,我们认为柱子尺寸也是可变的。 3、柱子与停车位的间距。 一般为100mm或者150mm,本次研究按100处理,不再作可变研究。 4、车道宽度。 一般为5500mm,这里留点余量,按5600mm,当然,这个也是可变的。 5、车位方向。 我们不希望车位永远是正南正北排布,它可以旋转一定角度,这个角度不能能是没有原因的。 比如一个矩形车库,我们研究发现,车位平行于长边布置的停车效率最高。 所以,车位的方向,跟地库轮廓的边有关。 那么我们就可以依据地库轮廓来确定车位的方向在哪儿才能高效停车。 综上,我们有四组可变数据(上文第3组暂不考虑)。
第二步,简化。
通过简化,我们可以用8000mm*16200mm的矩阵点代表每组车库,这样,我们就可以在地库范围内布置这些点阵,从而完成地库的布置。 这里有两个问题: 第一 8000mm的横向间距包含两个变量,车位的宽度和柱子的宽度,车位与柱子之间的间距默认为100mm,即变量1:车位尺寸;变量2:柱子尺寸。
我们用公式表示可以为:点阵横向间距W=3*a+150+b+150=3a+b+300. 同理,假设车位长度为l,车道宽度为m,那么点阵竖向间距H=2l+m
第二 点阵中的每个点控制的一组车位如果离非停车区域过近, 比如,距离地库轮廓线的间距小于一个车位长度加一个车道宽度, 就会造成这里车位压到车库轮廓线上或者车道宽度不够,车位无法使用, 这是不能接受的。 因此,我们将点阵分为两类,距离停车范围线过近的和正常的。 过近的点改为单向停车组合,正常的还是双向停车
(图示:单向停车组合的两种形式。) 要想一个系统不出错,最好的方式就是给它上个保险,这个保险就是用两套算法来控制。 所以,我们用的第二套算法是布尔运算。 判断车位超界,删除即可。 巧妇难为无米之炊,确定了基本逻辑和变量,我们还需要输入条件。 主要有三个条件:停车区域、不停车区域、车道控制线。 停车区域:即车库轮廓线。 不停车区域:建筑轮廓线、地下设备间轮廓线等 车道控制线:程序自主判断主链接车道位置相对较死板,因此纵向链接车道位置我们人工控制。 综上,我们整个系统的逻辑闭环已经完成,剩下的只是电池组的组合问题。 在电池图中,我加入了遗传算法电池,试图寻找点阵在地库范围之内的不同位置所能产生的最优解,无奈运算量太大,电脑总会卡死,因此遗传算法并未演示。 电池图上各逻辑组的作用注释较为清楚,此处不再作过多解释,看电池图即可。
|