发明名称 基于流模型的机器组负载预测控制方法
摘要 一种基于流模型的机器组负载预测控制方法,属于自动控制、信息技术和先进制造领域,具体涉及在具有前后两道瓶颈工序且每道瓶颈工序存在多组机器组的复杂生产制造过程中对后道瓶颈工序各机器组负载的预测控制方法,其特征在于包括以下步骤:后道瓶颈工序中机器组负载的定时采样、后道瓶颈工序机器组负载期望值确定、后道瓶颈工序机器组负载d阶预测控制模型建立和前道瓶颈工序机器组控制参数求取。本发明基于流模型和自适应神经模糊推理系统建立后道瓶颈工序各机器组负载预测控制模型,并以后道瓶颈工序各机器组实际负载与期望负载之差的平方和最小为优化控制目标,采用拉格朗日松弛方法,给出前道瓶颈工序各机器组的任务输出率,以提高生产性能。
申请公布号 CN100552574C 申请公布日期 2009.10.21
申请号 CN200810114731.3 申请日期 2008.06.11
申请人 清华大学 发明人 刘民;董明宇;吴澄
分类号 G05B13/04(2006.01)I;G05B13/02(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 北京众合诚成知识产权代理有限公司 代理人 朱 琨
主权项 1、基于流模型的机器组负载预测控制方法,其特征在于,所述方法是在机器组负载预测控制计算机上依次按以下步骤实现的:步骤(1):初始化,设定以下参变量采样时间间隔,每隔时间间隔T给出前道工序中各机器组任务输出率,所述机器组由加工能力相似的多台机器组成,而采样时刻则用k表示;机器组加工能力,是在单位时间内机器组所能完成的加工任务的加工时间总和,前道工序中机器组i的加工能力用u<sub>i</sub>表示,i=1,…,m,用矩阵表示为U=[u<sub>1</sub>,u<sub>2</sub>,…,u<sub>m</sub>]<sup>T</sup>,后道工序中机器组j的加工能力用v<sub>j</sub>表示,j=1,…,n,用矩阵表示为V=[v<sub>1</sub>,v<sub>2</sub>,…,v<sub>n</sub>]<sup>T</sup>,m和n分别为前、后道工序中机器组的数目;前道工序机器组任务输出率,前道工序机器组i基于生产工艺约束在k采样时刻加工完成的任务被安排到后道工序由机器组j加工的比例,用c<sub>ij</sub>(k)表示,用矩阵表示为:<maths num="0001"><![CDATA[<math><mrow><mi>C</mi><msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mrow><mi>n</mi><mo>&times;</mo><mi>m</mi></mrow></msup><mo>=</mo><msup><mrow><mo>[</mo><msub><mi>C</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><msub><mi>C</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msub><mi>C</mi><mi>n</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>]</mo></mrow><mi>T</mi></msup></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><mo>=</mo><mo>[</mo><msup><mi>C</mi><mn>1</mn></msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><msup><mi>C</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msup><mi>C</mi><mi>m</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>c</mi><mn>11</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd><mtd></mtd><mtd><msub><mi>c</mi><mn>21</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>c</mi><mrow><mi>m</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>c</mi><mn>12</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd><mtd></mtd><mtd><msub><mi>c</mi><mn>22</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>c</mi><mrow><mi>m</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><msub><mi>c</mi><mrow><mn>1</mn><mi>n</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd><mtd></mtd><mtd><msub><mi>c</mi><mrow><mn>2</mn><mi>n</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>c</mi><mi>mn</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中0≤c<sub>ij</sub>≤1且<maths num="0004"><![CDATA[<math><mrow><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>c</mi><mi>ij</mi></msub><mo>=</mo><mn>1</mn><mo>,</mo></mrow></math>]]></maths>i=1,…,m;j=1,…,n;机器组负载,工序中某个机器组前等待加工任务的加工时间总和,后道工序机器组j在k时刻的负载表示为y<sub>j</sub>(k),用矩阵表示为Y(k)<sup>n×1</sup>=[y<sub>1</sub>(k),y<sub>2</sub>(k),…,y<sub>n</sub>(k)]<sup>T</sup>;后道工序中机器组j在k时刻的机器负载期望值表示为y<sub>j</sub><sup>r</sup>(k),用矩阵表示为<maths num="0005"><![CDATA[<math><mrow><msup><mi>Y</mi><mi>r</mi></msup><msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mrow><mi>n</mi><mo>&times;</mo><mn>1</mn></mrow></msup><mo>=</mo><msup><mrow><mo>[</mo><msubsup><mi>y</mi><mn>1</mn><mi>r</mi></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><msubsup><mi>y</mi><mn>2</mn><mi>r</mi></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup><mi>y</mi><mi>n</mi><mi>r</mi></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>]</mo></mrow><mi>T</mi></msup><mo>;</mo></mrow></math>]]></maths>中间工序的加工延迟时间用d表示,其是指任务从前道工序加工完毕开始,通过中间工序的加工,到达后道工序所用的平均时间单位,含等待时间;给定的控制周期用T<sub>all</sub>表示;控制周期T<sub>all</sub>内后道工序机器组j的总负载用Load<sub>j</sub>表示;步骤(2):用机器组负载信息采集装置采集机器组负载实时信息,机器组负载信息采集装置由PLC采集装置、嵌入式系统采集装置、DCS系统采集装置中的一种或它们的组合构成;步骤(3):所述的机器组负载预测控制计算机从所述采集装置中读取机器组负载实时信息,依次按以下步骤进行机器组负载预测控制:步骤(3.1):按下式确定各采样间隔时间内后道工序各机器组负载期望值y<sub>j</sub><sup>r</sup>(k),<maths num="0006"><![CDATA[<math><mrow><msubsup><mi>y</mi><mi>j</mi><mi>r</mi></msubsup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>Load</mi><mi>j</mi></msub><mrow><msub><mi>T</mi><mi>all</mi></msub><mo>/</mo><mi>T</mi></mrow></mfrac><mo>,</mo></mrow></math>]]></maths>j=1,…,n步骤(3.2):按下式建立后道工序机器组负载预测控制问题:<maths num="0007"><![CDATA[<math><mrow><mi>J</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><msup><mrow><mo>[</mo><mi>Y</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><msup><mi>Y</mi><mi>r</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo></mrow><mi>T</mi></msup><mo>&CenterDot;</mo><mo>]</mo><mo>[</mo><mi>Y</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><msup><mi>Y</mi><mi>r</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths><maths num="0008"><![CDATA[<math><mrow><mo>+</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msup><mi>C</mi><mi>i</mi></msup><msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mi>T</mi></msup><mo>&CenterDot;</mo><msup><mi>C</mi><mi>i</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></math>]]></maths>求控制律C(k),使得min{J(k+d+1)},其中对所有i满足AC<sup>i</sup>(k)=1,A=[1,1,…,1]<sup>1×m</sup>;步骤(3.3):按下述步骤建立后道工序机器组负载预测控制模型步骤(3.3.1):建立后道工序机器组负载1阶预测控制模型y<sub>j</sub>(k+1)=max{y<sub>j</sub>(k)-v<sub>j</sub>T+[c<sub>1j</sub>(k-d)u<sub>1</sub>+…+c<sub>mj</sub>(k-d)u<sub>m</sub>]T,0}=max{y<sub>j</sub>(k)-Tv<sub>j</sub>+TC<sub>j</sub>(k-d)U,0},j=1,…,n    ,步骤(3.3.2):采用具有L条模糊规则的自适应神经模糊推理系统ANFIS建立后道工序机器组负载d阶预测控制模型即:<maths num="0009"><![CDATA[<math><mrow><mi>Y</mi><msup><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mi>n</mi><mo>&times;</mo><mn>1</mn></mrow></msup><mo>=</mo><msup><mi>X</mi><mrow><mi>n</mi><mo>&times;</mo><mn>1</mn></mrow></msup><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>0</mn></mrow><mi>d</mi></munderover><msubsup><mi>N</mi><mi>q</mi><mrow><mi>n</mi><mo>&times;</mo><mi>n</mi></mrow></msubsup><mo>&CenterDot;</mo><msup><mrow><mo>[</mo><msup><mi>C</mi><mn>1</mn></msup><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mi>d</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msup><mi>C</mi><mi>m</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mi>d</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow><mo>]</mo></mrow><mrow><mi>n</mi><mo>&times;</mo><mi>m</mi></mrow></msup><mo>&CenterDot;</mo><msup><mi>U</mi><mrow><mi>m</mi><mo>&times;</mo><mn>1</mn></mrow></msup></mrow></math>]]></maths><maths num="0010"><![CDATA[<math><mrow><mo>=</mo><msup><mi>X</mi><mrow><mi>n</mi><mo>&times;</mo><mn>1</mn></mrow></msup><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>0</mn></mrow><mi>d</mi></munderover><msubsup><mi>N</mi><mi>q</mi><mrow><mi>n</mi><mo>&times;</mo><mi>n</mi></mrow></msubsup><mo>&CenterDot;</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>u</mi><mi>i</mi></msub><msup><mi>C</mi><mi>i</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mi>d</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow></mrow></math>]]></maths>其中:X<sup>n×1</sup>=[E<sub>1</sub>,E<sub>2</sub>,…,E<sub>n</sub>]<sup>T</sup>,<maths num="0011"><![CDATA[<math><mrow><msub><mi>E</mi><mi>j</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>l</mi><mo>=</mo><mn>1</mn></mrow><mi>L</mi></munderover><msub><mi>h</mi><mi>l</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mo>[</mo><msup><mi>&alpha;</mi><mi>l</mi></msup><mrow><mo>(</mo><msub><mi>y</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>Tv</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>+</mo><msup><mi>&beta;</mi><mi>l</mi></msup><mo>]</mo></mrow></math>]]></maths><img file="C2008101147310003C7.GIF" wi="479" he="249" />q=0,1,…,d,<maths num="0012"><![CDATA[<math><mrow><msub><mi>F</mi><mi>jq</mi></msub><mo>=</mo><mi>T</mi><mo>&CenterDot;</mo><munderover><mi>&Sigma;</mi><mrow><mi>l</mi><mo>=</mo><mn>1</mn></mrow><mi>L</mi></munderover><msub><mi>h</mi><mi>l</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><msubsup><mi>&gamma;</mi><mi>q</mi><mi>l</mi></msubsup><mo>,</mo></mrow></math>]]></maths>h<sub>l</sub>(k)=f<sub>l</sub>(y<sub>j</sub>(k)-Tv<sub>j</sub>,TC<sub>j</sub>(k-d)U,…,TC<sub>j</sub>(k-1)U),是ANFIS输入为y<sub>j</sub>(k)-Tv<sub>j</sub>,TC<sub>j</sub>(k-d)U,…,TC<sub>j</sub>(k-1)U时第l条模糊规则的激发值,f<sub>l</sub>为模糊规则激发值计算函数,其为第l条模糊规则中ANFIS各输入变量所对应模糊数的隶属度函数的乘积,其中,上述模糊数的隶属度函数采用钟形函数,钟形函数中的参数即为ANFIS中待定的前件参数,而ANFIS中待定的后件参数为α<sup>l</sup>,γ<sub>0</sub><sup>l</sup>,γ<sub>1</sub><sup>l</sup>,…,γ<sub>d</sub><sup>l</sup>,β<sup>l</sup>;步骤(3.3.3):采用如下步骤确定ANFIS中的前件参数和后件参数;步骤(3.3.3.1):对所有j=1,2,…,n,随机产生C<sub>j</sub>(k)的值,并按步骤(3.3.1)所述公式计算y<sub>j</sub>(k+1)值,从而产生若干用于训练ANFIS的输入输出训练数据集,其中,输入数据为Y(k),C(k-d),…,C(k-1),输出数据为Y(k+d+1);步骤(3.3.3.2):采用步骤(3.3.2.1)生成的训练数据集及ANFIS经典学习算法,确定ANFIS中待定的前件参数和后件参数;步骤(3.4):根据步骤(3.3)得到的后道工序机器组负载d阶预测控制模型,采用拉格朗日松弛方法按下式计算最佳控制率C(k),其中C<sup>i</sup>(k)为:<maths num="0013"><![CDATA[<math><mrow><msup><mi>C</mi><mi>i</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>u</mi><mi>i</mi></msub><mrow><mo>(</mo><mfrac><mrow><msup><mi>A</mi><mi>T</mi></msup><mi>A</mi></mrow><msup><mi>AA</mi><mi>T</mi></msup></mfrac><mo>-</mo><mi>I</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msup><mrow><mo>[</mo><mi>I</mi><mo>-</mo><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msubsup><mi>u</mi><mi>i</mi><mn>2</mn></msubsup><mo>)</mo></mrow><mo>&CenterDot;</mo><mover><mi>N</mi><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mfrac><mrow><msup><mi>A</mi><mi>T</mi></msup><mi>A</mi></mrow><msup><mi>AA</mi><mi>T</mi></msup></mfrac><mo>-</mo><mi>I</mi><mo>)</mo></mrow><mo>]</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>&CenterDot;</mo><mo>[</mo><mover><mi>X</mi><mo>&OverBar;</mo></mover><mo>+</mo><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>u</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><mfrac><mrow><mover><mi>N</mi><mo>&OverBar;</mo></mover><msup><mi>A</mi><mi>T</mi></msup></mrow><msup><mi>AA</mi><mi>T</mi></msup></mfrac><mo>]</mo><mo>+</mo><mfrac><msup><mi>A</mi><mi>T</mi></msup><msup><mi>AA</mi><mi>T</mi></msup></mfrac><mo>,</mo></mrow></math>]]></maths>其中:I为单位矩阵,<maths num="0014"><![CDATA[<math><mrow><mover><mi>X</mi><mo>&OverBar;</mo></mover><mo>=</mo><msubsup><mi>N</mi><mi>d</mi><mi>T</mi></msubsup><mo>[</mo><mi>X</mi><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>d</mi><mo>-</mo><mn>1</mn></mrow></munderover><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>u</mi><mi>i</mi></msub><msup><mi>C</mi><mi>i</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mi>d</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><msup><mi>Y</mi><mi>r</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo><mo>,</mo></mrow></math>]]></maths><maths num="0015"><![CDATA[<math><mrow><mover><mi>N</mi><mo>&OverBar;</mo></mover><mo>=</mo><msubsup><mi>N</mi><mi>d</mi><mi>T</mi></msubsup><msub><mi>N</mi><mi>d</mi></msub><mo>.</mo></mrow></math>]]></maths>
地址 100084北京市100084-82信箱