HEATS 发表于 2010-9-12 10:20:40

FMS的刀具流在线优化控制策略

<DD>在FMS的刀具管理中,刀具流的路径决策是最关键也是最复杂的控制问题,除了保障正确选用刀具外,它还关系到能否减少装卸刀具的时间,最大限度地利用刀具的使用寿命,降低生产成本,提高生产效率。然而该问题的复杂性高,目前的优化控制主要采用启发式算法,计算比较繁琐,难以把握优化效果,另外在多目标、在线控制方法上还有许多值得改进的地方。本文提出一种均值优化控制策略解决上述问题。<BR>
<H1><FONT size=2>1 均值控制</FONT></H1>
<DD>均值控制是对待优化元素的整体平均选优方法。其基本思想是:存在被排序元素A={a<SUB>1</SUB>、a<SUB>2</SUB>、…、a<SUB>n</SUB>},已排成的元素序列为<FONT size=+0><BR>face=symbol&gt;a</FONT>=a<SUP>(1)</SUP> a<SUP>(2)</SUP>…a<SUP>(k)</SUP>,a<SUP>i</SUP>∈A,i∈[1,k];正在排序元素a<SUP>△</SUP>∈A,未排序元素序列<FONT face=symbol>b</FONT>=b<SUP>(1)</SUP>b<SUP>(2)</SUP>…b<SUP>(p)</SUP>,b<SUP>(j)</SUP>∈A,j∈[1,p],p+k=n-1。<BR>&nbsp;
<DD>存在评价函数F(<FONT face=symbol>a</FONT>,aΔ,<FONT face=symbol>b</FONT>,C),其中C是(<FONT size=+0><BR>face=symbol&gt;a</FONT>,aΔ,<FONT face=symbol>b</FONT>)和其它对象的函数。由于<FONT size=+0><BR>face=symbol&gt;a</FONT>和<FONT face=symbol>b</FONT>的排列方式的总数是其各自包含的元素总数的阶乘倍,而目标函数F又是<FONT face=symbol>a</FONT>和<FONT face=symbol>b</FONT>的排列方式的函数,这样<FONT size=+0><BR>face=symbol&gt;a</FONT>和<FONT face=symbol>b</FONT>的元素数量稍大一点,要以穷举方式找到最优F及其<FONT face=symbol>a</FONT>、aΔ、<FONT face=symbol>b</FONT>,就存在计算量过大的问题。如果把<FONT size=+0><BR>face=symbol&gt;a</FONT>和<FONT face=symbol>b</FONT>的各元素及其对F的影响平均看待,如同<FONT size=+0><BR>face=symbol&gt;a</FONT>只是由k个相同的“平均”元素构成,<FONT face=symbol>b</FONT>只是由p个相同的“平均”元素构成,则求F就只考虑<FONT face=symbol>a</FONT>、aΔ、<FONT face=symbol>b</FONT>由什么元素构成就行了,不必考虑其排列方式。在<FONT face=symbol>b</FONT>中选遍所有的元素作为aΔ,找其中一个最好的F,其对应的aΔ就被固定下来了。依此类推可将<FONT face=symbol>b</FONT>的元素依次排列完毕。<BR>可以证明,这种算法是一种多项式算法。&nbsp;<BR>
<H1><FONT size=2>2 刀具流的控制机制</FONT></H1><B>2.1 评价函数</B><BR>&nbsp;
<DD>在FMS中根据多个零件的加工顺序和每个零件的工艺要求形成零件,由此选择不同类型的刀具。同一类型的刀具可有多个,这些具有完全相同的加工功能的姊妹刀具的选择是本文讨论的对象。<BR>&nbsp;
<DD>尽管姊妹刀具的加工功能相同,但它们的使用寿命却不一定相同,总是希望每把刀具都竭尽其寿命,“边角余料”尽量少。按此目标建立评价函数F。在零件对一种刀具需求序列中,将<FONT face=symbol>a</FONT>作为已经排好的元素集合,aΔ作为正在试排的元素,<FONT face=symbol>b</FONT>作为没有排列的元素集合。 <IMG alt=1 src="http://www.chmcw.com/upload/news/RCL/13220_4cjvll2008030305.gif" border=0><BR><BR>式中<BR><BR> g<SUB>j</SUB>——第j把姊妹刀具的均值剩余寿命,它是t<SUB>i</SUB>整除<BR><IMG alt=1 src="http://www.chmcw.com/upload/news/RCL/13220_1tulbp2008030307.gif" border=0>后的余数<BR><BR> t<SUB>i</SUB>——第j把姊妹刀具的余留使用寿命<BR> <IMG height=1 alt="" width=1 tao.gif?="" 10??="" 17??="" tao.gif="" (161="" bytes)??="" images="">&nbsp; <BR> <IMG alt=1 src="http://www.chmcw.com/upload/news/RCL/13220_1tulbp2008030307.gif" border=0>——未排序的零件对刀具的需求序列中每次需求的平均使用时间<BR><BR> τ<SUB>i</SUB>——未排序的零件对刀具的需求序列中第i次需求使用时间&nbsp;<IMG alt=1 src="http://www.chmcw.com/upload/news/RCL/13220_xivljz2008030306.gif" border=0><BR><BR>   p——未排序的零件对刀具的总需求次数,也即<FONT face=symbol>b</FONT>的长度,i∈<FONT face=symbol>b</FONT><BR><BR><B>2.2 递推计算过程</B>
<DD>先选一个<FONT face=symbol>b</FONT>中的元素作为aΔ1,此时<FONT face=symbol>b</FONT>′=<FONT size=+0><BR>face=symbol&gt;b</FONT>-aΔ1,用式(1)和(2)求出F<SUP>(1)</SUP>并记下,随后将aΔ1放回<FONT size=+0><BR>face=symbol&gt;b</FONT>中,另选一个<FONT face=symbol>b</FONT>中的元素作为aΔ2,此时<FONT size=+0><BR>face=symbol&gt;b</FONT>′=<FONT face=symbol>b</FONT>-aΔ2,求出F<SUP>(2)</SUP>并记下,依此方法将<FONT face=symbol>b</FONT>中的p个元素都作为aΔ试排一次,直到求出F<SUP>(p)</SUP>,从中选一个最小的F<SUP>(*)</SUP>,固定aΔ*的顺序,并把aΔ*作为<FONT face=symbol>a</FONT>的最后一个元素,然后从余下的<FONT face=symbol>b</FONT>中进行新一轮的aΔ选择,直到把<FONT face=symbol>b</FONT>中的元素全部排完。<BR>&nbsp;
<DD>在比较和选择F<SUP>(*)</SUP>时,有时会出现多个相等的最小F<SUP>(i)</SUP>,可以任选其中一个,也可乘机进行微调:如果希望无用剩余寿命都集中在少数刀具上,就选F的g<SUB>j</SUB>的均方差较大的F;如果希望无用剩余寿命都分散在多把刀具上,就选F的g<SUB>j</SUB>的均方差较小的F。<BR>
<H1><FONT size=2>3 全局决策</FONT></H1><B>3.1 刀具迟滞时间</B><BR>&nbsp;
<DD>刀具迟滞时间就是机床停工等待该刀具的时间,它直接影响FMS的生产效率。刀具的控制应设法使刀具迟滞时间减少到最小。定性地说,刀具在机床需要时所处的位置决定刀具迟滞时间的大小,该时间的大小位置关系是:在其它机床的使用位置>在其它机床的局部刀库>在中央刀库>在本地局部刀库。<BR>&nbsp;
<DD>设:LT<SUB>ij</SUB>为第i台机床停工等待第j把刀具的迟滞时间,P<SUB>k</SUB>为刀具正在第k台机床加工零件时对该零件的剩余加工时间,tp<SUB>kj</SUB>为刀具j从其它第k台机床的使用位置到本地局部刀库的传输时间,ta<SUB>kj</SUB>为刀具j从其它第k台机床的局部刀库到本地局部刀库的传输时间,tc<SUB>j</SUB>为刀具j从中央刀库到本地局部刀库的传输时间。于是有<BR>&nbsp;
<DD>LT<SUB>ij</SUB>=P<SUB>k</SUB>+tp<SUB>kj</SUB>(当刀具j在第k台机床的使用位置时)<BR>&nbsp;
<DD>LT<SUB>ij</SUB>=ta<SUB>kj</SUB>(当刀具j在第k台机床的局部刀库时)
<DD>LT<SUB>ij</SUB>=tc<SUB>j</SUB>(当刀具j在中央刀库时)<BR>&nbsp;
<DD>上述式子忽略采用任何刀具都存在的刀具在即将使用位置和本地局部刀库之间的上下刀时间。<BR><BR><STRONG>3.2 总评价函数</STRONG><BR>&nbsp;
<DD>刀具流的总评价函数应该既要考虑刀具的利用率,又要保障FMS有较高的生产效率。因此&nbsp;<BR>G<SUB>j</SUB>=<FONT face=symbol>l</FONT>F<SUP>(j)</SUP>+LT<SUB>ij</SUB>
<TABLE>
<TBODY>
<TR>
<TD><FONT size=2>式中 </FONT></TD>
<TD><FONT size=2>G<SUB>j</SUB>----刀具j的总评价函数<BR>&nbsp;</FONT></TD></TR>
<TR>
<TD><FONT size=2>&nbsp;</FONT></TD>
<TD><FONT size=2><FONT face=symbol>l</FONT>----调节系数,<FONT face=symbol>l</FONT>≥1</FONT></TD></TR></TBODY></TABLE><BR>  这样在线控制时,每一轮都要计算每一把刀具的G<SUB>j</SUB>,选用具有最小G<SUB>j</SUB>的刀具。对所有类型的姊妹刀都可用上述方法进行选配,完成全部刀具流的控制。
<H1><FONT size=2>4 实例及结论</FONT></H1>
<DD>以下实例采用均值控制方法进行优化。每个例子都给出若干零件对一种类型的姊妹刀的需求序列,该序列的长度就是零件对该类刀具的需求次数,每一次需求都有一段使用时间。每把刀具都有使用寿命。例中总的零件对刀具的使用时间略大于刀具的总使用寿命。
<P align=center><STRONG>均值控制刀具流优化实例和结果</STRONG>
<CENTER>
<TABLE width="90%" border=1>
<TBODY>
<TR>
<TD align=middle><FONT face=宋体 size=2>例    号</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>1</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>2</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>3</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>4</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>5</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>刀具数量</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>3</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>3</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>19</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>30</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>30</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>刀具最大使用寿命(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>40</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>85</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>91</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>91</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>440</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>刀具最小使用寿命(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>25</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>21</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>20</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>20</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>24</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>刀具平均使用寿命(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>33.667</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>51</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>51.15</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>56.4</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>120</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>刀具使用寿命均方差</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>120</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>2072</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>9924</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>15471</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>219807</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>刀具使用寿命总和(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>101</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>153</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>972</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>1692</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>3602</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>零件对刀具的需求次数(次)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>10</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>10</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>46</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>76</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>200</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>最大使用时间(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>13</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>23</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>40</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>43</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>37</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>最小使用时间(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>8</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>11</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>10</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>10</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>10</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>平均使用时间(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>10.4</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>16.6</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>20.24</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>20.842</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>20.16</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>使用时间均方差</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0.6517</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>1.5</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0.9769</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0.7761</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0.4865</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>刀具最大剩余寿命(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>5</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>4</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>13</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>15</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>13</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>刀具最小剩余寿命(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>2</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>刀具平均剩余寿命(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>3</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>3.33</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>4.632</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>4.8</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>4.2667</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>总剩余寿命(min)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>9</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>10</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>88</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>144</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>128</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>计算时间(s)</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>19</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>20</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>32</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>36</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>36</FONT></TD></TR>
<TR>
<TD align=middle><FONT face=宋体 size=2>总刀具寿命利用率</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0.911</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0.935</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0.905</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0.915</FONT></TD>
<TD align=middle><FONT face=宋体 size=2>0.9645</FONT></TD></TR></TBODY></TABLE></CENTER>
<DD>本计算采用奔腾P155计算机,内存为16M,用Visual Basic 5.0编程实现。由于总的刀具需求使用时间大于总的刀具使用寿命,对刀具的需求遵循事先确定的序列,经计算和分派后例中每一把刀具的剩余寿命都无法再完成零件对刀具的下一个需求,也即刀具此时已竭尽其所能。<BR>&nbsp;
<DD>通过这些实例发现:<BR>&nbsp;
<DD>(1)在计算选择刀具时,如果多把刀具的评价函数F都相等,并为最小值,采用具有无用剩余寿命<BR>g<SUB>j</SUB>的均方差最大的刀具,所得总的刀具使用寿命利用率明显优于任选一个具有最小F的刀具的使用寿命利用率,并且前者的无用剩余寿命向少数刀具集中,有利于以后再加利用。表中显示的是第一种方法的结果。但是在运用时除了使用寿命利用率还应考虑刀具的迟滞时间,这一目标有时与第一种方法有矛盾。究竟采用什么方法要根据具体情况来定。<BR>&nbsp;
<DD>(2)算法的计算时间随零件对刀具的需求次数增多的增长慢于随刀具数量增多的增长。影响计算时间的主要因素是刀具数量。<BR>&nbsp;
<DD>(3)例4和例5都采用了30把姊妹刀,对刀具的需求次数为76和200,计算时间都为36s。在FMS中多达30把姊妹刀具同时装于一个系统是比较少见的。因此该算法的计算时间完全可以满足要求。<BR>&nbsp;
<DD>(4)总刀具寿命利用率是刀具总使用时间与刀具使用寿命总和的比值,例子均达到90%以上。<BR>&nbsp;
<DD>FMS的刀具管理的控制采用均值控制算法对以减少刀具无用剩余寿命为目标的优化有令人满意的效果。<BR>&nbsp;
<DD>这种方法从全局着眼选aΔ有较大的可能找到全局最优路线,计算方法简单,适合作在线或非在线控制或优化。 </DD>
               
页: [1]
查看完整版本: FMS的刀具流在线优化控制策略

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网